From 416ccc9e4538b658472542c87d867f8ba5aa0ba2 Mon Sep 17 00:00:00 2001 From: Chenlei Hu Date: Wed, 18 Dec 2024 12:06:20 -0800 Subject: [PATCH] Update web content to release v1.5.19 (#6105) --- ...yhrHmlh.js => DownloadGitView-B3f7KHY3.js} | 4 +-- ...js.map => DownloadGitView-B3f7KHY3.js.map} | 2 +- ...DgaZovwi.js => ExtensionPanel-ByeZ01RF.js} | 8 ++--- ....js.map => ExtensionPanel-ByeZ01RF.js.map} | 2 +- ...View-DMP_lefG.js => GraphView-BWxgNrh6.js} | 8 ++--- ..._lefG.js.map => GraphView-BWxgNrh6.js.map} | 2 +- ...ew-D4T0qJ1I.js => InstallView-DbHtR5YG.js} | 4 +-- ...J1I.js.map => InstallView-DbHtR5YG.js.map} | 2 +- ...lOA8Yhu.js => KeybindingPanel-DC2AxNNa.js} | 8 ++--- ...js.map => KeybindingPanel-DC2AxNNa.js.map} | 2 +- ...itj9aO.js => NotSupportedView-C8O1Ed5c.js} | 4 +-- ...s.map => NotSupportedView-C8O1Ed5c.js.map} | 2 +- ...BTSXC.js => ServerConfigPanel-CvXC1Xmx.js} | 6 ++-- ....map => ServerConfigPanel-CvXC1Xmx.js.map} | 2 +- ...ykYRkoj.js => ServerStartView-BvuHEhuL.js} | 4 +-- ...js.map => ServerStartView-BvuHEhuL.js.map} | 2 +- ...DMDUPUPX.js => UserSelectView-C_4L-Yqf.js} | 4 +-- ....js.map => UserSelectView-C_4L-Yqf.js.map} | 2 +- ...ew-D6WEsVyp.js => WelcomeView-Db7ZDfZo.js} | 4 +-- ...Vyp.js.map => WelcomeView-Db7ZDfZo.js.map} | 2 +- web/assets/index-BNMdgttb.js.map | 1 - .../{index-CgmI-OoW.js => index-D3u7l7ha.js} | 6 ++-- ...-CgmI-OoW.js.map => index-D3u7l7ha.js.map} | 2 +- .../{index-CSl7lfOs.js => index-DIU5yZe9.js} | 32 +++++++++---------- ...-CSl7lfOs.js.map => index-DIU5yZe9.js.map} | 2 +- .../{index-aSkd2KAK.js => index-d698Brhb.js} | 4 +-- ...-aSkd2KAK.js.map => index-d698Brhb.js.map} | 2 +- .../{index-BNMdgttb.js => index-p6KSJ2Zq.js} | 12 +++---- web/assets/index-p6KSJ2Zq.js.map | 1 + ...D2qBB.js => serverConfigStore-DYv7_Nld.js} | 4 +-- ....map => serverConfigStore-DYv7_Nld.js.map} | 2 +- ...s-4aSRGZNs.js => widgetInputs-Bvm3AgOa.js} | 4 +-- ...Ns.js.map => widgetInputs-Bvm3AgOa.js.map} | 2 +- web/index.html | 2 +- 34 files changed, 75 insertions(+), 75 deletions(-) rename web/assets/{DownloadGitView-DyhrHmlh.js => DownloadGitView-B3f7KHY3.js} (97%) rename web/assets/{DownloadGitView-DyhrHmlh.js.map => DownloadGitView-B3f7KHY3.js.map} (97%) rename web/assets/{ExtensionPanel-DgaZovwi.js => ExtensionPanel-ByeZ01RF.js} (96%) rename web/assets/{ExtensionPanel-DgaZovwi.js.map => ExtensionPanel-ByeZ01RF.js.map} (98%) rename web/assets/{GraphView-DMP_lefG.js => GraphView-BWxgNrh6.js} (99%) rename web/assets/{GraphView-DMP_lefG.js.map => GraphView-BWxgNrh6.js.map} (99%) rename web/assets/{InstallView-D4T0qJ1I.js => InstallView-DbHtR5YG.js} (99%) rename web/assets/{InstallView-D4T0qJ1I.js.map => InstallView-DbHtR5YG.js.map} (99%) rename web/assets/{KeybindingPanel-BlOA8Yhu.js => KeybindingPanel-DC2AxNNa.js} (98%) rename web/assets/{KeybindingPanel-BlOA8Yhu.js.map => KeybindingPanel-DC2AxNNa.js.map} (99%) rename web/assets/{NotSupportedView-Dhitj9aO.js => NotSupportedView-C8O1Ed5c.js} (97%) rename web/assets/{NotSupportedView-Dhitj9aO.js.map => NotSupportedView-C8O1Ed5c.js.map} (97%) rename web/assets/{ServerConfigPanel-6N6BTSXC.js => ServerConfigPanel-CvXC1Xmx.js} (98%) rename web/assets/{ServerConfigPanel-6N6BTSXC.js.map => ServerConfigPanel-CvXC1Xmx.js.map} (98%) rename web/assets/{ServerStartView-BykYRkoj.js => ServerStartView-BvuHEhuL.js} (97%) rename web/assets/{ServerStartView-BykYRkoj.js.map => ServerStartView-BvuHEhuL.js.map} (98%) rename web/assets/{UserSelectView-DMDUPUPX.js => UserSelectView-C_4L-Yqf.js} (98%) rename web/assets/{UserSelectView-DMDUPUPX.js.map => UserSelectView-C_4L-Yqf.js.map} (98%) rename web/assets/{WelcomeView-D6WEsVyp.js => WelcomeView-Db7ZDfZo.js} (94%) rename web/assets/{WelcomeView-D6WEsVyp.js.map => WelcomeView-Db7ZDfZo.js.map} (96%) delete mode 100644 web/assets/index-BNMdgttb.js.map rename web/assets/{index-CgmI-OoW.js => index-D3u7l7ha.js} (99%) rename web/assets/{index-CgmI-OoW.js.map => index-D3u7l7ha.js.map} (99%) rename web/assets/{index-CSl7lfOs.js => index-DIU5yZe9.js} (99%) rename web/assets/{index-CSl7lfOs.js.map => index-DIU5yZe9.js.map} (99%) rename web/assets/{index-aSkd2KAK.js => index-d698Brhb.js} (96%) rename web/assets/{index-aSkd2KAK.js.map => index-d698Brhb.js.map} (98%) rename web/assets/{index-BNMdgttb.js => index-p6KSJ2Zq.js} (99%) create mode 100644 web/assets/index-p6KSJ2Zq.js.map rename web/assets/{serverConfigStore-D4vD2qBB.js => serverConfigStore-DYv7_Nld.js} (97%) rename web/assets/{serverConfigStore-D4vD2qBB.js.map => serverConfigStore-DYv7_Nld.js.map} (98%) rename web/assets/{widgetInputs-4aSRGZNs.js => widgetInputs-Bvm3AgOa.js} (99%) rename web/assets/{widgetInputs-4aSRGZNs.js.map => widgetInputs-Bvm3AgOa.js.map} (99%) diff --git a/web/assets/DownloadGitView-DyhrHmlh.js b/web/assets/DownloadGitView-B3f7KHY3.js similarity index 97% rename from web/assets/DownloadGitView-DyhrHmlh.js rename to web/assets/DownloadGitView-B3f7KHY3.js index 588de776..7937398c 100644 --- a/web/assets/DownloadGitView-DyhrHmlh.js +++ b/web/assets/DownloadGitView-B3f7KHY3.js @@ -1,6 +1,6 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { a as defineComponent, f as openBlock, g as createElementBlock, A as createBaseVNode, a8 as toDisplayString, h as createVNode, z as unref, D as script, bU as useRouter } from "./index-CSl7lfOs.js"; +import { a as defineComponent, f as openBlock, g as createElementBlock, A as createBaseVNode, a8 as toDisplayString, h as createVNode, z as unref, D as script, bU as useRouter } from "./index-DIU5yZe9.js"; const _hoisted_1 = { class: "font-sans w-screen h-screen mx-0 grid place-items-center justify-center items-center text-neutral-900 bg-neutral-300 pointer-events-auto" }; const _hoisted_2 = { class: "col-start-1 h-screen row-start-1 place-content-center mx-auto overflow-y-auto" }; const _hoisted_3 = { class: "max-w-screen-sm flex flex-col gap-8 p-8 bg-[url('/assets/images/Git-Logo-White.svg')] bg-no-repeat bg-right-top bg-origin-padding" }; @@ -55,4 +55,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=DownloadGitView-DyhrHmlh.js.map +//# sourceMappingURL=DownloadGitView-B3f7KHY3.js.map diff --git a/web/assets/DownloadGitView-DyhrHmlh.js.map b/web/assets/DownloadGitView-B3f7KHY3.js.map similarity index 97% rename from web/assets/DownloadGitView-DyhrHmlh.js.map rename to web/assets/DownloadGitView-B3f7KHY3.js.map index 7141f55b..3e120e82 100644 --- a/web/assets/DownloadGitView-DyhrHmlh.js.map +++ b/web/assets/DownloadGitView-B3f7KHY3.js.map @@ -1 +1 @@ -{"version":3,"file":"DownloadGitView-DyhrHmlh.js","sources":["../../src/views/DownloadGitView.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAqDA,UAAM,mBAAmB,6BAAM;AACtB,aAAA,KAAK,kCAAkC,QAAQ;AAAA,IAAA,GAD/B;AAIzB,UAAM,UAAU,6BAAM;AACpB,cAAQ,KAAK,SAAS;AACtB,YAAM,SAAS;AACf,aAAO,KAAK,SAAS;AAAA,IAAA,GAHP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"DownloadGitView-B3f7KHY3.js","sources":["../../src/views/DownloadGitView.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAqDA,UAAM,mBAAmB,6BAAM;AACtB,aAAA,KAAK,kCAAkC,QAAQ;AAAA,IAAA,GAD/B;AAIzB,UAAM,UAAU,6BAAM;AACpB,cAAQ,KAAK,SAAS;AACtB,YAAM,SAAS;AACf,aAAO,KAAK,SAAS;AAAA,IAAA,GAHP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/ExtensionPanel-DgaZovwi.js b/web/assets/ExtensionPanel-ByeZ01RF.js similarity index 96% rename from web/assets/ExtensionPanel-DgaZovwi.js rename to web/assets/ExtensionPanel-ByeZ01RF.js index 1942abf3..59f2a113 100644 --- a/web/assets/ExtensionPanel-DgaZovwi.js +++ b/web/assets/ExtensionPanel-ByeZ01RF.js @@ -1,8 +1,8 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { a as defineComponent, r as ref, ck as FilterMatchMode, co as useExtensionStore, u as useSettingStore, o as onMounted, q as computed, f as openBlock, x as createBlock, y as withCtx, h as createVNode, cl as SearchBox, z as unref, bW as script, A as createBaseVNode, g as createElementBlock, Q as renderList, a8 as toDisplayString, ay as createTextVNode, P as Fragment, D as script$1, i as createCommentVNode, c5 as script$3, cm as _sfc_main$1 } from "./index-CSl7lfOs.js"; -import { s as script$2, a as script$4 } from "./index-CgmI-OoW.js"; -import "./index-aSkd2KAK.js"; +import { a as defineComponent, r as ref, ck as FilterMatchMode, co as useExtensionStore, u as useSettingStore, o as onMounted, q as computed, f as openBlock, x as createBlock, y as withCtx, h as createVNode, cl as SearchBox, z as unref, bW as script, A as createBaseVNode, g as createElementBlock, Q as renderList, a8 as toDisplayString, ay as createTextVNode, P as Fragment, D as script$1, i as createCommentVNode, c5 as script$3, cm as _sfc_main$1 } from "./index-DIU5yZe9.js"; +import { s as script$2, a as script$4 } from "./index-D3u7l7ha.js"; +import "./index-d698Brhb.js"; const _hoisted_1 = { class: "flex justify-end" }; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "ExtensionPanel", @@ -114,4 +114,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=ExtensionPanel-DgaZovwi.js.map +//# sourceMappingURL=ExtensionPanel-ByeZ01RF.js.map diff --git a/web/assets/ExtensionPanel-DgaZovwi.js.map b/web/assets/ExtensionPanel-ByeZ01RF.js.map similarity index 98% rename from web/assets/ExtensionPanel-DgaZovwi.js.map rename to web/assets/ExtensionPanel-ByeZ01RF.js.map index cd8a658a..02f2515f 100644 --- a/web/assets/ExtensionPanel-DgaZovwi.js.map +++ b/web/assets/ExtensionPanel-ByeZ01RF.js.map @@ -1 +1 @@ -{"version":3,"file":"ExtensionPanel-DgaZovwi.js","sources":["../../src/components/dialog/content/setting/ExtensionPanel.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;AA8DA,UAAM,UAAU,IAAI;AAAA,MAClB,QAAQ,EAAE,OAAO,IAAI,WAAW,gBAAgB,SAAS;AAAA,IAAA,CAC1D;AAED,UAAM,iBAAiB;AACvB,UAAM,eAAe;AAEf,UAAA,2BAA2B,IAA6B,CAAA,CAAE;AAEhE,cAAU,MAAM;AACC,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,iCAAyB,MAAM,IAAI,IAAI,IACrC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA,CAC7C;AAAA,IAAA,CACF;AAEK,UAAA,oBAAoB,SAAS,MAAM;AACvC,aAAO,eAAe,WAAW;AAAA,QAC/B,CAAC,QACC,yBAAyB,MAAM,IAAI,IAAI,MACvC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA;AAAA,IAC9C,CACD;AAEK,UAAA,aAAa,SAAS,MAAM;AACzB,aAAA,kBAAkB,MAAM,SAAS;AAAA,IAAA,CACzC;AAED,UAAM,wBAAwB,6BAAM;AAClC,YAAM,gCAAgC,OAAO;AAAA,QAC3C,yBAAyB;AAAA,MAExB,EAAA,OAAO,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,OAAO,EACjC,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI;AAEvB,mBAAa,IAAI,4BAA4B;AAAA,QAC3C,GAAG,eAAe;AAAA,QAClB,GAAG;AAAA,MAAA,CACJ;AAAA,IAAA,GAV2B;AAa9B,UAAM,eAAe,6BAAM;AAEzB,aAAO,SAAS;IAAO,GAFJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"ExtensionPanel-ByeZ01RF.js","sources":["../../src/components/dialog/content/setting/ExtensionPanel.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;AA8DA,UAAM,UAAU,IAAI;AAAA,MAClB,QAAQ,EAAE,OAAO,IAAI,WAAW,gBAAgB,SAAS;AAAA,IAAA,CAC1D;AAED,UAAM,iBAAiB;AACvB,UAAM,eAAe;AAEf,UAAA,2BAA2B,IAA6B,CAAA,CAAE;AAEhE,cAAU,MAAM;AACC,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,iCAAyB,MAAM,IAAI,IAAI,IACrC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA,CAC7C;AAAA,IAAA,CACF;AAEK,UAAA,oBAAoB,SAAS,MAAM;AACvC,aAAO,eAAe,WAAW;AAAA,QAC/B,CAAC,QACC,yBAAyB,MAAM,IAAI,IAAI,MACvC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA;AAAA,IAC9C,CACD;AAEK,UAAA,aAAa,SAAS,MAAM;AACzB,aAAA,kBAAkB,MAAM,SAAS;AAAA,IAAA,CACzC;AAED,UAAM,wBAAwB,6BAAM;AAClC,YAAM,gCAAgC,OAAO;AAAA,QAC3C,yBAAyB;AAAA,MAExB,EAAA,OAAO,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,OAAO,EACjC,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI;AAEvB,mBAAa,IAAI,4BAA4B;AAAA,QAC3C,GAAG,eAAe;AAAA,QAClB,GAAG;AAAA,MAAA,CACJ;AAAA,IAAA,GAV2B;AAa9B,UAAM,eAAe,6BAAM;AAEzB,aAAO,SAAS;IAAO,GAFJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/GraphView-DMP_lefG.js b/web/assets/GraphView-BWxgNrh6.js similarity index 99% rename from web/assets/GraphView-DMP_lefG.js rename to web/assets/GraphView-BWxgNrh6.js index dae397de..e4de07c3 100644 --- a/web/assets/GraphView-DMP_lefG.js +++ b/web/assets/GraphView-BWxgNrh6.js @@ -1,8 +1,8 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineStore, s as shallowRef, a as defineComponent, u as useSettingStore, r as ref, w as watch, L as LGraphGroup, b as app, c as LGraphNode, o as onMounted, e as onUnmounted, f as openBlock, g as createElementBlock, h as createVNode, E as EditableText, n as normalizeStyle, i as createCommentVNode, j as LiteGraph, _ as _export_sfc, B as BaseStyle, k as script$e, l as resolveComponent, m as mergeProps, p as renderSlot, q as computed, t as resolveDirective, v as withDirectives, x as createBlock, y as withCtx, z as unref, A as createBaseVNode, C as normalizeClass, D as script$f, F as useCommandStore, G as useDialogStore, S as SettingDialogHeader, H as SettingDialogContent, I as useI18n, J as useUserStore, K as onBeforeUnmount, M as resolveDynamicComponent, N as useWorkspaceStore, O as useKeybindingStore, P as Fragment, Q as renderList, T as Teleport, R as pushScopeId, U as popScopeId, V as script$g, W as getWidth, X as findSingle, Y as getOuterHeight, Z as getOffset, $ as getOuterWidth, a0 as getHeight, a1 as script$h, a2 as script$i, a3 as Ripple, a4 as getAttribute, a5 as focus, a6 as equals, a7 as useBottomPanelStore, a8 as toDisplayString, a9 as script$j, aa as getVNodeProp, ab as isArray, ac as useSidebarTabStore, ad as vShow, ae as isNotEmpty, af as UniqueComponentId, ag as ZIndex, ah as resolveFieldData, ai as OverlayEventBus, aj as isEmpty, ak as addStyle, al as relativePosition, am as absolutePosition, an as ConnectedOverlayScrollHandler, ao as isTouchDevice, ap as findLastIndex, aq as script$k, ar as script$l, as as script$m, at as script$n, au as script$o, av as script$p, aw as Transition, ax as createSlots, ay as createTextVNode, az as useNodeFrequencyStore, aA as useNodeBookmarkStore, aB as highlightQuery, aC as script$q, aD as formatNumberWithSuffix, aE as NodeSourceType, aF as useNodeDefStore, aG as NodePreview, aH as NodeSearchFilter, aI as script$r, aJ as SearchFilterChip, aK as storeToRefs, aL as watchEffect, aM as useEventListener, aN as isRef, aO as toRaw, aP as LinkReleaseTriggerAction, aQ as nextTick, aR as st, aS as normalizeI18nKey, aT as getColorPalette, aU as BadgePosition, aV as LGraphBadge, aW as _, aX as defaultColorPalette, aY as NodeBadgeMode, aZ as markRaw, a_ as useModelToNodeStore, a$ as CanvasPointer, b0 as useWorkflowStore, b1 as setStorageValue, b2 as api, b3 as usePragmaticDroppable, b4 as ComfyNodeDefImpl, b5 as ComfyModelDef, b6 as LGraph, b7 as LLink, b8 as DragAndScale, b9 as LGraphCanvas, ba as ContextMenu, bb as ChangeTracker, bc as workflowService, bd as showNativeMenu, be as script$s, bf as script$t, bg as script$u, bh as script$v, bi as script$w, bj as normalizeProps, bk as ToastEventBus, bl as setAttribute, bm as TransitionGroup, bn as useToast, bo as useToastStore, bp as useExecutionStore, bq as useTitle, br as withModifiers, bs as script$x, bt as script$y, bu as resolve, bv as script$z, bw as script$A, bx as isPrintableCharacter, by as guardReactiveProps, bz as useMenuItemStore, bA as script$D, bB as nestedPosition, bC as useQueueSettingsStore, bD as script$E, bE as useQueuePendingTaskCountStore, bF as useLocalStorage, bG as useDraggable, bH as watchDebounced, bI as inject, bJ as useElementBounding, bK as lodashExports, bL as useEventBus, bM as provide, bN as script$F, bO as LGraphEventMode, bP as useQueueStore, bQ as showTemplateWorkflowsDialog, bR as showSettingsDialog, bS as i18n, bT as useModelStore } from "./index-CSl7lfOs.js"; -import { s as script$B, a as script$C } from "./index-aSkd2KAK.js"; -import { u as useServerConfigStore } from "./serverConfigStore-D4vD2qBB.js"; +import { d as defineStore, s as shallowRef, a as defineComponent, u as useSettingStore, r as ref, w as watch, L as LGraphGroup, b as app, c as LGraphNode, o as onMounted, e as onUnmounted, f as openBlock, g as createElementBlock, h as createVNode, E as EditableText, n as normalizeStyle, i as createCommentVNode, j as LiteGraph, _ as _export_sfc, B as BaseStyle, k as script$e, l as resolveComponent, m as mergeProps, p as renderSlot, q as computed, t as resolveDirective, v as withDirectives, x as createBlock, y as withCtx, z as unref, A as createBaseVNode, C as normalizeClass, D as script$f, F as useCommandStore, G as useDialogStore, S as SettingDialogHeader, H as SettingDialogContent, I as useI18n, J as useUserStore, K as onBeforeUnmount, M as resolveDynamicComponent, N as useWorkspaceStore, O as useKeybindingStore, P as Fragment, Q as renderList, T as Teleport, R as pushScopeId, U as popScopeId, V as script$g, W as getWidth, X as findSingle, Y as getOuterHeight, Z as getOffset, $ as getOuterWidth, a0 as getHeight, a1 as script$h, a2 as script$i, a3 as Ripple, a4 as getAttribute, a5 as focus, a6 as equals, a7 as useBottomPanelStore, a8 as toDisplayString, a9 as script$j, aa as getVNodeProp, ab as isArray, ac as useSidebarTabStore, ad as vShow, ae as isNotEmpty, af as UniqueComponentId, ag as ZIndex, ah as resolveFieldData, ai as OverlayEventBus, aj as isEmpty, ak as addStyle, al as relativePosition, am as absolutePosition, an as ConnectedOverlayScrollHandler, ao as isTouchDevice, ap as findLastIndex, aq as script$k, ar as script$l, as as script$m, at as script$n, au as script$o, av as script$p, aw as Transition, ax as createSlots, ay as createTextVNode, az as useNodeFrequencyStore, aA as useNodeBookmarkStore, aB as highlightQuery, aC as script$q, aD as formatNumberWithSuffix, aE as NodeSourceType, aF as useNodeDefStore, aG as NodePreview, aH as NodeSearchFilter, aI as script$r, aJ as SearchFilterChip, aK as storeToRefs, aL as watchEffect, aM as useEventListener, aN as isRef, aO as toRaw, aP as LinkReleaseTriggerAction, aQ as nextTick, aR as st, aS as normalizeI18nKey, aT as getColorPalette, aU as BadgePosition, aV as LGraphBadge, aW as _, aX as defaultColorPalette, aY as NodeBadgeMode, aZ as markRaw, a_ as useModelToNodeStore, a$ as CanvasPointer, b0 as useWorkflowStore, b1 as setStorageValue, b2 as api, b3 as usePragmaticDroppable, b4 as ComfyNodeDefImpl, b5 as ComfyModelDef, b6 as LGraph, b7 as LLink, b8 as DragAndScale, b9 as LGraphCanvas, ba as ContextMenu, bb as ChangeTracker, bc as workflowService, bd as showNativeMenu, be as script$s, bf as script$t, bg as script$u, bh as script$v, bi as script$w, bj as normalizeProps, bk as ToastEventBus, bl as setAttribute, bm as TransitionGroup, bn as useToast, bo as useToastStore, bp as useExecutionStore, bq as useTitle, br as withModifiers, bs as script$x, bt as script$y, bu as resolve, bv as script$z, bw as script$A, bx as isPrintableCharacter, by as guardReactiveProps, bz as useMenuItemStore, bA as script$D, bB as nestedPosition, bC as useQueueSettingsStore, bD as script$E, bE as useQueuePendingTaskCountStore, bF as useLocalStorage, bG as useDraggable, bH as watchDebounced, bI as inject, bJ as useElementBounding, bK as lodashExports, bL as useEventBus, bM as provide, bN as script$F, bO as LGraphEventMode, bP as useQueueStore, bQ as showTemplateWorkflowsDialog, bR as showSettingsDialog, bS as i18n, bT as useModelStore } from "./index-DIU5yZe9.js"; +import { s as script$B, a as script$C } from "./index-d698Brhb.js"; +import { u as useServerConfigStore } from "./serverConfigStore-DYv7_Nld.js"; const useTitleEditorStore = defineStore("titleEditor", () => { const titleEditorTarget = shallowRef(null); return { @@ -9271,4 +9271,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=GraphView-DMP_lefG.js.map +//# sourceMappingURL=GraphView-BWxgNrh6.js.map diff --git a/web/assets/GraphView-DMP_lefG.js.map b/web/assets/GraphView-BWxgNrh6.js.map similarity index 99% rename from web/assets/GraphView-DMP_lefG.js.map rename to web/assets/GraphView-BWxgNrh6.js.map index 1689f136..276ddaec 100644 --- a/web/assets/GraphView-DMP_lefG.js.map +++ b/web/assets/GraphView-BWxgNrh6.js.map @@ -1 +1 @@ -{"version":3,"file":"GraphView-DMP_lefG.js","sources":["../../src/stores/graphStore.ts","../../src/components/graph/TitleEditor.vue","../../node_modules/primevue/overlaybadge/style/index.mjs","../../node_modules/primevue/overlaybadge/index.mjs","../../src/components/sidebar/SidebarIcon.vue","../../src/components/sidebar/SidebarThemeToggleIcon.vue","../../src/components/sidebar/SidebarSettingsToggleIcon.vue","../../src/components/sidebar/SidebarLogoutIcon.vue","../../src/components/common/ExtensionSlot.vue","../../src/components/sidebar/SideToolbar.vue","../../node_modules/primevue/tablist/style/index.mjs","../../node_modules/primevue/tablist/index.mjs","../../node_modules/primevue/tab/style/index.mjs","../../node_modules/primevue/tab/index.mjs","../../src/components/bottomPanel/BottomPanel.vue","../../node_modules/primevue/splitter/style/index.mjs","../../node_modules/primevue/splitter/index.mjs","../../node_modules/primevue/splitterpanel/style/index.mjs","../../node_modules/primevue/splitterpanel/index.mjs","../../src/components/LiteGraphCanvasSplitterOverlay.vue","../../node_modules/primevue/autocomplete/style/index.mjs","../../node_modules/primevue/autocomplete/index.mjs","../../src/components/primevueOverride/AutoCompletePlus.vue","../../src/components/searchbox/NodeSearchItem.vue","../../src/components/searchbox/NodeSearchBox.vue","../../src/types/litegraphTypes.ts","../../src/stores/workspace/searchBoxStore.ts","../../src/components/searchbox/NodeSearchBoxPopover.vue","../../src/components/graph/NodeTooltip.vue","../../src/components/graph/NodeBadge.vue","../../node_modules/primevue/buttongroup/style/index.mjs","../../node_modules/primevue/buttongroup/index.mjs","../../src/components/graph/GraphCanvasMenu.vue","../../src/components/graph/GraphCanvas.vue","../../src/components/MenuHamburger.vue","../../node_modules/primevue/toast/style/index.mjs","../../node_modules/primevue/toast/index.mjs","../../src/components/toast/GlobalToast.vue","../../src/components/dialog/UnloadWindowConfirmDialog.vue","../../src/components/BrowserTabTitle.vue","../../src/components/topbar/WorkflowTabs.vue","../../node_modules/primevue/menubar/style/index.mjs","../../node_modules/primevue/menubar/index.mjs","../../src/components/topbar/CommandMenubar.vue","../../node_modules/primevue/panel/style/index.mjs","../../node_modules/primevue/panel/index.mjs","../../node_modules/primevue/tieredmenu/style/index.mjs","../../node_modules/primevue/tieredmenu/index.mjs","../../node_modules/primevue/splitbutton/style/index.mjs","../../node_modules/primevue/splitbutton/index.mjs","../../src/components/actionbar/BatchCountEdit.vue","../../src/components/actionbar/ComfyQueueButton.vue","../../src/components/actionbar/ComfyActionbar.vue","../../src/components/topbar/BottomPanelToggleButton.vue","../../src/components/topbar/TopMenubar.vue","../../src/services/autoQueueService.ts","../../src/types/serverArgs.ts","../../src/constants/serverConfig.ts","../../src/hooks/coreCommandHooks.ts","../../src/views/GraphView.vue"],"sourcesContent":["import { LGraphNode, LGraphGroup, LGraphCanvas } from '@comfyorg/litegraph'\nimport { defineStore } from 'pinia'\nimport { shallowRef } from 'vue'\n\nexport const useTitleEditorStore = defineStore('titleEditor', () => {\n const titleEditorTarget = shallowRef(null)\n\n return {\n titleEditorTarget\n }\n})\n\nexport const useCanvasStore = defineStore('canvas', () => {\n /**\n * The LGraphCanvas instance.\n *\n * The root LGraphCanvas object is shallow reactive.\n */\n const canvas = shallowRef(null)\n\n return {\n canvas\n }\n})\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-overlaybadge {\\n position: relative;\\n}\\n\\n.p-overlaybadge .p-badge {\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(50%, -50%);\\n transform-origin: 100% 0;\\n margin: 0;\\n outline-width: \".concat(dt('overlaybadge.outline.width'), \";\\n outline-style: solid;\\n outline-color: \").concat(dt('overlaybadge.outline.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-overlaybadge'\n};\nvar OverlayBadgeStyle = BaseStyle.extend({\n name: 'overlaybadge',\n theme: theme,\n classes: classes\n});\n\nexport { OverlayBadgeStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import Badge from 'primevue/badge';\nimport OverlayBadgeStyle from 'primevue/overlaybadge/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, renderSlot, createVNode } from 'vue';\n\nvar script$1 = {\n name: 'OverlayBadge',\n \"extends\": Badge,\n style: OverlayBadgeStyle,\n provide: function provide() {\n return {\n $pcOverlayBadge: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'OverlayBadge',\n \"extends\": script$1,\n inheritAttrs: false,\n components: {\n Badge: Badge\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Badge = resolveComponent(\"Badge\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\"), createVNode(_component_Badge, mergeProps(_ctx.$props, {\n pt: _ctx.ptm('pcBadge')\n }), null, 16, [\"pt\"])], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-tablist',\n content: function content(_ref) {\n var instance = _ref.instance;\n return ['p-tablist-content', {\n 'p-tablist-viewport': instance.$pcTabs.scrollable\n }];\n },\n tabList: 'p-tablist-tab-list',\n activeBar: 'p-tablist-active-bar',\n prevButton: 'p-tablist-prev-button p-tablist-nav-button',\n nextButton: 'p-tablist-next-button p-tablist-nav-button'\n};\nvar TabListStyle = BaseStyle.extend({\n name: 'tablist',\n classes: classes\n});\n\nexport { TabListStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getWidth, findSingle, getOuterHeight, getOffset, getOuterWidth, getHeight } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabListStyle from 'primevue/tablist/style';\nimport Ripple from 'primevue/ripple';\nimport { resolveDirective, openBlock, createElementBlock, mergeProps, withDirectives, createBlock, resolveDynamicComponent, createCommentVNode, createElementVNode, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseTabList',\n \"extends\": BaseComponent,\n props: {},\n style: TabListStyle,\n provide: function provide() {\n return {\n $pcTabList: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabList',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n data: function data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators: function showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler: function handler() {\n this.updateInkBar();\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n this.$nextTick(function () {\n _this.updateInkBar();\n });\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n },\n updated: function updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindResizeObserver();\n },\n methods: {\n onScroll: function onScroll(event) {\n this.showNavigators && this.updateButtonState();\n event.preventDefault();\n },\n onPrevButtonClick: function onPrevButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content);\n var pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick: function onNextButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content) - this.getVisibleButtonWidths();\n var pos = content.scrollLeft + width;\n var lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n bindResizeObserver: function bindResizeObserver() {\n var _this2 = this;\n this.resizeObserver = new ResizeObserver(function () {\n return _this2.updateButtonState();\n });\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver: function unbindResizeObserver() {\n var _this$resizeObserver;\n (_this$resizeObserver = this.resizeObserver) === null || _this$resizeObserver === void 0 || _this$resizeObserver.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar: function updateInkBar() {\n var _this$$refs = this.$refs,\n content = _this$$refs.content,\n inkbar = _this$$refs.inkbar,\n tabs = _this$$refs.tabs;\n var activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState: function updateButtonState() {\n var _this$$refs2 = this.$refs,\n list = _this$$refs2.list,\n content = _this$$refs2.content;\n var scrollLeft = content.scrollLeft,\n scrollTop = content.scrollTop,\n scrollWidth = content.scrollWidth,\n scrollHeight = content.scrollHeight,\n offsetWidth = content.offsetWidth,\n offsetHeight = content.offsetHeight;\n var _ref = [getWidth(content), getHeight(content)],\n width = _ref[0],\n height = _ref[1];\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths: function getVisibleButtonWidths() {\n var _this$$refs3 = this.$refs,\n prevBtn = _this$$refs3.prevBtn,\n nextBtn = _this$$refs3.nextBtn;\n return [prevBtn, nextBtn].reduce(function (acc, el) {\n return el ? acc + getWidth(el) : acc;\n }, 0);\n }\n },\n computed: {\n templates: function templates() {\n return this.$pcTabs.$slots;\n },\n activeValue: function activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators: function showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel: function prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel: function nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon: ChevronLeftIcon,\n ChevronRightIcon: ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"aria-label\", \"tabindex\"];\nvar _hoisted_2 = [\"aria-orientation\"];\nvar _hoisted_3 = [\"aria-label\", \"tabindex\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"list\",\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [$options.showNavigators && $data.isPrevButtonEnabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"prevButton\",\n \"class\": _ctx.cx('prevButton'),\n \"aria-label\": $options.prevButtonAriaLabel,\n tabindex: $options.$pcTabs.tabindex,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onPrevButtonClick && $options.onPrevButtonClick.apply($options, arguments);\n })\n }, _ctx.ptm('prevButton'), {\n \"data-pc-group-section\": \"navigator\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($options.templates.previcon || 'ChevronLeftIcon'), mergeProps({\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('prevIcon')), null, 16))], 16, _hoisted_1)), [[_directive_ripple]]) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n ref: \"content\",\n \"class\": _ctx.cx('content'),\n onScroll: _cache[1] || (_cache[1] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n })\n }, _ctx.ptm('content')), [createElementVNode(\"div\", mergeProps({\n ref: \"tabs\",\n \"class\": _ctx.cx('tabList'),\n role: \"tablist\",\n \"aria-orientation\": $options.$pcTabs.orientation || 'horizontal'\n }, _ctx.ptm('tabList')), [renderSlot(_ctx.$slots, \"default\"), createElementVNode(\"span\", mergeProps({\n ref: \"inkbar\",\n \"class\": _ctx.cx('activeBar'),\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('activeBar')), null, 16)], 16, _hoisted_2)], 16), $options.showNavigators && $data.isNextButtonEnabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 1,\n ref: \"nextButton\",\n \"class\": _ctx.cx('nextButton'),\n \"aria-label\": $options.nextButtonAriaLabel,\n tabindex: $options.$pcTabs.tabindex,\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.onNextButtonClick && $options.onNextButtonClick.apply($options, arguments);\n })\n }, _ctx.ptm('nextButton'), {\n \"data-pc-group-section\": \"navigator\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($options.templates.nexticon || 'ChevronRightIcon'), mergeProps({\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('nextIcon')), null, 16))], 16, _hoisted_3)), [[_directive_ripple]]) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance,\n props = _ref.props;\n return ['p-tab', {\n 'p-tab-active': instance.active,\n 'p-disabled': props.disabled\n }];\n }\n};\nvar TabStyle = BaseStyle.extend({\n name: 'tab',\n classes: classes\n});\n\nexport { TabStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getAttribute, findSingle, focus } from '@primeuix/utils/dom';\nimport { equals } from '@primeuix/utils/object';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveDirective, withDirectives, openBlock, createBlock, resolveDynamicComponent, withCtx, renderSlot, normalizeClass } from 'vue';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabStyle from 'primevue/tab/style';\n\nvar script$1 = {\n name: 'BaseTab',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n as: {\n type: [String, Object],\n \"default\": 'BUTTON'\n },\n asChild: {\n type: Boolean,\n \"default\": false\n }\n },\n style: TabStyle,\n provide: function provide() {\n return {\n $pcTab: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Tab',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$pcTabs', '$pcTabList'],\n methods: {\n onFocus: function onFocus() {\n this.$pcTabs.selectOnFocus && this.changeActiveValue();\n },\n onClick: function onClick() {\n this.changeActiveValue();\n },\n onKeydown: function onKeydown(event) {\n switch (event.code) {\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var nextTab = this.findNextTab(event.currentTarget);\n nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var prevTab = this.findPrevTab(event.currentTarget);\n prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event) {\n var firstTab = this.findFirstTab();\n this.changeFocusedTab(event, firstTab);\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var lastTab = this.findLastTab();\n this.changeFocusedTab(event, lastTab);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.findLastTab());\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(this.findFirstTab());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findNextTab: function findNextTab(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var element = selfCheck ? tabElement : tabElement.nextElementSibling;\n return element ? getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findNextTab(element) : findSingle(element, '[data-pc-name=\"tab\"]') : null;\n },\n findPrevTab: function findPrevTab(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var element = selfCheck ? tabElement : tabElement.previousElementSibling;\n return element ? getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findPrevTab(element) : findSingle(element, '[data-pc-name=\"tab\"]') : null;\n },\n findFirstTab: function findFirstTab() {\n return this.findNextTab(this.$pcTabList.$refs.content.firstElementChild, true);\n },\n findLastTab: function findLastTab() {\n return this.findPrevTab(this.$pcTabList.$refs.content.lastElementChild, true);\n },\n changeActiveValue: function changeActiveValue() {\n this.$pcTabs.updateValue(this.value);\n },\n changeFocusedTab: function changeFocusedTab(event, element) {\n focus(element);\n this.scrollInView(element);\n },\n scrollInView: function scrollInView(element) {\n var _element$scrollIntoVi;\n element === null || element === void 0 || (_element$scrollIntoVi = element.scrollIntoView) === null || _element$scrollIntoVi === void 0 || _element$scrollIntoVi.call(element, {\n block: 'nearest'\n });\n }\n },\n computed: {\n active: function active() {\n var _this$$pcTabs;\n return equals((_this$$pcTabs = this.$pcTabs) === null || _this$$pcTabs === void 0 ? void 0 : _this$$pcTabs.d_value, this.value);\n },\n id: function id() {\n var _this$$pcTabs2;\n return \"\".concat((_this$$pcTabs2 = this.$pcTabs) === null || _this$$pcTabs2 === void 0 ? void 0 : _this$$pcTabs2.id, \"_tab_\").concat(this.value);\n },\n ariaControls: function ariaControls() {\n var _this$$pcTabs3;\n return \"\".concat((_this$$pcTabs3 = this.$pcTabs) === null || _this$$pcTabs3 === void 0 ? void 0 : _this$$pcTabs3.id, \"_tabpanel_\").concat(this.value);\n },\n attrs: function attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs: function asAttrs() {\n return this.as === 'BUTTON' ? {\n type: 'button',\n disabled: this.disabled\n } : undefined;\n },\n a11yAttrs: function a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.active ? this.$pcTabs.tabindex : -1,\n role: 'tab',\n 'aria-selected': this.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'tab',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams: function ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return !_ctx.asChild ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n \"class\": _ctx.cx('root'),\n onClick: $options.onClick\n }, $options.attrs), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 3\n }, 16, [\"class\", \"onClick\"])), [[_directive_ripple]]) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('root')),\n active: $options.active,\n a11yAttrs: $options.a11yAttrs,\n onClick: $options.onClick\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-splitter {\\n display: flex;\\n flex-wrap: nowrap;\\n border: 1px solid \".concat(dt('splitter.border.color'), \";\\n background: \").concat(dt('splitter.background'), \";\\n border-radius: \").concat(dt('border.radius.md'), \";\\n color: \").concat(dt('splitter.color'), \";\\n}\\n\\n.p-splitter-vertical {\\n flex-direction: column;\\n}\\n\\n.p-splitter-gutter {\\n flex-grow: 0;\\n flex-shrink: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 1;\\n background: \").concat(dt('splitter.gutter.background'), \";\\n}\\n\\n.p-splitter-gutter-handle {\\n border-radius: \").concat(dt('splitter.handle.border.radius'), \";\\n background: \").concat(dt('splitter.handle.background'), \";\\n transition: outline-color \").concat(dt('splitter.transition.duration'), \", box-shadow \").concat(dt('splitter.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-splitter-gutter-handle:focus-visible {\\n box-shadow: \").concat(dt('splitter.handle.focus.ring.shadow'), \";\\n outline: \").concat(dt('splitter.handle.focus.ring.width'), \" \").concat(dt('splitter.handle.focus.ring.style'), \" \").concat(dt('splitter.handle.focus.ring.color'), \";\\n outline-offset: \").concat(dt('splitter.handle.focus.ring.offset'), \";\\n}\\n\\n.p-splitter-horizontal.p-splitter-resizing {\\n cursor: col-resize;\\n user-select: none;\\n}\\n\\n.p-splitter-vertical.p-splitter-resizing {\\n cursor: row-resize;\\n user-select: none;\\n}\\n\\n.p-splitter-horizontal > .p-splitter-gutter > .p-splitter-gutter-handle {\\n height: \").concat(dt('splitter.handle.size'), \";\\n width: 100%;\\n}\\n\\n.p-splitter-vertical > .p-splitter-gutter > .p-splitter-gutter-handle {\\n width: \").concat(dt('splitter.handle.size'), \";\\n height: 100%;\\n}\\n\\n.p-splitter-horizontal > .p-splitter-gutter {\\n cursor: col-resize;\\n}\\n\\n.p-splitter-vertical > .p-splitter-gutter {\\n cursor: row-resize;\\n}\\n\\n.p-splitterpanel {\\n flex-grow: 1;\\n overflow: hidden;\\n}\\n\\n.p-splitterpanel-nested {\\n display: flex;\\n}\\n\\n.p-splitterpanel .p-splitter {\\n flex-grow: 1;\\n border: 0 none;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-splitter p-component', 'p-splitter-' + props.layout];\n },\n gutter: 'p-splitter-gutter',\n gutterHandle: 'p-splitter-gutter-handle'\n};\nvar inlineStyles = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return [{\n display: 'flex',\n 'flex-wrap': 'nowrap'\n }, props.layout === 'vertical' ? {\n 'flex-direction': 'column'\n } : ''];\n }\n};\nvar SplitterStyle = BaseStyle.extend({\n name: 'splitter',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { SplitterStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getVNodeProp } from '@primevue/core/utils';\nimport { getWidth, getHeight, getOuterWidth, getOuterHeight } from '@primeuix/utils/dom';\nimport { isArray } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SplitterStyle from 'primevue/splitter/style';\nimport { openBlock, createElementBlock, mergeProps, Fragment, renderList, createBlock, resolveDynamicComponent, createElementVNode, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitter',\n \"extends\": BaseComponent,\n props: {\n layout: {\n type: String,\n \"default\": 'horizontal'\n },\n gutterSize: {\n type: Number,\n \"default\": 4\n },\n stateKey: {\n type: String,\n \"default\": null\n },\n stateStorage: {\n type: String,\n \"default\": 'session'\n },\n step: {\n type: Number,\n \"default\": 5\n }\n },\n style: SplitterStyle,\n provide: function provide() {\n return {\n $pcSplitter: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Splitter',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['resizestart', 'resizeend', 'resize'],\n dragging: false,\n mouseMoveListener: null,\n mouseUpListener: null,\n touchMoveListener: null,\n touchEndListener: null,\n size: null,\n gutterElement: null,\n startPos: null,\n prevPanelElement: null,\n nextPanelElement: null,\n nextPanelSize: null,\n prevPanelSize: null,\n panelSizes: null,\n prevPanelIndex: null,\n timer: null,\n data: function data() {\n return {\n prevSize: null\n };\n },\n mounted: function mounted() {\n var _this = this;\n if (this.panels && this.panels.length) {\n var initialized = false;\n if (this.isStateful()) {\n initialized = this.restoreState();\n }\n if (!initialized) {\n var children = _toConsumableArray(this.$el.children).filter(function (child) {\n return child.getAttribute('data-pc-name') === 'splitterpanel';\n });\n var _panelSizes = [];\n this.panels.map(function (panel, i) {\n var panelInitialSize = panel.props && panel.props.size ? panel.props.size : null;\n var panelSize = panelInitialSize || 100 / _this.panels.length;\n _panelSizes[i] = panelSize;\n children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (_this.panels.length - 1) * _this.gutterSize + 'px)';\n });\n this.panelSizes = _panelSizes;\n this.prevSize = parseFloat(_panelSizes[0]).toFixed(4);\n }\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.clear();\n this.unbindMouseListeners();\n },\n methods: {\n isSplitterPanel: function isSplitterPanel(child) {\n return child.type.name === 'SplitterPanel';\n },\n onResizeStart: function onResizeStart(event, index, isKeyDown) {\n this.gutterElement = event.currentTarget || event.target.parentElement;\n this.size = this.horizontal ? getWidth(this.$el) : getHeight(this.$el);\n if (!isKeyDown) {\n this.dragging = true;\n this.startPos = this.layout === 'horizontal' ? event.pageX || event.changedTouches[0].pageX : event.pageY || event.changedTouches[0].pageY;\n }\n this.prevPanelElement = this.gutterElement.previousElementSibling;\n this.nextPanelElement = this.gutterElement.nextElementSibling;\n if (isKeyDown) {\n this.prevPanelSize = this.horizontal ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true);\n this.nextPanelSize = this.horizontal ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true);\n } else {\n this.prevPanelSize = 100 * (this.horizontal ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true)) / this.size;\n this.nextPanelSize = 100 * (this.horizontal ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true)) / this.size;\n }\n this.prevPanelIndex = index;\n this.$emit('resizestart', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n this.$refs.gutter[index].setAttribute('data-p-gutter-resizing', true);\n this.$el.setAttribute('data-p-resizing', true);\n },\n onResize: function onResize(event, step, isKeyDown) {\n var newPos, newPrevPanelSize, newNextPanelSize;\n if (isKeyDown) {\n if (this.horizontal) {\n newPrevPanelSize = 100 * (this.prevPanelSize + step) / this.size;\n newNextPanelSize = 100 * (this.nextPanelSize - step) / this.size;\n } else {\n newPrevPanelSize = 100 * (this.prevPanelSize - step) / this.size;\n newNextPanelSize = 100 * (this.nextPanelSize + step) / this.size;\n }\n } else {\n if (this.horizontal) newPos = event.pageX * 100 / this.size - this.startPos * 100 / this.size;else newPos = event.pageY * 100 / this.size - this.startPos * 100 / this.size;\n newPrevPanelSize = this.prevPanelSize + newPos;\n newNextPanelSize = this.nextPanelSize - newPos;\n }\n if (this.validateResize(newPrevPanelSize, newNextPanelSize)) {\n this.prevPanelElement.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this.nextPanelElement.style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this.panelSizes[this.prevPanelIndex] = newPrevPanelSize;\n this.panelSizes[this.prevPanelIndex + 1] = newNextPanelSize;\n this.prevSize = parseFloat(newPrevPanelSize).toFixed(4);\n }\n this.$emit('resize', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n },\n onResizeEnd: function onResizeEnd(event) {\n if (this.isStateful()) {\n this.saveState();\n }\n this.$emit('resizeend', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n this.$refs.gutter.forEach(function (gutter) {\n return gutter.setAttribute('data-p-gutter-resizing', false);\n });\n this.$el.setAttribute('data-p-resizing', false);\n this.clear();\n },\n repeat: function repeat(event, index, step) {\n this.onResizeStart(event, index, true);\n this.onResize(event, step, true);\n },\n setTimer: function setTimer(event, index, step) {\n var _this2 = this;\n if (!this.timer) {\n this.timer = setInterval(function () {\n _this2.repeat(event, index, step);\n }, 40);\n }\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n },\n onGutterKeyUp: function onGutterKeyUp() {\n this.clearTimer();\n this.onResizeEnd();\n },\n onGutterKeyDown: function onGutterKeyDown(event, index) {\n switch (event.code) {\n case 'ArrowLeft':\n {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step * -1);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowRight':\n {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowDown':\n {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step * -1);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowUp':\n {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step);\n }\n event.preventDefault();\n break;\n }\n }\n },\n onGutterMouseDown: function onGutterMouseDown(event, index) {\n this.onResizeStart(event, index);\n this.bindMouseListeners();\n },\n onGutterTouchStart: function onGutterTouchStart(event, index) {\n this.onResizeStart(event, index);\n this.bindTouchListeners();\n event.preventDefault();\n },\n onGutterTouchMove: function onGutterTouchMove(event) {\n this.onResize(event);\n event.preventDefault();\n },\n onGutterTouchEnd: function onGutterTouchEnd(event) {\n this.onResizeEnd(event);\n this.unbindTouchListeners();\n event.preventDefault();\n },\n bindMouseListeners: function bindMouseListeners() {\n var _this3 = this;\n if (!this.mouseMoveListener) {\n this.mouseMoveListener = function (event) {\n return _this3.onResize(event);\n };\n document.addEventListener('mousemove', this.mouseMoveListener);\n }\n if (!this.mouseUpListener) {\n this.mouseUpListener = function (event) {\n _this3.onResizeEnd(event);\n _this3.unbindMouseListeners();\n };\n document.addEventListener('mouseup', this.mouseUpListener);\n }\n },\n bindTouchListeners: function bindTouchListeners() {\n var _this4 = this;\n if (!this.touchMoveListener) {\n this.touchMoveListener = function (event) {\n return _this4.onResize(event.changedTouches[0]);\n };\n document.addEventListener('touchmove', this.touchMoveListener);\n }\n if (!this.touchEndListener) {\n this.touchEndListener = function (event) {\n _this4.resizeEnd(event);\n _this4.unbindTouchListeners();\n };\n document.addEventListener('touchend', this.touchEndListener);\n }\n },\n validateResize: function validateResize(newPrevPanelSize, newNextPanelSize) {\n if (newPrevPanelSize > 100 || newPrevPanelSize < 0) return false;\n if (newNextPanelSize > 100 || newNextPanelSize < 0) return false;\n var prevPanelMinSize = getVNodeProp(this.panels[this.prevPanelIndex], 'minSize');\n if (this.panels[this.prevPanelIndex].props && prevPanelMinSize && prevPanelMinSize > newPrevPanelSize) {\n return false;\n }\n var newPanelMinSize = getVNodeProp(this.panels[this.prevPanelIndex + 1], 'minSize');\n if (this.panels[this.prevPanelIndex + 1].props && newPanelMinSize && newPanelMinSize > newNextPanelSize) {\n return false;\n }\n return true;\n },\n unbindMouseListeners: function unbindMouseListeners() {\n if (this.mouseMoveListener) {\n document.removeEventListener('mousemove', this.mouseMoveListener);\n this.mouseMoveListener = null;\n }\n if (this.mouseUpListener) {\n document.removeEventListener('mouseup', this.mouseUpListener);\n this.mouseUpListener = null;\n }\n },\n unbindTouchListeners: function unbindTouchListeners() {\n if (this.touchMoveListener) {\n document.removeEventListener('touchmove', this.touchMoveListener);\n this.touchMoveListener = null;\n }\n if (this.touchEndListener) {\n document.removeEventListener('touchend', this.touchEndListener);\n this.touchEndListener = null;\n }\n },\n clear: function clear() {\n this.dragging = false;\n this.size = null;\n this.startPos = null;\n this.prevPanelElement = null;\n this.nextPanelElement = null;\n this.prevPanelSize = null;\n this.nextPanelSize = null;\n this.gutterElement = null;\n this.prevPanelIndex = null;\n },\n isStateful: function isStateful() {\n return this.stateKey != null;\n },\n getStorage: function getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n case 'session':\n return window.sessionStorage;\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState: function saveState() {\n if (isArray(this.panelSizes)) {\n this.getStorage().setItem(this.stateKey, JSON.stringify(this.panelSizes));\n }\n },\n restoreState: function restoreState() {\n var _this5 = this;\n var storage = this.getStorage();\n var stateString = storage.getItem(this.stateKey);\n if (stateString) {\n this.panelSizes = JSON.parse(stateString);\n var children = _toConsumableArray(this.$el.children).filter(function (child) {\n return child.getAttribute('data-pc-name') === 'splitterpanel';\n });\n children.forEach(function (child, i) {\n child.style.flexBasis = 'calc(' + _this5.panelSizes[i] + '% - ' + (_this5.panels.length - 1) * _this5.gutterSize + 'px)';\n });\n return true;\n }\n return false;\n }\n },\n computed: {\n panels: function panels() {\n var _this6 = this;\n var panels = [];\n this.$slots[\"default\"]().forEach(function (child) {\n if (_this6.isSplitterPanel(child)) {\n panels.push(child);\n } else if (child.children instanceof Array) {\n child.children.forEach(function (nestedChild) {\n if (_this6.isSplitterPanel(nestedChild)) {\n panels.push(nestedChild);\n }\n });\n }\n });\n return panels;\n },\n gutterStyle: function gutterStyle() {\n if (this.horizontal) return {\n width: this.gutterSize + 'px'\n };else return {\n height: this.gutterSize + 'px'\n };\n },\n horizontal: function horizontal() {\n return this.layout === 'horizontal';\n },\n getPTOptions: function getPTOptions() {\n var _this$$parentInstance;\n return {\n context: {\n nested: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.nestedState\n }\n };\n }\n }\n};\n\nvar _hoisted_1 = [\"onMousedown\", \"onTouchstart\", \"onTouchmove\", \"onTouchend\"];\nvar _hoisted_2 = [\"aria-orientation\", \"aria-valuenow\", \"onKeydown\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n \"data-p-resizing\": false\n }, _ctx.ptmi('root', $options.getPTOptions)), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.panels, function (panel, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: i\n }, [(openBlock(), createBlock(resolveDynamicComponent(panel), {\n tabindex: \"-1\"\n })), i !== $options.panels.length - 1 ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref_for: true,\n ref: \"gutter\",\n \"class\": _ctx.cx('gutter'),\n role: \"separator\",\n tabindex: \"-1\",\n onMousedown: function onMousedown($event) {\n return $options.onGutterMouseDown($event, i);\n },\n onTouchstart: function onTouchstart($event) {\n return $options.onGutterTouchStart($event, i);\n },\n onTouchmove: function onTouchmove($event) {\n return $options.onGutterTouchMove($event, i);\n },\n onTouchend: function onTouchend($event) {\n return $options.onGutterTouchEnd($event, i);\n },\n \"data-p-gutter-resizing\": false\n }, _ctx.ptm('gutter')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('gutterHandle'),\n tabindex: \"0\",\n style: [$options.gutterStyle],\n \"aria-orientation\": _ctx.layout,\n \"aria-valuenow\": $data.prevSize,\n onKeyup: _cache[0] || (_cache[0] = function () {\n return $options.onGutterKeyUp && $options.onGutterKeyUp.apply($options, arguments);\n }),\n onKeydown: function onKeydown($event) {\n return $options.onGutterKeyDown($event, i);\n },\n ref_for: true\n }, _ctx.ptm('gutterHandle')), null, 16, _hoisted_2)], 16, _hoisted_1)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-splitterpanel', {\n 'p-splitterpanel-nested': instance.isNested\n }];\n }\n};\nvar SplitterPanelStyle = BaseStyle.extend({\n name: 'splitterpanel',\n classes: classes\n});\n\nexport { SplitterPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport SplitterPanelStyle from 'primevue/splitterpanel/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitterPanel',\n \"extends\": BaseComponent,\n props: {\n size: {\n type: Number,\n \"default\": null\n },\n minSize: {\n type: Number,\n \"default\": null\n }\n },\n style: SplitterPanelStyle,\n provide: function provide() {\n return {\n $pcSplitterPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'SplitterPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n data: function data() {\n return {\n nestedState: null\n };\n },\n computed: {\n isNested: function isNested() {\n var _this = this;\n return this.$slots[\"default\"]().some(function (child) {\n _this.nestedState = child.type.name === 'Splitter' ? true : null;\n return _this.nestedState;\n });\n },\n getPTOptions: function getPTOptions() {\n return {\n context: {\n nested: this.isNested\n }\n };\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root', $options.getPTOptions)), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import { isNotEmpty } from '@primeuix/utils/object';\nimport BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-autocomplete {\\n display: inline-flex;\\n}\\n\\n.p-autocomplete-loader {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5rem;\\n right: \".concat(dt('autocomplete.padding.x'), \";\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-loader {\\n right: calc(\").concat(dt('autocomplete.dropdown.width'), \" + \").concat(dt('autocomplete.padding.x'), \");\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input {\\n flex: 1 1 auto;\\n width: 1%;\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input,\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input-multiple {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.p-autocomplete-dropdown {\\n cursor: pointer;\\n display: inline-flex;\\n cursor: pointer;\\n user-select: none;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n width: \").concat(dt('autocomplete.dropdown.width'), \";\\n border-top-right-radius: \").concat(dt('autocomplete.dropdown.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('autocomplete.dropdown.border.radius'), \";\\n background: \").concat(dt('autocomplete.dropdown.background'), \";\\n border: 1px solid \").concat(dt('autocomplete.dropdown.border.color'), \";\\n border-left: 0 none;\\n color: \").concat(dt('autocomplete.dropdown.color'), \";\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \", outline-color \").concat(dt('autocomplete.transition.duration'), \", box-shadow \").concat(dt('autocomplete.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-autocomplete-dropdown:not(:disabled):hover {\\n background: \").concat(dt('autocomplete.dropdown.hover.background'), \";\\n border-color: \").concat(dt('autocomplete.dropdown.hover.border.color'), \";\\n color: \").concat(dt('autocomplete.dropdown.hover.color'), \";\\n}\\n\\n.p-autocomplete-dropdown:not(:disabled):active {\\n background: \").concat(dt('autocomplete.dropdown.active.background'), \";\\n border-color: \").concat(dt('autocomplete.dropdown.active.border.color'), \";\\n color: \").concat(dt('autocomplete.dropdown.active.color'), \";\\n}\\n\\n.p-autocomplete-dropdown:focus-visible {\\n box-shadow: \").concat(dt('autocomplete.dropdown.focus.ring.shadow'), \";\\n outline: \").concat(dt('autocomplete.dropdown.focus.ring.width'), \" \").concat(dt('autocomplete.dropdown.focus.ring.style'), \" \").concat(dt('autocomplete.dropdown.focus.ring.color'), \";\\n outline-offset: \").concat(dt('autocomplete.dropdown.focus.ring.offset'), \";\\n}\\n\\n.p-autocomplete .p-autocomplete-overlay {\\n min-width: 100%;\\n}\\n\\n.p-autocomplete-overlay {\\n position: absolute;\\n overflow: auto;\\n top: 0;\\n left: 0;\\n background: \").concat(dt('autocomplete.overlay.background'), \";\\n color: \").concat(dt('autocomplete.overlay.color'), \";\\n border: 1px solid \").concat(dt('autocomplete.overlay.border.color'), \";\\n border-radius: \").concat(dt('autocomplete.overlay.border.radius'), \";\\n box-shadow: \").concat(dt('autocomplete.overlay.shadow'), \";\\n}\\n\\n.p-autocomplete-list {\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('autocomplete.list.gap'), \";\\n padding: \").concat(dt('autocomplete.list.padding'), \";\\n}\\n\\n.p-autocomplete-option {\\n cursor: pointer;\\n white-space: nowrap;\\n position: relative;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n padding: \").concat(dt('autocomplete.option.padding'), \";\\n border: 0 none;\\n color: \").concat(dt('autocomplete.option.color'), \";\\n background: transparent;\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \";\\n border-radius: \").concat(dt('autocomplete.option.border.radius'), \";\\n}\\n\\n.p-autocomplete-option:not(.p-autocomplete-option-selected):not(.p-disabled).p-focus {\\n background: \").concat(dt('autocomplete.option.focus.background'), \";\\n color: \").concat(dt('autocomplete.option.focus.color'), \";\\n}\\n\\n.p-autocomplete-option-selected {\\n background: \").concat(dt('autocomplete.option.selected.background'), \";\\n color: \").concat(dt('autocomplete.option.selected.color'), \";\\n}\\n\\n.p-autocomplete-option-selected.p-focus {\\n background: \").concat(dt('autocomplete.option.selected.focus.background'), \";\\n color: \").concat(dt('autocomplete.option.selected.focus.color'), \";\\n}\\n\\n.p-autocomplete-option-group {\\n margin: 0;\\n padding: \").concat(dt('autocomplete.option.group.padding'), \";\\n color: \").concat(dt('autocomplete.option.group.color'), \";\\n background: \").concat(dt('autocomplete.option.group.background'), \";\\n font-weight: \").concat(dt('autocomplete.option.group.font.weight'), \";\\n}\\n\\n.p-autocomplete-input-multiple {\\n margin: 0;\\n list-style-type: none;\\n cursor: text;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n padding: calc(\").concat(dt('autocomplete.padding.y'), \" / 2) \").concat(dt('autocomplete.padding.x'), \";\\n gap: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n color: \").concat(dt('autocomplete.color'), \";\\n background: \").concat(dt('autocomplete.background'), \";\\n border: 1px solid \").concat(dt('autocomplete.border.color'), \";\\n border-radius: \").concat(dt('autocomplete.border.radius'), \";\\n width: 100%;\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \", outline-color \").concat(dt('autocomplete.transition.duration'), \", box-shadow \").concat(dt('autocomplete.transition.duration'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('autocomplete.shadow'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled):hover .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.hover.border.color'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.focus.border.color'), \";\\n box-shadow: \").concat(dt('autocomplete.focus.ring.shadow'), \";\\n outline: \").concat(dt('autocomplete.focus.ring.width'), \" \").concat(dt('autocomplete.focus.ring.style'), \" \").concat(dt('autocomplete.focus.ring.color'), \";\\n outline-offset: \").concat(dt('autocomplete.focus.ring.offset'), \";\\n}\\n\\n.p-autocomplete.p-invalid .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.invalid.border.color'), \";\\n}\\n\\n.p-variant-filled.p-autocomplete-input-multiple {\\n background: \").concat(dt('autocomplete.filled.background'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled).p-focus .p-variant-filled.p-autocomplete-input-multiple {\\n background: \").concat(dt('autocomplete.filled.focus.background'), \";\\n}\\n\\n.p-autocomplete.p-disabled .p-autocomplete-input-multiple {\\n opacity: 1;\\n background: \").concat(dt('autocomplete.disabled.background'), \";\\n color: \").concat(dt('autocomplete.disabled.color'), \";\\n}\\n\\n.p-autocomplete-chip.p-chip {\\n padding-top: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n border-radius: \").concat(dt('autocomplete.chip.border.radius'), \";\\n}\\n\\n.p-autocomplete-input-multiple:has(.p-autocomplete-chip) {\\n padding-left: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-right: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n}\\n\\n.p-autocomplete-chip-item.p-focus .p-autocomplete-chip {\\n background: \").concat(dt('inputchips.chip.focus.background'), \";\\n color: \").concat(dt('inputchips.chip.focus.color'), \";\\n}\\n\\n.p-autocomplete-input-chip {\\n flex: 1 1 auto;\\n display: inline-flex;\\n padding-top: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n}\\n\\n.p-autocomplete-input-chip input {\\n border: 0 none;\\n outline: 0 none;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n box-shadow: none;\\n border-radius: 0;\\n width: 100%;\\n font-family: inherit;\\n font-feature-settings: inherit;\\n font-size: 1rem;\\n color: inherit;\\n}\\n\\n.p-autocomplete-input-chip input::placeholder {\\n color: \").concat(dt('autocomplete.placeholder.color'), \";\\n}\\n\\n.p-autocomplete-empty-message {\\n padding: \").concat(dt('autocomplete.empty.message.padding'), \";\\n}\\n\\n.p-autocomplete-fluid {\\n display: flex;\\n}\\n\\n.p-autocomplete-fluid:has(.p-autocomplete-dropdown) .p-autocomplete-input {\\n width: 1%;\\n}\\n\");\n};\nvar inlineStyles = {\n root: {\n position: 'relative'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-autocomplete p-component p-inputwrapper', {\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-focus': instance.focused,\n 'p-inputwrapper-filled': props.modelValue || isNotEmpty(instance.inputValue),\n 'p-inputwrapper-focus': instance.focused,\n 'p-autocomplete-open': instance.overlayVisible,\n 'p-autocomplete-fluid': instance.hasFluid\n }];\n },\n pcInput: 'p-autocomplete-input',\n inputMultiple: function inputMultiple(_ref3) {\n var props = _ref3.props,\n instance = _ref3.instance;\n return ['p-autocomplete-input-multiple', {\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled'\n }];\n },\n chipItem: function chipItem(_ref4) {\n var instance = _ref4.instance,\n i = _ref4.i;\n return ['p-autocomplete-chip-item', {\n 'p-focus': instance.focusedMultipleOptionIndex === i\n }];\n },\n pcChip: 'p-autocomplete-chip',\n chipIcon: 'p-autocomplete-chip-icon',\n inputChip: 'p-autocomplete-input-chip',\n loader: 'p-autocomplete-loader',\n dropdown: 'p-autocomplete-dropdown',\n overlay: 'p-autocomplete-overlay p-component',\n list: 'p-autocomplete-list',\n optionGroup: 'p-autocomplete-option-group',\n option: function option(_ref5) {\n var instance = _ref5.instance,\n _option = _ref5.option,\n i = _ref5.i,\n getItemOptions = _ref5.getItemOptions;\n return ['p-autocomplete-option', {\n 'p-autocomplete-option-selected': instance.isSelected(_option),\n 'p-focus': instance.focusedOptionIndex === instance.getOptionIndex(i, getItemOptions),\n 'p-disabled': instance.isOptionDisabled(_option)\n }];\n },\n emptyMessage: 'p-autocomplete-empty-message'\n};\nvar AutoCompleteStyle = BaseStyle.extend({\n name: 'autocomplete',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { AutoCompleteStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { focus, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isEmpty, isNotEmpty, equals, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Chip from 'primevue/chip';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AutoCompleteStyle from 'primevue/autocomplete/style';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, createBlock, normalizeClass, normalizeStyle, createCommentVNode, Fragment, renderList, renderSlot, createVNode, withCtx, createElementVNode, resolveDynamicComponent, toDisplayString, Transition, createSlots, createTextVNode, withDirectives } from 'vue';\n\nvar script$1 = {\n name: 'BaseAutoComplete',\n \"extends\": BaseComponent,\n props: {\n modelValue: null,\n suggestions: {\n type: Array,\n \"default\": null\n },\n optionLabel: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n scrollHeight: {\n type: String,\n \"default\": '14rem'\n },\n dropdown: {\n type: Boolean,\n \"default\": false\n },\n dropdownMode: {\n type: String,\n \"default\": 'blank'\n },\n multiple: {\n type: Boolean,\n \"default\": false\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n placeholder: {\n type: String,\n \"default\": null\n },\n dataKey: {\n type: String,\n \"default\": null\n },\n minLength: {\n type: Number,\n \"default\": 1\n },\n delay: {\n type: Number,\n \"default\": 300\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n forceSelection: {\n type: Boolean,\n \"default\": false\n },\n completeOnFocus: {\n type: Boolean,\n \"default\": false\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n panelStyle: {\n type: Object,\n \"default\": null\n },\n panelClass: {\n type: [String, Object],\n \"default\": null\n },\n overlayStyle: {\n type: Object,\n \"default\": null\n },\n overlayClass: {\n type: [String, Object],\n \"default\": null\n },\n dropdownIcon: {\n type: String,\n \"default\": null\n },\n dropdownClass: {\n type: [String, Object],\n \"default\": null\n },\n loader: {\n type: String,\n \"default\": null\n },\n loadingIcon: {\n type: String,\n \"default\": null\n },\n removeTokenIcon: {\n type: String,\n \"default\": null\n },\n chipIcon: {\n type: String,\n \"default\": null\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n autoOptionFocus: {\n type: Boolean,\n \"default\": false\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n focusOnHover: {\n type: Boolean,\n \"default\": true\n },\n searchLocale: {\n type: String,\n \"default\": undefined\n },\n searchMessage: {\n type: String,\n \"default\": null\n },\n selectionMessage: {\n type: String,\n \"default\": null\n },\n emptySelectionMessage: {\n type: String,\n \"default\": null\n },\n emptySearchMessage: {\n type: String,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n typeahead: {\n type: Boolean,\n \"default\": true\n },\n ariaLabel: {\n type: String,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n fluid: {\n type: Boolean,\n \"default\": null\n }\n },\n style: AutoCompleteStyle,\n provide: function provide() {\n return {\n $pcAutoComplete: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'AutoComplete',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'option-select', 'option-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n outsideClickListener: null,\n resizeListener: null,\n scrollHandler: null,\n overlay: null,\n virtualScroller: null,\n searchTimeout: null,\n dirty: false,\n data: function data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n focusedMultipleOptionIndex: -1,\n overlayVisible: false,\n searching: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n suggestions: function suggestions() {\n if (this.searching) {\n this.show();\n this.focusedOptionIndex = this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.searching = false;\n }\n this.autoUpdateModel();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n updated: function updated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex: function getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel: function getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue: function getOptionValue(option) {\n return option; // TODO: The 'optionValue' properties can be added.\n },\n getOptionRenderKey: function getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions: function getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled: function isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup: function isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel: function getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren: function getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this = this;\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(function (option) {\n return _this.isOptionGroup(option);\n }).length : index) + 1;\n },\n show: function show(isFocus) {\n this.$emit('before-show');\n this.dirty = true;\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n hide: function hide(isFocus) {\n var _this2 = this;\n var _hide = function _hide() {\n _this2.$emit('before-hide');\n _this2.dirty = isFocus;\n _this2.overlayVisible = false;\n _this2.clicked = false;\n _this2.focusedOptionIndex = -1;\n isFocus && focus(_this2.multiple ? _this2.$refs.focusInput : _this2.$refs.focusInput.$el);\n };\n setTimeout(function () {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus: function onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n if (!this.dirty && this.completeOnFocus) {\n this.search(event, event.target.value, 'focus');\n }\n this.dirty = true;\n this.focused = true;\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.scrollInView(this.focusedOptionIndex);\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.dirty = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n }\n this.clicked = false;\n },\n onInput: function onInput(event) {\n var _this3 = this;\n if (this.typeahead) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n var query = event.target.value;\n if (!this.multiple) {\n this.updateModel(event, query);\n }\n if (query.length === 0) {\n this.hide();\n this.$emit('clear');\n } else {\n if (query.length >= this.minLength) {\n this.focusedOptionIndex = -1;\n this.searchTimeout = setTimeout(function () {\n _this3.search(event, query, 'input');\n }, this.delay);\n } else {\n this.hide();\n }\n }\n }\n },\n onChange: function onChange(event) {\n var _this4 = this;\n if (this.forceSelection) {\n var valid = false;\n\n // when forceSelection is on, prevent called twice onOptionSelect()\n if (this.visibleOptions && !this.multiple) {\n var value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput.$el.value;\n var matchedValue = this.visibleOptions.find(function (option) {\n return _this4.isOptionMatched(option, value || '');\n });\n if (matchedValue !== undefined) {\n valid = true;\n !this.isSelected(matchedValue) && this.onOptionSelect(event, matchedValue);\n }\n }\n if (!valid) {\n if (this.multiple) this.$refs.focusInput.value = '';else this.$refs.focusInput.$el.value = '';\n this.$emit('clear');\n !this.multiple && this.updateModel(event, null);\n }\n }\n },\n onMultipleContainerFocus: function onMultipleContainerFocus() {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n this.focused = true;\n },\n onMultipleContainerBlur: function onMultipleContainerBlur() {\n this.focusedMultipleOptionIndex = -1;\n this.focused = false;\n },\n onMultipleContainerKeyDown: function onMultipleContainerKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n switch (event.code) {\n case 'ArrowLeft':\n this.onArrowLeftKeyOnMultiple(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKeyOnMultiple(event);\n break;\n case 'Backspace':\n this.onBackspaceKeyOnMultiple(event);\n break;\n }\n },\n onContainerClick: function onContainerClick(event) {\n this.clicked = true;\n if (this.disabled || this.searching || this.loading || this.isInputClicked(event) || this.isDropdownClicked(event)) {\n return;\n }\n if (!this.overlay || !this.overlay.contains(event.target)) {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n }\n },\n onDropdownClick: function onDropdownClick(event) {\n var query = undefined;\n if (this.overlayVisible) {\n this.hide(true);\n } else {\n var target = this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el;\n focus(target);\n query = target.value;\n if (this.dropdownMode === 'blank') this.search(event, '', 'dropdown');else if (this.dropdownMode === 'current') this.search(event, query, 'dropdown');\n }\n this.$emit('dropdown-click', {\n originalEvent: event,\n query: query\n });\n },\n onOptionSelect: function onOptionSelect(event, option) {\n var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var value = this.getOptionValue(option);\n if (this.multiple) {\n this.$refs.focusInput.value = '';\n if (!this.isSelected(option)) {\n this.updateModel(event, [].concat(_toConsumableArray(this.modelValue || []), [value]));\n }\n } else {\n this.updateModel(event, value);\n }\n this.$emit('item-select', {\n originalEvent: event,\n value: option\n });\n this.$emit('option-select', {\n originalEvent: event,\n value: option\n });\n isHide && this.hide(true);\n },\n onOptionMouseMove: function onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown: function onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n if (event.altKey) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var target = event.currentTarget;\n this.focusedOptionIndex = -1;\n if (this.multiple) {\n if (isEmpty(target.value) && this.hasSelectedOption) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.modelValue.length;\n } else {\n event.stopPropagation(); // To prevent onArrowLeftKeyOnMultiple method\n }\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n this.focusedOptionIndex = -1;\n this.multiple && event.stopPropagation(); // To prevent onArrowRightKeyOnMultiple method\n },\n onHomeKey: function onHomeKey(event) {\n var currentTarget = event.currentTarget;\n var len = currentTarget.value.length;\n currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);\n this.focusedOptionIndex = -1;\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var currentTarget = event.currentTarget;\n var len = currentTarget.value.length;\n currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);\n this.focusedOptionIndex = -1;\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (!this.typeahead) {\n if (this.multiple) {\n this.updateModel(event, [].concat(_toConsumableArray(this.modelValue || []), [event.target.value]));\n this.$refs.focusInput.value = '';\n }\n } else {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.hide();\n }\n }\n },\n onEscapeKey: function onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n },\n onBackspaceKey: function onBackspaceKey(event) {\n if (this.multiple) {\n if (isNotEmpty(this.modelValue) && !this.$refs.focusInput.value) {\n var removedValue = this.modelValue[this.modelValue.length - 1];\n var newValue = this.modelValue.slice(0, -1);\n this.$emit('update:modelValue', newValue);\n this.$emit('item-unselect', {\n originalEvent: event,\n value: removedValue\n });\n this.$emit('option-unselect', {\n originalEvent: event,\n value: removedValue\n });\n }\n event.stopPropagation(); // To prevent onBackspaceKeyOnMultiple method\n }\n },\n onArrowLeftKeyOnMultiple: function onArrowLeftKeyOnMultiple() {\n this.focusedMultipleOptionIndex = this.focusedMultipleOptionIndex < 1 ? 0 : this.focusedMultipleOptionIndex - 1;\n },\n onArrowRightKeyOnMultiple: function onArrowRightKeyOnMultiple() {\n this.focusedMultipleOptionIndex++;\n if (this.focusedMultipleOptionIndex > this.modelValue.length - 1) {\n this.focusedMultipleOptionIndex = -1;\n focus(this.$refs.focusInput);\n }\n },\n onBackspaceKeyOnMultiple: function onBackspaceKeyOnMultiple(event) {\n if (this.focusedMultipleOptionIndex !== -1) {\n this.removeOption(event, this.focusedMultipleOptionIndex);\n }\n },\n onOverlayEnter: function onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n },\n onOverlayAfterEnter: function onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onOverlayLeave: function onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay: function alignOverlay() {\n var target = this.multiple ? this.$refs.multiContainer : this.$refs.focusInput.$el;\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, target);\n } else {\n this.overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(this.overlay, target);\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this5 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this5.overlayVisible && _this5.overlay && _this5.isOutsideClicked(event)) {\n _this5.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this6 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, function () {\n if (_this6.overlayVisible) {\n _this6.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this7 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this7.overlayVisible && !isTouchDevice()) {\n _this7.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked: function isOutsideClicked(event) {\n return !this.overlay.contains(event.target) && !this.isInputClicked(event) && !this.isDropdownClicked(event);\n },\n isInputClicked: function isInputClicked(event) {\n if (this.multiple) return event.target === this.$refs.multiContainer || this.$refs.multiContainer.contains(event.target);else return event.target === this.$refs.focusInput.$el;\n },\n isDropdownClicked: function isDropdownClicked(event) {\n return this.$refs.dropdownButton ? event.target === this.$refs.dropdownButton || this.$refs.dropdownButton.contains(event.target) : false;\n },\n isOptionMatched: function isOptionMatched(option, value) {\n var _this$getOptionLabel;\n return this.isValidOption(option) && ((_this$getOptionLabel = this.getOptionLabel(option)) === null || _this$getOptionLabel === void 0 ? void 0 : _this$getOptionLabel.toLocaleLowerCase(this.searchLocale)) === value.toLocaleLowerCase(this.searchLocale);\n },\n isValidOption: function isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption: function isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals: function isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected: function isSelected(option) {\n var _this8 = this;\n var optionValue = this.getOptionValue(option);\n return this.multiple ? (this.modelValue || []).some(function (value) {\n return _this8.isEquals(value, optionValue);\n }) : this.isEquals(this.modelValue, this.getOptionValue(option));\n },\n findFirstOptionIndex: function findFirstOptionIndex() {\n var _this9 = this;\n return this.visibleOptions.findIndex(function (option) {\n return _this9.isValidOption(option);\n });\n },\n findLastOptionIndex: function findLastOptionIndex() {\n var _this10 = this;\n return findLastIndex(this.visibleOptions, function (option) {\n return _this10.isValidOption(option);\n });\n },\n findNextOptionIndex: function findNextOptionIndex(index) {\n var _this11 = this;\n var matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n return _this11.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex: function findPrevOptionIndex(index) {\n var _this12 = this;\n var matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n return _this12.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex: function findSelectedOptionIndex() {\n var _this13 = this;\n return this.hasSelectedOption ? this.visibleOptions.findIndex(function (option) {\n return _this13.isValidSelectedOption(option);\n }) : -1;\n },\n findFirstFocusedOptionIndex: function findFirstFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex: function findLastFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n search: function search(event, query, source) {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n }\n\n //do not search blank values on input change\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n this.searching = true;\n this.$emit('complete', {\n originalEvent: event,\n query: query\n });\n },\n removeOption: function removeOption(event, index) {\n var _this14 = this;\n var removedOption = this.modelValue[index];\n var value = this.modelValue.filter(function (_, i) {\n return i !== index;\n }).map(function (option) {\n return _this14.getOptionValue(option);\n });\n this.updateModel(event, value);\n this.$emit('item-unselect', {\n originalEvent: event,\n value: removedOption\n });\n this.$emit('option-unselect', {\n originalEvent: event,\n value: removedOption\n });\n this.dirty = true;\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n changeFocusedOptionIndex: function changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView: function scrollInView() {\n var _this15 = this;\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n this.$nextTick(function () {\n var id = index !== -1 ? \"\".concat(_this15.id, \"_\").concat(index) : _this15.focusedOptionId;\n var element = findSingle(_this15.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n } else if (!_this15.virtualScrollerDisabled) {\n _this15.virtualScroller && _this15.virtualScroller.scrollToIndex(index !== -1 ? index : _this15.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel: function autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel: function updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', {\n originalEvent: event,\n value: value\n });\n },\n flatOptions: function flatOptions(options) {\n var _this16 = this;\n return (options || []).reduce(function (result, option, index) {\n result.push({\n optionGroup: option,\n group: true,\n index: index\n });\n var optionGroupChildren = _this16.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach(function (o) {\n return result.push(o);\n });\n return result;\n }, []);\n },\n overlayRef: function overlayRef(el) {\n this.overlay = el;\n },\n listRef: function listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef: function virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions: function visibleOptions() {\n return this.optionGroupLabel ? this.flatOptions(this.suggestions) : this.suggestions || [];\n },\n inputValue: function inputValue() {\n if (isNotEmpty(this.modelValue)) {\n if (_typeof$1(this.modelValue) === 'object') {\n var label = this.getOptionLabel(this.modelValue);\n return label != null ? label : this.modelValue;\n } else {\n return this.modelValue;\n }\n } else {\n return '';\n }\n },\n hasSelectedOption: function hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey: function equalityKey() {\n return this.dataKey; // TODO: The 'optionValue' properties can be added.\n },\n searchResultMessageText: function searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) && this.overlayVisible ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText: function searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText: function emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n selectionMessageText: function selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText: function emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText: function selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n listAriaLabel: function listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n focusedOptionId: function focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? \"\".concat(this.id, \"_\").concat(this.focusedOptionIndex) : null;\n },\n focusedMultipleOptionId: function focusedMultipleOptionId() {\n return this.focusedMultipleOptionIndex !== -1 ? \"\".concat(this.id, \"_multiple_option_\").concat(this.focusedMultipleOptionIndex) : null;\n },\n ariaSetSize: function ariaSetSize() {\n var _this17 = this;\n return this.visibleOptions.filter(function (option) {\n return !_this17.isOptionGroup(option);\n }).length;\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n panelId: function panelId() {\n return this.id + '_panel';\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n InputText: InputText,\n VirtualScroller: VirtualScroller,\n Portal: Portal,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n Chip: Chip\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-activedescendant\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-setsize\", \"aria-posinset\"];\nvar _hoisted_3 = [\"id\", \"placeholder\", \"tabindex\", \"disabled\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-invalid\"];\nvar _hoisted_4 = [\"disabled\", \"aria-expanded\", \"aria-controls\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\", \"aria-label\"];\nvar _hoisted_7 = [\"id\"];\nvar _hoisted_8 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousemove\", \"data-p-selected\", \"data-p-focus\", \"data-p-disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_Chip = resolveComponent(\"Chip\");\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n var _component_Portal = resolveComponent(\"Portal\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n onClick: _cache[11] || (_cache[11] = function () {\n return $options.onContainerClick && $options.onContainerClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [!_ctx.multiple ? (openBlock(), createBlock(_component_InputText, {\n key: 0,\n ref: \"focusInput\",\n id: _ctx.inputId,\n type: \"text\",\n \"class\": normalizeClass([_ctx.cx('pcInput'), _ctx.inputClass]),\n style: normalizeStyle(_ctx.inputStyle),\n value: $options.inputValue,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n fluid: $options.hasFluid,\n disabled: _ctx.disabled,\n invalid: _ctx.invalid,\n variant: _ctx.variant,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.panelId,\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onInput: $options.onInput,\n onChange: $options.onChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcInput')\n }, null, 8, [\"id\", \"class\", \"style\", \"value\", \"placeholder\", \"tabindex\", \"fluid\", \"disabled\", \"invalid\", \"variant\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onInput\", \"onChange\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), _ctx.multiple ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 1,\n ref: \"multiContainer\",\n \"class\": _ctx.cx('inputMultiple'),\n tabindex: \"-1\",\n role: \"listbox\",\n \"aria-orientation\": \"horizontal\",\n \"aria-activedescendant\": $data.focused ? $options.focusedMultipleOptionId : undefined,\n onFocus: _cache[5] || (_cache[5] = function () {\n return $options.onMultipleContainerFocus && $options.onMultipleContainerFocus.apply($options, arguments);\n }),\n onBlur: _cache[6] || (_cache[6] = function () {\n return $options.onMultipleContainerBlur && $options.onMultipleContainerBlur.apply($options, arguments);\n }),\n onKeydown: _cache[7] || (_cache[7] = function () {\n return $options.onMultipleContainerKeyDown && $options.onMultipleContainerKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('inputMultiple')), [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.modelValue, function (option, i) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: \"\".concat(i, \"_\").concat($options.getOptionLabel(option)),\n id: $data.id + '_multiple_option_' + i,\n \"class\": _ctx.cx('chipItem', {\n i: i\n }),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": true,\n \"aria-setsize\": _ctx.modelValue.length,\n \"aria-posinset\": i + 1,\n ref_for: true\n }, _ctx.ptm('chipItem')), [renderSlot(_ctx.$slots, \"chip\", mergeProps({\n \"class\": _ctx.cx('pcChip'),\n value: option,\n index: i,\n removeCallback: function removeCallback(event) {\n return $options.removeOption(event, i);\n },\n ref_for: true\n }, _ctx.ptm('pcChip')), function () {\n return [createVNode(_component_Chip, {\n \"class\": normalizeClass(_ctx.cx('pcChip')),\n label: $options.getOptionLabel(option),\n removeIcon: _ctx.chipIcon || _ctx.removeTokenIcon,\n removable: \"\",\n unstyled: _ctx.unstyled,\n onRemove: function onRemove($event) {\n return $options.removeOption($event, i);\n },\n pt: _ctx.ptm('pcChip')\n }, {\n removeicon: withCtx(function () {\n return [renderSlot(_ctx.$slots, _ctx.$slots.chipicon ? 'chipicon' : 'removetokenicon', {\n \"class\": normalizeClass(_ctx.cx('chipIcon')),\n index: i,\n removeCallback: function removeCallback(event) {\n return $options.removeOption(event, i);\n }\n })];\n }),\n _: 2\n }, 1032, [\"class\", \"label\", \"removeIcon\", \"unstyled\", \"onRemove\", \"pt\"])];\n })], 16, _hoisted_2);\n }), 128)), createElementVNode(\"li\", mergeProps({\n \"class\": _ctx.cx('inputChip'),\n role: \"option\"\n }, _ctx.ptm('inputChip')), [createElementVNode(\"input\", mergeProps({\n ref: \"focusInput\",\n id: _ctx.inputId,\n type: \"text\",\n style: _ctx.inputStyle,\n \"class\": _ctx.inputClass,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n disabled: _ctx.disabled,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[2] || (_cache[2] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n onInput: _cache[3] || (_cache[3] = function () {\n return $options.onInput && $options.onInput.apply($options, arguments);\n }),\n onChange: _cache[4] || (_cache[4] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, _ctx.ptm('input')), null, 16, _hoisted_3)], 16)], 16, _hoisted_1)) : createCommentVNode(\"\", true), $data.searching || _ctx.loading ? renderSlot(_ctx.$slots, _ctx.$slots.loader ? 'loader' : 'loadingicon', {\n key: 2,\n \"class\": normalizeClass(_ctx.cx('loader'))\n }, function () {\n return [_ctx.loader || _ctx.loadingIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 0,\n \"class\": ['pi-spin', _ctx.cx('loader'), _ctx.loader, _ctx.loadingIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loader')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('loader'),\n spin: \"\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loader')), null, 16, [\"class\"]))];\n }) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, _ctx.$slots.dropdown ? 'dropdown' : 'dropdownbutton', {\n toggleCallback: function toggleCallback(event) {\n return $options.onDropdownClick(event);\n }\n }, function () {\n return [_ctx.dropdown ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"dropdownButton\",\n type: \"button\",\n \"class\": [_ctx.cx('dropdown'), _ctx.dropdownClass],\n disabled: _ctx.disabled,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.panelId,\n onClick: _cache[8] || (_cache[8] = function () {\n return $options.onDropdownClick && $options.onDropdownClick.apply($options, arguments);\n })\n }, _ctx.ptm('dropdown')), [renderSlot(_ctx.$slots, \"dropdownicon\", {\n \"class\": normalizeClass(_ctx.dropdownIcon)\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": _ctx.dropdownIcon\n }, _ctx.ptm('dropdownIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)) : createCommentVNode(\"\", true)];\n }), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSearchResult'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.searchResultMessageText), 17), createVNode(_component_Portal, {\n appendTo: _ctx.appendTo\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.overlayVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n id: $options.panelId,\n \"class\": [_ctx.cx('overlay'), _ctx.panelClass, _ctx.overlayClass],\n style: _objectSpread(_objectSpread(_objectSpread({}, _ctx.panelStyle), _ctx.overlayStyle), {}, {\n 'max-height': $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }),\n onClick: _cache[9] || (_cache[9] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n }),\n onKeydown: _cache[10] || (_cache[10] = function () {\n return $options.onOverlayKeyDown && $options.onOverlayKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('overlay')), [renderSlot(_ctx.$slots, \"header\", {\n value: _ctx.modelValue,\n suggestions: $options.visibleOptions\n }), createVNode(_component_VirtualScroller, mergeProps({\n ref: $options.virtualScrollerRef\n }, _ctx.virtualScrollerOptions, {\n style: {\n height: _ctx.scrollHeight\n },\n items: $options.visibleOptions,\n tabindex: -1,\n disabled: $options.virtualScrollerDisabled,\n pt: _ctx.ptm('virtualScroller')\n }), createSlots({\n content: withCtx(function (_ref) {\n var styleClass = _ref.styleClass,\n contentRef = _ref.contentRef,\n items = _ref.items,\n getItemOptions = _ref.getItemOptions,\n contentStyle = _ref.contentStyle,\n itemSize = _ref.itemSize;\n return [createElementVNode(\"ul\", mergeProps({\n ref: function ref(el) {\n return $options.listRef(el, contentRef);\n },\n id: $data.id + '_list',\n \"class\": [_ctx.cx('list'), styleClass],\n style: contentStyle,\n role: \"listbox\",\n \"aria-label\": $options.listAriaLabel\n }, _ctx.ptm('list')), [(openBlock(true), createElementBlock(Fragment, null, renderList(items, function (option, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n }, [$options.isOptionGroup(option) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('optionGroup'),\n role: \"option\",\n ref_for: true\n }, _ctx.ptm('optionGroup')), [renderSlot(_ctx.$slots, \"optiongroup\", {\n option: option.optionGroup,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 1)];\n })], 16, _hoisted_7)) : withDirectives((openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('option', {\n option: option,\n i: i,\n getItemOptions: getItemOptions\n }),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": $options.isSelected(option),\n \"aria-disabled\": $options.isOptionDisabled(option),\n \"aria-setsize\": $options.ariaSetSize,\n \"aria-posinset\": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)),\n onClick: function onClick($event) {\n return $options.onOptionSelect($event, option);\n },\n onMousemove: function onMousemove($event) {\n return $options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions));\n },\n \"data-p-selected\": $options.isSelected(option),\n \"data-p-focus\": $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions),\n \"data-p-disabled\": $options.isOptionDisabled(option),\n ref_for: true\n }, $options.getPTOptions(option, getItemOptions, i, 'option')), [renderSlot(_ctx.$slots, \"option\", {\n option: option,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionLabel(option)), 1)];\n })], 16, _hoisted_8)), [[_directive_ripple]])], 64);\n }), 128)), !items || items && items.length === 0 ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage')), [renderSlot(_ctx.$slots, \"empty\", {}, function () {\n return [createTextVNode(toDisplayString($options.searchResultMessageText), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_6)];\n }),\n _: 2\n }, [_ctx.$slots.loader ? {\n name: \"loader\",\n fn: withCtx(function (_ref2) {\n var options = _ref2.options;\n return [renderSlot(_ctx.$slots, \"loader\", {\n options: options\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"style\", \"items\", \"disabled\", \"pt\"]), renderSlot(_ctx.$slots, \"footer\", {\n value: _ctx.modelValue,\n suggestions: $options.visibleOptions\n }), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSelectedMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.selectedMessageText), 17)], 16, _hoisted_5)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\"])], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n","\n\n\n\n\n","\n\n\n","import type {\n ConnectingLink,\n LGraphNode,\n Vector2,\n INodeInputSlot,\n INodeOutputSlot,\n INodeSlot,\n ISlotType\n} from '@comfyorg/litegraph'\nimport { LiteGraph } from '@comfyorg/litegraph'\nimport { RerouteId } from '@comfyorg/litegraph/dist/Reroute'\n\nexport class ConnectingLinkImpl implements ConnectingLink {\n constructor(\n public node: LGraphNode,\n public slot: number,\n public input: INodeInputSlot | undefined,\n public output: INodeOutputSlot | undefined,\n public pos: Vector2,\n public afterRerouteId?: RerouteId\n ) {}\n\n static createFromPlainObject(obj: ConnectingLink) {\n return new ConnectingLinkImpl(\n obj.node,\n obj.slot,\n obj.input,\n obj.output,\n obj.pos,\n obj.afterRerouteId\n )\n }\n\n get type(): ISlotType | null {\n const result = this.input ? this.input.type : this.output?.type ?? null\n return result === -1 ? null : result\n }\n\n /**\n * Which slot type is release and need to be reconnected.\n * - 'output' means we need a new node's outputs slot to connect with this link\n */\n get releaseSlotType(): 'input' | 'output' {\n return this.output ? 'input' : 'output'\n }\n\n connectTo(newNode: LGraphNode) {\n const newNodeSlots =\n this.releaseSlotType === 'output' ? newNode.outputs : newNode.inputs\n if (!newNodeSlots) return\n\n const newNodeSlot = newNodeSlots.findIndex((slot: INodeSlot) =>\n LiteGraph.isValidConnection(slot.type, this.type)\n )\n\n if (newNodeSlot === -1) {\n console.warn(\n `Could not find slot with type ${this.type} on node ${newNode.title}. This should never happen`\n )\n return\n }\n\n if (this.releaseSlotType === 'input') {\n this.node.connect(this.slot, newNode, newNodeSlot, this.afterRerouteId)\n } else {\n newNode.connect(newNodeSlot, this.node, this.slot, this.afterRerouteId)\n }\n }\n}\n\nexport type CanvasDragAndDropData = {\n type: 'add-node'\n data: T\n}\n","import { defineStore } from 'pinia'\nimport { ref } from 'vue'\n\nexport const useSearchBoxStore = defineStore('searchBox', () => {\n const visible = ref(false)\n function toggleVisible() {\n visible.value = !visible.value\n }\n\n return {\n visible,\n toggleVisible\n }\n})\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n _ref.dt;\n return \"\\n.p-buttongroup .p-button {\\n margin: 0;\\n}\\n\\n.p-buttongroup .p-button:not(:last-child),\\n.p-buttongroup .p-button:not(:last-child):hover {\\n border-right: 0 none;\\n}\\n\\n.p-buttongroup .p-button:not(:first-of-type):not(:last-of-type) {\\n border-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:first-of-type:not(:only-of-type) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:last-of-type:not(:only-of-type) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:focus {\\n position: relative;\\n z-index: 1;\\n}\\n\";\n};\nvar classes = {\n root: 'p-buttongroup p-component'\n};\nvar ButtonGroupStyle = BaseStyle.extend({\n name: 'buttongroup',\n theme: theme,\n classes: classes\n});\n\nexport { ButtonGroupStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ButtonGroupStyle from 'primevue/buttongroup/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseButtonGroup',\n \"extends\": BaseComponent,\n style: ButtonGroupStyle,\n provide: function provide() {\n return {\n $pcButtonGroup: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ButtonGroup',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"group\"\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-toast {\\n width: \".concat(dt('toast.width'), \";\\n white-space: pre-line;\\n word-break: break-word;\\n}\\n\\n.p-toast-message {\\n margin: 0 0 1rem 0;\\n}\\n\\n.p-toast-message-icon {\\n flex-shrink: 0;\\n font-size: \").concat(dt('toast.icon.size'), \";\\n width: \").concat(dt('toast.icon.size'), \";\\n height: \").concat(dt('toast.icon.size'), \";\\n}\\n\\n.p-toast-message-content {\\n display: flex;\\n align-items: flex-start;\\n padding: \").concat(dt('toast.content.padding'), \";\\n gap: \").concat(dt('toast.content.gap'), \";\\n}\\n\\n.p-toast-message-text {\\n flex: 1 1 auto;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('toast.text.gap'), \";\\n}\\n\\n.p-toast-summary {\\n font-weight: \").concat(dt('toast.summary.font.weight'), \";\\n font-size: \").concat(dt('toast.summary.font.size'), \";\\n}\\n\\n.p-toast-detail {\\n font-weight: \").concat(dt('toast.detail.font.weight'), \";\\n font-size: \").concat(dt('toast.detail.font.size'), \";\\n}\\n\\n.p-toast-close-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n cursor: pointer;\\n background: transparent;\\n transition: background \").concat(dt('toast.transition.duration'), \", color \").concat(dt('toast.transition.duration'), \", outline-color \").concat(dt('toast.transition.duration'), \", box-shadow \").concat(dt('toast.transition.duration'), \";\\n outline-color: transparent;\\n color: inherit;\\n width: \").concat(dt('toast.close.button.width'), \";\\n height: \").concat(dt('toast.close.button.height'), \";\\n border-radius: \").concat(dt('toast.close.button.border.radius'), \";\\n margin: -25% 0 0 0;\\n right: -25%;\\n padding: 0;\\n border: none;\\n user-select: none;\\n}\\n\\n.p-toast-message-info,\\n.p-toast-message-success,\\n.p-toast-message-warn,\\n.p-toast-message-error,\\n.p-toast-message-secondary,\\n.p-toast-message-contrast {\\n border-width: \").concat(dt('toast.border.width'), \";\\n border-style: solid;\\n backdrop-filter: blur(\").concat(dt('toast.blur'), \");\\n border-radius: \").concat(dt('toast.border.radius'), \";\\n}\\n\\n.p-toast-close-icon {\\n font-size: \").concat(dt('toast.close.icon.size'), \";\\n width: \").concat(dt('toast.close.icon.size'), \";\\n height: \").concat(dt('toast.close.icon.size'), \";\\n}\\n\\n.p-toast-close-button:focus-visible {\\n outline-width: \").concat(dt('focus.ring.width'), \";\\n outline-style: \").concat(dt('focus.ring.style'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-toast-message-info {\\n background: \").concat(dt('toast.info.background'), \";\\n border-color: \").concat(dt('toast.info.border.color'), \";\\n color: \").concat(dt('toast.info.color'), \";\\n box-shadow: \").concat(dt('toast.info.shadow'), \";\\n}\\n\\n.p-toast-message-info .p-toast-detail {\\n color: \").concat(dt('toast.info.detail.color'), \";\\n}\\n\\n.p-toast-message-info .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.info.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.info.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-info .p-toast-close-button:hover {\\n background: \").concat(dt('toast.info.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-success {\\n background: \").concat(dt('toast.success.background'), \";\\n border-color: \").concat(dt('toast.success.border.color'), \";\\n color: \").concat(dt('toast.success.color'), \";\\n box-shadow: \").concat(dt('toast.success.shadow'), \";\\n}\\n\\n.p-toast-message-success .p-toast-detail {\\n color: \").concat(dt('toast.success.detail.color'), \";\\n}\\n\\n.p-toast-message-success .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.success.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.success.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-success .p-toast-close-button:hover {\\n background: \").concat(dt('toast.success.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-warn {\\n background: \").concat(dt('toast.warn.background'), \";\\n border-color: \").concat(dt('toast.warn.border.color'), \";\\n color: \").concat(dt('toast.warn.color'), \";\\n box-shadow: \").concat(dt('toast.warn.shadow'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-detail {\\n color: \").concat(dt('toast.warn.detail.color'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.warn.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.warn.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-close-button:hover {\\n background: \").concat(dt('toast.warn.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-error {\\n background: \").concat(dt('toast.error.background'), \";\\n border-color: \").concat(dt('toast.error.border.color'), \";\\n color: \").concat(dt('toast.error.color'), \";\\n box-shadow: \").concat(dt('toast.error.shadow'), \";\\n}\\n\\n.p-toast-message-error .p-toast-detail {\\n color: \").concat(dt('toast.error.detail.color'), \";\\n}\\n\\n.p-toast-message-error .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.error.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.error.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-error .p-toast-close-button:hover {\\n background: \").concat(dt('toast.error.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-secondary {\\n background: \").concat(dt('toast.secondary.background'), \";\\n border-color: \").concat(dt('toast.secondary.border.color'), \";\\n color: \").concat(dt('toast.secondary.color'), \";\\n box-shadow: \").concat(dt('toast.secondary.shadow'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-detail {\\n color: \").concat(dt('toast.secondary.detail.color'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.secondary.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.secondary.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-close-button:hover {\\n background: \").concat(dt('toast.secondary.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-contrast {\\n background: \").concat(dt('toast.contrast.background'), \";\\n border-color: \").concat(dt('toast.contrast.border.color'), \";\\n color: \").concat(dt('toast.contrast.color'), \";\\n box-shadow: \").concat(dt('toast.contrast.shadow'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-detail {\\n color: \").concat(dt('toast.contrast.detail.color'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.contrast.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.contrast.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-close-button:hover {\\n background: \").concat(dt('toast.contrast.close.button.hover.background'), \";\\n}\\n\\n.p-toast-top-center {\\n transform: translateX(-50%);\\n}\\n\\n.p-toast-bottom-center {\\n transform: translateX(-50%);\\n}\\n\\n.p-toast-center {\\n min-width: 20vw;\\n transform: translate(-50%, -50%);\\n}\\n\\n.p-toast-message-enter-from {\\n opacity: 0;\\n transform: translateY(50%);\\n}\\n\\n.p-toast-message-leave-from {\\n max-height: 1000px;\\n}\\n\\n.p-toast .p-toast-message.p-toast-message-leave-to {\\n max-height: 0;\\n opacity: 0;\\n margin-bottom: 0;\\n overflow: hidden;\\n}\\n\\n.p-toast-message-enter-active {\\n transition: transform 0.3s, opacity 0.3s;\\n}\\n\\n.p-toast-message-leave-active {\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin-bottom 0.3s;\\n}\\n\");\n};\n\n// Position\nvar inlineStyles = {\n root: function root(_ref2) {\n var position = _ref2.position;\n return {\n position: 'fixed',\n top: position === 'top-right' || position === 'top-left' || position === 'top-center' ? '20px' : position === 'center' ? '50%' : null,\n right: (position === 'top-right' || position === 'bottom-right') && '20px',\n bottom: (position === 'bottom-left' || position === 'bottom-right' || position === 'bottom-center') && '20px',\n left: position === 'top-left' || position === 'bottom-left' ? '20px' : position === 'center' || position === 'top-center' || position === 'bottom-center' ? '50%' : null\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return ['p-toast p-component p-toast-' + props.position];\n },\n message: function message(_ref4) {\n var props = _ref4.props;\n return ['p-toast-message', {\n 'p-toast-message-info': props.message.severity === 'info' || props.message.severity === undefined,\n 'p-toast-message-warn': props.message.severity === 'warn',\n 'p-toast-message-error': props.message.severity === 'error',\n 'p-toast-message-success': props.message.severity === 'success',\n 'p-toast-message-secondary': props.message.severity === 'secondary',\n 'p-toast-message-contrast': props.message.severity === 'contrast'\n }];\n },\n messageContent: 'p-toast-message-content',\n messageIcon: function messageIcon(_ref5) {\n var props = _ref5.props;\n return ['p-toast-message-icon', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, props.infoIcon, props.message.severity === 'info'), props.warnIcon, props.message.severity === 'warn'), props.errorIcon, props.message.severity === 'error'), props.successIcon, props.message.severity === 'success')];\n },\n messageText: 'p-toast-message-text',\n summary: 'p-toast-summary',\n detail: 'p-toast-detail',\n closeButton: 'p-toast-close-button',\n closeIcon: 'p-toast-close-icon'\n};\nvar ToastStyle = BaseStyle.extend({\n name: 'toast',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { ToastStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { setAttribute } from '@primeuix/utils/dom';\nimport { isEmpty } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport Portal from 'primevue/portal';\nimport ToastEventBus from 'primevue/toasteventbus';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ToastStyle from 'primevue/toast/style';\nimport CheckIcon from '@primevue/icons/check';\nimport ExclamationTriangleIcon from '@primevue/icons/exclamationtriangle';\nimport InfoCircleIcon from '@primevue/icons/infocircle';\nimport TimesIcon from '@primevue/icons/times';\nimport TimesCircleIcon from '@primevue/icons/timescircle';\nimport Ripple from 'primevue/ripple';\nimport { resolveDirective, openBlock, createElementBlock, mergeProps, createBlock, resolveDynamicComponent, Fragment, createElementVNode, toDisplayString, normalizeProps, withDirectives, createCommentVNode, resolveComponent, withCtx, createVNode, TransitionGroup, renderList } from 'vue';\n\nvar script$2 = {\n name: 'BaseToast',\n \"extends\": BaseComponent,\n props: {\n group: {\n type: String,\n \"default\": null\n },\n position: {\n type: String,\n \"default\": 'top-right'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n breakpoints: {\n type: Object,\n \"default\": null\n },\n closeIcon: {\n type: String,\n \"default\": undefined\n },\n infoIcon: {\n type: String,\n \"default\": undefined\n },\n warnIcon: {\n type: String,\n \"default\": undefined\n },\n errorIcon: {\n type: String,\n \"default\": undefined\n },\n successIcon: {\n type: String,\n \"default\": undefined\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n style: ToastStyle,\n provide: function provide() {\n return {\n $pcToast: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'ToastMessage',\n hostName: 'Toast',\n \"extends\": BaseComponent,\n emits: ['close'],\n closeTimeout: null,\n props: {\n message: {\n type: null,\n \"default\": null\n },\n templates: {\n type: Object,\n \"default\": null\n },\n closeIcon: {\n type: String,\n \"default\": null\n },\n infoIcon: {\n type: String,\n \"default\": null\n },\n warnIcon: {\n type: String,\n \"default\": null\n },\n errorIcon: {\n type: String,\n \"default\": null\n },\n successIcon: {\n type: String,\n \"default\": null\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n mounted: function mounted() {\n var _this = this;\n if (this.message.life) {\n this.closeTimeout = setTimeout(function () {\n _this.close({\n message: _this.message,\n type: 'life-end'\n });\n }, this.message.life);\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.clearCloseTimeout();\n },\n methods: {\n close: function close(params) {\n this.$emit('close', params);\n },\n onCloseClick: function onCloseClick() {\n this.clearCloseTimeout();\n this.close({\n message: this.message,\n type: 'close'\n });\n },\n clearCloseTimeout: function clearCloseTimeout() {\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n this.closeTimeout = null;\n }\n }\n },\n computed: {\n iconComponent: function iconComponent() {\n return {\n info: !this.infoIcon && InfoCircleIcon,\n success: !this.successIcon && CheckIcon,\n warn: !this.warnIcon && ExclamationTriangleIcon,\n error: !this.errorIcon && TimesCircleIcon\n }[this.message.severity];\n },\n closeAriaLabel: function closeAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n }\n },\n components: {\n TimesIcon: TimesIcon,\n InfoCircleIcon: InfoCircleIcon,\n CheckIcon: CheckIcon,\n ExclamationTriangleIcon: ExclamationTriangleIcon,\n TimesCircleIcon: TimesCircleIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$1(e, r, t) { return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$1(t) { var i = _toPrimitive$1(t, \"string\"); return \"symbol\" == _typeof$1(i) ? i : i + \"\"; }\nfunction _toPrimitive$1(t, r) { if (\"object\" != _typeof$1(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$1(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-label\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": [_ctx.cx('message'), $props.message.styleClass],\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, _ctx.ptm('message')), [$props.templates.container ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.container), {\n key: 0,\n message: $props.message,\n closeCallback: $options.onCloseClick\n }, null, 8, [\"message\", \"closeCallback\"])) : (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('messageContent'), $props.message.contentStyleClass]\n }, _ctx.ptm('messageContent')), [!$props.templates.message ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [(openBlock(), createBlock(resolveDynamicComponent($props.templates.messageicon ? $props.templates.messageicon : $props.templates.icon ? $props.templates.icon : $options.iconComponent && $options.iconComponent.name ? $options.iconComponent : 'span'), mergeProps({\n \"class\": _ctx.cx('messageIcon')\n }, _ctx.ptm('messageIcon')), null, 16, [\"class\"])), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('messageText')\n }, _ctx.ptm('messageText')), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('summary')\n }, _ctx.ptm('summary')), toDisplayString($props.message.summary), 17), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('detail')\n }, _ctx.ptm('detail')), toDisplayString($props.message.detail), 17)], 16)], 64)) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.message), {\n key: 1,\n message: $props.message\n }, null, 8, [\"message\"])), $props.message.closable !== false ? (openBlock(), createElementBlock(\"div\", normalizeProps(mergeProps({\n key: 2\n }, _ctx.ptm('buttonContainer'))), [withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('closeButton'),\n type: \"button\",\n \"aria-label\": $options.closeAriaLabel,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onCloseClick && $options.onCloseClick.apply($options, arguments);\n }),\n autofocus: \"\"\n }, _objectSpread$1(_objectSpread$1({}, $props.closeButtonProps), _ctx.ptm('closeButton'))), [(openBlock(), createBlock(resolveDynamicComponent($props.templates.closeicon || 'TimesIcon'), mergeProps({\n \"class\": [_ctx.cx('closeIcon'), $props.closeIcon]\n }, _ctx.ptm('closeIcon')), null, 16, [\"class\"]))], 16, _hoisted_1)), [[_directive_ripple]])], 16)) : createCommentVNode(\"\", true)], 16))], 16);\n}\n\nscript$1.render = render$1;\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar messageIdx = 0;\nvar script = {\n name: 'Toast',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['close', 'life-end'],\n data: function data() {\n return {\n messages: []\n };\n },\n styleElement: null,\n mounted: function mounted() {\n ToastEventBus.on('add', this.onAdd);\n ToastEventBus.on('remove', this.onRemove);\n ToastEventBus.on('remove-group', this.onRemoveGroup);\n ToastEventBus.on('remove-all-groups', this.onRemoveAllGroups);\n if (this.breakpoints) {\n this.createStyle();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.destroyStyle();\n if (this.$refs.container && this.autoZIndex) {\n ZIndex.clear(this.$refs.container);\n }\n ToastEventBus.off('add', this.onAdd);\n ToastEventBus.off('remove', this.onRemove);\n ToastEventBus.off('remove-group', this.onRemoveGroup);\n ToastEventBus.off('remove-all-groups', this.onRemoveAllGroups);\n },\n methods: {\n add: function add(message) {\n if (message.id == null) {\n message.id = messageIdx++;\n }\n this.messages = [].concat(_toConsumableArray(this.messages), [message]);\n },\n remove: function remove(params) {\n var index = this.messages.findIndex(function (m) {\n return m.id === params.message.id;\n });\n if (index !== -1) {\n this.messages.splice(index, 1);\n this.$emit(params.type, {\n message: params.message\n });\n }\n },\n onAdd: function onAdd(message) {\n if (this.group == message.group) {\n this.add(message);\n }\n },\n onRemove: function onRemove(message) {\n this.remove({\n message: message,\n type: 'close'\n });\n },\n onRemoveGroup: function onRemoveGroup(group) {\n if (this.group === group) {\n this.messages = [];\n }\n },\n onRemoveAllGroups: function onRemoveAllGroups() {\n this.messages = [];\n },\n onEnter: function onEnter() {\n this.$refs.container.setAttribute(this.attributeSelector, '');\n if (this.autoZIndex) {\n ZIndex.set('modal', this.$refs.container, this.baseZIndex || this.$primevue.config.zIndex.modal);\n }\n },\n onLeave: function onLeave() {\n var _this = this;\n if (this.$refs.container && this.autoZIndex && isEmpty(this.messages)) {\n setTimeout(function () {\n ZIndex.clear(_this.$refs.container);\n }, 200);\n }\n },\n createStyle: function createStyle() {\n if (!this.styleElement && !this.isUnstyled) {\n var _this$$primevue;\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', (_this$$primevue = this.$primevue) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.config) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.csp) === null || _this$$primevue === void 0 ? void 0 : _this$$primevue.nonce);\n document.head.appendChild(this.styleElement);\n var innerHTML = '';\n for (var breakpoint in this.breakpoints) {\n var breakpointStyle = '';\n for (var styleProp in this.breakpoints[breakpoint]) {\n breakpointStyle += styleProp + ':' + this.breakpoints[breakpoint][styleProp] + '!important;';\n }\n innerHTML += \"\\n @media screen and (max-width: \".concat(breakpoint, \") {\\n .p-toast[\").concat(this.attributeSelector, \"] {\\n \").concat(breakpointStyle, \"\\n }\\n }\\n \");\n }\n this.styleElement.innerHTML = innerHTML;\n }\n },\n destroyStyle: function destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n }\n },\n computed: {\n attributeSelector: function attributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n ToastMessage: script$1,\n Portal: Portal\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_ToastMessage = resolveComponent(\"ToastMessage\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, null, {\n \"default\": withCtx(function () {\n return [createElementVNode(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root', true, {\n position: _ctx.position\n })\n }, _ctx.ptmi('root')), [createVNode(TransitionGroup, mergeProps({\n name: \"p-toast-message\",\n tag: \"div\",\n onEnter: $options.onEnter,\n onLeave: $options.onLeave\n }, _objectSpread({}, _ctx.ptm('transition'))), {\n \"default\": withCtx(function () {\n return [(openBlock(true), createElementBlock(Fragment, null, renderList($data.messages, function (msg) {\n return openBlock(), createBlock(_component_ToastMessage, {\n key: msg.id,\n message: msg,\n templates: _ctx.$slots,\n closeIcon: _ctx.closeIcon,\n infoIcon: _ctx.infoIcon,\n warnIcon: _ctx.warnIcon,\n errorIcon: _ctx.errorIcon,\n successIcon: _ctx.successIcon,\n closeButtonProps: _ctx.closeButtonProps,\n unstyled: _ctx.unstyled,\n onClose: _cache[0] || (_cache[0] = function ($event) {\n return $options.remove($event);\n }),\n pt: _ctx.pt\n }, null, 8, [\"message\", \"templates\", \"closeIcon\", \"infoIcon\", \"warnIcon\", \"errorIcon\", \"successIcon\", \"closeButtonProps\", \"unstyled\", \"pt\"]);\n }), 128))];\n }),\n _: 1\n }, 16, [\"onEnter\", \"onLeave\"])], 16)];\n }),\n _: 1\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-menubar {\\n display: flex;\\n align-items: center;\\n background: \".concat(dt('menubar.background'), \";\\n border: 1px solid \").concat(dt('menubar.border.color'), \";\\n border-radius: \").concat(dt('menubar.border.radius'), \";\\n color: \").concat(dt('menubar.color'), \";\\n padding: \").concat(dt('menubar.padding'), \";\\n gap: \").concat(dt('menubar.gap'), \";\\n}\\n\\n.p-menubar-start,\\n.p-megamenu-end {\\n display: flex;\\n align-items: center;\\n}\\n\\n.p-menubar-root-list,\\n.p-menubar-submenu {\\n display: flex;\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n outline: 0 none;\\n}\\n\\n.p-menubar-root-list {\\n align-items: center;\\n flex-wrap: wrap;\\n gap: \").concat(dt('menubar.gap'), \";\\n}\\n\\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\\n border-radius: \").concat(dt('menubar.base.item.border.radius'), \";\\n}\\n\\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\\n padding: \").concat(dt('menubar.base.item.padding'), \";\\n}\\n\\n.p-menubar-item-content {\\n transition: background \").concat(dt('menubar.transition.duration'), \", color \").concat(dt('menubar.transition.duration'), \";\\n border-radius: \").concat(dt('menubar.item.border.radius'), \";\\n color: \").concat(dt('menubar.item.color'), \";\\n}\\n\\n.p-menubar-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('menubar.item.padding'), \";\\n gap: \").concat(dt('menubar.item.gap'), \";\\n user-select: none;\\n outline: 0 none;\\n}\\n\\n.p-menubar-item-label {\\n line-height: 1;\\n}\\n\\n.p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.color'), \";\\n}\\n\\n.p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('menubar.submenu.icon.size'), \";\\n width: \").concat(dt('menubar.submenu.icon.size'), \";\\n height: \").concat(dt('menubar.submenu.icon.size'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content {\\n color: \").concat(dt('menubar.item.focus.color'), \";\\n background: \").concat(dt('menubar.item.focus.background'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover {\\n color: \").concat(dt('menubar.item.focus.color'), \";\\n background: \").concat(dt('menubar.item.focus.background'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content {\\n color: \").concat(dt('menubar.item.active.color'), \";\\n background: \").concat(dt('menubar.item.active.background'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.active.color'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.active.color'), \";\\n}\\n\\n.p-menubar-submenu {\\n display: none;\\n position: absolute;\\n min-width: 12.5rem;\\n z-index: 1;\\n background: \").concat(dt('menubar.submenu.background'), \";\\n border: 1px solid \").concat(dt('menubar.submenu.border.color'), \";\\n border-radius: \").concat(dt('menubar.border.radius'), \";\\n box-shadow: \").concat(dt('menubar.submenu.shadow'), \";\\n color: \").concat(dt('menubar.submenu.color'), \";\\n flex-direction: column;\\n padding: \").concat(dt('menubar.submenu.padding'), \";\\n gap: \").concat(dt('menubar.submenu.gap'), \";\\n}\\n\\n.p-menubar-submenu .p-menubar-separator {\\n border-top: 1px solid \").concat(dt('menubar.separator.border.color'), \";\\n}\\n\\n.p-menubar-submenu .p-menubar-item {\\n position: relative;\\n}\\n\\n .p-menubar-submenu > .p-menubar-item-active > .p-menubar-submenu {\\n display: block;\\n left: 100%;\\n top: 0;\\n}\\n\\n.p-menubar-end {\\n margin-left: auto;\\n align-self: center;\\n}\\n\\n.p-menubar-button {\\n display: none;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n width: \").concat(dt('menubar.mobile.button.size'), \";\\n height: \").concat(dt('menubar.mobile.button.size'), \";\\n position: relative;\\n color: \").concat(dt('menubar.mobile.button.color'), \";\\n border: 0 none;\\n background: transparent;\\n border-radius: \").concat(dt('menubar.mobile.button.border.radius'), \";\\n transition: background \").concat(dt('menubar.transition.duration'), \", color \").concat(dt('menubar.transition.duration'), \", outline-color \").concat(dt('menubar.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-menubar-button:hover {\\n color: \").concat(dt('menubar.mobile.button.hover.color'), \";\\n background: \").concat(dt('menubar.mobile.button.hover.background'), \";\\n}\\n\\n.p-menubar-button:focus-visible {\\n box-shadow: \").concat(dt('menubar.mobile.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('menubar.mobile.button.focus.ring.width'), \" \").concat(dt('menubar.mobile.button.focus.ring.style'), \" \").concat(dt('menubar.mobile.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('menubar.mobile.button.focus.ring.offset'), \";\\n}\\n\\n.p-menubar-mobile {\\n position: relative;\\n}\\n\\n.p-menubar-mobile .p-menubar-button {\\n display: flex;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list {\\n position: absolute;\\n display: none;\\n width: 100%;\\n padding: \").concat(dt('menubar.submenu.padding'), \";\\n background: \").concat(dt('menubar.submenu.background'), \";\\n border: 1px solid \").concat(dt('menubar.submenu.border.color'), \";\\n box-shadow: \").concat(dt('menubar.submenu.shadow'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\\n border-radius: \").concat(dt('menubar.item.border.radius'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\\n padding: \").concat(dt('menubar.item.padding'), \";\\n}\\n\\n.p-menubar-mobile-active .p-menubar-root-list {\\n display: flex;\\n flex-direction: column;\\n top: 100%;\\n left: 0;\\n z-index: 1;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list .p-menubar-item {\\n width: 100%;\\n position: static;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list .p-menubar-separator {\\n border-top: 1px solid \").concat(dt('menubar.separator.border.color'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content .p-menubar-submenu-icon {\\n margin-left: auto;\\n transition: transform 0.2s;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n transform: rotate(-180deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-submenu .p-menubar-submenu-icon {\\n transition: transform 0.2s;\\n transform: rotate(90deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n transform: rotate(-90deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-submenu {\\n width: 100%;\\n position: static;\\n box-shadow: none;\\n border: 0 none;\\n padding-left: \").concat(dt('menubar.submenu.mobile.indent'), \";\\n}\\n\");\n};\nvar inlineStyles = {\n submenu: function submenu(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return {\n display: instance.isItemActive(processedItem) ? 'flex' : 'none'\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var instance = _ref3.instance;\n return ['p-menubar p-component', {\n 'p-menubar-mobile': instance.queryMatches,\n 'p-menubar-mobile-active': instance.mobileActive\n }];\n },\n start: 'p-menubar-start',\n button: 'p-menubar-button',\n rootList: 'p-menubar-root-list',\n item: function item(_ref4) {\n var instance = _ref4.instance,\n processedItem = _ref4.processedItem;\n return ['p-menubar-item', {\n 'p-menubar-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-menubar-item-content',\n itemLink: 'p-menubar-item-link',\n itemIcon: 'p-menubar-item-icon',\n itemLabel: 'p-menubar-item-label',\n submenuIcon: 'p-menubar-submenu-icon',\n submenu: 'p-menubar-submenu',\n separator: 'p-menubar-separator',\n end: 'p-menubar-end'\n};\nvar MenubarStyle = BaseStyle.extend({\n name: 'menubar',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { MenubarStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { focus, findSingle, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MenubarStyle from 'primevue/menubar/style';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, createBlock, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, normalizeStyle, renderSlot, createVNode, normalizeProps, guardReactiveProps } from 'vue';\n\nvar script$2 = {\n name: 'BaseMenubar',\n \"extends\": BaseComponent,\n props: {\n model: {\n type: Array,\n \"default\": null\n },\n buttonProps: {\n type: null,\n \"default\": null\n },\n breakpoint: {\n type: String,\n \"default\": '960px'\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: MenubarStyle,\n provide: function provide() {\n return {\n $pcMenubar: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'MenubarSub',\n hostName: 'Menubar',\n \"extends\": BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n \"default\": null\n },\n root: {\n type: Boolean,\n \"default\": false\n },\n popup: {\n type: Boolean,\n \"default\": false\n },\n mobileActive: {\n type: Boolean,\n \"default\": false\n },\n templates: {\n type: Object,\n \"default\": null\n },\n level: {\n type: Number,\n \"default\": 0\n },\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n }\n },\n list: null,\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index: index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n level: this.level\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n getAriaPosInset: function getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).length + 1;\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions(processedItem, index, 'itemLink')),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions(processedItem, index, 'itemIcon')),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions(processedItem, index, 'itemLabel')),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions(processedItem, index, 'submenuIcon'))\n };\n }\n },\n computed: {\n calculateAriaSetSize: function calculateAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && _this.getItemProp(processedItem, 'separator');\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this2 = this;\n return this.items.filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && !_this2.getItemProp(processedItem, 'separator');\n }).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_3 = [\"href\", \"target\"];\nvar _hoisted_4 = [\"id\"];\nvar _hoisted_5 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_MenubarSub = resolveComponent(\"MenubarSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"ul\", mergeProps({\n \"class\": $props.level === 0 ? _ctx.cx('rootList') : _ctx.cx('submenu')\n }, $props.level === 0 ? _ctx.ptm('rootList') : _ctx.ptm('submenu')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize,\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'item'), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemContent')), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLink')), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemIcon')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLabel')), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_4), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), {\n key: 0,\n root: $props.root,\n active: $options.isItemActive(processedItem),\n \"class\": normalizeClass(_ctx.cx('submenuIcon'))\n }, null, 8, [\"root\", \"active\", \"class\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.root ? 'AngleDownIcon' : 'AngleRightIcon'), mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_3)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n root: $props.root,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"root\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_2), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_MenubarSub, {\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n menuId: $props.menuId,\n role: \"menu\",\n style: normalizeStyle(_ctx.sx('submenu', true, {\n processedItem: processedItem\n })),\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n mobileActive: $props.mobileActive,\n activeItemPath: $props.activeItemPath,\n templates: $props.templates,\n level: $props.level + 1,\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n })\n }, null, 8, [\"id\", \"menuId\", \"style\", \"focusedItemId\", \"items\", \"mobileActive\", \"activeItemPath\", \"templates\", \"level\", \"aria-labelledby\", \"pt\", \"unstyled\"])) : createCommentVNode(\"\", true)], 16, _hoisted_1$1)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n style: $options.getItemProp(processedItem, 'style'),\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_5)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'Menubar',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount: function beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n if (this.container) {\n ZIndex.clear(this.container);\n }\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n var _this = this;\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(function () {\n _this.show();\n }, 1);\n }\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show: function show() {\n focus(this.menubar);\n },\n hide: function hide(event, isFocus) {\n var _this2 = this;\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(function () {\n focus(_this2.$refs.menubutton);\n }, 0);\n }\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: this.findFirstFocusedItemIndex(),\n level: 0,\n parentKey: ''\n };\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n grouped && activeItemPath.push(processedItem);\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick: function onItemClick(event) {\n var originalEvent = event.originalEvent,\n processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var root = isEmpty(processedItem.parent);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n var rootProcessedItem = root ? processedItem : this.activeItemPath.find(function (p) {\n return p.parentKey === '';\n });\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n this.mobileActive = false;\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n menuButtonClick: function menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown: function menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var root = processedItem ? isEmpty(processedItem.parent) : null;\n if (root) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.onArrowRightKey(event);\n }\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n }\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n var _this3 = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var root = isEmpty(processedItem.parent);\n if (root) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n var itemIndex = this.findLastItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this3.focusedItemInfo.parentKey;\n });\n } else {\n var _itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, _itemIndex);\n }\n }\n event.preventDefault();\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this4 = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = processedItem ? this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n }) : null;\n if (parentItem) {\n this.onItemChange({\n originalEvent: event,\n processedItem: parentItem\n });\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this4.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = processedItem ? this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n }) : null;\n if (parentItem) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.onArrowDownKey(event);\n }\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemId), \"\\\"]\"));\n var anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n if (this.focusedItemInfo.level !== 0) {\n var _focusedItemInfo = this.focusedItemInfo;\n this.hide(event, false);\n this.focusedItemInfo = {\n index: Number(_focusedItemInfo.parentKey.split('_')[0]),\n level: 0,\n parentKey: ''\n };\n }\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this5 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this5.container && !_this5.container.contains(event.target);\n var isOutsideTarget = !(_this5.target && (_this5.target === event.target || _this5.target.contains(event.target)));\n if (isOutsideContainer && isOutsideTarget) {\n _this5.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this6 = this;\n if (!this.resizeListener) {\n this.resizeListener = function (event) {\n if (!isTouchDevice()) {\n _this6.hide(event, true);\n }\n _this6.mobileActive = false;\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener: function bindMatchMediaListener() {\n var _this7 = this;\n if (!this.matchMediaListener) {\n var query = matchMedia(\"(max-width: \".concat(this.breakpoint, \")\"));\n this.query = query;\n this.queryMatches = query.matches;\n this.matchMediaListener = function () {\n _this7.queryMatches = query.matches;\n _this7.mobileActive = false;\n };\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener: function unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this8 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this8.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this9 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this9.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this10 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this10.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this11 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this11.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this12 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this12.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this13 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this13.searchValue = '';\n _this13.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemId;\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this14 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this14.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n menubarRef: function menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this15 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this15.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId: function focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n MenubarSub: script$1,\n BarsIcon: BarsIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-haspopup\", \"aria-expanded\", \"aria-controls\", \"aria-label\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_BarsIcon = resolveComponent(\"BarsIcon\");\n var _component_MenubarSub = resolveComponent(\"MenubarSub\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: $options.containerRef,\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('start')\n }, _ctx.ptm('start')), [renderSlot(_ctx.$slots, \"start\")], 16)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, _ctx.$slots.button ? 'button' : 'menubutton', {\n id: $data.id,\n \"class\": normalizeClass(_ctx.cx('button')),\n toggleCallback: function toggleCallback(event) {\n return $options.menuButtonClick(event);\n }\n }, function () {\n var _ctx$$primevue$config;\n return [_ctx.model && _ctx.model.length > 0 ? (openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n ref: \"menubutton\",\n role: \"button\",\n tabindex: \"0\",\n \"class\": _ctx.cx('button'),\n \"aria-haspopup\": _ctx.model.length && _ctx.model.length > 0 ? true : false,\n \"aria-expanded\": $data.mobileActive,\n \"aria-controls\": $data.id,\n \"aria-label\": (_ctx$$primevue$config = _ctx.$primevue.config.locale.aria) === null || _ctx$$primevue$config === void 0 ? void 0 : _ctx$$primevue$config.navigation,\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.menuButtonClick($event);\n }),\n onKeydown: _cache[1] || (_cache[1] = function ($event) {\n return $options.menuButtonKeydown($event);\n })\n }, _objectSpread(_objectSpread({}, _ctx.buttonProps), _ctx.ptm('button'))), [renderSlot(_ctx.$slots, _ctx.$slots.buttonicon ? 'buttonicon' : 'menubuttonicon', {}, function () {\n return [createVNode(_component_BarsIcon, normalizeProps(guardReactiveProps(_ctx.ptm('buttonicon'))), null, 16)];\n })], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }), createVNode(_component_MenubarSub, {\n ref: $options.menubarRef,\n id: $data.id + '_list',\n role: \"menubar\",\n items: $options.processedItems,\n templates: _ctx.$slots,\n root: true,\n mobileActive: $data.mobileActive,\n tabindex: \"0\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemId : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemId : undefined,\n activeItemPath: $data.activeItemPath,\n level: 0,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"items\", \"templates\", \"mobileActive\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"activeItemPath\", \"aria-labelledby\", \"aria-label\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"]), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('end')\n }, _ctx.ptm('end')), [renderSlot(_ctx.$slots, \"end\")], 16)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-panel {\\n border: 1px solid \".concat(dt('panel.border.color'), \";\\n border-radius: \").concat(dt('panel.border.radius'), \";\\n background: \").concat(dt('panel.background'), \";\\n color: \").concat(dt('panel.color'), \";\\n}\\n\\n.p-panel-header {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n padding: \").concat(dt('panel.header.padding'), \";\\n background: \").concat(dt('panel.header.background'), \";\\n color: \").concat(dt('panel.header.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('panel.header.border.width'), \";\\n border-color: \").concat(dt('panel.header.border.color'), \";\\n border-radius: \").concat(dt('panel.header.border.radius'), \";\\n}\\n\\n.p-panel-toggleable .p-panel-header {\\n padding: \").concat(dt('panel.toggleable.header.padding'), \";\\n}\\n\\n.p-panel-title {\\n line-height: 1;\\n font-weight: \").concat(dt('panel.title.font.weight'), \";\\n}\\n\\n.p-panel-content {\\n padding: \").concat(dt('panel.content.padding'), \";\\n}\\n\\n.p-panel-footer {\\n padding: \").concat(dt('panel.footer.padding'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-panel p-component', {\n 'p-panel-toggleable': props.toggleable\n }];\n },\n header: 'p-panel-header',\n title: 'p-panel-title',\n headerActions: 'p-panel-header-actions',\n pcToggleButton: 'p-panel-toggle-button',\n contentContainer: 'p-panel-content-container',\n content: 'p-panel-content',\n footer: 'p-panel-footer'\n};\nvar PanelStyle = BaseStyle.extend({\n name: 'panel',\n theme: theme,\n classes: classes\n});\n\nexport { PanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport MinusIcon from '@primevue/icons/minus';\nimport PlusIcon from '@primevue/icons/plus';\nimport Button from 'primevue/button';\nimport Ripple from 'primevue/ripple';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport PanelStyle from 'primevue/panel/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createElementVNode, renderSlot, normalizeClass, toDisplayString, createCommentVNode, createBlock, withCtx, resolveDynamicComponent, createVNode, Transition, withDirectives, vShow } from 'vue';\n\nvar script$1 = {\n name: 'BasePanel',\n \"extends\": BaseComponent,\n props: {\n header: String,\n toggleable: Boolean,\n collapsed: Boolean,\n toggleButtonProps: {\n type: Object,\n \"default\": function _default() {\n return {\n severity: 'secondary',\n text: true,\n rounded: true\n };\n }\n }\n },\n style: PanelStyle,\n provide: function provide() {\n return {\n $pcPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Panel',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:collapsed', 'toggle'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_collapsed: this.collapsed\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n collapsed: function collapsed(newValue) {\n this.d_collapsed = newValue;\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n toggle: function toggle(event) {\n this.d_collapsed = !this.d_collapsed;\n this.$emit('update:collapsed', this.d_collapsed);\n this.$emit('toggle', {\n originalEvent: event,\n value: this.d_collapsed\n });\n },\n onKeyDown: function onKeyDown(event) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n },\n computed: {\n buttonAriaLabel: function buttonAriaLabel() {\n return this.toggleButtonProps && this.toggleButtonProps.ariaLabel ? this.toggleButtonProps.ariaLabel : this.header;\n }\n },\n components: {\n PlusIcon: PlusIcon,\n MinusIcon: MinusIcon,\n Button: Button\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"id\", \"aria-labelledby\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Button = resolveComponent(\"Button\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, \"header\", {\n id: $data.id + '_header',\n \"class\": normalizeClass(_ctx.cx('title'))\n }, function () {\n return [_ctx.header ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n id: $data.id + '_header',\n \"class\": _ctx.cx('title')\n }, _ctx.ptm('title')), toDisplayString(_ctx.header), 17, _hoisted_1)) : createCommentVNode(\"\", true)];\n }), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('headerActions')\n }, _ctx.ptm('headerActions')), [renderSlot(_ctx.$slots, \"icons\"), _ctx.toggleable ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n id: $data.id + '_header',\n \"class\": _ctx.cx('pcToggleButton'),\n \"aria-label\": $options.buttonAriaLabel,\n \"aria-controls\": $data.id + '_content',\n \"aria-expanded\": !$data.d_collapsed,\n unstyled: _ctx.unstyled,\n onClick: $options.toggle,\n onKeydown: $options.onKeyDown\n }, _ctx.toggleButtonProps, {\n pt: _ctx.ptm('pcToggleButton')\n }), {\n icon: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, _ctx.$slots.toggleicon ? 'toggleicon' : 'togglericon', {\n collapsed: $data.d_collapsed\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent($data.d_collapsed ? 'PlusIcon' : 'MinusIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, _ctx.ptm('pcToggleButton')['icon']), null, 16, [\"class\"]))];\n })];\n }),\n _: 3\n }, 16, [\"id\", \"class\", \"aria-label\", \"aria-controls\", \"aria-expanded\", \"unstyled\", \"onClick\", \"onKeydown\", \"pt\"])) : createCommentVNode(\"\", true)], 16)], 16), createVNode(Transition, mergeProps({\n name: \"p-toggleable-content\"\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [withDirectives(createElementVNode(\"div\", mergeProps({\n id: $data.id + '_content',\n \"class\": _ctx.cx('contentContainer'),\n role: \"region\",\n \"aria-labelledby\": $data.id + '_header'\n }, _ctx.ptm('contentContainer')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"default\")], 16), _ctx.$slots.footer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('footer')\n }, _ctx.ptm('footer')), [renderSlot(_ctx.$slots, \"footer\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_2), [[vShow, !$data.d_collapsed]])];\n }),\n _: 3\n }, 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tieredmenu {\\n background: \".concat(dt('tieredmenu.background'), \";\\n color: \").concat(dt('tieredmenu.color'), \";\\n border: 1px solid \").concat(dt('tieredmenu.border.color'), \";\\n border-radius: \").concat(dt('tieredmenu.border.radius'), \";\\n min-width: 12.5rem;\\n}\\n\\n.p-tieredmenu-root-list,\\n.p-tieredmenu-submenu {\\n margin: 0;\\n padding: \").concat(dt('tieredmenu.list.padding'), \";\\n list-style: none;\\n outline: 0 none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('tieredmenu.list.gap'), \";\\n}\\n\\n.p-tieredmenu-submenu {\\n position: absolute;\\n min-width: 100%;\\n z-index: 1;\\n background: \").concat(dt('tieredmenu.background'), \";\\n color: \").concat(dt('tieredmenu.color'), \";\\n border: 1px solid \").concat(dt('tieredmenu.border.color'), \";\\n border-radius: \").concat(dt('tieredmenu.border.radius'), \";\\n box-shadow: \").concat(dt('tieredmenu.shadow'), \";\\n}\\n\\n.p-tieredmenu-item {\\n position: relative;\\n}\\n\\n.p-tieredmenu-item-content {\\n transition: background \").concat(dt('tieredmenu.transition.duration'), \", color \").concat(dt('tieredmenu.transition.duration'), \";\\n border-radius: \").concat(dt('tieredmenu.item.border.radius'), \";\\n color: \").concat(dt('tieredmenu.item.color'), \";\\n}\\n\\n.p-tieredmenu-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('tieredmenu.item.padding'), \";\\n gap: \").concat(dt('tieredmenu.item.gap'), \";\\n user-select: none;\\n outline: 0 none;\\n}\\n\\n.p-tieredmenu-item-label {\\n line-height: 1;\\n}\\n\\n.p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.color'), \";\\n}\\n\\n.p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n width: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n height: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content {\\n color: \").concat(dt('tieredmenu.item.focus.color'), \";\\n background: \").concat(dt('tieredmenu.item.focus.background'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover {\\n color: \").concat(dt('tieredmenu.item.focus.color'), \";\\n background: \").concat(dt('tieredmenu.item.focus.background'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content {\\n color: \").concat(dt('tieredmenu.item.active.color'), \";\\n background: \").concat(dt('tieredmenu.item.active.background'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.active.color'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.active.color'), \";\\n}\\n\\n.p-tieredmenu-separator {\\n border-top: 1px solid \").concat(dt('tieredmenu.separator.border.color'), \";\\n}\\n\\n.p-tieredmenu-overlay {\\n box-shadow: \").concat(dt('tieredmenu.shadow'), \";\\n}\\n\\n.p-tieredmenu-enter-from,\\n.p-tieredmenu-leave-active {\\n opacity: 0;\\n}\\n\\n.p-tieredmenu-enter-active {\\n transition: opacity 250ms;\\n}\\n\");\n};\nvar inlineStyles = {\n submenu: function submenu(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return {\n display: instance.isItemActive(processedItem) ? 'flex' : 'none'\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n _ref3.instance;\n var props = _ref3.props;\n return ['p-tieredmenu p-component', {\n 'p-tieredmenu-overlay': props.popup\n }];\n },\n start: 'p-tieredmenu-start',\n rootList: 'p-tieredmenu-root-list',\n item: function item(_ref4) {\n var instance = _ref4.instance,\n processedItem = _ref4.processedItem;\n return ['p-tieredmenu-item', {\n 'p-tieredmenu-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-tieredmenu-item-content',\n itemLink: 'p-tieredmenu-item-link',\n itemIcon: 'p-tieredmenu-item-icon',\n itemLabel: 'p-tieredmenu-item-label',\n submenuIcon: 'p-tieredmenu-submenu-icon',\n submenu: 'p-tieredmenu-submenu',\n separator: 'p-tieredmenu-separator',\n end: 'p-tieredmenu-end'\n};\nvar TieredMenuStyle = BaseStyle.extend({\n name: 'tieredmenu',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { TieredMenuStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport { nestedPosition, focus, findSingle, addStyle, absolutePosition, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TieredMenuStyle from 'primevue/tieredmenu/style';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createBlock, Transition, withCtx, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, normalizeStyle, createVNode, renderSlot } from 'vue';\n\nvar script$2 = {\n name: 'BaseTieredMenu',\n \"extends\": BaseComponent,\n props: {\n popup: {\n type: Boolean,\n \"default\": false\n },\n model: {\n type: Array,\n \"default\": null\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: TieredMenuStyle,\n provide: function provide() {\n return {\n $pcTieredMenu: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'TieredMenuSub',\n hostName: 'TieredMenu',\n \"extends\": BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n container: null,\n props: {\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n items: {\n type: Array,\n \"default\": null\n },\n visible: {\n type: Boolean,\n \"default\": false\n },\n level: {\n type: Number,\n \"default\": 0\n },\n templates: {\n type: Object,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n }\n },\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index: index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onEnter: function onEnter() {\n nestedPosition(this.container, this.level);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && !_this.getItemProp(processedItem, 'separator');\n }).length;\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this2 = this;\n return index - this.items.slice(0, index).filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && _this2.getItemProp(processedItem, 'separator');\n }).length + 1;\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions(processedItem, index, 'itemLink')),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions(processedItem, index, 'itemIcon')),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions(processedItem, index, 'itemLabel')),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions(processedItem, index, 'submenuIcon'))\n };\n },\n containerRef: function containerRef(el) {\n this.container = el;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"tabindex\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_3 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_4 = [\"href\", \"target\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_AngleRightIcon = resolveComponent(\"AngleRightIcon\");\n var _component_TieredMenuSub = resolveComponent(\"TieredMenuSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createBlock(Transition, mergeProps({\n name: \"p-tieredmenu\",\n onEnter: $options.onEnter\n }, _ctx.ptm('menu.transition')), {\n \"default\": withCtx(function () {\n return [($props.level === 0 ? true : $props.visible) ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n \"class\": $props.level === 0 ? _ctx.cx('rootList') : _ctx.cx('submenu'),\n tabindex: $props.tabindex\n }, $props.level === 0 ? _ctx.ptm('rootList') : _ctx.ptm('submenu')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize(),\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'item'), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemContent')), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLink')), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemIcon')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLabel')), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_5), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), mergeProps({\n key: 0,\n \"class\": _ctx.cx('submenuIcon'),\n active: $options.isItemActive(processedItem),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\", \"active\"])) : (openBlock(), createBlock(_component_AngleRightIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_4)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_3), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_TieredMenuSub, {\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n style: normalizeStyle(_ctx.sx('submenu', true, {\n processedItem: processedItem\n })),\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n role: \"menu\",\n menuId: $props.menuId,\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n templates: $props.templates,\n activeItemPath: $props.activeItemPath,\n level: $props.level + 1,\n visible: $options.isItemActive(processedItem) && $options.isItemGroup(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n })\n }, null, 8, [\"id\", \"style\", \"aria-labelledby\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"level\", \"visible\", \"pt\", \"unstyled\"])) : createCommentVNode(\"\", true)], 16, _hoisted_2)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_6)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16, _hoisted_1$1)) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\"]);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'TieredMenu',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n target: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n visible: !this.popup,\n submenuVisible: false,\n dirty: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (!this.popup) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n this.visible ? this.hide(event, true) : this.show(event);\n },\n show: function show(event, isFocus) {\n if (this.popup) {\n this.$emit('before-show');\n this.visible = true;\n this.target = this.target || event.currentTarget;\n this.relatedTarget = event.relatedTarget || null;\n }\n isFocus && focus(this.menubar);\n },\n hide: function hide(event, isFocus) {\n if (this.popup) {\n this.$emit('before-hide');\n this.visible = false;\n }\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n isFocus && focus(this.relatedTarget || this.target || this.menubar);\n this.dirty = false;\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n if (!this.popup) {\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: this.findFirstFocusedItemIndex(),\n level: 0,\n parentKey: ''\n };\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n onItemClick: function onItemClick(event) {\n var originalEvent = event.originalEvent,\n processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var root = isEmpty(processedItem.parent);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n var rootProcessedItem = root ? processedItem : this.activeItemPath.find(function (p) {\n return p.parentKey === '';\n });\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.popup && this.hide(event, true);\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n var root = isEmpty(processedItem.parent);\n if (!root) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemId), \"\\\"]\"));\n var anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n if (!this.popup) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n if (this.popup || this.focusedItemInfo.level !== 0) {\n var _focusedItemInfo = this.focusedItemInfo;\n this.hide(event, false);\n this.focusedItemInfo = {\n index: Number(_focusedItemInfo.parentKey.split('_')[0]),\n level: 0,\n parentKey: ''\n };\n this.popup && focus(this.target);\n }\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n onEnter: function onEnter(el) {\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n focus(this.menubar);\n this.scrollInView();\n },\n onAfterEnter: function onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onLeave: function onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.$emit('hide');\n this.container = null;\n this.dirty = false;\n },\n onAfterLeave: function onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay: function alignOverlay() {\n absolutePosition(this.container, this.target);\n var targetWidth = getOuterWidth(this.target);\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this2 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this2.container && !_this2.container.contains(event.target);\n var isOutsideTarget = _this2.popup ? !(_this2.target && (_this2.target === event.target || _this2.target.contains(event.target))) : true;\n if (isOutsideContainer && isOutsideTarget) {\n _this2.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this3 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, function (event) {\n _this3.hide(event, true);\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this4 = this;\n if (!this.resizeListener) {\n this.resizeListener = function (event) {\n if (!isTouchDevice()) {\n _this4.hide(event, true);\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this5 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this5.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this6 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this6.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this7 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this7.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this8 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this8.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this9 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this9.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this10 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this10.searchValue = '';\n _this10.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemId;\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this11 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this11.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n menubarRef: function menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this12 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this12.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId: function focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n TieredMenuSub: script$1,\n Portal: Portal\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_TieredMenuSub = resolveComponent(\"TieredMenuSub\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, {\n appendTo: _ctx.appendTo,\n disabled: !_ctx.popup\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onEnter,\n onAfterEnter: $options.onAfterEnter,\n onLeave: $options.onLeave,\n onAfterLeave: $options.onAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.visible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n id: $data.id,\n \"class\": _ctx.cx('root'),\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('start')\n }, _ctx.ptm('start')), [renderSlot(_ctx.$slots, \"start\")], 16)) : createCommentVNode(\"\", true), createVNode(_component_TieredMenuSub, {\n ref: $options.menubarRef,\n id: $data.id + '_list',\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n role: \"menubar\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-disabled\": _ctx.disabled || undefined,\n \"aria-orientation\": \"vertical\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemId : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemId : undefined,\n items: $options.processedItems,\n templates: _ctx.$slots,\n activeItemPath: $data.activeItemPath,\n level: 0,\n visible: $data.submenuVisible,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"tabindex\", \"aria-label\", \"aria-labelledby\", \"aria-disabled\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"visible\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"]), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('end')\n }, _ctx.ptm('end')), [renderSlot(_ctx.$slots, \"end\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\", \"disabled\"]);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-splitbutton {\\n display: inline-flex;\\n position: relative;\\n border-radius: \".concat(dt('splitbutton.border.radius'), \";\\n}\\n\\n.p-splitbutton-button {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n border-right: 0 none;\\n}\\n\\n.p-splitbutton-button:focus-visible,\\n.p-splitbutton-dropdown:focus-visible {\\n z-index: 1;\\n}\\n\\n.p-splitbutton-button:not(:disabled):hover,\\n.p-splitbutton-button:not(:disabled):active {\\n border-right: 0 none;\\n}\\n\\n.p-splitbutton-dropdown {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\\n.p-splitbutton .p-menu {\\n min-width: 100%;\\n}\\n\\n.p-splitbutton-fluid {\\n display: flex;\\n}\\n\\n.p-splitbutton-rounded .p-splitbutton-dropdown {\\n border-top-right-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n}\\n\\n.p-splitbutton-rounded .p-splitbutton-button {\\n border-top-left-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n border-bottom-left-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n}\\n\\n.p-splitbutton-raised {\\n box-shadow: \").concat(dt('splitbutton.raised.shadow'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-splitbutton p-component', {\n 'p-splitbutton-raised': props.raised,\n 'p-splitbutton-rounded': props.rounded,\n 'p-splitbutton-fluid': instance.hasFluid\n }];\n },\n pcButton: 'p-splitbutton-button',\n pcDropdown: 'p-splitbutton-dropdown'\n};\nvar SplitButtonStyle = BaseStyle.extend({\n name: 'splitbutton',\n theme: theme,\n classes: classes\n});\n\nexport { SplitButtonStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { isEmpty } from '@primeuix/utils/object';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport Button from 'primevue/button';\nimport TieredMenu from 'primevue/tieredmenu';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SplitButtonStyle from 'primevue/splitbutton/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createVNode, createSlots, withCtx, renderSlot, normalizeClass, createElementVNode, createBlock, resolveDynamicComponent } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitButton',\n \"extends\": BaseComponent,\n props: {\n label: {\n type: String,\n \"default\": null\n },\n icon: {\n type: String,\n \"default\": null\n },\n model: {\n type: Array,\n \"default\": null\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n \"class\": {\n type: null,\n \"default\": null\n },\n style: {\n type: null,\n \"default\": null\n },\n buttonProps: {\n type: null,\n \"default\": null\n },\n menuButtonProps: {\n type: null,\n \"default\": null\n },\n menuButtonIcon: {\n type: String,\n \"default\": undefined\n },\n dropdownIcon: {\n type: String,\n \"default\": undefined\n },\n severity: {\n type: String,\n \"default\": null\n },\n raised: {\n type: Boolean,\n \"default\": false\n },\n rounded: {\n type: Boolean,\n \"default\": false\n },\n text: {\n type: Boolean,\n \"default\": false\n },\n outlined: {\n type: Boolean,\n \"default\": false\n },\n size: {\n type: String,\n \"default\": null\n },\n plain: {\n type: Boolean,\n \"default\": false\n }\n },\n style: SplitButtonStyle,\n provide: function provide() {\n return {\n $pcSplitButton: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'SplitButton',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['click'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n id: this.$attrs.id,\n isExpanded: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n mounted: function mounted() {\n var _this = this;\n this.id = this.id || UniqueComponentId();\n this.$watch('$refs.menu.visible', function (newValue) {\n _this.isExpanded = newValue;\n });\n },\n methods: {\n onDropdownButtonClick: function onDropdownButtonClick(event) {\n if (event) {\n event.preventDefault();\n }\n this.$refs.menu.toggle({\n currentTarget: this.$el,\n relatedTarget: this.$refs.button.$el\n });\n this.isExpanded = this.$refs.menu.visible;\n },\n onDropdownKeydown: function onDropdownKeydown(event) {\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {\n this.onDropdownButtonClick();\n event.preventDefault();\n }\n },\n onDefaultButtonClick: function onDefaultButtonClick(event) {\n if (this.isExpanded) {\n this.$refs.menu.hide(event);\n }\n this.$emit('click', event);\n }\n },\n computed: {\n containerClass: function containerClass() {\n return [this.cx('root'), this[\"class\"]];\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n PVSButton: Button,\n PVSMenu: TieredMenu,\n ChevronDownIcon: ChevronDownIcon\n }\n};\n\nvar _hoisted_1 = [\"data-p-severity\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_PVSButton = resolveComponent(\"PVSButton\");\n var _component_PVSMenu = resolveComponent(\"PVSMenu\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": $options.containerClass,\n style: _ctx.style\n }, _ctx.ptmi('root'), {\n \"data-p-severity\": _ctx.severity\n }), [createVNode(_component_PVSButton, mergeProps({\n type: \"button\",\n \"class\": _ctx.cx('pcButton'),\n label: _ctx.label,\n disabled: _ctx.disabled,\n severity: _ctx.severity,\n text: _ctx.text,\n icon: _ctx.icon,\n outlined: _ctx.outlined,\n size: _ctx.size,\n fluid: _ctx.fluid,\n \"aria-label\": _ctx.label,\n onClick: $options.onDefaultButtonClick\n }, _ctx.buttonProps, {\n pt: _ctx.ptm('pcButton'),\n unstyled: _ctx.unstyled\n }), createSlots({\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 2\n }, [_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"icon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": [_ctx.icon, slotProps[\"class\"]]\n }, _ctx.ptm('pcButton')['icon'], {\n \"data-pc-section\": \"buttonicon\"\n }), null, 16)];\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"class\", \"label\", \"disabled\", \"severity\", \"text\", \"icon\", \"outlined\", \"size\", \"fluid\", \"aria-label\", \"onClick\", \"pt\", \"unstyled\"]), createVNode(_component_PVSButton, mergeProps({\n ref: \"button\",\n type: \"button\",\n \"class\": _ctx.cx('pcDropdown'),\n disabled: _ctx.disabled,\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": $data.isExpanded,\n \"aria-controls\": $data.id + '_overlay',\n onClick: $options.onDropdownButtonClick,\n onKeydown: $options.onDropdownKeydown,\n severity: _ctx.severity,\n text: _ctx.text,\n outlined: _ctx.outlined,\n size: _ctx.size,\n unstyled: _ctx.unstyled\n }, _ctx.menuButtonProps, {\n pt: _ctx.ptm('pcDropdown')\n }), {\n icon: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, _ctx.$slots.dropdownicon ? 'dropdownicon' : 'menubuttonicon', {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.menuButtonIcon || _ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": [_ctx.dropdownIcon || _ctx.menuButtonIcon, slotProps[\"class\"]]\n }, _ctx.ptm('pcDropdown')['icon'], {\n \"data-pc-section\": \"menubuttonicon\"\n }), null, 16, [\"class\"]))];\n })];\n }),\n _: 3\n }, 16, [\"class\", \"disabled\", \"aria-expanded\", \"aria-controls\", \"onClick\", \"onKeydown\", \"severity\", \"text\", \"outlined\", \"size\", \"unstyled\", \"pt\"]), createVNode(_component_PVSMenu, {\n ref: \"menu\",\n id: $data.id + '_overlay',\n model: _ctx.model,\n popup: true,\n autoZIndex: _ctx.autoZIndex,\n baseZIndex: _ctx.baseZIndex,\n appendTo: _ctx.appendTo,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcMenu')\n }, createSlots({\n _: 2\n }, [_ctx.$slots.menuitemicon ? {\n name: \"itemicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"menuitemicon\", {\n item: slotProps.item,\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"0\"\n } : undefined, _ctx.$slots.item ? {\n name: \"item\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"item\", {\n item: slotProps.item,\n hasSubmenu: slotProps.hasSubmenu,\n label: slotProps.label,\n props: slotProps.props\n })];\n }),\n key: \"1\"\n } : undefined]), 1032, [\"id\", \"model\", \"autoZIndex\", \"baseZIndex\", \"appendTo\", \"unstyled\", \"pt\"])], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","\n\n\n\n\n","import {\n useQueueSettingsStore,\n useQueuePendingTaskCountStore\n} from '@/stores/queueStore'\nimport { app } from '@/scripts/app'\nimport { api } from '@/scripts/api'\n\nexport function setupAutoQueueHandler() {\n const queueCountStore = useQueuePendingTaskCountStore()\n const queueSettingsStore = useQueueSettingsStore()\n\n let graphHasChanged = false\n let internalCount = 0 // Use an internal counter here so it is instantly updated when re-queuing\n api.addEventListener('graphChanged', () => {\n if (queueSettingsStore.mode === 'change') {\n if (internalCount) {\n graphHasChanged = true\n } else {\n graphHasChanged = false\n app.queuePrompt(0, queueSettingsStore.batchCount)\n internalCount++\n }\n }\n })\n\n queueCountStore.$subscribe(\n () => {\n internalCount = queueCountStore.count\n if (!internalCount && !app.lastExecutionError) {\n if (\n queueSettingsStore.mode === 'instant' ||\n (queueSettingsStore.mode === 'change' && graphHasChanged)\n ) {\n graphHasChanged = false\n app.queuePrompt(0, queueSettingsStore.batchCount)\n }\n }\n },\n { detached: true }\n )\n}\n","export enum LatentPreviewMethod {\n NoPreviews = 'none',\n Auto = 'auto',\n Latent2RGB = 'latent2rgb',\n TAESD = 'taesd'\n}\n\nexport enum LogLevel {\n DEBUG = 'DEBUG',\n INFO = 'INFO',\n WARNING = 'WARNING',\n ERROR = 'ERROR',\n CRITICAL = 'CRITICAL'\n}\n\nexport enum HashFunction {\n MD5 = 'md5',\n SHA1 = 'sha1',\n SHA256 = 'sha256',\n SHA512 = 'sha512'\n}\n\nexport enum AutoLaunch {\n // Let server decide whether to auto launch based on the current environment\n Auto = 'auto',\n // Disable auto launch\n Disable = 'disable',\n // Enable auto launch\n Enable = 'enable'\n}\n\nexport enum CudaMalloc {\n // Let server decide whether to use CUDA malloc based on the current environment\n Auto = 'auto',\n // Disable CUDA malloc\n Disable = 'disable',\n // Enable CUDA malloc\n Enable = 'enable'\n}\n\nexport enum FloatingPointPrecision {\n AUTO = 'auto',\n FP64 = 'fp64',\n FP32 = 'fp32',\n FP16 = 'fp16',\n BF16 = 'bf16',\n FP8E4M3FN = 'fp8_e4m3fn',\n FP8E5M2 = 'fp8_e5m2'\n}\n\nexport enum CrossAttentionMethod {\n Auto = 'auto',\n Split = 'split',\n Quad = 'quad',\n Pytorch = 'pytorch'\n}\n\nexport enum VramManagement {\n Auto = 'auto',\n GPUOnly = 'gpu-only',\n HighVram = 'highvram',\n NormalVram = 'normalvram',\n LowVram = 'lowvram',\n NoVram = 'novram',\n CPU = 'cpu'\n}\n","import { FormItem } from '@/types/settingTypes'\nimport {\n LatentPreviewMethod,\n LogLevel,\n HashFunction,\n AutoLaunch,\n CudaMalloc,\n FloatingPointPrecision,\n CrossAttentionMethod,\n VramManagement\n} from '@/types/serverArgs'\n\nexport type ServerConfigValue = string | number | true | null | undefined\n\nexport interface ServerConfig extends FormItem {\n id: string\n defaultValue: T\n category?: string[]\n // Override the default value getter with a custom function.\n getValue?: (value: T) => Record\n}\n\nexport const WEB_ONLY_CONFIG_ITEMS: ServerConfig[] = [\n // Launch behavior\n {\n id: 'auto-launch',\n name: 'Automatically opens in the browser on startup',\n category: ['Launch'],\n type: 'combo',\n options: Object.values(AutoLaunch),\n defaultValue: AutoLaunch.Auto,\n getValue: (value: AutoLaunch) => {\n switch (value) {\n case AutoLaunch.Auto:\n return {}\n case AutoLaunch.Enable:\n return {\n ['auto-launch']: true\n }\n case AutoLaunch.Disable:\n return {\n ['disable-auto-launch']: true\n }\n }\n }\n }\n]\n\nexport const SERVER_CONFIG_ITEMS: ServerConfig[] = [\n // Network settings\n {\n id: 'listen',\n name: 'Host: The IP address to listen on',\n category: ['Network'],\n type: 'text',\n defaultValue: '127.0.0.1'\n },\n {\n id: 'port',\n name: 'Port: The port to listen on',\n category: ['Network'],\n type: 'number',\n // The default launch port for desktop app is 8000 instead of 8188.\n defaultValue: 8000\n },\n {\n id: 'tls-keyfile',\n name: 'TLS Key File: Path to TLS key file for HTTPS',\n category: ['Network'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'tls-certfile',\n name: 'TLS Certificate File: Path to TLS certificate file for HTTPS',\n category: ['Network'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'enable-cors-header',\n name: 'Enable CORS header: Use \"*\" for all origins or specify domain',\n category: ['Network'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'max-upload-size',\n name: 'Maximum upload size (MB)',\n category: ['Network'],\n type: 'number',\n defaultValue: 100\n },\n\n // CUDA settings\n {\n id: 'cuda-device',\n name: 'CUDA device index to use',\n category: ['CUDA'],\n type: 'number',\n defaultValue: null\n },\n {\n id: 'cuda-malloc',\n name: 'Use CUDA malloc for memory allocation',\n category: ['CUDA'],\n type: 'combo',\n options: Object.values(CudaMalloc),\n defaultValue: CudaMalloc.Auto,\n getValue: (value: CudaMalloc) => {\n switch (value) {\n case CudaMalloc.Auto:\n return {}\n case CudaMalloc.Enable:\n return {\n ['cuda-malloc']: true\n }\n case CudaMalloc.Disable:\n return {\n ['disable-cuda-malloc']: true\n }\n }\n }\n },\n\n // Precision settings\n {\n id: 'global-precision',\n name: 'Global floating point precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP32,\n FloatingPointPrecision.FP16\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'Global floating point precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n case FloatingPointPrecision.FP32:\n return {\n ['force-fp32']: true\n }\n case FloatingPointPrecision.FP16:\n return {\n ['force-fp16']: true\n }\n default:\n return {}\n }\n }\n },\n\n // UNET precision\n {\n id: 'unet-precision',\n name: 'UNET precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP64,\n FloatingPointPrecision.FP32,\n FloatingPointPrecision.FP16,\n FloatingPointPrecision.BF16,\n FloatingPointPrecision.FP8E4M3FN,\n FloatingPointPrecision.FP8E5M2\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'UNET precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n default:\n return {\n [`${value.toLowerCase()}-unet`]: true\n }\n }\n }\n },\n\n // VAE settings\n {\n id: 'vae-precision',\n name: 'VAE precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP16,\n FloatingPointPrecision.FP32,\n FloatingPointPrecision.BF16\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'VAE precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n default:\n return {\n [`${value.toLowerCase()}-vae`]: true\n }\n }\n }\n },\n {\n id: 'cpu-vae',\n name: 'Run VAE on CPU',\n category: ['Inference'],\n type: 'boolean',\n defaultValue: false\n },\n\n // Text Encoder settings\n {\n id: 'text-encoder-precision',\n name: 'Text Encoder precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP8E4M3FN,\n FloatingPointPrecision.FP8E5M2,\n FloatingPointPrecision.FP16,\n FloatingPointPrecision.FP32\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'Text Encoder precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n default:\n return {\n [`${value.toLowerCase()}-text-enc`]: true\n }\n }\n }\n },\n\n // Memory and performance settings\n {\n id: 'force-channels-last',\n name: 'Force channels-last memory format',\n category: ['Memory'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'directml',\n name: 'DirectML device index',\n category: ['Memory'],\n type: 'number',\n defaultValue: null\n },\n {\n id: 'disable-ipex-optimize',\n name: 'Disable IPEX optimization',\n category: ['Memory'],\n type: 'boolean',\n defaultValue: false\n },\n\n // Preview settings\n {\n id: 'preview-method',\n name: 'Method used for latent previews',\n category: ['Preview'],\n type: 'combo',\n options: Object.values(LatentPreviewMethod),\n defaultValue: LatentPreviewMethod.NoPreviews\n },\n {\n id: 'preview-size',\n name: 'Size of preview images',\n category: ['Preview'],\n type: 'slider',\n defaultValue: 512,\n attrs: {\n min: 128,\n max: 2048,\n step: 128\n }\n },\n\n // Cache settings\n {\n id: 'cache-classic',\n name: 'Use classic cache system',\n category: ['Cache'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'cache-lru',\n name: 'Use LRU caching with a maximum of N node results cached.',\n category: ['Cache'],\n type: 'number',\n defaultValue: null,\n tooltip: 'May use more RAM/VRAM.'\n },\n\n // Attention settings\n {\n id: 'cross-attention-method',\n name: 'Cross attention method',\n category: ['Attention'],\n type: 'combo',\n options: Object.values(CrossAttentionMethod),\n defaultValue: CrossAttentionMethod.Auto,\n getValue: (value: CrossAttentionMethod) => {\n switch (value) {\n case CrossAttentionMethod.Auto:\n return {}\n default:\n return {\n [`use-${value.toLowerCase()}-cross-attention`]: true\n }\n }\n }\n },\n {\n id: 'disable-xformers',\n name: 'Disable xFormers optimization',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'force-upcast-attention',\n name: 'Force attention upcast',\n category: ['Attention'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'dont-upcast-attention',\n name: 'Prevent attention upcast',\n category: ['Attention'],\n type: 'boolean',\n defaultValue: false\n },\n\n // VRAM management\n {\n id: 'vram-management',\n name: 'VRAM management mode',\n category: ['Memory'],\n type: 'combo',\n options: Object.values(VramManagement),\n defaultValue: VramManagement.Auto,\n getValue: (value: VramManagement) => {\n switch (value) {\n case VramManagement.Auto:\n return {}\n default:\n return {\n [value]: true\n }\n }\n }\n },\n {\n id: 'reserve-vram',\n name: 'Reserved VRAM (GB)',\n category: ['Memory'],\n type: 'number',\n defaultValue: null,\n tooltip:\n 'Set the amount of vram in GB you want to reserve for use by your OS/other software. By default some amount is reverved depending on your OS.'\n },\n\n // Misc settings\n {\n id: 'default-hashing-function',\n name: 'Default hashing function for model files',\n type: 'combo',\n options: Object.values(HashFunction),\n defaultValue: HashFunction.SHA256\n },\n {\n id: 'disable-smart-memory',\n name: 'Disable smart memory management',\n tooltip:\n 'Force ComfyUI to aggressively offload to regular ram instead of keeping models in vram when it can.',\n category: ['Memory'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'deterministic',\n name: 'Make pytorch use slower deterministic algorithms when it can.',\n type: 'boolean',\n defaultValue: false,\n tooltip: 'Note that this might not make images deterministic in all cases.'\n },\n {\n id: 'fast',\n name: 'Enable some untested and potentially quality deteriorating optimizations.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'dont-print-server',\n name: \"Don't print server output to console.\",\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'disable-metadata',\n name: 'Disable saving prompt metadata in files.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'disable-all-custom-nodes',\n name: 'Disable loading all custom nodes.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'log-level',\n name: 'Logging verbosity level',\n type: 'combo',\n options: Object.values(LogLevel),\n defaultValue: LogLevel.INFO,\n getValue: (value: LogLevel) => {\n return {\n verbose: value\n }\n }\n },\n // Directories\n {\n id: 'input-directory',\n name: 'Input directory',\n category: ['Directories'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'output-directory',\n name: 'Output directory',\n category: ['Directories'],\n type: 'text',\n defaultValue: ''\n }\n]\n","import { app } from '@/scripts/app'\nimport { api } from '@/scripts/api'\nimport {\n showSettingsDialog,\n showTemplateWorkflowsDialog\n} from '@/services/dialogService'\nimport { workflowService } from '@/services/workflowService'\nimport type { ComfyCommand } from '@/stores/commandStore'\nimport { useTitleEditorStore } from '@/stores/graphStore'\nimport { useQueueSettingsStore, useQueueStore } from '@/stores/queueStore'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useToastStore } from '@/stores/toastStore'\nimport { type ComfyWorkflow, useWorkflowStore } from '@/stores/workflowStore'\nimport { useBottomPanelStore } from '@/stores/workspace/bottomPanelStore'\nimport { useWorkspaceStore } from '@/stores/workspaceStore'\nimport {\n LiteGraph,\n LGraphEventMode,\n LGraphNode,\n LGraphGroup\n} from '@comfyorg/litegraph'\nimport { useSearchBoxStore } from '@/stores/workspace/searchBoxStore'\n\nexport function useCoreCommands(): ComfyCommand[] {\n const getTracker = () => useWorkflowStore()?.activeWorkflow?.changeTracker\n\n const getSelectedNodes = (): LGraphNode[] => {\n const selectedNodes = app.canvas.selected_nodes\n const result: LGraphNode[] = []\n if (selectedNodes) {\n for (const i in selectedNodes) {\n const node = selectedNodes[i]\n result.push(node)\n }\n }\n return result\n }\n\n const toggleSelectedNodesMode = (mode: LGraphEventMode) => {\n getSelectedNodes().forEach((node) => {\n if (node.mode === mode) {\n node.mode = LGraphEventMode.ALWAYS\n } else {\n node.mode = mode\n }\n })\n }\n\n return [\n {\n id: 'Comfy.NewBlankWorkflow',\n icon: 'pi pi-plus',\n label: 'New Blank Workflow',\n menubarLabel: 'New',\n function: () => workflowService.loadBlankWorkflow()\n },\n {\n id: 'Comfy.OpenWorkflow',\n icon: 'pi pi-folder-open',\n label: 'Open Workflow',\n menubarLabel: 'Open',\n function: () => {\n app.ui.loadFile()\n }\n },\n {\n id: 'Comfy.LoadDefaultWorkflow',\n icon: 'pi pi-code',\n label: 'Load Default Workflow',\n function: () => workflowService.loadDefaultWorkflow()\n },\n {\n id: 'Comfy.SaveWorkflow',\n icon: 'pi pi-save',\n label: 'Save Workflow',\n menubarLabel: 'Save',\n function: async () => {\n const workflow = useWorkflowStore().activeWorkflow as ComfyWorkflow\n if (!workflow) return\n\n await workflowService.saveWorkflow(workflow)\n }\n },\n {\n id: 'Comfy.SaveWorkflowAs',\n icon: 'pi pi-save',\n label: 'Save Workflow As',\n menubarLabel: 'Save As',\n function: async () => {\n const workflow = useWorkflowStore().activeWorkflow as ComfyWorkflow\n if (!workflow) return\n\n await workflowService.saveWorkflowAs(workflow)\n }\n },\n {\n id: 'Comfy.ExportWorkflow',\n icon: 'pi pi-download',\n label: 'Export Workflow',\n menubarLabel: 'Export',\n function: () => {\n workflowService.exportWorkflow('workflow', 'workflow')\n }\n },\n {\n id: 'Comfy.ExportWorkflowAPI',\n icon: 'pi pi-download',\n label: 'Export Workflow (API Format)',\n menubarLabel: 'Export (API)',\n function: () => {\n workflowService.exportWorkflow('workflow_api', 'output')\n }\n },\n {\n id: 'Comfy.Undo',\n icon: 'pi pi-undo',\n label: 'Undo',\n function: async () => {\n await getTracker()?.undo?.()\n }\n },\n {\n id: 'Comfy.Redo',\n icon: 'pi pi-refresh',\n label: 'Redo',\n function: async () => {\n await getTracker()?.redo?.()\n }\n },\n {\n id: 'Comfy.ClearWorkflow',\n icon: 'pi pi-trash',\n label: 'Clear Workflow',\n function: () => {\n const settingStore = useSettingStore()\n if (\n !settingStore.get('Comfy.ComfirmClear') ||\n confirm('Clear workflow?')\n ) {\n app.clean()\n app.graph.clear()\n api.dispatchCustomEvent('graphCleared')\n }\n }\n },\n {\n id: 'Comfy.Canvas.ResetView',\n icon: 'pi pi-expand',\n label: 'Reset View',\n function: () => {\n app.resetView()\n }\n },\n {\n id: 'Comfy.OpenClipspace',\n icon: 'pi pi-clipboard',\n label: 'Clipspace',\n function: () => {\n app.openClipspace()\n }\n },\n {\n id: 'Comfy.RefreshNodeDefinitions',\n icon: 'pi pi-refresh',\n label: 'Refresh Node Definitions',\n function: async () => {\n await app.refreshComboInNodes()\n }\n },\n {\n id: 'Comfy.Interrupt',\n icon: 'pi pi-stop',\n label: 'Interrupt',\n function: async () => {\n await api.interrupt()\n useToastStore().add({\n severity: 'info',\n summary: 'Interrupted',\n detail: 'Execution has been interrupted',\n life: 1000\n })\n }\n },\n {\n id: 'Comfy.ClearPendingTasks',\n icon: 'pi pi-stop',\n label: 'Clear Pending Tasks',\n function: async () => {\n await useQueueStore().clear(['queue'])\n useToastStore().add({\n severity: 'info',\n summary: 'Confirmed',\n detail: 'Pending tasks deleted',\n life: 3000\n })\n }\n },\n {\n id: 'Comfy.BrowseTemplates',\n icon: 'pi pi-folder-open',\n label: 'Browse Templates',\n function: showTemplateWorkflowsDialog\n },\n {\n id: 'Comfy.Canvas.ZoomIn',\n icon: 'pi pi-plus',\n label: 'Zoom In',\n function: () => {\n const ds = app.canvas.ds\n ds.changeScale(\n ds.scale * 1.1,\n ds.element ? [ds.element.width / 2, ds.element.height / 2] : undefined\n )\n app.canvas.setDirty(true, true)\n }\n },\n {\n id: 'Comfy.Canvas.ZoomOut',\n icon: 'pi pi-minus',\n label: 'Zoom Out',\n function: () => {\n const ds = app.canvas.ds\n ds.changeScale(\n ds.scale / 1.1,\n ds.element ? [ds.element.width / 2, ds.element.height / 2] : undefined\n )\n app.canvas.setDirty(true, true)\n }\n },\n {\n id: 'Comfy.Canvas.FitView',\n icon: 'pi pi-expand',\n label: 'Fit view to selected nodes',\n function: () => {\n if (app.canvas.empty) {\n useToastStore().add({\n severity: 'error',\n summary: 'Empty canvas',\n life: 3000\n })\n return\n }\n app.canvas.fitViewToSelectionAnimated()\n }\n },\n {\n id: 'Comfy.Canvas.ToggleLock',\n icon: 'pi pi-lock',\n label: 'Canvas Toggle Lock',\n function: () => {\n app.canvas['read_only'] = !app.canvas['read_only']\n }\n },\n {\n id: 'Comfy.Canvas.ToggleLinkVisibility',\n icon: 'pi pi-eye',\n label: 'Canvas Toggle Link Visibility',\n versionAdded: '1.3.6',\n\n function: (() => {\n const settingStore = useSettingStore()\n let lastLinksRenderMode = LiteGraph.SPLINE_LINK\n\n return () => {\n const currentMode = settingStore.get('Comfy.LinkRenderMode')\n\n if (currentMode === LiteGraph.HIDDEN_LINK) {\n // If links are hidden, restore the last positive value or default to spline mode\n settingStore.set('Comfy.LinkRenderMode', lastLinksRenderMode)\n } else {\n // If links are visible, store the current mode and hide links\n lastLinksRenderMode = currentMode\n settingStore.set('Comfy.LinkRenderMode', LiteGraph.HIDDEN_LINK)\n }\n }\n })()\n },\n {\n id: 'Comfy.QueuePrompt',\n icon: 'pi pi-play',\n label: 'Queue Prompt',\n versionAdded: '1.3.7',\n function: () => {\n const batchCount = useQueueSettingsStore().batchCount\n app.queuePrompt(0, batchCount)\n }\n },\n {\n id: 'Comfy.QueuePromptFront',\n icon: 'pi pi-play',\n label: 'Queue Prompt (Front)',\n versionAdded: '1.3.7',\n function: () => {\n const batchCount = useQueueSettingsStore().batchCount\n app.queuePrompt(-1, batchCount)\n }\n },\n {\n id: 'Comfy.ShowSettingsDialog',\n icon: 'pi pi-cog',\n label: 'Show Settings Dialog',\n versionAdded: '1.3.7',\n function: () => {\n showSettingsDialog()\n }\n },\n {\n id: 'Comfy.Graph.GroupSelectedNodes',\n icon: 'pi pi-sitemap',\n label: 'Group Selected Nodes',\n versionAdded: '1.3.7',\n function: () => {\n const { canvas } = app\n if (!canvas.selectedItems?.size) {\n useToastStore().add({\n severity: 'error',\n summary: 'Nothing to group',\n detail:\n 'Please select the nodes (or other groups) to create a group for',\n life: 3000\n })\n return\n }\n const group = new LGraphGroup()\n const padding = useSettingStore().get(\n 'Comfy.GroupSelectedNodes.Padding'\n )\n group.resizeTo(canvas.selectedItems, padding)\n canvas.graph.add(group)\n useTitleEditorStore().titleEditorTarget = group\n }\n },\n {\n id: 'Workspace.NextOpenedWorkflow',\n icon: 'pi pi-step-forward',\n label: 'Next Opened Workflow',\n versionAdded: '1.3.9',\n function: () => {\n workflowService.loadNextOpenedWorkflow()\n }\n },\n {\n id: 'Workspace.PreviousOpenedWorkflow',\n icon: 'pi pi-step-backward',\n label: 'Previous Opened Workflow',\n versionAdded: '1.3.9',\n function: () => {\n workflowService.loadPreviousOpenedWorkflow()\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Mute',\n icon: 'pi pi-volume-off',\n label: 'Mute/Unmute Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n toggleSelectedNodesMode(LGraphEventMode.NEVER)\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Bypass',\n icon: 'pi pi-shield',\n label: 'Bypass/Unbypass Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n toggleSelectedNodesMode(LGraphEventMode.BYPASS)\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Pin',\n icon: 'pi pi-pin',\n label: 'Pin/Unpin Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n getSelectedNodes().forEach((node) => {\n node.pin(!node.pinned)\n })\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelected.Pin',\n icon: 'pi pi-pin',\n label: 'Pin/Unpin Selected Items',\n versionAdded: '1.3.33',\n function: () => {\n for (const item of app.canvas.selectedItems) {\n if (item instanceof LGraphNode || item instanceof LGraphGroup) {\n item.pin(!item.pinned)\n }\n }\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Collapse',\n icon: 'pi pi-minus',\n label: 'Collapse/Expand Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n getSelectedNodes().forEach((node) => {\n node.collapse()\n })\n }\n },\n {\n id: 'Comfy.ToggleTheme',\n icon: 'pi pi-moon',\n label: 'Toggle Theme (Dark/Light)',\n versionAdded: '1.3.12',\n function: (() => {\n let previousDarkTheme: string = 'dark'\n\n // Official light theme is the only light theme supported now.\n const isDarkMode = (themeId: string) => themeId !== 'light'\n return () => {\n const settingStore = useSettingStore()\n const currentTheme = settingStore.get('Comfy.ColorPalette')\n if (isDarkMode(currentTheme)) {\n previousDarkTheme = currentTheme\n settingStore.set('Comfy.ColorPalette', 'light')\n } else {\n settingStore.set('Comfy.ColorPalette', previousDarkTheme)\n }\n }\n })()\n },\n {\n id: 'Workspace.ToggleBottomPanel',\n icon: 'pi pi-list',\n label: 'Toggle Bottom Panel',\n versionAdded: '1.3.22',\n function: () => {\n useBottomPanelStore().toggleBottomPanel()\n }\n },\n {\n id: 'Workspace.ToggleFocusMode',\n icon: 'pi pi-eye',\n label: 'Toggle Focus Mode',\n versionAdded: '1.3.27',\n function: () => {\n useWorkspaceStore().toggleFocusMode()\n }\n },\n {\n id: 'Comfy.Graph.FitGroupToContents',\n icon: 'pi pi-expand',\n label: 'Fit Group To Contents',\n versionAdded: '1.4.9',\n function: () => {\n for (const group of app.canvas.selectedItems) {\n if (group instanceof LGraphGroup) {\n group.recomputeInsideNodes()\n const padding = useSettingStore().get(\n 'Comfy.GroupSelectedNodes.Padding'\n )\n group.resizeTo(group.children, padding)\n app.graph.change()\n }\n }\n }\n },\n {\n id: 'Comfy.Help.OpenComfyUIIssues',\n icon: 'pi pi-github',\n label: 'Open ComfyUI Issues',\n menubarLabel: 'ComfyUI Issues',\n versionAdded: '1.5.5',\n function: () => {\n window.open(\n 'https://github.com/comfyanonymous/ComfyUI/issues',\n '_blank'\n )\n }\n },\n {\n id: 'Comfy.Help.OpenComfyUIDocs',\n icon: 'pi pi-info-circle',\n label: 'Open ComfyUI Docs',\n menubarLabel: 'ComfyUI Docs',\n versionAdded: '1.5.5',\n function: () => {\n window.open('https://docs.comfy.org/', '_blank')\n }\n },\n {\n id: 'Comfy.Help.OpenComfyOrgDiscord',\n icon: 'pi pi-discord',\n label: 'Open Comfy-Org Discord',\n menubarLabel: 'Comfy-Org Discord',\n versionAdded: '1.5.5',\n function: () => {\n window.open('https://www.comfy.org/discord', '_blank')\n }\n },\n {\n id: 'Workspace.SearchBox.Toggle',\n icon: 'pi pi-search',\n label: 'Toggle Search Box',\n versionAdded: '1.5.7',\n function: () => {\n useSearchBoxStore().toggleVisible()\n }\n }\n ]\n}\n","\n\n\n"],"names":["theme","classes","script$1","Badge","provide","script","render","item","BaseComponent","content","showNavigators","ChevronLeftIcon","ChevronRightIcon","_hoisted_1","_hoisted_2","_hoisted_3","createElementVNode","root","inlineStyles","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","data","mounted","beforeUnmount","panels","onKeydown","getPTOptions","_typeof$1","o","updated","option","_hide","onFocus","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onPageUpKey","onPageDownKey","onEnterKey","_","scrollInView","id","InputText","VirtualScroller","Portal","ChevronDownIcon","SpinnerIcon","Chip","_typeof","ownKeys","r","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","onRemove","ref","onClick","_sfc_main","AutoComplete","suggestions","search","comfyApp","repeat","widget","script$2","InfoCircleIcon","CheckIcon","ExclamationTriangleIcon","TimesCircleIcon","TimesIcon","render$1","message","options","getAriaPosInset","AngleRightIcon","AngleDownIcon","_hoisted_1$1","$attrsId","getItemProp","getItemLabel","isItemDisabled","isItemVisible","isItemGroup","show","hide","onBlur","onKeyDown","activeItemPath","onItemClick","onItemMouseEnter","onItemMouseMove","onArrowDownKey","onArrowUpKey","onEscapeKey","onTabKey","bindOutsideClickListener","unbindOutsideClickListener","bindResizeListener","unbindResizeListener","isSelected","processedItems","BarsIcon","toggle","PlusIcon","MinusIcon","Button","submenu","getItemId","getItemKey","getItemLabelId","isItemActive","isItemFocused","onEnter","getAriaSetSize","getMenuItemProps","containerRef","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","onItemChange","onOverlayClick","onSpaceKey","onLeave","alignOverlay","bindScrollListener","unbindScrollListener","isItemMatched","isValidItem","isValidSelectedItem","findFirstItemIndex","findLastItemIndex","findNextItemIndex","findPrevItemIndex","findSelectedItemIndex","findFirstFocusedItemIndex","findLastFocusedItemIndex","searchItems","changeFocusedItemIndex","createProcessedItems","menubarRef","visibleItems","focusedItemId","hasFluid","TieredMenu","clamp","LatentPreviewMethod","LogLevel","HashFunction","AutoLaunch","CudaMalloc","FloatingPointPrecision","CrossAttentionMethod","VramManagement"],"mappings":";;;;;AAIa,MAAA,sBAAsB,YAAY,eAAe,MAAM;AAC5D,QAAA,oBAAoB,WAA4C,IAAI;AAEnE,SAAA;AAAA,IACL;AAAA,EAAA;AAEJ,CAAC;AAEY,MAAA,iBAAiB,YAAY,UAAU,MAAM;AAMlD,QAAA,SAAS,WAAgC,IAAI;AAE5C,SAAA;AAAA,IACL;AAAA,EAAA;AAEJ,CAAC;;;;ACCD,UAAM,eAAe;AAEf,UAAA,YAAY,IAAI,KAAK;AACrB,UAAA,cAAc,IAAI,EAAE;AAC1B,UAAM,aAAa,IAAmB;AAAA,MACpC,UAAU;AAAA,MACV,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA,CACX;AAED,UAAM,mBAAmB;AACzB,UAAM,cAAc;AACd,UAAA,0BAA0B,IAAI,IAAI;AAElC,UAAA,SAAS,wBAAC,aAAqB;AACnC,UAAI,iBAAiB,qBAAqB,SAAS,KAAA,MAAW,IAAI;AAC/C,yBAAA,kBAAkB,QAAQ,SAAS,KAAK;AACrD,YAAA,MAAM,eAAe,MAAM,IAAI;AAAA,MACrC;AACA,gBAAU,QAAQ;AAClB,uBAAiB,oBAAoB;AACzB,kBAAA,OAAQ,mBAAmB,wBAAwB;AAAA,IAAA,GAPlD;AAUf;AAAA,MACE,MAAM,iBAAiB;AAAA,MACvB,CAAC,WAAW;AACV,YAAI,WAAW,MAAM;AACnB;AAAA,QACF;AACA,oBAAY,QAAQ,OAAO;AAC3B,kBAAU,QAAQ;AACM,gCAAA,QAAQ,YAAY,OAAQ;AACpD,oBAAY,OAAQ,mBAAmB;AAEvC,YAAI,kBAAkB,aAAa;AACjC,gBAAM,QAAQ;AACd,gBAAM,CAAC,GAAG,CAAC,IAAI,MAAM;AACrB,gBAAM,CAAC,GAAG,CAAC,IAAI,MAAM;AAEf,gBAAA,CAAC,MAAM,GAAG,IAAI,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACxC,qBAAA,MAAM,OAAO,GAAG,IAAI;AACpB,qBAAA,MAAM,MAAM,GAAG,GAAG;AAE7B,gBAAM,QAAQ,IAAI,IAAI,OAAO,GAAG;AAChC,gBAAM,SAAS,MAAM,cAAc,IAAI,OAAO,GAAG;AACtC,qBAAA,MAAM,QAAQ,GAAG,KAAK;AACtB,qBAAA,MAAM,SAAS,GAAG,MAAM;AAEnC,gBAAM,WAAW,MAAM,YAAY,IAAI,OAAO,GAAG;AACtC,qBAAA,MAAM,WAAW,GAAG,QAAQ;AAAA,QAAA,WAC9B,kBAAkB,YAAY;AACvC,gBAAM,OAAO;AACb,gBAAM,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY;AAChC,gBAAM,cAAc,KAAK;AACzB,gBAAM,eAAe,UAAU;AAEzB,gBAAA,CAAC,MAAM,GAAG,IAAI,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACxC,qBAAA,MAAM,OAAO,GAAG,IAAI;AACpB,qBAAA,MAAM,MAAM,GAAG,GAAG;AAE7B,gBAAM,QAAQ,cAAc,IAAI,OAAO,GAAG;AAC1C,gBAAM,SAAS,eAAe,IAAI,OAAO,GAAG;AACjC,qBAAA,MAAM,QAAQ,GAAG,KAAK;AACtB,qBAAA,MAAM,SAAS,GAAG,MAAM;AACnC,gBAAM,WAAW,KAAK,IAAI,OAAO,GAAG;AACzB,qBAAA,MAAM,WAAW,GAAG,QAAQ;AAAA,QACzC;AAAA,MACF;AAAA,IAAA;AAGI,UAAA,qBAAqB,wBAAC,UAAgC;AAC1D,UAAI,CAAC,aAAa,IAAI,oCAAoC,GAAG;AAC3D;AAAA,MACF;AAEI,UAAA,MAAM,OAAO,YAAY,sBAAsB;AAC3C,cAAA,QAAqB,MAAM,OAAO;AACxC,cAAM,CAAC,GAAG,CAAC,IAAI,MAAM;AAEf,cAAA,IAAI,MAAM,OAAO;AACjB,cAAA,YAAY,EAAE,UAAU;AAE1B,YAAA,YAAY,MAAM,aAAa;AACjC;AAAA,QACF;AAEA,yBAAiB,oBAAoB;AAAA,MACvC;AAAA,IAAA,GAjByB;AAoB3B,UAAM,YAA4B;AAAA,MAChC,MAAM;AAAA,MACN,YAAY,MAAkB;AAE5B,cAAM,mBAAmB,KAAK;AAEzB,aAAA,sBAAsB,SAAU,MAAkB,MAAa;AAClE,cAAI,CAAC,aAAa,IAAI,mCAAmC,GAAG;AAC1D;AAAA,UACF;AAEA,2BAAiB,oBAAoB;AAGjC,cAAA,OAAO,qBAAqB,YAAY;AAC1C,6BAAiB,KAAK,MAAM,GAAG,GAAG,IAAI;AAAA,UACxC;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAGF,cAAU,MAAM;AACL,eAAA,iBAAiB,oBAAoB,kBAAkB;AAChE,UAAI,kBAAkB,SAAS;AAAA,IAAA,CAChC;AAED,gBAAY,MAAM;AACP,eAAA,oBAAoB,oBAAoB,kBAAkB;AAAA,IAAA,CACpE;;;;;;;;;;;;;;;;;AChJD,IAAIA,UAAQ,gCAAS,MAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,+OAA+O,OAAO,GAAG,4BAA4B,GAAG,mDAAmD,EAAE,OAAO,GAAG,4BAA4B,GAAG,QAAQ;AACvY,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,MAAM;AACR;AACA,IAAI,oBAAoB,UAAU,OAAO;AAAA,EACvC,MAAM;AAAA,EACN,OAAOD;AAAAA,EACP,SAASC;AACX,CAAC;ACTD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWC;AAAAA,EACX,OAAO;AAAA,EACP,SAAS,gCAASC,WAAU;AAC1B,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,YAAY;AAAA,IACV,OAAOC;AAAAA,EACR;AACH;AAEA,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,mBAAmB,iBAAiB,OAAO;AAC/C,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,EAC3B,GAAK,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,GAAG,YAAY,kBAAkB,WAAW,KAAK,QAAQ;AAAA,IAChH,IAAI,KAAK,IAAI,SAAS;AAAA,EAC1B,CAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;AAC5B;AAPSA;AASTD,SAAO,SAASC;;;;;;;;;;;;;;;;;;;;;ACHhB,UAAM,QAAQ;AAiBd,UAAM,OAAO;AACb,UAAM,eAAe;AAAA,MAAS,MAC5B,OAAO,MAAM,cAAc,aACvB,MAAM,UAAe,KAAA,KACrB,MAAM;AAAA,IAAA;AAEZ,UAAM,kBAAkB,SAAS,MAAM,CAAC,CAAC,aAAa,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvC3D,UAAM,eAAe;AACrB,UAAM,eAAe,SAAS,MAAM,aAAa,IAAI,oBAAoB,CAAC;AAC1E,UAAM,OAAO;AAAA,MAAS,MACpB,aAAa,UAAU,UAAU,eAAe;AAAA,IAAA;AAGlD,UAAM,eAAe;AACrB,UAAM,cAAc,6BAAM;AACxB,mBAAa,QAAQ,mBAAmB;AAAA,IAAA,GADtB;;;;;;;;;;;;;;ACPpB,UAAM,cAAc;AACpB,UAAM,cAAc,6BAAM;AACxB,kBAAY,WAAW;AAAA,QACrB,KAAK;AAAA,QACL,iBAAiB;AAAA,QACjB,WAAW;AAAA,MAAA,CACZ;AAAA,IAAA,GALiB;;;;;;;;;;;;;;ACNd,UAAA,EAAE,MAAM;AACd,UAAM,YAAY;AAElB,UAAM,UAAU;AAAA,MACd,MAAM,GAAG,EAAE,oBAAoB,CAAC,KAAK,UAAU,aAAa,QAAQ;AAAA,IAAA;AAEtE,UAAM,SAAS,6BAAM;AACnB,gBAAU,OAAO;AACjB,aAAO,SAAS;IAAO,GAFV;;;;;;;;;;;;;;;;ACIf,UAAM,QAAQ;AAIR,UAAA,uBAAuB,wBAAC,WAA4B,OAAoB;AAC5E,gBAAU,OAAO,EAAE;AAAA,IAAA,GADQ;AAI7B,oBAAgB,MAAM;AACpB,UAAI,MAAM,UAAU,SAAS,YAAY,MAAM,UAAU,SAAS;AAChE,cAAM,UAAU;MAClB;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;ACSD,UAAM,iBAAiB;AACvB,UAAM,eAAe;AACrB,UAAM,YAAY;AAElB,UAAM,iBAAiB;AAAA,MAAS,MAC9B,aAAa,IAAI,wBAAwB,MAAM,SAC3C,uBACA;AAAA,IAAA;AAGN,UAAM,UAAU;AAAA,MACd,MAAM,aAAa,IAAI,oBAAoB,MAAM;AAAA,IAAA;AAGnD,UAAM,OAAO,SAAS,MAAM,eAAe,eAAgB,CAAA;AAC3D,UAAM,cAAc,SAAS,MAAM,eAAe,WAAW,gBAAgB;AACvE,UAAA,aAAa,wBAACC,UAA8B;AACjC,qBAAA,WAAW,iBAAiBA,MAAK,EAAE;AAAA,IAAA,GADjC;AAGnB,UAAM,kBAAkB;AAClB,UAAA,sBAAsB,wBAAC,QAA6B;AACxD,YAAM,aAAa,gBAAgB;AAAA,QACjC,8BAA8B,IAAI,EAAE;AAAA,MAAA;AAEtC,aAAO,aAAa,KAAK,WAAW,MAAM,SAAU,CAAA,MAAM;AAAA,IAAA,GAJhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3D5B,IAAIN,YAAU;AAAA,EACZ,MAAM;AAAA,EACN,SAAS,gCAAS,QAAQ,MAAM;AAC9B,QAAI,WAAW,KAAK;AACpB,WAAO,CAAC,qBAAqB;AAAA,MAC3B,sBAAsB,SAAS,QAAQ;AAAA,IAC7C,CAAK;AAAA,EACF,GALQ;AAAA,EAMT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AACd;AACA,IAAI,eAAe,UAAU,OAAO;AAAA,EAClC,MAAM;AAAA,EACN,SAASA;AACX,CAAC;ACVD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWM;AAAAA,EACX,OAAO,CAAE;AAAA,EACT,OAAO;AAAA,EACP,SAAS,gCAASJ,WAAU;AAC1B,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,QAAQ,CAAC,SAAS;AAAA,EAClB,MAAM,gCAAS,OAAO;AACpB,WAAO;AAAA,MACL,qBAAqB;AAAA,MACrB,qBAAqB;AAAA,IAC3B;AAAA,EACG,GALK;AAAA,EAMN,gBAAgB;AAAA,EAChB,OAAO;AAAA,IACL,gBAAgB,gCAAS,eAAe,UAAU;AAChD,iBAAW,KAAK,mBAAoB,IAAG,KAAK,qBAAoB;AAAA,IACjE,GAFe;AAAA,IAGhB,aAAa;AAAA,MACX,OAAO;AAAA,MACP,SAAS,gCAAS,UAAU;AAC1B,aAAK,aAAY;AAAA,MAClB,GAFQ;AAAA,IAGV;AAAA,EACF;AAAA,EACD,SAAS,gCAAS,UAAU;AAC1B,QAAI,QAAQ;AACZ,SAAK,UAAU,WAAY;AACzB,YAAM,aAAY;AAAA,IACxB,CAAK;AACD,QAAI,KAAK,gBAAgB;AACvB,WAAK,kBAAiB;AACtB,WAAK,mBAAkB;AAAA,IACxB;AAAA,EACF,GATQ;AAAA,EAUT,SAAS,gCAAS,UAAU;AAC1B,SAAK,kBAAkB,KAAK;EAC7B,GAFQ;AAAA,EAGT,eAAe,gCAAS,gBAAgB;AACtC,SAAK,qBAAoB;AAAA,EAC1B,GAFc;AAAA,EAGf,SAAS;AAAA,IACP,UAAU,gCAAS,SAAS,OAAO;AACjC,WAAK,kBAAkB,KAAK;AAC5B,YAAM,eAAc;AAAA,IACrB,GAHS;AAAA,IAIV,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAIO,WAAU,KAAK,MAAM;AACzB,UAAI,QAAQ,SAASA,QAAO;AAC5B,UAAI,MAAMA,SAAQ,aAAa;AAC/B,MAAAA,SAAQ,aAAa,OAAO,IAAI,IAAI;AAAA,IACrC,GALkB;AAAA,IAMnB,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAIA,WAAU,KAAK,MAAM;AACzB,UAAI,QAAQ,SAASA,QAAO,IAAI,KAAK,uBAAsB;AAC3D,UAAI,MAAMA,SAAQ,aAAa;AAC/B,UAAI,UAAUA,SAAQ,cAAc;AACpC,MAAAA,SAAQ,aAAa,OAAO,UAAU,UAAU;AAAA,IACjD,GANkB;AAAA,IAOnB,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,WAAK,iBAAiB,IAAI,eAAe,WAAY;AACnD,eAAO,OAAO;MACtB,CAAO;AACD,WAAK,eAAe,QAAQ,KAAK,MAAM,IAAI;AAAA,IAC5C,GANmB;AAAA,IAOpB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI;AACJ,OAAC,uBAAuB,KAAK,oBAAoB,QAAQ,yBAAyB,UAAU,qBAAqB,UAAU,KAAK,MAAM,IAAI;AAC1I,WAAK,iBAAiB;AAAA,IACvB,GAJqB;AAAA,IAKtB,cAAc,gCAAS,eAAe;AACpC,UAAI,cAAc,KAAK,OACrBA,WAAU,YAAY,SACtB,SAAS,YAAY,QACrB,OAAO,YAAY;AACrB,UAAI,YAAY,WAAWA,UAAS,4CAA4C;AAChF,UAAI,KAAK,QAAQ,cAAc;AAC7B,eAAO,MAAM,SAAS,eAAe,SAAS,IAAI;AAClD,eAAO,MAAM,MAAM,UAAU,SAAS,EAAE,MAAM,UAAU,IAAI,EAAE,MAAM;AAAA,MAC5E,OAAa;AACL,eAAO,MAAM,QAAQ,cAAc,SAAS,IAAI;AAChD,eAAO,MAAM,OAAO,UAAU,SAAS,EAAE,OAAO,UAAU,IAAI,EAAE,OAAO;AAAA,MACxE;AAAA,IACF,GAba;AAAA,IAcd,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,eAAe,KAAK,OACtB,OAAO,aAAa,MACpBA,WAAU,aAAa;AACzB,UAAI,aAAaA,SAAQ,YACvB,YAAYA,SAAQ,WACpB,cAAcA,SAAQ,aACtB,eAAeA,SAAQ,cACvB,cAAcA,SAAQ,aACtB,eAAeA,SAAQ;AACzB,UAAI,OAAO,CAAC,SAASA,QAAO,GAAG,UAAUA,QAAO,CAAC,GAC/C,QAAQ,KAAK,CAAC,GACd,SAAS,KAAK,CAAC;AACjB,UAAI,KAAK,QAAQ,cAAc;AAC7B,aAAK,sBAAsB,cAAc;AACzC,aAAK,sBAAsB,KAAK,gBAAgB,gBAAgB,SAAS,SAAS,MAAM,eAAe;AAAA,MAC/G,OAAa;AACL,aAAK,sBAAsB,eAAe;AAC1C,aAAK,sBAAsB,KAAK,eAAe,eAAe,SAAS,UAAU,MAAM,cAAc;AAAA,MACtG;AAAA,IACF,GApBkB;AAAA,IAqBnB,wBAAwB,gCAAS,yBAAyB;AACxD,UAAI,eAAe,KAAK,OACtB,UAAU,aAAa,SACvB,UAAU,aAAa;AACzB,aAAO,CAAC,SAAS,OAAO,EAAE,OAAO,SAAU,KAAK,IAAI;AAClD,eAAO,KAAK,MAAM,SAAS,EAAE,IAAI;AAAA,MAClC,GAAE,CAAC;AAAA,IACL,GAPuB;AAAA,EAQzB;AAAA,EACD,UAAU;AAAA,IACR,WAAW,gCAAS,YAAY;AAC9B,aAAO,KAAK,QAAQ;AAAA,IACrB,GAFU;AAAA,IAGX,aAAa,gCAAS,cAAc;AAClC,aAAO,KAAK,QAAQ;AAAA,IACrB,GAFY;AAAA,IAGb,gBAAgB,gCAASC,kBAAiB;AACxC,aAAO,KAAK,QAAQ,cAAc,KAAK,QAAQ;AAAA,IAChD,GAFe;AAAA,IAGhB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,WAAW;AAAA,IACzF,GAFoB;AAAA,IAGrB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,OAAO;AAAA,IACrF,GAFoB;AAAA,EAGtB;AAAA,EACD,YAAY;AAAA,IACV,iBAAiBC;AAAAA,IACjB,kBAAkBC;AAAAA,EACnB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAIC,eAAa,CAAC,cAAc,UAAU;AAC1C,IAAIC,eAAa,CAAC,kBAAkB;AACpC,IAAIC,eAAa,CAAC,cAAc,UAAU;AAC1C,SAAST,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,EAC3B,GAAK,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,SAAS,kBAAkB,MAAM,sBAAsB,gBAAgB,UAAS,GAAI,mBAAmB,UAAU,WAAW;AAAA,IAClJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,YAAY;AAAA,IAC7B,cAAc,SAAS;AAAA,IACvB,UAAU,SAAS,QAAQ;AAAA,IAC3B,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,qBAAqB,SAAS,kBAAkB,MAAM,UAAU,SAAS;AAAA,IAC/F;AAAA,EACA,GAAK,KAAK,IAAI,YAAY,GAAG;AAAA,IACzB,yBAAyB;AAAA,EAC1B,CAAA,GAAG,EAAE,aAAa,YAAY,wBAAwB,SAAS,UAAU,YAAY,iBAAiB,GAAG,WAAW;AAAA,IACnH,eAAe;AAAA,EACnB,GAAK,KAAK,IAAI,UAAU,CAAC,GAAG,MAAM,EAAE,KAAK,IAAIO,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,GAAGG,gBAAmB,OAAO,WAAW;AAAA,IACnJ,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,SAAS;AAAA,IAC1B,UAAU,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC9C,aAAO,SAAS,YAAY,SAAS,SAAS,MAAM,UAAU,SAAS;AAAA,IAC7E;AAAA,EACA,GAAK,KAAK,IAAI,SAAS,CAAC,GAAG,CAACA,gBAAmB,OAAO,WAAW;AAAA,IAC7D,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,SAAS;AAAA,IAC1B,MAAM;AAAA,IACN,oBAAoB,SAAS,QAAQ,eAAe;AAAA,EACrD,GAAE,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,GAAGA,gBAAmB,QAAQ,WAAW;AAAA,IAClG,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,WAAW;AAAA,IAC5B,MAAM;AAAA,IACN,eAAe;AAAA,EACnB,GAAK,KAAK,IAAI,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,IAAIF,YAAU,CAAC,GAAG,EAAE,GAAG,SAAS,kBAAkB,MAAM,sBAAsB,gBAAgB,aAAa,mBAAmB,UAAU,WAAW;AAAA,IACxL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,YAAY;AAAA,IAC7B,cAAc,SAAS;AAAA,IACvB,UAAU,SAAS,QAAQ;AAAA,IAC3B,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,qBAAqB,SAAS,kBAAkB,MAAM,UAAU,SAAS;AAAA,IAC/F;AAAA,EACA,GAAK,KAAK,IAAI,YAAY,GAAG;AAAA,IACzB,yBAAyB;AAAA,EAC1B,CAAA,GAAG,EAAE,aAAa,YAAY,wBAAwB,SAAS,UAAU,YAAY,kBAAkB,GAAG,WAAW;AAAA,IACpH,eAAe;AAAA,EACnB,GAAK,KAAK,IAAI,UAAU,CAAC,GAAG,MAAM,EAAE,EAAG,GAAE,IAAIC,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AACrH;AAhDST;AAkDTD,SAAO,SAASC;ACnNhB,IAAIL,YAAU;AAAA,EACZ,MAAM,gCAAS,KAAK,MAAM;AACxB,QAAI,WAAW,KAAK,UAClB,QAAQ,KAAK;AACf,WAAO,CAAC,SAAS;AAAA,MACf,gBAAgB,SAAS;AAAA,MACzB,cAAc,MAAM;AAAA,IAC1B,CAAK;AAAA,EACF,GAPK;AAQR;AACA,IAAI,WAAW,UAAU,OAAO;AAAA,EAC9B,MAAM;AAAA,EACN,SAASA;AACX,CAAC;ACRD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWM;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,IAAI;AAAA,MACF,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,WAAU;AAC1B,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,QAAQ,CAAC,WAAW,YAAY;AAAA,EAChC,SAAS;AAAA,IACP,SAAS,gCAAS,UAAU;AAC1B,WAAK,QAAQ,iBAAiB,KAAK,kBAAiB;AAAA,IACrD,GAFQ;AAAA,IAGT,SAAS,gCAAS,UAAU;AAC1B,WAAK,kBAAiB;AAAA,IACvB,GAFQ;AAAA,IAGT,WAAW,gCAAS,UAAU,OAAO;AACnC,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,gBAAgB,KAAK;AAC1B;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,UAAU,KAAK;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,cAAc,KAAK;AACxB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,MACH;AAAA,IACF,GA1BU;AAAA,IA2BX,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,UAAI,UAAU,KAAK,YAAY,MAAM,aAAa;AAClD,gBAAU,KAAK,iBAAiB,OAAO,OAAO,IAAI,KAAK,UAAU,KAAK;AACtE,YAAM,eAAc;AAAA,IACrB,GAJgB;AAAA,IAKjB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,UAAU,KAAK,YAAY,MAAM,aAAa;AAClD,gBAAU,KAAK,iBAAiB,OAAO,OAAO,IAAI,KAAK,SAAS,KAAK;AACrE,YAAM,eAAc;AAAA,IACrB,GAJe;AAAA,IAKhB,WAAW,gCAAS,UAAU,OAAO;AACnC,UAAI,WAAW,KAAK;AACpB,WAAK,iBAAiB,OAAO,QAAQ;AACrC,YAAM,eAAc;AAAA,IACrB,GAJU;AAAA,IAKX,UAAU,gCAAS,SAAS,OAAO;AACjC,UAAI,UAAU,KAAK;AACnB,WAAK,iBAAiB,OAAO,OAAO;AACpC,YAAM,eAAc;AAAA,IACrB,GAJS;AAAA,IAKV,eAAe,gCAAS,cAAc,OAAO;AAC3C,WAAK,aAAa,KAAK,YAAa,CAAA;AACpC,YAAM,eAAc;AAAA,IACrB,GAHc;AAAA,IAIf,aAAa,gCAAS,YAAY,OAAO;AACvC,WAAK,aAAa,KAAK,aAAc,CAAA;AACrC,YAAM,eAAc;AAAA,IACrB,GAHY;AAAA,IAIb,YAAY,gCAAS,WAAW,OAAO;AACrC,WAAK,kBAAiB;AACtB,YAAM,eAAc;AAAA,IACrB,GAHW;AAAA,IAIZ,aAAa,gCAAS,YAAY,YAAY;AAC5C,UAAI,YAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACpF,UAAI,UAAU,YAAY,aAAa,WAAW;AAClD,aAAO,UAAU,aAAa,SAAS,iBAAiB,KAAK,aAAa,SAAS,iBAAiB,MAAM,WAAW,KAAK,YAAY,OAAO,IAAI,WAAW,SAAS,sBAAsB,IAAI;AAAA,IAChM,GAJY;AAAA,IAKb,aAAa,gCAAS,YAAY,YAAY;AAC5C,UAAI,YAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACpF,UAAI,UAAU,YAAY,aAAa,WAAW;AAClD,aAAO,UAAU,aAAa,SAAS,iBAAiB,KAAK,aAAa,SAAS,iBAAiB,MAAM,WAAW,KAAK,YAAY,OAAO,IAAI,WAAW,SAAS,sBAAsB,IAAI;AAAA,IAChM,GAJY;AAAA,IAKb,cAAc,gCAAS,eAAe;AACpC,aAAO,KAAK,YAAY,KAAK,WAAW,MAAM,QAAQ,mBAAmB,IAAI;AAAA,IAC9E,GAFa;AAAA,IAGd,aAAa,gCAAS,cAAc;AAClC,aAAO,KAAK,YAAY,KAAK,WAAW,MAAM,QAAQ,kBAAkB,IAAI;AAAA,IAC7E,GAFY;AAAA,IAGb,mBAAmB,gCAAS,oBAAoB;AAC9C,WAAK,QAAQ,YAAY,KAAK,KAAK;AAAA,IACpC,GAFkB;AAAA,IAGnB,kBAAkB,gCAAS,iBAAiB,OAAO,SAAS;AAC1D,YAAM,OAAO;AACb,WAAK,aAAa,OAAO;AAAA,IAC1B,GAHiB;AAAA,IAIlB,cAAc,gCAAS,aAAa,SAAS;AAC3C,UAAI;AACJ,kBAAY,QAAQ,YAAY,WAAW,wBAAwB,QAAQ,oBAAoB,QAAQ,0BAA0B,UAAU,sBAAsB,KAAK,SAAS;AAAA,QAC7K,OAAO;AAAA,MACf,CAAO;AAAA,IACF,GALa;AAAA,EAMf;AAAA,EACD,UAAU;AAAA,IACR,QAAQ,gCAAS,SAAS;AACxB,UAAI;AACJ,aAAO,QAAQ,gBAAgB,KAAK,aAAa,QAAQ,kBAAkB,SAAS,SAAS,cAAc,SAAS,KAAK,KAAK;AAAA,IAC/H,GAHO;AAAA,IAIR,IAAI,gCAAS,KAAK;AAChB,UAAI;AACJ,aAAO,GAAG,QAAQ,iBAAiB,KAAK,aAAa,QAAQ,mBAAmB,SAAS,SAAS,eAAe,IAAI,OAAO,EAAE,OAAO,KAAK,KAAK;AAAA,IAChJ,GAHG;AAAA,IAIJ,cAAc,gCAAS,eAAe;AACpC,UAAI;AACJ,aAAO,GAAG,QAAQ,iBAAiB,KAAK,aAAa,QAAQ,mBAAmB,SAAS,SAAS,eAAe,IAAI,YAAY,EAAE,OAAO,KAAK,KAAK;AAAA,IACrJ,GAHa;AAAA,IAId,OAAO,gCAAS,QAAQ;AACtB,aAAO,WAAW,KAAK,SAAS,KAAK,WAAW,KAAK,KAAK,QAAQ,KAAK,QAAQ,CAAC;AAAA,IACjF,GAFM;AAAA,IAGP,SAAS,gCAAS,UAAU;AAC1B,aAAO,KAAK,OAAO,WAAW;AAAA,QAC5B,MAAM;AAAA,QACN,UAAU,KAAK;AAAA,MAChB,IAAG;AAAA,IACL,GALQ;AAAA,IAMT,WAAW,gCAAS,YAAY;AAC9B,aAAO;AAAA,QACL,IAAI,KAAK;AAAA,QACT,UAAU,KAAK,SAAS,KAAK,QAAQ,WAAW;AAAA,QAChD,MAAM;AAAA,QACN,iBAAiB,KAAK;AAAA,QACtB,iBAAiB,KAAK;AAAA,QACtB,gBAAgB;AAAA,QAChB,mBAAmB,KAAK;AAAA,QACxB,iBAAiB,KAAK;AAAA,QACtB,SAAS,KAAK;AAAA,QACd,WAAW,KAAK;AAAA,MACxB;AAAA,IACK,GAbU;AAAA,IAcX,UAAU,gCAAS,WAAW;AAC5B,aAAO;AAAA,QACL,SAAS;AAAA,UACP,QAAQ,KAAK;AAAA,QACd;AAAA,MACT;AAAA,IACK,GANS;AAAA,EAOX;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAASI,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,CAAC,KAAK,UAAU,gBAAgB,UAAS,GAAI,YAAY,wBAAwB,KAAK,EAAE,GAAG,WAAW;AAAA,IAC3G,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,SAAS,SAAS;AAAA,EACtB,GAAK,SAAS,KAAK,GAAG;AAAA,IAClB,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC;AAAA,IAChD,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,IAAI,CAAC,SAAS,SAAS,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,WAAW,KAAK,QAAQ,WAAW;AAAA,IACzF,KAAK;AAAA,IACL,SAAS,eAAe,KAAK,GAAG,MAAM,CAAC;AAAA,IACvC,QAAQ,SAAS;AAAA,IACjB,WAAW,SAAS;AAAA,IACpB,SAAS,SAAS;AAAA,EACtB,CAAG;AACH;AAlBSA;AAoBTD,SAAO,SAASC;;;;;;;;;AC9JhB,UAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CzB,IAAIN,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,sFAAsF,OAAO,GAAG,uBAAuB,GAAG,qBAAqB,EAAE,OAAO,GAAG,qBAAqB,GAAG,wBAAwB,EAAE,OAAO,GAAG,kBAAkB,GAAG,gBAAgB,EAAE,OAAO,GAAG,gBAAgB,GAAG,+OAA+O,EAAE,OAAO,GAAG,4BAA4B,GAAG,0DAA0D,EAAE,OAAO,GAAG,+BAA+B,GAAG,qBAAqB,EAAE,OAAO,GAAG,4BAA4B,GAAG,mCAAmC,EAAE,OAAO,GAAG,8BAA8B,GAAG,eAAe,EAAE,OAAO,GAAG,8BAA8B,GAAG,sGAAsG,EAAE,OAAO,GAAG,mCAAmC,GAAG,kBAAkB,EAAE,OAAO,GAAG,kCAAkC,GAAG,GAAG,EAAE,OAAO,GAAG,kCAAkC,GAAG,GAAG,EAAE,OAAO,GAAG,kCAAkC,GAAG,yBAAyB,EAAE,OAAO,GAAG,mCAAmC,GAAG,uSAAuS,EAAE,OAAO,GAAG,sBAAsB,GAAG,gHAAgH,EAAE,OAAO,GAAG,sBAAsB,GAAG,uXAAuX;AACxlE,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,MAAM,gCAASgB,MAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,0BAA0B,gBAAgB,MAAM,MAAM;AAAA,EAC/D,GAHK;AAAA,EAIN,QAAQ;AAAA,EACR,cAAc;AAChB;AACA,IAAIC,iBAAe;AAAA,EACjB,MAAM,gCAASD,MAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC;AAAA,MACN,SAAS;AAAA,MACT,aAAa;AAAA,IACnB,GAAO,MAAM,WAAW,aAAa;AAAA,MAC/B,kBAAkB;AAAA,IACnB,IAAG,EAAE;AAAA,EACP,GARK;AASR;AACA,IAAI,gBAAgB,UAAU,OAAO;AAAA,EACnC,MAAM;AAAA,EACN,OAAOjB;AAAAA,EACP,SAASC;AAAAA,EACT,cAAciB;AAChB,CAAC;ACvBD,IAAIhB,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWM;AAAAA,EACX,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,WAAU;AAC1B,WAAO;AAAA,MACL,aAAa;AAAA,MACb,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,SAASe,qBAAmB,GAAG;AAAE,SAAOC,qBAAmB,CAAC,KAAKC,mBAAiB,CAAC,KAAKC,8BAA4B,CAAC,KAAKC,qBAAoB;AAAG;AAAxIJ;AACT,SAASI,uBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArLA;AACT,SAASD,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOE,oBAAkB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXF;AACT,SAASD,mBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxIA;AACT,SAASD,qBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOI,oBAAkB,CAAC;AAAI;AAA5EJ;AACT,SAASI,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA3IA;AACT,IAAInB,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,eAAe,aAAa,QAAQ;AAAA,EAC5C,UAAU;AAAA,EACV,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,MAAM;AAAA,EACN,eAAe;AAAA,EACf,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,MAAM,gCAASuB,QAAO;AACpB,WAAO;AAAA,MACL,UAAU;AAAA,IAChB;AAAA,EACG,GAJK;AAAA,EAKN,SAAS,gCAASC,WAAU;AAC1B,QAAI,QAAQ;AACZ,QAAI,KAAK,UAAU,KAAK,OAAO,QAAQ;AACrC,UAAI,cAAc;AAClB,UAAI,KAAK,cAAc;AACrB,sBAAc,KAAK;MACpB;AACD,UAAI,CAAC,aAAa;AAChB,YAAI,WAAWP,qBAAmB,KAAK,IAAI,QAAQ,EAAE,OAAO,SAAU,OAAO;AAC3E,iBAAO,MAAM,aAAa,cAAc,MAAM;AAAA,QACxD,CAAS;AACD,YAAI,cAAc,CAAA;AAClB,aAAK,OAAO,IAAI,SAAU,OAAO,GAAG;AAClC,cAAI,mBAAmB,MAAM,SAAS,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO;AAC5E,cAAI,YAAY,oBAAoB,MAAM,MAAM,OAAO;AACvD,sBAAY,CAAC,IAAI;AACjB,mBAAS,CAAC,EAAE,MAAM,YAAY,UAAU,YAAY,UAAU,MAAM,OAAO,SAAS,KAAK,MAAM,aAAa;AAAA,QACtH,CAAS;AACD,aAAK,aAAa;AAClB,aAAK,WAAW,WAAW,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC;AAAA,MACrD;AAAA,IACF;AAAA,EACF,GAtBQ;AAAA,EAuBT,eAAe,gCAASQ,iBAAgB;AACtC,SAAK,MAAK;AACV,SAAK,qBAAoB;AAAA,EAC1B,GAHc;AAAA,EAIf,SAAS;AAAA,IACP,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,aAAO,MAAM,KAAK,SAAS;AAAA,IAC5B,GAFgB;AAAA,IAGjB,eAAe,gCAAS,cAAc,OAAO,OAAO,WAAW;AAC7D,WAAK,gBAAgB,MAAM,iBAAiB,MAAM,OAAO;AACzD,WAAK,OAAO,KAAK,aAAa,SAAS,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG;AACrE,UAAI,CAAC,WAAW;AACd,aAAK,WAAW;AAChB,aAAK,WAAW,KAAK,WAAW,eAAe,MAAM,SAAS,MAAM,eAAe,CAAC,EAAE,QAAQ,MAAM,SAAS,MAAM,eAAe,CAAC,EAAE;AAAA,MACtI;AACD,WAAK,mBAAmB,KAAK,cAAc;AAC3C,WAAK,mBAAmB,KAAK,cAAc;AAC3C,UAAI,WAAW;AACb,aAAK,gBAAgB,KAAK,aAAa,cAAc,KAAK,kBAAkB,IAAI,IAAI,eAAe,KAAK,kBAAkB,IAAI;AAC9H,aAAK,gBAAgB,KAAK,aAAa,cAAc,KAAK,kBAAkB,IAAI,IAAI,eAAe,KAAK,kBAAkB,IAAI;AAAA,MACtI,OAAa;AACL,aAAK,gBAAgB,OAAO,KAAK,aAAa,cAAc,KAAK,kBAAkB,IAAI,IAAI,eAAe,KAAK,kBAAkB,IAAI,KAAK,KAAK;AAC/I,aAAK,gBAAgB,OAAO,KAAK,aAAa,cAAc,KAAK,kBAAkB,IAAI,IAAI,eAAe,KAAK,kBAAkB,IAAI,KAAK,KAAK;AAAA,MAChJ;AACD,WAAK,iBAAiB;AACtB,WAAK,MAAM,eAAe;AAAA,QACxB,eAAe;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AACD,WAAK,MAAM,OAAO,KAAK,EAAE,aAAa,0BAA0B,IAAI;AACpE,WAAK,IAAI,aAAa,mBAAmB,IAAI;AAAA,IAC9C,GAvBc;AAAA,IAwBf,UAAU,gCAAS,SAAS,OAAO,MAAM,WAAW;AAClD,UAAI,QAAQ,kBAAkB;AAC9B,UAAI,WAAW;AACb,YAAI,KAAK,YAAY;AACnB,6BAAmB,OAAO,KAAK,gBAAgB,QAAQ,KAAK;AAC5D,6BAAmB,OAAO,KAAK,gBAAgB,QAAQ,KAAK;AAAA,QACtE,OAAe;AACL,6BAAmB,OAAO,KAAK,gBAAgB,QAAQ,KAAK;AAC5D,6BAAmB,OAAO,KAAK,gBAAgB,QAAQ,KAAK;AAAA,QAC7D;AAAA,MACT,OAAa;AACL,YAAI,KAAK,WAAY,UAAS,MAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,WAAW,MAAM,KAAK;AAAA,YAAU,UAAS,MAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,WAAW,MAAM,KAAK;AACvK,2BAAmB,KAAK,gBAAgB;AACxC,2BAAmB,KAAK,gBAAgB;AAAA,MACzC;AACD,UAAI,KAAK,eAAe,kBAAkB,gBAAgB,GAAG;AAC3D,aAAK,iBAAiB,MAAM,YAAY,UAAU,mBAAmB,UAAU,KAAK,OAAO,SAAS,KAAK,KAAK,aAAa;AAC3H,aAAK,iBAAiB,MAAM,YAAY,UAAU,mBAAmB,UAAU,KAAK,OAAO,SAAS,KAAK,KAAK,aAAa;AAC3H,aAAK,WAAW,KAAK,cAAc,IAAI;AACvC,aAAK,WAAW,KAAK,iBAAiB,CAAC,IAAI;AAC3C,aAAK,WAAW,WAAW,gBAAgB,EAAE,QAAQ,CAAC;AAAA,MACvD;AACD,WAAK,MAAM,UAAU;AAAA,QACnB,eAAe;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GA1BS;AAAA,IA2BV,aAAa,gCAAS,YAAY,OAAO;AACvC,UAAI,KAAK,cAAc;AACrB,aAAK,UAAS;AAAA,MACf;AACD,WAAK,MAAM,aAAa;AAAA,QACtB,eAAe;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AACD,WAAK,MAAM,OAAO,QAAQ,SAAU,QAAQ;AAC1C,eAAO,OAAO,aAAa,0BAA0B,KAAK;AAAA,MAClE,CAAO;AACD,WAAK,IAAI,aAAa,mBAAmB,KAAK;AAC9C,WAAK,MAAK;AAAA,IACX,GAbY;AAAA,IAcb,QAAQ,gCAAS,OAAO,OAAO,OAAO,MAAM;AAC1C,WAAK,cAAc,OAAO,OAAO,IAAI;AACrC,WAAK,SAAS,OAAO,MAAM,IAAI;AAAA,IAChC,GAHO;AAAA,IAIR,UAAU,gCAAS,SAAS,OAAO,OAAO,MAAM;AAC9C,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,OAAO;AACf,aAAK,QAAQ,YAAY,WAAY;AACnC,iBAAO,OAAO,OAAO,OAAO,IAAI;AAAA,QACjC,GAAE,EAAE;AAAA,MACN;AAAA,IACF,GAPS;AAAA,IAQV,YAAY,gCAAS,aAAa;AAChC,UAAI,KAAK,OAAO;AACd,sBAAc,KAAK,KAAK;AACxB,aAAK,QAAQ;AAAA,MACd;AAAA,IACF,GALW;AAAA,IAMZ,eAAe,gCAAS,gBAAgB;AACtC,WAAK,WAAU;AACf,WAAK,YAAW;AAAA,IACjB,GAHc;AAAA,IAIf,iBAAiB,gCAAS,gBAAgB,OAAO,OAAO;AACtD,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK,aACH;AACE,cAAI,KAAK,WAAW,cAAc;AAChC,iBAAK,SAAS,OAAO,OAAO,KAAK,OAAO,EAAE;AAAA,UAC3C;AACD,gBAAM,eAAc;AACpB;AAAA,QACD;AAAA,QACH,KAAK,cACH;AACE,cAAI,KAAK,WAAW,cAAc;AAChC,iBAAK,SAAS,OAAO,OAAO,KAAK,IAAI;AAAA,UACtC;AACD,gBAAM,eAAc;AACpB;AAAA,QACD;AAAA,QACH,KAAK,aACH;AACE,cAAI,KAAK,WAAW,YAAY;AAC9B,iBAAK,SAAS,OAAO,OAAO,KAAK,OAAO,EAAE;AAAA,UAC3C;AACD,gBAAM,eAAc;AACpB;AAAA,QACD;AAAA,QACH,KAAK,WACH;AACE,cAAI,KAAK,WAAW,YAAY;AAC9B,iBAAK,SAAS,OAAO,OAAO,KAAK,IAAI;AAAA,UACtC;AACD,gBAAM,eAAc;AACpB;AAAA,QACD;AAAA,MACJ;AAAA,IACF,GAnCgB;AAAA,IAoCjB,mBAAmB,gCAAS,kBAAkB,OAAO,OAAO;AAC1D,WAAK,cAAc,OAAO,KAAK;AAC/B,WAAK,mBAAkB;AAAA,IACxB,GAHkB;AAAA,IAInB,oBAAoB,gCAAS,mBAAmB,OAAO,OAAO;AAC5D,WAAK,cAAc,OAAO,KAAK;AAC/B,WAAK,mBAAkB;AACvB,YAAM,eAAc;AAAA,IACrB,GAJmB;AAAA,IAKpB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,WAAK,SAAS,KAAK;AACnB,YAAM,eAAc;AAAA,IACrB,GAHkB;AAAA,IAInB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,WAAK,YAAY,KAAK;AACtB,WAAK,qBAAoB;AACzB,YAAM,eAAc;AAAA,IACrB,GAJiB;AAAA,IAKlB,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,mBAAmB;AAC3B,aAAK,oBAAoB,SAAU,OAAO;AACxC,iBAAO,OAAO,SAAS,KAAK;AAAA,QACtC;AACQ,iBAAS,iBAAiB,aAAa,KAAK,iBAAiB;AAAA,MAC9D;AACD,UAAI,CAAC,KAAK,iBAAiB;AACzB,aAAK,kBAAkB,SAAU,OAAO;AACtC,iBAAO,YAAY,KAAK;AACxB,iBAAO,qBAAoB;AAAA,QACrC;AACQ,iBAAS,iBAAiB,WAAW,KAAK,eAAe;AAAA,MAC1D;AAAA,IACF,GAfmB;AAAA,IAgBpB,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,mBAAmB;AAC3B,aAAK,oBAAoB,SAAU,OAAO;AACxC,iBAAO,OAAO,SAAS,MAAM,eAAe,CAAC,CAAC;AAAA,QACxD;AACQ,iBAAS,iBAAiB,aAAa,KAAK,iBAAiB;AAAA,MAC9D;AACD,UAAI,CAAC,KAAK,kBAAkB;AAC1B,aAAK,mBAAmB,SAAU,OAAO;AACvC,iBAAO,UAAU,KAAK;AACtB,iBAAO,qBAAoB;AAAA,QACrC;AACQ,iBAAS,iBAAiB,YAAY,KAAK,gBAAgB;AAAA,MAC5D;AAAA,IACF,GAfmB;AAAA,IAgBpB,gBAAgB,gCAAS,eAAe,kBAAkB,kBAAkB;AAC1E,UAAI,mBAAmB,OAAO,mBAAmB,EAAG,QAAO;AAC3D,UAAI,mBAAmB,OAAO,mBAAmB,EAAG,QAAO;AAC3D,UAAI,mBAAmB,aAAa,KAAK,OAAO,KAAK,cAAc,GAAG,SAAS;AAC/E,UAAI,KAAK,OAAO,KAAK,cAAc,EAAE,SAAS,oBAAoB,mBAAmB,kBAAkB;AACrG,eAAO;AAAA,MACR;AACD,UAAI,kBAAkB,aAAa,KAAK,OAAO,KAAK,iBAAiB,CAAC,GAAG,SAAS;AAClF,UAAI,KAAK,OAAO,KAAK,iBAAiB,CAAC,EAAE,SAAS,mBAAmB,kBAAkB,kBAAkB;AACvG,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR,GAZe;AAAA,IAahB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,mBAAmB;AAC1B,iBAAS,oBAAoB,aAAa,KAAK,iBAAiB;AAChE,aAAK,oBAAoB;AAAA,MAC1B;AACD,UAAI,KAAK,iBAAiB;AACxB,iBAAS,oBAAoB,WAAW,KAAK,eAAe;AAC5D,aAAK,kBAAkB;AAAA,MACxB;AAAA,IACF,GATqB;AAAA,IAUtB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,mBAAmB;AAC1B,iBAAS,oBAAoB,aAAa,KAAK,iBAAiB;AAChE,aAAK,oBAAoB;AAAA,MAC1B;AACD,UAAI,KAAK,kBAAkB;AACzB,iBAAS,oBAAoB,YAAY,KAAK,gBAAgB;AAC9D,aAAK,mBAAmB;AAAA,MACzB;AAAA,IACF,GATqB;AAAA,IAUtB,OAAO,gCAAS,QAAQ;AACtB,WAAK,WAAW;AAChB,WAAK,OAAO;AACZ,WAAK,WAAW;AAChB,WAAK,mBAAmB;AACxB,WAAK,mBAAmB;AACxB,WAAK,gBAAgB;AACrB,WAAK,gBAAgB;AACrB,WAAK,gBAAgB;AACrB,WAAK,iBAAiB;AAAA,IACvB,GAVM;AAAA,IAWP,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,YAAY;AAAA,IACzB,GAFW;AAAA,IAGZ,YAAY,gCAAS,aAAa;AAChC,cAAQ,KAAK,cAAY;AAAA,QACvB,KAAK;AACH,iBAAO,OAAO;AAAA,QAChB,KAAK;AACH,iBAAO,OAAO;AAAA,QAChB;AACE,gBAAM,IAAI,MAAM,KAAK,eAAe,0FAA0F;AAAA,MACjI;AAAA,IACF,GATW;AAAA,IAUZ,WAAW,gCAAS,YAAY;AAC9B,UAAI,QAAQ,KAAK,UAAU,GAAG;AAC5B,aAAK,WAAU,EAAG,QAAQ,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,CAAC;AAAA,MACzE;AAAA,IACF,GAJU;AAAA,IAKX,cAAc,gCAAS,eAAe;AACpC,UAAI,SAAS;AACb,UAAI,UAAU,KAAK;AACnB,UAAI,cAAc,QAAQ,QAAQ,KAAK,QAAQ;AAC/C,UAAI,aAAa;AACf,aAAK,aAAa,KAAK,MAAM,WAAW;AACxC,YAAI,WAAWR,qBAAmB,KAAK,IAAI,QAAQ,EAAE,OAAO,SAAU,OAAO;AAC3E,iBAAO,MAAM,aAAa,cAAc,MAAM;AAAA,QACxD,CAAS;AACD,iBAAS,QAAQ,SAAU,OAAO,GAAG;AACnC,gBAAM,MAAM,YAAY,UAAU,OAAO,WAAW,CAAC,IAAI,UAAU,OAAO,OAAO,SAAS,KAAK,OAAO,aAAa;AAAA,QAC7H,CAAS;AACD,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR,GAfa;AAAA,EAgBf;AAAA,EACD,UAAU;AAAA,IACR,QAAQ,gCAAS,SAAS;AACxB,UAAI,SAAS;AACb,UAAIS,UAAS,CAAA;AACb,WAAK,OAAO,SAAS,EAAG,EAAC,QAAQ,SAAU,OAAO;AAChD,YAAI,OAAO,gBAAgB,KAAK,GAAG;AACjC,UAAAA,QAAO,KAAK,KAAK;AAAA,QAC3B,WAAmB,MAAM,oBAAoB,OAAO;AAC1C,gBAAM,SAAS,QAAQ,SAAU,aAAa;AAC5C,gBAAI,OAAO,gBAAgB,WAAW,GAAG;AACvC,cAAAA,QAAO,KAAK,WAAW;AAAA,YACxB;AAAA,UACb,CAAW;AAAA,QACF;AAAA,MACT,CAAO;AACD,aAAOA;AAAA,IACR,GAfO;AAAA,IAgBR,aAAa,gCAAS,cAAc;AAClC,UAAI,KAAK,WAAY,QAAO;AAAA,QAC1B,OAAO,KAAK,aAAa;AAAA,MAC1B;AAAA,UAAM,QAAO;AAAA,QACZ,QAAQ,KAAK,aAAa;AAAA,MAClC;AAAA,IACK,GANY;AAAA,IAOb,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,WAAW;AAAA,IACxB,GAFW;AAAA,IAGZ,cAAc,gCAAS,eAAe;AACpC,UAAI;AACJ,aAAO;AAAA,QACL,SAAS;AAAA,UACP,SAAS,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,QACtI;AAAA,MACT;AAAA,IACK,GAPa;AAAA,EAQf;AACH;AAEA,IAAIf,eAAa,CAAC,eAAe,gBAAgB,eAAe,YAAY;AAC5E,IAAIC,eAAa,CAAC,oBAAoB,iBAAiB,WAAW;AAClE,SAASR,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,OAAO,KAAK,GAAG,MAAM;AAAA,IACrB,mBAAmB;AAAA,EACvB,GAAK,KAAK,KAAK,QAAQ,SAAS,YAAY,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,SAAS,QAAQ,SAAU,OAAO,GAAG;AAClJ,WAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,MAC/C,KAAK;AAAA,IACN,GAAE,EAAE,UAAW,GAAE,YAAY,wBAAwB,KAAK,GAAG;AAAA,MAC5D,UAAU;AAAA,IACX,CAAA,IAAI,MAAM,SAAS,OAAO,SAAS,KAAK,aAAa,mBAAmB,OAAO,WAAW;AAAA,MACzF,KAAK;AAAA,MACL,SAAS;AAAA,MACT,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,QAAQ;AAAA,MACzB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,aAAa,gCAAS,YAAY,QAAQ;AACxC,eAAO,SAAS,kBAAkB,QAAQ,CAAC;AAAA,MAC5C,GAFY;AAAA,MAGb,cAAc,gCAAS,aAAa,QAAQ;AAC1C,eAAO,SAAS,mBAAmB,QAAQ,CAAC;AAAA,MAC7C,GAFa;AAAA,MAGd,aAAa,gCAAS,YAAY,QAAQ;AACxC,eAAO,SAAS,kBAAkB,QAAQ,CAAC;AAAA,MAC5C,GAFY;AAAA,MAGb,YAAY,gCAAS,WAAW,QAAQ;AACtC,eAAO,SAAS,iBAAiB,QAAQ,CAAC;AAAA,MAC3C,GAFW;AAAA,MAGZ,0BAA0B;AAAA,IAChC,GAAO,KAAK,IAAI,QAAQ,CAAC,GAAG,CAACU,gBAAmB,OAAO,WAAW;AAAA,MAC5D,SAAS,KAAK,GAAG,cAAc;AAAA,MAC/B,UAAU;AAAA,MACV,OAAO,CAAC,SAAS,WAAW;AAAA,MAC5B,oBAAoB,KAAK;AAAA,MACzB,iBAAiB,MAAM;AAAA,MACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,eAAO,SAAS,iBAAiB,SAAS,cAAc,MAAM,UAAU,SAAS;AAAA,MACzF;AAAA,MACM,WAAW,gCAASa,WAAU,QAAQ;AACpC,eAAO,SAAS,gBAAgB,QAAQ,CAAC;AAAA,MAC1C,GAFU;AAAA,MAGX,SAAS;AAAA,IACf,GAAO,KAAK,IAAI,cAAc,CAAC,GAAG,MAAM,IAAIf,YAAU,CAAC,GAAG,IAAID,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,EAC3G,CAAA,GAAG,GAAG,KAAK,EAAE;AAChB;AA7CSP;AA+CTD,SAAO,SAASC;ACxbhB,IAAIL,YAAU;AAAA,EACZ,MAAM,gCAASgB,MAAK,MAAM;AACxB,QAAI,WAAW,KAAK;AACpB,WAAO,CAAC,mBAAmB;AAAA,MACzB,0BAA0B,SAAS;AAAA,IACzC,CAAK;AAAA,EACF,GALK;AAMR;AACA,IAAI,qBAAqB,UAAU,OAAO;AAAA,EACxC,MAAM;AAAA,EACN,SAAShB;AACX,CAAC;ACTD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWM;AAAAA,EACX,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,WAAU;AAC1B,WAAO;AAAA,MACL,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,MAAM,gCAASuB,QAAO;AACpB,WAAO;AAAA,MACL,aAAa;AAAA,IACnB;AAAA,EACG,GAJK;AAAA,EAKN,UAAU;AAAA,IACR,UAAU,gCAAS,WAAW;AAC5B,UAAI,QAAQ;AACZ,aAAO,KAAK,OAAO,SAAS,EAAC,EAAG,KAAK,SAAU,OAAO;AACpD,cAAM,cAAc,MAAM,KAAK,SAAS,aAAa,OAAO;AAC5D,eAAO,MAAM;AAAA,MACrB,CAAO;AAAA,IACF,GANS;AAAA,IAOV,cAAc,gCAASK,gBAAe;AACpC,aAAO;AAAA,QACL,SAAS;AAAA,UACP,QAAQ,KAAK;AAAA,QACd;AAAA,MACT;AAAA,IACK,GANa;AAAA,EAOf;AACH;AAEA,SAASxB,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,EACxB,GAAE,KAAK,KAAK,QAAQ,SAAS,YAAY,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC,GAAG,EAAE;AACxF;AALSA;AAOTD,SAAO,SAASC;;;;ACNhB,UAAM,eAAe;AACrB,UAAM,kBAAkB;AAAA,MAA2B,MACjD,aAAa,IAAI,wBAAwB;AAAA,IAAA;AAG3C,UAAM,sBAAsB;AAAA,MAC1B,MAAM,mBAAmB,EAAE,qBAAqB;AAAA,IAAA;AAElD,UAAM,qBAAqB;AAAA,MACzB,MAAM,oBAAsB,EAAA;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5D9B,IAAIN,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,+JAA+J,OAAO,GAAG,wBAAwB,GAAG,kGAAkG,EAAE,OAAO,GAAG,6BAA6B,GAAG,KAAK,EAAE,OAAO,GAAG,wBAAwB,GAAG,0kBAA0kB,EAAE,OAAO,GAAG,6BAA6B,GAAG,kCAAkC,EAAE,OAAO,GAAG,qCAAqC,GAAG,qCAAqC,EAAE,OAAO,GAAG,qCAAqC,GAAG,qBAAqB,EAAE,OAAO,GAAG,kCAAkC,GAAG,2BAA2B,EAAE,OAAO,GAAG,oCAAoC,GAAG,0CAA0C,EAAE,OAAO,GAAG,6BAA6B,GAAG,gCAAgC,EAAE,OAAO,GAAG,kCAAkC,GAAG,UAAU,EAAE,OAAO,GAAG,kCAAkC,GAAG,iBAAiB,EAAE,OAAO,GAAG,kCAAkC,GAAG,kBAAkB,EAAE,OAAO,GAAG,kCAAkC,GAAG,eAAe,EAAE,OAAO,GAAG,kCAAkC,GAAG,4GAA4G,EAAE,OAAO,GAAG,wCAAwC,GAAG,uBAAuB,EAAE,OAAO,GAAG,0CAA0C,GAAG,gBAAgB,EAAE,OAAO,GAAG,mCAAmC,GAAG,4EAA4E,EAAE,OAAO,GAAG,yCAAyC,GAAG,uBAAuB,EAAE,OAAO,GAAG,2CAA2C,GAAG,gBAAgB,EAAE,OAAO,GAAG,oCAAoC,GAAG,oEAAoE,EAAE,OAAO,GAAG,yCAAyC,GAAG,kBAAkB,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,yBAAyB,EAAE,OAAO,GAAG,yCAAyC,GAAG,oMAAoM,EAAE,OAAO,GAAG,iCAAiC,GAAG,gBAAgB,EAAE,OAAO,GAAG,4BAA4B,GAAG,2BAA2B,EAAE,OAAO,GAAG,mCAAmC,GAAG,wBAAwB,EAAE,OAAO,GAAG,oCAAoC,GAAG,qBAAqB,EAAE,OAAO,GAAG,6BAA6B,GAAG,yJAAyJ,EAAE,OAAO,GAAG,uBAAuB,GAAG,kBAAkB,EAAE,OAAO,GAAG,2BAA2B,GAAG,+LAA+L,EAAE,OAAO,GAAG,6BAA6B,GAAG,qCAAqC,EAAE,OAAO,GAAG,2BAA2B,GAAG,8DAA8D,EAAE,OAAO,GAAG,kCAAkC,GAAG,UAAU,EAAE,OAAO,GAAG,kCAAkC,GAAG,iBAAiB,EAAE,OAAO,GAAG,kCAAkC,GAAG,wBAAwB,EAAE,OAAO,GAAG,mCAAmC,GAAG,kHAAkH,EAAE,OAAO,GAAG,sCAAsC,GAAG,gBAAgB,EAAE,OAAO,GAAG,iCAAiC,GAAG,6DAA6D,EAAE,OAAO,GAAG,yCAAyC,GAAG,gBAAgB,EAAE,OAAO,GAAG,oCAAoC,GAAG,qEAAqE,EAAE,OAAO,GAAG,+CAA+C,GAAG,gBAAgB,EAAE,OAAO,GAAG,0CAA0C,GAAG,uEAAuE,EAAE,OAAO,GAAG,mCAAmC,GAAG,gBAAgB,EAAE,OAAO,GAAG,iCAAiC,GAAG,qBAAqB,EAAE,OAAO,GAAG,sCAAsC,GAAG,sBAAsB,EAAE,OAAO,GAAG,uCAAuC,GAAG,wNAAwN,EAAE,OAAO,GAAG,wBAAwB,GAAG,QAAQ,EAAE,OAAO,GAAG,wBAAwB,GAAG,mBAAmB,EAAE,OAAO,GAAG,wBAAwB,GAAG,qBAAqB,EAAE,OAAO,GAAG,oBAAoB,GAAG,qBAAqB,EAAE,OAAO,GAAG,yBAAyB,GAAG,2BAA2B,EAAE,OAAO,GAAG,2BAA2B,GAAG,wBAAwB,EAAE,OAAO,GAAG,4BAA4B,GAAG,kDAAkD,EAAE,OAAO,GAAG,kCAAkC,GAAG,UAAU,EAAE,OAAO,GAAG,kCAAkC,GAAG,iBAAiB,EAAE,OAAO,GAAG,kCAAkC,GAAG,kBAAkB,EAAE,OAAO,GAAG,kCAAkC,GAAG,eAAe,EAAE,OAAO,GAAG,kCAAkC,GAAG,sDAAsD,EAAE,OAAO,GAAG,qBAAqB,GAAG,qGAAqG,EAAE,OAAO,GAAG,iCAAiC,GAAG,uGAAuG,EAAE,OAAO,GAAG,iCAAiC,GAAG,qBAAqB,EAAE,OAAO,GAAG,gCAAgC,GAAG,kBAAkB,EAAE,OAAO,GAAG,+BAA+B,GAAG,GAAG,EAAE,OAAO,GAAG,+BAA+B,GAAG,GAAG,EAAE,OAAO,GAAG,+BAA+B,GAAG,yBAAyB,EAAE,OAAO,GAAG,gCAAgC,GAAG,wFAAwF,EAAE,OAAO,GAAG,mCAAmC,GAAG,6EAA6E,EAAE,OAAO,GAAG,gCAAgC,GAAG,uHAAuH,EAAE,OAAO,GAAG,sCAAsC,GAAG,wGAAwG,EAAE,OAAO,GAAG,kCAAkC,GAAG,gBAAgB,EAAE,OAAO,GAAG,6BAA6B,GAAG,+DAA+D,EAAE,OAAO,GAAG,wBAAwB,GAAG,mCAAmC,EAAE,OAAO,GAAG,wBAAwB,GAAG,6BAA6B,EAAE,OAAO,GAAG,iCAAiC,GAAG,6FAA6F,EAAE,OAAO,GAAG,wBAAwB,GAAG,kCAAkC,EAAE,OAAO,GAAG,wBAAwB,GAAG,yFAAyF,EAAE,OAAO,GAAG,kCAAkC,GAAG,gBAAgB,EAAE,OAAO,GAAG,6BAA6B,GAAG,8GAA8G,EAAE,OAAO,GAAG,wBAAwB,GAAG,mCAAmC,EAAE,OAAO,GAAG,wBAAwB,GAAG,yYAAyY,EAAE,OAAO,GAAG,gCAAgC,GAAG,wDAAwD,EAAE,OAAO,GAAG,oCAAoC,GAAG,4JAA4J;AAC5xR,GAHY;AAIZ,IAAIkB,iBAAe;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,EACX;AACH;AACA,IAAIjB,YAAU;AAAA,EACZ,MAAM,gCAASgB,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,QAAQ,MAAM;AAChB,WAAO,CAAC,6CAA6C;AAAA,MACnD,cAAc,MAAM;AAAA,MACpB,aAAa,MAAM;AAAA,MACnB,WAAW,SAAS;AAAA,MACpB,yBAAyB,MAAM,cAAc,WAAW,SAAS,UAAU;AAAA,MAC3E,wBAAwB,SAAS;AAAA,MACjC,uBAAuB,SAAS;AAAA,MAChC,wBAAwB,SAAS;AAAA,IACvC,CAAK;AAAA,EACF,GAZK;AAAA,EAaN,SAAS;AAAA,EACT,eAAe,gCAAS,cAAc,OAAO;AAC3C,QAAI,QAAQ,MAAM,OAChB,WAAW,MAAM;AACnB,WAAO,CAAC,iCAAiC;AAAA,MACvC,oBAAoB,MAAM,UAAU,MAAM,YAAY,WAAW,SAAS,UAAU,OAAO,eAAe,YAAY,SAAS,UAAU,OAAO,iBAAiB;AAAA,IACvK,CAAK;AAAA,EACF,GANc;AAAA,EAOf,UAAU,gCAAS,SAAS,OAAO;AACjC,QAAI,WAAW,MAAM,UACnB,IAAI,MAAM;AACZ,WAAO,CAAC,4BAA4B;AAAA,MAClC,WAAW,SAAS,+BAA+B;AAAA,IACzD,CAAK;AAAA,EACF,GANS;AAAA,EAOV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ,gCAAS,OAAO,OAAO;AAC7B,QAAI,WAAW,MAAM,UACnB,UAAU,MAAM,QAChB,IAAI,MAAM,GACV,iBAAiB,MAAM;AACzB,WAAO,CAAC,yBAAyB;AAAA,MAC/B,kCAAkC,SAAS,WAAW,OAAO;AAAA,MAC7D,WAAW,SAAS,uBAAuB,SAAS,eAAe,GAAG,cAAc;AAAA,MACpF,cAAc,SAAS,iBAAiB,OAAO;AAAA,IACrD,CAAK;AAAA,EACF,GAVO;AAAA,EAWR,cAAc;AAChB;AACA,IAAI,oBAAoB,UAAU,OAAO;AAAA,EACvC,MAAM;AAAA,EACN,OAAOjB;AAAAA,EACP,SAASC;AAAAA,EACT,cAAciB;AAChB,CAAC;ACnDD,IAAIhB,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWM;AAAAA,EACX,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,WAAU;AAC1B,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,SAAS2B,YAAU,GAAG;AAAE;AAA2B,SAAOA,cAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUC,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAID,YAAU,CAAC;AAAI;AAA3TA;AACT,SAASZ,qBAAmB,GAAG;AAAE,SAAOC,qBAAmB,CAAC,KAAKC,mBAAiB,CAAC,KAAKC,8BAA4B,CAAC,KAAKC,qBAAoB;AAAG;AAAxIJ;AACT,SAASI,uBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArLA;AACT,SAASD,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOE,oBAAkB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXF;AACT,SAASD,mBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxIA;AACT,SAASD,qBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOI,oBAAkB,CAAC;AAAI;AAA5EJ;AACT,SAASI,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA3IA;AACT,IAAInB,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,qBAAqB,UAAU,SAAS,QAAQ,eAAe,iBAAiB,iBAAiB,mBAAmB,kBAAkB,SAAS,YAAY,eAAe,eAAe,QAAQ,MAAM;AAAA,EAC/M,QAAQ;AAAA,IACN,UAAU;AAAA,MACR,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,OAAO;AAAA,EACP,MAAM,gCAASuB,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,oBAAoB;AAAA,MACpB,4BAA4B;AAAA,MAC5B,gBAAgB;AAAA,MAChB,WAAW;AAAA,IACjB;AAAA,EACG,GAVK;AAAA,EAWN,OAAO;AAAA,IACL,aAAa,gCAAS,SAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,IAGb,aAAa,gCAAS,cAAc;AAClC,UAAI,KAAK,WAAW;AAClB,aAAK,KAAI;AACT,aAAK,qBAAqB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,gCAAgC;AAC7G,aAAK,YAAY;AAAA,MAClB;AACD,WAAK,gBAAe;AAAA,IACrB,GAPY;AAAA,EAQd;AAAA,EACD,SAAS,gCAASC,WAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AACtC,SAAK,gBAAe;AAAA,EACrB,GAHQ;AAAA,EAIT,SAAS,gCAASO,WAAU;AAC1B,QAAI,KAAK,gBAAgB;AACvB,WAAK,aAAY;AAAA,IAClB;AAAA,EACF,GAJQ;AAAA,EAKT,eAAe,gCAASN,iBAAgB;AACtC,SAAK,2BAA0B;AAC/B,SAAK,qBAAoB;AACzB,QAAI,KAAK,eAAe;AACtB,WAAK,cAAc;AACnB,WAAK,gBAAgB;AAAA,IACtB;AACD,QAAI,KAAK,SAAS;AAChB,aAAO,MAAM,KAAK,OAAO;AACzB,WAAK,UAAU;AAAA,IAChB;AAAA,EACF,GAXc;AAAA,EAYf,SAAS;AAAA,IACP,gBAAgB,gCAAS,eAAe,OAAO,IAAI;AACjD,aAAO,KAAK,0BAA0B,QAAQ,MAAM,GAAG,KAAK,EAAE,OAAO;AAAA,IACtE,GAFe;AAAA,IAGhB,gBAAgB,gCAAS,eAAeO,SAAQ;AAC9C,aAAO,KAAK,cAAc,iBAAiBA,SAAQ,KAAK,WAAW,IAAIA;AAAA,IACxE,GAFe;AAAA,IAGhB,gBAAgB,gCAAS,eAAeA,SAAQ;AAC9C,aAAOA;AAAA,IACR,GAFe;AAAA,IAGhB,oBAAoB,gCAAS,mBAAmBA,SAAQ,OAAO;AAC7D,cAAQ,KAAK,UAAU,iBAAiBA,SAAQ,KAAK,OAAO,IAAI,KAAK,eAAeA,OAAM,KAAK,MAAM;AAAA,IACtG,GAFmB;AAAA,IAGpB,cAAc,gCAASJ,cAAaI,SAAQ,aAAa,OAAO,KAAK;AACnE,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,UAAU,KAAK,WAAWA,OAAM;AAAA,UAChC,SAAS,KAAK,uBAAuB,KAAK,eAAe,OAAO,WAAW;AAAA,UAC3E,UAAU,KAAK,iBAAiBA,OAAM;AAAA,QACvC;AAAA,MACT,CAAO;AAAA,IACF,GARa;AAAA,IASd,kBAAkB,gCAAS,iBAAiBA,SAAQ;AAClD,aAAO,KAAK,iBAAiB,iBAAiBA,SAAQ,KAAK,cAAc,IAAI;AAAA,IAC9E,GAFiB;AAAA,IAGlB,eAAe,gCAAS,cAAcA,SAAQ;AAC5C,aAAO,KAAK,oBAAoBA,QAAO,eAAeA,QAAO;AAAA,IAC9D,GAFc;AAAA,IAGf,qBAAqB,gCAAS,oBAAoB,aAAa;AAC7D,aAAO,iBAAiB,aAAa,KAAK,gBAAgB;AAAA,IAC3D,GAFoB;AAAA,IAGrB,wBAAwB,gCAAS,uBAAuB,aAAa;AACnE,aAAO,iBAAiB,aAAa,KAAK,mBAAmB;AAAA,IAC9D,GAFuB;AAAA,IAGxB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,UAAI,QAAQ;AACZ,cAAQ,KAAK,mBAAmB,QAAQ,KAAK,eAAe,MAAM,GAAG,KAAK,EAAE,OAAO,SAAUA,SAAQ;AACnG,eAAO,MAAM,cAAcA,OAAM;AAAA,MACzC,CAAO,EAAE,SAAS,SAAS;AAAA,IACtB,GALgB;AAAA,IAMjB,MAAM,gCAAS,KAAK,SAAS;AAC3B,WAAK,MAAM,aAAa;AACxB,WAAK,QAAQ;AACb,WAAK,iBAAiB;AACtB,WAAK,qBAAqB,KAAK,uBAAuB,KAAK,KAAK,qBAAqB,KAAK,kBAAkB,KAAK,4BAA6B,IAAG;AACjJ,iBAAW,MAAM,KAAK,WAAW,KAAK,MAAM,aAAa,KAAK,MAAM,WAAW,GAAG;AAAA,IACnF,GANK;AAAA,IAON,MAAM,gCAAS,KAAK,SAAS;AAC3B,UAAI,SAAS;AACb,UAAI,QAAQ,gCAASC,SAAQ;AAC3B,eAAO,MAAM,aAAa;AAC1B,eAAO,QAAQ;AACf,eAAO,iBAAiB;AACxB,eAAO,UAAU;AACjB,eAAO,qBAAqB;AAC5B,mBAAW,MAAM,OAAO,WAAW,OAAO,MAAM,aAAa,OAAO,MAAM,WAAW,GAAG;AAAA,MAChG,GAPkB;AAQZ,iBAAW,WAAY;AACrB;MACD,GAAE,CAAC;AAAA,IACL,GAbK;AAAA,IAcN,SAAS,gCAASC,SAAQ,OAAO;AAC/B,UAAI,KAAK,UAAU;AAEjB;AAAA,MACD;AACD,UAAI,CAAC,KAAK,SAAS,KAAK,iBAAiB;AACvC,aAAK,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO;AAAA,MAC/C;AACD,WAAK,QAAQ;AACb,WAAK,UAAU;AACf,UAAI,KAAK,gBAAgB;AACvB,aAAK,qBAAqB,KAAK,uBAAuB,KAAK,KAAK,qBAAqB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,4BAA2B,IAAK;AACxK,aAAK,aAAa,KAAK,kBAAkB;AAAA,MAC1C;AACD,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GAfQ;AAAA,IAgBT,QAAQ,gCAAS,OAAO,OAAO;AAC7B,WAAK,QAAQ;AACb,WAAK,UAAU;AACf,WAAK,qBAAqB;AAC1B,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB,GALO;AAAA,IAMR,WAAW,gCAAS,UAAU,OAAO;AACnC,UAAI,KAAK,UAAU;AACjB,cAAM,eAAc;AACpB;AAAA,MACD;AACD,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,aAAa,KAAK;AACvB;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,gBAAgB,KAAK;AAC1B;AAAA,QACF,KAAK;AACH,eAAK,UAAU,KAAK;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,cAAc,KAAK;AACxB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,MACH;AACD,WAAK,UAAU;AAAA,IAChB,GA7CU;AAAA,IA8CX,SAAS,gCAAS,QAAQ,OAAO;AAC/B,UAAI,SAAS;AACb,UAAI,KAAK,WAAW;AAClB,YAAI,KAAK,eAAe;AACtB,uBAAa,KAAK,aAAa;AAAA,QAChC;AACD,YAAI,QAAQ,MAAM,OAAO;AACzB,YAAI,CAAC,KAAK,UAAU;AAClB,eAAK,YAAY,OAAO,KAAK;AAAA,QAC9B;AACD,YAAI,MAAM,WAAW,GAAG;AACtB,eAAK,KAAI;AACT,eAAK,MAAM,OAAO;AAAA,QAC5B,OAAe;AACL,cAAI,MAAM,UAAU,KAAK,WAAW;AAClC,iBAAK,qBAAqB;AAC1B,iBAAK,gBAAgB,WAAW,WAAY;AAC1C,qBAAO,OAAO,OAAO,OAAO,OAAO;AAAA,YACjD,GAAe,KAAK,KAAK;AAAA,UACzB,OAAiB;AACL,iBAAK,KAAI;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF,GAxBQ;AAAA,IAyBT,UAAU,gCAAS,SAAS,OAAO;AACjC,UAAI,SAAS;AACb,UAAI,KAAK,gBAAgB;AACvB,YAAI,QAAQ;AAGZ,YAAI,KAAK,kBAAkB,CAAC,KAAK,UAAU;AACzC,cAAI,QAAQ,KAAK,WAAW,KAAK,MAAM,WAAW,QAAQ,KAAK,MAAM,WAAW,IAAI;AACpF,cAAI,eAAe,KAAK,eAAe,KAAK,SAAUF,SAAQ;AAC5D,mBAAO,OAAO,gBAAgBA,SAAQ,SAAS,EAAE;AAAA,UAC7D,CAAW;AACD,cAAI,iBAAiB,QAAW;AAC9B,oBAAQ;AACR,aAAC,KAAK,WAAW,YAAY,KAAK,KAAK,eAAe,OAAO,YAAY;AAAA,UAC1E;AAAA,QACF;AACD,YAAI,CAAC,OAAO;AACV,cAAI,KAAK,SAAU,MAAK,MAAM,WAAW,QAAQ;AAAA,cAAQ,MAAK,MAAM,WAAW,IAAI,QAAQ;AAC3F,eAAK,MAAM,OAAO;AAClB,WAAC,KAAK,YAAY,KAAK,YAAY,OAAO,IAAI;AAAA,QAC/C;AAAA,MACF;AAAA,IACF,GAtBS;AAAA,IAuBV,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,KAAK,UAAU;AAEjB;AAAA,MACD;AACD,WAAK,UAAU;AAAA,IAChB,GANyB;AAAA,IAO1B,yBAAyB,gCAAS,0BAA0B;AAC1D,WAAK,6BAA6B;AAClC,WAAK,UAAU;AAAA,IAChB,GAHwB;AAAA,IAIzB,4BAA4B,gCAAS,2BAA2B,OAAO;AACrE,UAAI,KAAK,UAAU;AACjB,cAAM,eAAc;AACpB;AAAA,MACD;AACD,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,yBAAyB,KAAK;AACnC;AAAA,QACF,KAAK;AACH,eAAK,0BAA0B,KAAK;AACpC;AAAA,QACF,KAAK;AACH,eAAK,yBAAyB,KAAK;AACnC;AAAA,MACH;AAAA,IACF,GAhB2B;AAAA,IAiB5B,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,WAAK,UAAU;AACf,UAAI,KAAK,YAAY,KAAK,aAAa,KAAK,WAAW,KAAK,eAAe,KAAK,KAAK,KAAK,kBAAkB,KAAK,GAAG;AAClH;AAAA,MACD;AACD,UAAI,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ,SAAS,MAAM,MAAM,GAAG;AACzD,cAAM,KAAK,WAAW,KAAK,MAAM,aAAa,KAAK,MAAM,WAAW,GAAG;AAAA,MACxE;AAAA,IACF,GARiB;AAAA,IASlB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,UAAI,QAAQ;AACZ,UAAI,KAAK,gBAAgB;AACvB,aAAK,KAAK,IAAI;AAAA,MACtB,OAAa;AACL,YAAI,SAAS,KAAK,WAAW,KAAK,MAAM,aAAa,KAAK,MAAM,WAAW;AAC3E,cAAM,MAAM;AACZ,gBAAQ,OAAO;AACf,YAAI,KAAK,iBAAiB,QAAS,MAAK,OAAO,OAAO,IAAI,UAAU;AAAA,iBAAW,KAAK,iBAAiB,UAAW,MAAK,OAAO,OAAO,OAAO,UAAU;AAAA,MACrJ;AACD,WAAK,MAAM,kBAAkB;AAAA,QAC3B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GAdgB;AAAA,IAejB,gBAAgB,gCAAS,eAAe,OAAOA,SAAQ;AACrD,UAAI,SAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACjF,UAAI,QAAQ,KAAK,eAAeA,OAAM;AACtC,UAAI,KAAK,UAAU;AACjB,aAAK,MAAM,WAAW,QAAQ;AAC9B,YAAI,CAAC,KAAK,WAAWA,OAAM,GAAG;AAC5B,eAAK,YAAY,OAAO,CAAE,EAAC,OAAOf,qBAAmB,KAAK,cAAc,CAAA,CAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AAAA,QACtF;AAAA,MACT,OAAa;AACL,aAAK,YAAY,OAAO,KAAK;AAAA,MAC9B;AACD,WAAK,MAAM,eAAe;AAAA,QACxB,eAAe;AAAA,QACf,OAAOe;AAAA,MACf,CAAO;AACD,WAAK,MAAM,iBAAiB;AAAA,QAC1B,eAAe;AAAA,QACf,OAAOA;AAAA,MACf,CAAO;AACD,gBAAU,KAAK,KAAK,IAAI;AAAA,IACzB,GApBe;AAAA,IAqBhB,mBAAmB,gCAAS,kBAAkB,OAAO,OAAO;AAC1D,UAAI,KAAK,cAAc;AACrB,aAAK,yBAAyB,OAAO,KAAK;AAAA,MAC3C;AAAA,IACF,GAJkB;AAAA,IAKnB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,sBAAgB,KAAK,iBAAiB;AAAA,QACpC,eAAe;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALe;AAAA,IAMhB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,MACH;AAAA,IACF,GANiB;AAAA,IAOlB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,CAAC,KAAK,gBAAgB;AACxB;AAAA,MACD;AACD,UAAI,cAAc,KAAK,uBAAuB,KAAK,KAAK,oBAAoB,KAAK,kBAAkB,IAAI,KAAK,UAAU,KAAK,qBAAoB,IAAK,KAAK;AACzJ,WAAK,yBAAyB,OAAO,WAAW;AAChD,YAAM,eAAc;AAAA,IACrB,GAPe;AAAA,IAQhB,cAAc,gCAAS,aAAa,OAAO;AACzC,UAAI,CAAC,KAAK,gBAAgB;AACxB;AAAA,MACD;AACD,UAAI,MAAM,QAAQ;AAChB,YAAI,KAAK,uBAAuB,IAAI;AAClC,eAAK,eAAe,OAAO,KAAK,eAAe,KAAK,kBAAkB,CAAC;AAAA,QACxE;AACD,aAAK,kBAAkB,KAAK;AAC5B,cAAM,eAAc;AAAA,MAC5B,OAAa;AACL,YAAI,cAAc,KAAK,uBAAuB,KAAK,KAAK,oBAAoB,KAAK,kBAAkB,IAAI,KAAK,UAAU,KAAK,oBAAmB,IAAK,KAAK;AACxJ,aAAK,yBAAyB,OAAO,WAAW;AAChD,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAfa;AAAA,IAgBd,gBAAgB,gCAASG,gBAAe,OAAO;AAC7C,UAAI,SAAS,MAAM;AACnB,WAAK,qBAAqB;AAC1B,UAAI,KAAK,UAAU;AACjB,YAAI,QAAQ,OAAO,KAAK,KAAK,KAAK,mBAAmB;AACnD,gBAAM,KAAK,MAAM,cAAc;AAC/B,eAAK,6BAA6B,KAAK,WAAW;AAAA,QAC5D,OAAe;AACL,gBAAM,gBAAe;AAAA,QACtB;AAAA,MACF;AAAA,IACF,GAXe;AAAA,IAYhB,iBAAiB,gCAASC,iBAAgB,OAAO;AAC/C,WAAK,qBAAqB;AAC1B,WAAK,YAAY,MAAM;IACxB,GAHgB;AAAA,IAIjB,WAAW,gCAASC,WAAU,OAAO;AACnC,UAAI,gBAAgB,MAAM;AAC1B,UAAI,MAAM,cAAc,MAAM;AAC9B,oBAAc,kBAAkB,GAAG,MAAM,WAAW,MAAM,CAAC;AAC3D,WAAK,qBAAqB;AAC1B,YAAM,eAAc;AAAA,IACrB,GANU;AAAA,IAOX,UAAU,gCAASC,UAAS,OAAO;AACjC,UAAI,gBAAgB,MAAM;AAC1B,UAAI,MAAM,cAAc,MAAM;AAC9B,oBAAc,kBAAkB,MAAM,WAAW,IAAI,KAAK,GAAG;AAC7D,WAAK,qBAAqB;AAC1B,YAAM,eAAc;AAAA,IACrB,GANS;AAAA,IAOV,aAAa,gCAASC,aAAY,OAAO;AACvC,WAAK,aAAa,CAAC;AACnB,YAAM,eAAc;AAAA,IACrB,GAHY;AAAA,IAIb,eAAe,gCAASC,eAAc,OAAO;AAC3C,WAAK,aAAa,KAAK,eAAe,SAAS,CAAC;AAChD,YAAM,eAAc;AAAA,IACrB,GAHc;AAAA,IAIf,YAAY,gCAASC,YAAW,OAAO;AACrC,UAAI,CAAC,KAAK,WAAW;AACnB,YAAI,KAAK,UAAU;AACjB,eAAK,YAAY,OAAO,CAAE,EAAC,OAAOxB,qBAAmB,KAAK,cAAc,CAAE,CAAA,GAAG,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC;AAClG,eAAK,MAAM,WAAW,QAAQ;AAAA,QAC/B;AAAA,MACT,OAAa;AACL,YAAI,CAAC,KAAK,gBAAgB;AACxB,eAAK,qBAAqB;AAC1B,eAAK,eAAe,KAAK;AAAA,QACnC,OAAe;AACL,cAAI,KAAK,uBAAuB,IAAI;AAClC,iBAAK,eAAe,OAAO,KAAK,eAAe,KAAK,kBAAkB,CAAC;AAAA,UACxE;AACD,eAAK,KAAI;AAAA,QACV;AAAA,MACF;AAAA,IACF,GAjBW;AAAA,IAkBZ,aAAa,gCAAS,YAAY,OAAO;AACvC,WAAK,kBAAkB,KAAK,KAAK,IAAI;AACrC,YAAM,eAAc;AAAA,IACrB,GAHY;AAAA,IAIb,UAAU,gCAAS,SAAS,OAAO;AACjC,UAAI,KAAK,uBAAuB,IAAI;AAClC,aAAK,eAAe,OAAO,KAAK,eAAe,KAAK,kBAAkB,CAAC;AAAA,MACxE;AACD,WAAK,kBAAkB,KAAK;IAC7B,GALS;AAAA,IAMV,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,KAAK,UAAU;AACjB,YAAI,WAAW,KAAK,UAAU,KAAK,CAAC,KAAK,MAAM,WAAW,OAAO;AAC/D,cAAI,eAAe,KAAK,WAAW,KAAK,WAAW,SAAS,CAAC;AAC7D,cAAI,WAAW,KAAK,WAAW,MAAM,GAAG,EAAE;AAC1C,eAAK,MAAM,qBAAqB,QAAQ;AACxC,eAAK,MAAM,iBAAiB;AAAA,YAC1B,eAAe;AAAA,YACf,OAAO;AAAA,UACnB,CAAW;AACD,eAAK,MAAM,mBAAmB;AAAA,YAC5B,eAAe;AAAA,YACf,OAAO;AAAA,UACnB,CAAW;AAAA,QACF;AACD,cAAM,gBAAe;AAAA,MACtB;AAAA,IACF,GAjBe;AAAA,IAkBhB,0BAA0B,gCAAS,2BAA2B;AAC5D,WAAK,6BAA6B,KAAK,6BAA6B,IAAI,IAAI,KAAK,6BAA6B;AAAA,IAC/G,GAFyB;AAAA,IAG1B,2BAA2B,gCAAS,4BAA4B;AAC9D,WAAK;AACL,UAAI,KAAK,6BAA6B,KAAK,WAAW,SAAS,GAAG;AAChE,aAAK,6BAA6B;AAClC,cAAM,KAAK,MAAM,UAAU;AAAA,MAC5B;AAAA,IACF,GAN0B;AAAA,IAO3B,0BAA0B,gCAAS,yBAAyB,OAAO;AACjE,UAAI,KAAK,+BAA+B,IAAI;AAC1C,aAAK,aAAa,OAAO,KAAK,0BAA0B;AAAA,MACzD;AAAA,IACF,GAJyB;AAAA,IAK1B,gBAAgB,gCAAS,eAAe,IAAI;AAC1C,aAAO,IAAI,WAAW,IAAI,KAAK,UAAU,OAAO,OAAO,OAAO;AAC9D,eAAS,IAAI;AAAA,QACX,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,MACd,CAAO;AACD,WAAK,aAAY;AAAA,IAClB,GARe;AAAA,IAShB,qBAAqB,gCAAS,sBAAsB;AAClD,WAAK,yBAAwB;AAC7B,WAAK,mBAAkB;AACvB,WAAK,mBAAkB;AACvB,WAAK,MAAM,MAAM;AAAA,IAClB,GALoB;AAAA,IAMrB,gBAAgB,gCAAS,iBAAiB;AACxC,WAAK,2BAA0B;AAC/B,WAAK,qBAAoB;AACzB,WAAK,qBAAoB;AACzB,WAAK,MAAM,MAAM;AACjB,WAAK,UAAU;AAAA,IAChB,GANe;AAAA,IAOhB,qBAAqB,gCAAS,oBAAoB,IAAI;AACpD,aAAO,MAAM,EAAE;AAAA,IAChB,GAFoB;AAAA,IAGrB,cAAc,gCAAS,eAAe;AACpC,UAAI,SAAS,KAAK,WAAW,KAAK,MAAM,iBAAiB,KAAK,MAAM,WAAW;AAC/E,UAAI,KAAK,aAAa,QAAQ;AAC5B,yBAAiB,KAAK,SAAS,MAAM;AAAA,MAC7C,OAAa;AACL,aAAK,QAAQ,MAAM,WAAW,cAAc,MAAM,IAAI;AACtD,yBAAiB,KAAK,SAAS,MAAM;AAAA,MACtC;AAAA,IACF,GARa;AAAA,IASd,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,OAAO,kBAAkB,OAAO,WAAW,OAAO,iBAAiB,KAAK,GAAG;AAC7E,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAVyB;AAAA,IAW1B,4BAA4B,gCAAS,6BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,eAAe;AACvB,aAAK,gBAAgB,IAAI,8BAA8B,KAAK,MAAM,WAAW,WAAY;AACvF,cAAI,OAAO,gBAAgB;AACzB,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX,CAAS;AAAA,MACF;AACD,WAAK,cAAc;IACpB,GAVmB;AAAA,IAWpB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;MACpB;AAAA,IACF,GAJqB;AAAA,IAKtB,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,WAAY;AAChC,cAAI,OAAO,kBAAkB,CAAC,iBAAiB;AAC7C,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAVmB;AAAA,IAWpB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,aAAO,CAAC,KAAK,QAAQ,SAAS,MAAM,MAAM,KAAK,CAAC,KAAK,eAAe,KAAK,KAAK,CAAC,KAAK,kBAAkB,KAAK;AAAA,IAC5G,GAFiB;AAAA,IAGlB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,KAAK,SAAU,QAAO,MAAM,WAAW,KAAK,MAAM,kBAAkB,KAAK,MAAM,eAAe,SAAS,MAAM,MAAM;AAAA,UAAO,QAAO,MAAM,WAAW,KAAK,MAAM,WAAW;AAAA,IAC7K,GAFe;AAAA,IAGhB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,aAAO,KAAK,MAAM,iBAAiB,MAAM,WAAW,KAAK,MAAM,kBAAkB,KAAK,MAAM,eAAe,SAAS,MAAM,MAAM,IAAI;AAAA,IACrI,GAFkB;AAAA,IAGnB,iBAAiB,gCAAS,gBAAgBe,SAAQ,OAAO;AACvD,UAAI;AACJ,aAAO,KAAK,cAAcA,OAAM,OAAO,uBAAuB,KAAK,eAAeA,OAAM,OAAO,QAAQ,yBAAyB,SAAS,SAAS,qBAAqB,kBAAkB,KAAK,YAAY,OAAO,MAAM,kBAAkB,KAAK,YAAY;AAAA,IAC3P,GAHgB;AAAA,IAIjB,eAAe,gCAAS,cAAcA,SAAQ;AAC5C,aAAO,WAAWA,OAAM,KAAK,EAAE,KAAK,iBAAiBA,OAAM,KAAK,KAAK,cAAcA,OAAM;AAAA,IAC1F,GAFc;AAAA,IAGf,uBAAuB,gCAAS,sBAAsBA,SAAQ;AAC5D,aAAO,KAAK,cAAcA,OAAM,KAAK,KAAK,WAAWA,OAAM;AAAA,IAC5D,GAFsB;AAAA,IAGvB,UAAU,gCAAS,SAAS,QAAQ,QAAQ;AAC1C,aAAO,OAAO,QAAQ,QAAQ,KAAK,WAAW;AAAA,IAC/C,GAFS;AAAA,IAGV,YAAY,gCAAS,WAAWA,SAAQ;AACtC,UAAI,SAAS;AACb,UAAI,cAAc,KAAK,eAAeA,OAAM;AAC5C,aAAO,KAAK,YAAY,KAAK,cAAc,IAAI,KAAK,SAAU,OAAO;AACnE,eAAO,OAAO,SAAS,OAAO,WAAW;AAAA,MACjD,CAAO,IAAI,KAAK,SAAS,KAAK,YAAY,KAAK,eAAeA,OAAM,CAAC;AAAA,IAChE,GANW;AAAA,IAOZ,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,SAAS;AACb,aAAO,KAAK,eAAe,UAAU,SAAUA,SAAQ;AACrD,eAAO,OAAO,cAAcA,OAAM;AAAA,MAC1C,CAAO;AAAA,IACF,GALqB;AAAA,IAMtB,qBAAqB,gCAAS,sBAAsB;AAClD,UAAI,UAAU;AACd,aAAO,cAAc,KAAK,gBAAgB,SAAUA,SAAQ;AAC1D,eAAO,QAAQ,cAAcA,OAAM;AAAA,MAC3C,CAAO;AAAA,IACF,GALoB;AAAA,IAMrB,qBAAqB,gCAAS,oBAAoB,OAAO;AACvD,UAAI,UAAU;AACd,UAAI,qBAAqB,QAAQ,KAAK,eAAe,SAAS,IAAI,KAAK,eAAe,MAAM,QAAQ,CAAC,EAAE,UAAU,SAAUA,SAAQ;AACjI,eAAO,QAAQ,cAAcA,OAAM;AAAA,MAC3C,CAAO,IAAI;AACL,aAAO,qBAAqB,KAAK,qBAAqB,QAAQ,IAAI;AAAA,IACnE,GANoB;AAAA,IAOrB,qBAAqB,gCAAS,oBAAoB,OAAO;AACvD,UAAI,UAAU;AACd,UAAI,qBAAqB,QAAQ,IAAI,cAAc,KAAK,eAAe,MAAM,GAAG,KAAK,GAAG,SAAUA,SAAQ;AACxG,eAAO,QAAQ,cAAcA,OAAM;AAAA,MAC3C,CAAO,IAAI;AACL,aAAO,qBAAqB,KAAK,qBAAqB;AAAA,IACvD,GANoB;AAAA,IAOrB,yBAAyB,gCAAS,0BAA0B;AAC1D,UAAI,UAAU;AACd,aAAO,KAAK,oBAAoB,KAAK,eAAe,UAAU,SAAUA,SAAQ;AAC9E,eAAO,QAAQ,sBAAsBA,OAAM;AAAA,MACnD,CAAO,IAAI;AAAA,IACN,GALwB;AAAA,IAMzB,6BAA6B,gCAAS,8BAA8B;AAClE,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,qBAAoB,IAAK;AAAA,IAC1D,GAH4B;AAAA,IAI7B,4BAA4B,gCAAS,6BAA6B;AAChE,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,oBAAmB,IAAK;AAAA,IACzD,GAH2B;AAAA,IAI5B,QAAQ,gCAAS,OAAO,OAAO,OAAO,QAAQ;AAE5C,UAAI,UAAU,UAAa,UAAU,MAAM;AACzC;AAAA,MACD;AAGD,UAAI,WAAW,WAAW,MAAM,KAAM,EAAC,WAAW,GAAG;AACnD;AAAA,MACD;AACD,WAAK,YAAY;AACjB,WAAK,MAAM,YAAY;AAAA,QACrB,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GAfO;AAAA,IAgBR,cAAc,gCAAS,aAAa,OAAO,OAAO;AAChD,UAAI,UAAU;AACd,UAAI,gBAAgB,KAAK,WAAW,KAAK;AACzC,UAAI,QAAQ,KAAK,WAAW,OAAO,SAAUU,IAAG,GAAG;AACjD,eAAO,MAAM;AAAA,MACrB,CAAO,EAAE,IAAI,SAAUV,SAAQ;AACvB,eAAO,QAAQ,eAAeA,OAAM;AAAA,MAC5C,CAAO;AACD,WAAK,YAAY,OAAO,KAAK;AAC7B,WAAK,MAAM,iBAAiB;AAAA,QAC1B,eAAe;AAAA,QACf,OAAO;AAAA,MACf,CAAO;AACD,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAe;AAAA,QACf,OAAO;AAAA,MACf,CAAO;AACD,WAAK,QAAQ;AACb,YAAM,KAAK,WAAW,KAAK,MAAM,aAAa,KAAK,MAAM,WAAW,GAAG;AAAA,IACxE,GAnBa;AAAA,IAoBd,0BAA0B,gCAAS,yBAAyB,OAAO,OAAO;AACxE,UAAI,KAAK,uBAAuB,OAAO;AACrC,aAAK,qBAAqB;AAC1B,aAAK,aAAY;AACjB,YAAI,KAAK,eAAe;AACtB,eAAK,eAAe,OAAO,KAAK,eAAe,KAAK,GAAG,KAAK;AAAA,QAC7D;AAAA,MACF;AAAA,IACF,GARyB;AAAA,IAS1B,cAAc,gCAASW,gBAAe;AACpC,UAAI,UAAU;AACd,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,WAAK,UAAU,WAAY;AACzB,YAAIC,MAAK,UAAU,KAAK,GAAG,OAAO,QAAQ,IAAI,GAAG,EAAE,OAAO,KAAK,IAAI,QAAQ;AAC3E,YAAI,UAAU,WAAW,QAAQ,MAAM,UAAW,OAAOA,KAAI,IAAK,CAAC;AACnE,YAAI,SAAS;AACX,kBAAQ,kBAAkB,QAAQ,eAAe;AAAA,YAC/C,OAAO;AAAA,YACP,QAAQ;AAAA,UACpB,CAAW;AAAA,QACX,WAAmB,CAAC,QAAQ,yBAAyB;AAC3C,kBAAQ,mBAAmB,QAAQ,gBAAgB,cAAc,UAAU,KAAK,QAAQ,QAAQ,kBAAkB;AAAA,QACnH;AAAA,MACT,CAAO;AAAA,IACF,GAfa;AAAA,IAgBd,iBAAiB,gCAAS,kBAAkB;AAC1C,UAAI,KAAK,iBAAiB,KAAK,mBAAmB,CAAC,KAAK,mBAAmB;AACzE,aAAK,qBAAqB,KAAK;AAC/B,aAAK,eAAe,MAAM,KAAK,eAAe,KAAK,kBAAkB,GAAG,KAAK;AAAA,MAC9E;AAAA,IACF,GALgB;AAAA,IAMjB,aAAa,gCAAS,YAAY,OAAO,OAAO;AAC9C,WAAK,MAAM,qBAAqB,KAAK;AACrC,WAAK,MAAM,UAAU;AAAA,QACnB,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GANY;AAAA,IAOb,aAAa,gCAAS,YAAY,SAAS;AACzC,UAAI,UAAU;AACd,cAAQ,WAAW,IAAI,OAAO,SAAU,QAAQZ,SAAQ,OAAO;AAC7D,eAAO,KAAK;AAAA,UACV,aAAaA;AAAA,UACb,OAAO;AAAA,UACP;AAAA,QACV,CAAS;AACD,YAAI,sBAAsB,QAAQ,uBAAuBA,OAAM;AAC/D,+BAAuB,oBAAoB,QAAQ,SAAU,GAAG;AAC9D,iBAAO,OAAO,KAAK,CAAC;AAAA,QAC9B,CAAS;AACD,eAAO;AAAA,MACR,GAAE,CAAE,CAAA;AAAA,IACN,GAdY;AAAA,IAeb,YAAY,gCAAS,WAAW,IAAI;AAClC,WAAK,UAAU;AAAA,IAChB,GAFW;AAAA,IAGZ,SAAS,gCAAS,QAAQ,IAAI,YAAY;AACxC,WAAK,OAAO;AACZ,oBAAc,WAAW,EAAE;AAAA,IAC5B,GAHQ;AAAA,IAIT,oBAAoB,gCAAS,mBAAmB,IAAI;AAClD,WAAK,kBAAkB;AAAA,IACxB,GAFmB;AAAA,EAGrB;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,mBAAmB,KAAK,YAAY,KAAK,WAAW,IAAI,KAAK,eAAe;IACzF,GAFe;AAAA,IAGhB,YAAY,gCAAS,aAAa;AAChC,UAAI,WAAW,KAAK,UAAU,GAAG;AAC/B,YAAIH,YAAU,KAAK,UAAU,MAAM,UAAU;AAC3C,cAAI,QAAQ,KAAK,eAAe,KAAK,UAAU;AAC/C,iBAAO,SAAS,OAAO,QAAQ,KAAK;AAAA,QAC9C,OAAe;AACL,iBAAO,KAAK;AAAA,QACb;AAAA,MACT,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAXW;AAAA,IAYZ,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,WAAW,KAAK,UAAU;AAAA,IAClC,GAFkB;AAAA,IAGnB,aAAa,gCAAS,cAAc;AAClC,aAAO,KAAK;AAAA,IACb,GAFY;AAAA,IAGb,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,WAAW,KAAK,cAAc,KAAK,KAAK,iBAAiB,KAAK,kBAAkB,WAAW,OAAO,KAAK,eAAe,MAAM,IAAI,KAAK;AAAA,IAC7I,GAFwB;AAAA,IAGzB,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,KAAK,iBAAiB,KAAK,UAAU,OAAO,OAAO,iBAAiB;AAAA,IAC5E,GAFkB;AAAA,IAGnB,wBAAwB,gCAAS,yBAAyB;AACxD,aAAO,KAAK,sBAAsB,KAAK,UAAU,OAAO,OAAO,sBAAsB;AAAA,IACtF,GAFuB;AAAA,IAGxB,sBAAsB,gCAAS,uBAAuB;AACpD,aAAO,KAAK,oBAAoB,KAAK,UAAU,OAAO,OAAO,oBAAoB;AAAA,IAClF,GAFqB;AAAA,IAGtB,2BAA2B,gCAAS,4BAA4B;AAC9D,aAAO,KAAK,yBAAyB,KAAK,UAAU,OAAO,OAAO,yBAAyB;AAAA,IAC5F,GAF0B;AAAA,IAG3B,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,oBAAoB,KAAK,qBAAqB,WAAW,OAAO,KAAK,WAAW,KAAK,WAAW,SAAS,GAAG,IAAI,KAAK;AAAA,IAClI,GAFoB;AAAA,IAGrB,eAAe,gCAAS,gBAAgB;AACtC,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,YAAY;AAAA,IAC1F,GAFc;AAAA,IAGf,iBAAiB,gCAAS,kBAAkB;AAC1C,aAAO,KAAK,uBAAuB,KAAK,GAAG,OAAO,KAAK,IAAI,GAAG,EAAE,OAAO,KAAK,kBAAkB,IAAI;AAAA,IACnG,GAFgB;AAAA,IAGjB,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,KAAK,+BAA+B,KAAK,GAAG,OAAO,KAAK,IAAI,mBAAmB,EAAE,OAAO,KAAK,0BAA0B,IAAI;AAAA,IACnI,GAFwB;AAAA,IAGzB,aAAa,gCAAS,cAAc;AAClC,UAAI,UAAU;AACd,aAAO,KAAK,eAAe,OAAO,SAAUG,SAAQ;AAClD,eAAO,CAAC,QAAQ,cAAcA,OAAM;AAAA,MACrC,CAAA,EAAE;AAAA,IACJ,GALY;AAAA,IAMb,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,CAAC,KAAK;AAAA,IACd,GAFwB;AAAA,IAGzB,SAAS,gCAAS,UAAU;AAC1B,aAAO,KAAK,KAAK;AAAA,IAClB,GAFQ;AAAA,IAGT,UAAU,gCAAS,WAAW;AAC5B,aAAO,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,WAAW,KAAK;AAAA,IACrD,GAFS;AAAA,EAGX;AAAA,EACD,YAAY;AAAA,IACV,WAAWa;AAAAA,IACX,iBAAiBC;AAAAA,IACjB,QAAQC;AAAAA,IACR,iBAAiBC;AAAAA,IACjB,aAAaC;AAAAA,IACb,MAAMC;AAAAA,EACP;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAASC,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUrB,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIqB,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASC,UAAQ,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUC,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAtPD;AACT,SAASE,gBAAc,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAIF,UAAQ,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUC,IAAG;AAAEE,wBAAgB,GAAGF,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAID,UAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUC,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAA9aC;AACT,SAASC,kBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3KD;AACT,SAASC,iBAAe,GAAG;AAAE,MAAI,IAAIC,eAAa,GAAG,QAAQ;AAAG,SAAO,YAAYN,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASC,eAAa,GAAG,GAAG;AAAE,MAAI,YAAYN,UAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAYA,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnTM;AACT,IAAI9C,eAAa,CAAC,uBAAuB;AACzC,IAAIC,eAAa,CAAC,MAAM,cAAc,gBAAgB,eAAe;AACrE,IAAIC,eAAa,CAAC,MAAM,eAAe,YAAY,YAAY,cAAc,mBAAmB,iBAAiB,iBAAiB,yBAAyB,cAAc;AACzK,IAAI6C,eAAa,CAAC,YAAY,iBAAiB,eAAe;AAC9D,IAAIC,eAAa,CAAC,IAAI;AACtB,IAAIC,eAAa,CAAC,MAAM,YAAY;AACpC,IAAIC,eAAa,CAAC,IAAI;AACtB,IAAIC,eAAa,CAAC,MAAM,cAAc,iBAAiB,iBAAiB,gBAAgB,iBAAiB,WAAW,eAAe,mBAAmB,gBAAgB,iBAAiB;AACvL,SAAS1D,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,kBAAkB,iBAAiB,MAAM;AAC7C,MAAI,yBAAyB,iBAAiB,aAAa;AAC3D,MAAI,6BAA6B,iBAAiB,iBAAiB;AACnE,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,OAAO,KAAK,GAAG,MAAM;AAAA,IACrB,SAAS,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AAC/C,aAAO,SAAS,oBAAoB,SAAS,iBAAiB,MAAM,UAAU,SAAS;AAAA,IAC7F;AAAA,EACG,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,YAAY,aAAa,YAAY,sBAAsB;AAAA,IACvF,KAAK;AAAA,IACL,KAAK;AAAA,IACL,IAAI,KAAK;AAAA,IACT,MAAM;AAAA,IACN,SAAS,eAAe,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,UAAU,CAAC;AAAA,IAC7D,OAAO,eAAe,KAAK,UAAU;AAAA,IACrC,OAAO,SAAS;AAAA,IAChB,aAAa,KAAK;AAAA,IAClB,UAAU,CAAC,KAAK,WAAW,KAAK,WAAW;AAAA,IAC3C,OAAO,SAAS;AAAA,IAChB,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,IACd,SAAS,KAAK;AAAA,IACd,cAAc;AAAA,IACd,MAAM;AAAA,IACN,cAAc,KAAK;AAAA,IACnB,mBAAmB,KAAK;AAAA,IACxB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,iBAAiB,MAAM;AAAA,IACvB,iBAAiB,SAAS;AAAA,IAC1B,yBAAyB,MAAM,UAAU,SAAS,kBAAkB;AAAA,IACpE,SAAS,SAAS;AAAA,IAClB,QAAQ,SAAS;AAAA,IACjB,WAAW,SAAS;AAAA,IACpB,SAAS,SAAS;AAAA,IAClB,UAAU,SAAS;AAAA,IACnB,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,SAAS;AAAA,EAC1B,GAAK,MAAM,GAAG,CAAC,MAAM,SAAS,SAAS,SAAS,eAAe,YAAY,SAAS,YAAY,WAAW,WAAW,cAAc,mBAAmB,iBAAiB,iBAAiB,yBAAyB,WAAW,UAAU,aAAa,WAAW,YAAY,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,KAAK,YAAY,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,IAC7X,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,eAAe;AAAA,IAChC,UAAU;AAAA,IACV,MAAM;AAAA,IACN,oBAAoB;AAAA,IACpB,yBAAyB,MAAM,UAAU,SAAS,0BAA0B;AAAA,IAC5E,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,4BAA4B,SAAS,yBAAyB,MAAM,UAAU,SAAS;AAAA,IAC7G;AAAA,IACI,QAAQ,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC5C,aAAO,SAAS,2BAA2B,SAAS,wBAAwB,MAAM,UAAU,SAAS;AAAA,IAC3G;AAAA,IACI,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,aAAO,SAAS,8BAA8B,SAAS,2BAA2B,MAAM,UAAU,SAAS;AAAA,IACjH;AAAA,EACA,GAAK,KAAK,IAAI,eAAe,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,KAAK,YAAY,SAAU4B,SAAQ,GAAG;AACpI,WAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,MACtD,KAAK,GAAG,OAAO,GAAG,GAAG,EAAE,OAAO,SAAS,eAAeA,OAAM,CAAC;AAAA,MAC7D,IAAI,MAAM,KAAK,sBAAsB;AAAA,MACrC,SAAS,KAAK,GAAG,YAAY;AAAA,QAC3B;AAAA,MACR,CAAO;AAAA,MACD,MAAM;AAAA,MACN,cAAc,SAAS,eAAeA,OAAM;AAAA,MAC5C,iBAAiB;AAAA,MACjB,gBAAgB,KAAK,WAAW;AAAA,MAChC,iBAAiB,IAAI;AAAA,MACrB,SAAS;AAAA,IACf,GAAO,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,QAAQ,WAAW;AAAA,MACpE,SAAS,KAAK,GAAG,QAAQ;AAAA,MACzB,OAAOA;AAAA,MACP,OAAO;AAAA,MACP,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,eAAO,SAAS,aAAa,OAAO,CAAC;AAAA,MACtC,GAFe;AAAA,MAGhB,SAAS;AAAA,IACV,GAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,WAAY;AAClC,aAAO,CAAC,YAAY,iBAAiB;AAAA,QACnC,SAAS,eAAe,KAAK,GAAG,QAAQ,CAAC;AAAA,QACzC,OAAO,SAAS,eAAeA,OAAM;AAAA,QACrC,YAAY,KAAK,YAAY,KAAK;AAAA,QAClC,WAAW;AAAA,QACX,UAAU,KAAK;AAAA,QACf,UAAU,gCAAS+B,UAAS,QAAQ;AAClC,iBAAO,SAAS,aAAa,QAAQ,CAAC;AAAA,QACvC,GAFS;AAAA,QAGV,IAAI,KAAK,IAAI,QAAQ;AAAA,MAC7B,GAAS;AAAA,QACD,YAAY,QAAQ,WAAY;AAC9B,iBAAO,CAAC,WAAW,KAAK,QAAQ,KAAK,OAAO,WAAW,aAAa,mBAAmB;AAAA,YACrF,SAAS,eAAe,KAAK,GAAG,UAAU,CAAC;AAAA,YAC3C,OAAO;AAAA,YACP,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,qBAAO,SAAS,aAAa,OAAO,CAAC;AAAA,YACtC,GAFe;AAAA,UAGjB,CAAA,CAAC;AAAA,QACZ,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,MAAM,CAAC,SAAS,SAAS,cAAc,YAAY,YAAY,IAAI,CAAC,CAAC;AAAA,IAC9E,CAAK,CAAC,GAAG,IAAInD,YAAU;AAAA,EACpB,CAAA,GAAG,GAAG,IAAIE,gBAAmB,MAAM,WAAW;AAAA,IAC7C,SAAS,KAAK,GAAG,WAAW;AAAA,IAC5B,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,WAAW,CAAC,GAAG,CAACA,gBAAmB,SAAS,WAAW;AAAA,IACjE,KAAK;AAAA,IACL,IAAI,KAAK;AAAA,IACT,MAAM;AAAA,IACN,OAAO,KAAK;AAAA,IACZ,SAAS,KAAK;AAAA,IACd,aAAa,KAAK;AAAA,IAClB,UAAU,CAAC,KAAK,WAAW,KAAK,WAAW;AAAA,IAC3C,UAAU,KAAK;AAAA,IACf,cAAc;AAAA,IACd,MAAM;AAAA,IACN,cAAc,KAAK;AAAA,IACnB,mBAAmB,KAAK;AAAA,IACxB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,iBAAiB,MAAM;AAAA,IACvB,iBAAiB,MAAM,KAAK;AAAA,IAC5B,yBAAyB,MAAM,UAAU,SAAS,kBAAkB;AAAA,IACpE,gBAAgB,KAAK,WAAW;AAAA,IAChC,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,WAAW,SAAS,QAAQ,MAAM,UAAU,SAAS;AAAA,IAC3E;AAAA,IACI,QAAQ,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC5C,aAAO,SAAS,UAAU,SAAS,OAAO,MAAM,UAAU,SAAS;AAAA,IACzE;AAAA,IACI,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,aAAO,SAAS,aAAa,SAAS,UAAU,MAAM,UAAU,SAAS;AAAA,IAC/E;AAAA,IACI,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,WAAW,SAAS,QAAQ,MAAM,UAAU,SAAS;AAAA,IAC3E;AAAA,IACI,UAAU,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC9C,aAAO,SAAS,YAAY,SAAS,SAAS,MAAM,UAAU,SAAS;AAAA,IAC7E;AAAA,EACG,GAAE,KAAK,IAAI,OAAO,CAAC,GAAG,MAAM,IAAID,YAAU,CAAC,GAAG,EAAE,CAAC,GAAG,IAAIF,YAAU,KAAK,mBAAmB,IAAI,IAAI,GAAG,MAAM,aAAa,KAAK,UAAU,WAAW,KAAK,QAAQ,KAAK,OAAO,SAAS,WAAW,eAAe;AAAA,IAC7M,KAAK;AAAA,IACL,SAAS,eAAe,KAAK,GAAG,QAAQ,CAAC;AAAA,EAC7C,GAAK,WAAY;AACb,WAAO,CAAC,KAAK,UAAU,KAAK,eAAe,aAAa,mBAAmB,KAAK,WAAW;AAAA,MACzF,KAAK;AAAA,MACL,SAAS,CAAC,WAAW,KAAK,GAAG,QAAQ,GAAG,KAAK,QAAQ,KAAK,WAAW;AAAA,MACrE,eAAe;AAAA,IAChB,GAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,UAAW,GAAE,YAAY,wBAAwB,WAAW;AAAA,MAChG,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,QAAQ;AAAA,MACzB,MAAM;AAAA,MACN,eAAe;AAAA,IACrB,GAAO,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;AAAA,EAC9C,CAAA,IAAI,mBAAmB,IAAI,IAAI,GAAG,WAAW,KAAK,QAAQ,KAAK,OAAO,WAAW,aAAa,kBAAkB;AAAA,IAC/G,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,aAAO,SAAS,gBAAgB,KAAK;AAAA,IACtC,GAFe;AAAA,EAGpB,GAAK,WAAY;AACb,WAAO,CAAC,KAAK,YAAY,UAAW,GAAE,mBAAmB,UAAU,WAAW;AAAA,MAC5E,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,KAAK,aAAa;AAAA,MACjD,UAAU,KAAK;AAAA,MACf,iBAAiB;AAAA,MACjB,iBAAiB,MAAM;AAAA,MACvB,iBAAiB,SAAS;AAAA,MAC1B,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,eAAO,SAAS,mBAAmB,SAAS,gBAAgB,MAAM,UAAU,SAAS;AAAA,MAC7F;AAAA,IACA,GAAO,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,gBAAgB;AAAA,MACjE,SAAS,eAAe,KAAK,YAAY;AAAA,IAC/C,GAAO,WAAY;AACb,aAAO,EAAE,aAAa,YAAY,wBAAwB,KAAK,eAAe,SAAS,iBAAiB,GAAG,WAAW;AAAA,QACpH,SAAS,KAAK;AAAA,MACtB,GAAS,KAAK,IAAI,cAAc,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;IACvD,CAAK,CAAC,GAAG,IAAI+C,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,EACxD,CAAG,GAAG5C,gBAAmB,QAAQ,WAAW;AAAA,IACxC,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb,GAAK,KAAK,IAAI,oBAAoB,GAAG;AAAA,IACjC,4BAA4B;AAAA,EAChC,CAAG,GAAG,gBAAgB,SAAS,uBAAuB,GAAG,EAAE,GAAG,YAAY,mBAAmB;AAAA,IACzF,UAAU,KAAK;AAAA,EACnB,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,YAAY,WAAW;AAAA,QACzC,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,QACvB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,MACxB,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,MAAM,kBAAkB,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YAChF,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,IAAI,SAAS;AAAA,YACb,SAAS,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,YAAY,KAAK,YAAY;AAAA,YAChE,OAAOwC,gBAAcA,gBAAcA,gBAAc,CAAE,GAAE,KAAK,UAAU,GAAG,KAAK,YAAY,GAAG,CAAA,GAAI;AAAA,cAC7F,cAAc,SAAS,0BAA0B,KAAK,eAAe;AAAA,YACnF,CAAa;AAAA,YACD,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,YACY,WAAW,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AACjD,qBAAO,SAAS,oBAAoB,SAAS,iBAAiB,MAAM,UAAU,SAAS;AAAA,YACrG;AAAA,UACA,GAAa,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,YAC1D,OAAO,KAAK;AAAA,YACZ,aAAa,SAAS;AAAA,UAClC,CAAW,GAAG,YAAY,4BAA4B,WAAW;AAAA,YACrD,KAAK,SAAS;AAAA,UAC1B,GAAa,KAAK,wBAAwB;AAAA,YAC9B,OAAO;AAAA,cACL,QAAQ,KAAK;AAAA,YACd;AAAA,YACD,OAAO,SAAS;AAAA,YAChB,UAAU;AAAA,YACV,UAAU,SAAS;AAAA,YACnB,IAAI,KAAK,IAAI,iBAAiB;AAAA,UAC/B,CAAA,GAAG,YAAY;AAAA,YACd,SAAS,QAAQ,SAAU,MAAM;AAC/B,kBAAI,aAAa,KAAK,YACpB,aAAa,KAAK,YAClB,QAAQ,KAAK,OACb,iBAAiB,KAAK,gBACtB,eAAe,KAAK,cACpB,WAAW,KAAK;AAClB,qBAAO,CAACxC,gBAAmB,MAAM,WAAW;AAAA,gBAC1C,KAAK,gCAASkD,KAAI,IAAI;AACpB,yBAAO,SAAS,QAAQ,IAAI,UAAU;AAAA,gBACvC,GAFI;AAAA,gBAGL,IAAI,MAAM,KAAK;AAAA,gBACf,SAAS,CAAC,KAAK,GAAG,MAAM,GAAG,UAAU;AAAA,gBACrC,OAAO;AAAA,gBACP,MAAM;AAAA,gBACN,cAAc,SAAS;AAAA,cACvC,GAAiB,KAAK,IAAI,MAAM,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,SAAUhC,SAAQ,GAAG;AACjH,uBAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,kBAC/C,KAAK,SAAS,mBAAmBA,SAAQ,SAAS,eAAe,GAAG,cAAc,CAAC;AAAA,gBACrG,GAAmB,CAAC,SAAS,cAAcA,OAAM,KAAK,aAAa,mBAAmB,MAAM,WAAW;AAAA,kBACrF,KAAK;AAAA,kBACL,IAAI,MAAM,KAAK,MAAM,SAAS,eAAe,GAAG,cAAc;AAAA,kBAC9D,OAAO;AAAA,oBACL,QAAQ,WAAW,WAAW,OAAO;AAAA,kBACtC;AAAA,kBACD,SAAS,KAAK,GAAG,aAAa;AAAA,kBAC9B,MAAM;AAAA,kBACN,SAAS;AAAA,gBAC3B,GAAmB,KAAK,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,eAAe;AAAA,kBACnE,QAAQA,QAAO;AAAA,kBACf,OAAO,SAAS,eAAe,GAAG,cAAc;AAAA,gBAClE,GAAmB,WAAY;AACb,yBAAO,CAAC,gBAAgB,gBAAgB,SAAS,oBAAoBA,QAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAAA,gBAC/G,CAAiB,CAAC,GAAG,IAAI6B,YAAU,KAAK,gBAAgB,aAAa,mBAAmB,MAAM,WAAW;AAAA,kBACvF,KAAK;AAAA,kBACL,IAAI,MAAM,KAAK,MAAM,SAAS,eAAe,GAAG,cAAc;AAAA,kBAC9D,OAAO;AAAA,oBACL,QAAQ,WAAW,WAAW,OAAO;AAAA,kBACtC;AAAA,kBACD,SAAS,KAAK,GAAG,UAAU;AAAA,oBACzB,QAAQ7B;AAAA,oBACR;AAAA,oBACA;AAAA,kBACpB,CAAmB;AAAA,kBACD,MAAM;AAAA,kBACN,cAAc,SAAS,eAAeA,OAAM;AAAA,kBAC5C,iBAAiB,SAAS,WAAWA,OAAM;AAAA,kBAC3C,iBAAiB,SAAS,iBAAiBA,OAAM;AAAA,kBACjD,gBAAgB,SAAS;AAAA,kBACzB,iBAAiB,SAAS,gBAAgB,SAAS,eAAe,GAAG,cAAc,CAAC;AAAA,kBACpF,SAAS,gCAASiC,SAAQ,QAAQ;AAChC,2BAAO,SAAS,eAAe,QAAQjC,OAAM;AAAA,kBAC9C,GAFQ;AAAA,kBAGT,aAAa,gCAAS,YAAY,QAAQ;AACxC,2BAAO,SAAS,kBAAkB,QAAQ,SAAS,eAAe,GAAG,cAAc,CAAC;AAAA,kBACrF,GAFY;AAAA,kBAGb,mBAAmB,SAAS,WAAWA,OAAM;AAAA,kBAC7C,gBAAgB,MAAM,uBAAuB,SAAS,eAAe,GAAG,cAAc;AAAA,kBACtF,mBAAmB,SAAS,iBAAiBA,OAAM;AAAA,kBACnD,SAAS;AAAA,gBACV,GAAE,SAAS,aAAaA,SAAQ,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,kBACjG,QAAQA;AAAA,kBACR,OAAO,SAAS,eAAe,GAAG,cAAc;AAAA,gBAClE,GAAmB,WAAY;AACb,yBAAO,CAAC,gBAAgB,gBAAgB,SAAS,eAAeA,OAAM,CAAC,GAAG,CAAC,CAAC;AAAA,gBAC9F,CAAiB,CAAC,GAAG,IAAI8B,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE;AAAA,cACnD,CAAA,GAAG,GAAG,IAAI,CAAC,SAAS,SAAS,MAAM,WAAW,KAAK,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,gBACnG,KAAK;AAAA,gBACL,SAAS,KAAK,GAAG,cAAc;AAAA,gBAC/B,MAAM;AAAA,cACP,GAAE,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAA,GAAI,WAAY;AAC9E,uBAAO,CAAC,gBAAgB,gBAAgB,SAAS,uBAAuB,GAAG,CAAC,CAAC;AAAA,cAC7F,CAAe,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIF,YAAU,CAAC;AAAA,YACxE,CAAa;AAAA,YACD,GAAG;AAAA,UACf,GAAa,CAAC,KAAK,OAAO,SAAS;AAAA,YACvB,MAAM;AAAA,YACN,IAAI,QAAQ,SAAU,OAAO;AAC3B,kBAAI,UAAU,MAAM;AACpB,qBAAO,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,gBACxC;AAAA,cACD,CAAA,CAAC;AAAA,YAChB,CAAa;AAAA,YACD,KAAK;AAAA,UACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,SAAS,SAAS,YAAY,IAAI,CAAC,GAAG,WAAW,KAAK,QAAQ,UAAU;AAAA,YAC9F,OAAO,KAAK;AAAA,YACZ,aAAa,SAAS;AAAA,UAClC,CAAW,GAAG9C,gBAAmB,QAAQ,WAAW;AAAA,YACxC,MAAM;AAAA,YACN,aAAa;AAAA,YACb,SAAS;AAAA,UACrB,GAAa,KAAK,IAAI,uBAAuB,GAAG;AAAA,YACpC,4BAA4B;AAAA,UAC7B,CAAA,GAAG,gBAAgB,SAAS,mBAAmB,GAAG,EAAE,CAAC,GAAG,IAAI6C,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,QAClH,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,gBAAgB,WAAW,cAAc,CAAC,CAAC;AAAA,IACpE,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE;AAC1B;AAvUSvD;AAyUTD,SAAO,SAASC;ACzzChB,MAAK8D,cAAU;AAAA,EACb,MAAM;AAAA,EACN,SAASC;AAAAA,EACT,OAAO,CAAC,wBAAwB;AAAA,EAChC,UAAU;AACR,QAAI,OAAOA,SAAa,YAAY,YAAY;AAC9CA,eAAa,QAAQ,KAAK,IAAI;AAAA,IAChC;AAGA,SAAK;AAAA,MACH,MAAM,KAAK;AAAA,MACX,CAAC,QAAQ,WAAW;AAElB,aAAK,MAAM,0BAA0B,MAAM;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;ACuCA,UAAM,eAAe;AACrB,UAAM,eAAe;AAAA,MAAS,MAC5B,aAAa,IAAI,sCAAsC;AAAA,IAAA;AAEzD,UAAM,aAAa;AAAA,MAAS,MAC1B,aAAa,IAAI,oCAAoC;AAAA,IAAA;AAEvD,UAAM,oBAAoB;AAAA,MAAS,MACjC,aAAa,IAAI,2CAA2C;AAAA,IAAA;AAE9D,UAAM,qBAAqB;AAC3B,UAAM,gBAAgB;AAAA,MAAS,MAC7B,mBAAmB,iBAAiB,MAAM,OAAO;AAAA,IAAA;AAGnD,UAAM,oBAAoB;AAC1B,UAAM,eAAe;AAAA,MAAS,MAC5B,kBAAkB,aAAa,MAAM,OAAO;AAAA,IAAA;AAG9C,UAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGd,UAAM,eAAe;AACf,UAAA,EAAE,MAAM;AAEd,UAAM,oBAAoB;AAAA,MAAS,MACjC,aAAa,IAAI,qCAAqC;AAAA,IAAA;AAGxD,UAAM,QAAQ;AAUR,UAAA,0BAA0B,IAAI,KAAK;AACzC,UAAM,UAAU,mCAAmC,KAAK,OAAA,CAAQ;AAC1D,UAAAC,eAAc,IAAwB,CAAA,CAAE;AACxC,UAAA,oBAAoB,IAA6B,IAAI;AACrD,UAAA,eAAe,IAAI,EAAE;AACrB,UAAA,cAAc,SAAS,MAAM;AACjC,aAAO,MAAM,QAAQ,WAAW,IAAI,EAAE,eAAe,IAAI,QAAQ;AAAA,IAAA,CAClE;AAED,UAAM,eAAe;AACrB,UAAM,qBAAqB;AACrB,UAAAC,UAAS,wBAAC,UAAkB;AAChC,YAAM,eAAe,UAAU,MAAM,MAAM,QAAQ,WAAW;AAC9D,mBAAa,QAAQ;AACT,MAAAD,aAAA,QAAQ,eAChB,mBAAmB,cACnB;AAAA,QACE,GAAG,aAAa,kBAAkB,WAAW,OAAO,MAAM,SAAS;AAAA,UACjE,OAAO,MAAM;AAAA,QAAA,CACd;AAAA,MAAA;AAAA,IACH,GATS;AAYf,UAAM,OAAO;AAEb,UAAM,eAAe,6BAAM;AACnB,YAAA,eAAe,SAAS,eAAe,OAAO;AACpD,UAAI,cAAc;AAChB,qBAAa,KAAK;AAClB,qBAAa,MAAM;AAAA,MACrB;AAAA,IAAA,GALmB;AAQrB,cAAU,YAAY;AAChB,UAAA,cAAc,wBAAC,mBAAmC;AACtD,8BAAwB,QAAQ;AAChC,WAAK,aAAa,cAAc;AACnB;IAAA,GAHK;AAKd,UAAA,iBAAiB,wBAAC,OAAc,mBAAmC;AACvE,YAAM,gBAAgB;AACtB,YAAM,eAAe;AACrB,WAAK,gBAAgB,cAAc;AACtB;IAAA,GAJQ;AAMjB,UAAA,qBAAqB,wBAAC,UAAkB;AAC5C,UAAI,UAAU,IAAI;AAChB,0BAAkB,QAAQ;AAC1B;AAAA,MACF;AACM,YAAA,QAAQA,aAAY,MAAM,KAAK;AACrC,wBAAkB,QAAQ;AAAA,IAAA,GAND;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtIpB,MAAM,mBAA6C;AAAA,SAAA;AAAA;AAAA;AAAA,EACxD,YACS,MACA,MACA,OACA,QACA,KACA,gBACP;AANO,SAAA,OAAA;AACA,SAAA,OAAA;AACA,SAAA,QAAA;AACA,SAAA,SAAA;AACA,SAAA,MAAA;AACA,SAAA,iBAAA;AAAA,EACN;AAAA,EAEH,OAAO,sBAAsB,KAAqB;AAChD,WAAO,IAAI;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EAER;AAAA,EAEA,IAAI,OAAyB;AACrB,UAAA,SAAS,KAAK,QAAQ,KAAK,MAAM,OAAO,KAAK,QAAQ,QAAQ;AAC5D,WAAA,WAAW,KAAK,OAAO;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,kBAAsC;AACjC,WAAA,KAAK,SAAS,UAAU;AAAA,EACjC;AAAA,EAEA,UAAU,SAAqB;AAC7B,UAAM,eACJ,KAAK,oBAAoB,WAAW,QAAQ,UAAU,QAAQ;AAChE,QAAI,CAAC,aAAc;AAEnB,UAAM,cAAc,aAAa;AAAA,MAAU,CAAC,SAC1C,UAAU,kBAAkB,KAAK,MAAM,KAAK,IAAI;AAAA,IAAA;AAGlD,QAAI,gBAAgB,IAAI;AACd,cAAA;AAAA,QACN,iCAAiC,KAAK,IAAI,YAAY,QAAQ,KAAK;AAAA,MAAA;AAErE;AAAA,IACF;AAEI,QAAA,KAAK,oBAAoB,SAAS;AACpC,WAAK,KAAK,QAAQ,KAAK,MAAM,SAAS,aAAa,KAAK,cAAc;AAAA,IAAA,OACjE;AACL,cAAQ,QAAQ,aAAa,KAAK,MAAM,KAAK,MAAM,KAAK,cAAc;AAAA,IACxE;AAAA,EACF;AACF;ACjEa,MAAA,oBAAoB,YAAY,aAAa,MAAM;AACxD,QAAA,UAAU,IAAI,KAAK;AACzB,WAAS,gBAAgB;AACf,YAAA,QAAQ,CAAC,QAAQ;AAAA,EAC3B;AAFS;AAIF,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ,CAAC;;;;AC2CD,UAAM,eAAe;AAErB,UAAM,EAAE,QAAY,IAAA,YAAY,kBAAmB,CAAA;AAC7C,UAAA,cAAc,IAAI,IAAI;AACtB,UAAA,eAAe,IAAiC,IAAI;AAC1D,UAAM,qBAAqB,6BAAe;AACpC,UAAA,CAAC,aAAa,OAAO;AACvB,eAAO,IAAI;MACb;AAEM,YAAA,gBAAiB,aAAa,MAAM,OACvC;AACH,aAAO,CAAC,cAAc,SAAS,cAAc,OAAO;AAAA,IAAA,GAP3B;AASrB,UAAA,cAAc,IAAsB,CAAA,CAAE;AACtC,UAAA,YAAY,wBAAC,WAA2B;AAChC,kBAAA,MAAM,KAAK,MAAM;AAAA,IAAA,GADb;AAGZ,UAAA,eAAe,wBAAC,WAA2B;AACnC,kBAAA,QAAQ,YAAY,MAAM;AAAA,QACpC,CAAC,MAAM,MAAM,CAAC,MAAM,MAAM,MAAM;AAAA,MAAA;AAAA,IAClC,GAHmB;AAKrB,UAAM,eAAe,6BAAM;AACzB,kBAAY,QAAQ;IAAC,GADF;AAGrB,UAAM,cAAc,6BAAM;AACxB,cAAQ,QAAQ;AAAA,IAAA,GADE;AAId,UAAA,UAAU,wBAAC,YAA8B;AACvC,YAAA,OAAO,IAAI,eAAe,SAAS,EAAE,KAAK,sBAAsB;AAEhE,YAAA,cAAc,aAAa,OAAO;AACpC,UAAA,eAAe,YAAY,YAAY,iBAAiB;AAC1D,oBAAY,mBAAmB,MAAM,QAAQ,CAAC,SAAyB;AACrE,6BAAmB,sBAAsB,IAAI,EAAE,UAAU,IAAI;AAAA,QAAA,CAC9D;AAAA,MACH;AAKA,aAAO,WAAW,MAAM;AACV;SACX,GAAG;AAAA,IAAA,GAfQ;AAkBhB,UAAM,sBAAsB;AAAA,MAC1B,MAAM,aAAa,IAAI,yBAAyB,MAAM;AAAA,IAAA;AAElD,UAAA,gBAAgB,wBAAC,MAA4B;AACjD,YAAM,SAAS,EAAE;AACjB,UAAI,oBAAoB,OAAO;AACzB,YAAA,OAAO,eAAe,gBAAgB,SAAS;AACjD,qBAAW,MAAM;AACf,6BAAiB,CAAC;AAAA,aACjB,GAAG;AAAA,QAAA,OACD;AACL,2BAAiB,CAAC;AAAA,QACpB;AAAA,MAAA,OACK;AACO,oBAAA,OAAO,cAAc,OAAO,aAAa;AAAA,MACvD;AAAA,IAAA,GAZoB;AAetB,UAAM,eAAe;AACf,UAAA,mBAAmB,wBAAC,MAA4B;AAChD,UAAA,EAAE,OAAO,YAAY,iBAAiB;AAClC,cAAA,QAAQ,EAAE,OAAO,mBAAmB;AACtC,YAAA,MAAM,WAAW,GAAG;AACtB,kBAAQ,KAAK,uDAAuD;AACpE;AAAA,QACF;AACA,cAAM,YAAY,mBAAmB,sBAAsB,MAAM,CAAC,CAAC;AAC7D,cAAA,SAAS,aAAa,kBAAkB;AAAA,UAC5C,UAAU;AAAA,QAAA;AAEN,cAAA,WAAW,UAAU,KAAK,SAAS;AAC/B,kBAAA,CAAC,QAAQ,QAAQ,CAAC;AAAA,MAC9B;AAEA,cAAQ,QAAQ;AAChB,mBAAa,QAAQ;AAGrB,kBAAY,QAAQ;AACpB,iBAAW,MAAM;AACf,oBAAY,QAAQ;AAAA,SACnB,GAAG;AAAA,IAAA,GAtBiB;AAyBnB,UAAA,kBAAkB,wBAAC,MAA4B;AAC/C,UAAA,EAAE,OAAO,YAAY,iBAAiB;AACxC;AAAA,MACF;AAEM,YAAA,QAAQ,EAAE,OAAO,mBAAmB;AACtC,UAAA,MAAM,WAAW,GAAG;AACtB,gBAAQ,KAAK,uDAAuD;AACpE;AAAA,MACF;AAEA,YAAM,YAAY,mBAAmB,sBAAsB,MAAM,CAAC,CAAC;AAC7D,YAAA,aAAa,EAAE,OAAO;AAC5B,YAAM,gBAAgB;AAAA,QACpB,GAAG;AAAA,QACH,iBAAiB;AAAA,QACjB,eAAe,6BAAM,cAAc,CAAC,GAArB;AAAA,MAAqB;AAEhC,YAAA,oBAAoB,UAAU,SAChC;AAAA,QACE,UAAU,UAAU;AAAA,QACpB,UAAU,UAAU;AAAA,QACpB,gBAAgB,UAAU;AAAA,MAAA,IAE5B;AAAA,QACE,QAAQ,UAAU;AAAA,QAClB,QAAQ,UAAU;AAAA,QAClB,gBAAgB,UAAU;AAAA,MAAA;AAEhC,kBAAY,OAAO,mBAAmB;AAAA,QACpC,GAAG;AAAA,QACH,GAAG;AAAA,MAAA,CACJ;AAAA,IAAA,GAhCqB;AAoCxB,UAAM,cAAc;AACpB,gBAAY,MAAM;AAChB,UAAI,YAAY,QAAQ;AACtB,kBAAU,mCAAmC;AAC7C,oBAAY,OAAO,kBAAkB;AAAA,MACvC;AAAA,IAAA,CACD;AAEK,UAAA,qBAAqB,wBAAC,MAA4B;AAClD,UAAA,EAAE,OAAO,YAAY,sBAAsB;AAC7C,sBAAc,CAAC;AAAA,MACN,WAAA,EAAE,OAAO,YAAY,iBAAiB;AAC/C,iCAAyB,CAAC;AAAA,MACjB,WAAA,EAAE,OAAO,YAAY,sBAAsB;AAC9C,cAAA,QAAQ,EAAE,OAAO;AACvB,cAAM,CAAC,GAAG,CAAC,IAAI,MAAM;AACrB,cAAM,YAAY,EAAE,OAAO,cAAc,UAAU;AAE/C,YAAA,YAAY,MAAM,aAAa;AACjC,wBAAc,CAAC;AAAA,QACjB;AAAA,MACF;AAAA,IAAA,GAbyB;AAgBrB,UAAA,oBAAoB,SAAS,MAAM;AAChC,aAAA,aAAa,IAAI,0BAA0B;AAAA,IAAA,CACnD;AAEK,UAAA,yBAAyB,SAAS,MAAM;AACrC,aAAA,aAAa,IAAI,+BAA+B;AAAA,IAAA,CACxD;AAEK,UAAA,2BAA2B,wBAAC,MAA4B;AAC5D,YAAM,SAAS,EAAE;AACX,YAAA,eAAe,OAAO,cAAc;AAE1C,YAAM,SAAS,eACX,uBAAuB,QACvB,kBAAkB;AACtB,cAAQ,QAAQ;AAAA,QACd,KAAK,yBAAyB;AAC5B,wBAAc,CAAC;AACf;AAAA,QACF,KAAK,yBAAyB;AAC5B,0BAAgB,CAAC;AACjB;AAAA,QACF,KAAK,yBAAyB;AAAA,QAC9B;AACE;AAAA,MACJ;AAAA,IAAA,GAjB+B;AAoBhB,qBAAA,UAAU,oBAAoB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxN7D,QAAA;AACJ,UAAM,eAAe;AACrB,UAAM,aAAa;AACb,UAAA,cAAc,IAAI,EAAE;AAC1B,UAAM,OAAO;AACb,UAAM,MAAM;AAEN,UAAA,cAAc,6BAAO,YAAY,QAAQ,MAA3B;AAEd,UAAA,cAAc,8BAAO,YAAuC;AAChE,UAAI,CAAC,QAAS;AAEd,WAAK,QAAQE,IAAS,OAAO,MAAM,CAAC,IAAI;AACxC,UAAI,QAAQA,IAAS,OAAO,MAAM,CAAC,IAAI;AACvC,kBAAY,QAAQ;AAEpB,YAAM,SAAS;AAET,YAAA,OAAO,WAAW,MAAM,sBAAsB;AAChD,UAAA,KAAK,QAAQ,OAAO,YAAY;AAClC,aAAK,QAAQA,IAAS,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;AAAA,MACvD;AAEI,UAAA,KAAK,MAAM,GAAG;AAChB,YAAI,QAAQA,IAAS,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS;AAAA,MACvD;AAAA,IAAA,GAhBkB;AAmBpB,UAAM,SAAS,6BAAM;AACb,YAAA,EAAE,OAAW,IAAAA;AACnB,YAAM,OAAO,OAAO;AACpB,UAAI,CAAC,KAAM;AAEX,YAAM,OAAO,KAAK;AAClB,YAAM,UAAU,aAAa,eAAe,KAAK,IAAI;AAGnD,UAAA,KAAK,eAAe,UAAU,YAC9B,OAAO,YAAY,CAAC,IAAI,KAAK,IAAI,CAAC,GAClC;AACO,eAAA,YAAY,QAAQ,WAAW;AAAA,MACxC;AAEI,UAAA,KAAK,OAAO,UAAW;AAE3B,YAAM,YAAY,OAAO;AAAA,QACvB;AAAA,QACA,OAAO,YAAY,CAAC;AAAA,QACpB,OAAO,YAAY,CAAC;AAAA,QACpB,CAAC,GAAG,CAAC;AAAA,MAAA;AAEP,UAAI,cAAc,IAAI;AACpB,cAAM,YAAY,KAAK,OAAO,SAAS,EAAE;AACzC,cAAM,oBAAoB;AAAA,UACxB,YAAY,iBAAiB,KAAK,IAAI,CAAC,WAAW,iBAAiB,SAAS,CAAC;AAAA,UAC7E,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,QAAA;AAEtC,eAAO,YAAY,iBAAiB;AAAA,MACtC;AAEA,YAAM,aAAa,OAAO;AAAA,QACxB;AAAA,QACA,OAAO,YAAY,CAAC;AAAA,QACpB,OAAO,YAAY,CAAC;AAAA,QACpB,CAAC,GAAG,CAAC;AAAA,MAAA;AAEP,UAAI,eAAe,IAAI;AACrB,cAAM,oBAAoB;AAAA,UACxB,YAAY,iBAAiB,KAAK,IAAI,CAAC,YAAY,UAAU;AAAA,UAC7D,QAAQ,QAAQ,MAAM,UAAU,GAAG;AAAA,QAAA;AAErC,eAAO,YAAY,iBAAiB;AAAA,MACtC;AAEM,YAAA,SAASA,IAAS,OAAO,kBAAkB;AAE7C,UAAA,UAAU,CAAC,OAAO,SAAS;AAC7B,cAAM,oBAAoB;AAAA,UACxB,YAAY,iBAAiB,KAAK,IAAI,CAAC,WAAW,iBAAiB,OAAO,IAAI,CAAC;AAAA,UAC/E,QAAQ,OAAO,SAAS,OAAO,IAAI,GAAG;AAAA,QAAA;AAGjC,eAAA,YAAY,OAAO,WAAW,iBAAiB;AAAA,MACxD;AAAA,IAAA,GAvDa;AA0DT,UAAA,cAAc,wBAAC,MAAkB;AACzB;AACZ,mBAAa,WAAW;AAEnB,UAAA,EAAE,OAAgB,aAAa,SAAU;AAChC,oBAAA,OAAO,WAAW,QAAQ,GAAG;AAAA,IAAA,GALzB;AAQH,qBAAA,QAAQ,aAAa,WAAW;AAChC,qBAAA,QAAQ,SAAS,WAAW;;;;;;;;;;;;;;;;AC7F7C,UAAM,eAAe;AACrB,UAAM,sBAAsB;AAAA,MAC1B,MAAM,aAAa,IAAI,qCAAqC;AAAA,IAAA;AAE9D,UAAM,kBAAkB;AAAA,MACtB,MAAM,aAAa,IAAI,iCAAiC;AAAA,IAAA;AAE1D,UAAM,yBAAyB;AAAA,MAC7B,MACE,aAAa,IAAI,wCAAwC;AAAA,IAAA;AAG7D,UAAM,CAAC,qBAAqB,iBAAiB,sBAAsB,GAAG,MAAM;AACtE,UAAA,OAAO,eAAe,MAAM,IAAI;AAAA,IAAA,CACrC;AAED,UAAM,eAAe;AAAA,MAA8B,MACjD,gBAAgB,aAAa,IAAI,oBAAoB,CAAC;AAAA,IAAA;AAGxD,UAAM,eAAe;AACZ,aAAA,iBACP,SACA,WACS;AACT,aAAO,EACL,cAAc,cAAc,QAC3B,SAAS,cAAc,cAAc,cAAc;AAAA,IAExD;AARS;AAUT,cAAU,MAAM;AACd,UAAI,kBAAkB;AAAA,QACpB,MAAM;AAAA,QACN,YAAY,MAAkB;AAC5B,eAAK,gBAAgB,cAAc;AAE7B,gBAAA,QAAQ,SAAS,MAAM;AACrB,kBAAA,UAAU,aAAa,eAAe,IAAI;AAChD,mBAAO,IAAI,YAAY;AAAA,cACrB,MAAM,EAAE;AAAA,gBACN;AAAA,kBACE,iBAAiB,SAAS,gBAAgB,KAAK,IAC3C,IAAI,KAAK,EAAE,KACX;AAAA,kBACJ,iBAAiB,SAAS,uBAAuB,KAAK,IAClD,SAAS,0BAA0B,KACnC;AAAA,kBACJ,iBAAiB,SAAS,oBAAoB,KAAK,IAC/C,SAAS,YAAY,aAAa,KAClC;AAAA,gBAAA,EAEH,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,EAC1B,KAAK,GAAG;AAAA,gBACX;AAAA,kBACE,QAAQ;AAAA,gBACV;AAAA,cACF;AAAA,cACA,SACE,aAAa,OAAO,QAAQ,gBAAgB,kBAC5C,oBAAoB,OAAO,eAAe;AAAA,cAC5C,SACE,aAAa,OAAO,QAAQ,gBAAgB,kBAC5C,oBAAoB,OAAO,eAAe;AAAA,YAAA,CAC7C;AAAA,UAAA,CACF;AAED,eAAK,OAAO,KAAK,MAAM,MAAM,KAAK;AAAA,QACpC;AAAA,MAAA,CACD;AAAA,IAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FD,IAAIxE,UAAQ,gCAASA,OAAM,MAAM;AAC/B,OAAK;AACL,SAAO;AACT,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,MAAM;AACR;AACA,IAAI,mBAAmB,UAAU,OAAO;AAAA,EACtC,MAAM;AAAA,EACN,OAAOD;AAAAA,EACP,SAASC;AACX,CAAC;ACTD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWM;AAAAA,EACX,OAAO;AAAA,EACP,SAAS,gCAASJ,WAAU;AAC1B,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAChB;AAEA,SAASI,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,IACxD,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,MAAM;AAAA,EACP,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC,GAAG,EAAE;AACjE;AALSA;AAOTD,SAAO,SAASC;;;;ACgCV,UAAA,EAAE,MAAM;AACd,UAAM,eAAe;AACrB,UAAM,cAAc;AACpB,UAAM,eAAe;AAErB,UAAM,aAAa;AAAA,MACjB,MAAM,aAAa,IAAI,sBAAsB,MAAM,UAAU;AAAA,IAAA;AAG/D,QAAI,WAA0B;AACxB,UAAAmE,UAAS,wBAAC,YAAoB;AAClC,UAAI,SAAU;AACd,YAAM,MAAM,6BAAM,aAAa,QAAQ,OAAO,GAAlC;AACR;AACO,iBAAA,OAAO,YAAY,KAAK,GAAG;AAAA,IAAA,GAJzB;AAMf,UAAM,aAAa,6BAAM;AACvB,UAAI,UAAU;AACZ,sBAAc,QAAQ;AACX,mBAAA;AAAA,MACb;AAAA,IAAA,GAJiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTnB,UAAM,OAAO;AACP,UAAA,YAAY,IAA8B,IAAI;AACpD,UAAM,eAAe;AACrB,UAAM,eAAe;AACrB,UAAM,iBAAiB;AACvB,UAAM,cAAc;AACpB,UAAM,mBAAmB;AACzB,UAAM,kBAAkB;AAAA,MACtB,MAAM,aAAa,IAAI,kBAAkB,MAAM;AAAA,IAAA;AAEjD,UAAM,oBAAoB;AAAA,MAAS,MACjC,aAAa,IAAI,wBAAwB;AAAA,IAAA;AAE3C,UAAM,iBAAiB,SAAS,MAAM,aAAa,IAAI,sBAAsB,CAAC;AAE9E,gBAAY,MAAM;AACV,YAAA,oBAAoB,aAAa,IAAI,wBAAwB;AACnE,UAAI,YAAY,QAAQ;AACtB,oBAAY,OAAO,YAAY;AAAA,MACjC;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACV,YAAA,YAAY,aAAa,IAAI,uBAAuB;AAC1D,UAAI,YAAY,QAAQ;AACtB,oBAAY,OAAO,aAAa;AAAA,MAClC;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACN,gBAAA,kBAAkB,aAAa,IAAI,+BAA+B;AAAA,IAAA,CAC7E;AAED,gBAAY,MAAM;AAChB,gBAAU,uBAAuB,aAAa;AAAA,QAC5C;AAAA,MAAA;AAAA,IACF,CACD;AAED,gBAAY,MAAM;AAChB,iBAAW,uBAAuB,aAAa;AAAA,QAC7C;AAAA,MAAA;AAAA,IACF,CACD;AAED,gBAAY,MAAM;AAChB,gBAAU,qCAAqC,aAAa;AAAA,QAC1D;AAAA,MAAA;AAAA,IACF,CACD;AAED,gBAAY,MAAM;AACH,mBAAA,iBAAiB,aAAa,IAAI,2BAA2B;AAAA,IAAA,CAC3E;AAED,gBAAY,MAAM;AAChB,mBAAa,mBAAmB,aAAa;AAAA,QAC3C;AAAA,MAAA;AAAA,IACF,CACD;AAED,gBAAY,MAAM;AACV,YAAA,oBAAoB,aAAa,IAAI,iCAAiC;AACtE,YAAA,YAAY,SAAS,iBAAiB,gCAAgC;AAElE,gBAAA,QAAQ,CAAC,aAAkC;AACnD,iBAAS,aAAa;AAEtB,iBAAS,MAAM;AACf,iBAAS,KAAK;AAAA,MAAA,CACf;AAAA,IAAA,CACF;AAED,gBAAY,MAAM;AACV,YAAA,iBAAiB,aAAa,IAAI,sBAAsB;AAC9D,UAAI,YAAY,QAAQ;AACtB,oBAAY,OAAO,oBAAoB;AACvC,oBAAY,OAAO;AAAA;AAAA,UAAkB;AAAA;AAAA,UAAgB;AAAA,QAAA;AAAA,MACvD;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACV,YAAA,kBAAkB,aAAa,IAAI,yBAAyB;AAC5D,YAAA,EAAE,OAAW,IAAA;AACnB,UAAI,QAAQ;AACV,eAAO,kBAAkB;AAClB,eAAA,SAAS,OAAO,IAAI;AAAA,MAC7B;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACV,YAAA,kBAAkB,aAAa,IAAI,mBAAmB;AACtD,YAAA,EAAE,OAAW,IAAA;AACnB,UAAI,QAAQ;AACV,eAAO,kBAAkB;AAClB,eAAA,SAAS,OAAO,IAAI;AAAA,MAC7B;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACV,YAAA,aAAa,aAAa,IAAI,6BAA6B;AAC3D,YAAA,EAAE,OAAW,IAAA;AACf,UAAA,eAAe,aAAa;AAAA,IAAA,CACjC;AAED,gBAAY,MAAM;AAChB,oBAAc,kBAAkB,aAAa;AAAA,QAC3C;AAAA,MAAA;AAAA,IACF,CACD;AAED,gBAAY,MAAM;AACF,oBAAA,aAAa,aAAa,IAAI,+BAA+B;AAAA,IAAA,CAC5E;AAED,gBAAY,MAAM;AACF,oBAAA,gBAAgB,aAAa,IAAI,0BAA0B;AAAA,IAAA,CAC1E;AAED,gBAAY,MAAM;AACN,gBAAA,mBAAmB,aAAa,IAAI,2BAA2B;AAAA,IAAA,CAC1E;AAED,gBAAY,MAAM;AACN,gBAAA,mBAAmB,aAAa,IAAI,oBAAoB;AAAA,IAAA,CACnE;AAED,gBAAY,MAAM;AACZ,UAAA,CAAC,YAAY,OAAQ;AAErB,UAAA,YAAY,OAAO,MAAM,gBAAgB;AAC/B,oBAAA,OAAO,OAAO,MAAM,SAAS;AACzC;AAAA,MACF;AAEI,UAAA,YAAY,OAAO,MAAM,UAAU;AACzB,oBAAA,OAAO,OAAO,MAAM,SAAS;AACzC;AAAA,MACF;AAEY,kBAAA,OAAO,OAAO,MAAM,SAAS;AAAA,IAAA,CAC1C;AAED,UAAM,gBAAgB;AACtB,UAAM,yBAAyB,6BAAM;AACnC,YAAM,WAAW,KAAK,UAAUD,IAAS,eAAgB,CAAA;AAC5C,mBAAA,QAAQ,YAAY,QAAQ;AACzC,UAAI,IAAI,UAAU;AAChB,uBAAe,QAAQ,YAAY,IAAI,QAAQ,IAAI,QAAQ;AAAA,MAC7D;AAAA,IAAA,GAL6B;AAQ/B,gBAAY,MAAM;AAChB,UAAI,cAAc,gBAAgB;AAChC,cAAM,WAAW,cAAc;AACf,wBAAA,0BAA0B,SAAS,GAAG;AAG/B;MACzB;AAAA,IAAA,CACD;AAEG,QAAA,iBAAiB,gBAAgB,sBAAsB;AAErC,0BAAA,MAAM,UAAU,OAAO;AAAA,MAC3C,QAAQ,wBAAC,UAAU;AACX,cAAA,MAAM,MAAM,SAAS,QAAQ;AAC7B,cAAA,UAAU,MAAM,OAAO;AAEzB,YAAA,QAAQ,SAAS,sBAAsB;AACzC,gBAAM,OAAO,QAAQ;AACjB,cAAA,KAAK,gBAAgB,kBAAkB;AACzC,kBAAM,UAAU,KAAK;AAGf,kBAAA,MAAMA,IAAS,qBAAqB;AAAA,cACxC,IAAI,UAAU;AAAA,cACd,IAAI;AAAA,YAAA,CACL;AACDA,gBAAS,eAAe,SAAS,EAAE,IAAK,CAAA;AAAA,UAAA,WAC/B,KAAK,gBAAgB,eAAe;AAC7C,kBAAM,QAAQ,KAAK;AACb,kBAAA,MAAMA,IAAS,qBAAqB,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC;AAC9D,kBAAA,YAAYA,IAAS,MAAM,aAAa,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC5D,gBAAI,iBAA2C;AAC/C,gBAAI,kBAAqC;AACzC,gBAAI,WAAW;AACb,oBAAM,YAAY,iBAAiB;AAAA,gBACjC,MAAM;AAAA,cAAA;AAER,yBAAW,YAAY,WAAW;AAChC,oBAAI,SAAS,QAAQ,SAAS,UAAU,YAAY;AAChC,oCAAA;AACD,mCAAA;AAAA,gBACnB;AAAA,cACF;AAAA,YACF;AACA,gBAAI,CAAC,iBAAiB;AACpB,oBAAM,WAAW,iBAAiB,gBAAgB,MAAM,SAAS;AACjE,kBAAI,UAAU;AACM,kCAAAA,IAAS,eAAe,SAAS,SAAS;AAAA,kBAC1D;AAAA,gBAAA,CACD;AACgB,iCAAA;AAAA,cACnB;AAAA,YACF;AACA,gBAAI,iBAAiB;AACb,oBAAA,SAAS,gBAAgB,QAAQ;AAAA,gBACrC,CAACE,YAAWA,QAAO,SAAS,eAAe;AAAA,cAAA;AAE7C,kBAAI,QAAQ;AACV,uBAAO,QAAQ,MAAM;AAAA,cACvB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,GAnDQ;AAAA,IAmDR,CACD;AAEK,UAAA,gBAAgB,IAAI,KAAK;AAC/B,cAAU,YAAY;AAGpB,aAAO,WAAW,IAAI;AACtB,aAAO,QAAQ,IAAI;AACnB,aAAO,OAAO,IAAI;AAClB,aAAO,YAAY,IAAI;AACvB,aAAO,aAAa,IAAI;AACxB,aAAO,cAAc,IAAI;AACzB,aAAO,cAAc,IAAI;AACzB,aAAO,aAAa,IAAI;AACxB,aAAO,aAAa,IAAI;AAExBF,UAAS,cAAc;AAEvB,qBAAe,UAAU;AAGzB,oBAAc,KAAKA,GAAQ;AACrB,YAAAA,IAAS,MAAM,UAAU,KAAK;AACpC,kBAAY,SAASA,IAAS;AAC9B,kBAAY,OAAO,uBAAuB;AAC1C,qBAAe,UAAU;AAEzB,aAAO,KAAK,IAAIA;AACT,aAAA,OAAO,IAAIA,IAAS;AAE3B,oBAAc,QAAQ;AAGtB;AAAA,QACE,MAAM,aAAa,IAAI,cAAc;AAAA,QACrC,YAAY;AACJ,gBAAA,gBAAkB,EAAA,QAAQ,8BAA8B;AAC9D,0BAAgB,sBAAsB;AAAA,QACxC;AAAA,MAAA;AAGF,WAAK,OAAO;AAAA,IAAA,CACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChTD,UAAM,iBAAiB;AACvB,UAAM,eAAe;AACrB,UAAM,gBAAgB,6BAAM;AAC1B,qBAAe,YAAY;AAAA,IAAA,GADP;AAItB,gBAAY,MAAM;AAChB,UAAI,aAAa,IAAI,kBAAkB,MAAM,YAAY;AACvD;AAAA,MACF;AACA,UAAI,eAAe,WAAW;AACxB,YAAA,GAAG,cAAc,MAAM,UAAU;AAAA,MAAA,OAChC;AACD,YAAA,GAAG,cAAc,MAAM,UAAU;AAAA,MACvC;AAAA,IAAA,CACD;AAED,UAAM,cAAc,SAAS,MAAM,aAAa,IAAI,kBAAkB,CAAC;AACvE,UAAM,cAAc;AAAA,MAAwB;AAAA;AAAA;AAAA,QAG1C,YAAY,UAAU,WAClB,EAAE,QAAQ,OAAO,OAAO,MAAA,IACxB,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;AC5CjC,SAASnB,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUrB,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIqB,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASI,kBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3KD;AACT,SAASC,iBAAe,GAAG;AAAE,MAAI,IAAIC,eAAa,GAAG,QAAQ;AAAG,SAAO,YAAYN,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASC,eAAa,GAAG,GAAG;AAAE,MAAI,YAAYN,UAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAYA,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnTM;AACT,IAAI3D,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,4BAA4B,OAAO,GAAG,aAAa,GAAG,kLAAkL,EAAE,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,EAAE,OAAO,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,GAAG,iBAAiB,GAAG,qGAAqG,EAAE,OAAO,GAAG,uBAAuB,GAAG,cAAc,EAAE,OAAO,GAAG,mBAAmB,GAAG,kHAAkH,EAAE,OAAO,GAAG,gBAAgB,GAAG,+CAA+C,EAAE,OAAO,GAAG,2BAA2B,GAAG,oBAAoB,EAAE,OAAO,GAAG,yBAAyB,GAAG,8CAA8C,EAAE,OAAO,GAAG,0BAA0B,GAAG,oBAAoB,EAAE,OAAO,GAAG,wBAAwB,GAAG,8OAA8O,EAAE,OAAO,GAAG,2BAA2B,GAAG,UAAU,EAAE,OAAO,GAAG,2BAA2B,GAAG,kBAAkB,EAAE,OAAO,GAAG,2BAA2B,GAAG,eAAe,EAAE,OAAO,GAAG,2BAA2B,GAAG,sEAAsE,EAAE,OAAO,GAAG,0BAA0B,GAAG,iBAAiB,EAAE,OAAO,GAAG,2BAA2B,GAAG,wBAAwB,EAAE,OAAO,GAAG,kCAAkC,GAAG,iSAAiS,EAAE,OAAO,GAAG,oBAAoB,GAAG,yDAAyD,EAAE,OAAO,GAAG,YAAY,GAAG,yBAAyB,EAAE,OAAO,GAAG,qBAAqB,GAAG,gDAAgD,EAAE,OAAO,GAAG,uBAAuB,GAAG,gBAAgB,EAAE,OAAO,GAAG,uBAAuB,GAAG,iBAAiB,EAAE,OAAO,GAAG,uBAAuB,GAAG,oEAAoE,EAAE,OAAO,GAAG,kBAAkB,GAAG,wBAAwB,EAAE,OAAO,GAAG,kBAAkB,GAAG,yBAAyB,EAAE,OAAO,GAAG,mBAAmB,GAAG,mDAAmD,EAAE,OAAO,GAAG,uBAAuB,GAAG,uBAAuB,EAAE,OAAO,GAAG,yBAAyB,GAAG,gBAAgB,EAAE,OAAO,GAAG,kBAAkB,GAAG,qBAAqB,EAAE,OAAO,GAAG,mBAAmB,GAAG,8DAA8D,EAAE,OAAO,GAAG,yBAAyB,GAAG,0FAA0F,EAAE,OAAO,GAAG,0CAA0C,GAAG,qBAAqB,EAAE,OAAO,GAAG,2CAA2C,GAAG,+EAA+E,EAAE,OAAO,GAAG,0CAA0C,GAAG,sDAAsD,EAAE,OAAO,GAAG,0BAA0B,GAAG,uBAAuB,EAAE,OAAO,GAAG,4BAA4B,GAAG,gBAAgB,EAAE,OAAO,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,OAAO,GAAG,sBAAsB,GAAG,iEAAiE,EAAE,OAAO,GAAG,4BAA4B,GAAG,6FAA6F,EAAE,OAAO,GAAG,6CAA6C,GAAG,qBAAqB,EAAE,OAAO,GAAG,8CAA8C,GAAG,kFAAkF,EAAE,OAAO,GAAG,6CAA6C,GAAG,mDAAmD,EAAE,OAAO,GAAG,uBAAuB,GAAG,uBAAuB,EAAE,OAAO,GAAG,yBAAyB,GAAG,gBAAgB,EAAE,OAAO,GAAG,kBAAkB,GAAG,qBAAqB,EAAE,OAAO,GAAG,mBAAmB,GAAG,8DAA8D,EAAE,OAAO,GAAG,yBAAyB,GAAG,0FAA0F,EAAE,OAAO,GAAG,0CAA0C,GAAG,qBAAqB,EAAE,OAAO,GAAG,2CAA2C,GAAG,+EAA+E,EAAE,OAAO,GAAG,0CAA0C,GAAG,oDAAoD,EAAE,OAAO,GAAG,wBAAwB,GAAG,uBAAuB,EAAE,OAAO,GAAG,0BAA0B,GAAG,gBAAgB,EAAE,OAAO,GAAG,mBAAmB,GAAG,qBAAqB,EAAE,OAAO,GAAG,oBAAoB,GAAG,+DAA+D,EAAE,OAAO,GAAG,0BAA0B,GAAG,2FAA2F,EAAE,OAAO,GAAG,2CAA2C,GAAG,qBAAqB,EAAE,OAAO,GAAG,4CAA4C,GAAG,gFAAgF,EAAE,OAAO,GAAG,2CAA2C,GAAG,wDAAwD,EAAE,OAAO,GAAG,4BAA4B,GAAG,uBAAuB,EAAE,OAAO,GAAG,8BAA8B,GAAG,gBAAgB,EAAE,OAAO,GAAG,uBAAuB,GAAG,qBAAqB,EAAE,OAAO,GAAG,wBAAwB,GAAG,mEAAmE,EAAE,OAAO,GAAG,8BAA8B,GAAG,+FAA+F,EAAE,OAAO,GAAG,+CAA+C,GAAG,qBAAqB,EAAE,OAAO,GAAG,gDAAgD,GAAG,oFAAoF,EAAE,OAAO,GAAG,+CAA+C,GAAG,uDAAuD,EAAE,OAAO,GAAG,2BAA2B,GAAG,uBAAuB,EAAE,OAAO,GAAG,6BAA6B,GAAG,gBAAgB,EAAE,OAAO,GAAG,sBAAsB,GAAG,qBAAqB,EAAE,OAAO,GAAG,uBAAuB,GAAG,kEAAkE,EAAE,OAAO,GAAG,6BAA6B,GAAG,8FAA8F,EAAE,OAAO,GAAG,8CAA8C,GAAG,qBAAqB,EAAE,OAAO,GAAG,+CAA+C,GAAG,mFAAmF,EAAE,OAAO,GAAG,8CAA8C,GAAG,stBAAstB;AAC5lP,GAHY;AAMZ,IAAIkB,iBAAe;AAAA,EACjB,MAAM,gCAASD,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM;AACrB,WAAO;AAAA,MACL,UAAU;AAAA,MACV,KAAK,aAAa,eAAe,aAAa,cAAc,aAAa,eAAe,SAAS,aAAa,WAAW,QAAQ;AAAA,MACjI,QAAQ,aAAa,eAAe,aAAa,mBAAmB;AAAA,MACpE,SAAS,aAAa,iBAAiB,aAAa,kBAAkB,aAAa,oBAAoB;AAAA,MACvG,MAAM,aAAa,cAAc,aAAa,gBAAgB,SAAS,aAAa,YAAY,aAAa,gBAAgB,aAAa,kBAAkB,QAAQ;AAAA,IAC1K;AAAA,EACG,GATK;AAUR;AACA,IAAIhB,YAAU;AAAA,EACZ,MAAM,gCAASgB,MAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,iCAAiC,MAAM,QAAQ;AAAA,EACxD,GAHK;AAAA,EAIN,SAAS,gCAAS,QAAQ,OAAO;AAC/B,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,mBAAmB;AAAA,MACzB,wBAAwB,MAAM,QAAQ,aAAa,UAAU,MAAM,QAAQ,aAAa;AAAA,MACxF,wBAAwB,MAAM,QAAQ,aAAa;AAAA,MACnD,yBAAyB,MAAM,QAAQ,aAAa;AAAA,MACpD,2BAA2B,MAAM,QAAQ,aAAa;AAAA,MACtD,6BAA6B,MAAM,QAAQ,aAAa;AAAA,MACxD,4BAA4B,MAAM,QAAQ,aAAa;AAAA,IAC7D,CAAK;AAAA,EACF,GAVQ;AAAA,EAWT,gBAAgB;AAAA,EAChB,aAAa,gCAAS,YAAY,OAAO;AACvC,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,wBAAwBwC,kBAAgBA,kBAAgBA,kBAAgBA,kBAAgB,IAAI,MAAM,UAAU,MAAM,QAAQ,aAAa,MAAM,GAAG,MAAM,UAAU,MAAM,QAAQ,aAAa,MAAM,GAAG,MAAM,WAAW,MAAM,QAAQ,aAAa,OAAO,GAAG,MAAM,aAAa,MAAM,QAAQ,aAAa,SAAS,CAAC;AAAA,EAC3T,GAHY;AAAA,EAIb,aAAa;AAAA,EACb,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,WAAW;AACb;AACA,IAAI,aAAa,UAAU,OAAO;AAAA,EAChC,MAAM;AAAA,EACN,OAAOzD;AAAAA,EACP,SAASC;AAAAA,EACT,cAAciB;AAChB,CAAC;ACxCD,IAAIyD,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWnE;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,WAAU;AAC1B,WAAO;AAAA,MACL,UAAU;AAAA,MACV,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWM;AAAAA,EACX,OAAO,CAAC,OAAO;AAAA,EACf,cAAc;AAAA,EACd,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS,gCAASkB,WAAU;AAC1B,QAAI,QAAQ;AACZ,QAAI,KAAK,QAAQ,MAAM;AACrB,WAAK,eAAe,WAAW,WAAY;AACzC,cAAM,MAAM;AAAA,UACV,SAAS,MAAM;AAAA,UACf,MAAM;AAAA,QAChB,CAAS;AAAA,MACT,GAAS,KAAK,QAAQ,IAAI;AAAA,IACrB;AAAA,EACF,GAVQ;AAAA,EAWT,eAAe,gCAASC,iBAAgB;AACtC,SAAK,kBAAiB;AAAA,EACvB,GAFc;AAAA,EAGf,SAAS;AAAA,IACP,OAAO,gCAAS,MAAM,QAAQ;AAC5B,WAAK,MAAM,SAAS,MAAM;AAAA,IAC3B,GAFM;AAAA,IAGP,cAAc,gCAAS,eAAe;AACpC,WAAK,kBAAiB;AACtB,WAAK,MAAM;AAAA,QACT,SAAS,KAAK;AAAA,QACd,MAAM;AAAA,MACd,CAAO;AAAA,IACF,GANa;AAAA,IAOd,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,KAAK,cAAc;AACrB,qBAAa,KAAK,YAAY;AAC9B,aAAK,eAAe;AAAA,MACrB;AAAA,IACF,GALkB;AAAA,EAMpB;AAAA,EACD,UAAU;AAAA,IACR,eAAe,gCAAS,gBAAgB;AACtC,aAAO;AAAA,QACL,MAAM,CAAC,KAAK,YAAYiD;AAAAA,QACxB,SAAS,CAAC,KAAK,eAAeC;AAAAA,QAC9B,MAAM,CAAC,KAAK,YAAYC;AAAAA,QACxB,OAAO,CAAC,KAAK,aAAaC;AAAAA,MAClC,EAAQ,KAAK,QAAQ,QAAQ;AAAA,IACxB,GAPc;AAAA,IAQf,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,QAAQ;AAAA,IACtF,GAFe;AAAA,EAGjB;AAAA,EACD,YAAY;AAAA,IACV,WAAWC;AAAAA,IACX,gBAAgBJ;AAAAA,IAChB,WAAWC;AAAAA,IACX,yBAAyBC;AAAAA,IACzB,iBAAiBC;AAAAA,EAClB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAU/C,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUuB,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,IAAI1C,eAAa,CAAC,YAAY;AAC9B,SAASoE,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,QAAQ,UAAU;AAAA,IACvD,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,EACnB,GAAK,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,UAAU,aAAa,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,SAAS,GAAG;AAAA,IACpI,KAAK;AAAA,IACL,SAAS,OAAO;AAAA,IAChB,eAAe,SAAS;AAAA,EACzB,GAAE,MAAM,GAAG,CAAC,WAAW,eAAe,CAAC,MAAM,aAAa,mBAAmB,OAAO,WAAW;AAAA,IAC9F,KAAK;AAAA,IACL,SAAS,CAAC,KAAK,GAAG,gBAAgB,GAAG,OAAO,QAAQ,iBAAiB;AAAA,EACtE,GAAE,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,WAAW,aAAa,mBAAmB,UAAU;AAAA,IACtG,KAAK;AAAA,EACN,GAAE,EAAE,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,cAAc,OAAO,UAAU,cAAc,OAAO,UAAU,OAAO,OAAO,UAAU,OAAO,SAAS,iBAAiB,SAAS,cAAc,OAAO,SAAS,gBAAgB,MAAM,GAAG,WAAW;AAAA,IACvQ,SAAS,KAAK,GAAG,aAAa;AAAA,EAC/B,GAAE,KAAK,IAAI,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAIjE,gBAAmB,OAAO,WAAW;AAAA,IACvF,SAAS,KAAK,GAAG,aAAa;AAAA,EAClC,GAAK,KAAK,IAAI,aAAa,CAAC,GAAG,CAACA,gBAAmB,QAAQ,WAAW;AAAA,IAClE,SAAS,KAAK,GAAG,SAAS;AAAA,EAC3B,GAAE,KAAK,IAAI,SAAS,CAAC,GAAG,gBAAgB,OAAO,QAAQ,OAAO,GAAG,EAAE,GAAGA,gBAAmB,OAAO,WAAW;AAAA,IAC1G,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC7B,GAAK,KAAK,IAAI,QAAQ,CAAC,GAAG,gBAAgB,OAAO,QAAQ,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,OAAO,GAAG;AAAA,IAC9J,KAAK;AAAA,IACL,SAAS,OAAO;AAAA,EACpB,GAAK,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,QAAQ,aAAa,SAAS,UAAW,GAAE,mBAAmB,OAAO,eAAe,WAAW;AAAA,IAC/H,KAAK;AAAA,EACN,GAAE,KAAK,IAAI,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,UAAW,GAAE,mBAAmB,UAAU,WAAW;AAAA,IACtG,SAAS,KAAK,GAAG,aAAa;AAAA,IAC9B,MAAM;AAAA,IACN,cAAc,SAAS;AAAA,IACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,gBAAgB,SAAS,aAAa,MAAM,UAAU,SAAS;AAAA,IACrF;AAAA,IACI,WAAW;AAAA,EACf,GAAK,gBAAgB,gBAAgB,IAAI,OAAO,gBAAgB,GAAG,KAAK,IAAI,aAAa,CAAC,CAAC,GAAG,EAAE,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,aAAa,WAAW,GAAG,WAAW;AAAA,IACpM,SAAS,CAAC,KAAK,GAAG,WAAW,GAAG,OAAO,SAAS;AAAA,EACjD,GAAE,KAAK,IAAI,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,GAAI,IAAIH,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE;AAC/I;AAxCSoE;AA0CT/E,WAAS,SAAS+E;AAElB,SAAS,mBAAmB,GAAG;AAAE,SAAO,mBAAmB,CAAC,KAAK,iBAAiB,CAAC,KAAK,4BAA4B,CAAC,KAAK,mBAAoB;AAAG;AAAxI;AACT,SAAS,qBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArL;AACT,SAAS,4BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAO,kBAAkB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjX;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxI;AACT,SAAS,mBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAO,kBAAkB,CAAC;AAAI;AAA5E;AACT,SAAS,kBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA3I;AACT,IAAI,aAAa;AACjB,IAAI5E,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWsE;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,SAAS,UAAU;AAAA,EAC3B,MAAM,gCAASlD,QAAO;AACpB,WAAO;AAAA,MACL,UAAU,CAAE;AAAA,IAClB;AAAA,EACG,GAJK;AAAA,EAKN,cAAc;AAAA,EACd,SAAS,gCAASC,WAAU;AAC1B,kBAAc,GAAG,OAAO,KAAK,KAAK;AAClC,kBAAc,GAAG,UAAU,KAAK,QAAQ;AACxC,kBAAc,GAAG,gBAAgB,KAAK,aAAa;AACnD,kBAAc,GAAG,qBAAqB,KAAK,iBAAiB;AAC5D,QAAI,KAAK,aAAa;AACpB,WAAK,YAAW;AAAA,IACjB;AAAA,EACF,GARQ;AAAA,EAST,eAAe,gCAASC,iBAAgB;AACtC,SAAK,aAAY;AACjB,QAAI,KAAK,MAAM,aAAa,KAAK,YAAY;AAC3C,aAAO,MAAM,KAAK,MAAM,SAAS;AAAA,IAClC;AACD,kBAAc,IAAI,OAAO,KAAK,KAAK;AACnC,kBAAc,IAAI,UAAU,KAAK,QAAQ;AACzC,kBAAc,IAAI,gBAAgB,KAAK,aAAa;AACpD,kBAAc,IAAI,qBAAqB,KAAK,iBAAiB;AAAA,EAC9D,GATc;AAAA,EAUf,SAAS;AAAA,IACP,KAAK,gCAAS,IAAIuD,UAAS;AACzB,UAAIA,SAAQ,MAAM,MAAM;AACtB,QAAAA,SAAQ,KAAK;AAAA,MACd;AACD,WAAK,WAAW,CAAE,EAAC,OAAO,mBAAmB,KAAK,QAAQ,GAAG,CAACA,QAAO,CAAC;AAAA,IACvE,GALI;AAAA,IAML,QAAQ,gCAAS,OAAO,QAAQ;AAC9B,UAAI,QAAQ,KAAK,SAAS,UAAU,SAAU,GAAG;AAC/C,eAAO,EAAE,OAAO,OAAO,QAAQ;AAAA,MACvC,CAAO;AACD,UAAI,UAAU,IAAI;AAChB,aAAK,SAAS,OAAO,OAAO,CAAC;AAC7B,aAAK,MAAM,OAAO,MAAM;AAAA,UACtB,SAAS,OAAO;AAAA,QAC1B,CAAS;AAAA,MACF;AAAA,IACF,GAVO;AAAA,IAWR,OAAO,gCAAS,MAAMA,UAAS;AAC7B,UAAI,KAAK,SAASA,SAAQ,OAAO;AAC/B,aAAK,IAAIA,QAAO;AAAA,MACjB;AAAA,IACF,GAJM;AAAA,IAKP,UAAU,gCAAS,SAASA,UAAS;AACnC,WAAK,OAAO;AAAA,QACV,SAASA;AAAA,QACT,MAAM;AAAA,MACd,CAAO;AAAA,IACF,GALS;AAAA,IAMV,eAAe,gCAAS,cAAc,OAAO;AAC3C,UAAI,KAAK,UAAU,OAAO;AACxB,aAAK,WAAW;MACjB;AAAA,IACF,GAJc;AAAA,IAKf,mBAAmB,gCAAS,oBAAoB;AAC9C,WAAK,WAAW;IACjB,GAFkB;AAAA,IAGnB,SAAS,gCAAS,UAAU;AAC1B,WAAK,MAAM,UAAU,aAAa,KAAK,mBAAmB,EAAE;AAC5D,UAAI,KAAK,YAAY;AACnB,eAAO,IAAI,SAAS,KAAK,MAAM,WAAW,KAAK,cAAc,KAAK,UAAU,OAAO,OAAO,KAAK;AAAA,MAChG;AAAA,IACF,GALQ;AAAA,IAMT,SAAS,gCAAS,UAAU;AAC1B,UAAI,QAAQ;AACZ,UAAI,KAAK,MAAM,aAAa,KAAK,cAAc,QAAQ,KAAK,QAAQ,GAAG;AACrE,mBAAW,WAAY;AACrB,iBAAO,MAAM,MAAM,MAAM,SAAS;AAAA,QACnC,GAAE,GAAG;AAAA,MACP;AAAA,IACF,GAPQ;AAAA,IAQT,aAAa,gCAAS,cAAc;AAClC,UAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK,YAAY;AAC1C,YAAI;AACJ,aAAK,eAAe,SAAS,cAAc,OAAO;AAClD,aAAK,aAAa,OAAO;AACzB,qBAAa,KAAK,cAAc,UAAU,kBAAkB,KAAK,eAAe,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,YAAY,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,SAAS,QAAQ,oBAAoB,SAAS,SAAS,gBAAgB,KAAK;AAC1T,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,YAAI,YAAY;AAChB,iBAAS,cAAc,KAAK,aAAa;AACvC,cAAI,kBAAkB;AACtB,mBAAS,aAAa,KAAK,YAAY,UAAU,GAAG;AAClD,+BAAmB,YAAY,MAAM,KAAK,YAAY,UAAU,EAAE,SAAS,IAAI;AAAA,UAChF;AACD,uBAAa,2DAA2D,OAAO,YAAY,4CAA4C,EAAE,OAAO,KAAK,mBAAmB,uCAAuC,EAAE,OAAO,iBAAiB,kFAAkF;AAAA,QAC5T;AACD,aAAK,aAAa,YAAY;AAAA,MAC/B;AAAA,IACF,GAjBY;AAAA,IAkBb,cAAc,gCAAS,eAAe;AACpC,UAAI,KAAK,cAAc;AACrB,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,aAAK,eAAe;AAAA,MACrB;AAAA,IACF,GALa;AAAA,EAMf;AAAA,EACD,UAAU;AAAA,IACR,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,kBAAiB;AAAA,IACzB,GAFkB;AAAA,EAGpB;AAAA,EACD,YAAY;AAAA,IACV,cAAchF;AAAAA,IACd,QAAQ+C;AAAAA,EACT;AACH;AAEA,SAASI,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUrB,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIqB,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASC,UAAQ,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUC,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAtPD;AACT,SAASE,gBAAc,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAIF,UAAQ,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUC,IAAG;AAAEE,wBAAgB,GAAGF,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAID,UAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUC,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAA9aC;AACT,SAASC,kBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3KD;AACT,SAASC,iBAAe,GAAG;AAAE,MAAI,IAAIC,eAAa,GAAG,QAAQ;AAAG,SAAO,YAAYN,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASC,eAAa,GAAG,GAAG;AAAE,MAAI,YAAYN,UAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAYA,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnTM;AACT,SAASrD,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,0BAA0B,iBAAiB,cAAc;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,YAAY,mBAAmB,MAAM;AAAA,IACvD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAACU,gBAAmB,OAAO,WAAW;AAAA,QAC3C,KAAK;AAAA,QACL,SAAS,KAAK,GAAG,MAAM;AAAA,QACvB,OAAO,KAAK,GAAG,QAAQ,MAAM;AAAA,UAC3B,UAAU,KAAK;AAAA,QACzB,CAAS;AAAA,MACT,GAAS,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,YAAY,iBAAiB,WAAW;AAAA,QAC9D,MAAM;AAAA,QACN,KAAK;AAAA,QACL,SAAS,SAAS;AAAA,QAClB,SAAS,SAAS;AAAA,MAC1B,GAASwC,gBAAc,CAAA,GAAI,KAAK,IAAI,YAAY,CAAC,CAAC,GAAG;AAAA,QAC7C,WAAW,QAAQ,WAAY;AAC7B,iBAAO,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,MAAM,UAAU,SAAU,KAAK;AACrG,mBAAO,UAAS,GAAI,YAAY,yBAAyB;AAAA,cACvD,KAAK,IAAI;AAAA,cACT,SAAS;AAAA,cACT,WAAW,KAAK;AAAA,cAChB,WAAW,KAAK;AAAA,cAChB,UAAU,KAAK;AAAA,cACf,UAAU,KAAK;AAAA,cACf,WAAW,KAAK;AAAA,cAChB,aAAa,KAAK;AAAA,cAClB,kBAAkB,KAAK;AAAA,cACvB,UAAU,KAAK;AAAA,cACf,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,uBAAO,SAAS,OAAO,MAAM;AAAA,cAC7C;AAAA,cACc,IAAI,KAAK;AAAA,YACV,GAAE,MAAM,GAAG,CAAC,WAAW,aAAa,aAAa,YAAY,YAAY,aAAa,eAAe,oBAAoB,YAAY,IAAI,CAAC;AAAA,UACvJ,CAAW,GAAG,GAAG;QACjB,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;AAAA,IAC1C,CAAK;AAAA,IACD,GAAG;AAAA,EACP,CAAG;AACH;AA1CSlD;AA4CTD,SAAO,SAASC;;;;ACjYhB,UAAM,QAAQ;AACd,UAAM,aAAa;AACnB,UAAM,eAAe;AAErB;AAAA,MACE,MAAM,WAAW;AAAA,MACjB,CAAC,gBAAgB;AACX,YAAA,YAAY,WAAW,GAAG;AAC5B;AAAA,QACF;AAEY,oBAAA,QAAQ,CAAC4E,aAAY;AAC/B,gBAAM,IAAIA,QAAO;AAAA,QAAA,CAClB;AACD,mBAAW,gBAAgB;MAC7B;AAAA,MACA,EAAE,MAAM,KAAK;AAAA,IAAA;AAGf;AAAA,MACE,MAAM,WAAW;AAAA,MACjB,CAAC,qBAAqB;AAChB,YAAA,iBAAiB,WAAW,GAAG;AACjC;AAAA,QACF;AAEiB,yBAAA,QAAQ,CAACA,aAAY;AACpC,gBAAM,OAAOA,QAAO;AAAA,QAAA,CACrB;AACD,mBAAW,mBAAmB;MAChC;AAAA,MACA,EAAE,MAAM,KAAK;AAAA,IAAA;AAGf;AAAA,MACE,MAAM,WAAW;AAAA,MACjB,CAAC,cAAc;AACb,YAAI,WAAW;AACb,gBAAM,gBAAgB;AACtB,qBAAW,qBAAqB;AAAA,QAClC;AAAA,MACF;AAAA,IAAA;AAGF,aAAS,sBAAsB;AAC7B,YAAM,eACJ,SAAS,eAAe,qBAAqB,KAAK,mBAAmB;AACvE,YAAM,OAAO,SACV,cAAc,yBAAyB,EACvC,sBAAsB;AACzB,mBAAa,cAAc;AAAA;AAAA,aAEhB,KAAK,MAAM,EAAE;AAAA,eACX,OAAO,cAAc,KAAK,OAAO,KAAK,SAAS,EAAE;AAAA;AAAA;AAAA,IAGhE;AAZS;AAcT,aAAS,qBAAqB;AACtB,YAAA,QAAQ,SAAS,cAAc,OAAO;AAC5C,YAAM,KAAK;AACF,eAAA,KAAK,YAAY,KAAK;AACxB,aAAA;AAAA,IACT;AALS;AAOT;AAAA,MACE,MAAM,aAAa,IAAI,kBAAkB;AAAA,MACzC,MAAM,SAAS,mBAAmB;AAAA,MAClC,EAAE,WAAW,KAAK;AAAA,IAAA;AAEpB;AAAA,MACE,MAAM,aAAa,IAAI,wBAAwB;AAAA,MAC/C,MAAM,SAAS,mBAAmB;AAAA,MAClC,EAAE,WAAW,KAAK;AAAA,IAAA;;;;;;;;;ACrEpB,UAAM,eAAe;AAEf,UAAA,qBAAqB,wBAAC,UAA6B;AACnD,UAAA,aAAa,IAAI,iCAAiC,GAAG;AACvD,cAAM,eAAe;AACd,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA,GALkB;AAQ3B,cAAU,MAAM;AACP,aAAA,iBAAiB,gBAAgB,kBAAkB;AAAA,IAAA,CAC3D;AAED,oBAAgB,MAAM;AACb,aAAA,oBAAoB,gBAAgB,kBAAkB;AAAA,IAAA,CAC9D;;;;;;AClBD,MAAM,gBAAgB;AACtB,MAAM,eAAe;;;;AAErB,UAAM,iBAAiB;AACvB,UAAM,gBAAgB;AAAA,MAAS,MAC7B,eAAe,SAAS,KAAK,IAAI,eAAe,iBAAiB;AAAA,IAAA;AAGnE,UAAM,eAAe;AACrB,UAAM,kBAAkB;AAAA,MACtB,MAAM,aAAa,IAAI,kBAAkB,MAAM;AAAA,IAAA;AAGjD,UAAM,gBAAgB;AACtB,UAAM,gBAAgB;AAAA,MAAS,MAC7B,cAAc,gBAAgB,cAC9B,CAAC,cAAc,gBAAgB,cAC3B,OACA;AAAA,IAAA;AAEA,UAAA,mBAAmB,SAAS,MAAM;AAChC,YAAA,eAAe,cAAc,gBAAgB;AACnD,aAAO,eACH,cAAc,QAAQ,eAAe,eACrC;AAAA,IAAA,CACL;AAED,UAAM,qBAAqB;AAAA,MAAS,MAClC,eAAe,iBAAiB,eAAe,wBAC3C,GAAG,cAAc,KAAK,IAAI,eAAe,qBAAqB,MAAM,eAAe,cAAc,IAAI,KACrG;AAAA,IAAA;AAGN,UAAM,gBAAgB;AAAA,MACpB,MACE,cAAc,SACb,gBAAgB,QAAQ,iBAAiB,QAAQ;AAAA,IAAA;AAGtD,UAAM,QAAQ,SAAS,MAAM,mBAAmB,SAAS,cAAc,KAAK;AAC5E,aAAS,KAAK;;;;;;;;;;;;;;;;;;;;ACiBd,UAAM,QAAQ;AAIR,UAAA,EAAE,MAAM;AACd,UAAM,iBAAiB;AACvB,UAAM,gBAAgB;AAChB,UAAA,kBAAkB,IAAoB,IAAI;AAChD,UAAM,OAAO;AAEP,UAAA,kBAAkB,wBAAC,OAAOhD,YAAW;AACzC,sBAAgB,QAAQA;AACnB,WAAA,MAAM,KAAK,KAAK;AAAA,IAAA,GAFC;AAKlB,UAAA,mBAAmB,wBAAC,cAA6C;AAAA,MACrE,OAAO,SAAS;AAAA,MAChB;AAAA,IAAA,IAFuB;AAKzB,UAAM,UAAU;AAAA,MAA2B,MACzC,cAAc,cAAc,IAAI,gBAAgB;AAAA,IAAA;AAElD,UAAM,mBAAmB;AAAA,MAAgC,MACvD,cAAc,iBACV,iBAAiB,cAAc,cAA+B,IAC9D;AAAA,IAAA;AAEA,UAAA,mBAAmB,wBAACA,YAA2B;AAEnD,UAAI,CAACA,SAAQ;AACX;AAAA,MACF;AAEA,UAAI,iBAAiB,OAAO,UAAUA,QAAO,OAAO;AAClD;AAAA,MACF;AAEgB,sBAAA,aAAaA,QAAO,QAAQ;AAAA,IAAA,GAVrB;AAanB,UAAA,iBAAiB,8BAAOiD,aAA8B;AAC1D,iBAAW,OAAOA,UAAS;AACzB,YACE,CAAE,MAAM,gBAAgB,cAAc,IAAI,UAAU;AAAA,UAClD,eAAe,CAAC,eAAe;AAAA,QAAA,CAChC,GACD;AAEA;AAAA,QACF;AAAA,MACF;AAAA,IAAA,GAVqB;AAajB,UAAA,kBAAkB,wBAACjD,YAA2B;AACnC,qBAAA,CAACA,OAAM,CAAC;AAAA,IAAA,GADD;AAIlB,UAAA,mBAAmB,SAAS,MAAM;AACtC,YAAM,MAAM,gBAAgB;AACxB,UAAA,CAAC,IAAK,QAAO;AACX,YAAA,QAAQ,QAAQ,MAAM,UAAU,CAAC,MAAM,EAAE,aAAa,IAAI,QAAQ;AAEjE,aAAA;AAAA,QACL;AAAA,UACE,OAAO,EAAE,sBAAsB;AAAA,UAC/B,SAAS,6BAAM;AACG,4BAAA,kBAAkB,IAAI,QAAQ;AAAA,UAChD,GAFS;AAAA,QAGX;AAAA,QACA;AAAA,UACE,WAAW;AAAA,QACb;AAAA,QACA;AAAA,UACE,OAAO,EAAE,kBAAkB;AAAA,UAC3B,SAAS,6BAAM,gBAAgB,GAAG,GAAzB;AAAA,QACX;AAAA,QACA;AAAA,UACE,OAAO,EAAE,yBAAyB;AAAA,UAClC,SAAS,6BAAM,eAAe,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,GAAlD;AAAA,UACT,UAAU,SAAS;AAAA,QACrB;AAAA,QACA;AAAA,UACE,OAAO,EAAE,0BAA0B;AAAA,UACnC,SAAS,6BAAM,eAAe,QAAQ,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAnD;AAAA,UACT,UAAU,UAAU,QAAQ,MAAM,SAAS;AAAA,QAC7C;AAAA,QACA;AAAA,UACE,OAAO,EAAE,wBAAwB;AAAA,UACjC,SAAS,6BACP,eAAe;AAAA,YACb,GAAG,QAAQ,MAAM,MAAM,QAAQ,CAAC;AAAA,YAChC,GAAG,QAAQ,MAAM,MAAM,GAAG,KAAK;AAAA,UAAA,CAChC,GAJM;AAAA,UAKT,UAAU,QAAQ,MAAM,UAAU;AAAA,QACpC;AAAA,MAAA;AAAA,IACF,CACD;AAED,UAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvKrB,IAAIlC,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,iFAAiF,OAAO,GAAG,oBAAoB,GAAG,2BAA2B,EAAE,OAAO,GAAG,sBAAsB,GAAG,wBAAwB,EAAE,OAAO,GAAG,uBAAuB,GAAG,gBAAgB,EAAE,OAAO,GAAG,eAAe,GAAG,kBAAkB,EAAE,OAAO,GAAG,iBAAiB,GAAG,cAAc,EAAE,OAAO,GAAG,aAAa,GAAG,wUAAwU,EAAE,OAAO,GAAG,aAAa,GAAG,iGAAiG,EAAE,OAAO,GAAG,iCAAiC,GAAG,kHAAkH,EAAE,OAAO,GAAG,2BAA2B,GAAG,gEAAgE,EAAE,OAAO,GAAG,6BAA6B,GAAG,UAAU,EAAE,OAAO,GAAG,6BAA6B,GAAG,wBAAwB,EAAE,OAAO,GAAG,4BAA4B,GAAG,gBAAgB,EAAE,OAAO,GAAG,oBAAoB,GAAG,oNAAoN,EAAE,OAAO,GAAG,sBAAsB,GAAG,cAAc,EAAE,OAAO,GAAG,kBAAkB,GAAG,8IAA8I,EAAE,OAAO,GAAG,yBAAyB,GAAG,gDAAgD,EAAE,OAAO,GAAG,4BAA4B,GAAG,4CAA4C,EAAE,OAAO,GAAG,2BAA2B,GAAG,gBAAgB,EAAE,OAAO,GAAG,2BAA2B,GAAG,iBAAiB,EAAE,OAAO,GAAG,2BAA2B,GAAG,0EAA0E,EAAE,OAAO,GAAG,0BAA0B,GAAG,qBAAqB,EAAE,OAAO,GAAG,+BAA+B,GAAG,+FAA+F,EAAE,OAAO,GAAG,+BAA+B,GAAG,kGAAkG,EAAE,OAAO,GAAG,kCAAkC,GAAG,yFAAyF,EAAE,OAAO,GAAG,0BAA0B,GAAG,qBAAqB,EAAE,OAAO,GAAG,+BAA+B,GAAG,8GAA8G,EAAE,OAAO,GAAG,+BAA+B,GAAG,iHAAiH,EAAE,OAAO,GAAG,kCAAkC,GAAG,yEAAyE,EAAE,OAAO,GAAG,2BAA2B,GAAG,qBAAqB,EAAE,OAAO,GAAG,gCAAgC,GAAG,8FAA8F,EAAE,OAAO,GAAG,gCAAgC,GAAG,iGAAiG,EAAE,OAAO,GAAG,mCAAmC,GAAG,uIAAuI,EAAE,OAAO,GAAG,4BAA4B,GAAG,2BAA2B,EAAE,OAAO,GAAG,8BAA8B,GAAG,wBAAwB,EAAE,OAAO,GAAG,uBAAuB,GAAG,qBAAqB,EAAE,OAAO,GAAG,wBAAwB,GAAG,gBAAgB,EAAE,OAAO,GAAG,uBAAuB,GAAG,+CAA+C,EAAE,OAAO,GAAG,yBAAyB,GAAG,cAAc,EAAE,OAAO,GAAG,qBAAqB,GAAG,+EAA+E,EAAE,OAAO,GAAG,gCAAgC,GAAG,qZAAqZ,EAAE,OAAO,GAAG,4BAA4B,GAAG,iBAAiB,EAAE,OAAO,GAAG,4BAA4B,GAAG,yCAAyC,EAAE,OAAO,GAAG,6BAA6B,GAAG,2EAA2E,EAAE,OAAO,GAAG,qCAAqC,GAAG,gCAAgC,EAAE,OAAO,GAAG,6BAA6B,GAAG,UAAU,EAAE,OAAO,GAAG,6BAA6B,GAAG,kBAAkB,EAAE,OAAO,GAAG,6BAA6B,GAAG,iFAAiF,EAAE,OAAO,GAAG,mCAAmC,GAAG,qBAAqB,EAAE,OAAO,GAAG,wCAAwC,GAAG,6DAA6D,EAAE,OAAO,GAAG,yCAAyC,GAAG,kBAAkB,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,yBAAyB,EAAE,OAAO,GAAG,yCAAyC,GAAG,mPAAmP,EAAE,OAAO,GAAG,yBAAyB,GAAG,qBAAqB,EAAE,OAAO,GAAG,4BAA4B,GAAG,2BAA2B,EAAE,OAAO,GAAG,8BAA8B,GAAG,qBAAqB,EAAE,OAAO,GAAG,wBAAwB,GAAG,mHAAmH,EAAE,OAAO,GAAG,4BAA4B,GAAG,oIAAoI,EAAE,OAAO,GAAG,sBAAsB,GAAG,iWAAiW,EAAE,OAAO,GAAG,gCAAgC,GAAG,yuBAAyuB,EAAE,OAAO,GAAG,+BAA+B,GAAG,QAAQ;AACxkP,GAHY;AAIZ,IAAIkB,iBAAe;AAAA,EACjB,SAAS,gCAAS,QAAQ,OAAO;AAC/B,QAAI,WAAW,MAAM,UACnB,gBAAgB,MAAM;AACxB,WAAO;AAAA,MACL,SAAS,SAAS,aAAa,aAAa,IAAI,SAAS;AAAA,IAC/D;AAAA,EACG,GANQ;AAOX;AACA,IAAIjB,YAAU;AAAA,EACZ,MAAM,gCAASgB,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,yBAAyB;AAAA,MAC/B,oBAAoB,SAAS;AAAA,MAC7B,2BAA2B,SAAS;AAAA,IAC1C,CAAK;AAAA,EACF,GANK;AAAA,EAON,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,gBAAgB,MAAM;AACxB,WAAO,CAAC,kBAAkB;AAAA,MACxB,yBAAyB,SAAS,aAAa,aAAa;AAAA,MAC5D,WAAW,SAAS,cAAc,aAAa;AAAA,MAC/C,cAAc,SAAS,eAAe,aAAa;AAAA,IACzD,CAAK;AAAA,EACF,GARK;AAAA,EASN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,KAAK;AACP;AACA,IAAI,eAAe,UAAU,OAAO;AAAA,EAClC,MAAM;AAAA,EACN,OAAOjB;AAAAA,EACP,SAASC;AAAAA,EACT,cAAciB;AAChB,CAAC;ACrCD,IAAIyD,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWnE;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,YAAU;AAC1B,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWM;AAAAA,EACX,OAAO,CAAC,mBAAmB,cAAc,gBAAgB;AAAA,EACzD,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AAAA,IACP,WAAW,gCAAS,UAAU,eAAe;AAC3C,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,GAAG;AAAA,IAC5D,GAFU;AAAA,IAGX,YAAY,gCAAS,WAAW,eAAe;AAC7C,aAAO,KAAK,UAAU,aAAa;AAAA,IACpC,GAFW;AAAA,IAGZ,aAAa,gCAAS,YAAY,eAAe,MAAM,QAAQ;AAC7D,aAAO,iBAAiB,cAAc,OAAO,QAAQ,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;AAAA,IAC1F,GAFY;AAAA,IAGb,cAAc,gCAAS,aAAa,eAAe;AACjD,aAAO,KAAK,YAAY,eAAe,OAAO;AAAA,IAC/C,GAFa;AAAA,IAGd,gBAAgB,gCAAS,eAAe,eAAe;AACrD,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,KAAK,QAAQ;AAAA,IACtE,GAFe;AAAA,IAGhB,cAAc,gCAASsB,cAAa,eAAe,OAAO,KAAK;AAC7D,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,MAAM,cAAc;AAAA,UACpB;AAAA,UACA,QAAQ,KAAK,aAAa,aAAa;AAAA,UACvC,SAAS,KAAK,cAAc,aAAa;AAAA,UACzC,UAAU,KAAK,eAAe,aAAa;AAAA,UAC3C,OAAO,KAAK;AAAA,QACb;AAAA,MACT,CAAO;AAAA,IACF,GAXa;AAAA,IAYd,cAAc,gCAAS,aAAa,eAAe;AACjD,aAAO,KAAK,eAAe,KAAK,SAAU,MAAM;AAC9C,eAAO,KAAK,QAAQ,cAAc;AAAA,MAC1C,CAAO;AAAA,IACF,GAJa;AAAA,IAKd,eAAe,gCAAS,cAAc,eAAe;AACnD,aAAO,KAAK,YAAY,eAAe,SAAS,MAAM;AAAA,IACvD,GAFc;AAAA,IAGf,gBAAgB,gCAAS,eAAe,eAAe;AACrD,aAAO,KAAK,YAAY,eAAe,UAAU;AAAA,IAClD,GAFe;AAAA,IAGhB,eAAe,gCAAS,cAAc,eAAe;AACnD,aAAO,KAAK,kBAAkB,KAAK,UAAU,aAAa;AAAA,IAC3D,GAFc;AAAA,IAGf,aAAa,gCAAS,YAAY,eAAe;AAC/C,aAAO,WAAW,cAAc,KAAK;AAAA,IACtC,GAFY;AAAA,IAGb,aAAa,gCAAS,YAAY,OAAO,eAAe;AACtD,WAAK,YAAY,eAAe,WAAW;AAAA,QACzC,eAAe;AAAA,QACf,MAAM,cAAc;AAAA,MAC5B,CAAO;AACD,WAAK,MAAM,cAAc;AAAA,QACvB,eAAe;AAAA,QACf;AAAA,QACA,SAAS;AAAA,MACjB,CAAO;AAAA,IACF,GAVY;AAAA,IAWb,kBAAkB,gCAAS,iBAAiB,OAAO,eAAe;AAChE,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GALiB;AAAA,IAMlB,iBAAiB,gCAAS,gBAAgB,OAAO,eAAe;AAC9D,WAAK,MAAM,kBAAkB;AAAA,QAC3B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GALgB;AAAA,IAMjB,iBAAiB,gCAASsD,iBAAgB,OAAO;AAC/C,aAAO,QAAQ,KAAK,qBAAqB,MAAM,GAAG,KAAK,EAAE,SAAS;AAAA,IACnE,GAFgB;AAAA,IAGjB,kBAAkB,gCAAS,iBAAiB,eAAe,OAAO;AAChE,aAAO;AAAA,QACL,QAAQ,WAAW;AAAA,UACjB,SAAS,KAAK,GAAG,UAAU;AAAA,UAC3B,UAAU;AAAA,UACV,eAAe;AAAA,QAChB,GAAE,KAAK,aAAa,eAAe,OAAO,UAAU,CAAC;AAAA,QACtD,MAAM,WAAW;AAAA,UACf,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,KAAK,YAAY,eAAe,MAAM,CAAC;AAAA,QACvE,GAAE,KAAK,aAAa,eAAe,OAAO,UAAU,CAAC;AAAA,QACtD,OAAO,WAAW;AAAA,UAChB,SAAS,KAAK,GAAG,WAAW;AAAA,QAC7B,GAAE,KAAK,aAAa,eAAe,OAAO,WAAW,CAAC;AAAA,QACvD,aAAa,WAAW;AAAA,UACtB,SAAS,KAAK,GAAG,aAAa;AAAA,QAC/B,GAAE,KAAK,aAAa,eAAe,OAAO,aAAa,CAAC;AAAA,MACjE;AAAA,IACK,GAjBiB;AAAA,EAkBnB;AAAA,EACD,UAAU;AAAA,IACR,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,QAAQ;AACZ,aAAO,KAAK,MAAM,OAAO,SAAU,eAAe;AAChD,eAAO,MAAM,cAAc,aAAa,KAAK,MAAM,YAAY,eAAe,WAAW;AAAA,MACjG,CAAO;AAAA,IACF,GALqB;AAAA,IAMtB,gBAAgB,gCAAS,iBAAiB;AACxC,UAAI,SAAS;AACb,aAAO,KAAK,MAAM,OAAO,SAAU,eAAe;AAChD,eAAO,OAAO,cAAc,aAAa,KAAK,CAAC,OAAO,YAAY,eAAe,WAAW;AAAA,MAC7F,CAAA,EAAE;AAAA,IACJ,GALe;AAAA,EAMjB;AAAA,EACD,YAAY;AAAA,IACV,gBAAgBC;AAAAA,IAChB,eAAeC;AAAAA,EAChB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAIC,iBAAe,CAAC,MAAM,cAAc,iBAAiB,iBAAiB,iBAAiB,cAAc,gBAAgB,iBAAiB,iBAAiB,kBAAkB,iBAAiB;AAC9L,IAAIzE,eAAa,CAAC,WAAW,gBAAgB,aAAa;AAC1D,IAAIC,eAAa,CAAC,QAAQ,QAAQ;AAClC,IAAI6C,eAAa,CAAC,IAAI;AACtB,IAAIC,eAAa,CAAC,IAAI;AACtB,SAASoB,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,wBAAwB,iBAAiB,cAAc,IAAI;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IACtD,SAAS,OAAO,UAAU,IAAI,KAAK,GAAG,UAAU,IAAI,KAAK,GAAG,SAAS;AAAA,EACtE,GAAE,OAAO,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,OAAO,SAAU,eAAe,OAAO;AAClL,WAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,MAC/C,KAAK,SAAS,WAAW,aAAa;AAAA,IACvC,GAAE,CAAC,SAAS,cAAc,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,WAAW,KAAK,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,MACjJ,KAAK;AAAA,MACL,IAAI,SAAS,UAAU,aAAa;AAAA,MACpC,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,MAClD,SAAS,CAAC,KAAK,GAAG,QAAQ;AAAA,QACxB;AAAA,MACD,CAAA,GAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,MAChD,MAAM;AAAA,MACN,cAAc,SAAS,aAAa,aAAa;AAAA,MACjD,iBAAiB,SAAS,eAAe,aAAa,KAAK;AAAA,MAC3D,iBAAiB,SAAS,YAAY,aAAa,IAAI,SAAS,aAAa,aAAa,IAAI;AAAA,MAC9F,iBAAiB,SAAS,YAAY,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,IAAI,IAAI,SAAS;AAAA,MAC9G,cAAc,OAAO,QAAQ;AAAA,MAC7B,gBAAgB,SAAS;AAAA,MACzB,iBAAiB,SAAS,gBAAgB,KAAK;AAAA,MAC/C,SAAS;AAAA,IACV,GAAE,SAAS,aAAa,eAAe,OAAO,MAAM,GAAG;AAAA,MACtD,iBAAiB,SAAS,aAAa,aAAa;AAAA,MACpD,kBAAkB,SAAS,cAAc,aAAa;AAAA,MACtD,mBAAmB,SAAS,eAAe,aAAa;AAAA,IACzD,CAAA,GAAG,CAACjE,gBAAmB,OAAO,WAAW;AAAA,MACxC,SAAS,KAAK,GAAG,aAAa;AAAA,MAC9B,SAAS,gCAASmD,SAAQ,QAAQ;AAChC,eAAO,SAAS,YAAY,QAAQ,aAAa;AAAA,MAClD,GAFQ;AAAA,MAGT,cAAc,gCAAS,aAAa,QAAQ;AAC1C,eAAO,SAAS,iBAAiB,QAAQ,aAAa;AAAA,MACvD,GAFa;AAAA,MAGd,aAAa,gCAAS,YAAY,QAAQ;AACxC,eAAO,SAAS,gBAAgB,QAAQ,aAAa;AAAA,MACtD,GAFY;AAAA,MAGb,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,OAAO,gBAAgB,UAAW,GAAE,mBAAmB,KAAK,WAAW;AAAA,MACxJ,KAAK;AAAA,MACL,MAAM,SAAS,YAAY,eAAe,KAAK;AAAA,MAC/C,SAAS,KAAK,GAAG,UAAU;AAAA,MAC3B,QAAQ,SAAS,YAAY,eAAe,QAAQ;AAAA,MACpD,UAAU;AAAA,MACV,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,UAAU,YAAY,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,QAAQ,GAAG;AAAA,MACtK,KAAK;AAAA,MACL,MAAM,cAAc;AAAA,MACpB,SAAS,eAAe,KAAK,GAAG,UAAU,CAAC;AAAA,IACjD,GAAO,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC,KAAK,SAAS,YAAY,eAAe,MAAM,KAAK,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,MAClI,KAAK;AAAA,MACL,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,SAAS,YAAY,eAAe,MAAM,CAAC;AAAA,MAC1E,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,UAAU,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGnD,gBAAmB,QAAQ,WAAW;AAAA,MAC5I,IAAI,SAAS,eAAe,aAAa;AAAA,MACzC,SAAS,KAAK,GAAG,WAAW;AAAA,MAC5B,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,WAAW,CAAC,GAAG,gBAAgB,SAAS,aAAa,aAAa,CAAC,GAAG,IAAI4C,YAAU,GAAG,SAAS,YAAY,eAAe,OAAO,KAAK,UAAS,GAAI,mBAAmB,UAAU;AAAA,MAC9N,KAAK;AAAA,IACN,GAAE,CAAC,OAAO,UAAU,eAAe,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,WAAW,GAAG;AAAA,MAClH,KAAK;AAAA,MACL,MAAM,OAAO;AAAA,MACb,QAAQ,SAAS,aAAa,aAAa;AAAA,MAC3C,SAAS,eAAe,KAAK,GAAG,aAAa,CAAC;AAAA,IACpD,GAAO,MAAM,GAAG,CAAC,QAAQ,UAAU,OAAO,CAAC,MAAM,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,kBAAkB,gBAAgB,GAAG,WAAW;AAAA,MAC1J,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,aAAa;AAAA,MAC9B,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAI7C,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,IAAI,GAAG;AAAA,MACjP,KAAK;AAAA,MACL,MAAM,cAAc;AAAA,MACpB,MAAM,OAAO;AAAA,MACb,YAAY,SAAS,YAAY,eAAe,OAAO;AAAA,MACvD,OAAO,SAAS,aAAa,aAAa;AAAA,MAC1C,OAAO,SAAS,iBAAiB,eAAe,KAAK;AAAA,IACtD,GAAE,MAAM,GAAG,CAAC,QAAQ,QAAQ,cAAc,SAAS,OAAO,CAAC,EAAE,GAAG,IAAID,YAAU,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,aAAa,KAAK,aAAa,YAAY,uBAAuB;AAAA,MAChN,KAAK;AAAA,MACL,IAAI,SAAS,UAAU,aAAa,IAAI;AAAA,MACxC,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,MACN,OAAO,eAAe,KAAK,GAAG,WAAW,MAAM;AAAA,QAC7C;AAAA,MACR,CAAO,CAAC;AAAA,MACF,eAAe,OAAO;AAAA,MACtB,OAAO,cAAc;AAAA,MACrB,cAAc,OAAO;AAAA,MACrB,gBAAgB,OAAO;AAAA,MACvB,WAAW,OAAO;AAAA,MAClB,OAAO,OAAO,QAAQ;AAAA,MACtB,mBAAmB,SAAS,eAAe,aAAa;AAAA,MACxD,IAAI,KAAK;AAAA,MACT,UAAU,KAAK;AAAA,MACf,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,eAAO,KAAK,MAAM,cAAc,MAAM;AAAA,MAC9C;AAAA,MACM,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,iBAAiB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC3D,eAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,MAClD;AAAA,IACA,GAAO,MAAM,GAAG,CAAC,MAAM,UAAU,SAAS,iBAAiB,SAAS,gBAAgB,kBAAkB,aAAa,SAAS,mBAAmB,MAAM,UAAU,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIyE,cAAY,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,eAAe,WAAW,KAAK,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,MAC/X,KAAK;AAAA,MACL,IAAI,SAAS,UAAU,aAAa;AAAA,MACpC,SAAS,CAAC,KAAK,GAAG,WAAW,GAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,MAC5E,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,MAClD,MAAM;AAAA,MACN,SAAS;AAAA,IACV,GAAE,KAAK,IAAI,WAAW,CAAC,GAAG,MAAM,IAAI1B,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,EACtF,CAAA,GAAG,GAAG,KAAK,EAAE;AAChB;AAhHSoB;AAkHT/E,WAAS,SAAS+E;AAElB,IAAI5E,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWsE;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,SAAS,MAAM;AAAA,EACvB,oBAAoB;AAAA,EACpB,MAAM,gCAASlD,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,iBAAiB;AAAA,QACf,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,MACD,gBAAgB,CAAE;AAAA,MAClB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,cAAc;AAAA,IACpB;AAAA,EACG,GAfK;AAAA,EAgBN,OAAO;AAAA,IACL,aAAa,gCAAS+D,UAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,IAGb,gBAAgB,gCAAS,eAAe,SAAS;AAC/C,UAAI,WAAW,OAAO,GAAG;AACvB,aAAK,yBAAwB;AAC7B,aAAK,mBAAkB;AAAA,MAC/B,OAAa;AACL,aAAK,2BAA0B;AAC/B,aAAK,qBAAoB;AAAA,MAC1B;AAAA,IACF,GARe;AAAA,EASjB;AAAA,EACD,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS,gCAAS9D,WAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AACtC,SAAK,uBAAsB;AAAA,EAC5B,GAHQ;AAAA,EAIT,eAAe,gCAASC,iBAAgB;AACtC,SAAK,eAAe;AACpB,SAAK,2BAA0B;AAC/B,SAAK,qBAAoB;AACzB,SAAK,yBAAwB;AAC7B,QAAI,KAAK,WAAW;AAClB,aAAO,MAAM,KAAK,SAAS;AAAA,IAC5B;AACD,SAAK,YAAY;AAAA,EAClB,GATc;AAAA,EAUf,SAAS;AAAA,IACP,aAAa,gCAAS8D,aAAYlF,OAAM,MAAM;AAC5C,aAAOA,QAAO,QAAQA,MAAK,IAAI,CAAC,IAAI;AAAA,IACrC,GAFY;AAAA,IAGb,cAAc,gCAASmF,cAAanF,OAAM;AACxC,aAAO,KAAK,YAAYA,OAAM,OAAO;AAAA,IACtC,GAFa;AAAA,IAGd,gBAAgB,gCAASoF,gBAAepF,OAAM;AAC5C,aAAO,KAAK,YAAYA,OAAM,UAAU;AAAA,IACzC,GAFe;AAAA,IAGhB,eAAe,gCAASqF,eAAcrF,OAAM;AAC1C,aAAO,KAAK,YAAYA,OAAM,SAAS,MAAM;AAAA,IAC9C,GAFc;AAAA,IAGf,aAAa,gCAASsF,aAAYtF,OAAM;AACtC,aAAO,WAAW,KAAK,YAAYA,OAAM,OAAO,CAAC;AAAA,IAClD,GAFY;AAAA,IAGb,iBAAiB,gCAAS,gBAAgBA,OAAM;AAC9C,aAAO,KAAK,YAAYA,OAAM,WAAW;AAAA,IAC1C,GAFgB;AAAA,IAGjB,wBAAwB,gCAAS,uBAAuB,eAAe;AACrE,aAAO,gBAAgB,KAAK,aAAa,cAAc,IAAI,IAAI;AAAA,IAChE,GAFuB;AAAA,IAGxB,uBAAuB,gCAAS,sBAAsB,eAAe;AACnE,aAAO,iBAAiB,WAAW,cAAc,KAAK;AAAA,IACvD,GAFsB;AAAA,IAGvB,QAAQ,gCAAS,OAAO,OAAO;AAC7B,UAAI,QAAQ;AACZ,UAAI,KAAK,cAAc;AACrB,aAAK,eAAe;AACpB,eAAO,MAAM,KAAK,OAAO;AACzB,aAAK,KAAI;AAAA,MACjB,OAAa;AACL,aAAK,eAAe;AACpB,eAAO,IAAI,QAAQ,KAAK,SAAS,KAAK,UAAU,OAAO,OAAO,IAAI;AAClE,mBAAW,WAAY;AACrB,gBAAM,KAAI;AAAA,QACX,GAAE,CAAC;AAAA,MACL;AACD,WAAK,yBAAwB;AAC7B,YAAM,eAAc;AAAA,IACrB,GAfO;AAAA,IAgBR,MAAM,gCAASuF,QAAO;AACpB,YAAM,KAAK,OAAO;AAAA,IACnB,GAFK;AAAA,IAGN,MAAM,gCAASC,MAAK,OAAO,SAAS;AAClC,UAAI,SAAS;AACb,UAAI,KAAK,cAAc;AACrB,aAAK,eAAe;AACpB,mBAAW,WAAY;AACrB,gBAAM,OAAO,MAAM,UAAU;AAAA,QAC9B,GAAE,CAAC;AAAA,MACL;AACD,WAAK,iBAAiB;AACtB,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,iBAAW,MAAM,KAAK,OAAO;AAC7B,WAAK,QAAQ;AAAA,IACd,GAhBK;AAAA,IAiBN,SAAS,gCAAS3D,SAAQ,OAAO;AAC/B,WAAK,UAAU;AACf,WAAK,kBAAkB,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB;AAAA,QAChF,OAAO,KAAK,0BAA2B;AAAA,QACvC,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GARQ;AAAA,IAST,QAAQ,gCAAS4D,QAAO,OAAO;AAC7B,WAAK,UAAU;AACf,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,WAAK,cAAc;AACnB,WAAK,QAAQ;AACb,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB,GAVO;AAAA,IAWR,WAAW,gCAASC,WAAU,OAAO;AACnC,UAAI,UAAU,MAAM,WAAW,MAAM;AACrC,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,aAAa,KAAK;AACvB;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,gBAAgB,KAAK;AAC1B;AAAA,QACF,KAAK;AACH,eAAK,UAAU,KAAK;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAEH;AAAA,QACF;AACE,cAAI,CAAC,WAAW,qBAAqB,MAAM,GAAG,GAAG;AAC/C,iBAAK,YAAY,OAAO,MAAM,GAAG;AAAA,UAClC;AACD;AAAA,MACH;AAAA,IACF,GA/CU;AAAA,IAgDX,cAAc,gCAAS,aAAa,OAAO;AACzC,UAAI,gBAAgB,MAAM,eACxB,UAAU,MAAM;AAClB,UAAI,QAAQ,aAAa,EAAG;AAC5B,UAAI,QAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc,WAC1B,QAAQ,cAAc;AACxB,UAAI,UAAU,WAAW,KAAK;AAC9B,UAAIC,kBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC3D,eAAO,EAAE,cAAc,aAAa,EAAE,cAAc;AAAA,MAC5D,CAAO;AACD,iBAAWA,gBAAe,KAAK,aAAa;AAC5C,WAAK,kBAAkB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,MACR;AACM,WAAK,iBAAiBA;AACtB,kBAAY,KAAK,QAAQ;AACzB,iBAAW,MAAM,KAAK,OAAO;AAAA,IAC9B,GAtBa;AAAA,IAuBd,aAAa,gCAASC,aAAY,OAAO;AACvC,UAAI,gBAAgB,MAAM,eACxB,gBAAgB,MAAM;AACxB,UAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,UAAIlF,SAAO,QAAQ,cAAc,MAAM;AACvC,UAAI,WAAW,KAAK,WAAW,aAAa;AAC5C,UAAI,UAAU;AACZ,YAAI,QAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc;AAC5B,aAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,iBAAO,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,GAAG;AAAA,QACtD,CAAS;AACD,aAAK,kBAAkB;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,aAAK,QAAQ,CAACA;AACd,cAAM,KAAK,OAAO;AAAA,MAC1B,OAAa;AACL,YAAI,SAAS;AACX,eAAK,aAAa,KAAK;AAAA,QACjC,OAAe;AACL,cAAI,oBAAoBA,SAAO,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACnF,mBAAO,EAAE,cAAc;AAAA,UACnC,CAAW;AACD,eAAK,KAAK,aAAa;AACvB,eAAK,uBAAuB,eAAe,oBAAoB,kBAAkB,QAAQ,EAAE;AAC3F,eAAK,eAAe;AACpB,gBAAM,KAAK,OAAO;AAAA,QACnB;AAAA,MACF;AAAA,IACF,GAlCY;AAAA,IAmCb,kBAAkB,gCAASmF,kBAAiB,OAAO;AACjD,UAAI,KAAK,OAAO;AACd,aAAK,aAAa,KAAK;AAAA,MACxB;AAAA,IACF,GAJiB;AAAA,IAKlB,iBAAiB,gCAASC,iBAAgB,OAAO;AAC/C,UAAI,KAAK,SAAS;AAChB,aAAK,uBAAuB,OAAO,MAAM,cAAc,KAAK;AAAA,MAC7D;AAAA,IACF,GAJgB;AAAA,IAKjB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,WAAK,OAAO,KAAK;AAAA,IAClB,GAFgB;AAAA,IAGjB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,OAAC,MAAM,SAAS,WAAW,MAAM,SAAS,iBAAiB,MAAM,SAAS,YAAY,KAAK,gBAAgB,KAAK;AAAA,IACjH,GAFkB;AAAA,IAGnB,gBAAgB,gCAASC,gBAAe,OAAO;AAC7C,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAIrF,SAAO,gBAAgB,QAAQ,cAAc,MAAM,IAAI;AAC3D,UAAIA,QAAM;AACR,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,YAAI,SAAS;AACX,eAAK,aAAa;AAAA,YAChB,eAAe;AAAA,YACf;AAAA,UACZ,CAAW;AACD,eAAK,kBAAkB;AAAA,YACrB,OAAO;AAAA,YACP,WAAW,cAAc;AAAA,UACrC;AACU,eAAK,gBAAgB,KAAK;AAAA,QAC3B;AAAA,MACT,OAAa;AACL,YAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,0BAAyB;AACvI,aAAK,uBAAuB,OAAO,SAAS;AAAA,MAC7C;AACD,YAAM,eAAc;AAAA,IACrB,GArBe;AAAA,IAsBhB,cAAc,gCAASsF,cAAa,OAAO;AACzC,UAAI,SAAS;AACb,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAItF,SAAO,QAAQ,cAAc,MAAM;AACvC,UAAIA,QAAM;AACR,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,YAAI,SAAS;AACX,eAAK,aAAa;AAAA,YAChB,eAAe;AAAA,YACf;AAAA,UACZ,CAAW;AACD,eAAK,kBAAkB;AAAA,YACrB,OAAO;AAAA,YACP,WAAW,cAAc;AAAA,UACrC;AACU,cAAI,YAAY,KAAK;AACrB,eAAK,uBAAuB,OAAO,SAAS;AAAA,QAC7C;AAAA,MACT,OAAa;AACL,YAAI,aAAa,KAAK,eAAe,KAAK,SAAU,GAAG;AACrD,iBAAO,EAAE,QAAQ,cAAc;AAAA,QACzC,CAAS;AACD,YAAI,KAAK,gBAAgB,UAAU,GAAG;AACpC,eAAK,kBAAkB;AAAA,YACrB,OAAO;AAAA,YACP,WAAW,aAAa,WAAW,YAAY;AAAA,UAC3D;AACU,eAAK,cAAc;AACnB,eAAK,eAAe,KAAK;AACzB,eAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,mBAAO,EAAE,cAAc,OAAO,gBAAgB;AAAA,UAC1D,CAAW;AAAA,QACX,OAAe;AACL,cAAI,aAAa,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,yBAAwB;AACvI,eAAK,uBAAuB,OAAO,UAAU;AAAA,QAC9C;AAAA,MACF;AACD,YAAM,eAAc;AAAA,IACrB,GAtCa;AAAA,IAuCd,gBAAgB,gCAASoB,gBAAe,OAAO;AAC7C,UAAI,SAAS;AACb,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,aAAa,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACrE,eAAO,EAAE,QAAQ,cAAc;AAAA,MAChC,CAAA,IAAI;AACL,UAAI,YAAY;AACd,aAAK,aAAa;AAAA,UAChB,eAAe;AAAA,UACf,eAAe;AAAA,QACzB,CAAS;AACD,aAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,iBAAO,EAAE,cAAc,OAAO,gBAAgB;AAAA,QACxD,CAAS;AACD,cAAM,eAAc;AAAA,MAC5B,OAAa;AACL,YAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,yBAAwB;AACtI,aAAK,uBAAuB,OAAO,SAAS;AAC5C,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GApBe;AAAA,IAqBhB,iBAAiB,gCAASC,iBAAgB,OAAO;AAC/C,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,aAAa,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACrE,eAAO,EAAE,QAAQ,cAAc;AAAA,MAChC,CAAA,IAAI;AACL,UAAI,YAAY;AACd,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,YAAI,SAAS;AACX,eAAK,aAAa;AAAA,YAChB,eAAe;AAAA,YACf;AAAA,UACZ,CAAW;AACD,eAAK,kBAAkB;AAAA,YACrB,OAAO;AAAA,YACP,WAAW,cAAc;AAAA,UACrC;AACU,eAAK,eAAe,KAAK;AAAA,QAC1B;AAAA,MACT,OAAa;AACL,YAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,0BAAyB;AACvI,aAAK,uBAAuB,OAAO,SAAS;AAC5C,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAvBgB;AAAA,IAwBjB,WAAW,gCAASC,WAAU,OAAO;AACnC,WAAK,uBAAuB,OAAO,KAAK,mBAAoB,CAAA;AAC5D,YAAM,eAAc;AAAA,IACrB,GAHU;AAAA,IAIX,UAAU,gCAASC,UAAS,OAAO;AACjC,WAAK,uBAAuB,OAAO,KAAK,kBAAmB,CAAA;AAC3D,YAAM,eAAc;AAAA,IACrB,GAHS;AAAA,IAIV,YAAY,gCAASG,YAAW,OAAO;AACrC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,UAAU,WAAW,KAAK,SAAS,UAAW,OAAO,GAAG,OAAO,KAAK,aAAa,GAAG,IAAK,CAAC;AAC9F,YAAI,gBAAgB,WAAW,WAAW,SAAS,+BAA+B;AAClF,wBAAgB,cAAc,MAAK,IAAK,WAAW,QAAQ;AAC3D,YAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,SAAC,YAAY,KAAK,gBAAgB,QAAQ,KAAK,0BAAyB;AAAA,MACzE;AACD,YAAM,eAAc;AAAA,IACrB,GAVW;AAAA,IAWZ,YAAY,gCAAS,WAAW,OAAO;AACrC,WAAK,WAAW,KAAK;AAAA,IACtB,GAFW;AAAA,IAGZ,aAAa,gCAAS6D,aAAY,OAAO;AACvC,UAAI,KAAK,gBAAgB,UAAU,GAAG;AACpC,YAAI,mBAAmB,KAAK;AAC5B,aAAK,KAAK,OAAO,KAAK;AACtB,aAAK,kBAAkB;AAAA,UACrB,OAAO,OAAO,iBAAiB,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,UACtD,OAAO;AAAA,UACP,WAAW;AAAA,QACrB;AAAA,MACO;AACD,YAAM,eAAc;AAAA,IACrB,GAXY;AAAA,IAYb,UAAU,gCAASC,UAAS,OAAO;AACjC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,SAAC,WAAW,KAAK,aAAa;AAAA,UAC5B,eAAe;AAAA,UACf;AAAA,QACV,CAAS;AAAA,MACF;AACD,WAAK,KAAI;AAAA,IACV,GAVS;AAAA,IAWV,0BAA0B,gCAASC,4BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,qBAAqB,OAAO,aAAa,CAAC,OAAO,UAAU,SAAS,MAAM,MAAM;AACpF,cAAI,kBAAkB,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,UAAU,OAAO,OAAO,SAAS,MAAM,MAAM;AAC/G,cAAI,sBAAsB,iBAAiB;AACzC,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAZyB;AAAA,IAa1B,4BAA4B,gCAASC,8BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,oBAAoB,gCAASC,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,SAAU,OAAO;AACrC,cAAI,CAAC,cAAa,GAAI;AACpB,mBAAO,KAAK,OAAO,IAAI;AAAA,UACxB;AACD,iBAAO,eAAe;AAAA,QAChC;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAXmB;AAAA,IAYpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,wBAAwB,gCAAS,yBAAyB;AACxD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,oBAAoB;AAC5B,YAAI,QAAQ,WAAW,eAAe,OAAO,KAAK,YAAY,GAAG,CAAC;AAClE,aAAK,QAAQ;AACb,aAAK,eAAe,MAAM;AAC1B,aAAK,qBAAqB,WAAY;AACpC,iBAAO,eAAe,MAAM;AAC5B,iBAAO,eAAe;AAAA,QAChC;AACQ,aAAK,MAAM,iBAAiB,UAAU,KAAK,kBAAkB;AAAA,MAC9D;AAAA,IACF,GAZuB;AAAA,IAaxB,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,KAAK,oBAAoB;AAC3B,aAAK,MAAM,oBAAoB,UAAU,KAAK,kBAAkB;AAChE,aAAK,qBAAqB;AAAA,MAC3B;AAAA,IACF,GALyB;AAAA,IAM1B,eAAe,gCAAS,cAAc,eAAe;AACnD,UAAI;AACJ,aAAO,KAAK,YAAY,aAAa,OAAO,wBAAwB,KAAK,uBAAuB,aAAa,OAAO,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,kBAAmB,EAAC,WAAW,KAAK,YAAY,kBAAmB,CAAA;AAAA,IAClQ,GAHc;AAAA,IAIf,aAAa,gCAAS,YAAY,eAAe;AAC/C,aAAO,CAAC,CAAC,iBAAiB,CAAC,KAAK,eAAe,cAAc,IAAI,KAAK,CAAC,KAAK,gBAAgB,cAAc,IAAI,KAAK,KAAK,cAAc,cAAc,IAAI;AAAA,IACzJ,GAFY;AAAA,IAGb,qBAAqB,gCAAS,oBAAoB,eAAe;AAC/D,aAAO,KAAK,YAAY,aAAa,KAAK,KAAK,WAAW,aAAa;AAAA,IACxE,GAFoB;AAAA,IAGrB,YAAY,gCAASC,YAAW,eAAe;AAC7C,aAAO,KAAK,eAAe,KAAK,SAAU,GAAG;AAC3C,eAAO,EAAE,QAAQ,cAAc;AAAA,MACvC,CAAO;AAAA,IACF,GAJW;AAAA,IAKZ,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALmB;AAAA,IAMpB,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,SAAS;AACb,aAAO,cAAc,KAAK,cAAc,SAAU,eAAe;AAC/D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALkB;AAAA,IAMnB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,UAAI,UAAU;AACd,UAAI,mBAAmB,QAAQ,KAAK,aAAa,SAAS,IAAI,KAAK,aAAa,MAAM,QAAQ,CAAC,EAAE,UAAU,SAAU,eAAe;AAClI,eAAO,QAAQ,YAAY,aAAa;AAAA,MAChD,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmB,QAAQ,IAAI;AAAA,IAC/D,GANkB;AAAA,IAOnB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,UAAI,UAAU;AACd,UAAI,mBAAmB,QAAQ,IAAI,cAAc,KAAK,aAAa,MAAM,GAAG,KAAK,GAAG,SAAU,eAAe;AAC3G,eAAO,QAAQ,YAAY,aAAa;AAAA,MAChD,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmB;AAAA,IACnD,GANkB;AAAA,IAOnB,uBAAuB,gCAAS,wBAAwB;AACtD,UAAI,UAAU;AACd,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,QAAQ,oBAAoB,aAAa;AAAA,MACxD,CAAO;AAAA,IACF,GALsB;AAAA,IAMvB,2BAA2B,gCAAS,4BAA4B;AAC9D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,mBAAkB,IAAK;AAAA,IACxD,GAH0B;AAAA,IAI3B,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,kBAAiB,IAAK;AAAA,IACvD,GAHyB;AAAA,IAI1B,aAAa,gCAAS,YAAY,OAAO,OAAO;AAC9C,UAAI,UAAU;AACd,WAAK,eAAe,KAAK,eAAe,MAAM;AAC9C,UAAI,YAAY;AAChB,UAAI,UAAU;AACd,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,oBAAY,KAAK,aAAa,MAAM,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACjG,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AACD,oBAAY,cAAc,KAAK,KAAK,aAAa,MAAM,GAAG,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACvH,iBAAO,QAAQ,cAAc,aAAa;AAAA,QAC3C,CAAA,IAAI,YAAY,KAAK,gBAAgB;AAAA,MAC9C,OAAa;AACL,oBAAY,KAAK,aAAa,UAAU,SAAU,eAAe;AAC/D,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AAAA,MACF;AACD,UAAI,cAAc,IAAI;AACpB,kBAAU;AAAA,MACX;AACD,UAAI,cAAc,MAAM,KAAK,gBAAgB,UAAU,IAAI;AACzD,oBAAY,KAAK;MAClB;AACD,UAAI,cAAc,IAAI;AACpB,aAAK,uBAAuB,OAAO,SAAS;AAAA,MAC7C;AACD,UAAI,KAAK,eAAe;AACtB,qBAAa,KAAK,aAAa;AAAA,MAChC;AACD,WAAK,gBAAgB,WAAW,WAAY;AAC1C,gBAAQ,cAAc;AACtB,gBAAQ,gBAAgB;AAAA,MACzB,GAAE,GAAG;AACN,aAAO;AAAA,IACR,GAlCY;AAAA,IAmCb,wBAAwB,gCAAS,uBAAuB,OAAO,OAAO;AACpE,UAAI,KAAK,gBAAgB,UAAU,OAAO;AACxC,aAAK,gBAAgB,QAAQ;AAC7B,aAAK,aAAY;AAAA,MAClB;AAAA,IACF,GALuB;AAAA,IAMxB,cAAc,gCAASjE,gBAAe;AACpC,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAIC,MAAK,UAAU,KAAK,GAAG,OAAO,KAAK,IAAI,GAAG,EAAE,OAAO,KAAK,IAAI,KAAK;AACrE,UAAI,UAAU,WAAW,KAAK,SAAS,UAAW,OAAOA,KAAI,IAAK,CAAC;AACnE,UAAI,SAAS;AACX,gBAAQ,kBAAkB,QAAQ,eAAe;AAAA,UAC/C,OAAO;AAAA,UACP,QAAQ;AAAA,QAClB,CAAS;AAAA,MACF;AAAA,IACF,GAVa;AAAA,IAWd,sBAAsB,gCAAS,qBAAqB,OAAO;AACzD,UAAI,UAAU;AACd,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAI,SAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AACjF,UAAI,YAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACpF,UAAIiE,kBAAiB,CAAA;AACrB,eAAS,MAAM,QAAQ,SAAUxG,OAAM,OAAO;AAC5C,YAAI,OAAO,cAAc,KAAK,YAAY,MAAM,MAAM;AACtD,YAAI,UAAU;AAAA,UACZ,MAAMA;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,gBAAQ,OAAO,IAAI,QAAQ,qBAAqBA,MAAK,OAAO,QAAQ,GAAG,SAAS,GAAG;AACnF,QAAAwG,gBAAe,KAAK,OAAO;AAAA,MACnC,CAAO;AACD,aAAOA;AAAA,IACR,GApBqB;AAAA,IAqBtB,cAAc,gCAAS,aAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,YAAY,gCAAS,WAAW,IAAI;AAClC,WAAK,UAAU,KAAK,GAAG,MAAM;AAAA,IAC9B,GAFW;AAAA,EAGb;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,qBAAqB,KAAK,SAAS,CAAE,CAAA;AAAA,IAClD,GAFe;AAAA,IAGhB,cAAc,gCAAS,eAAe;AACpC,UAAI,UAAU;AACd,UAAI,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACxD,eAAO,EAAE,QAAQ,QAAQ,gBAAgB;AAAA,MACjD,CAAO;AACD,aAAO,gBAAgB,cAAc,QAAQ,KAAK;AAAA,IACnD,GANa;AAAA,IAOd,eAAe,gCAAS,gBAAgB;AACtC,aAAO,KAAK,gBAAgB,UAAU,KAAK,GAAG,OAAO,KAAK,EAAE,EAAE,OAAO,WAAW,KAAK,gBAAgB,SAAS,IAAI,MAAM,KAAK,gBAAgB,YAAY,IAAI,GAAG,EAAE,OAAO,KAAK,gBAAgB,KAAK,IAAI;AAAA,IACxM,GAFc;AAAA,EAGhB;AAAA,EACD,YAAY;AAAA,IACV,YAAY7G;AAAAA,IACZ,UAAU8G;AAAAA,EACX;AACH;AAEA,SAAS,QAAQ,GAAG;AAAE;AAA2B,SAAO,UAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUhF,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,QAAQ,CAAC;AAAI;AAArT;AACT,SAAS,QAAQ,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUuB,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAtP;AACT,SAAS,cAAc,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,sBAAgB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,QAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAA9a;AACT,SAAS,gBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,eAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3K;AACT,SAAS,eAAe,GAAG;AAAE,MAAI,IAAI,aAAa,GAAG,QAAQ;AAAG,SAAO,YAAY,QAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApG;AACT,SAAS,aAAa,GAAG,GAAG;AAAE,MAAI,YAAY,QAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,QAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnT;AACT,IAAI1C,eAAa,CAAC,iBAAiB,iBAAiB,iBAAiB,YAAY;AACjF,SAASP,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,sBAAsB,iBAAiB,UAAU;AACrD,MAAI,wBAAwB,iBAAiB,YAAY;AACzD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,KAAK,SAAS;AAAA,IACd,SAAS,KAAK,GAAG,MAAM;AAAA,EACxB,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,SAAS,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IAC7F,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,OAAO;AAAA,EACzB,GAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,OAAO,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,WAAW,KAAK,QAAQ,KAAK,OAAO,SAAS,WAAW,cAAc;AAAA,IACpK,IAAI,MAAM;AAAA,IACV,SAAS,eAAe,KAAK,GAAG,QAAQ,CAAC;AAAA,IACzC,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,aAAO,SAAS,gBAAgB,KAAK;AAAA,IACtC,GAFe;AAAA,EAGpB,GAAK,WAAY;AACb,QAAI;AACJ,WAAO,CAAC,KAAK,SAAS,KAAK,MAAM,SAAS,KAAK,UAAW,GAAE,mBAAmB,KAAK,WAAW;AAAA,MAC7F,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,KAAK,GAAG,QAAQ;AAAA,MACzB,iBAAiB,KAAK,MAAM,UAAU,KAAK,MAAM,SAAS,IAAI,OAAO;AAAA,MACrE,iBAAiB,MAAM;AAAA,MACvB,iBAAiB,MAAM;AAAA,MACvB,eAAe,wBAAwB,KAAK,UAAU,OAAO,OAAO,UAAU,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,MACxJ,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,eAAO,SAAS,gBAAgB,MAAM;AAAA,MAC9C;AAAA,MACM,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACrD,eAAO,SAAS,kBAAkB,MAAM;AAAA,MAChD;AAAA,IACA,GAAO,cAAc,cAAc,CAAA,GAAI,KAAK,WAAW,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,KAAK,OAAO,aAAa,eAAe,kBAAkB,CAAA,GAAI,WAAY;AAC7K,aAAO,CAAC,YAAY,qBAAqB,eAAe,mBAAmB,KAAK,IAAI,YAAY,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;AAAA,IACpH,CAAK,CAAC,GAAG,IAAIO,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,EACxD,CAAG,GAAG,YAAY,uBAAuB;AAAA,IACrC,KAAK,SAAS;AAAA,IACd,IAAI,MAAM,KAAK;AAAA,IACf,MAAM;AAAA,IACN,OAAO,SAAS;AAAA,IAChB,WAAW,KAAK;AAAA,IAChB,MAAM;AAAA,IACN,cAAc,MAAM;AAAA,IACpB,UAAU;AAAA,IACV,yBAAyB,MAAM,UAAU,SAAS,gBAAgB;AAAA,IAClE,QAAQ,MAAM;AAAA,IACd,eAAe,MAAM,UAAU,SAAS,gBAAgB;AAAA,IACxD,gBAAgB,MAAM;AAAA,IACtB,OAAO;AAAA,IACP,mBAAmB,KAAK;AAAA,IACxB,cAAc,KAAK;AAAA,IACnB,IAAI,KAAK;AAAA,IACT,UAAU,KAAK;AAAA,IACf,SAAS,SAAS;AAAA,IAClB,QAAQ,SAAS;AAAA,IACjB,WAAW,SAAS;AAAA,IACpB,aAAa,SAAS;AAAA,IACtB,kBAAkB,SAAS;AAAA,IAC3B,iBAAiB,SAAS;AAAA,EAC3B,GAAE,MAAM,GAAG,CAAC,MAAM,SAAS,aAAa,gBAAgB,yBAAyB,UAAU,iBAAiB,kBAAkB,mBAAmB,cAAc,MAAM,YAAY,WAAW,UAAU,aAAa,eAAe,oBAAoB,iBAAiB,CAAC,GAAG,KAAK,OAAO,OAAO,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,IAC/U,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,KAAK;AAAA,EAC1B,GAAK,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,KAAK,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AACjG;AAhESP;AAkETD,SAAO,SAASC;;;;;;;;;;;ACj9BhB,UAAM,eAAe;AACrB,UAAM,oBAAoB;AAAA,MAAS,MACjC,aAAa,IAAI,kBAAkB,MAAM,QAAQ,SAAS;AAAA,IAAA;AAG5D,UAAM,iBAAiB;AACjB,UAAA,EAAE,MAAM;AACR,UAAA,oBAAoB,wBAACC,UAA6B;AAChD,YAAA,QAAQ,OAAOA,MAAK,UAAU,aAAaA,MAAK,MAAA,IAAUA,MAAK;AAC/D,YAAA,kBAAkB,QACpB,EAAE,cAAc,iBAAiB,KAAK,CAAC,IAAI,KAAK,IAChD;AAEG,aAAA;AAAA,QACL,GAAGA;AAAA,QACH,OAAO;AAAA,QACP,OAAOA,MAAK,OAAO,IAAI,iBAAiB;AAAA,MAAA;AAAA,IAC1C,GAVwB;AAa1B,UAAM,kBAAkB;AAAA,MAAS,MAC/B,eAAe,UAAU,IAAI,iBAAiB;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1DhD,IAAIP,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,uCAAuC,OAAO,GAAG,oBAAoB,GAAG,wBAAwB,EAAE,OAAO,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,OAAO,GAAG,kBAAkB,GAAG,gBAAgB,EAAE,OAAO,GAAG,aAAa,GAAG,6HAA6H,EAAE,OAAO,GAAG,sBAAsB,GAAG,qBAAqB,EAAE,OAAO,GAAG,yBAAyB,GAAG,gBAAgB,EAAE,OAAO,GAAG,oBAAoB,GAAG,iDAAiD,EAAE,OAAO,GAAG,2BAA2B,GAAG,uBAAuB,EAAE,OAAO,GAAG,2BAA2B,GAAG,wBAAwB,EAAE,OAAO,GAAG,4BAA4B,GAAG,8DAA8D,EAAE,OAAO,GAAG,iCAAiC,GAAG,kEAAkE,EAAE,OAAO,GAAG,yBAAyB,GAAG,2CAA2C,EAAE,OAAO,GAAG,uBAAuB,GAAG,0CAA0C,EAAE,OAAO,GAAG,sBAAsB,GAAG,QAAQ;AAChmC,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,MAAM,gCAASgB,MAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,uBAAuB;AAAA,MAC7B,sBAAsB,MAAM;AAAA,IAClC,CAAK;AAAA,EACF,GALK;AAAA,EAMN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,QAAQ;AACV;AACA,IAAI,aAAa,UAAU,OAAO;AAAA,EAChC,MAAM;AAAA,EACN,OAAOjB;AAAAA,EACP,SAASC;AACX,CAAC;AChBD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWM;AAAAA,EACX,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW,gCAAS,WAAW;AAC7B,eAAO;AAAA,UACL,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,QACnB;AAAA,MACO,GANU;AAAA,IAOZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,YAAU;AAC1B,WAAO;AAAA,MACL,UAAU;AAAA,MACV,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,oBAAoB,QAAQ;AAAA,EACpC,MAAM,gCAASuB,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,aAAa,KAAK;AAAA,IACxB;AAAA,EACG,GALK;AAAA,EAMN,OAAO;AAAA,IACL,aAAa,gCAAS+D,UAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,IAGb,WAAW,gCAAS,UAAU,UAAU;AACtC,WAAK,cAAc;AAAA,IACpB,GAFU;AAAA,EAGZ;AAAA,EACD,SAAS,gCAAS9D,WAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AAAA,EACvC,GAFQ;AAAA,EAGT,SAAS;AAAA,IACP,QAAQ,gCAASuF,QAAO,OAAO;AAC7B,WAAK,cAAc,CAAC,KAAK;AACzB,WAAK,MAAM,oBAAoB,KAAK,WAAW;AAC/C,WAAK,MAAM,UAAU;AAAA,QACnB,eAAe;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GAPO;AAAA,IAQR,WAAW,gCAAShB,WAAU,OAAO;AACnC,UAAI,MAAM,SAAS,WAAW,MAAM,SAAS,iBAAiB,MAAM,SAAS,SAAS;AACpF,aAAK,OAAO,KAAK;AACjB,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GALU;AAAA,EAMZ;AAAA,EACD,UAAU;AAAA,IACR,iBAAiB,gCAAS,kBAAkB;AAC1C,aAAO,KAAK,qBAAqB,KAAK,kBAAkB,YAAY,KAAK,kBAAkB,YAAY,KAAK;AAAA,IAC7G,GAFgB;AAAA,EAGlB;AAAA,EACD,YAAY;AAAA,IACV,UAAUiB;AAAAA,IACV,WAAWC;AAAAA,IACX,QAAQC;AAAAA,EACT;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAIvG,eAAa,CAAC,IAAI;AACtB,IAAIC,eAAa,CAAC,MAAM,iBAAiB;AACzC,SAASR,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,EAC3B,GAAK,KAAK,KAAK,MAAM,CAAC,GAAG,CAACU,gBAAmB,OAAO,WAAW;AAAA,IAC3D,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC7B,GAAK,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,IACzD,IAAI,MAAM,KAAK;AAAA,IACf,SAAS,eAAe,KAAK,GAAG,OAAO,CAAC;AAAA,EAC5C,GAAK,WAAY;AACb,WAAO,CAAC,KAAK,UAAU,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,MACxE,KAAK;AAAA,MACL,IAAI,MAAM,KAAK;AAAA,MACf,SAAS,KAAK,GAAG,OAAO;AAAA,IAC9B,GAAO,KAAK,IAAI,OAAO,CAAC,GAAG,gBAAgB,KAAK,MAAM,GAAG,IAAIH,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,EACxG,CAAG,GAAGG,gBAAmB,OAAO,WAAW;AAAA,IACvC,SAAS,KAAK,GAAG,eAAe;AAAA,EACpC,GAAK,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,OAAO,GAAG,KAAK,cAAc,UAAW,GAAE,YAAY,mBAAmB,WAAW;AAAA,IAC1I,KAAK;AAAA,IACL,IAAI,MAAM,KAAK;AAAA,IACf,SAAS,KAAK,GAAG,gBAAgB;AAAA,IACjC,cAAc,SAAS;AAAA,IACvB,iBAAiB,MAAM,KAAK;AAAA,IAC5B,iBAAiB,CAAC,MAAM;AAAA,IACxB,UAAU,KAAK;AAAA,IACf,SAAS,SAAS;AAAA,IAClB,WAAW,SAAS;AAAA,EACxB,GAAK,KAAK,mBAAmB;AAAA,IACzB,IAAI,KAAK,IAAI,gBAAgB;AAAA,EACjC,CAAG,GAAG;AAAA,IACF,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,CAAC,WAAW,KAAK,QAAQ,KAAK,OAAO,aAAa,eAAe,eAAe;AAAA,QACrF,WAAW,MAAM;AAAA,MACzB,GAAS,WAAY;AACb,eAAO,EAAE,aAAa,YAAY,wBAAwB,MAAM,cAAc,aAAa,WAAW,GAAG,WAAW;AAAA,UAClH,SAAS,UAAU,OAAO;AAAA,QAC3B,GAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,MAC7D,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,IAAI,CAAC,MAAM,SAAS,cAAc,iBAAiB,iBAAiB,YAAY,WAAW,aAAa,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,YAAY,YAAY,WAAW;AAAA,IAChM,MAAM;AAAA,EACP,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,IAC1B,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,eAAeA,gBAAmB,OAAO,WAAW;AAAA,QAC1D,IAAI,MAAM,KAAK;AAAA,QACf,SAAS,KAAK,GAAG,kBAAkB;AAAA,QACnC,MAAM;AAAA,QACN,mBAAmB,MAAM,KAAK;AAAA,MACtC,GAAS,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAACA,gBAAmB,OAAO,WAAW;AAAA,QACtE,SAAS,KAAK,GAAG,SAAS;AAAA,MAClC,GAAS,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,UAAU,aAAa,mBAAmB,OAAO,WAAW;AAAA,QAC1I,KAAK;AAAA,QACL,SAAS,KAAK,GAAG,QAAQ;AAAA,MAC1B,GAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,QAAQ,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIF,YAAU,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;AAAA,IACxJ,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,EAAE,CAAC,GAAG,EAAE;AACb;AA1DSR;AA4DTD,SAAO,SAASC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrJhB,IAAIN,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,sCAAsC,OAAO,GAAG,uBAAuB,GAAG,gBAAgB,EAAE,OAAO,GAAG,kBAAkB,GAAG,2BAA2B,EAAE,OAAO,GAAG,yBAAyB,GAAG,wBAAwB,EAAE,OAAO,GAAG,0BAA0B,GAAG,mHAAmH,EAAE,OAAO,GAAG,yBAAyB,GAAG,4GAA4G,EAAE,OAAO,GAAG,qBAAqB,GAAG,mHAAmH,EAAE,OAAO,GAAG,uBAAuB,GAAG,gBAAgB,EAAE,OAAO,GAAG,kBAAkB,GAAG,2BAA2B,EAAE,OAAO,GAAG,yBAAyB,GAAG,wBAAwB,EAAE,OAAO,GAAG,0BAA0B,GAAG,qBAAqB,EAAE,OAAO,GAAG,mBAAmB,GAAG,uHAAuH,EAAE,OAAO,GAAG,gCAAgC,GAAG,UAAU,EAAE,OAAO,GAAG,gCAAgC,GAAG,wBAAwB,EAAE,OAAO,GAAG,+BAA+B,GAAG,gBAAgB,EAAE,OAAO,GAAG,uBAAuB,GAAG,uNAAuN,EAAE,OAAO,GAAG,yBAAyB,GAAG,cAAc,EAAE,OAAO,GAAG,qBAAqB,GAAG,oJAAoJ,EAAE,OAAO,GAAG,4BAA4B,GAAG,mDAAmD,EAAE,OAAO,GAAG,+BAA+B,GAAG,4CAA4C,EAAE,OAAO,GAAG,8BAA8B,GAAG,gBAAgB,EAAE,OAAO,GAAG,8BAA8B,GAAG,iBAAiB,EAAE,OAAO,GAAG,8BAA8B,GAAG,gFAAgF,EAAE,OAAO,GAAG,6BAA6B,GAAG,qBAAqB,EAAE,OAAO,GAAG,kCAAkC,GAAG,wGAAwG,EAAE,OAAO,GAAG,kCAAkC,GAAG,2GAA2G,EAAE,OAAO,GAAG,qCAAqC,GAAG,+FAA+F,EAAE,OAAO,GAAG,6BAA6B,GAAG,qBAAqB,EAAE,OAAO,GAAG,kCAAkC,GAAG,uHAAuH,EAAE,OAAO,GAAG,kCAAkC,GAAG,0HAA0H,EAAE,OAAO,GAAG,qCAAqC,GAAG,+EAA+E,EAAE,OAAO,GAAG,8BAA8B,GAAG,qBAAqB,EAAE,OAAO,GAAG,mCAAmC,GAAG,uGAAuG,EAAE,OAAO,GAAG,mCAAmC,GAAG,0GAA0G,EAAE,OAAO,GAAG,sCAAsC,GAAG,+DAA+D,EAAE,OAAO,GAAG,mCAAmC,GAAG,mDAAmD,EAAE,OAAO,GAAG,mBAAmB,GAAG,0JAA0J;AACp7H,GAHY;AAIZ,IAAI,eAAe;AAAA,EACjB,SAAS,gCAASqH,SAAQ,OAAO;AAC/B,QAAI,WAAW,MAAM,UACnB,gBAAgB,MAAM;AACxB,WAAO;AAAA,MACL,SAAS,SAAS,aAAa,aAAa,IAAI,SAAS;AAAA,IAC/D;AAAA,EACG,GANQ;AAOX;AACA,IAAIpH,YAAU;AAAA,EACZ,MAAM,gCAASgB,OAAK,OAAO;AACzB,UAAM;AACJ,QAAI,QAAQ,MAAM;AACpB,WAAO,CAAC,4BAA4B;AAAA,MAClC,wBAAwB,MAAM;AAAA,IACpC,CAAK;AAAA,EACF,GANK;AAAA,EAON,OAAO;AAAA,EACP,UAAU;AAAA,EACV,MAAM,gCAASV,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,gBAAgB,MAAM;AACxB,WAAO,CAAC,qBAAqB;AAAA,MAC3B,4BAA4B,SAAS,aAAa,aAAa;AAAA,MAC/D,WAAW,SAAS,cAAc,aAAa;AAAA,MAC/C,cAAc,SAAS,eAAe,aAAa;AAAA,IACzD,CAAK;AAAA,EACF,GARK;AAAA,EASN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,KAAK;AACP;AACA,IAAI,kBAAkB,UAAU,OAAO;AAAA,EACrC,MAAM;AAAA,EACN,OAAOP;AAAAA,EACP,SAASC;AAAAA,EACT;AACF,CAAC;ACpCD,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWO;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,YAAU;AAC1B,WAAO;AAAA,MACL,eAAe;AAAA,MACf,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWM;AAAAA,EACX,OAAO,CAAC,cAAc,mBAAmB,gBAAgB;AAAA,EACzD,WAAW;AAAA,EACX,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,WAAW,gCAAS8G,WAAU,eAAe;AAC3C,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,GAAG;AAAA,IAC5D,GAFU;AAAA,IAGX,YAAY,gCAASC,YAAW,eAAe;AAC7C,aAAO,KAAK,UAAU,aAAa;AAAA,IACpC,GAFW;AAAA,IAGZ,aAAa,gCAAS9B,aAAY,eAAe,MAAM,QAAQ;AAC7D,aAAO,iBAAiB,cAAc,OAAO,QAAQ,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;AAAA,IAC1F,GAFY;AAAA,IAGb,cAAc,gCAASC,cAAa,eAAe;AACjD,aAAO,KAAK,YAAY,eAAe,OAAO;AAAA,IAC/C,GAFa;AAAA,IAGd,gBAAgB,gCAAS8B,gBAAe,eAAe;AACrD,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,KAAK,QAAQ;AAAA,IACtE,GAFe;AAAA,IAGhB,cAAc,gCAAS1F,cAAa,eAAe,OAAO,KAAK;AAC7D,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,MAAM,cAAc;AAAA,UACpB;AAAA,UACA,QAAQ,KAAK,aAAa,aAAa;AAAA,UACvC,SAAS,KAAK,cAAc,aAAa;AAAA,UACzC,UAAU,KAAK,eAAe,aAAa;AAAA,QAC5C;AAAA,MACT,CAAO;AAAA,IACF,GAVa;AAAA,IAWd,cAAc,gCAAS2F,cAAa,eAAe;AACjD,aAAO,KAAK,eAAe,KAAK,SAAU,MAAM;AAC9C,eAAO,KAAK,QAAQ,cAAc;AAAA,MAC1C,CAAO;AAAA,IACF,GAJa;AAAA,IAKd,eAAe,gCAAS7B,eAAc,eAAe;AACnD,aAAO,KAAK,YAAY,eAAe,SAAS,MAAM;AAAA,IACvD,GAFc;AAAA,IAGf,gBAAgB,gCAASD,gBAAe,eAAe;AACrD,aAAO,KAAK,YAAY,eAAe,UAAU;AAAA,IAClD,GAFe;AAAA,IAGhB,eAAe,gCAAS+B,eAAc,eAAe;AACnD,aAAO,KAAK,kBAAkB,KAAK,UAAU,aAAa;AAAA,IAC3D,GAFc;AAAA,IAGf,aAAa,gCAAS7B,aAAY,eAAe;AAC/C,aAAO,WAAW,cAAc,KAAK;AAAA,IACtC,GAFY;AAAA,IAGb,SAAS,gCAAS8B,WAAU;AAC1B,qBAAe,KAAK,WAAW,KAAK,KAAK;AAAA,IAC1C,GAFQ;AAAA,IAGT,aAAa,gCAASxB,aAAY,OAAO,eAAe;AACtD,WAAK,YAAY,eAAe,WAAW;AAAA,QACzC,eAAe;AAAA,QACf,MAAM,cAAc;AAAA,MAC5B,CAAO;AACD,WAAK,MAAM,cAAc;AAAA,QACvB,eAAe;AAAA,QACf;AAAA,QACA,SAAS;AAAA,MACjB,CAAO;AAAA,IACF,GAVY;AAAA,IAWb,kBAAkB,gCAASC,kBAAiB,OAAO,eAAe;AAChE,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GALiB;AAAA,IAMlB,iBAAiB,gCAASC,iBAAgB,OAAO,eAAe;AAC9D,WAAK,MAAM,kBAAkB;AAAA,QAC3B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GALgB;AAAA,IAMjB,gBAAgB,gCAASuB,kBAAiB;AACxC,UAAI,QAAQ;AACZ,aAAO,KAAK,MAAM,OAAO,SAAU,eAAe;AAChD,eAAO,MAAM,cAAc,aAAa,KAAK,CAAC,MAAM,YAAY,eAAe,WAAW;AAAA,MAC3F,CAAA,EAAE;AAAA,IACJ,GALe;AAAA,IAMhB,iBAAiB,gCAASxC,iBAAgB,OAAO;AAC/C,UAAI,SAAS;AACb,aAAO,QAAQ,KAAK,MAAM,MAAM,GAAG,KAAK,EAAE,OAAO,SAAU,eAAe;AACxE,eAAO,OAAO,cAAc,aAAa,KAAK,OAAO,YAAY,eAAe,WAAW;AAAA,MACnG,CAAO,EAAE,SAAS;AAAA,IACb,GALgB;AAAA,IAMjB,kBAAkB,gCAASyC,kBAAiB,eAAe,OAAO;AAChE,aAAO;AAAA,QACL,QAAQ,WAAW;AAAA,UACjB,SAAS,KAAK,GAAG,UAAU;AAAA,UAC3B,UAAU;AAAA,UACV,eAAe;AAAA,QAChB,GAAE,KAAK,aAAa,eAAe,OAAO,UAAU,CAAC;AAAA,QACtD,MAAM,WAAW;AAAA,UACf,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,KAAK,YAAY,eAAe,MAAM,CAAC;AAAA,QACvE,GAAE,KAAK,aAAa,eAAe,OAAO,UAAU,CAAC;AAAA,QACtD,OAAO,WAAW;AAAA,UAChB,SAAS,KAAK,GAAG,WAAW;AAAA,QAC7B,GAAE,KAAK,aAAa,eAAe,OAAO,WAAW,CAAC;AAAA,QACvD,aAAa,WAAW;AAAA,UACtB,SAAS,KAAK,GAAG,aAAa;AAAA,QAC/B,GAAE,KAAK,aAAa,eAAe,OAAO,aAAa,CAAC;AAAA,MACjE;AAAA,IACK,GAjBiB;AAAA,IAkBlB,cAAc,gCAASC,cAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,EAGf;AAAA,EACD,YAAY;AAAA,IACV,gBAAgBzC;AAAAA,EACjB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAIE,iBAAe,CAAC,UAAU;AAC9B,IAAIzE,eAAa,CAAC,MAAM,cAAc,iBAAiB,iBAAiB,iBAAiB,cAAc,gBAAgB,iBAAiB,iBAAiB,kBAAkB,iBAAiB;AAC5L,IAAIC,eAAa,CAAC,WAAW,gBAAgB,aAAa;AAC1D,IAAI,aAAa,CAAC,QAAQ,QAAQ;AAClC,IAAI,aAAa,CAAC,IAAI;AACtB,IAAI,aAAa,CAAC,IAAI;AACtB,SAASkE,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,4BAA4B,iBAAiB,gBAAgB;AACjE,MAAI,2BAA2B,iBAAiB,iBAAiB,IAAI;AACrE,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,YAAY,YAAY,WAAW;AAAA,IACrD,MAAM;AAAA,IACN,SAAS,SAAS;AAAA,EACnB,GAAE,KAAK,IAAI,iBAAiB,CAAC,GAAG;AAAA,IAC/B,WAAW,QAAQ,WAAY;AAC7B,aAAO,EAAE,OAAO,UAAU,IAAI,OAAO,OAAO,YAAY,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,QACvG,KAAK;AAAA,QACL,KAAK,SAAS;AAAA,QACd,SAAS,OAAO,UAAU,IAAI,KAAK,GAAG,UAAU,IAAI,KAAK,GAAG,SAAS;AAAA,QACrE,UAAU,OAAO;AAAA,MAClB,GAAE,OAAO,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,OAAO,SAAU,eAAe,OAAO;AAClL,eAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,UAC/C,KAAK,SAAS,WAAW,aAAa;AAAA,QACvC,GAAE,CAAC,SAAS,cAAc,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,WAAW,KAAK,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,UACjJ,KAAK;AAAA,UACL,IAAI,SAAS,UAAU,aAAa;AAAA,UACpC,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,UAClD,SAAS,CAAC,KAAK,GAAG,QAAQ;AAAA,YACxB;AAAA,UACD,CAAA,GAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,UAChD,MAAM;AAAA,UACN,cAAc,SAAS,aAAa,aAAa;AAAA,UACjD,iBAAiB,SAAS,eAAe,aAAa,KAAK;AAAA,UAC3D,iBAAiB,SAAS,YAAY,aAAa,IAAI,SAAS,aAAa,aAAa,IAAI;AAAA,UAC9F,iBAAiB,SAAS,YAAY,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,IAAI,IAAI,SAAS;AAAA,UAC9G,cAAc,OAAO,QAAQ;AAAA,UAC7B,gBAAgB,SAAS,eAAgB;AAAA,UACzC,iBAAiB,SAAS,gBAAgB,KAAK;AAAA,UAC/C,SAAS;AAAA,QACV,GAAE,SAAS,aAAa,eAAe,OAAO,MAAM,GAAG;AAAA,UACtD,iBAAiB,SAAS,aAAa,aAAa;AAAA,UACpD,kBAAkB,SAAS,cAAc,aAAa;AAAA,UACtD,mBAAmB,SAAS,eAAe,aAAa;AAAA,QACzD,CAAA,GAAG,CAACjE,gBAAmB,OAAO,WAAW;AAAA,UACxC,SAAS,KAAK,GAAG,aAAa;AAAA,UAC9B,SAAS,gCAASmD,SAAQ,QAAQ;AAChC,mBAAO,SAAS,YAAY,QAAQ,aAAa;AAAA,UAClD,GAFQ;AAAA,UAGT,cAAc,gCAAS,aAAa,QAAQ;AAC1C,mBAAO,SAAS,iBAAiB,QAAQ,aAAa;AAAA,UACvD,GAFa;AAAA,UAGd,aAAa,gCAAS,YAAY,QAAQ;AACxC,mBAAO,SAAS,gBAAgB,QAAQ,aAAa;AAAA,UACtD,GAFY;AAAA,UAGb,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,OAAO,gBAAgB,UAAW,GAAE,mBAAmB,KAAK,WAAW;AAAA,UACxJ,KAAK;AAAA,UACL,MAAM,SAAS,YAAY,eAAe,KAAK;AAAA,UAC/C,SAAS,KAAK,GAAG,UAAU;AAAA,UAC3B,QAAQ,SAAS,YAAY,eAAe,QAAQ;AAAA,UACpD,UAAU;AAAA,UACV,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,UAAU,YAAY,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,QAAQ,GAAG;AAAA,UACtK,KAAK;AAAA,UACL,MAAM,cAAc;AAAA,UACpB,SAAS,eAAe,KAAK,GAAG,UAAU,CAAC;AAAA,QACrD,GAAW,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC,KAAK,SAAS,YAAY,eAAe,MAAM,KAAK,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,UAClI,KAAK;AAAA,UACL,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,SAAS,YAAY,eAAe,MAAM,CAAC;AAAA,UAC1E,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,UAAU,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGnD,gBAAmB,QAAQ,WAAW;AAAA,UAC5I,IAAI,SAAS,eAAe,aAAa;AAAA,UACzC,SAAS,KAAK,GAAG,WAAW;AAAA,UAC5B,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,WAAW,CAAC,GAAG,gBAAgB,SAAS,aAAa,aAAa,CAAC,GAAG,IAAI,UAAU,GAAG,SAAS,YAAY,eAAe,OAAO,KAAK,UAAS,GAAI,mBAAmB,UAAU;AAAA,UAC9N,KAAK;AAAA,QACN,GAAE,CAAC,OAAO,UAAU,eAAe,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,WAAW,GAAG,WAAW;AAAA,UAC7H,KAAK;AAAA,UACL,SAAS,KAAK,GAAG,aAAa;AAAA,UAC9B,QAAQ,SAAS,aAAa,aAAa;AAAA,UAC3C,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,UAAW,GAAE,YAAY,2BAA2B,WAAW;AAAA,UAChK,KAAK;AAAA,UACL,SAAS,KAAK,GAAG,aAAa;AAAA,UAC9B,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAI,UAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,IAAI,GAAG;AAAA,UACjP,KAAK;AAAA,UACL,MAAM,cAAc;AAAA,UACpB,YAAY,SAAS,YAAY,eAAe,OAAO;AAAA,UACvD,OAAO,SAAS,aAAa,aAAa;AAAA,UAC1C,OAAO,SAAS,iBAAiB,eAAe,KAAK;AAAA,QAC/D,GAAW,MAAM,GAAG,CAAC,QAAQ,cAAc,SAAS,OAAO,CAAC,EAAE,GAAG,IAAID,YAAU,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,aAAa,KAAK,UAAS,GAAI,YAAY,0BAA0B;AAAA,UAC3M,KAAK;AAAA,UACL,IAAI,SAAS,UAAU,aAAa,IAAI;AAAA,UACxC,OAAO,eAAe,KAAK,GAAG,WAAW,MAAM;AAAA,YAC7C;AAAA,UACZ,CAAW,CAAC;AAAA,UACF,mBAAmB,SAAS,eAAe,aAAa;AAAA,UACxD,MAAM;AAAA,UACN,QAAQ,OAAO;AAAA,UACf,eAAe,OAAO;AAAA,UACtB,OAAO,cAAc;AAAA,UACrB,WAAW,OAAO;AAAA,UAClB,gBAAgB,OAAO;AAAA,UACvB,OAAO,OAAO,QAAQ;AAAA,UACtB,SAAS,SAAS,aAAa,aAAa,KAAK,SAAS,YAAY,aAAa;AAAA,UACnF,IAAI,KAAK;AAAA,UACT,UAAU,KAAK;AAAA,UACf,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,mBAAO,KAAK,MAAM,cAAc,MAAM;AAAA,UAClD;AAAA,UACU,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,mBAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,UACvD;AAAA,UACU,iBAAiB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC3D,mBAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,UACtD;AAAA,QACA,GAAW,MAAM,GAAG,CAAC,MAAM,SAAS,mBAAmB,UAAU,iBAAiB,SAAS,aAAa,kBAAkB,SAAS,WAAW,MAAM,UAAU,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAID,YAAU,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,eAAe,WAAW,KAAK,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,UACxX,KAAK;AAAA,UACL,IAAI,SAAS,UAAU,aAAa;AAAA,UACpC,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,UAClD,SAAS,CAAC,KAAK,GAAG,WAAW,GAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,UAC5E,MAAM;AAAA,UACN,SAAS;AAAA,QACV,GAAE,KAAK,IAAI,WAAW,CAAC,GAAG,MAAM,IAAI,UAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,MAC7F,CAAO,GAAG,GAAG,EAAG,GAAE,IAAIyE,cAAY,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IACnE,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,IAAI,CAAC,SAAS,CAAC;AACpB;AA3HSN;AA6HT/E,WAAS,SAAS+E;AAElB,IAAI5E,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,SAAS,QAAQ,eAAe,eAAe,QAAQ,MAAM;AAAA,EACrE,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,eAAe;AAAA,EACf,aAAa;AAAA,EACb,MAAM,gCAASoB,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,SAAS;AAAA,MACT,iBAAiB;AAAA,QACf,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,MACD,gBAAgB,CAAE;AAAA,MAClB,SAAS,CAAC,KAAK;AAAA,MACf,gBAAgB;AAAA,MAChB,OAAO;AAAA,IACb;AAAA,EACG,GAdK;AAAA,EAeN,OAAO;AAAA,IACL,aAAa,gCAAS+D,UAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,IAGb,gBAAgB,gCAASU,gBAAe,SAAS;AAC/C,UAAI,CAAC,KAAK,OAAO;AACf,YAAI,WAAW,OAAO,GAAG;AACvB,eAAK,yBAAwB;AAC7B,eAAK,mBAAkB;AAAA,QACjC,OAAe;AACL,eAAK,2BAA0B;AAC/B,eAAK,qBAAoB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF,GAVe;AAAA,EAWjB;AAAA,EACD,SAAS,gCAASxE,WAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AAAA,EACvC,GAFQ;AAAA,EAGT,eAAe,gCAASC,iBAAgB;AACtC,SAAK,2BAA0B;AAC/B,SAAK,qBAAoB;AACzB,QAAI,KAAK,eAAe;AACtB,WAAK,cAAc;AACnB,WAAK,gBAAgB;AAAA,IACtB;AACD,QAAI,KAAK,aAAa,KAAK,YAAY;AACrC,aAAO,MAAM,KAAK,SAAS;AAAA,IAC5B;AACD,SAAK,SAAS;AACd,SAAK,YAAY;AAAA,EAClB,GAZc;AAAA,EAaf,SAAS;AAAA,IACP,aAAa,gCAAS8D,aAAYlF,OAAM,MAAM;AAC5C,aAAOA,QAAO,QAAQA,MAAK,IAAI,CAAC,IAAI;AAAA,IACrC,GAFY;AAAA,IAGb,cAAc,gCAASmF,cAAanF,OAAM;AACxC,aAAO,KAAK,YAAYA,OAAM,OAAO;AAAA,IACtC,GAFa;AAAA,IAGd,gBAAgB,gCAASoF,gBAAepF,OAAM;AAC5C,aAAO,KAAK,YAAYA,OAAM,UAAU;AAAA,IACzC,GAFe;AAAA,IAGhB,eAAe,gCAASqF,eAAcrF,OAAM;AAC1C,aAAO,KAAK,YAAYA,OAAM,SAAS,MAAM;AAAA,IAC9C,GAFc;AAAA,IAGf,aAAa,gCAASsF,aAAYtF,OAAM;AACtC,aAAO,WAAW,KAAK,YAAYA,OAAM,OAAO,CAAC;AAAA,IAClD,GAFY;AAAA,IAGb,iBAAiB,gCAASwH,iBAAgBxH,OAAM;AAC9C,aAAO,KAAK,YAAYA,OAAM,WAAW;AAAA,IAC1C,GAFgB;AAAA,IAGjB,wBAAwB,gCAASyH,wBAAuB,eAAe;AACrE,aAAO,gBAAgB,KAAK,aAAa,cAAc,IAAI,IAAI;AAAA,IAChE,GAFuB;AAAA,IAGxB,uBAAuB,gCAASC,uBAAsB,eAAe;AACnE,aAAO,iBAAiB,WAAW,cAAc,KAAK;AAAA,IACvD,GAFsB;AAAA,IAGvB,QAAQ,gCAAShB,QAAO,OAAO;AAC7B,WAAK,UAAU,KAAK,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,KAAK;AAAA,IACxD,GAFO;AAAA,IAGR,MAAM,gCAASnB,MAAK,OAAO,SAAS;AAClC,UAAI,KAAK,OAAO;AACd,aAAK,MAAM,aAAa;AACxB,aAAK,UAAU;AACf,aAAK,SAAS,KAAK,UAAU,MAAM;AACnC,aAAK,gBAAgB,MAAM,iBAAiB;AAAA,MAC7C;AACD,iBAAW,MAAM,KAAK,OAAO;AAAA,IAC9B,GARK;AAAA,IASN,MAAM,gCAASC,MAAK,OAAO,SAAS;AAClC,UAAI,KAAK,OAAO;AACd,aAAK,MAAM,aAAa;AACxB,aAAK,UAAU;AAAA,MAChB;AACD,WAAK,iBAAiB;AACtB,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,iBAAW,MAAM,KAAK,iBAAiB,KAAK,UAAU,KAAK,OAAO;AAClE,WAAK,QAAQ;AAAA,IACd,GAbK;AAAA,IAcN,SAAS,gCAAS3D,SAAQ,OAAO;AAC/B,WAAK,UAAU;AACf,UAAI,CAAC,KAAK,OAAO;AACf,aAAK,kBAAkB,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB;AAAA,UAChF,OAAO,KAAK,0BAA2B;AAAA,UACvC,OAAO;AAAA,UACP,WAAW;AAAA,QACrB;AAAA,MACO;AACD,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GAVQ;AAAA,IAWT,QAAQ,gCAAS4D,QAAO,OAAO;AAC7B,WAAK,UAAU;AACf,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,WAAK,cAAc;AACnB,WAAK,QAAQ;AACb,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB,GAVO;AAAA,IAWR,WAAW,gCAASC,WAAU,OAAO;AACnC,UAAI,KAAK,UAAU;AACjB,cAAM,eAAc;AACpB;AAAA,MACD;AACD,UAAI,UAAU,MAAM,WAAW,MAAM;AACrC,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,aAAa,KAAK;AACvB;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,gBAAgB,KAAK;AAC1B;AAAA,QACF,KAAK;AACH,eAAK,UAAU,KAAK;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAEH;AAAA,QACF;AACE,cAAI,CAAC,WAAW,qBAAqB,MAAM,GAAG,GAAG;AAC/C,iBAAK,YAAY,OAAO,MAAM,GAAG;AAAA,UAClC;AACD;AAAA,MACH;AAAA,IACF,GAnDU;AAAA,IAoDX,cAAc,gCAASiC,cAAa,OAAO;AACzC,UAAI,gBAAgB,MAAM,eACxB,UAAU,MAAM;AAClB,UAAI,QAAQ,aAAa,EAAG;AAC5B,UAAI,QAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc,WAC1B,QAAQ,cAAc;AACxB,UAAI,UAAU,WAAW,KAAK;AAC9B,UAAIhC,kBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC3D,eAAO,EAAE,cAAc,aAAa,EAAE,cAAc;AAAA,MAC5D,CAAO;AACD,UAAI,SAAS;AACX,QAAAA,gBAAe,KAAK,aAAa;AACjC,aAAK,iBAAiB;AAAA,MACvB;AACD,WAAK,kBAAkB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,MACR;AACM,WAAK,iBAAiBA;AACtB,kBAAY,KAAK,QAAQ;AACzB,iBAAW,MAAM,KAAK,OAAO;AAAA,IAC9B,GAzBa;AAAA,IA0Bd,gBAAgB,gCAASiC,gBAAe,OAAO;AAC7C,sBAAgB,KAAK,iBAAiB;AAAA,QACpC,eAAe;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALe;AAAA,IAMhB,aAAa,gCAAShC,aAAY,OAAO;AACvC,UAAI,gBAAgB,MAAM,eACxB,gBAAgB,MAAM;AACxB,UAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,UAAIlF,SAAO,QAAQ,cAAc,MAAM;AACvC,UAAI,WAAW,KAAK,WAAW,aAAa;AAC5C,UAAI,UAAU;AACZ,YAAI,QAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc;AAC5B,aAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,iBAAO,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,GAAG;AAAA,QACtD,CAAS;AACD,aAAK,kBAAkB;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,aAAK,QAAQ,CAACA;AACd,cAAM,KAAK,OAAO;AAAA,MAC1B,OAAa;AACL,YAAI,SAAS;AACX,eAAK,aAAa,KAAK;AAAA,QACjC,OAAe;AACL,cAAI,oBAAoBA,SAAO,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACnF,mBAAO,EAAE,cAAc;AAAA,UACnC,CAAW;AACD,eAAK,KAAK,aAAa;AACvB,eAAK,uBAAuB,eAAe,oBAAoB,kBAAkB,QAAQ,EAAE;AAC3F,gBAAM,KAAK,OAAO;AAAA,QACnB;AAAA,MACF;AAAA,IACF,GAjCY;AAAA,IAkCb,kBAAkB,gCAASmF,kBAAiB,OAAO;AACjD,UAAI,KAAK,OAAO;AACd,aAAK,aAAa,KAAK;AAAA,MACxB;AAAA,IACF,GAJiB;AAAA,IAKlB,iBAAiB,gCAASC,iBAAgB,OAAO;AAC/C,UAAI,KAAK,SAAS;AAChB,aAAK,uBAAuB,OAAO,MAAM,cAAc,KAAK;AAAA,MAC7D;AAAA,IACF,GAJgB;AAAA,IAKjB,gBAAgB,gCAASC,gBAAe,OAAO;AAC7C,UAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,0BAAyB;AACvI,WAAK,uBAAuB,OAAO,SAAS;AAC5C,YAAM,eAAc;AAAA,IACrB,GAJe;AAAA,IAKhB,cAAc,gCAASC,cAAa,OAAO;AACzC,UAAI,MAAM,QAAQ;AAChB,YAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,cAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,cAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,WAAC,WAAW,KAAK,aAAa;AAAA,YAC5B,eAAe;AAAA,YACf;AAAA,UACZ,CAAW;AAAA,QACF;AACD,aAAK,SAAS,KAAK,KAAK,OAAO,IAAI;AACnC,cAAM,eAAc;AAAA,MAC5B,OAAa;AACL,YAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,yBAAwB;AACtI,aAAK,uBAAuB,OAAO,SAAS;AAC5C,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAjBa;AAAA,IAkBd,gBAAgB,gCAASlE,gBAAe,OAAO;AAC7C,UAAI,QAAQ;AACZ,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,aAAa,KAAK,eAAe,KAAK,SAAU,GAAG;AACrD,eAAO,EAAE,QAAQ,cAAc;AAAA,MACvC,CAAO;AACD,UAAIpB,SAAO,QAAQ,cAAc,MAAM;AACvC,UAAI,CAACA,QAAM;AACT,aAAK,kBAAkB;AAAA,UACrB,OAAO;AAAA,UACP,WAAW,aAAa,WAAW,YAAY;AAAA,QACzD;AACQ,aAAK,cAAc;AACnB,aAAK,eAAe,KAAK;AAAA,MAC1B;AACD,WAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,eAAO,EAAE,cAAc,MAAM,gBAAgB;AAAA,MACrD,CAAO;AACD,YAAM,eAAc;AAAA,IACrB,GAnBe;AAAA,IAoBhB,iBAAiB,gCAASqB,iBAAgB,OAAO;AAC/C,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,UAAI,SAAS;AACX,aAAK,aAAa;AAAA,UAChB,eAAe;AAAA,UACf;AAAA,QACV,CAAS;AACD,aAAK,kBAAkB;AAAA,UACrB,OAAO;AAAA,UACP,WAAW,cAAc;AAAA,QACnC;AACQ,aAAK,cAAc;AACnB,aAAK,eAAe,KAAK;AAAA,MAC1B;AACD,YAAM,eAAc;AAAA,IACrB,GAhBgB;AAAA,IAiBjB,WAAW,gCAASC,WAAU,OAAO;AACnC,WAAK,uBAAuB,OAAO,KAAK,mBAAoB,CAAA;AAC5D,YAAM,eAAc;AAAA,IACrB,GAHU;AAAA,IAIX,UAAU,gCAASC,UAAS,OAAO;AACjC,WAAK,uBAAuB,OAAO,KAAK,kBAAmB,CAAA;AAC3D,YAAM,eAAc;AAAA,IACrB,GAHS;AAAA,IAIV,YAAY,gCAASG,YAAW,OAAO;AACrC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,UAAU,WAAW,KAAK,SAAS,UAAW,OAAO,GAAG,OAAO,KAAK,aAAa,GAAG,IAAK,CAAC;AAC9F,YAAI,gBAAgB,WAAW,WAAW,SAAS,8BAA8B;AACjF,wBAAgB,cAAc,MAAK,IAAK,WAAW,QAAQ;AAC3D,YAAI,CAAC,KAAK,OAAO;AACf,cAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,cAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,WAAC,YAAY,KAAK,gBAAgB,QAAQ,KAAK,0BAAyB;AAAA,QACzE;AAAA,MACF;AACD,YAAM,eAAc;AAAA,IACrB,GAZW;AAAA,IAaZ,YAAY,gCAASyF,YAAW,OAAO;AACrC,WAAK,WAAW,KAAK;AAAA,IACtB,GAFW;AAAA,IAGZ,aAAa,gCAAS5B,aAAY,OAAO;AACvC,UAAI,KAAK,SAAS,KAAK,gBAAgB,UAAU,GAAG;AAClD,YAAI,mBAAmB,KAAK;AAC5B,aAAK,KAAK,OAAO,KAAK;AACtB,aAAK,kBAAkB;AAAA,UACrB,OAAO,OAAO,iBAAiB,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,UACtD,OAAO;AAAA,UACP,WAAW;AAAA,QACrB;AACQ,aAAK,SAAS,MAAM,KAAK,MAAM;AAAA,MAChC;AACD,YAAM,eAAc;AAAA,IACrB,GAZY;AAAA,IAab,UAAU,gCAASC,UAAS,OAAO;AACjC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,SAAC,WAAW,KAAK,aAAa;AAAA,UAC5B,eAAe;AAAA,UACf;AAAA,QACV,CAAS;AAAA,MACF;AACD,WAAK,KAAI;AAAA,IACV,GAVS;AAAA,IAWV,SAAS,gCAASkB,SAAQ,IAAI;AAC5B,UAAI,KAAK,YAAY;AACnB,eAAO,IAAI,QAAQ,IAAI,KAAK,aAAa,KAAK,UAAU,OAAO,OAAO,IAAI;AAAA,MAC3E;AACD,eAAS,IAAI;AAAA,QACX,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,MACd,CAAO;AACD,WAAK,aAAY;AACjB,YAAM,KAAK,OAAO;AAClB,WAAK,aAAY;AAAA,IAClB,GAZQ;AAAA,IAaT,cAAc,gCAAS,eAAe;AACpC,WAAK,yBAAwB;AAC7B,WAAK,mBAAkB;AACvB,WAAK,mBAAkB;AACvB,WAAK,MAAM,MAAM;AAAA,IAClB,GALa;AAAA,IAMd,SAAS,gCAASU,WAAU;AAC1B,WAAK,2BAA0B;AAC/B,WAAK,qBAAoB;AACzB,WAAK,qBAAoB;AACzB,WAAK,MAAM,MAAM;AACjB,WAAK,YAAY;AACjB,WAAK,QAAQ;AAAA,IACd,GAPQ;AAAA,IAQT,cAAc,gCAAS,aAAa,IAAI;AACtC,UAAI,KAAK,YAAY;AACnB,eAAO,MAAM,EAAE;AAAA,MAChB;AAAA,IACF,GAJa;AAAA,IAKd,cAAc,gCAASC,gBAAe;AACpC,uBAAiB,KAAK,WAAW,KAAK,MAAM;AAC5C,UAAI,cAAc,cAAc,KAAK,MAAM;AAC3C,UAAI,cAAc,cAAc,KAAK,SAAS,GAAG;AAC/C,aAAK,UAAU,MAAM,WAAW,cAAc,KAAK,MAAM,IAAI;AAAA,MAC9D;AAAA,IACF,GANa;AAAA,IAOd,0BAA0B,gCAAS5B,4BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,qBAAqB,OAAO,aAAa,CAAC,OAAO,UAAU,SAAS,MAAM,MAAM;AACpF,cAAI,kBAAkB,OAAO,QAAQ,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,UAAU,OAAO,OAAO,SAAS,MAAM,MAAM,MAAM;AACpI,cAAI,sBAAsB,iBAAiB;AACzC,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAZyB;AAAA,IAa1B,4BAA4B,gCAASC,8BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,oBAAoB,gCAAS4B,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,eAAe;AACvB,aAAK,gBAAgB,IAAI,8BAA8B,KAAK,QAAQ,SAAU,OAAO;AACnF,iBAAO,KAAK,OAAO,IAAI;AAAA,QACjC,CAAS;AAAA,MACF;AACD,WAAK,cAAc;IACpB,GARmB;AAAA,IASpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;MACpB;AAAA,IACF,GAJqB;AAAA,IAKtB,oBAAoB,gCAAS5B,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,SAAU,OAAO;AACrC,cAAI,CAAC,cAAa,GAAI;AACpB,mBAAO,KAAK,OAAO,IAAI;AAAA,UACxB;AAAA,QACX;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAVmB;AAAA,IAWpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,eAAe,gCAAS4B,eAAc,eAAe;AACnD,UAAI;AACJ,aAAO,KAAK,YAAY,aAAa,OAAO,wBAAwB,KAAK,uBAAuB,aAAa,OAAO,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,kBAAmB,EAAC,WAAW,KAAK,YAAY,kBAAmB,CAAA;AAAA,IAClQ,GAHc;AAAA,IAIf,aAAa,gCAASC,aAAY,eAAe;AAC/C,aAAO,CAAC,CAAC,iBAAiB,CAAC,KAAK,eAAe,cAAc,IAAI,KAAK,CAAC,KAAK,gBAAgB,cAAc,IAAI,KAAK,KAAK,cAAc,cAAc,IAAI;AAAA,IACzJ,GAFY;AAAA,IAGb,qBAAqB,gCAASC,qBAAoB,eAAe;AAC/D,aAAO,KAAK,YAAY,aAAa,KAAK,KAAK,WAAW,aAAa;AAAA,IACxE,GAFoB;AAAA,IAGrB,YAAY,gCAAS7B,YAAW,eAAe;AAC7C,aAAO,KAAK,eAAe,KAAK,SAAU,GAAG;AAC3C,eAAO,EAAE,QAAQ,cAAc;AAAA,MACvC,CAAO;AAAA,IACF,GAJW;AAAA,IAKZ,oBAAoB,gCAAS8B,sBAAqB;AAChD,UAAI,SAAS;AACb,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALmB;AAAA,IAMpB,mBAAmB,gCAASC,qBAAoB;AAC9C,UAAI,SAAS;AACb,aAAO,cAAc,KAAK,cAAc,SAAU,eAAe;AAC/D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALkB;AAAA,IAMnB,mBAAmB,gCAASC,mBAAkB,OAAO;AACnD,UAAI,SAAS;AACb,UAAI,mBAAmB,QAAQ,KAAK,aAAa,SAAS,IAAI,KAAK,aAAa,MAAM,QAAQ,CAAC,EAAE,UAAU,SAAU,eAAe;AAClI,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmB,QAAQ,IAAI;AAAA,IAC/D,GANkB;AAAA,IAOnB,mBAAmB,gCAASC,mBAAkB,OAAO;AACnD,UAAI,SAAS;AACb,UAAI,mBAAmB,QAAQ,IAAI,cAAc,KAAK,aAAa,MAAM,GAAG,KAAK,GAAG,SAAU,eAAe;AAC3G,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmB;AAAA,IACnD,GANkB;AAAA,IAOnB,uBAAuB,gCAASC,yBAAwB;AACtD,UAAI,SAAS;AACb,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,OAAO,oBAAoB,aAAa;AAAA,MACvD,CAAO;AAAA,IACF,GALsB;AAAA,IAMvB,2BAA2B,gCAASC,6BAA4B;AAC9D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,mBAAkB,IAAK;AAAA,IACxD,GAH0B;AAAA,IAI3B,0BAA0B,gCAASC,4BAA2B;AAC5D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,kBAAiB,IAAK;AAAA,IACvD,GAHyB;AAAA,IAI1B,aAAa,gCAASC,aAAY,OAAO,OAAO;AAC9C,UAAI,UAAU;AACd,WAAK,eAAe,KAAK,eAAe,MAAM;AAC9C,UAAI,YAAY;AAChB,UAAI,UAAU;AACd,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,oBAAY,KAAK,aAAa,MAAM,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACjG,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AACD,oBAAY,cAAc,KAAK,KAAK,aAAa,MAAM,GAAG,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACvH,iBAAO,QAAQ,cAAc,aAAa;AAAA,QAC3C,CAAA,IAAI,YAAY,KAAK,gBAAgB;AAAA,MAC9C,OAAa;AACL,oBAAY,KAAK,aAAa,UAAU,SAAU,eAAe;AAC/D,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AAAA,MACF;AACD,UAAI,cAAc,IAAI;AACpB,kBAAU;AAAA,MACX;AACD,UAAI,cAAc,MAAM,KAAK,gBAAgB,UAAU,IAAI;AACzD,oBAAY,KAAK;MAClB;AACD,UAAI,cAAc,IAAI;AACpB,aAAK,uBAAuB,OAAO,SAAS;AAAA,MAC7C;AACD,UAAI,KAAK,eAAe;AACtB,qBAAa,KAAK,aAAa;AAAA,MAChC;AACD,WAAK,gBAAgB,WAAW,WAAY;AAC1C,gBAAQ,cAAc;AACtB,gBAAQ,gBAAgB;AAAA,MACzB,GAAE,GAAG;AACN,aAAO;AAAA,IACR,GAlCY;AAAA,IAmCb,wBAAwB,gCAASC,wBAAuB,OAAO,OAAO;AACpE,UAAI,KAAK,gBAAgB,UAAU,OAAO;AACxC,aAAK,gBAAgB,QAAQ;AAC7B,aAAK,aAAY;AAAA,MAClB;AAAA,IACF,GALuB;AAAA,IAMxB,cAAc,gCAASvG,gBAAe;AACpC,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAIC,MAAK,UAAU,KAAK,GAAG,OAAO,KAAK,IAAI,GAAG,EAAE,OAAO,KAAK,IAAI,KAAK;AACrE,UAAI,UAAU,WAAW,KAAK,SAAS,UAAW,OAAOA,KAAI,IAAK,CAAC;AACnE,UAAI,SAAS;AACX,gBAAQ,kBAAkB,QAAQ,eAAe;AAAA,UAC/C,OAAO;AAAA,UACP,QAAQ;AAAA,QAClB,CAAS;AAAA,MACF;AAAA,IACF,GAVa;AAAA,IAWd,sBAAsB,gCAASuG,sBAAqB,OAAO;AACzD,UAAI,UAAU;AACd,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAI,SAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AACjF,UAAI,YAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACpF,UAAItC,kBAAiB,CAAA;AACrB,eAAS,MAAM,QAAQ,SAAUxG,OAAM,OAAO;AAC5C,YAAI,OAAO,cAAc,KAAK,YAAY,MAAM,MAAM;AACtD,YAAI,UAAU;AAAA,UACZ,MAAMA;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,gBAAQ,OAAO,IAAI,QAAQ,qBAAqBA,MAAK,OAAO,QAAQ,GAAG,SAAS,GAAG;AACnF,QAAAwG,gBAAe,KAAK,OAAO;AAAA,MACnC,CAAO;AACD,aAAOA;AAAA,IACR,GApBqB;AAAA,IAqBtB,cAAc,gCAASe,cAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,YAAY,gCAASwB,YAAW,IAAI;AAClC,WAAK,UAAU,KAAK,GAAG,MAAM;AAAA,IAC9B,GAFW;AAAA,EAGb;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAASvC,kBAAiB;AACxC,aAAO,KAAK,qBAAqB,KAAK,SAAS,CAAE,CAAA;AAAA,IAClD,GAFe;AAAA,IAGhB,cAAc,gCAASwC,gBAAe;AACpC,UAAI,UAAU;AACd,UAAI,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACxD,eAAO,EAAE,QAAQ,QAAQ,gBAAgB;AAAA,MACjD,CAAO;AACD,aAAO,gBAAgB,cAAc,QAAQ,KAAK;AAAA,IACnD,GANa;AAAA,IAOd,eAAe,gCAASC,iBAAgB;AACtC,aAAO,KAAK,gBAAgB,UAAU,KAAK,GAAG,OAAO,KAAK,EAAE,EAAE,OAAO,WAAW,KAAK,gBAAgB,SAAS,IAAI,MAAM,KAAK,gBAAgB,YAAY,IAAI,GAAG,EAAE,OAAO,KAAK,gBAAgB,KAAK,IAAI;AAAA,IACxM,GAFc;AAAA,EAGhB;AAAA,EACD,YAAY;AAAA,IACV,eAAetJ;AAAAA,IACf,QAAQ+C;AAAAA,EACT;AACH;AAEA,IAAIpC,eAAa,CAAC,IAAI;AACtB,SAASP,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,2BAA2B,iBAAiB,eAAe;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAS,GAAI,YAAY,mBAAmB;AAAA,IACjD,UAAU,KAAK;AAAA,IACf,UAAU,CAAC,KAAK;AAAA,EACpB,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,YAAY,WAAW;AAAA,QACzC,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,QACvB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,MACxB,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,MAAM,WAAW,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YACzE,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,IAAI,MAAM;AAAA,YACV,SAAS,KAAK,GAAG,MAAM;AAAA,YACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,UACW,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,SAAS,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YAC7F,KAAK;AAAA,YACL,SAAS,KAAK,GAAG,OAAO;AAAA,UACpC,GAAa,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,OAAO,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,YAAY,0BAA0B;AAAA,YACpI,KAAK,SAAS;AAAA,YACd,IAAI,MAAM,KAAK;AAAA,YACf,UAAU,CAAC,KAAK,WAAW,KAAK,WAAW;AAAA,YAC3C,MAAM;AAAA,YACN,cAAc,KAAK;AAAA,YACnB,mBAAmB,KAAK;AAAA,YACxB,iBAAiB,KAAK,YAAY;AAAA,YAClC,oBAAoB;AAAA,YACpB,yBAAyB,MAAM,UAAU,SAAS,gBAAgB;AAAA,YAClE,QAAQ,MAAM;AAAA,YACd,eAAe,MAAM,UAAU,SAAS,gBAAgB;AAAA,YACxD,OAAO,SAAS;AAAA,YAChB,WAAW,KAAK;AAAA,YAChB,gBAAgB,MAAM;AAAA,YACtB,OAAO;AAAA,YACP,SAAS,MAAM;AAAA,YACf,IAAI,KAAK;AAAA,YACT,UAAU,KAAK;AAAA,YACf,SAAS,SAAS;AAAA,YAClB,QAAQ,SAAS;AAAA,YACjB,WAAW,SAAS;AAAA,YACpB,aAAa,SAAS;AAAA,YACtB,kBAAkB,SAAS;AAAA,YAC3B,iBAAiB,SAAS;AAAA,UACtC,GAAa,MAAM,GAAG,CAAC,MAAM,YAAY,cAAc,mBAAmB,iBAAiB,yBAAyB,UAAU,iBAAiB,SAAS,aAAa,kBAAkB,WAAW,MAAM,YAAY,WAAW,UAAU,aAAa,eAAe,oBAAoB,iBAAiB,CAAC,GAAG,KAAK,OAAO,OAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YACvW,KAAK;AAAA,YACL,SAAS,KAAK,GAAG,KAAK;AAAA,UAClC,GAAa,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,KAAK,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIO,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,QACtJ,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,gBAAgB,WAAW,cAAc,CAAC,CAAC;AAAA,IACpE,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,GAAG,CAAC,YAAY,UAAU,CAAC;AAChC;AA9DSP;AAgETD,SAAO,SAASC;AChgChB,IAAIN,SAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,8FAA8F,OAAO,GAAG,2BAA2B,GAAG,ioBAAioB,EAAE,OAAO,GAAG,mCAAmC,GAAG,qCAAqC,EAAE,OAAO,GAAG,mCAAmC,GAAG,sFAAsF,EAAE,OAAO,GAAG,mCAAmC,GAAG,oCAAoC,EAAE,OAAO,GAAG,mCAAmC,GAAG,mDAAmD,EAAE,OAAO,GAAG,2BAA2B,GAAG,QAAQ;AAC5tC,GAHY;AAIZ,IAAI,UAAU;AAAA,EACZ,MAAM,gCAASiB,OAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,QAAQ,MAAM;AAChB,WAAO,CAAC,6BAA6B;AAAA,MACnC,wBAAwB,MAAM;AAAA,MAC9B,yBAAyB,MAAM;AAAA,MAC/B,uBAAuB,SAAS;AAAA,IACtC,CAAK;AAAA,EACF,GARK;AAAA,EASN,UAAU;AAAA,EACV,YAAY;AACd;AACA,IAAI,mBAAmB,UAAU,OAAO;AAAA,EACtC,MAAM;AAAA,EACN,OAAOjB;AAAA,EACP;AACF,CAAC;ACdD,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWQ;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,YAAU;AAC1B,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAI,SAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,OAAO;AAAA,EACf,QAAQ;AAAA,IACN,UAAU;AAAA,MACR,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,MAAM,gCAASqB,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,YAAY;AAAA,IAClB;AAAA,EACG,GALK;AAAA,EAMN,OAAO;AAAA,IACL,aAAa,gCAAS+D,UAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,EAGd;AAAA,EACD,SAAS,gCAAS9D,WAAU;AAC1B,QAAI,QAAQ;AACZ,SAAK,KAAK,KAAK,MAAM,kBAAiB;AACtC,SAAK,OAAO,sBAAsB,SAAU,UAAU;AACpD,YAAM,aAAa;AAAA,IACzB,CAAK;AAAA,EACF,GANQ;AAAA,EAOT,SAAS;AAAA,IACP,uBAAuB,gCAAS,sBAAsB,OAAO;AAC3D,UAAI,OAAO;AACT,cAAM,eAAc;AAAA,MACrB;AACD,WAAK,MAAM,KAAK,OAAO;AAAA,QACrB,eAAe,KAAK;AAAA,QACpB,eAAe,KAAK,MAAM,OAAO;AAAA,MACzC,CAAO;AACD,WAAK,aAAa,KAAK,MAAM,KAAK;AAAA,IACnC,GATsB;AAAA,IAUvB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,UAAI,MAAM,SAAS,eAAe,MAAM,SAAS,WAAW;AAC1D,aAAK,sBAAqB;AAC1B,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GALkB;AAAA,IAMnB,sBAAsB,gCAAS,qBAAqB,OAAO;AACzD,UAAI,KAAK,YAAY;AACnB,aAAK,MAAM,KAAK,KAAK,KAAK;AAAA,MAC3B;AACD,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GALqB;AAAA,EAMvB;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,OAAO,CAAC;AAAA,IACvC,GAFe;AAAA,IAGhB,UAAU,gCAAS+H,YAAW;AAC5B,aAAO,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,WAAW,KAAK;AAAA,IACrD,GAFS;AAAA,EAGX;AAAA,EACD,YAAY;AAAA,IACV,WAAWrC;AAAAA,IACX,SAASsC;AAAAA,IACT,iBAAiBxG;AAAAA,EAClB;AACH;AAEA,IAAIrC,eAAa,CAAC,iBAAiB;AACnC,SAASP,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,qBAAqB,iBAAiB,SAAS;AACnD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,SAAS;AAAA,IAClB,OAAO,KAAK;AAAA,EAChB,GAAK,KAAK,KAAK,MAAM,GAAG;AAAA,IACpB,mBAAmB,KAAK;AAAA,EACzB,CAAA,GAAG,CAAC,YAAY,sBAAsB,WAAW;AAAA,IAChD,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,UAAU;AAAA,IAC3B,OAAO,KAAK;AAAA,IACZ,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,IACX,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,OAAO,KAAK;AAAA,IACZ,cAAc,KAAK;AAAA,IACnB,SAAS,SAAS;AAAA,EACtB,GAAK,KAAK,aAAa;AAAA,IACnB,IAAI,KAAK,IAAI,UAAU;AAAA,IACvB,UAAU,KAAK;AAAA,EAChB,CAAA,GAAG,YAAY;AAAA,IACd,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC;AAAA,IAChD,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,CAAC,KAAK,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,QAAQ;AAAA,QACtC,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAClD,GAAS,WAAY;AACb,eAAO,CAACU,gBAAmB,QAAQ,WAAW;AAAA,UAC5C,SAAS,CAAC,KAAK,MAAM,UAAU,OAAO,CAAC;AAAA,QACxC,GAAE,KAAK,IAAI,UAAU,EAAE,MAAM,GAAG;AAAA,UAC/B,mBAAmB;AAAA,QAC7B,CAAS,GAAG,MAAM,EAAE,CAAC;AAAA,MACd,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACT,IAAM,MAAS,CAAC,GAAG,MAAM,CAAC,SAAS,SAAS,YAAY,YAAY,QAAQ,QAAQ,YAAY,QAAQ,SAAS,cAAc,WAAW,MAAM,UAAU,CAAC,GAAG,YAAY,sBAAsB,WAAW;AAAA,IACvM,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,YAAY;AAAA,IAC7B,UAAU,KAAK;AAAA,IACf,iBAAiB;AAAA,IACjB,iBAAiB,MAAM;AAAA,IACvB,iBAAiB,MAAM,KAAK;AAAA,IAC5B,SAAS,SAAS;AAAA,IAClB,WAAW,SAAS;AAAA,IACpB,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,UAAU,KAAK;AAAA,EACnB,GAAK,KAAK,iBAAiB;AAAA,IACvB,IAAI,KAAK,IAAI,YAAY;AAAA,EAC7B,CAAG,GAAG;AAAA,IACF,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,CAAC,WAAW,KAAK,QAAQ,KAAK,OAAO,eAAe,iBAAiB,kBAAkB;AAAA,QAC5F,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAClD,GAAS,WAAY;AACb,eAAO,EAAE,UAAS,GAAI,YAAY,wBAAwB,KAAK,kBAAkB,KAAK,eAAe,SAAS,iBAAiB,GAAG,WAAW;AAAA,UAC3I,SAAS,CAAC,KAAK,gBAAgB,KAAK,gBAAgB,UAAU,OAAO,CAAC;AAAA,QACvE,GAAE,KAAK,IAAI,YAAY,EAAE,MAAM,GAAG;AAAA,UACjC,mBAAmB;AAAA,QACpB,CAAA,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,MACzB,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,IAAI,CAAC,SAAS,YAAY,iBAAiB,iBAAiB,WAAW,aAAa,YAAY,QAAQ,YAAY,QAAQ,YAAY,IAAI,CAAC,GAAG,YAAY,oBAAoB;AAAA,IACjL,KAAK;AAAA,IACL,IAAI,MAAM,KAAK;AAAA,IACf,OAAO,KAAK;AAAA,IACZ,OAAO;AAAA,IACP,YAAY,KAAK;AAAA,IACjB,YAAY,KAAK;AAAA,IACjB,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,QAAQ;AAAA,EACtB,GAAE,YAAY;AAAA,IACb,GAAG;AAAA,EACP,GAAK,CAAC,KAAK,OAAO,eAAe;AAAA,IAC7B,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,gBAAgB;AAAA,QAC9C,MAAM,UAAU;AAAA,QAChB,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,OAAO;AAAA,IAChC,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,QAAQ;AAAA,QACtC,MAAM,UAAU;AAAA,QAChB,YAAY,UAAU;AAAA,QACtB,OAAO,UAAU;AAAA,QACjB,OAAO,UAAU;AAAA,MAClB,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACT,IAAM,MAAS,CAAC,GAAG,MAAM,CAAC,MAAM,SAAS,cAAc,cAAc,YAAY,YAAY,IAAI,CAAC,CAAC,GAAG,IAAIH,YAAU;AACpH;AA1GSP;AA4GT,OAAO,SAASA;AC3OhB,MAAM,gBAAgB;;;;;;;AANtB,UAAM,QAAQ;AAId,UAAM,qBAAqB;AAC3B,UAAM,EAAE,WAAA,IAAe,YAAY,kBAAkB;AAGrD,UAAM,eAAe;AACrB,UAAM,gBAAgB;AAAA,MAAS,MAC7B,aAAa,IAAI,mCAAmC;AAAA,IAAA;AAGhD,UAAA,cAAc,wBAAC,cAAuB;AACtC,UAAA;AACJ,UAAI,WAAW;AACP,cAAA,gBAAgB,WAAW,QAAQ;AACzC,mBAAW,gBAAgB;AAAA,MAAA,OACtB;AACC,cAAA,gBAAgB,WAAW,QAAQ;AAC9B,mBAAA,KAAK,MAAM,gBAAgB,CAAC;AAAA,MACzC;AAEA,iBAAW,QAAQ;AAAA,IAAA,GAVD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACgBpB,UAAM,iBAAiB;AACjB,UAAA,kBAAkB,YAAY,8BAAA,CAA+B;AACnE,UAAM,EAAE,MAAM,UAAA,IAAc,YAAY,sBAAuB,CAAA;AAEzD,UAAA,EAAE,MAAM;AACR,UAAA,0BAA0B,SAAS,OAAO;AAAA,MAC9C,UAAU;AAAA,QACR,KAAK;AAAA,QACL,OAAO,EAAE,YAAY;AAAA,QACrB,SAAS,EAAE,sBAAsB;AAAA,QACjC,SAAS,6BAAM;AACb,oBAAU,QAAQ;AAAA,QACpB,GAFS;AAAA,MAGX;AAAA,MACA,SAAS;AAAA,QACP,KAAK;AAAA,QACL,OAAO,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC;AAAA,QAC/C,SAAS,EAAE,qBAAqB;AAAA,QAChC,SAAS,6BAAM;AACb,oBAAU,QAAQ;AAAA,QACpB,GAFS;AAAA,MAGX;AAAA,MACA,QAAQ;AAAA,QACN,KAAK;AAAA,QACL,OAAO,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC;AAAA,QAChD,SAAS,EAAE,sBAAsB;AAAA,QACjC,SAAS,6BAAM;AACb,oBAAU,QAAQ;AAAA,QACpB,GAFS;AAAA,MAGX;AAAA,IACA,EAAA;AAEF,UAAM,0BAA0B;AAAA,MAC9B,MAAM,wBAAwB,MAAM,UAAU,KAAK;AAAA,IAAA;AAErD,UAAM,qBAAqB;AAAA,MAAS,MAClC,OAAO,OAAO,wBAAwB,KAAK;AAAA,IAAA;AAG7C,UAAM,kBAAkB,SAAS,MAAM,CAAC,CAAC,gBAAgB,MAAM,KAAK;AACpE,UAAM,kBAAkB,SAAS,MAAM,gBAAgB,MAAM,QAAQ,CAAC;AAEtE,UAAM,eAAe;AACf,UAAA,cAAc,wBAAC,MAAkB;AAC/B,YAAA,YAAY,EAAE,WAAW,2BAA2B;AAC1D,mBAAa,QAAQ,SAAS;AAAA,IAAA,GAFZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACgEpB,MAAM,mBAAmB;;;;AArJzB,UAAM,gBAAgB;AAEtB,UAAM,UAAU;AAAA,MACd,MAAM,cAAc,IAAI,kBAAkB,MAAM;AAAA,IAAA;AAG5C,UAAA,WAAW,IAAwB,IAAI;AACvC,UAAA,gBAAgB,IAAwB,IAAI;AAC5C,UAAA,WAAW,gBAAgB,6BAA6B,KAAK;AAC7D,UAAA,iBAAiB,gBAAgB,+BAA+B;AAAA,MACpE,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACJ;AACK,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,aAAa,UAAU;AAAA,MACzB,cAAc,EAAE,GAAG,GAAG,GAAG,EAAE;AAAA,MAC3B,QAAQ;AAAA,MACR,kBAAkB,SAAS;AAAA,IAAA,CAC5B;AAGD;AAAA,MACE,CAAC,GAAG,CAAC;AAAA,MACL,CAAC,CAAC,MAAM,IAAI,MAAM;AAChB,uBAAe,QAAQ,EAAE,GAAG,MAAM,GAAG;MACvC;AAAA,MACA,EAAE,UAAU,IAAI;AAAA,IAAA;AAIlB,UAAM,qBAAqB,6BAAM;AAC/B,UAAI,EAAE,UAAU,KAAK,EAAE,UAAU,GAAG;AAClC;AAAA,MACF;AACA,UAAI,eAAe,MAAM,MAAM,KAAK,eAAe,MAAM,MAAM,GAAG;AAC9D,UAAA,QAAQ,eAAe,MAAM;AAC7B,UAAA,QAAQ,eAAe,MAAM;AACV;AACrB;AAAA,MACF;AACA,UAAI,SAAS,OAAO;AAClB,cAAM,cAAc,OAAO;AAC3B,cAAM,eAAe,OAAO;AACtB,cAAA,YAAY,SAAS,MAAM;AAC3B,cAAA,aAAa,SAAS,MAAM;AAE9B,YAAA,cAAc,KAAK,eAAe,GAAG;AACvC;AAAA,QACF;AAEE,UAAA,SAAS,cAAc,aAAa;AACpC,UAAA,QAAQ,eAAe,aAAa;AACjB;MACvB;AAAA,IAAA,GAvByB;AAyB3B,cAAU,kBAAkB;AACtB,UAAA,SAAS,CAAC,eAAe;AAC7B,UAAI,YAAY;AACd,iBAAS,kBAAkB;AAAA,MAC7B;AAAA,IAAA,CACD;AAED,UAAM,gBAAgB,IAAI;AAAA,MACxB,GAAG,EAAE;AAAA,MACL,GAAG,EAAE;AAAA,MACL,aAAa,OAAO;AAAA,MACpB,cAAc,OAAO;AAAA,IAAA,CACtB;AACD,UAAM,uBAAuB,6BAAM;AACjC,oBAAc,QAAQ;AAAA,QACpB,GAAG,EAAE;AAAA,QACL,GAAG,EAAE;AAAA,QACL,aAAa,OAAO;AAAA,QACpB,cAAc,OAAO;AAAA,MAAA;AAAA,IACvB,GAN2B;AAQ7B;AAAA,MACE;AAAA,MACA,CAAC,kBAAkB;AACjB,YAAI,CAAC,eAAe;AAEG;QACvB;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,UAAM,qBAAqB,6BAAM;AAC/B,UAAI,SAAS,OAAO;AAClB,cAAM,cAAc,OAAO;AAC3B,cAAM,eAAe,OAAO;AACtB,cAAA,YAAY,SAAS,MAAM;AAC3B,cAAA,aAAa,SAAS,MAAM;AAG5B,cAAA,eAAe,cAAc,MAAM;AACzC,cAAM,gBACJ,cAAc,MAAM,eAAe,cAAc,MAAM,IAAI;AACvD,cAAA,cAAc,cAAc,MAAM;AACxC,cAAM,iBACJ,cAAc,MAAM,gBAAgB,cAAc,MAAM,IAAI;AAG9D,cAAM,YAAY;AAAA,UAChB,EAAE,MAAM,QAAQ,UAAU,aAAa;AAAA,UACvC,EAAE,MAAM,SAAS,UAAU,cAAc;AAAA,UACzC,EAAE,MAAM,OAAO,UAAU,YAAY;AAAA,UACrC,EAAE,MAAM,UAAU,UAAU,eAAe;AAAA,QAAA;AAE7C,cAAM,cAAc,UAAU;AAAA,UAAO,CAAC,KAAK,SACzC,KAAK,WAAW,IAAI,WAAW,OAAO;AAAA,QAAA;AAIxC,cAAM,gBACJ,cAAc,MAAM,IAAI,cAAc,MAAM;AAC9C,cAAM,kBACJ,cAAc,MAAM,IAAI,cAAc,MAAM;AAG1C,YAAA,YAAY,SAAS,QAAQ;AAC/B,YAAE,QAAQ,YAAY;AACtB,YAAE,QAAQ,gBAAgB;AAAA,QAAA,WACjB,YAAY,SAAS,SAAS;AACrC,YAAA,QAAQ,cAAc,YAAY,YAAY;AAChD,YAAE,QAAQ,gBAAgB;AAAA,QAAA,WACjB,YAAY,SAAS,OAAO;AACrC,YAAE,QAAQ,kBAAkB;AAC5B,YAAE,QAAQ,YAAY;AAAA,QAAA,OACjB;AAEL,YAAE,QAAQ,kBAAkB;AAC1B,YAAA,QAAQ,eAAe,aAAa,YAAY;AAAA,QACpD;AAGA,UAAE,QAAQqJ,cAAAA,MAAM,EAAE,OAAO,GAAG,cAAc,SAAS;AACnD,UAAE,QAAQA,cAAAA,MAAM,EAAE,OAAO,GAAG,eAAe,UAAU;AAAA,MACvD;AAAA,IAAA,GAnDyB;AAsDV,qBAAA,QAAQ,UAAU,kBAAkB;AAE/C,UAAA,aAAa,OAAmC,YAAY;AAC5D,UAAA,gBAAgB,mBAAmB,UAAU;AAE7C,UAAA,2BAA2B,SAAS,MAAM;AAC1C,UAAA,CAAC,SAAS,OAAO;AACZ,eAAA;AAAA,MACT;AACA,YAAM,EAAE,OAAW,IAAA,SAAS,MAAM,sBAAsB;AAClD,YAAA,kBAAkB,EAAE,QAAQ;AAC5B,YAAA,gBAAgB,cAAc,OAAO;AAE3C,YAAM,gBACJ,KAAK,IAAI,iBAAiB,aAAa,IACvC,KAAK,IAAI,EAAE,OAAO,cAAc,IAAI,KAAK;AAC3C,aAAO,gBAAgB;AAAA,IAAA,CACxB;AAEK,UAAA,YAAY,CAAC,kBAAkB;AACnC,UAAI,CAAC,eAAe;AAElB,iBAAS,QAAQ,yBAAyB;AAAA,MAAA,OACrC;AAEL,iBAAS,QAAQ;AAAA,MACnB;AAAA,IAAA,CACD;AAEK,UAAA,WAAW,YAAoB,SAAS;AACxC,UAAA,CAAC,YAAY,wBAAwB,GAAG,CAAC,CAAC,UAAU,WAAW,MAAM;AACzE,eAAS,KAAK,mBAAmB;AAAA,QAC/B,YAAY;AAAA,QACZ,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5LD,UAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsBzB,UAAM,iBAAiB;AACvB,UAAM,eAAe;AACrB,UAAM,uBAAuB;AAAA,MAAS,MACpC,aAAa,IAAI,qCAAqC;AAAA,IAAA;AAExD,UAAM,kBAAkB;AAAA,MACtB,MAAM,aAAa,IAAI,kBAAkB,MAAM;AAAA,IAAA;AAEjD,UAAM,iBAAiB;AAAA,MAAS,MAC9B,aAAa,IAAI,kBAAkB,MAAM,QACrC,sBACA;AAAA,IAAA;AAGA,UAAA,YAAY,IAA2B,IAAI;AAEjD,cAAU,MAAM;AACd,UAAI,UAAU,OAAO;AACnB,kBAAU,MAAM,YAAY,IAAI,KAAK,OAAO;AAAA,MAC9C;AAAA,IAAA,CACD;AAEK,UAAA,aAAa,IAA2B,IAAI;AAClD,YAAQ,cAAc,UAAU;AAC1B,UAAA,WAAW,YAAoB,SAAS;AACxC,UAAA,aAAa,IAAI,KAAK;AACtB,UAAA,cAAc,IAAI,KAAK;AACpB,aAAA,GAAG,CAAC,OAAe,YAAiB;AAC3C,UAAI,UAAU,mBAAmB;AAC/B,mBAAW,QAAQ,QAAQ;AACf,oBAAA,QAAQ,QAAQ,iBAAiB,QAAQ;AAAA,MACvD;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpEM,SAAS,wBAAwB;AACtC,QAAM,kBAAkB;AACxB,QAAM,qBAAqB;AAE3B,MAAI,kBAAkB;AACtB,MAAI,gBAAgB;AAChB,MAAA,iBAAiB,gBAAgB,MAAM;AACrC,QAAA,mBAAmB,SAAS,UAAU;AACxC,UAAI,eAAe;AACC,0BAAA;AAAA,MAAA,OACb;AACa,0BAAA;AACd,YAAA,YAAY,GAAG,mBAAmB,UAAU;AAChD;AAAA,MACF;AAAA,IACF;AAAA,EAAA,CACD;AAEe,kBAAA;AAAA,IACd,MAAM;AACJ,sBAAgB,gBAAgB;AAChC,UAAI,CAAC,iBAAiB,CAAC,IAAI,oBAAoB;AAC7C,YACE,mBAAmB,SAAS,aAC3B,mBAAmB,SAAS,YAAY,iBACzC;AACkB,4BAAA;AACd,cAAA,YAAY,GAAG,mBAAmB,UAAU;AAAA,QAClD;AAAA,MACF;AAAA,IACF;AAAA,IACA,EAAE,UAAU,KAAK;AAAA,EAAA;AAErB;AAjCgB;ACPJ,IAAA,wCAAAC,yBAAL;AACLA,uBAAA,YAAa,IAAA;AACbA,uBAAA,MAAO,IAAA;AACPA,uBAAA,YAAa,IAAA;AACbA,uBAAA,OAAQ,IAAA;AAJEA,SAAAA;AAAA,GAAA,uBAAA,CAAA,CAAA;AAOA,IAAA,6BAAAC,cAAL;AACLA,YAAA,OAAQ,IAAA;AACRA,YAAA,MAAO,IAAA;AACPA,YAAA,SAAU,IAAA;AACVA,YAAA,OAAQ,IAAA;AACRA,YAAA,UAAW,IAAA;AALDA,SAAAA;AAAA,GAAA,YAAA,CAAA,CAAA;AAQA,IAAA,iCAAAC,kBAAL;AACLA,gBAAA,KAAM,IAAA;AACNA,gBAAA,MAAO,IAAA;AACPA,gBAAA,QAAS,IAAA;AACTA,gBAAA,QAAS,IAAA;AAJCA,SAAAA;AAAA,GAAA,gBAAA,CAAA,CAAA;AAOA,IAAA,+BAAAC,gBAAL;AAELA,cAAA,MAAO,IAAA;AAEPA,cAAA,SAAU,IAAA;AAEVA,cAAA,QAAS,IAAA;AANCA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AASA,IAAA,+BAAAC,gBAAL;AAELA,cAAA,MAAO,IAAA;AAEPA,cAAA,SAAU,IAAA;AAEVA,cAAA,QAAS,IAAA;AANCA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AASA,IAAA,2CAAAC,4BAAL;AACLA,0BAAA,MAAO,IAAA;AACPA,0BAAA,MAAO,IAAA;AACPA,0BAAA,MAAO,IAAA;AACPA,0BAAA,MAAO,IAAA;AACPA,0BAAA,MAAO,IAAA;AACPA,0BAAA,WAAY,IAAA;AACZA,0BAAA,SAAU,IAAA;AAPAA,SAAAA;AAAA,GAAA,0BAAA,CAAA,CAAA;AAUA,IAAA,yCAAAC,0BAAL;AACLA,wBAAA,MAAO,IAAA;AACPA,wBAAA,OAAQ,IAAA;AACRA,wBAAA,MAAO,IAAA;AACPA,wBAAA,SAAU,IAAA;AAJAA,SAAAA;AAAA,GAAA,wBAAA,CAAA,CAAA;AAOA,IAAA,mCAAAC,oBAAL;AACLA,kBAAA,MAAO,IAAA;AACPA,kBAAA,SAAU,IAAA;AACVA,kBAAA,UAAW,IAAA;AACXA,kBAAA,YAAa,IAAA;AACbA,kBAAA,SAAU,IAAA;AACVA,kBAAA,QAAS,IAAA;AACTA,kBAAA,KAAM,IAAA;AAPIA,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;ACnCL,MAAM,wBAA6C;AAAA;AAAA,EAExD;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,UAAU;AAAA,IACjC,cAAc,WAAW;AAAA,IACzB,UAAU,wBAAC,UAAsB;AAC/B,cAAQ,OAAO;AAAA,QACb,KAAK,WAAW;AACd,iBAAO;QACT,KAAK,WAAW;AACP,iBAAA;AAAA,YACL,CAAC,aAAa,GAAG;AAAA,UAAA;AAAA,QAErB,KAAK,WAAW;AACP,iBAAA;AAAA,YACL,CAAC,qBAAqB,GAAG;AAAA,UAAA;AAAA,MAE/B;AAAA,IACF,GAbU;AAAA,EAcZ;AACF;AAEO,MAAM,sBAA2C;AAAA;AAAA,EAEtD;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,SAAS;AAAA,IACpB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,SAAS;AAAA,IACpB,MAAM;AAAA;AAAA,IAEN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,SAAS;AAAA,IACpB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,SAAS;AAAA,IACpB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,SAAS;AAAA,IACpB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,SAAS;AAAA,IACpB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,MAAM;AAAA,IACjB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,MAAM;AAAA,IACjB,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,UAAU;AAAA,IACjC,cAAc,WAAW;AAAA,IACzB,UAAU,wBAAC,UAAsB;AAC/B,cAAQ,OAAO;AAAA,QACb,KAAK,WAAW;AACd,iBAAO;QACT,KAAK,WAAW;AACP,iBAAA;AAAA,YACL,CAAC,aAAa,GAAG;AAAA,UAAA;AAAA,QAErB,KAAK,WAAW;AACP,iBAAA;AAAA,YACL,CAAC,qBAAqB,GAAG;AAAA,UAAA;AAAA,MAE/B;AAAA,IACF,GAbU;AAAA,EAcZ;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,WAAW;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,MACP,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,IACzB;AAAA,IACA,cAAc,uBAAuB;AAAA,IACrC,SAAS;AAAA,IACT,UAAU,wBAAC,UAAkC;AAC3C,cAAQ,OAAO;AAAA,QACb,KAAK,uBAAuB;AAC1B,iBAAO;QACT,KAAK,uBAAuB;AACnB,iBAAA;AAAA,YACL,CAAC,YAAY,GAAG;AAAA,UAAA;AAAA,QAEpB,KAAK,uBAAuB;AACnB,iBAAA;AAAA,YACL,CAAC,YAAY,GAAG;AAAA,UAAA;AAAA,QAEpB;AACE,iBAAO;MACX;AAAA,IACF,GAfU;AAAA,EAgBZ;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,WAAW;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,MACP,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,IACzB;AAAA,IACA,cAAc,uBAAuB;AAAA,IACrC,SAAS;AAAA,IACT,UAAU,wBAAC,UAAkC;AAC3C,cAAQ,OAAO;AAAA,QACb,KAAK,uBAAuB;AAC1B,iBAAO;QACT;AACS,iBAAA;AAAA,YACL,CAAC,GAAG,MAAM,YAAY,CAAC,OAAO,GAAG;AAAA,UAAA;AAAA,MAEvC;AAAA,IACF,GATU;AAAA,EAUZ;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,WAAW;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,MACP,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,IACzB;AAAA,IACA,cAAc,uBAAuB;AAAA,IACrC,SAAS;AAAA,IACT,UAAU,wBAAC,UAAkC;AAC3C,cAAQ,OAAO;AAAA,QACb,KAAK,uBAAuB;AAC1B,iBAAO;QACT;AACS,iBAAA;AAAA,YACL,CAAC,GAAG,MAAM,YAAY,CAAC,MAAM,GAAG;AAAA,UAAA;AAAA,MAEtC;AAAA,IACF,GATU;AAAA,EAUZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,WAAW;AAAA,IACtB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,WAAW;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,MACP,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,IACzB;AAAA,IACA,cAAc,uBAAuB;AAAA,IACrC,SAAS;AAAA,IACT,UAAU,wBAAC,UAAkC;AAC3C,cAAQ,OAAO;AAAA,QACb,KAAK,uBAAuB;AAC1B,iBAAO;QACT;AACS,iBAAA;AAAA,YACL,CAAC,GAAG,MAAM,YAAY,CAAC,WAAW,GAAG;AAAA,UAAA;AAAA,MAE3C;AAAA,IACF,GATU;AAAA,EAUZ;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,SAAS;AAAA,IACpB,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,mBAAmB;AAAA,IAC1C,cAAc,oBAAoB;AAAA,EACpC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,SAAS;AAAA,IACpB,MAAM;AAAA,IACN,cAAc;AAAA,IACd,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,OAAO;AAAA,IAClB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,OAAO;AAAA,IAClB,MAAM;AAAA,IACN,cAAc;AAAA,IACd,SAAS;AAAA,EACX;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,WAAW;AAAA,IACtB,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,oBAAoB;AAAA,IAC3C,cAAc,qBAAqB;AAAA,IACnC,UAAU,wBAAC,UAAgC;AACzC,cAAQ,OAAO;AAAA,QACb,KAAK,qBAAqB;AACxB,iBAAO;QACT;AACS,iBAAA;AAAA,YACL,CAAC,OAAO,MAAM,YAAY,CAAC,kBAAkB,GAAG;AAAA,UAAA;AAAA,MAEtD;AAAA,IACF,GATU;AAAA,EAUZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,WAAW;AAAA,IACtB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,WAAW;AAAA,IACtB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,cAAc;AAAA,IACrC,cAAc,eAAe;AAAA,IAC7B,UAAU,wBAAC,UAA0B;AACnC,cAAQ,OAAO;AAAA,QACb,KAAK,eAAe;AAClB,iBAAO;QACT;AACS,iBAAA;AAAA,YACL,CAAC,KAAK,GAAG;AAAA,UAAA;AAAA,MAEf;AAAA,IACF,GATU;AAAA,EAUZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,cAAc;AAAA,IACd,SACE;AAAA,EACJ;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,YAAY;AAAA,IACnC,cAAc,aAAa;AAAA,EAC7B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SACE;AAAA,IACF,UAAU,CAAC,QAAQ;AAAA,IACnB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,QAAQ;AAAA,IAC/B,cAAc,SAAS;AAAA,IACvB,UAAU,wBAAC,UAAoB;AACtB,aAAA;AAAA,QACL,SAAS;AAAA,MAAA;AAAA,IAEb,GAJU;AAAA,EAKZ;AAAA;AAAA,EAEA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,aAAa;AAAA,IACxB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,CAAC,aAAa;AAAA,IACxB,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AACF;AC5aO,SAAS,kBAAkC;AAChD,QAAM,aAAa,6BAAM,oBAAoB,gBAAgB,eAA1C;AAEnB,QAAM,mBAAmB,6BAAoB;AACrC,UAAA,gBAAgB,IAAI,OAAO;AACjC,UAAM,SAAuB,CAAA;AAC7B,QAAI,eAAe;AACjB,iBAAW,KAAK,eAAe;AACvB,cAAA,OAAO,cAAc,CAAC;AAC5B,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AACO,WAAA;AAAA,EAAA,GATgB;AAYnB,QAAA,0BAA0B,wBAAC,SAA0B;AACxC,qBAAA,EAAE,QAAQ,CAAC,SAAS;AAC/B,UAAA,KAAK,SAAS,MAAM;AACtB,aAAK,OAAO,gBAAgB;AAAA,MAAA,OACvB;AACL,aAAK,OAAO;AAAA,MACd;AAAA,IAAA,CACD;AAAA,EAAA,GAP6B;AAUzB,SAAA;AAAA,IACL;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM,gBAAgB,kBAAkB,GAAxC;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACd,YAAI,GAAG;MACT,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,6BAAM,gBAAgB,oBAAoB,GAA1C;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,mCAAY;AACd,cAAA,WAAW,iBAAmB,EAAA;AACpC,YAAI,CAAC,SAAU;AAET,cAAA,gBAAgB,aAAa,QAAQ;AAAA,MAC7C,GALU;AAAA,IAMZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,mCAAY;AACd,cAAA,WAAW,iBAAmB,EAAA;AACpC,YAAI,CAAC,SAAU;AAET,cAAA,gBAAgB,eAAe,QAAQ;AAAA,MAC/C,GALU;AAAA,IAMZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACE,wBAAA,eAAe,YAAY,UAAU;AAAA,MACvD,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACE,wBAAA,eAAe,gBAAgB,QAAQ;AAAA,MACzD,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,mCAAY;AACd,cAAA,WAAA,GAAc;MACtB,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,mCAAY;AACd,cAAA,WAAA,GAAc;MACtB,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,6BAAM;AACd,cAAM,eAAe;AACrB,YACE,CAAC,aAAa,IAAI,oBAAoB,KACtC,QAAQ,iBAAiB,GACzB;AACA,cAAI,MAAM;AACV,cAAI,MAAM;AACV,cAAI,oBAAoB,cAAc;AAAA,QACxC;AAAA,MACF,GAVU;AAAA,IAWZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,6BAAM;AACd,YAAI,UAAU;AAAA,MAChB,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,6BAAM;AACd,YAAI,cAAc;AAAA,MACpB,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,mCAAY;AACpB,cAAM,IAAI;MACZ,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,mCAAY;AACpB,cAAM,IAAI;AACV,sBAAA,EAAgB,IAAI;AAAA,UAClB,UAAU;AAAA,UACV,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,MAAM;AAAA,QAAA,CACP;AAAA,MACH,GARU;AAAA,IASZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,mCAAY;AACpB,cAAM,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC;AACrC,sBAAA,EAAgB,IAAI;AAAA,UAClB,UAAU;AAAA,UACV,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,MAAM;AAAA,QAAA,CACP;AAAA,MACH,GARU;AAAA,IASZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,6BAAM;AACR,cAAA,KAAK,IAAI,OAAO;AACnB,WAAA;AAAA,UACD,GAAG,QAAQ;AAAA,UACX,GAAG,UAAU,CAAC,GAAG,QAAQ,QAAQ,GAAG,GAAG,QAAQ,SAAS,CAAC,IAAI;AAAA,QAAA;AAE3D,YAAA,OAAO,SAAS,MAAM,IAAI;AAAA,MAChC,GAPU;AAAA,IAQZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,6BAAM;AACR,cAAA,KAAK,IAAI,OAAO;AACnB,WAAA;AAAA,UACD,GAAG,QAAQ;AAAA,UACX,GAAG,UAAU,CAAC,GAAG,QAAQ,QAAQ,GAAG,GAAG,QAAQ,SAAS,CAAC,IAAI;AAAA,QAAA;AAE3D,YAAA,OAAO,SAAS,MAAM,IAAI;AAAA,MAChC,GAPU;AAAA,IAQZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,6BAAM;AACV,YAAA,IAAI,OAAO,OAAO;AACpB,wBAAA,EAAgB,IAAI;AAAA,YAClB,UAAU;AAAA,YACV,SAAS;AAAA,YACT,MAAM;AAAA,UAAA,CACP;AACD;AAAA,QACF;AACA,YAAI,OAAO;MACb,GAVU;AAAA,IAWZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU,6BAAM;AACd,YAAI,OAAO,WAAW,IAAI,CAAC,IAAI,OAAO,WAAW;AAAA,MACnD,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MAEd,WAAW,MAAM;AACf,cAAM,eAAe;AACrB,YAAI,sBAAsB,UAAU;AAEpC,eAAO,MAAM;AACL,gBAAA,cAAc,aAAa,IAAI,sBAAsB;AAEvD,cAAA,gBAAgB,UAAU,aAAa;AAE5B,yBAAA,IAAI,wBAAwB,mBAAmB;AAAA,UAAA,OACvD;AAEiB,kCAAA;AACT,yBAAA,IAAI,wBAAwB,UAAU,WAAW;AAAA,UAChE;AAAA,QAAA;AAAA,MACF,GACC;AAAA,IACL;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACR,cAAA,aAAa,sBAAwB,EAAA;AACvC,YAAA,YAAY,GAAG,UAAU;AAAA,MAC/B,GAHU;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACR,cAAA,aAAa,sBAAwB,EAAA;AACvC,YAAA,YAAY,IAAI,UAAU;AAAA,MAChC,GAHU;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACK;MACrB,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACR,cAAA,EAAE,OAAW,IAAA;AACf,YAAA,CAAC,OAAO,eAAe,MAAM;AAC/B,wBAAA,EAAgB,IAAI;AAAA,YAClB,UAAU;AAAA,YACV,SAAS;AAAA,YACT,QACE;AAAA,YACF,MAAM;AAAA,UAAA,CACP;AACD;AAAA,QACF;AACM,cAAA,QAAQ,IAAI;AACZ,cAAA,UAAU,kBAAkB;AAAA,UAChC;AAAA,QAAA;AAEI,cAAA,SAAS,OAAO,eAAe,OAAO;AACrC,eAAA,MAAM,IAAI,KAAK;AACtB,8BAAsB,oBAAoB;AAAA,MAC5C,GAnBU;AAAA,IAoBZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACd,wBAAgB,uBAAuB;AAAA,MACzC,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACd,wBAAgB,2BAA2B;AAAA,MAC7C,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACd,gCAAwB,gBAAgB,KAAK;AAAA,MAC/C,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACd,gCAAwB,gBAAgB,MAAM;AAAA,MAChD,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACG,yBAAA,EAAE,QAAQ,CAAC,SAAS;AAC9B,eAAA,IAAI,CAAC,KAAK,MAAM;AAAA,QAAA,CACtB;AAAA,MACH,GAJU;AAAA,IAKZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACH,mBAAA5J,SAAQ,IAAI,OAAO,eAAe;AACvC,cAAAA,iBAAgB,cAAcA,iBAAgB,aAAa;AACxD,YAAAA,MAAA,IAAI,CAACA,MAAK,MAAM;AAAA,UACvB;AAAA,QACF;AAAA,MACF,GANU;AAAA,IAOZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACG,yBAAA,EAAE,QAAQ,CAAC,SAAS;AACnC,eAAK,SAAS;AAAA,QAAA,CACf;AAAA,MACH,GAJU;AAAA,IAKZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAiB,uBAAA;AACf,YAAI,oBAA4B;AAG1B,cAAA,aAAa,wBAAC,YAAoB,YAAY,SAAjC;AACnB,eAAO,MAAM;AACX,gBAAM,eAAe;AACf,gBAAA,eAAe,aAAa,IAAI,oBAAoB;AACtD,cAAA,WAAW,YAAY,GAAG;AACR,gCAAA;AACP,yBAAA,IAAI,sBAAsB,OAAO;AAAA,UAAA,OACzC;AACQ,yBAAA,IAAI,sBAAsB,iBAAiB;AAAA,UAC1D;AAAA,QAAA;AAAA,MACF,GACC;AAAA,IACL;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACd,4BAAA,EAAsB;MACxB,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACd,0BAAA,EAAoB;MACtB,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACH,mBAAA,SAAS,IAAI,OAAO,eAAe;AAC5C,cAAI,iBAAiB,aAAa;AAChC,kBAAM,qBAAqB;AACrB,kBAAA,UAAU,kBAAkB;AAAA,cAChC;AAAA,YAAA;AAEI,kBAAA,SAAS,MAAM,UAAU,OAAO;AACtC,gBAAI,MAAM;UACZ;AAAA,QACF;AAAA,MACF,GAXU;AAAA,IAYZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,cAAc;AAAA,MACd,UAAU,6BAAM;AACP,eAAA;AAAA,UACL;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ,GALU;AAAA,IAMZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,cAAc;AAAA,MACd,UAAU,6BAAM;AACP,eAAA,KAAK,2BAA2B,QAAQ;AAAA,MACjD,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,cAAc;AAAA,MACd,UAAU,6BAAM;AACP,eAAA,KAAK,iCAAiC,QAAQ;AAAA,MACvD,GAFU;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU,6BAAM;AACd,0BAAA,EAAoB;MACtB,GAFU;AAAA,IAGZ;AAAA,EAAA;AAEJ;AAjegB;;;;ACsBM;AAEhB,UAAA,EAAE,MAAM;AACd,UAAM,QAAQ;AACd,UAAM,eAAe;AACrB,UAAM,iBAAiB;AAEvB,UAAMP,UAAQ,SAAiB,MAAM,aAAa,IAAI,oBAAoB,CAAC;AAE3E;AAAA,MACEA;AAAA,MACA,CAAC,aAAa;AACZ,cAAM,mBAAmB;AACzB,cAAM,cAAc,aAAa;AACjC,YAAI,aAAa;AACN,mBAAA,KAAK,UAAU,IAAI,gBAAgB;AAAA,QAAA,OACvC;AACI,mBAAA,KAAK,UAAU,OAAO,gBAAgB;AAAA,QACjD;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,gBAAY,MAAM;AACV,YAAA,WAAW,aAAa,IAAI,+BAA+B;AACjE,eAAS,gBAAgB,MAAM;AAAA,QAC7B;AAAA,QACA,GAAG,QAAQ;AAAA,MAAA;AAAA,IACb,CACD;AAED,gBAAY,MAAM;AACV,YAAA,UAAU,aAAa,IAAI,gCAAgC;AACjE,eAAS,gBAAgB,MAAM;AAAA,QAC7B;AAAA,QACA,GAAG,OAAO;AAAA,MAAA;AAAA,IACZ,CACD;AAED,gBAAY,MAAM;AACV,YAAA,SAAS,aAAa,IAAI,cAAc;AAC9C,UAAI,QAAQ;AACL,aAAA,OAAO,OAAO,QAAQ;AAAA,MAC7B;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACV,YAAA,aAAa,aAAa,IAAI,kBAAkB;AACtD,UAAI,eAAe,YAAY;AAC7B,YAAI,GAAG,cAAc,MAAM,eAAe,SAAS;AACnD,YAAI,GAAG;MAAoB,OACtB;AACL,YAAI,GAAG,cAAc,MAAM,YAAY,WAAW,MAAM;AAAA,MAC1D;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACF,oBAAA,EAAE,kBAAkB,aAAa;AAAA,QAC7C;AAAA,MAAA;AAAA,IACF,CACD;AAED,UAAM,OAAO,6BAAM;AACJ,mBAAA,YAAY,IAAI,GAAG,QAAQ;AACxC,YAAM,eAAe;AACL,sBAAA,EAAE,iBAAiB,YAAY;AAC/C,uBAAA,EAAmB;AACnB,yBAAA,EAAqB;AACrB,yBAAA,EAAqB;AACrB,0BAAA,EAAsB;AACtB,UAAI,mBAAmB;IAAkB,GAR9B;AAWb,UAAM,6BAA6B;AAC7B,UAAA,WAAW,wBAAC,MAA0C;AAC1D,iCAA2B,OAAO,CAAC;AAAA,IAAA,GADpB;AAIjB,UAAM,sBAA2C;AAAA,MAC/C,UAAU;AAAA,MACV,SAAS,EAAE,gBAAgB;AAAA,IAAA;AAG7B,UAAM,iBAAiB,6BAAM;AAC3B,YAAM,OAAO,mBAAmB;AAChC,YAAM,IAAI,mBAAmB;AAAA,IAAA,GAFR;AAKvB,UAAM,gBAAgB,6BAAM;AAC1B,YAAM,OAAO,mBAAmB;AAChC,YAAM,IAAI;AAAA,QACR,UAAU;AAAA,QACV,SAAS,EAAE,eAAe;AAAA,QAC1B,MAAM;AAAA,MAAA,CACP;AAAA,IAAA,GANmB;AAStB,cAAU,MAAM;AACV,UAAA,iBAAiB,UAAU,QAAQ;AACnC,UAAA,iBAAiB,gBAAgB,cAAc;AAC/C,UAAA,iBAAiB,eAAe,aAAa;AACjD,qBAAe,oBAAoB;AAE/B,UAAA;AACG;eACE,GAAG;AACF,gBAAA,MAAM,mCAAmC,CAAC;AAAA,MACpD;AAAA,IAAA,CACD;AAED,oBAAgB,MAAM;AAChB,UAAA,oBAAoB,UAAU,QAAQ;AACtC,UAAA,oBAAoB,gBAAgB,cAAc;AAClD,UAAA,oBAAoB,eAAe,aAAa;AACpD,qBAAe,sBAAsB;AAAA,IAAA,CACtC;AAED,UAAM,eAAe,6BAAM;AACzB;AAAA,QACE,MAAM;AAGJ,6BAAA,EAAqB;AAGrB,+BAAuB,EAAA;AAAA,YACrB;AAAA,YACA,aAAa,IAAI,iCAAiC;AAAA,UAAA;AAIpD,wBAAA,EAAgB;AAKA,4BAAE,kBAAkB,4BAA4B,EAAE;AAGlE,gCAAA,EAAwB;QAC1B;AAAA,QACA,EAAE,SAAS,IAAK;AAAA,MAAA;AAAA,IAClB,GAzBmB;;;;;;;;;;;;;","x_google_ignoreList":[2,3,10,11,12,13,15,16,17,18,20,21,30,31,35,36,41,42,44,45,46,47,48,49]} \ No newline at end of file +{"version":3,"file":"GraphView-BWxgNrh6.js","sources":["../../src/stores/graphStore.ts","../../src/components/graph/TitleEditor.vue","../../node_modules/primevue/overlaybadge/style/index.mjs","../../node_modules/primevue/overlaybadge/index.mjs","../../src/components/sidebar/SidebarIcon.vue","../../src/components/sidebar/SidebarThemeToggleIcon.vue","../../src/components/sidebar/SidebarSettingsToggleIcon.vue","../../src/components/sidebar/SidebarLogoutIcon.vue","../../src/components/common/ExtensionSlot.vue","../../src/components/sidebar/SideToolbar.vue","../../node_modules/primevue/tablist/style/index.mjs","../../node_modules/primevue/tablist/index.mjs","../../node_modules/primevue/tab/style/index.mjs","../../node_modules/primevue/tab/index.mjs","../../src/components/bottomPanel/BottomPanel.vue","../../node_modules/primevue/splitter/style/index.mjs","../../node_modules/primevue/splitter/index.mjs","../../node_modules/primevue/splitterpanel/style/index.mjs","../../node_modules/primevue/splitterpanel/index.mjs","../../src/components/LiteGraphCanvasSplitterOverlay.vue","../../node_modules/primevue/autocomplete/style/index.mjs","../../node_modules/primevue/autocomplete/index.mjs","../../src/components/primevueOverride/AutoCompletePlus.vue","../../src/components/searchbox/NodeSearchItem.vue","../../src/components/searchbox/NodeSearchBox.vue","../../src/types/litegraphTypes.ts","../../src/stores/workspace/searchBoxStore.ts","../../src/components/searchbox/NodeSearchBoxPopover.vue","../../src/components/graph/NodeTooltip.vue","../../src/components/graph/NodeBadge.vue","../../node_modules/primevue/buttongroup/style/index.mjs","../../node_modules/primevue/buttongroup/index.mjs","../../src/components/graph/GraphCanvasMenu.vue","../../src/components/graph/GraphCanvas.vue","../../src/components/MenuHamburger.vue","../../node_modules/primevue/toast/style/index.mjs","../../node_modules/primevue/toast/index.mjs","../../src/components/toast/GlobalToast.vue","../../src/components/dialog/UnloadWindowConfirmDialog.vue","../../src/components/BrowserTabTitle.vue","../../src/components/topbar/WorkflowTabs.vue","../../node_modules/primevue/menubar/style/index.mjs","../../node_modules/primevue/menubar/index.mjs","../../src/components/topbar/CommandMenubar.vue","../../node_modules/primevue/panel/style/index.mjs","../../node_modules/primevue/panel/index.mjs","../../node_modules/primevue/tieredmenu/style/index.mjs","../../node_modules/primevue/tieredmenu/index.mjs","../../node_modules/primevue/splitbutton/style/index.mjs","../../node_modules/primevue/splitbutton/index.mjs","../../src/components/actionbar/BatchCountEdit.vue","../../src/components/actionbar/ComfyQueueButton.vue","../../src/components/actionbar/ComfyActionbar.vue","../../src/components/topbar/BottomPanelToggleButton.vue","../../src/components/topbar/TopMenubar.vue","../../src/services/autoQueueService.ts","../../src/types/serverArgs.ts","../../src/constants/serverConfig.ts","../../src/hooks/coreCommandHooks.ts","../../src/views/GraphView.vue"],"sourcesContent":["import { LGraphNode, LGraphGroup, LGraphCanvas } from '@comfyorg/litegraph'\nimport { defineStore } from 'pinia'\nimport { shallowRef } from 'vue'\n\nexport const useTitleEditorStore = defineStore('titleEditor', () => {\n const titleEditorTarget = shallowRef(null)\n\n return {\n titleEditorTarget\n }\n})\n\nexport const useCanvasStore = defineStore('canvas', () => {\n /**\n * The LGraphCanvas instance.\n *\n * The root LGraphCanvas object is shallow reactive.\n */\n const canvas = shallowRef(null)\n\n return {\n canvas\n }\n})\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-overlaybadge {\\n position: relative;\\n}\\n\\n.p-overlaybadge .p-badge {\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(50%, -50%);\\n transform-origin: 100% 0;\\n margin: 0;\\n outline-width: \".concat(dt('overlaybadge.outline.width'), \";\\n outline-style: solid;\\n outline-color: \").concat(dt('overlaybadge.outline.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-overlaybadge'\n};\nvar OverlayBadgeStyle = BaseStyle.extend({\n name: 'overlaybadge',\n theme: theme,\n classes: classes\n});\n\nexport { OverlayBadgeStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import Badge from 'primevue/badge';\nimport OverlayBadgeStyle from 'primevue/overlaybadge/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, renderSlot, createVNode } from 'vue';\n\nvar script$1 = {\n name: 'OverlayBadge',\n \"extends\": Badge,\n style: OverlayBadgeStyle,\n provide: function provide() {\n return {\n $pcOverlayBadge: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'OverlayBadge',\n \"extends\": script$1,\n inheritAttrs: false,\n components: {\n Badge: Badge\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Badge = resolveComponent(\"Badge\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\"), createVNode(_component_Badge, mergeProps(_ctx.$props, {\n pt: _ctx.ptm('pcBadge')\n }), null, 16, [\"pt\"])], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-tablist',\n content: function content(_ref) {\n var instance = _ref.instance;\n return ['p-tablist-content', {\n 'p-tablist-viewport': instance.$pcTabs.scrollable\n }];\n },\n tabList: 'p-tablist-tab-list',\n activeBar: 'p-tablist-active-bar',\n prevButton: 'p-tablist-prev-button p-tablist-nav-button',\n nextButton: 'p-tablist-next-button p-tablist-nav-button'\n};\nvar TabListStyle = BaseStyle.extend({\n name: 'tablist',\n classes: classes\n});\n\nexport { TabListStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getWidth, findSingle, getOuterHeight, getOffset, getOuterWidth, getHeight } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabListStyle from 'primevue/tablist/style';\nimport Ripple from 'primevue/ripple';\nimport { resolveDirective, openBlock, createElementBlock, mergeProps, withDirectives, createBlock, resolveDynamicComponent, createCommentVNode, createElementVNode, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseTabList',\n \"extends\": BaseComponent,\n props: {},\n style: TabListStyle,\n provide: function provide() {\n return {\n $pcTabList: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabList',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n data: function data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators: function showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler: function handler() {\n this.updateInkBar();\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n this.$nextTick(function () {\n _this.updateInkBar();\n });\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n },\n updated: function updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindResizeObserver();\n },\n methods: {\n onScroll: function onScroll(event) {\n this.showNavigators && this.updateButtonState();\n event.preventDefault();\n },\n onPrevButtonClick: function onPrevButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content);\n var pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick: function onNextButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content) - this.getVisibleButtonWidths();\n var pos = content.scrollLeft + width;\n var lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n bindResizeObserver: function bindResizeObserver() {\n var _this2 = this;\n this.resizeObserver = new ResizeObserver(function () {\n return _this2.updateButtonState();\n });\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver: function unbindResizeObserver() {\n var _this$resizeObserver;\n (_this$resizeObserver = this.resizeObserver) === null || _this$resizeObserver === void 0 || _this$resizeObserver.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar: function updateInkBar() {\n var _this$$refs = this.$refs,\n content = _this$$refs.content,\n inkbar = _this$$refs.inkbar,\n tabs = _this$$refs.tabs;\n var activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState: function updateButtonState() {\n var _this$$refs2 = this.$refs,\n list = _this$$refs2.list,\n content = _this$$refs2.content;\n var scrollLeft = content.scrollLeft,\n scrollTop = content.scrollTop,\n scrollWidth = content.scrollWidth,\n scrollHeight = content.scrollHeight,\n offsetWidth = content.offsetWidth,\n offsetHeight = content.offsetHeight;\n var _ref = [getWidth(content), getHeight(content)],\n width = _ref[0],\n height = _ref[1];\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths: function getVisibleButtonWidths() {\n var _this$$refs3 = this.$refs,\n prevBtn = _this$$refs3.prevBtn,\n nextBtn = _this$$refs3.nextBtn;\n return [prevBtn, nextBtn].reduce(function (acc, el) {\n return el ? acc + getWidth(el) : acc;\n }, 0);\n }\n },\n computed: {\n templates: function templates() {\n return this.$pcTabs.$slots;\n },\n activeValue: function activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators: function showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel: function prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel: function nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n components: {\n ChevronLeftIcon: ChevronLeftIcon,\n ChevronRightIcon: ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"aria-label\", \"tabindex\"];\nvar _hoisted_2 = [\"aria-orientation\"];\nvar _hoisted_3 = [\"aria-label\", \"tabindex\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"list\",\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [$options.showNavigators && $data.isPrevButtonEnabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"prevButton\",\n \"class\": _ctx.cx('prevButton'),\n \"aria-label\": $options.prevButtonAriaLabel,\n tabindex: $options.$pcTabs.tabindex,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onPrevButtonClick && $options.onPrevButtonClick.apply($options, arguments);\n })\n }, _ctx.ptm('prevButton'), {\n \"data-pc-group-section\": \"navigator\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($options.templates.previcon || 'ChevronLeftIcon'), mergeProps({\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('prevIcon')), null, 16))], 16, _hoisted_1)), [[_directive_ripple]]) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n ref: \"content\",\n \"class\": _ctx.cx('content'),\n onScroll: _cache[1] || (_cache[1] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n })\n }, _ctx.ptm('content')), [createElementVNode(\"div\", mergeProps({\n ref: \"tabs\",\n \"class\": _ctx.cx('tabList'),\n role: \"tablist\",\n \"aria-orientation\": $options.$pcTabs.orientation || 'horizontal'\n }, _ctx.ptm('tabList')), [renderSlot(_ctx.$slots, \"default\"), createElementVNode(\"span\", mergeProps({\n ref: \"inkbar\",\n \"class\": _ctx.cx('activeBar'),\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('activeBar')), null, 16)], 16, _hoisted_2)], 16), $options.showNavigators && $data.isNextButtonEnabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 1,\n ref: \"nextButton\",\n \"class\": _ctx.cx('nextButton'),\n \"aria-label\": $options.nextButtonAriaLabel,\n tabindex: $options.$pcTabs.tabindex,\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.onNextButtonClick && $options.onNextButtonClick.apply($options, arguments);\n })\n }, _ctx.ptm('nextButton'), {\n \"data-pc-group-section\": \"navigator\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($options.templates.nexticon || 'ChevronRightIcon'), mergeProps({\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('nextIcon')), null, 16))], 16, _hoisted_3)), [[_directive_ripple]]) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance,\n props = _ref.props;\n return ['p-tab', {\n 'p-tab-active': instance.active,\n 'p-disabled': props.disabled\n }];\n }\n};\nvar TabStyle = BaseStyle.extend({\n name: 'tab',\n classes: classes\n});\n\nexport { TabStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getAttribute, findSingle, focus } from '@primeuix/utils/dom';\nimport { equals } from '@primeuix/utils/object';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveDirective, withDirectives, openBlock, createBlock, resolveDynamicComponent, withCtx, renderSlot, normalizeClass } from 'vue';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabStyle from 'primevue/tab/style';\n\nvar script$1 = {\n name: 'BaseTab',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n as: {\n type: [String, Object],\n \"default\": 'BUTTON'\n },\n asChild: {\n type: Boolean,\n \"default\": false\n }\n },\n style: TabStyle,\n provide: function provide() {\n return {\n $pcTab: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Tab',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$pcTabs', '$pcTabList'],\n methods: {\n onFocus: function onFocus() {\n this.$pcTabs.selectOnFocus && this.changeActiveValue();\n },\n onClick: function onClick() {\n this.changeActiveValue();\n },\n onKeydown: function onKeydown(event) {\n switch (event.code) {\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var nextTab = this.findNextTab(event.currentTarget);\n nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event);\n event.preventDefault();\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var prevTab = this.findPrevTab(event.currentTarget);\n prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event);\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event) {\n var firstTab = this.findFirstTab();\n this.changeFocusedTab(event, firstTab);\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var lastTab = this.findLastTab();\n this.changeFocusedTab(event, lastTab);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.findLastTab());\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(this.findFirstTab());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n this.changeActiveValue();\n event.preventDefault();\n },\n findNextTab: function findNextTab(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var element = selfCheck ? tabElement : tabElement.nextElementSibling;\n return element ? getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findNextTab(element) : findSingle(element, '[data-pc-name=\"tab\"]') : null;\n },\n findPrevTab: function findPrevTab(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var element = selfCheck ? tabElement : tabElement.previousElementSibling;\n return element ? getAttribute(element, 'data-p-disabled') || getAttribute(element, 'data-pc-section') === 'inkbar' ? this.findPrevTab(element) : findSingle(element, '[data-pc-name=\"tab\"]') : null;\n },\n findFirstTab: function findFirstTab() {\n return this.findNextTab(this.$pcTabList.$refs.content.firstElementChild, true);\n },\n findLastTab: function findLastTab() {\n return this.findPrevTab(this.$pcTabList.$refs.content.lastElementChild, true);\n },\n changeActiveValue: function changeActiveValue() {\n this.$pcTabs.updateValue(this.value);\n },\n changeFocusedTab: function changeFocusedTab(event, element) {\n focus(element);\n this.scrollInView(element);\n },\n scrollInView: function scrollInView(element) {\n var _element$scrollIntoVi;\n element === null || element === void 0 || (_element$scrollIntoVi = element.scrollIntoView) === null || _element$scrollIntoVi === void 0 || _element$scrollIntoVi.call(element, {\n block: 'nearest'\n });\n }\n },\n computed: {\n active: function active() {\n var _this$$pcTabs;\n return equals((_this$$pcTabs = this.$pcTabs) === null || _this$$pcTabs === void 0 ? void 0 : _this$$pcTabs.d_value, this.value);\n },\n id: function id() {\n var _this$$pcTabs2;\n return \"\".concat((_this$$pcTabs2 = this.$pcTabs) === null || _this$$pcTabs2 === void 0 ? void 0 : _this$$pcTabs2.id, \"_tab_\").concat(this.value);\n },\n ariaControls: function ariaControls() {\n var _this$$pcTabs3;\n return \"\".concat((_this$$pcTabs3 = this.$pcTabs) === null || _this$$pcTabs3 === void 0 ? void 0 : _this$$pcTabs3.id, \"_tabpanel_\").concat(this.value);\n },\n attrs: function attrs() {\n return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n asAttrs: function asAttrs() {\n return this.as === 'BUTTON' ? {\n type: 'button',\n disabled: this.disabled\n } : undefined;\n },\n a11yAttrs: function a11yAttrs() {\n return {\n id: this.id,\n tabindex: this.active ? this.$pcTabs.tabindex : -1,\n role: 'tab',\n 'aria-selected': this.active,\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'tab',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active,\n onFocus: this.onFocus,\n onKeydown: this.onKeydown\n };\n },\n ptParams: function ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return !_ctx.asChild ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n \"class\": _ctx.cx('root'),\n onClick: $options.onClick\n }, $options.attrs), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 3\n }, 16, [\"class\", \"onClick\"])), [[_directive_ripple]]) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('root')),\n active: $options.active,\n a11yAttrs: $options.a11yAttrs,\n onClick: $options.onClick\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-splitter {\\n display: flex;\\n flex-wrap: nowrap;\\n border: 1px solid \".concat(dt('splitter.border.color'), \";\\n background: \").concat(dt('splitter.background'), \";\\n border-radius: \").concat(dt('border.radius.md'), \";\\n color: \").concat(dt('splitter.color'), \";\\n}\\n\\n.p-splitter-vertical {\\n flex-direction: column;\\n}\\n\\n.p-splitter-gutter {\\n flex-grow: 0;\\n flex-shrink: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 1;\\n background: \").concat(dt('splitter.gutter.background'), \";\\n}\\n\\n.p-splitter-gutter-handle {\\n border-radius: \").concat(dt('splitter.handle.border.radius'), \";\\n background: \").concat(dt('splitter.handle.background'), \";\\n transition: outline-color \").concat(dt('splitter.transition.duration'), \", box-shadow \").concat(dt('splitter.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-splitter-gutter-handle:focus-visible {\\n box-shadow: \").concat(dt('splitter.handle.focus.ring.shadow'), \";\\n outline: \").concat(dt('splitter.handle.focus.ring.width'), \" \").concat(dt('splitter.handle.focus.ring.style'), \" \").concat(dt('splitter.handle.focus.ring.color'), \";\\n outline-offset: \").concat(dt('splitter.handle.focus.ring.offset'), \";\\n}\\n\\n.p-splitter-horizontal.p-splitter-resizing {\\n cursor: col-resize;\\n user-select: none;\\n}\\n\\n.p-splitter-vertical.p-splitter-resizing {\\n cursor: row-resize;\\n user-select: none;\\n}\\n\\n.p-splitter-horizontal > .p-splitter-gutter > .p-splitter-gutter-handle {\\n height: \").concat(dt('splitter.handle.size'), \";\\n width: 100%;\\n}\\n\\n.p-splitter-vertical > .p-splitter-gutter > .p-splitter-gutter-handle {\\n width: \").concat(dt('splitter.handle.size'), \";\\n height: 100%;\\n}\\n\\n.p-splitter-horizontal > .p-splitter-gutter {\\n cursor: col-resize;\\n}\\n\\n.p-splitter-vertical > .p-splitter-gutter {\\n cursor: row-resize;\\n}\\n\\n.p-splitterpanel {\\n flex-grow: 1;\\n overflow: hidden;\\n}\\n\\n.p-splitterpanel-nested {\\n display: flex;\\n}\\n\\n.p-splitterpanel .p-splitter {\\n flex-grow: 1;\\n border: 0 none;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-splitter p-component', 'p-splitter-' + props.layout];\n },\n gutter: 'p-splitter-gutter',\n gutterHandle: 'p-splitter-gutter-handle'\n};\nvar inlineStyles = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return [{\n display: 'flex',\n 'flex-wrap': 'nowrap'\n }, props.layout === 'vertical' ? {\n 'flex-direction': 'column'\n } : ''];\n }\n};\nvar SplitterStyle = BaseStyle.extend({\n name: 'splitter',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { SplitterStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getVNodeProp } from '@primevue/core/utils';\nimport { getWidth, getHeight, getOuterWidth, getOuterHeight } from '@primeuix/utils/dom';\nimport { isArray } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SplitterStyle from 'primevue/splitter/style';\nimport { openBlock, createElementBlock, mergeProps, Fragment, renderList, createBlock, resolveDynamicComponent, createElementVNode, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitter',\n \"extends\": BaseComponent,\n props: {\n layout: {\n type: String,\n \"default\": 'horizontal'\n },\n gutterSize: {\n type: Number,\n \"default\": 4\n },\n stateKey: {\n type: String,\n \"default\": null\n },\n stateStorage: {\n type: String,\n \"default\": 'session'\n },\n step: {\n type: Number,\n \"default\": 5\n }\n },\n style: SplitterStyle,\n provide: function provide() {\n return {\n $pcSplitter: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Splitter',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['resizestart', 'resizeend', 'resize'],\n dragging: false,\n mouseMoveListener: null,\n mouseUpListener: null,\n touchMoveListener: null,\n touchEndListener: null,\n size: null,\n gutterElement: null,\n startPos: null,\n prevPanelElement: null,\n nextPanelElement: null,\n nextPanelSize: null,\n prevPanelSize: null,\n panelSizes: null,\n prevPanelIndex: null,\n timer: null,\n data: function data() {\n return {\n prevSize: null\n };\n },\n mounted: function mounted() {\n var _this = this;\n if (this.panels && this.panels.length) {\n var initialized = false;\n if (this.isStateful()) {\n initialized = this.restoreState();\n }\n if (!initialized) {\n var children = _toConsumableArray(this.$el.children).filter(function (child) {\n return child.getAttribute('data-pc-name') === 'splitterpanel';\n });\n var _panelSizes = [];\n this.panels.map(function (panel, i) {\n var panelInitialSize = panel.props && panel.props.size ? panel.props.size : null;\n var panelSize = panelInitialSize || 100 / _this.panels.length;\n _panelSizes[i] = panelSize;\n children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (_this.panels.length - 1) * _this.gutterSize + 'px)';\n });\n this.panelSizes = _panelSizes;\n this.prevSize = parseFloat(_panelSizes[0]).toFixed(4);\n }\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.clear();\n this.unbindMouseListeners();\n },\n methods: {\n isSplitterPanel: function isSplitterPanel(child) {\n return child.type.name === 'SplitterPanel';\n },\n onResizeStart: function onResizeStart(event, index, isKeyDown) {\n this.gutterElement = event.currentTarget || event.target.parentElement;\n this.size = this.horizontal ? getWidth(this.$el) : getHeight(this.$el);\n if (!isKeyDown) {\n this.dragging = true;\n this.startPos = this.layout === 'horizontal' ? event.pageX || event.changedTouches[0].pageX : event.pageY || event.changedTouches[0].pageY;\n }\n this.prevPanelElement = this.gutterElement.previousElementSibling;\n this.nextPanelElement = this.gutterElement.nextElementSibling;\n if (isKeyDown) {\n this.prevPanelSize = this.horizontal ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true);\n this.nextPanelSize = this.horizontal ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true);\n } else {\n this.prevPanelSize = 100 * (this.horizontal ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true)) / this.size;\n this.nextPanelSize = 100 * (this.horizontal ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true)) / this.size;\n }\n this.prevPanelIndex = index;\n this.$emit('resizestart', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n this.$refs.gutter[index].setAttribute('data-p-gutter-resizing', true);\n this.$el.setAttribute('data-p-resizing', true);\n },\n onResize: function onResize(event, step, isKeyDown) {\n var newPos, newPrevPanelSize, newNextPanelSize;\n if (isKeyDown) {\n if (this.horizontal) {\n newPrevPanelSize = 100 * (this.prevPanelSize + step) / this.size;\n newNextPanelSize = 100 * (this.nextPanelSize - step) / this.size;\n } else {\n newPrevPanelSize = 100 * (this.prevPanelSize - step) / this.size;\n newNextPanelSize = 100 * (this.nextPanelSize + step) / this.size;\n }\n } else {\n if (this.horizontal) newPos = event.pageX * 100 / this.size - this.startPos * 100 / this.size;else newPos = event.pageY * 100 / this.size - this.startPos * 100 / this.size;\n newPrevPanelSize = this.prevPanelSize + newPos;\n newNextPanelSize = this.nextPanelSize - newPos;\n }\n if (this.validateResize(newPrevPanelSize, newNextPanelSize)) {\n this.prevPanelElement.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this.nextPanelElement.style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this.panelSizes[this.prevPanelIndex] = newPrevPanelSize;\n this.panelSizes[this.prevPanelIndex + 1] = newNextPanelSize;\n this.prevSize = parseFloat(newPrevPanelSize).toFixed(4);\n }\n this.$emit('resize', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n },\n onResizeEnd: function onResizeEnd(event) {\n if (this.isStateful()) {\n this.saveState();\n }\n this.$emit('resizeend', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n this.$refs.gutter.forEach(function (gutter) {\n return gutter.setAttribute('data-p-gutter-resizing', false);\n });\n this.$el.setAttribute('data-p-resizing', false);\n this.clear();\n },\n repeat: function repeat(event, index, step) {\n this.onResizeStart(event, index, true);\n this.onResize(event, step, true);\n },\n setTimer: function setTimer(event, index, step) {\n var _this2 = this;\n if (!this.timer) {\n this.timer = setInterval(function () {\n _this2.repeat(event, index, step);\n }, 40);\n }\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n },\n onGutterKeyUp: function onGutterKeyUp() {\n this.clearTimer();\n this.onResizeEnd();\n },\n onGutterKeyDown: function onGutterKeyDown(event, index) {\n switch (event.code) {\n case 'ArrowLeft':\n {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step * -1);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowRight':\n {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowDown':\n {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step * -1);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowUp':\n {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step);\n }\n event.preventDefault();\n break;\n }\n }\n },\n onGutterMouseDown: function onGutterMouseDown(event, index) {\n this.onResizeStart(event, index);\n this.bindMouseListeners();\n },\n onGutterTouchStart: function onGutterTouchStart(event, index) {\n this.onResizeStart(event, index);\n this.bindTouchListeners();\n event.preventDefault();\n },\n onGutterTouchMove: function onGutterTouchMove(event) {\n this.onResize(event);\n event.preventDefault();\n },\n onGutterTouchEnd: function onGutterTouchEnd(event) {\n this.onResizeEnd(event);\n this.unbindTouchListeners();\n event.preventDefault();\n },\n bindMouseListeners: function bindMouseListeners() {\n var _this3 = this;\n if (!this.mouseMoveListener) {\n this.mouseMoveListener = function (event) {\n return _this3.onResize(event);\n };\n document.addEventListener('mousemove', this.mouseMoveListener);\n }\n if (!this.mouseUpListener) {\n this.mouseUpListener = function (event) {\n _this3.onResizeEnd(event);\n _this3.unbindMouseListeners();\n };\n document.addEventListener('mouseup', this.mouseUpListener);\n }\n },\n bindTouchListeners: function bindTouchListeners() {\n var _this4 = this;\n if (!this.touchMoveListener) {\n this.touchMoveListener = function (event) {\n return _this4.onResize(event.changedTouches[0]);\n };\n document.addEventListener('touchmove', this.touchMoveListener);\n }\n if (!this.touchEndListener) {\n this.touchEndListener = function (event) {\n _this4.resizeEnd(event);\n _this4.unbindTouchListeners();\n };\n document.addEventListener('touchend', this.touchEndListener);\n }\n },\n validateResize: function validateResize(newPrevPanelSize, newNextPanelSize) {\n if (newPrevPanelSize > 100 || newPrevPanelSize < 0) return false;\n if (newNextPanelSize > 100 || newNextPanelSize < 0) return false;\n var prevPanelMinSize = getVNodeProp(this.panels[this.prevPanelIndex], 'minSize');\n if (this.panels[this.prevPanelIndex].props && prevPanelMinSize && prevPanelMinSize > newPrevPanelSize) {\n return false;\n }\n var newPanelMinSize = getVNodeProp(this.panels[this.prevPanelIndex + 1], 'minSize');\n if (this.panels[this.prevPanelIndex + 1].props && newPanelMinSize && newPanelMinSize > newNextPanelSize) {\n return false;\n }\n return true;\n },\n unbindMouseListeners: function unbindMouseListeners() {\n if (this.mouseMoveListener) {\n document.removeEventListener('mousemove', this.mouseMoveListener);\n this.mouseMoveListener = null;\n }\n if (this.mouseUpListener) {\n document.removeEventListener('mouseup', this.mouseUpListener);\n this.mouseUpListener = null;\n }\n },\n unbindTouchListeners: function unbindTouchListeners() {\n if (this.touchMoveListener) {\n document.removeEventListener('touchmove', this.touchMoveListener);\n this.touchMoveListener = null;\n }\n if (this.touchEndListener) {\n document.removeEventListener('touchend', this.touchEndListener);\n this.touchEndListener = null;\n }\n },\n clear: function clear() {\n this.dragging = false;\n this.size = null;\n this.startPos = null;\n this.prevPanelElement = null;\n this.nextPanelElement = null;\n this.prevPanelSize = null;\n this.nextPanelSize = null;\n this.gutterElement = null;\n this.prevPanelIndex = null;\n },\n isStateful: function isStateful() {\n return this.stateKey != null;\n },\n getStorage: function getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n case 'session':\n return window.sessionStorage;\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState: function saveState() {\n if (isArray(this.panelSizes)) {\n this.getStorage().setItem(this.stateKey, JSON.stringify(this.panelSizes));\n }\n },\n restoreState: function restoreState() {\n var _this5 = this;\n var storage = this.getStorage();\n var stateString = storage.getItem(this.stateKey);\n if (stateString) {\n this.panelSizes = JSON.parse(stateString);\n var children = _toConsumableArray(this.$el.children).filter(function (child) {\n return child.getAttribute('data-pc-name') === 'splitterpanel';\n });\n children.forEach(function (child, i) {\n child.style.flexBasis = 'calc(' + _this5.panelSizes[i] + '% - ' + (_this5.panels.length - 1) * _this5.gutterSize + 'px)';\n });\n return true;\n }\n return false;\n }\n },\n computed: {\n panels: function panels() {\n var _this6 = this;\n var panels = [];\n this.$slots[\"default\"]().forEach(function (child) {\n if (_this6.isSplitterPanel(child)) {\n panels.push(child);\n } else if (child.children instanceof Array) {\n child.children.forEach(function (nestedChild) {\n if (_this6.isSplitterPanel(nestedChild)) {\n panels.push(nestedChild);\n }\n });\n }\n });\n return panels;\n },\n gutterStyle: function gutterStyle() {\n if (this.horizontal) return {\n width: this.gutterSize + 'px'\n };else return {\n height: this.gutterSize + 'px'\n };\n },\n horizontal: function horizontal() {\n return this.layout === 'horizontal';\n },\n getPTOptions: function getPTOptions() {\n var _this$$parentInstance;\n return {\n context: {\n nested: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.nestedState\n }\n };\n }\n }\n};\n\nvar _hoisted_1 = [\"onMousedown\", \"onTouchstart\", \"onTouchmove\", \"onTouchend\"];\nvar _hoisted_2 = [\"aria-orientation\", \"aria-valuenow\", \"onKeydown\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n \"data-p-resizing\": false\n }, _ctx.ptmi('root', $options.getPTOptions)), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.panels, function (panel, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: i\n }, [(openBlock(), createBlock(resolveDynamicComponent(panel), {\n tabindex: \"-1\"\n })), i !== $options.panels.length - 1 ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref_for: true,\n ref: \"gutter\",\n \"class\": _ctx.cx('gutter'),\n role: \"separator\",\n tabindex: \"-1\",\n onMousedown: function onMousedown($event) {\n return $options.onGutterMouseDown($event, i);\n },\n onTouchstart: function onTouchstart($event) {\n return $options.onGutterTouchStart($event, i);\n },\n onTouchmove: function onTouchmove($event) {\n return $options.onGutterTouchMove($event, i);\n },\n onTouchend: function onTouchend($event) {\n return $options.onGutterTouchEnd($event, i);\n },\n \"data-p-gutter-resizing\": false\n }, _ctx.ptm('gutter')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('gutterHandle'),\n tabindex: \"0\",\n style: [$options.gutterStyle],\n \"aria-orientation\": _ctx.layout,\n \"aria-valuenow\": $data.prevSize,\n onKeyup: _cache[0] || (_cache[0] = function () {\n return $options.onGutterKeyUp && $options.onGutterKeyUp.apply($options, arguments);\n }),\n onKeydown: function onKeydown($event) {\n return $options.onGutterKeyDown($event, i);\n },\n ref_for: true\n }, _ctx.ptm('gutterHandle')), null, 16, _hoisted_2)], 16, _hoisted_1)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-splitterpanel', {\n 'p-splitterpanel-nested': instance.isNested\n }];\n }\n};\nvar SplitterPanelStyle = BaseStyle.extend({\n name: 'splitterpanel',\n classes: classes\n});\n\nexport { SplitterPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport SplitterPanelStyle from 'primevue/splitterpanel/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitterPanel',\n \"extends\": BaseComponent,\n props: {\n size: {\n type: Number,\n \"default\": null\n },\n minSize: {\n type: Number,\n \"default\": null\n }\n },\n style: SplitterPanelStyle,\n provide: function provide() {\n return {\n $pcSplitterPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'SplitterPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n data: function data() {\n return {\n nestedState: null\n };\n },\n computed: {\n isNested: function isNested() {\n var _this = this;\n return this.$slots[\"default\"]().some(function (child) {\n _this.nestedState = child.type.name === 'Splitter' ? true : null;\n return _this.nestedState;\n });\n },\n getPTOptions: function getPTOptions() {\n return {\n context: {\n nested: this.isNested\n }\n };\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root', $options.getPTOptions)), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import { isNotEmpty } from '@primeuix/utils/object';\nimport BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-autocomplete {\\n display: inline-flex;\\n}\\n\\n.p-autocomplete-loader {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5rem;\\n right: \".concat(dt('autocomplete.padding.x'), \";\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-loader {\\n right: calc(\").concat(dt('autocomplete.dropdown.width'), \" + \").concat(dt('autocomplete.padding.x'), \");\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input {\\n flex: 1 1 auto;\\n width: 1%;\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input,\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input-multiple {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.p-autocomplete-dropdown {\\n cursor: pointer;\\n display: inline-flex;\\n cursor: pointer;\\n user-select: none;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n width: \").concat(dt('autocomplete.dropdown.width'), \";\\n border-top-right-radius: \").concat(dt('autocomplete.dropdown.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('autocomplete.dropdown.border.radius'), \";\\n background: \").concat(dt('autocomplete.dropdown.background'), \";\\n border: 1px solid \").concat(dt('autocomplete.dropdown.border.color'), \";\\n border-left: 0 none;\\n color: \").concat(dt('autocomplete.dropdown.color'), \";\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \", outline-color \").concat(dt('autocomplete.transition.duration'), \", box-shadow \").concat(dt('autocomplete.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-autocomplete-dropdown:not(:disabled):hover {\\n background: \").concat(dt('autocomplete.dropdown.hover.background'), \";\\n border-color: \").concat(dt('autocomplete.dropdown.hover.border.color'), \";\\n color: \").concat(dt('autocomplete.dropdown.hover.color'), \";\\n}\\n\\n.p-autocomplete-dropdown:not(:disabled):active {\\n background: \").concat(dt('autocomplete.dropdown.active.background'), \";\\n border-color: \").concat(dt('autocomplete.dropdown.active.border.color'), \";\\n color: \").concat(dt('autocomplete.dropdown.active.color'), \";\\n}\\n\\n.p-autocomplete-dropdown:focus-visible {\\n box-shadow: \").concat(dt('autocomplete.dropdown.focus.ring.shadow'), \";\\n outline: \").concat(dt('autocomplete.dropdown.focus.ring.width'), \" \").concat(dt('autocomplete.dropdown.focus.ring.style'), \" \").concat(dt('autocomplete.dropdown.focus.ring.color'), \";\\n outline-offset: \").concat(dt('autocomplete.dropdown.focus.ring.offset'), \";\\n}\\n\\n.p-autocomplete .p-autocomplete-overlay {\\n min-width: 100%;\\n}\\n\\n.p-autocomplete-overlay {\\n position: absolute;\\n overflow: auto;\\n top: 0;\\n left: 0;\\n background: \").concat(dt('autocomplete.overlay.background'), \";\\n color: \").concat(dt('autocomplete.overlay.color'), \";\\n border: 1px solid \").concat(dt('autocomplete.overlay.border.color'), \";\\n border-radius: \").concat(dt('autocomplete.overlay.border.radius'), \";\\n box-shadow: \").concat(dt('autocomplete.overlay.shadow'), \";\\n}\\n\\n.p-autocomplete-list {\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('autocomplete.list.gap'), \";\\n padding: \").concat(dt('autocomplete.list.padding'), \";\\n}\\n\\n.p-autocomplete-option {\\n cursor: pointer;\\n white-space: nowrap;\\n position: relative;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n padding: \").concat(dt('autocomplete.option.padding'), \";\\n border: 0 none;\\n color: \").concat(dt('autocomplete.option.color'), \";\\n background: transparent;\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \";\\n border-radius: \").concat(dt('autocomplete.option.border.radius'), \";\\n}\\n\\n.p-autocomplete-option:not(.p-autocomplete-option-selected):not(.p-disabled).p-focus {\\n background: \").concat(dt('autocomplete.option.focus.background'), \";\\n color: \").concat(dt('autocomplete.option.focus.color'), \";\\n}\\n\\n.p-autocomplete-option-selected {\\n background: \").concat(dt('autocomplete.option.selected.background'), \";\\n color: \").concat(dt('autocomplete.option.selected.color'), \";\\n}\\n\\n.p-autocomplete-option-selected.p-focus {\\n background: \").concat(dt('autocomplete.option.selected.focus.background'), \";\\n color: \").concat(dt('autocomplete.option.selected.focus.color'), \";\\n}\\n\\n.p-autocomplete-option-group {\\n margin: 0;\\n padding: \").concat(dt('autocomplete.option.group.padding'), \";\\n color: \").concat(dt('autocomplete.option.group.color'), \";\\n background: \").concat(dt('autocomplete.option.group.background'), \";\\n font-weight: \").concat(dt('autocomplete.option.group.font.weight'), \";\\n}\\n\\n.p-autocomplete-input-multiple {\\n margin: 0;\\n list-style-type: none;\\n cursor: text;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n padding: calc(\").concat(dt('autocomplete.padding.y'), \" / 2) \").concat(dt('autocomplete.padding.x'), \";\\n gap: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n color: \").concat(dt('autocomplete.color'), \";\\n background: \").concat(dt('autocomplete.background'), \";\\n border: 1px solid \").concat(dt('autocomplete.border.color'), \";\\n border-radius: \").concat(dt('autocomplete.border.radius'), \";\\n width: 100%;\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \", outline-color \").concat(dt('autocomplete.transition.duration'), \", box-shadow \").concat(dt('autocomplete.transition.duration'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('autocomplete.shadow'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled):hover .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.hover.border.color'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.focus.border.color'), \";\\n box-shadow: \").concat(dt('autocomplete.focus.ring.shadow'), \";\\n outline: \").concat(dt('autocomplete.focus.ring.width'), \" \").concat(dt('autocomplete.focus.ring.style'), \" \").concat(dt('autocomplete.focus.ring.color'), \";\\n outline-offset: \").concat(dt('autocomplete.focus.ring.offset'), \";\\n}\\n\\n.p-autocomplete.p-invalid .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.invalid.border.color'), \";\\n}\\n\\n.p-variant-filled.p-autocomplete-input-multiple {\\n background: \").concat(dt('autocomplete.filled.background'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled).p-focus .p-variant-filled.p-autocomplete-input-multiple {\\n background: \").concat(dt('autocomplete.filled.focus.background'), \";\\n}\\n\\n.p-autocomplete.p-disabled .p-autocomplete-input-multiple {\\n opacity: 1;\\n background: \").concat(dt('autocomplete.disabled.background'), \";\\n color: \").concat(dt('autocomplete.disabled.color'), \";\\n}\\n\\n.p-autocomplete-chip.p-chip {\\n padding-top: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n border-radius: \").concat(dt('autocomplete.chip.border.radius'), \";\\n}\\n\\n.p-autocomplete-input-multiple:has(.p-autocomplete-chip) {\\n padding-left: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-right: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n}\\n\\n.p-autocomplete-chip-item.p-focus .p-autocomplete-chip {\\n background: \").concat(dt('inputchips.chip.focus.background'), \";\\n color: \").concat(dt('inputchips.chip.focus.color'), \";\\n}\\n\\n.p-autocomplete-input-chip {\\n flex: 1 1 auto;\\n display: inline-flex;\\n padding-top: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n}\\n\\n.p-autocomplete-input-chip input {\\n border: 0 none;\\n outline: 0 none;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n box-shadow: none;\\n border-radius: 0;\\n width: 100%;\\n font-family: inherit;\\n font-feature-settings: inherit;\\n font-size: 1rem;\\n color: inherit;\\n}\\n\\n.p-autocomplete-input-chip input::placeholder {\\n color: \").concat(dt('autocomplete.placeholder.color'), \";\\n}\\n\\n.p-autocomplete-empty-message {\\n padding: \").concat(dt('autocomplete.empty.message.padding'), \";\\n}\\n\\n.p-autocomplete-fluid {\\n display: flex;\\n}\\n\\n.p-autocomplete-fluid:has(.p-autocomplete-dropdown) .p-autocomplete-input {\\n width: 1%;\\n}\\n\");\n};\nvar inlineStyles = {\n root: {\n position: 'relative'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-autocomplete p-component p-inputwrapper', {\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-focus': instance.focused,\n 'p-inputwrapper-filled': props.modelValue || isNotEmpty(instance.inputValue),\n 'p-inputwrapper-focus': instance.focused,\n 'p-autocomplete-open': instance.overlayVisible,\n 'p-autocomplete-fluid': instance.hasFluid\n }];\n },\n pcInput: 'p-autocomplete-input',\n inputMultiple: function inputMultiple(_ref3) {\n var props = _ref3.props,\n instance = _ref3.instance;\n return ['p-autocomplete-input-multiple', {\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled'\n }];\n },\n chipItem: function chipItem(_ref4) {\n var instance = _ref4.instance,\n i = _ref4.i;\n return ['p-autocomplete-chip-item', {\n 'p-focus': instance.focusedMultipleOptionIndex === i\n }];\n },\n pcChip: 'p-autocomplete-chip',\n chipIcon: 'p-autocomplete-chip-icon',\n inputChip: 'p-autocomplete-input-chip',\n loader: 'p-autocomplete-loader',\n dropdown: 'p-autocomplete-dropdown',\n overlay: 'p-autocomplete-overlay p-component',\n list: 'p-autocomplete-list',\n optionGroup: 'p-autocomplete-option-group',\n option: function option(_ref5) {\n var instance = _ref5.instance,\n _option = _ref5.option,\n i = _ref5.i,\n getItemOptions = _ref5.getItemOptions;\n return ['p-autocomplete-option', {\n 'p-autocomplete-option-selected': instance.isSelected(_option),\n 'p-focus': instance.focusedOptionIndex === instance.getOptionIndex(i, getItemOptions),\n 'p-disabled': instance.isOptionDisabled(_option)\n }];\n },\n emptyMessage: 'p-autocomplete-empty-message'\n};\nvar AutoCompleteStyle = BaseStyle.extend({\n name: 'autocomplete',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { AutoCompleteStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { focus, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isEmpty, isNotEmpty, equals, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Chip from 'primevue/chip';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AutoCompleteStyle from 'primevue/autocomplete/style';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, createBlock, normalizeClass, normalizeStyle, createCommentVNode, Fragment, renderList, renderSlot, createVNode, withCtx, createElementVNode, resolveDynamicComponent, toDisplayString, Transition, createSlots, createTextVNode, withDirectives } from 'vue';\n\nvar script$1 = {\n name: 'BaseAutoComplete',\n \"extends\": BaseComponent,\n props: {\n modelValue: null,\n suggestions: {\n type: Array,\n \"default\": null\n },\n optionLabel: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n scrollHeight: {\n type: String,\n \"default\": '14rem'\n },\n dropdown: {\n type: Boolean,\n \"default\": false\n },\n dropdownMode: {\n type: String,\n \"default\": 'blank'\n },\n multiple: {\n type: Boolean,\n \"default\": false\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n placeholder: {\n type: String,\n \"default\": null\n },\n dataKey: {\n type: String,\n \"default\": null\n },\n minLength: {\n type: Number,\n \"default\": 1\n },\n delay: {\n type: Number,\n \"default\": 300\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n forceSelection: {\n type: Boolean,\n \"default\": false\n },\n completeOnFocus: {\n type: Boolean,\n \"default\": false\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n panelStyle: {\n type: Object,\n \"default\": null\n },\n panelClass: {\n type: [String, Object],\n \"default\": null\n },\n overlayStyle: {\n type: Object,\n \"default\": null\n },\n overlayClass: {\n type: [String, Object],\n \"default\": null\n },\n dropdownIcon: {\n type: String,\n \"default\": null\n },\n dropdownClass: {\n type: [String, Object],\n \"default\": null\n },\n loader: {\n type: String,\n \"default\": null\n },\n loadingIcon: {\n type: String,\n \"default\": null\n },\n removeTokenIcon: {\n type: String,\n \"default\": null\n },\n chipIcon: {\n type: String,\n \"default\": null\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n autoOptionFocus: {\n type: Boolean,\n \"default\": false\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n focusOnHover: {\n type: Boolean,\n \"default\": true\n },\n searchLocale: {\n type: String,\n \"default\": undefined\n },\n searchMessage: {\n type: String,\n \"default\": null\n },\n selectionMessage: {\n type: String,\n \"default\": null\n },\n emptySelectionMessage: {\n type: String,\n \"default\": null\n },\n emptySearchMessage: {\n type: String,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n typeahead: {\n type: Boolean,\n \"default\": true\n },\n ariaLabel: {\n type: String,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n fluid: {\n type: Boolean,\n \"default\": null\n }\n },\n style: AutoCompleteStyle,\n provide: function provide() {\n return {\n $pcAutoComplete: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'AutoComplete',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'option-select', 'option-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n outsideClickListener: null,\n resizeListener: null,\n scrollHandler: null,\n overlay: null,\n virtualScroller: null,\n searchTimeout: null,\n dirty: false,\n data: function data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n focusedMultipleOptionIndex: -1,\n overlayVisible: false,\n searching: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n suggestions: function suggestions() {\n if (this.searching) {\n this.show();\n this.focusedOptionIndex = this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.searching = false;\n }\n this.autoUpdateModel();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n updated: function updated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex: function getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel: function getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue: function getOptionValue(option) {\n return option; // TODO: The 'optionValue' properties can be added.\n },\n getOptionRenderKey: function getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions: function getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled: function isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup: function isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel: function getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren: function getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this = this;\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(function (option) {\n return _this.isOptionGroup(option);\n }).length : index) + 1;\n },\n show: function show(isFocus) {\n this.$emit('before-show');\n this.dirty = true;\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n hide: function hide(isFocus) {\n var _this2 = this;\n var _hide = function _hide() {\n _this2.$emit('before-hide');\n _this2.dirty = isFocus;\n _this2.overlayVisible = false;\n _this2.clicked = false;\n _this2.focusedOptionIndex = -1;\n isFocus && focus(_this2.multiple ? _this2.$refs.focusInput : _this2.$refs.focusInput.$el);\n };\n setTimeout(function () {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus: function onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n if (!this.dirty && this.completeOnFocus) {\n this.search(event, event.target.value, 'focus');\n }\n this.dirty = true;\n this.focused = true;\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.scrollInView(this.focusedOptionIndex);\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.dirty = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n }\n this.clicked = false;\n },\n onInput: function onInput(event) {\n var _this3 = this;\n if (this.typeahead) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n var query = event.target.value;\n if (!this.multiple) {\n this.updateModel(event, query);\n }\n if (query.length === 0) {\n this.hide();\n this.$emit('clear');\n } else {\n if (query.length >= this.minLength) {\n this.focusedOptionIndex = -1;\n this.searchTimeout = setTimeout(function () {\n _this3.search(event, query, 'input');\n }, this.delay);\n } else {\n this.hide();\n }\n }\n }\n },\n onChange: function onChange(event) {\n var _this4 = this;\n if (this.forceSelection) {\n var valid = false;\n\n // when forceSelection is on, prevent called twice onOptionSelect()\n if (this.visibleOptions && !this.multiple) {\n var value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput.$el.value;\n var matchedValue = this.visibleOptions.find(function (option) {\n return _this4.isOptionMatched(option, value || '');\n });\n if (matchedValue !== undefined) {\n valid = true;\n !this.isSelected(matchedValue) && this.onOptionSelect(event, matchedValue);\n }\n }\n if (!valid) {\n if (this.multiple) this.$refs.focusInput.value = '';else this.$refs.focusInput.$el.value = '';\n this.$emit('clear');\n !this.multiple && this.updateModel(event, null);\n }\n }\n },\n onMultipleContainerFocus: function onMultipleContainerFocus() {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n this.focused = true;\n },\n onMultipleContainerBlur: function onMultipleContainerBlur() {\n this.focusedMultipleOptionIndex = -1;\n this.focused = false;\n },\n onMultipleContainerKeyDown: function onMultipleContainerKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n switch (event.code) {\n case 'ArrowLeft':\n this.onArrowLeftKeyOnMultiple(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKeyOnMultiple(event);\n break;\n case 'Backspace':\n this.onBackspaceKeyOnMultiple(event);\n break;\n }\n },\n onContainerClick: function onContainerClick(event) {\n this.clicked = true;\n if (this.disabled || this.searching || this.loading || this.isInputClicked(event) || this.isDropdownClicked(event)) {\n return;\n }\n if (!this.overlay || !this.overlay.contains(event.target)) {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n }\n },\n onDropdownClick: function onDropdownClick(event) {\n var query = undefined;\n if (this.overlayVisible) {\n this.hide(true);\n } else {\n var target = this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el;\n focus(target);\n query = target.value;\n if (this.dropdownMode === 'blank') this.search(event, '', 'dropdown');else if (this.dropdownMode === 'current') this.search(event, query, 'dropdown');\n }\n this.$emit('dropdown-click', {\n originalEvent: event,\n query: query\n });\n },\n onOptionSelect: function onOptionSelect(event, option) {\n var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var value = this.getOptionValue(option);\n if (this.multiple) {\n this.$refs.focusInput.value = '';\n if (!this.isSelected(option)) {\n this.updateModel(event, [].concat(_toConsumableArray(this.modelValue || []), [value]));\n }\n } else {\n this.updateModel(event, value);\n }\n this.$emit('item-select', {\n originalEvent: event,\n value: option\n });\n this.$emit('option-select', {\n originalEvent: event,\n value: option\n });\n isHide && this.hide(true);\n },\n onOptionMouseMove: function onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown: function onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n if (event.altKey) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var target = event.currentTarget;\n this.focusedOptionIndex = -1;\n if (this.multiple) {\n if (isEmpty(target.value) && this.hasSelectedOption) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.modelValue.length;\n } else {\n event.stopPropagation(); // To prevent onArrowLeftKeyOnMultiple method\n }\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n this.focusedOptionIndex = -1;\n this.multiple && event.stopPropagation(); // To prevent onArrowRightKeyOnMultiple method\n },\n onHomeKey: function onHomeKey(event) {\n var currentTarget = event.currentTarget;\n var len = currentTarget.value.length;\n currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);\n this.focusedOptionIndex = -1;\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var currentTarget = event.currentTarget;\n var len = currentTarget.value.length;\n currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);\n this.focusedOptionIndex = -1;\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (!this.typeahead) {\n if (this.multiple) {\n this.updateModel(event, [].concat(_toConsumableArray(this.modelValue || []), [event.target.value]));\n this.$refs.focusInput.value = '';\n }\n } else {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.hide();\n }\n }\n },\n onEscapeKey: function onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n },\n onBackspaceKey: function onBackspaceKey(event) {\n if (this.multiple) {\n if (isNotEmpty(this.modelValue) && !this.$refs.focusInput.value) {\n var removedValue = this.modelValue[this.modelValue.length - 1];\n var newValue = this.modelValue.slice(0, -1);\n this.$emit('update:modelValue', newValue);\n this.$emit('item-unselect', {\n originalEvent: event,\n value: removedValue\n });\n this.$emit('option-unselect', {\n originalEvent: event,\n value: removedValue\n });\n }\n event.stopPropagation(); // To prevent onBackspaceKeyOnMultiple method\n }\n },\n onArrowLeftKeyOnMultiple: function onArrowLeftKeyOnMultiple() {\n this.focusedMultipleOptionIndex = this.focusedMultipleOptionIndex < 1 ? 0 : this.focusedMultipleOptionIndex - 1;\n },\n onArrowRightKeyOnMultiple: function onArrowRightKeyOnMultiple() {\n this.focusedMultipleOptionIndex++;\n if (this.focusedMultipleOptionIndex > this.modelValue.length - 1) {\n this.focusedMultipleOptionIndex = -1;\n focus(this.$refs.focusInput);\n }\n },\n onBackspaceKeyOnMultiple: function onBackspaceKeyOnMultiple(event) {\n if (this.focusedMultipleOptionIndex !== -1) {\n this.removeOption(event, this.focusedMultipleOptionIndex);\n }\n },\n onOverlayEnter: function onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n },\n onOverlayAfterEnter: function onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onOverlayLeave: function onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay: function alignOverlay() {\n var target = this.multiple ? this.$refs.multiContainer : this.$refs.focusInput.$el;\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, target);\n } else {\n this.overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(this.overlay, target);\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this5 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this5.overlayVisible && _this5.overlay && _this5.isOutsideClicked(event)) {\n _this5.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this6 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, function () {\n if (_this6.overlayVisible) {\n _this6.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this7 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this7.overlayVisible && !isTouchDevice()) {\n _this7.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked: function isOutsideClicked(event) {\n return !this.overlay.contains(event.target) && !this.isInputClicked(event) && !this.isDropdownClicked(event);\n },\n isInputClicked: function isInputClicked(event) {\n if (this.multiple) return event.target === this.$refs.multiContainer || this.$refs.multiContainer.contains(event.target);else return event.target === this.$refs.focusInput.$el;\n },\n isDropdownClicked: function isDropdownClicked(event) {\n return this.$refs.dropdownButton ? event.target === this.$refs.dropdownButton || this.$refs.dropdownButton.contains(event.target) : false;\n },\n isOptionMatched: function isOptionMatched(option, value) {\n var _this$getOptionLabel;\n return this.isValidOption(option) && ((_this$getOptionLabel = this.getOptionLabel(option)) === null || _this$getOptionLabel === void 0 ? void 0 : _this$getOptionLabel.toLocaleLowerCase(this.searchLocale)) === value.toLocaleLowerCase(this.searchLocale);\n },\n isValidOption: function isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption: function isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals: function isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected: function isSelected(option) {\n var _this8 = this;\n var optionValue = this.getOptionValue(option);\n return this.multiple ? (this.modelValue || []).some(function (value) {\n return _this8.isEquals(value, optionValue);\n }) : this.isEquals(this.modelValue, this.getOptionValue(option));\n },\n findFirstOptionIndex: function findFirstOptionIndex() {\n var _this9 = this;\n return this.visibleOptions.findIndex(function (option) {\n return _this9.isValidOption(option);\n });\n },\n findLastOptionIndex: function findLastOptionIndex() {\n var _this10 = this;\n return findLastIndex(this.visibleOptions, function (option) {\n return _this10.isValidOption(option);\n });\n },\n findNextOptionIndex: function findNextOptionIndex(index) {\n var _this11 = this;\n var matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n return _this11.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex: function findPrevOptionIndex(index) {\n var _this12 = this;\n var matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n return _this12.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex: function findSelectedOptionIndex() {\n var _this13 = this;\n return this.hasSelectedOption ? this.visibleOptions.findIndex(function (option) {\n return _this13.isValidSelectedOption(option);\n }) : -1;\n },\n findFirstFocusedOptionIndex: function findFirstFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex: function findLastFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n search: function search(event, query, source) {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n }\n\n //do not search blank values on input change\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n this.searching = true;\n this.$emit('complete', {\n originalEvent: event,\n query: query\n });\n },\n removeOption: function removeOption(event, index) {\n var _this14 = this;\n var removedOption = this.modelValue[index];\n var value = this.modelValue.filter(function (_, i) {\n return i !== index;\n }).map(function (option) {\n return _this14.getOptionValue(option);\n });\n this.updateModel(event, value);\n this.$emit('item-unselect', {\n originalEvent: event,\n value: removedOption\n });\n this.$emit('option-unselect', {\n originalEvent: event,\n value: removedOption\n });\n this.dirty = true;\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n changeFocusedOptionIndex: function changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView: function scrollInView() {\n var _this15 = this;\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n this.$nextTick(function () {\n var id = index !== -1 ? \"\".concat(_this15.id, \"_\").concat(index) : _this15.focusedOptionId;\n var element = findSingle(_this15.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n } else if (!_this15.virtualScrollerDisabled) {\n _this15.virtualScroller && _this15.virtualScroller.scrollToIndex(index !== -1 ? index : _this15.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel: function autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel: function updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', {\n originalEvent: event,\n value: value\n });\n },\n flatOptions: function flatOptions(options) {\n var _this16 = this;\n return (options || []).reduce(function (result, option, index) {\n result.push({\n optionGroup: option,\n group: true,\n index: index\n });\n var optionGroupChildren = _this16.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach(function (o) {\n return result.push(o);\n });\n return result;\n }, []);\n },\n overlayRef: function overlayRef(el) {\n this.overlay = el;\n },\n listRef: function listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef: function virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions: function visibleOptions() {\n return this.optionGroupLabel ? this.flatOptions(this.suggestions) : this.suggestions || [];\n },\n inputValue: function inputValue() {\n if (isNotEmpty(this.modelValue)) {\n if (_typeof$1(this.modelValue) === 'object') {\n var label = this.getOptionLabel(this.modelValue);\n return label != null ? label : this.modelValue;\n } else {\n return this.modelValue;\n }\n } else {\n return '';\n }\n },\n hasSelectedOption: function hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey: function equalityKey() {\n return this.dataKey; // TODO: The 'optionValue' properties can be added.\n },\n searchResultMessageText: function searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) && this.overlayVisible ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText: function searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText: function emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n selectionMessageText: function selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText: function emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText: function selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n listAriaLabel: function listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n focusedOptionId: function focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? \"\".concat(this.id, \"_\").concat(this.focusedOptionIndex) : null;\n },\n focusedMultipleOptionId: function focusedMultipleOptionId() {\n return this.focusedMultipleOptionIndex !== -1 ? \"\".concat(this.id, \"_multiple_option_\").concat(this.focusedMultipleOptionIndex) : null;\n },\n ariaSetSize: function ariaSetSize() {\n var _this17 = this;\n return this.visibleOptions.filter(function (option) {\n return !_this17.isOptionGroup(option);\n }).length;\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n panelId: function panelId() {\n return this.id + '_panel';\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n InputText: InputText,\n VirtualScroller: VirtualScroller,\n Portal: Portal,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n Chip: Chip\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-activedescendant\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-setsize\", \"aria-posinset\"];\nvar _hoisted_3 = [\"id\", \"placeholder\", \"tabindex\", \"disabled\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-invalid\"];\nvar _hoisted_4 = [\"disabled\", \"aria-expanded\", \"aria-controls\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\", \"aria-label\"];\nvar _hoisted_7 = [\"id\"];\nvar _hoisted_8 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousemove\", \"data-p-selected\", \"data-p-focus\", \"data-p-disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_Chip = resolveComponent(\"Chip\");\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n var _component_Portal = resolveComponent(\"Portal\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n onClick: _cache[11] || (_cache[11] = function () {\n return $options.onContainerClick && $options.onContainerClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [!_ctx.multiple ? (openBlock(), createBlock(_component_InputText, {\n key: 0,\n ref: \"focusInput\",\n id: _ctx.inputId,\n type: \"text\",\n \"class\": normalizeClass([_ctx.cx('pcInput'), _ctx.inputClass]),\n style: normalizeStyle(_ctx.inputStyle),\n value: $options.inputValue,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n fluid: $options.hasFluid,\n disabled: _ctx.disabled,\n invalid: _ctx.invalid,\n variant: _ctx.variant,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.panelId,\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onInput: $options.onInput,\n onChange: $options.onChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcInput')\n }, null, 8, [\"id\", \"class\", \"style\", \"value\", \"placeholder\", \"tabindex\", \"fluid\", \"disabled\", \"invalid\", \"variant\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onInput\", \"onChange\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), _ctx.multiple ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 1,\n ref: \"multiContainer\",\n \"class\": _ctx.cx('inputMultiple'),\n tabindex: \"-1\",\n role: \"listbox\",\n \"aria-orientation\": \"horizontal\",\n \"aria-activedescendant\": $data.focused ? $options.focusedMultipleOptionId : undefined,\n onFocus: _cache[5] || (_cache[5] = function () {\n return $options.onMultipleContainerFocus && $options.onMultipleContainerFocus.apply($options, arguments);\n }),\n onBlur: _cache[6] || (_cache[6] = function () {\n return $options.onMultipleContainerBlur && $options.onMultipleContainerBlur.apply($options, arguments);\n }),\n onKeydown: _cache[7] || (_cache[7] = function () {\n return $options.onMultipleContainerKeyDown && $options.onMultipleContainerKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('inputMultiple')), [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.modelValue, function (option, i) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: \"\".concat(i, \"_\").concat($options.getOptionLabel(option)),\n id: $data.id + '_multiple_option_' + i,\n \"class\": _ctx.cx('chipItem', {\n i: i\n }),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": true,\n \"aria-setsize\": _ctx.modelValue.length,\n \"aria-posinset\": i + 1,\n ref_for: true\n }, _ctx.ptm('chipItem')), [renderSlot(_ctx.$slots, \"chip\", mergeProps({\n \"class\": _ctx.cx('pcChip'),\n value: option,\n index: i,\n removeCallback: function removeCallback(event) {\n return $options.removeOption(event, i);\n },\n ref_for: true\n }, _ctx.ptm('pcChip')), function () {\n return [createVNode(_component_Chip, {\n \"class\": normalizeClass(_ctx.cx('pcChip')),\n label: $options.getOptionLabel(option),\n removeIcon: _ctx.chipIcon || _ctx.removeTokenIcon,\n removable: \"\",\n unstyled: _ctx.unstyled,\n onRemove: function onRemove($event) {\n return $options.removeOption($event, i);\n },\n pt: _ctx.ptm('pcChip')\n }, {\n removeicon: withCtx(function () {\n return [renderSlot(_ctx.$slots, _ctx.$slots.chipicon ? 'chipicon' : 'removetokenicon', {\n \"class\": normalizeClass(_ctx.cx('chipIcon')),\n index: i,\n removeCallback: function removeCallback(event) {\n return $options.removeOption(event, i);\n }\n })];\n }),\n _: 2\n }, 1032, [\"class\", \"label\", \"removeIcon\", \"unstyled\", \"onRemove\", \"pt\"])];\n })], 16, _hoisted_2);\n }), 128)), createElementVNode(\"li\", mergeProps({\n \"class\": _ctx.cx('inputChip'),\n role: \"option\"\n }, _ctx.ptm('inputChip')), [createElementVNode(\"input\", mergeProps({\n ref: \"focusInput\",\n id: _ctx.inputId,\n type: \"text\",\n style: _ctx.inputStyle,\n \"class\": _ctx.inputClass,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n disabled: _ctx.disabled,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[2] || (_cache[2] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n onInput: _cache[3] || (_cache[3] = function () {\n return $options.onInput && $options.onInput.apply($options, arguments);\n }),\n onChange: _cache[4] || (_cache[4] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, _ctx.ptm('input')), null, 16, _hoisted_3)], 16)], 16, _hoisted_1)) : createCommentVNode(\"\", true), $data.searching || _ctx.loading ? renderSlot(_ctx.$slots, _ctx.$slots.loader ? 'loader' : 'loadingicon', {\n key: 2,\n \"class\": normalizeClass(_ctx.cx('loader'))\n }, function () {\n return [_ctx.loader || _ctx.loadingIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 0,\n \"class\": ['pi-spin', _ctx.cx('loader'), _ctx.loader, _ctx.loadingIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loader')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('loader'),\n spin: \"\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loader')), null, 16, [\"class\"]))];\n }) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, _ctx.$slots.dropdown ? 'dropdown' : 'dropdownbutton', {\n toggleCallback: function toggleCallback(event) {\n return $options.onDropdownClick(event);\n }\n }, function () {\n return [_ctx.dropdown ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"dropdownButton\",\n type: \"button\",\n \"class\": [_ctx.cx('dropdown'), _ctx.dropdownClass],\n disabled: _ctx.disabled,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.panelId,\n onClick: _cache[8] || (_cache[8] = function () {\n return $options.onDropdownClick && $options.onDropdownClick.apply($options, arguments);\n })\n }, _ctx.ptm('dropdown')), [renderSlot(_ctx.$slots, \"dropdownicon\", {\n \"class\": normalizeClass(_ctx.dropdownIcon)\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": _ctx.dropdownIcon\n }, _ctx.ptm('dropdownIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)) : createCommentVNode(\"\", true)];\n }), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSearchResult'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.searchResultMessageText), 17), createVNode(_component_Portal, {\n appendTo: _ctx.appendTo\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.overlayVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n id: $options.panelId,\n \"class\": [_ctx.cx('overlay'), _ctx.panelClass, _ctx.overlayClass],\n style: _objectSpread(_objectSpread(_objectSpread({}, _ctx.panelStyle), _ctx.overlayStyle), {}, {\n 'max-height': $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }),\n onClick: _cache[9] || (_cache[9] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n }),\n onKeydown: _cache[10] || (_cache[10] = function () {\n return $options.onOverlayKeyDown && $options.onOverlayKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('overlay')), [renderSlot(_ctx.$slots, \"header\", {\n value: _ctx.modelValue,\n suggestions: $options.visibleOptions\n }), createVNode(_component_VirtualScroller, mergeProps({\n ref: $options.virtualScrollerRef\n }, _ctx.virtualScrollerOptions, {\n style: {\n height: _ctx.scrollHeight\n },\n items: $options.visibleOptions,\n tabindex: -1,\n disabled: $options.virtualScrollerDisabled,\n pt: _ctx.ptm('virtualScroller')\n }), createSlots({\n content: withCtx(function (_ref) {\n var styleClass = _ref.styleClass,\n contentRef = _ref.contentRef,\n items = _ref.items,\n getItemOptions = _ref.getItemOptions,\n contentStyle = _ref.contentStyle,\n itemSize = _ref.itemSize;\n return [createElementVNode(\"ul\", mergeProps({\n ref: function ref(el) {\n return $options.listRef(el, contentRef);\n },\n id: $data.id + '_list',\n \"class\": [_ctx.cx('list'), styleClass],\n style: contentStyle,\n role: \"listbox\",\n \"aria-label\": $options.listAriaLabel\n }, _ctx.ptm('list')), [(openBlock(true), createElementBlock(Fragment, null, renderList(items, function (option, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n }, [$options.isOptionGroup(option) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('optionGroup'),\n role: \"option\",\n ref_for: true\n }, _ctx.ptm('optionGroup')), [renderSlot(_ctx.$slots, \"optiongroup\", {\n option: option.optionGroup,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 1)];\n })], 16, _hoisted_7)) : withDirectives((openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('option', {\n option: option,\n i: i,\n getItemOptions: getItemOptions\n }),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": $options.isSelected(option),\n \"aria-disabled\": $options.isOptionDisabled(option),\n \"aria-setsize\": $options.ariaSetSize,\n \"aria-posinset\": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)),\n onClick: function onClick($event) {\n return $options.onOptionSelect($event, option);\n },\n onMousemove: function onMousemove($event) {\n return $options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions));\n },\n \"data-p-selected\": $options.isSelected(option),\n \"data-p-focus\": $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions),\n \"data-p-disabled\": $options.isOptionDisabled(option),\n ref_for: true\n }, $options.getPTOptions(option, getItemOptions, i, 'option')), [renderSlot(_ctx.$slots, \"option\", {\n option: option,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionLabel(option)), 1)];\n })], 16, _hoisted_8)), [[_directive_ripple]])], 64);\n }), 128)), !items || items && items.length === 0 ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage')), [renderSlot(_ctx.$slots, \"empty\", {}, function () {\n return [createTextVNode(toDisplayString($options.searchResultMessageText), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_6)];\n }),\n _: 2\n }, [_ctx.$slots.loader ? {\n name: \"loader\",\n fn: withCtx(function (_ref2) {\n var options = _ref2.options;\n return [renderSlot(_ctx.$slots, \"loader\", {\n options: options\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"style\", \"items\", \"disabled\", \"pt\"]), renderSlot(_ctx.$slots, \"footer\", {\n value: _ctx.modelValue,\n suggestions: $options.visibleOptions\n }), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSelectedMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.selectedMessageText), 17)], 16, _hoisted_5)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\"])], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n","\n\n\n\n\n","\n\n\n","import type {\n ConnectingLink,\n LGraphNode,\n Vector2,\n INodeInputSlot,\n INodeOutputSlot,\n INodeSlot,\n ISlotType\n} from '@comfyorg/litegraph'\nimport { LiteGraph } from '@comfyorg/litegraph'\nimport { RerouteId } from '@comfyorg/litegraph/dist/Reroute'\n\nexport class ConnectingLinkImpl implements ConnectingLink {\n constructor(\n public node: LGraphNode,\n public slot: number,\n public input: INodeInputSlot | undefined,\n public output: INodeOutputSlot | undefined,\n public pos: Vector2,\n public afterRerouteId?: RerouteId\n ) {}\n\n static createFromPlainObject(obj: ConnectingLink) {\n return new ConnectingLinkImpl(\n obj.node,\n obj.slot,\n obj.input,\n obj.output,\n obj.pos,\n obj.afterRerouteId\n )\n }\n\n get type(): ISlotType | null {\n const result = this.input ? this.input.type : this.output?.type ?? null\n return result === -1 ? null : result\n }\n\n /**\n * Which slot type is release and need to be reconnected.\n * - 'output' means we need a new node's outputs slot to connect with this link\n */\n get releaseSlotType(): 'input' | 'output' {\n return this.output ? 'input' : 'output'\n }\n\n connectTo(newNode: LGraphNode) {\n const newNodeSlots =\n this.releaseSlotType === 'output' ? newNode.outputs : newNode.inputs\n if (!newNodeSlots) return\n\n const newNodeSlot = newNodeSlots.findIndex((slot: INodeSlot) =>\n LiteGraph.isValidConnection(slot.type, this.type)\n )\n\n if (newNodeSlot === -1) {\n console.warn(\n `Could not find slot with type ${this.type} on node ${newNode.title}. This should never happen`\n )\n return\n }\n\n if (this.releaseSlotType === 'input') {\n this.node.connect(this.slot, newNode, newNodeSlot, this.afterRerouteId)\n } else {\n newNode.connect(newNodeSlot, this.node, this.slot, this.afterRerouteId)\n }\n }\n}\n\nexport type CanvasDragAndDropData = {\n type: 'add-node'\n data: T\n}\n","import { defineStore } from 'pinia'\nimport { ref } from 'vue'\n\nexport const useSearchBoxStore = defineStore('searchBox', () => {\n const visible = ref(false)\n function toggleVisible() {\n visible.value = !visible.value\n }\n\n return {\n visible,\n toggleVisible\n }\n})\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n _ref.dt;\n return \"\\n.p-buttongroup .p-button {\\n margin: 0;\\n}\\n\\n.p-buttongroup .p-button:not(:last-child),\\n.p-buttongroup .p-button:not(:last-child):hover {\\n border-right: 0 none;\\n}\\n\\n.p-buttongroup .p-button:not(:first-of-type):not(:last-of-type) {\\n border-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:first-of-type:not(:only-of-type) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:last-of-type:not(:only-of-type) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:focus {\\n position: relative;\\n z-index: 1;\\n}\\n\";\n};\nvar classes = {\n root: 'p-buttongroup p-component'\n};\nvar ButtonGroupStyle = BaseStyle.extend({\n name: 'buttongroup',\n theme: theme,\n classes: classes\n});\n\nexport { ButtonGroupStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ButtonGroupStyle from 'primevue/buttongroup/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseButtonGroup',\n \"extends\": BaseComponent,\n style: ButtonGroupStyle,\n provide: function provide() {\n return {\n $pcButtonGroup: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ButtonGroup',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"group\"\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-toast {\\n width: \".concat(dt('toast.width'), \";\\n white-space: pre-line;\\n word-break: break-word;\\n}\\n\\n.p-toast-message {\\n margin: 0 0 1rem 0;\\n}\\n\\n.p-toast-message-icon {\\n flex-shrink: 0;\\n font-size: \").concat(dt('toast.icon.size'), \";\\n width: \").concat(dt('toast.icon.size'), \";\\n height: \").concat(dt('toast.icon.size'), \";\\n}\\n\\n.p-toast-message-content {\\n display: flex;\\n align-items: flex-start;\\n padding: \").concat(dt('toast.content.padding'), \";\\n gap: \").concat(dt('toast.content.gap'), \";\\n}\\n\\n.p-toast-message-text {\\n flex: 1 1 auto;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('toast.text.gap'), \";\\n}\\n\\n.p-toast-summary {\\n font-weight: \").concat(dt('toast.summary.font.weight'), \";\\n font-size: \").concat(dt('toast.summary.font.size'), \";\\n}\\n\\n.p-toast-detail {\\n font-weight: \").concat(dt('toast.detail.font.weight'), \";\\n font-size: \").concat(dt('toast.detail.font.size'), \";\\n}\\n\\n.p-toast-close-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n cursor: pointer;\\n background: transparent;\\n transition: background \").concat(dt('toast.transition.duration'), \", color \").concat(dt('toast.transition.duration'), \", outline-color \").concat(dt('toast.transition.duration'), \", box-shadow \").concat(dt('toast.transition.duration'), \";\\n outline-color: transparent;\\n color: inherit;\\n width: \").concat(dt('toast.close.button.width'), \";\\n height: \").concat(dt('toast.close.button.height'), \";\\n border-radius: \").concat(dt('toast.close.button.border.radius'), \";\\n margin: -25% 0 0 0;\\n right: -25%;\\n padding: 0;\\n border: none;\\n user-select: none;\\n}\\n\\n.p-toast-message-info,\\n.p-toast-message-success,\\n.p-toast-message-warn,\\n.p-toast-message-error,\\n.p-toast-message-secondary,\\n.p-toast-message-contrast {\\n border-width: \").concat(dt('toast.border.width'), \";\\n border-style: solid;\\n backdrop-filter: blur(\").concat(dt('toast.blur'), \");\\n border-radius: \").concat(dt('toast.border.radius'), \";\\n}\\n\\n.p-toast-close-icon {\\n font-size: \").concat(dt('toast.close.icon.size'), \";\\n width: \").concat(dt('toast.close.icon.size'), \";\\n height: \").concat(dt('toast.close.icon.size'), \";\\n}\\n\\n.p-toast-close-button:focus-visible {\\n outline-width: \").concat(dt('focus.ring.width'), \";\\n outline-style: \").concat(dt('focus.ring.style'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-toast-message-info {\\n background: \").concat(dt('toast.info.background'), \";\\n border-color: \").concat(dt('toast.info.border.color'), \";\\n color: \").concat(dt('toast.info.color'), \";\\n box-shadow: \").concat(dt('toast.info.shadow'), \";\\n}\\n\\n.p-toast-message-info .p-toast-detail {\\n color: \").concat(dt('toast.info.detail.color'), \";\\n}\\n\\n.p-toast-message-info .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.info.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.info.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-info .p-toast-close-button:hover {\\n background: \").concat(dt('toast.info.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-success {\\n background: \").concat(dt('toast.success.background'), \";\\n border-color: \").concat(dt('toast.success.border.color'), \";\\n color: \").concat(dt('toast.success.color'), \";\\n box-shadow: \").concat(dt('toast.success.shadow'), \";\\n}\\n\\n.p-toast-message-success .p-toast-detail {\\n color: \").concat(dt('toast.success.detail.color'), \";\\n}\\n\\n.p-toast-message-success .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.success.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.success.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-success .p-toast-close-button:hover {\\n background: \").concat(dt('toast.success.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-warn {\\n background: \").concat(dt('toast.warn.background'), \";\\n border-color: \").concat(dt('toast.warn.border.color'), \";\\n color: \").concat(dt('toast.warn.color'), \";\\n box-shadow: \").concat(dt('toast.warn.shadow'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-detail {\\n color: \").concat(dt('toast.warn.detail.color'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.warn.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.warn.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-close-button:hover {\\n background: \").concat(dt('toast.warn.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-error {\\n background: \").concat(dt('toast.error.background'), \";\\n border-color: \").concat(dt('toast.error.border.color'), \";\\n color: \").concat(dt('toast.error.color'), \";\\n box-shadow: \").concat(dt('toast.error.shadow'), \";\\n}\\n\\n.p-toast-message-error .p-toast-detail {\\n color: \").concat(dt('toast.error.detail.color'), \";\\n}\\n\\n.p-toast-message-error .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.error.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.error.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-error .p-toast-close-button:hover {\\n background: \").concat(dt('toast.error.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-secondary {\\n background: \").concat(dt('toast.secondary.background'), \";\\n border-color: \").concat(dt('toast.secondary.border.color'), \";\\n color: \").concat(dt('toast.secondary.color'), \";\\n box-shadow: \").concat(dt('toast.secondary.shadow'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-detail {\\n color: \").concat(dt('toast.secondary.detail.color'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.secondary.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.secondary.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-close-button:hover {\\n background: \").concat(dt('toast.secondary.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-contrast {\\n background: \").concat(dt('toast.contrast.background'), \";\\n border-color: \").concat(dt('toast.contrast.border.color'), \";\\n color: \").concat(dt('toast.contrast.color'), \";\\n box-shadow: \").concat(dt('toast.contrast.shadow'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-detail {\\n color: \").concat(dt('toast.contrast.detail.color'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.contrast.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.contrast.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-close-button:hover {\\n background: \").concat(dt('toast.contrast.close.button.hover.background'), \";\\n}\\n\\n.p-toast-top-center {\\n transform: translateX(-50%);\\n}\\n\\n.p-toast-bottom-center {\\n transform: translateX(-50%);\\n}\\n\\n.p-toast-center {\\n min-width: 20vw;\\n transform: translate(-50%, -50%);\\n}\\n\\n.p-toast-message-enter-from {\\n opacity: 0;\\n transform: translateY(50%);\\n}\\n\\n.p-toast-message-leave-from {\\n max-height: 1000px;\\n}\\n\\n.p-toast .p-toast-message.p-toast-message-leave-to {\\n max-height: 0;\\n opacity: 0;\\n margin-bottom: 0;\\n overflow: hidden;\\n}\\n\\n.p-toast-message-enter-active {\\n transition: transform 0.3s, opacity 0.3s;\\n}\\n\\n.p-toast-message-leave-active {\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin-bottom 0.3s;\\n}\\n\");\n};\n\n// Position\nvar inlineStyles = {\n root: function root(_ref2) {\n var position = _ref2.position;\n return {\n position: 'fixed',\n top: position === 'top-right' || position === 'top-left' || position === 'top-center' ? '20px' : position === 'center' ? '50%' : null,\n right: (position === 'top-right' || position === 'bottom-right') && '20px',\n bottom: (position === 'bottom-left' || position === 'bottom-right' || position === 'bottom-center') && '20px',\n left: position === 'top-left' || position === 'bottom-left' ? '20px' : position === 'center' || position === 'top-center' || position === 'bottom-center' ? '50%' : null\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return ['p-toast p-component p-toast-' + props.position];\n },\n message: function message(_ref4) {\n var props = _ref4.props;\n return ['p-toast-message', {\n 'p-toast-message-info': props.message.severity === 'info' || props.message.severity === undefined,\n 'p-toast-message-warn': props.message.severity === 'warn',\n 'p-toast-message-error': props.message.severity === 'error',\n 'p-toast-message-success': props.message.severity === 'success',\n 'p-toast-message-secondary': props.message.severity === 'secondary',\n 'p-toast-message-contrast': props.message.severity === 'contrast'\n }];\n },\n messageContent: 'p-toast-message-content',\n messageIcon: function messageIcon(_ref5) {\n var props = _ref5.props;\n return ['p-toast-message-icon', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, props.infoIcon, props.message.severity === 'info'), props.warnIcon, props.message.severity === 'warn'), props.errorIcon, props.message.severity === 'error'), props.successIcon, props.message.severity === 'success')];\n },\n messageText: 'p-toast-message-text',\n summary: 'p-toast-summary',\n detail: 'p-toast-detail',\n closeButton: 'p-toast-close-button',\n closeIcon: 'p-toast-close-icon'\n};\nvar ToastStyle = BaseStyle.extend({\n name: 'toast',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { ToastStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { setAttribute } from '@primeuix/utils/dom';\nimport { isEmpty } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport Portal from 'primevue/portal';\nimport ToastEventBus from 'primevue/toasteventbus';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ToastStyle from 'primevue/toast/style';\nimport CheckIcon from '@primevue/icons/check';\nimport ExclamationTriangleIcon from '@primevue/icons/exclamationtriangle';\nimport InfoCircleIcon from '@primevue/icons/infocircle';\nimport TimesIcon from '@primevue/icons/times';\nimport TimesCircleIcon from '@primevue/icons/timescircle';\nimport Ripple from 'primevue/ripple';\nimport { resolveDirective, openBlock, createElementBlock, mergeProps, createBlock, resolveDynamicComponent, Fragment, createElementVNode, toDisplayString, normalizeProps, withDirectives, createCommentVNode, resolveComponent, withCtx, createVNode, TransitionGroup, renderList } from 'vue';\n\nvar script$2 = {\n name: 'BaseToast',\n \"extends\": BaseComponent,\n props: {\n group: {\n type: String,\n \"default\": null\n },\n position: {\n type: String,\n \"default\": 'top-right'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n breakpoints: {\n type: Object,\n \"default\": null\n },\n closeIcon: {\n type: String,\n \"default\": undefined\n },\n infoIcon: {\n type: String,\n \"default\": undefined\n },\n warnIcon: {\n type: String,\n \"default\": undefined\n },\n errorIcon: {\n type: String,\n \"default\": undefined\n },\n successIcon: {\n type: String,\n \"default\": undefined\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n style: ToastStyle,\n provide: function provide() {\n return {\n $pcToast: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'ToastMessage',\n hostName: 'Toast',\n \"extends\": BaseComponent,\n emits: ['close'],\n closeTimeout: null,\n props: {\n message: {\n type: null,\n \"default\": null\n },\n templates: {\n type: Object,\n \"default\": null\n },\n closeIcon: {\n type: String,\n \"default\": null\n },\n infoIcon: {\n type: String,\n \"default\": null\n },\n warnIcon: {\n type: String,\n \"default\": null\n },\n errorIcon: {\n type: String,\n \"default\": null\n },\n successIcon: {\n type: String,\n \"default\": null\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n mounted: function mounted() {\n var _this = this;\n if (this.message.life) {\n this.closeTimeout = setTimeout(function () {\n _this.close({\n message: _this.message,\n type: 'life-end'\n });\n }, this.message.life);\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.clearCloseTimeout();\n },\n methods: {\n close: function close(params) {\n this.$emit('close', params);\n },\n onCloseClick: function onCloseClick() {\n this.clearCloseTimeout();\n this.close({\n message: this.message,\n type: 'close'\n });\n },\n clearCloseTimeout: function clearCloseTimeout() {\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n this.closeTimeout = null;\n }\n }\n },\n computed: {\n iconComponent: function iconComponent() {\n return {\n info: !this.infoIcon && InfoCircleIcon,\n success: !this.successIcon && CheckIcon,\n warn: !this.warnIcon && ExclamationTriangleIcon,\n error: !this.errorIcon && TimesCircleIcon\n }[this.message.severity];\n },\n closeAriaLabel: function closeAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n }\n },\n components: {\n TimesIcon: TimesIcon,\n InfoCircleIcon: InfoCircleIcon,\n CheckIcon: CheckIcon,\n ExclamationTriangleIcon: ExclamationTriangleIcon,\n TimesCircleIcon: TimesCircleIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$1(e, r, t) { return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$1(t) { var i = _toPrimitive$1(t, \"string\"); return \"symbol\" == _typeof$1(i) ? i : i + \"\"; }\nfunction _toPrimitive$1(t, r) { if (\"object\" != _typeof$1(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$1(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-label\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": [_ctx.cx('message'), $props.message.styleClass],\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, _ctx.ptm('message')), [$props.templates.container ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.container), {\n key: 0,\n message: $props.message,\n closeCallback: $options.onCloseClick\n }, null, 8, [\"message\", \"closeCallback\"])) : (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('messageContent'), $props.message.contentStyleClass]\n }, _ctx.ptm('messageContent')), [!$props.templates.message ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [(openBlock(), createBlock(resolveDynamicComponent($props.templates.messageicon ? $props.templates.messageicon : $props.templates.icon ? $props.templates.icon : $options.iconComponent && $options.iconComponent.name ? $options.iconComponent : 'span'), mergeProps({\n \"class\": _ctx.cx('messageIcon')\n }, _ctx.ptm('messageIcon')), null, 16, [\"class\"])), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('messageText')\n }, _ctx.ptm('messageText')), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('summary')\n }, _ctx.ptm('summary')), toDisplayString($props.message.summary), 17), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('detail')\n }, _ctx.ptm('detail')), toDisplayString($props.message.detail), 17)], 16)], 64)) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.message), {\n key: 1,\n message: $props.message\n }, null, 8, [\"message\"])), $props.message.closable !== false ? (openBlock(), createElementBlock(\"div\", normalizeProps(mergeProps({\n key: 2\n }, _ctx.ptm('buttonContainer'))), [withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('closeButton'),\n type: \"button\",\n \"aria-label\": $options.closeAriaLabel,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onCloseClick && $options.onCloseClick.apply($options, arguments);\n }),\n autofocus: \"\"\n }, _objectSpread$1(_objectSpread$1({}, $props.closeButtonProps), _ctx.ptm('closeButton'))), [(openBlock(), createBlock(resolveDynamicComponent($props.templates.closeicon || 'TimesIcon'), mergeProps({\n \"class\": [_ctx.cx('closeIcon'), $props.closeIcon]\n }, _ctx.ptm('closeIcon')), null, 16, [\"class\"]))], 16, _hoisted_1)), [[_directive_ripple]])], 16)) : createCommentVNode(\"\", true)], 16))], 16);\n}\n\nscript$1.render = render$1;\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar messageIdx = 0;\nvar script = {\n name: 'Toast',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['close', 'life-end'],\n data: function data() {\n return {\n messages: []\n };\n },\n styleElement: null,\n mounted: function mounted() {\n ToastEventBus.on('add', this.onAdd);\n ToastEventBus.on('remove', this.onRemove);\n ToastEventBus.on('remove-group', this.onRemoveGroup);\n ToastEventBus.on('remove-all-groups', this.onRemoveAllGroups);\n if (this.breakpoints) {\n this.createStyle();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.destroyStyle();\n if (this.$refs.container && this.autoZIndex) {\n ZIndex.clear(this.$refs.container);\n }\n ToastEventBus.off('add', this.onAdd);\n ToastEventBus.off('remove', this.onRemove);\n ToastEventBus.off('remove-group', this.onRemoveGroup);\n ToastEventBus.off('remove-all-groups', this.onRemoveAllGroups);\n },\n methods: {\n add: function add(message) {\n if (message.id == null) {\n message.id = messageIdx++;\n }\n this.messages = [].concat(_toConsumableArray(this.messages), [message]);\n },\n remove: function remove(params) {\n var index = this.messages.findIndex(function (m) {\n return m.id === params.message.id;\n });\n if (index !== -1) {\n this.messages.splice(index, 1);\n this.$emit(params.type, {\n message: params.message\n });\n }\n },\n onAdd: function onAdd(message) {\n if (this.group == message.group) {\n this.add(message);\n }\n },\n onRemove: function onRemove(message) {\n this.remove({\n message: message,\n type: 'close'\n });\n },\n onRemoveGroup: function onRemoveGroup(group) {\n if (this.group === group) {\n this.messages = [];\n }\n },\n onRemoveAllGroups: function onRemoveAllGroups() {\n this.messages = [];\n },\n onEnter: function onEnter() {\n this.$refs.container.setAttribute(this.attributeSelector, '');\n if (this.autoZIndex) {\n ZIndex.set('modal', this.$refs.container, this.baseZIndex || this.$primevue.config.zIndex.modal);\n }\n },\n onLeave: function onLeave() {\n var _this = this;\n if (this.$refs.container && this.autoZIndex && isEmpty(this.messages)) {\n setTimeout(function () {\n ZIndex.clear(_this.$refs.container);\n }, 200);\n }\n },\n createStyle: function createStyle() {\n if (!this.styleElement && !this.isUnstyled) {\n var _this$$primevue;\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', (_this$$primevue = this.$primevue) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.config) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.csp) === null || _this$$primevue === void 0 ? void 0 : _this$$primevue.nonce);\n document.head.appendChild(this.styleElement);\n var innerHTML = '';\n for (var breakpoint in this.breakpoints) {\n var breakpointStyle = '';\n for (var styleProp in this.breakpoints[breakpoint]) {\n breakpointStyle += styleProp + ':' + this.breakpoints[breakpoint][styleProp] + '!important;';\n }\n innerHTML += \"\\n @media screen and (max-width: \".concat(breakpoint, \") {\\n .p-toast[\").concat(this.attributeSelector, \"] {\\n \").concat(breakpointStyle, \"\\n }\\n }\\n \");\n }\n this.styleElement.innerHTML = innerHTML;\n }\n },\n destroyStyle: function destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n }\n },\n computed: {\n attributeSelector: function attributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n ToastMessage: script$1,\n Portal: Portal\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_ToastMessage = resolveComponent(\"ToastMessage\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, null, {\n \"default\": withCtx(function () {\n return [createElementVNode(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root', true, {\n position: _ctx.position\n })\n }, _ctx.ptmi('root')), [createVNode(TransitionGroup, mergeProps({\n name: \"p-toast-message\",\n tag: \"div\",\n onEnter: $options.onEnter,\n onLeave: $options.onLeave\n }, _objectSpread({}, _ctx.ptm('transition'))), {\n \"default\": withCtx(function () {\n return [(openBlock(true), createElementBlock(Fragment, null, renderList($data.messages, function (msg) {\n return openBlock(), createBlock(_component_ToastMessage, {\n key: msg.id,\n message: msg,\n templates: _ctx.$slots,\n closeIcon: _ctx.closeIcon,\n infoIcon: _ctx.infoIcon,\n warnIcon: _ctx.warnIcon,\n errorIcon: _ctx.errorIcon,\n successIcon: _ctx.successIcon,\n closeButtonProps: _ctx.closeButtonProps,\n unstyled: _ctx.unstyled,\n onClose: _cache[0] || (_cache[0] = function ($event) {\n return $options.remove($event);\n }),\n pt: _ctx.pt\n }, null, 8, [\"message\", \"templates\", \"closeIcon\", \"infoIcon\", \"warnIcon\", \"errorIcon\", \"successIcon\", \"closeButtonProps\", \"unstyled\", \"pt\"]);\n }), 128))];\n }),\n _: 1\n }, 16, [\"onEnter\", \"onLeave\"])], 16)];\n }),\n _: 1\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-menubar {\\n display: flex;\\n align-items: center;\\n background: \".concat(dt('menubar.background'), \";\\n border: 1px solid \").concat(dt('menubar.border.color'), \";\\n border-radius: \").concat(dt('menubar.border.radius'), \";\\n color: \").concat(dt('menubar.color'), \";\\n padding: \").concat(dt('menubar.padding'), \";\\n gap: \").concat(dt('menubar.gap'), \";\\n}\\n\\n.p-menubar-start,\\n.p-megamenu-end {\\n display: flex;\\n align-items: center;\\n}\\n\\n.p-menubar-root-list,\\n.p-menubar-submenu {\\n display: flex;\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n outline: 0 none;\\n}\\n\\n.p-menubar-root-list {\\n align-items: center;\\n flex-wrap: wrap;\\n gap: \").concat(dt('menubar.gap'), \";\\n}\\n\\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\\n border-radius: \").concat(dt('menubar.base.item.border.radius'), \";\\n}\\n\\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\\n padding: \").concat(dt('menubar.base.item.padding'), \";\\n}\\n\\n.p-menubar-item-content {\\n transition: background \").concat(dt('menubar.transition.duration'), \", color \").concat(dt('menubar.transition.duration'), \";\\n border-radius: \").concat(dt('menubar.item.border.radius'), \";\\n color: \").concat(dt('menubar.item.color'), \";\\n}\\n\\n.p-menubar-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('menubar.item.padding'), \";\\n gap: \").concat(dt('menubar.item.gap'), \";\\n user-select: none;\\n outline: 0 none;\\n}\\n\\n.p-menubar-item-label {\\n line-height: 1;\\n}\\n\\n.p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.color'), \";\\n}\\n\\n.p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('menubar.submenu.icon.size'), \";\\n width: \").concat(dt('menubar.submenu.icon.size'), \";\\n height: \").concat(dt('menubar.submenu.icon.size'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content {\\n color: \").concat(dt('menubar.item.focus.color'), \";\\n background: \").concat(dt('menubar.item.focus.background'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover {\\n color: \").concat(dt('menubar.item.focus.color'), \";\\n background: \").concat(dt('menubar.item.focus.background'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content {\\n color: \").concat(dt('menubar.item.active.color'), \";\\n background: \").concat(dt('menubar.item.active.background'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.active.color'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.active.color'), \";\\n}\\n\\n.p-menubar-submenu {\\n display: none;\\n position: absolute;\\n min-width: 12.5rem;\\n z-index: 1;\\n background: \").concat(dt('menubar.submenu.background'), \";\\n border: 1px solid \").concat(dt('menubar.submenu.border.color'), \";\\n border-radius: \").concat(dt('menubar.border.radius'), \";\\n box-shadow: \").concat(dt('menubar.submenu.shadow'), \";\\n color: \").concat(dt('menubar.submenu.color'), \";\\n flex-direction: column;\\n padding: \").concat(dt('menubar.submenu.padding'), \";\\n gap: \").concat(dt('menubar.submenu.gap'), \";\\n}\\n\\n.p-menubar-submenu .p-menubar-separator {\\n border-top: 1px solid \").concat(dt('menubar.separator.border.color'), \";\\n}\\n\\n.p-menubar-submenu .p-menubar-item {\\n position: relative;\\n}\\n\\n .p-menubar-submenu > .p-menubar-item-active > .p-menubar-submenu {\\n display: block;\\n left: 100%;\\n top: 0;\\n}\\n\\n.p-menubar-end {\\n margin-left: auto;\\n align-self: center;\\n}\\n\\n.p-menubar-button {\\n display: none;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n width: \").concat(dt('menubar.mobile.button.size'), \";\\n height: \").concat(dt('menubar.mobile.button.size'), \";\\n position: relative;\\n color: \").concat(dt('menubar.mobile.button.color'), \";\\n border: 0 none;\\n background: transparent;\\n border-radius: \").concat(dt('menubar.mobile.button.border.radius'), \";\\n transition: background \").concat(dt('menubar.transition.duration'), \", color \").concat(dt('menubar.transition.duration'), \", outline-color \").concat(dt('menubar.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-menubar-button:hover {\\n color: \").concat(dt('menubar.mobile.button.hover.color'), \";\\n background: \").concat(dt('menubar.mobile.button.hover.background'), \";\\n}\\n\\n.p-menubar-button:focus-visible {\\n box-shadow: \").concat(dt('menubar.mobile.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('menubar.mobile.button.focus.ring.width'), \" \").concat(dt('menubar.mobile.button.focus.ring.style'), \" \").concat(dt('menubar.mobile.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('menubar.mobile.button.focus.ring.offset'), \";\\n}\\n\\n.p-menubar-mobile {\\n position: relative;\\n}\\n\\n.p-menubar-mobile .p-menubar-button {\\n display: flex;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list {\\n position: absolute;\\n display: none;\\n width: 100%;\\n padding: \").concat(dt('menubar.submenu.padding'), \";\\n background: \").concat(dt('menubar.submenu.background'), \";\\n border: 1px solid \").concat(dt('menubar.submenu.border.color'), \";\\n box-shadow: \").concat(dt('menubar.submenu.shadow'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\\n border-radius: \").concat(dt('menubar.item.border.radius'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\\n padding: \").concat(dt('menubar.item.padding'), \";\\n}\\n\\n.p-menubar-mobile-active .p-menubar-root-list {\\n display: flex;\\n flex-direction: column;\\n top: 100%;\\n left: 0;\\n z-index: 1;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list .p-menubar-item {\\n width: 100%;\\n position: static;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list .p-menubar-separator {\\n border-top: 1px solid \").concat(dt('menubar.separator.border.color'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content .p-menubar-submenu-icon {\\n margin-left: auto;\\n transition: transform 0.2s;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n transform: rotate(-180deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-submenu .p-menubar-submenu-icon {\\n transition: transform 0.2s;\\n transform: rotate(90deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n transform: rotate(-90deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-submenu {\\n width: 100%;\\n position: static;\\n box-shadow: none;\\n border: 0 none;\\n padding-left: \").concat(dt('menubar.submenu.mobile.indent'), \";\\n}\\n\");\n};\nvar inlineStyles = {\n submenu: function submenu(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return {\n display: instance.isItemActive(processedItem) ? 'flex' : 'none'\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var instance = _ref3.instance;\n return ['p-menubar p-component', {\n 'p-menubar-mobile': instance.queryMatches,\n 'p-menubar-mobile-active': instance.mobileActive\n }];\n },\n start: 'p-menubar-start',\n button: 'p-menubar-button',\n rootList: 'p-menubar-root-list',\n item: function item(_ref4) {\n var instance = _ref4.instance,\n processedItem = _ref4.processedItem;\n return ['p-menubar-item', {\n 'p-menubar-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-menubar-item-content',\n itemLink: 'p-menubar-item-link',\n itemIcon: 'p-menubar-item-icon',\n itemLabel: 'p-menubar-item-label',\n submenuIcon: 'p-menubar-submenu-icon',\n submenu: 'p-menubar-submenu',\n separator: 'p-menubar-separator',\n end: 'p-menubar-end'\n};\nvar MenubarStyle = BaseStyle.extend({\n name: 'menubar',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { MenubarStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { focus, findSingle, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MenubarStyle from 'primevue/menubar/style';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, createBlock, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, normalizeStyle, renderSlot, createVNode, normalizeProps, guardReactiveProps } from 'vue';\n\nvar script$2 = {\n name: 'BaseMenubar',\n \"extends\": BaseComponent,\n props: {\n model: {\n type: Array,\n \"default\": null\n },\n buttonProps: {\n type: null,\n \"default\": null\n },\n breakpoint: {\n type: String,\n \"default\": '960px'\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: MenubarStyle,\n provide: function provide() {\n return {\n $pcMenubar: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'MenubarSub',\n hostName: 'Menubar',\n \"extends\": BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n \"default\": null\n },\n root: {\n type: Boolean,\n \"default\": false\n },\n popup: {\n type: Boolean,\n \"default\": false\n },\n mobileActive: {\n type: Boolean,\n \"default\": false\n },\n templates: {\n type: Object,\n \"default\": null\n },\n level: {\n type: Number,\n \"default\": 0\n },\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n }\n },\n list: null,\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index: index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n level: this.level\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n getAriaPosInset: function getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).length + 1;\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions(processedItem, index, 'itemLink')),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions(processedItem, index, 'itemIcon')),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions(processedItem, index, 'itemLabel')),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions(processedItem, index, 'submenuIcon'))\n };\n }\n },\n computed: {\n calculateAriaSetSize: function calculateAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && _this.getItemProp(processedItem, 'separator');\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this2 = this;\n return this.items.filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && !_this2.getItemProp(processedItem, 'separator');\n }).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_3 = [\"href\", \"target\"];\nvar _hoisted_4 = [\"id\"];\nvar _hoisted_5 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_MenubarSub = resolveComponent(\"MenubarSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"ul\", mergeProps({\n \"class\": $props.level === 0 ? _ctx.cx('rootList') : _ctx.cx('submenu')\n }, $props.level === 0 ? _ctx.ptm('rootList') : _ctx.ptm('submenu')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize,\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'item'), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemContent')), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLink')), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemIcon')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLabel')), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_4), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), {\n key: 0,\n root: $props.root,\n active: $options.isItemActive(processedItem),\n \"class\": normalizeClass(_ctx.cx('submenuIcon'))\n }, null, 8, [\"root\", \"active\", \"class\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.root ? 'AngleDownIcon' : 'AngleRightIcon'), mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_3)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n root: $props.root,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"root\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_2), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_MenubarSub, {\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n menuId: $props.menuId,\n role: \"menu\",\n style: normalizeStyle(_ctx.sx('submenu', true, {\n processedItem: processedItem\n })),\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n mobileActive: $props.mobileActive,\n activeItemPath: $props.activeItemPath,\n templates: $props.templates,\n level: $props.level + 1,\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n })\n }, null, 8, [\"id\", \"menuId\", \"style\", \"focusedItemId\", \"items\", \"mobileActive\", \"activeItemPath\", \"templates\", \"level\", \"aria-labelledby\", \"pt\", \"unstyled\"])) : createCommentVNode(\"\", true)], 16, _hoisted_1$1)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n style: $options.getItemProp(processedItem, 'style'),\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_5)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'Menubar',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount: function beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n if (this.container) {\n ZIndex.clear(this.container);\n }\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n var _this = this;\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(function () {\n _this.show();\n }, 1);\n }\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show: function show() {\n focus(this.menubar);\n },\n hide: function hide(event, isFocus) {\n var _this2 = this;\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(function () {\n focus(_this2.$refs.menubutton);\n }, 0);\n }\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: this.findFirstFocusedItemIndex(),\n level: 0,\n parentKey: ''\n };\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n grouped && activeItemPath.push(processedItem);\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick: function onItemClick(event) {\n var originalEvent = event.originalEvent,\n processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var root = isEmpty(processedItem.parent);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n var rootProcessedItem = root ? processedItem : this.activeItemPath.find(function (p) {\n return p.parentKey === '';\n });\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n this.mobileActive = false;\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n menuButtonClick: function menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown: function menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var root = processedItem ? isEmpty(processedItem.parent) : null;\n if (root) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.onArrowRightKey(event);\n }\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n }\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n var _this3 = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var root = isEmpty(processedItem.parent);\n if (root) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n var itemIndex = this.findLastItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this3.focusedItemInfo.parentKey;\n });\n } else {\n var _itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, _itemIndex);\n }\n }\n event.preventDefault();\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this4 = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = processedItem ? this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n }) : null;\n if (parentItem) {\n this.onItemChange({\n originalEvent: event,\n processedItem: parentItem\n });\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this4.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = processedItem ? this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n }) : null;\n if (parentItem) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.onArrowDownKey(event);\n }\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemId), \"\\\"]\"));\n var anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n if (this.focusedItemInfo.level !== 0) {\n var _focusedItemInfo = this.focusedItemInfo;\n this.hide(event, false);\n this.focusedItemInfo = {\n index: Number(_focusedItemInfo.parentKey.split('_')[0]),\n level: 0,\n parentKey: ''\n };\n }\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this5 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this5.container && !_this5.container.contains(event.target);\n var isOutsideTarget = !(_this5.target && (_this5.target === event.target || _this5.target.contains(event.target)));\n if (isOutsideContainer && isOutsideTarget) {\n _this5.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this6 = this;\n if (!this.resizeListener) {\n this.resizeListener = function (event) {\n if (!isTouchDevice()) {\n _this6.hide(event, true);\n }\n _this6.mobileActive = false;\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener: function bindMatchMediaListener() {\n var _this7 = this;\n if (!this.matchMediaListener) {\n var query = matchMedia(\"(max-width: \".concat(this.breakpoint, \")\"));\n this.query = query;\n this.queryMatches = query.matches;\n this.matchMediaListener = function () {\n _this7.queryMatches = query.matches;\n _this7.mobileActive = false;\n };\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener: function unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this8 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this8.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this9 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this9.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this10 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this10.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this11 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this11.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this12 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this12.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this13 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this13.searchValue = '';\n _this13.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemId;\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this14 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this14.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n menubarRef: function menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this15 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this15.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId: function focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n MenubarSub: script$1,\n BarsIcon: BarsIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-haspopup\", \"aria-expanded\", \"aria-controls\", \"aria-label\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_BarsIcon = resolveComponent(\"BarsIcon\");\n var _component_MenubarSub = resolveComponent(\"MenubarSub\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: $options.containerRef,\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('start')\n }, _ctx.ptm('start')), [renderSlot(_ctx.$slots, \"start\")], 16)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, _ctx.$slots.button ? 'button' : 'menubutton', {\n id: $data.id,\n \"class\": normalizeClass(_ctx.cx('button')),\n toggleCallback: function toggleCallback(event) {\n return $options.menuButtonClick(event);\n }\n }, function () {\n var _ctx$$primevue$config;\n return [_ctx.model && _ctx.model.length > 0 ? (openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n ref: \"menubutton\",\n role: \"button\",\n tabindex: \"0\",\n \"class\": _ctx.cx('button'),\n \"aria-haspopup\": _ctx.model.length && _ctx.model.length > 0 ? true : false,\n \"aria-expanded\": $data.mobileActive,\n \"aria-controls\": $data.id,\n \"aria-label\": (_ctx$$primevue$config = _ctx.$primevue.config.locale.aria) === null || _ctx$$primevue$config === void 0 ? void 0 : _ctx$$primevue$config.navigation,\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.menuButtonClick($event);\n }),\n onKeydown: _cache[1] || (_cache[1] = function ($event) {\n return $options.menuButtonKeydown($event);\n })\n }, _objectSpread(_objectSpread({}, _ctx.buttonProps), _ctx.ptm('button'))), [renderSlot(_ctx.$slots, _ctx.$slots.buttonicon ? 'buttonicon' : 'menubuttonicon', {}, function () {\n return [createVNode(_component_BarsIcon, normalizeProps(guardReactiveProps(_ctx.ptm('buttonicon'))), null, 16)];\n })], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }), createVNode(_component_MenubarSub, {\n ref: $options.menubarRef,\n id: $data.id + '_list',\n role: \"menubar\",\n items: $options.processedItems,\n templates: _ctx.$slots,\n root: true,\n mobileActive: $data.mobileActive,\n tabindex: \"0\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemId : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemId : undefined,\n activeItemPath: $data.activeItemPath,\n level: 0,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"items\", \"templates\", \"mobileActive\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"activeItemPath\", \"aria-labelledby\", \"aria-label\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"]), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('end')\n }, _ctx.ptm('end')), [renderSlot(_ctx.$slots, \"end\")], 16)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-panel {\\n border: 1px solid \".concat(dt('panel.border.color'), \";\\n border-radius: \").concat(dt('panel.border.radius'), \";\\n background: \").concat(dt('panel.background'), \";\\n color: \").concat(dt('panel.color'), \";\\n}\\n\\n.p-panel-header {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n padding: \").concat(dt('panel.header.padding'), \";\\n background: \").concat(dt('panel.header.background'), \";\\n color: \").concat(dt('panel.header.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('panel.header.border.width'), \";\\n border-color: \").concat(dt('panel.header.border.color'), \";\\n border-radius: \").concat(dt('panel.header.border.radius'), \";\\n}\\n\\n.p-panel-toggleable .p-panel-header {\\n padding: \").concat(dt('panel.toggleable.header.padding'), \";\\n}\\n\\n.p-panel-title {\\n line-height: 1;\\n font-weight: \").concat(dt('panel.title.font.weight'), \";\\n}\\n\\n.p-panel-content {\\n padding: \").concat(dt('panel.content.padding'), \";\\n}\\n\\n.p-panel-footer {\\n padding: \").concat(dt('panel.footer.padding'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-panel p-component', {\n 'p-panel-toggleable': props.toggleable\n }];\n },\n header: 'p-panel-header',\n title: 'p-panel-title',\n headerActions: 'p-panel-header-actions',\n pcToggleButton: 'p-panel-toggle-button',\n contentContainer: 'p-panel-content-container',\n content: 'p-panel-content',\n footer: 'p-panel-footer'\n};\nvar PanelStyle = BaseStyle.extend({\n name: 'panel',\n theme: theme,\n classes: classes\n});\n\nexport { PanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport MinusIcon from '@primevue/icons/minus';\nimport PlusIcon from '@primevue/icons/plus';\nimport Button from 'primevue/button';\nimport Ripple from 'primevue/ripple';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport PanelStyle from 'primevue/panel/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createElementVNode, renderSlot, normalizeClass, toDisplayString, createCommentVNode, createBlock, withCtx, resolveDynamicComponent, createVNode, Transition, withDirectives, vShow } from 'vue';\n\nvar script$1 = {\n name: 'BasePanel',\n \"extends\": BaseComponent,\n props: {\n header: String,\n toggleable: Boolean,\n collapsed: Boolean,\n toggleButtonProps: {\n type: Object,\n \"default\": function _default() {\n return {\n severity: 'secondary',\n text: true,\n rounded: true\n };\n }\n }\n },\n style: PanelStyle,\n provide: function provide() {\n return {\n $pcPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Panel',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:collapsed', 'toggle'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_collapsed: this.collapsed\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n collapsed: function collapsed(newValue) {\n this.d_collapsed = newValue;\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n toggle: function toggle(event) {\n this.d_collapsed = !this.d_collapsed;\n this.$emit('update:collapsed', this.d_collapsed);\n this.$emit('toggle', {\n originalEvent: event,\n value: this.d_collapsed\n });\n },\n onKeyDown: function onKeyDown(event) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n },\n computed: {\n buttonAriaLabel: function buttonAriaLabel() {\n return this.toggleButtonProps && this.toggleButtonProps.ariaLabel ? this.toggleButtonProps.ariaLabel : this.header;\n }\n },\n components: {\n PlusIcon: PlusIcon,\n MinusIcon: MinusIcon,\n Button: Button\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"id\", \"aria-labelledby\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Button = resolveComponent(\"Button\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, \"header\", {\n id: $data.id + '_header',\n \"class\": normalizeClass(_ctx.cx('title'))\n }, function () {\n return [_ctx.header ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n id: $data.id + '_header',\n \"class\": _ctx.cx('title')\n }, _ctx.ptm('title')), toDisplayString(_ctx.header), 17, _hoisted_1)) : createCommentVNode(\"\", true)];\n }), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('headerActions')\n }, _ctx.ptm('headerActions')), [renderSlot(_ctx.$slots, \"icons\"), _ctx.toggleable ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n id: $data.id + '_header',\n \"class\": _ctx.cx('pcToggleButton'),\n \"aria-label\": $options.buttonAriaLabel,\n \"aria-controls\": $data.id + '_content',\n \"aria-expanded\": !$data.d_collapsed,\n unstyled: _ctx.unstyled,\n onClick: $options.toggle,\n onKeydown: $options.onKeyDown\n }, _ctx.toggleButtonProps, {\n pt: _ctx.ptm('pcToggleButton')\n }), {\n icon: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, _ctx.$slots.toggleicon ? 'toggleicon' : 'togglericon', {\n collapsed: $data.d_collapsed\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent($data.d_collapsed ? 'PlusIcon' : 'MinusIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, _ctx.ptm('pcToggleButton')['icon']), null, 16, [\"class\"]))];\n })];\n }),\n _: 3\n }, 16, [\"id\", \"class\", \"aria-label\", \"aria-controls\", \"aria-expanded\", \"unstyled\", \"onClick\", \"onKeydown\", \"pt\"])) : createCommentVNode(\"\", true)], 16)], 16), createVNode(Transition, mergeProps({\n name: \"p-toggleable-content\"\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [withDirectives(createElementVNode(\"div\", mergeProps({\n id: $data.id + '_content',\n \"class\": _ctx.cx('contentContainer'),\n role: \"region\",\n \"aria-labelledby\": $data.id + '_header'\n }, _ctx.ptm('contentContainer')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"default\")], 16), _ctx.$slots.footer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('footer')\n }, _ctx.ptm('footer')), [renderSlot(_ctx.$slots, \"footer\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_2), [[vShow, !$data.d_collapsed]])];\n }),\n _: 3\n }, 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tieredmenu {\\n background: \".concat(dt('tieredmenu.background'), \";\\n color: \").concat(dt('tieredmenu.color'), \";\\n border: 1px solid \").concat(dt('tieredmenu.border.color'), \";\\n border-radius: \").concat(dt('tieredmenu.border.radius'), \";\\n min-width: 12.5rem;\\n}\\n\\n.p-tieredmenu-root-list,\\n.p-tieredmenu-submenu {\\n margin: 0;\\n padding: \").concat(dt('tieredmenu.list.padding'), \";\\n list-style: none;\\n outline: 0 none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('tieredmenu.list.gap'), \";\\n}\\n\\n.p-tieredmenu-submenu {\\n position: absolute;\\n min-width: 100%;\\n z-index: 1;\\n background: \").concat(dt('tieredmenu.background'), \";\\n color: \").concat(dt('tieredmenu.color'), \";\\n border: 1px solid \").concat(dt('tieredmenu.border.color'), \";\\n border-radius: \").concat(dt('tieredmenu.border.radius'), \";\\n box-shadow: \").concat(dt('tieredmenu.shadow'), \";\\n}\\n\\n.p-tieredmenu-item {\\n position: relative;\\n}\\n\\n.p-tieredmenu-item-content {\\n transition: background \").concat(dt('tieredmenu.transition.duration'), \", color \").concat(dt('tieredmenu.transition.duration'), \";\\n border-radius: \").concat(dt('tieredmenu.item.border.radius'), \";\\n color: \").concat(dt('tieredmenu.item.color'), \";\\n}\\n\\n.p-tieredmenu-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('tieredmenu.item.padding'), \";\\n gap: \").concat(dt('tieredmenu.item.gap'), \";\\n user-select: none;\\n outline: 0 none;\\n}\\n\\n.p-tieredmenu-item-label {\\n line-height: 1;\\n}\\n\\n.p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.color'), \";\\n}\\n\\n.p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n width: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n height: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content {\\n color: \").concat(dt('tieredmenu.item.focus.color'), \";\\n background: \").concat(dt('tieredmenu.item.focus.background'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover {\\n color: \").concat(dt('tieredmenu.item.focus.color'), \";\\n background: \").concat(dt('tieredmenu.item.focus.background'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content {\\n color: \").concat(dt('tieredmenu.item.active.color'), \";\\n background: \").concat(dt('tieredmenu.item.active.background'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.active.color'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.active.color'), \";\\n}\\n\\n.p-tieredmenu-separator {\\n border-top: 1px solid \").concat(dt('tieredmenu.separator.border.color'), \";\\n}\\n\\n.p-tieredmenu-overlay {\\n box-shadow: \").concat(dt('tieredmenu.shadow'), \";\\n}\\n\\n.p-tieredmenu-enter-from,\\n.p-tieredmenu-leave-active {\\n opacity: 0;\\n}\\n\\n.p-tieredmenu-enter-active {\\n transition: opacity 250ms;\\n}\\n\");\n};\nvar inlineStyles = {\n submenu: function submenu(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return {\n display: instance.isItemActive(processedItem) ? 'flex' : 'none'\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n _ref3.instance;\n var props = _ref3.props;\n return ['p-tieredmenu p-component', {\n 'p-tieredmenu-overlay': props.popup\n }];\n },\n start: 'p-tieredmenu-start',\n rootList: 'p-tieredmenu-root-list',\n item: function item(_ref4) {\n var instance = _ref4.instance,\n processedItem = _ref4.processedItem;\n return ['p-tieredmenu-item', {\n 'p-tieredmenu-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-tieredmenu-item-content',\n itemLink: 'p-tieredmenu-item-link',\n itemIcon: 'p-tieredmenu-item-icon',\n itemLabel: 'p-tieredmenu-item-label',\n submenuIcon: 'p-tieredmenu-submenu-icon',\n submenu: 'p-tieredmenu-submenu',\n separator: 'p-tieredmenu-separator',\n end: 'p-tieredmenu-end'\n};\nvar TieredMenuStyle = BaseStyle.extend({\n name: 'tieredmenu',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { TieredMenuStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport { nestedPosition, focus, findSingle, addStyle, absolutePosition, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TieredMenuStyle from 'primevue/tieredmenu/style';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createBlock, Transition, withCtx, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, normalizeStyle, createVNode, renderSlot } from 'vue';\n\nvar script$2 = {\n name: 'BaseTieredMenu',\n \"extends\": BaseComponent,\n props: {\n popup: {\n type: Boolean,\n \"default\": false\n },\n model: {\n type: Array,\n \"default\": null\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: TieredMenuStyle,\n provide: function provide() {\n return {\n $pcTieredMenu: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'TieredMenuSub',\n hostName: 'TieredMenu',\n \"extends\": BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n container: null,\n props: {\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n items: {\n type: Array,\n \"default\": null\n },\n visible: {\n type: Boolean,\n \"default\": false\n },\n level: {\n type: Number,\n \"default\": 0\n },\n templates: {\n type: Object,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n }\n },\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index: index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onEnter: function onEnter() {\n nestedPosition(this.container, this.level);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && !_this.getItemProp(processedItem, 'separator');\n }).length;\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this2 = this;\n return index - this.items.slice(0, index).filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && _this2.getItemProp(processedItem, 'separator');\n }).length + 1;\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions(processedItem, index, 'itemLink')),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions(processedItem, index, 'itemIcon')),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions(processedItem, index, 'itemLabel')),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions(processedItem, index, 'submenuIcon'))\n };\n },\n containerRef: function containerRef(el) {\n this.container = el;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"tabindex\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_3 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_4 = [\"href\", \"target\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_AngleRightIcon = resolveComponent(\"AngleRightIcon\");\n var _component_TieredMenuSub = resolveComponent(\"TieredMenuSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createBlock(Transition, mergeProps({\n name: \"p-tieredmenu\",\n onEnter: $options.onEnter\n }, _ctx.ptm('menu.transition')), {\n \"default\": withCtx(function () {\n return [($props.level === 0 ? true : $props.visible) ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n \"class\": $props.level === 0 ? _ctx.cx('rootList') : _ctx.cx('submenu'),\n tabindex: $props.tabindex\n }, $props.level === 0 ? _ctx.ptm('rootList') : _ctx.ptm('submenu')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize(),\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'item'), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemContent')), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLink')), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemIcon')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLabel')), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_5), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), mergeProps({\n key: 0,\n \"class\": _ctx.cx('submenuIcon'),\n active: $options.isItemActive(processedItem),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\", \"active\"])) : (openBlock(), createBlock(_component_AngleRightIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_4)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_3), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_TieredMenuSub, {\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n style: normalizeStyle(_ctx.sx('submenu', true, {\n processedItem: processedItem\n })),\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n role: \"menu\",\n menuId: $props.menuId,\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n templates: $props.templates,\n activeItemPath: $props.activeItemPath,\n level: $props.level + 1,\n visible: $options.isItemActive(processedItem) && $options.isItemGroup(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n })\n }, null, 8, [\"id\", \"style\", \"aria-labelledby\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"level\", \"visible\", \"pt\", \"unstyled\"])) : createCommentVNode(\"\", true)], 16, _hoisted_2)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_6)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16, _hoisted_1$1)) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\"]);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'TieredMenu',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n target: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n visible: !this.popup,\n submenuVisible: false,\n dirty: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (!this.popup) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n this.visible ? this.hide(event, true) : this.show(event);\n },\n show: function show(event, isFocus) {\n if (this.popup) {\n this.$emit('before-show');\n this.visible = true;\n this.target = this.target || event.currentTarget;\n this.relatedTarget = event.relatedTarget || null;\n }\n isFocus && focus(this.menubar);\n },\n hide: function hide(event, isFocus) {\n if (this.popup) {\n this.$emit('before-hide');\n this.visible = false;\n }\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n isFocus && focus(this.relatedTarget || this.target || this.menubar);\n this.dirty = false;\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n if (!this.popup) {\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: this.findFirstFocusedItemIndex(),\n level: 0,\n parentKey: ''\n };\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n onItemClick: function onItemClick(event) {\n var originalEvent = event.originalEvent,\n processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var root = isEmpty(processedItem.parent);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n var rootProcessedItem = root ? processedItem : this.activeItemPath.find(function (p) {\n return p.parentKey === '';\n });\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.popup && this.hide(event, true);\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n var root = isEmpty(processedItem.parent);\n if (!root) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemId), \"\\\"]\"));\n var anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n if (!this.popup) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n if (this.popup || this.focusedItemInfo.level !== 0) {\n var _focusedItemInfo = this.focusedItemInfo;\n this.hide(event, false);\n this.focusedItemInfo = {\n index: Number(_focusedItemInfo.parentKey.split('_')[0]),\n level: 0,\n parentKey: ''\n };\n this.popup && focus(this.target);\n }\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n onEnter: function onEnter(el) {\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n focus(this.menubar);\n this.scrollInView();\n },\n onAfterEnter: function onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onLeave: function onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.$emit('hide');\n this.container = null;\n this.dirty = false;\n },\n onAfterLeave: function onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay: function alignOverlay() {\n absolutePosition(this.container, this.target);\n var targetWidth = getOuterWidth(this.target);\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this2 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this2.container && !_this2.container.contains(event.target);\n var isOutsideTarget = _this2.popup ? !(_this2.target && (_this2.target === event.target || _this2.target.contains(event.target))) : true;\n if (isOutsideContainer && isOutsideTarget) {\n _this2.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this3 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, function (event) {\n _this3.hide(event, true);\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this4 = this;\n if (!this.resizeListener) {\n this.resizeListener = function (event) {\n if (!isTouchDevice()) {\n _this4.hide(event, true);\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this5 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this5.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this6 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this6.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this7 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this7.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this8 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this8.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this9 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this9.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this10 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this10.searchValue = '';\n _this10.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemId;\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this11 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this11.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n menubarRef: function menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this12 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this12.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId: function focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n TieredMenuSub: script$1,\n Portal: Portal\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_TieredMenuSub = resolveComponent(\"TieredMenuSub\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, {\n appendTo: _ctx.appendTo,\n disabled: !_ctx.popup\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onEnter,\n onAfterEnter: $options.onAfterEnter,\n onLeave: $options.onLeave,\n onAfterLeave: $options.onAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.visible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n id: $data.id,\n \"class\": _ctx.cx('root'),\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('start')\n }, _ctx.ptm('start')), [renderSlot(_ctx.$slots, \"start\")], 16)) : createCommentVNode(\"\", true), createVNode(_component_TieredMenuSub, {\n ref: $options.menubarRef,\n id: $data.id + '_list',\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n role: \"menubar\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-disabled\": _ctx.disabled || undefined,\n \"aria-orientation\": \"vertical\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemId : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemId : undefined,\n items: $options.processedItems,\n templates: _ctx.$slots,\n activeItemPath: $data.activeItemPath,\n level: 0,\n visible: $data.submenuVisible,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"tabindex\", \"aria-label\", \"aria-labelledby\", \"aria-disabled\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"visible\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"]), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('end')\n }, _ctx.ptm('end')), [renderSlot(_ctx.$slots, \"end\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\", \"disabled\"]);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-splitbutton {\\n display: inline-flex;\\n position: relative;\\n border-radius: \".concat(dt('splitbutton.border.radius'), \";\\n}\\n\\n.p-splitbutton-button {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n border-right: 0 none;\\n}\\n\\n.p-splitbutton-button:focus-visible,\\n.p-splitbutton-dropdown:focus-visible {\\n z-index: 1;\\n}\\n\\n.p-splitbutton-button:not(:disabled):hover,\\n.p-splitbutton-button:not(:disabled):active {\\n border-right: 0 none;\\n}\\n\\n.p-splitbutton-dropdown {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\\n.p-splitbutton .p-menu {\\n min-width: 100%;\\n}\\n\\n.p-splitbutton-fluid {\\n display: flex;\\n}\\n\\n.p-splitbutton-rounded .p-splitbutton-dropdown {\\n border-top-right-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n}\\n\\n.p-splitbutton-rounded .p-splitbutton-button {\\n border-top-left-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n border-bottom-left-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n}\\n\\n.p-splitbutton-raised {\\n box-shadow: \").concat(dt('splitbutton.raised.shadow'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-splitbutton p-component', {\n 'p-splitbutton-raised': props.raised,\n 'p-splitbutton-rounded': props.rounded,\n 'p-splitbutton-fluid': instance.hasFluid\n }];\n },\n pcButton: 'p-splitbutton-button',\n pcDropdown: 'p-splitbutton-dropdown'\n};\nvar SplitButtonStyle = BaseStyle.extend({\n name: 'splitbutton',\n theme: theme,\n classes: classes\n});\n\nexport { SplitButtonStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { isEmpty } from '@primeuix/utils/object';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport Button from 'primevue/button';\nimport TieredMenu from 'primevue/tieredmenu';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SplitButtonStyle from 'primevue/splitbutton/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createVNode, createSlots, withCtx, renderSlot, normalizeClass, createElementVNode, createBlock, resolveDynamicComponent } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitButton',\n \"extends\": BaseComponent,\n props: {\n label: {\n type: String,\n \"default\": null\n },\n icon: {\n type: String,\n \"default\": null\n },\n model: {\n type: Array,\n \"default\": null\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n \"class\": {\n type: null,\n \"default\": null\n },\n style: {\n type: null,\n \"default\": null\n },\n buttonProps: {\n type: null,\n \"default\": null\n },\n menuButtonProps: {\n type: null,\n \"default\": null\n },\n menuButtonIcon: {\n type: String,\n \"default\": undefined\n },\n dropdownIcon: {\n type: String,\n \"default\": undefined\n },\n severity: {\n type: String,\n \"default\": null\n },\n raised: {\n type: Boolean,\n \"default\": false\n },\n rounded: {\n type: Boolean,\n \"default\": false\n },\n text: {\n type: Boolean,\n \"default\": false\n },\n outlined: {\n type: Boolean,\n \"default\": false\n },\n size: {\n type: String,\n \"default\": null\n },\n plain: {\n type: Boolean,\n \"default\": false\n }\n },\n style: SplitButtonStyle,\n provide: function provide() {\n return {\n $pcSplitButton: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'SplitButton',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['click'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n id: this.$attrs.id,\n isExpanded: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n mounted: function mounted() {\n var _this = this;\n this.id = this.id || UniqueComponentId();\n this.$watch('$refs.menu.visible', function (newValue) {\n _this.isExpanded = newValue;\n });\n },\n methods: {\n onDropdownButtonClick: function onDropdownButtonClick(event) {\n if (event) {\n event.preventDefault();\n }\n this.$refs.menu.toggle({\n currentTarget: this.$el,\n relatedTarget: this.$refs.button.$el\n });\n this.isExpanded = this.$refs.menu.visible;\n },\n onDropdownKeydown: function onDropdownKeydown(event) {\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {\n this.onDropdownButtonClick();\n event.preventDefault();\n }\n },\n onDefaultButtonClick: function onDefaultButtonClick(event) {\n if (this.isExpanded) {\n this.$refs.menu.hide(event);\n }\n this.$emit('click', event);\n }\n },\n computed: {\n containerClass: function containerClass() {\n return [this.cx('root'), this[\"class\"]];\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n PVSButton: Button,\n PVSMenu: TieredMenu,\n ChevronDownIcon: ChevronDownIcon\n }\n};\n\nvar _hoisted_1 = [\"data-p-severity\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_PVSButton = resolveComponent(\"PVSButton\");\n var _component_PVSMenu = resolveComponent(\"PVSMenu\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": $options.containerClass,\n style: _ctx.style\n }, _ctx.ptmi('root'), {\n \"data-p-severity\": _ctx.severity\n }), [createVNode(_component_PVSButton, mergeProps({\n type: \"button\",\n \"class\": _ctx.cx('pcButton'),\n label: _ctx.label,\n disabled: _ctx.disabled,\n severity: _ctx.severity,\n text: _ctx.text,\n icon: _ctx.icon,\n outlined: _ctx.outlined,\n size: _ctx.size,\n fluid: _ctx.fluid,\n \"aria-label\": _ctx.label,\n onClick: $options.onDefaultButtonClick\n }, _ctx.buttonProps, {\n pt: _ctx.ptm('pcButton'),\n unstyled: _ctx.unstyled\n }), createSlots({\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 2\n }, [_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"icon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": [_ctx.icon, slotProps[\"class\"]]\n }, _ctx.ptm('pcButton')['icon'], {\n \"data-pc-section\": \"buttonicon\"\n }), null, 16)];\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"class\", \"label\", \"disabled\", \"severity\", \"text\", \"icon\", \"outlined\", \"size\", \"fluid\", \"aria-label\", \"onClick\", \"pt\", \"unstyled\"]), createVNode(_component_PVSButton, mergeProps({\n ref: \"button\",\n type: \"button\",\n \"class\": _ctx.cx('pcDropdown'),\n disabled: _ctx.disabled,\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": $data.isExpanded,\n \"aria-controls\": $data.id + '_overlay',\n onClick: $options.onDropdownButtonClick,\n onKeydown: $options.onDropdownKeydown,\n severity: _ctx.severity,\n text: _ctx.text,\n outlined: _ctx.outlined,\n size: _ctx.size,\n unstyled: _ctx.unstyled\n }, _ctx.menuButtonProps, {\n pt: _ctx.ptm('pcDropdown')\n }), {\n icon: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, _ctx.$slots.dropdownicon ? 'dropdownicon' : 'menubuttonicon', {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.menuButtonIcon || _ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": [_ctx.dropdownIcon || _ctx.menuButtonIcon, slotProps[\"class\"]]\n }, _ctx.ptm('pcDropdown')['icon'], {\n \"data-pc-section\": \"menubuttonicon\"\n }), null, 16, [\"class\"]))];\n })];\n }),\n _: 3\n }, 16, [\"class\", \"disabled\", \"aria-expanded\", \"aria-controls\", \"onClick\", \"onKeydown\", \"severity\", \"text\", \"outlined\", \"size\", \"unstyled\", \"pt\"]), createVNode(_component_PVSMenu, {\n ref: \"menu\",\n id: $data.id + '_overlay',\n model: _ctx.model,\n popup: true,\n autoZIndex: _ctx.autoZIndex,\n baseZIndex: _ctx.baseZIndex,\n appendTo: _ctx.appendTo,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcMenu')\n }, createSlots({\n _: 2\n }, [_ctx.$slots.menuitemicon ? {\n name: \"itemicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"menuitemicon\", {\n item: slotProps.item,\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"0\"\n } : undefined, _ctx.$slots.item ? {\n name: \"item\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"item\", {\n item: slotProps.item,\n hasSubmenu: slotProps.hasSubmenu,\n label: slotProps.label,\n props: slotProps.props\n })];\n }),\n key: \"1\"\n } : undefined]), 1032, [\"id\", \"model\", \"autoZIndex\", \"baseZIndex\", \"appendTo\", \"unstyled\", \"pt\"])], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","\n\n\n\n\n","import {\n useQueueSettingsStore,\n useQueuePendingTaskCountStore\n} from '@/stores/queueStore'\nimport { app } from '@/scripts/app'\nimport { api } from '@/scripts/api'\n\nexport function setupAutoQueueHandler() {\n const queueCountStore = useQueuePendingTaskCountStore()\n const queueSettingsStore = useQueueSettingsStore()\n\n let graphHasChanged = false\n let internalCount = 0 // Use an internal counter here so it is instantly updated when re-queuing\n api.addEventListener('graphChanged', () => {\n if (queueSettingsStore.mode === 'change') {\n if (internalCount) {\n graphHasChanged = true\n } else {\n graphHasChanged = false\n app.queuePrompt(0, queueSettingsStore.batchCount)\n internalCount++\n }\n }\n })\n\n queueCountStore.$subscribe(\n () => {\n internalCount = queueCountStore.count\n if (!internalCount && !app.lastExecutionError) {\n if (\n queueSettingsStore.mode === 'instant' ||\n (queueSettingsStore.mode === 'change' && graphHasChanged)\n ) {\n graphHasChanged = false\n app.queuePrompt(0, queueSettingsStore.batchCount)\n }\n }\n },\n { detached: true }\n )\n}\n","export enum LatentPreviewMethod {\n NoPreviews = 'none',\n Auto = 'auto',\n Latent2RGB = 'latent2rgb',\n TAESD = 'taesd'\n}\n\nexport enum LogLevel {\n DEBUG = 'DEBUG',\n INFO = 'INFO',\n WARNING = 'WARNING',\n ERROR = 'ERROR',\n CRITICAL = 'CRITICAL'\n}\n\nexport enum HashFunction {\n MD5 = 'md5',\n SHA1 = 'sha1',\n SHA256 = 'sha256',\n SHA512 = 'sha512'\n}\n\nexport enum AutoLaunch {\n // Let server decide whether to auto launch based on the current environment\n Auto = 'auto',\n // Disable auto launch\n Disable = 'disable',\n // Enable auto launch\n Enable = 'enable'\n}\n\nexport enum CudaMalloc {\n // Let server decide whether to use CUDA malloc based on the current environment\n Auto = 'auto',\n // Disable CUDA malloc\n Disable = 'disable',\n // Enable CUDA malloc\n Enable = 'enable'\n}\n\nexport enum FloatingPointPrecision {\n AUTO = 'auto',\n FP64 = 'fp64',\n FP32 = 'fp32',\n FP16 = 'fp16',\n BF16 = 'bf16',\n FP8E4M3FN = 'fp8_e4m3fn',\n FP8E5M2 = 'fp8_e5m2'\n}\n\nexport enum CrossAttentionMethod {\n Auto = 'auto',\n Split = 'split',\n Quad = 'quad',\n Pytorch = 'pytorch'\n}\n\nexport enum VramManagement {\n Auto = 'auto',\n GPUOnly = 'gpu-only',\n HighVram = 'highvram',\n NormalVram = 'normalvram',\n LowVram = 'lowvram',\n NoVram = 'novram',\n CPU = 'cpu'\n}\n","import { FormItem } from '@/types/settingTypes'\nimport {\n LatentPreviewMethod,\n LogLevel,\n HashFunction,\n AutoLaunch,\n CudaMalloc,\n FloatingPointPrecision,\n CrossAttentionMethod,\n VramManagement\n} from '@/types/serverArgs'\n\nexport type ServerConfigValue = string | number | true | null | undefined\n\nexport interface ServerConfig extends FormItem {\n id: string\n defaultValue: T\n category?: string[]\n // Override the default value getter with a custom function.\n getValue?: (value: T) => Record\n}\n\nexport const WEB_ONLY_CONFIG_ITEMS: ServerConfig[] = [\n // Launch behavior\n {\n id: 'auto-launch',\n name: 'Automatically opens in the browser on startup',\n category: ['Launch'],\n type: 'combo',\n options: Object.values(AutoLaunch),\n defaultValue: AutoLaunch.Auto,\n getValue: (value: AutoLaunch) => {\n switch (value) {\n case AutoLaunch.Auto:\n return {}\n case AutoLaunch.Enable:\n return {\n ['auto-launch']: true\n }\n case AutoLaunch.Disable:\n return {\n ['disable-auto-launch']: true\n }\n }\n }\n }\n]\n\nexport const SERVER_CONFIG_ITEMS: ServerConfig[] = [\n // Network settings\n {\n id: 'listen',\n name: 'Host: The IP address to listen on',\n category: ['Network'],\n type: 'text',\n defaultValue: '127.0.0.1'\n },\n {\n id: 'port',\n name: 'Port: The port to listen on',\n category: ['Network'],\n type: 'number',\n // The default launch port for desktop app is 8000 instead of 8188.\n defaultValue: 8000\n },\n {\n id: 'tls-keyfile',\n name: 'TLS Key File: Path to TLS key file for HTTPS',\n category: ['Network'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'tls-certfile',\n name: 'TLS Certificate File: Path to TLS certificate file for HTTPS',\n category: ['Network'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'enable-cors-header',\n name: 'Enable CORS header: Use \"*\" for all origins or specify domain',\n category: ['Network'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'max-upload-size',\n name: 'Maximum upload size (MB)',\n category: ['Network'],\n type: 'number',\n defaultValue: 100\n },\n\n // CUDA settings\n {\n id: 'cuda-device',\n name: 'CUDA device index to use',\n category: ['CUDA'],\n type: 'number',\n defaultValue: null\n },\n {\n id: 'cuda-malloc',\n name: 'Use CUDA malloc for memory allocation',\n category: ['CUDA'],\n type: 'combo',\n options: Object.values(CudaMalloc),\n defaultValue: CudaMalloc.Auto,\n getValue: (value: CudaMalloc) => {\n switch (value) {\n case CudaMalloc.Auto:\n return {}\n case CudaMalloc.Enable:\n return {\n ['cuda-malloc']: true\n }\n case CudaMalloc.Disable:\n return {\n ['disable-cuda-malloc']: true\n }\n }\n }\n },\n\n // Precision settings\n {\n id: 'global-precision',\n name: 'Global floating point precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP32,\n FloatingPointPrecision.FP16\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'Global floating point precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n case FloatingPointPrecision.FP32:\n return {\n ['force-fp32']: true\n }\n case FloatingPointPrecision.FP16:\n return {\n ['force-fp16']: true\n }\n default:\n return {}\n }\n }\n },\n\n // UNET precision\n {\n id: 'unet-precision',\n name: 'UNET precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP64,\n FloatingPointPrecision.FP32,\n FloatingPointPrecision.FP16,\n FloatingPointPrecision.BF16,\n FloatingPointPrecision.FP8E4M3FN,\n FloatingPointPrecision.FP8E5M2\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'UNET precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n default:\n return {\n [`${value.toLowerCase()}-unet`]: true\n }\n }\n }\n },\n\n // VAE settings\n {\n id: 'vae-precision',\n name: 'VAE precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP16,\n FloatingPointPrecision.FP32,\n FloatingPointPrecision.BF16\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'VAE precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n default:\n return {\n [`${value.toLowerCase()}-vae`]: true\n }\n }\n }\n },\n {\n id: 'cpu-vae',\n name: 'Run VAE on CPU',\n category: ['Inference'],\n type: 'boolean',\n defaultValue: false\n },\n\n // Text Encoder settings\n {\n id: 'text-encoder-precision',\n name: 'Text Encoder precision',\n category: ['Inference'],\n type: 'combo',\n options: [\n FloatingPointPrecision.AUTO,\n FloatingPointPrecision.FP8E4M3FN,\n FloatingPointPrecision.FP8E5M2,\n FloatingPointPrecision.FP16,\n FloatingPointPrecision.FP32\n ],\n defaultValue: FloatingPointPrecision.AUTO,\n tooltip: 'Text Encoder precision',\n getValue: (value: FloatingPointPrecision) => {\n switch (value) {\n case FloatingPointPrecision.AUTO:\n return {}\n default:\n return {\n [`${value.toLowerCase()}-text-enc`]: true\n }\n }\n }\n },\n\n // Memory and performance settings\n {\n id: 'force-channels-last',\n name: 'Force channels-last memory format',\n category: ['Memory'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'directml',\n name: 'DirectML device index',\n category: ['Memory'],\n type: 'number',\n defaultValue: null\n },\n {\n id: 'disable-ipex-optimize',\n name: 'Disable IPEX optimization',\n category: ['Memory'],\n type: 'boolean',\n defaultValue: false\n },\n\n // Preview settings\n {\n id: 'preview-method',\n name: 'Method used for latent previews',\n category: ['Preview'],\n type: 'combo',\n options: Object.values(LatentPreviewMethod),\n defaultValue: LatentPreviewMethod.NoPreviews\n },\n {\n id: 'preview-size',\n name: 'Size of preview images',\n category: ['Preview'],\n type: 'slider',\n defaultValue: 512,\n attrs: {\n min: 128,\n max: 2048,\n step: 128\n }\n },\n\n // Cache settings\n {\n id: 'cache-classic',\n name: 'Use classic cache system',\n category: ['Cache'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'cache-lru',\n name: 'Use LRU caching with a maximum of N node results cached.',\n category: ['Cache'],\n type: 'number',\n defaultValue: null,\n tooltip: 'May use more RAM/VRAM.'\n },\n\n // Attention settings\n {\n id: 'cross-attention-method',\n name: 'Cross attention method',\n category: ['Attention'],\n type: 'combo',\n options: Object.values(CrossAttentionMethod),\n defaultValue: CrossAttentionMethod.Auto,\n getValue: (value: CrossAttentionMethod) => {\n switch (value) {\n case CrossAttentionMethod.Auto:\n return {}\n default:\n return {\n [`use-${value.toLowerCase()}-cross-attention`]: true\n }\n }\n }\n },\n {\n id: 'disable-xformers',\n name: 'Disable xFormers optimization',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'force-upcast-attention',\n name: 'Force attention upcast',\n category: ['Attention'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'dont-upcast-attention',\n name: 'Prevent attention upcast',\n category: ['Attention'],\n type: 'boolean',\n defaultValue: false\n },\n\n // VRAM management\n {\n id: 'vram-management',\n name: 'VRAM management mode',\n category: ['Memory'],\n type: 'combo',\n options: Object.values(VramManagement),\n defaultValue: VramManagement.Auto,\n getValue: (value: VramManagement) => {\n switch (value) {\n case VramManagement.Auto:\n return {}\n default:\n return {\n [value]: true\n }\n }\n }\n },\n {\n id: 'reserve-vram',\n name: 'Reserved VRAM (GB)',\n category: ['Memory'],\n type: 'number',\n defaultValue: null,\n tooltip:\n 'Set the amount of vram in GB you want to reserve for use by your OS/other software. By default some amount is reverved depending on your OS.'\n },\n\n // Misc settings\n {\n id: 'default-hashing-function',\n name: 'Default hashing function for model files',\n type: 'combo',\n options: Object.values(HashFunction),\n defaultValue: HashFunction.SHA256\n },\n {\n id: 'disable-smart-memory',\n name: 'Disable smart memory management',\n tooltip:\n 'Force ComfyUI to aggressively offload to regular ram instead of keeping models in vram when it can.',\n category: ['Memory'],\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'deterministic',\n name: 'Make pytorch use slower deterministic algorithms when it can.',\n type: 'boolean',\n defaultValue: false,\n tooltip: 'Note that this might not make images deterministic in all cases.'\n },\n {\n id: 'fast',\n name: 'Enable some untested and potentially quality deteriorating optimizations.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'dont-print-server',\n name: \"Don't print server output to console.\",\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'disable-metadata',\n name: 'Disable saving prompt metadata in files.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'disable-all-custom-nodes',\n name: 'Disable loading all custom nodes.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'log-level',\n name: 'Logging verbosity level',\n type: 'combo',\n options: Object.values(LogLevel),\n defaultValue: LogLevel.INFO,\n getValue: (value: LogLevel) => {\n return {\n verbose: value\n }\n }\n },\n // Directories\n {\n id: 'input-directory',\n name: 'Input directory',\n category: ['Directories'],\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'output-directory',\n name: 'Output directory',\n category: ['Directories'],\n type: 'text',\n defaultValue: ''\n }\n]\n","import { app } from '@/scripts/app'\nimport { api } from '@/scripts/api'\nimport {\n showSettingsDialog,\n showTemplateWorkflowsDialog\n} from '@/services/dialogService'\nimport { workflowService } from '@/services/workflowService'\nimport type { ComfyCommand } from '@/stores/commandStore'\nimport { useTitleEditorStore } from '@/stores/graphStore'\nimport { useQueueSettingsStore, useQueueStore } from '@/stores/queueStore'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useToastStore } from '@/stores/toastStore'\nimport { type ComfyWorkflow, useWorkflowStore } from '@/stores/workflowStore'\nimport { useBottomPanelStore } from '@/stores/workspace/bottomPanelStore'\nimport { useWorkspaceStore } from '@/stores/workspaceStore'\nimport {\n LiteGraph,\n LGraphEventMode,\n LGraphNode,\n LGraphGroup\n} from '@comfyorg/litegraph'\nimport { useSearchBoxStore } from '@/stores/workspace/searchBoxStore'\n\nexport function useCoreCommands(): ComfyCommand[] {\n const getTracker = () => useWorkflowStore()?.activeWorkflow?.changeTracker\n\n const getSelectedNodes = (): LGraphNode[] => {\n const selectedNodes = app.canvas.selected_nodes\n const result: LGraphNode[] = []\n if (selectedNodes) {\n for (const i in selectedNodes) {\n const node = selectedNodes[i]\n result.push(node)\n }\n }\n return result\n }\n\n const toggleSelectedNodesMode = (mode: LGraphEventMode) => {\n getSelectedNodes().forEach((node) => {\n if (node.mode === mode) {\n node.mode = LGraphEventMode.ALWAYS\n } else {\n node.mode = mode\n }\n })\n }\n\n return [\n {\n id: 'Comfy.NewBlankWorkflow',\n icon: 'pi pi-plus',\n label: 'New Blank Workflow',\n menubarLabel: 'New',\n function: () => workflowService.loadBlankWorkflow()\n },\n {\n id: 'Comfy.OpenWorkflow',\n icon: 'pi pi-folder-open',\n label: 'Open Workflow',\n menubarLabel: 'Open',\n function: () => {\n app.ui.loadFile()\n }\n },\n {\n id: 'Comfy.LoadDefaultWorkflow',\n icon: 'pi pi-code',\n label: 'Load Default Workflow',\n function: () => workflowService.loadDefaultWorkflow()\n },\n {\n id: 'Comfy.SaveWorkflow',\n icon: 'pi pi-save',\n label: 'Save Workflow',\n menubarLabel: 'Save',\n function: async () => {\n const workflow = useWorkflowStore().activeWorkflow as ComfyWorkflow\n if (!workflow) return\n\n await workflowService.saveWorkflow(workflow)\n }\n },\n {\n id: 'Comfy.SaveWorkflowAs',\n icon: 'pi pi-save',\n label: 'Save Workflow As',\n menubarLabel: 'Save As',\n function: async () => {\n const workflow = useWorkflowStore().activeWorkflow as ComfyWorkflow\n if (!workflow) return\n\n await workflowService.saveWorkflowAs(workflow)\n }\n },\n {\n id: 'Comfy.ExportWorkflow',\n icon: 'pi pi-download',\n label: 'Export Workflow',\n menubarLabel: 'Export',\n function: () => {\n workflowService.exportWorkflow('workflow', 'workflow')\n }\n },\n {\n id: 'Comfy.ExportWorkflowAPI',\n icon: 'pi pi-download',\n label: 'Export Workflow (API Format)',\n menubarLabel: 'Export (API)',\n function: () => {\n workflowService.exportWorkflow('workflow_api', 'output')\n }\n },\n {\n id: 'Comfy.Undo',\n icon: 'pi pi-undo',\n label: 'Undo',\n function: async () => {\n await getTracker()?.undo?.()\n }\n },\n {\n id: 'Comfy.Redo',\n icon: 'pi pi-refresh',\n label: 'Redo',\n function: async () => {\n await getTracker()?.redo?.()\n }\n },\n {\n id: 'Comfy.ClearWorkflow',\n icon: 'pi pi-trash',\n label: 'Clear Workflow',\n function: () => {\n const settingStore = useSettingStore()\n if (\n !settingStore.get('Comfy.ComfirmClear') ||\n confirm('Clear workflow?')\n ) {\n app.clean()\n app.graph.clear()\n api.dispatchCustomEvent('graphCleared')\n }\n }\n },\n {\n id: 'Comfy.Canvas.ResetView',\n icon: 'pi pi-expand',\n label: 'Reset View',\n function: () => {\n app.resetView()\n }\n },\n {\n id: 'Comfy.OpenClipspace',\n icon: 'pi pi-clipboard',\n label: 'Clipspace',\n function: () => {\n app.openClipspace()\n }\n },\n {\n id: 'Comfy.RefreshNodeDefinitions',\n icon: 'pi pi-refresh',\n label: 'Refresh Node Definitions',\n function: async () => {\n await app.refreshComboInNodes()\n }\n },\n {\n id: 'Comfy.Interrupt',\n icon: 'pi pi-stop',\n label: 'Interrupt',\n function: async () => {\n await api.interrupt()\n useToastStore().add({\n severity: 'info',\n summary: 'Interrupted',\n detail: 'Execution has been interrupted',\n life: 1000\n })\n }\n },\n {\n id: 'Comfy.ClearPendingTasks',\n icon: 'pi pi-stop',\n label: 'Clear Pending Tasks',\n function: async () => {\n await useQueueStore().clear(['queue'])\n useToastStore().add({\n severity: 'info',\n summary: 'Confirmed',\n detail: 'Pending tasks deleted',\n life: 3000\n })\n }\n },\n {\n id: 'Comfy.BrowseTemplates',\n icon: 'pi pi-folder-open',\n label: 'Browse Templates',\n function: showTemplateWorkflowsDialog\n },\n {\n id: 'Comfy.Canvas.ZoomIn',\n icon: 'pi pi-plus',\n label: 'Zoom In',\n function: () => {\n const ds = app.canvas.ds\n ds.changeScale(\n ds.scale * 1.1,\n ds.element ? [ds.element.width / 2, ds.element.height / 2] : undefined\n )\n app.canvas.setDirty(true, true)\n }\n },\n {\n id: 'Comfy.Canvas.ZoomOut',\n icon: 'pi pi-minus',\n label: 'Zoom Out',\n function: () => {\n const ds = app.canvas.ds\n ds.changeScale(\n ds.scale / 1.1,\n ds.element ? [ds.element.width / 2, ds.element.height / 2] : undefined\n )\n app.canvas.setDirty(true, true)\n }\n },\n {\n id: 'Comfy.Canvas.FitView',\n icon: 'pi pi-expand',\n label: 'Fit view to selected nodes',\n function: () => {\n if (app.canvas.empty) {\n useToastStore().add({\n severity: 'error',\n summary: 'Empty canvas',\n life: 3000\n })\n return\n }\n app.canvas.fitViewToSelectionAnimated()\n }\n },\n {\n id: 'Comfy.Canvas.ToggleLock',\n icon: 'pi pi-lock',\n label: 'Canvas Toggle Lock',\n function: () => {\n app.canvas['read_only'] = !app.canvas['read_only']\n }\n },\n {\n id: 'Comfy.Canvas.ToggleLinkVisibility',\n icon: 'pi pi-eye',\n label: 'Canvas Toggle Link Visibility',\n versionAdded: '1.3.6',\n\n function: (() => {\n const settingStore = useSettingStore()\n let lastLinksRenderMode = LiteGraph.SPLINE_LINK\n\n return () => {\n const currentMode = settingStore.get('Comfy.LinkRenderMode')\n\n if (currentMode === LiteGraph.HIDDEN_LINK) {\n // If links are hidden, restore the last positive value or default to spline mode\n settingStore.set('Comfy.LinkRenderMode', lastLinksRenderMode)\n } else {\n // If links are visible, store the current mode and hide links\n lastLinksRenderMode = currentMode\n settingStore.set('Comfy.LinkRenderMode', LiteGraph.HIDDEN_LINK)\n }\n }\n })()\n },\n {\n id: 'Comfy.QueuePrompt',\n icon: 'pi pi-play',\n label: 'Queue Prompt',\n versionAdded: '1.3.7',\n function: () => {\n const batchCount = useQueueSettingsStore().batchCount\n app.queuePrompt(0, batchCount)\n }\n },\n {\n id: 'Comfy.QueuePromptFront',\n icon: 'pi pi-play',\n label: 'Queue Prompt (Front)',\n versionAdded: '1.3.7',\n function: () => {\n const batchCount = useQueueSettingsStore().batchCount\n app.queuePrompt(-1, batchCount)\n }\n },\n {\n id: 'Comfy.ShowSettingsDialog',\n icon: 'pi pi-cog',\n label: 'Show Settings Dialog',\n versionAdded: '1.3.7',\n function: () => {\n showSettingsDialog()\n }\n },\n {\n id: 'Comfy.Graph.GroupSelectedNodes',\n icon: 'pi pi-sitemap',\n label: 'Group Selected Nodes',\n versionAdded: '1.3.7',\n function: () => {\n const { canvas } = app\n if (!canvas.selectedItems?.size) {\n useToastStore().add({\n severity: 'error',\n summary: 'Nothing to group',\n detail:\n 'Please select the nodes (or other groups) to create a group for',\n life: 3000\n })\n return\n }\n const group = new LGraphGroup()\n const padding = useSettingStore().get(\n 'Comfy.GroupSelectedNodes.Padding'\n )\n group.resizeTo(canvas.selectedItems, padding)\n canvas.graph.add(group)\n useTitleEditorStore().titleEditorTarget = group\n }\n },\n {\n id: 'Workspace.NextOpenedWorkflow',\n icon: 'pi pi-step-forward',\n label: 'Next Opened Workflow',\n versionAdded: '1.3.9',\n function: () => {\n workflowService.loadNextOpenedWorkflow()\n }\n },\n {\n id: 'Workspace.PreviousOpenedWorkflow',\n icon: 'pi pi-step-backward',\n label: 'Previous Opened Workflow',\n versionAdded: '1.3.9',\n function: () => {\n workflowService.loadPreviousOpenedWorkflow()\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Mute',\n icon: 'pi pi-volume-off',\n label: 'Mute/Unmute Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n toggleSelectedNodesMode(LGraphEventMode.NEVER)\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Bypass',\n icon: 'pi pi-shield',\n label: 'Bypass/Unbypass Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n toggleSelectedNodesMode(LGraphEventMode.BYPASS)\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Pin',\n icon: 'pi pi-pin',\n label: 'Pin/Unpin Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n getSelectedNodes().forEach((node) => {\n node.pin(!node.pinned)\n })\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelected.Pin',\n icon: 'pi pi-pin',\n label: 'Pin/Unpin Selected Items',\n versionAdded: '1.3.33',\n function: () => {\n for (const item of app.canvas.selectedItems) {\n if (item instanceof LGraphNode || item instanceof LGraphGroup) {\n item.pin(!item.pinned)\n }\n }\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Collapse',\n icon: 'pi pi-minus',\n label: 'Collapse/Expand Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n getSelectedNodes().forEach((node) => {\n node.collapse()\n })\n }\n },\n {\n id: 'Comfy.ToggleTheme',\n icon: 'pi pi-moon',\n label: 'Toggle Theme (Dark/Light)',\n versionAdded: '1.3.12',\n function: (() => {\n let previousDarkTheme: string = 'dark'\n\n // Official light theme is the only light theme supported now.\n const isDarkMode = (themeId: string) => themeId !== 'light'\n return () => {\n const settingStore = useSettingStore()\n const currentTheme = settingStore.get('Comfy.ColorPalette')\n if (isDarkMode(currentTheme)) {\n previousDarkTheme = currentTheme\n settingStore.set('Comfy.ColorPalette', 'light')\n } else {\n settingStore.set('Comfy.ColorPalette', previousDarkTheme)\n }\n }\n })()\n },\n {\n id: 'Workspace.ToggleBottomPanel',\n icon: 'pi pi-list',\n label: 'Toggle Bottom Panel',\n versionAdded: '1.3.22',\n function: () => {\n useBottomPanelStore().toggleBottomPanel()\n }\n },\n {\n id: 'Workspace.ToggleFocusMode',\n icon: 'pi pi-eye',\n label: 'Toggle Focus Mode',\n versionAdded: '1.3.27',\n function: () => {\n useWorkspaceStore().toggleFocusMode()\n }\n },\n {\n id: 'Comfy.Graph.FitGroupToContents',\n icon: 'pi pi-expand',\n label: 'Fit Group To Contents',\n versionAdded: '1.4.9',\n function: () => {\n for (const group of app.canvas.selectedItems) {\n if (group instanceof LGraphGroup) {\n group.recomputeInsideNodes()\n const padding = useSettingStore().get(\n 'Comfy.GroupSelectedNodes.Padding'\n )\n group.resizeTo(group.children, padding)\n app.graph.change()\n }\n }\n }\n },\n {\n id: 'Comfy.Help.OpenComfyUIIssues',\n icon: 'pi pi-github',\n label: 'Open ComfyUI Issues',\n menubarLabel: 'ComfyUI Issues',\n versionAdded: '1.5.5',\n function: () => {\n window.open(\n 'https://github.com/comfyanonymous/ComfyUI/issues',\n '_blank'\n )\n }\n },\n {\n id: 'Comfy.Help.OpenComfyUIDocs',\n icon: 'pi pi-info-circle',\n label: 'Open ComfyUI Docs',\n menubarLabel: 'ComfyUI Docs',\n versionAdded: '1.5.5',\n function: () => {\n window.open('https://docs.comfy.org/', '_blank')\n }\n },\n {\n id: 'Comfy.Help.OpenComfyOrgDiscord',\n icon: 'pi pi-discord',\n label: 'Open Comfy-Org Discord',\n menubarLabel: 'Comfy-Org Discord',\n versionAdded: '1.5.5',\n function: () => {\n window.open('https://www.comfy.org/discord', '_blank')\n }\n },\n {\n id: 'Workspace.SearchBox.Toggle',\n icon: 'pi pi-search',\n label: 'Toggle Search Box',\n versionAdded: '1.5.7',\n function: () => {\n useSearchBoxStore().toggleVisible()\n }\n }\n ]\n}\n","\n\n\n"],"names":["theme","classes","script$1","Badge","provide","script","render","item","BaseComponent","content","showNavigators","ChevronLeftIcon","ChevronRightIcon","_hoisted_1","_hoisted_2","_hoisted_3","createElementVNode","root","inlineStyles","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","data","mounted","beforeUnmount","panels","onKeydown","getPTOptions","_typeof$1","o","updated","option","_hide","onFocus","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onPageUpKey","onPageDownKey","onEnterKey","_","scrollInView","id","InputText","VirtualScroller","Portal","ChevronDownIcon","SpinnerIcon","Chip","_typeof","ownKeys","r","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","onRemove","ref","onClick","_sfc_main","AutoComplete","suggestions","search","comfyApp","repeat","widget","script$2","InfoCircleIcon","CheckIcon","ExclamationTriangleIcon","TimesCircleIcon","TimesIcon","render$1","message","options","getAriaPosInset","AngleRightIcon","AngleDownIcon","_hoisted_1$1","$attrsId","getItemProp","getItemLabel","isItemDisabled","isItemVisible","isItemGroup","show","hide","onBlur","onKeyDown","activeItemPath","onItemClick","onItemMouseEnter","onItemMouseMove","onArrowDownKey","onArrowUpKey","onEscapeKey","onTabKey","bindOutsideClickListener","unbindOutsideClickListener","bindResizeListener","unbindResizeListener","isSelected","processedItems","BarsIcon","toggle","PlusIcon","MinusIcon","Button","submenu","getItemId","getItemKey","getItemLabelId","isItemActive","isItemFocused","onEnter","getAriaSetSize","getMenuItemProps","containerRef","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","onItemChange","onOverlayClick","onSpaceKey","onLeave","alignOverlay","bindScrollListener","unbindScrollListener","isItemMatched","isValidItem","isValidSelectedItem","findFirstItemIndex","findLastItemIndex","findNextItemIndex","findPrevItemIndex","findSelectedItemIndex","findFirstFocusedItemIndex","findLastFocusedItemIndex","searchItems","changeFocusedItemIndex","createProcessedItems","menubarRef","visibleItems","focusedItemId","hasFluid","TieredMenu","clamp","LatentPreviewMethod","LogLevel","HashFunction","AutoLaunch","CudaMalloc","FloatingPointPrecision","CrossAttentionMethod","VramManagement"],"mappings":"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","x_google_ignoreList":[2,3,10,11,12,13,15,16,17,18,20,21,30,31,35,36,41,42,44,45,46,47,48,49]} \ No newline at end of file diff --git a/web/assets/InstallView-D4T0qJ1I.js b/web/assets/InstallView-DbHtR5YG.js similarity index 99% rename from web/assets/InstallView-D4T0qJ1I.js rename to web/assets/InstallView-DbHtR5YG.js index d40bfa4b..72a57638 100644 --- a/web/assets/InstallView-D4T0qJ1I.js +++ b/web/assets/InstallView-DbHtR5YG.js @@ -1,6 +1,6 @@ var __defProp = Object.defineProperty; var __name = (target, value2) => __defProp(target, "name", { value: value2, configurable: true }); -import { B as BaseStyle, V as script$7, af as UniqueComponentId, f as openBlock, g as createElementBlock, m as mergeProps, p as renderSlot, i as createCommentVNode, b_ as findIndexInList, b$ as find, l as resolveComponent, x as createBlock, M as resolveDynamicComponent, y as withCtx, A as createBaseVNode, a8 as toDisplayString, C as normalizeClass, X as findSingle, P as Fragment, aw as Transition, v as withDirectives, ad as vShow, a as defineComponent, I as useI18n, c0 as useModel, r as ref, o as onMounted, t as resolveDirective, h as createVNode, z as unref, aq as script$8, c1 as script$9, c2 as script$a, D as script$b, ay as createTextVNode, bW as script$c, bZ as electronAPI, c3 as MigrationItems, q as computed, aL as watchEffect, Q as renderList, br as withModifiers, c4 as script$d, aC as script$e, c5 as script$f, bN as script$g, aI as script$h, bU as useRouter, R as pushScopeId, U as popScopeId, aO as toRaw, _ as _export_sfc } from "./index-CSl7lfOs.js"; +import { B as BaseStyle, V as script$7, af as UniqueComponentId, f as openBlock, g as createElementBlock, m as mergeProps, p as renderSlot, i as createCommentVNode, b_ as findIndexInList, b$ as find, l as resolveComponent, x as createBlock, M as resolveDynamicComponent, y as withCtx, A as createBaseVNode, a8 as toDisplayString, C as normalizeClass, X as findSingle, P as Fragment, aw as Transition, v as withDirectives, ad as vShow, a as defineComponent, I as useI18n, c0 as useModel, r as ref, o as onMounted, t as resolveDirective, h as createVNode, z as unref, aq as script$8, c1 as script$9, c2 as script$a, D as script$b, ay as createTextVNode, bW as script$c, bZ as electronAPI, c3 as MigrationItems, q as computed, aL as watchEffect, Q as renderList, br as withModifiers, c4 as script$d, aC as script$e, c5 as script$f, bN as script$g, aI as script$h, bU as useRouter, R as pushScopeId, U as popScopeId, aO as toRaw, _ as _export_sfc } from "./index-DIU5yZe9.js"; var theme = /* @__PURE__ */ __name(function theme2(_ref) { var dt = _ref.dt; return "\n.p-steplist {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 0;\n padding: 0;\n list-style-type: none;\n overflow-x: auto;\n}\n\n.p-step {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n gap: ".concat(dt("stepper.step.gap"), ";\n padding: ").concat(dt("stepper.step.padding"), ";\n}\n\n.p-step:last-of-type {\n flex: initial;\n}\n\n.p-step-header {\n border: 0 none;\n display: inline-flex;\n align-items: center;\n text-decoration: none;\n cursor: pointer;\n transition: background ").concat(dt("stepper.transition.duration"), ", color ").concat(dt("stepper.transition.duration"), ", border-color ").concat(dt("stepper.transition.duration"), ", outline-color ").concat(dt("stepper.transition.duration"), ", box-shadow ").concat(dt("stepper.transition.duration"), ";\n border-radius: ").concat(dt("stepper.step.header.border.radius"), ";\n outline-color: transparent;\n background: transparent;\n padding: ").concat(dt("stepper.step.header.padding"), ";\n gap: ").concat(dt("stepper.step.header.gap"), ";\n}\n\n.p-step-header:focus-visible {\n box-shadow: ").concat(dt("stepper.step.header.focus.ring.shadow"), ";\n outline: ").concat(dt("stepper.step.header.focus.ring.width"), " ").concat(dt("stepper.step.header.focus.ring.style"), " ").concat(dt("stepper.step.header.focus.ring.color"), ";\n outline-offset: ").concat(dt("stepper.step.header.focus.ring.offset"), ";\n}\n\n.p-stepper.p-stepper-readonly .p-step {\n cursor: auto;\n}\n\n.p-step-title {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n color: ").concat(dt("stepper.step.title.color"), ";\n font-weight: ").concat(dt("stepper.step.title.font.weight"), ";\n transition: background ").concat(dt("stepper.transition.duration"), ", color ").concat(dt("stepper.transition.duration"), ", border-color ").concat(dt("stepper.transition.duration"), ", box-shadow ").concat(dt("stepper.transition.duration"), ", outline-color ").concat(dt("stepper.transition.duration"), ";\n}\n\n.p-step-number {\n display: flex;\n align-items: center;\n justify-content: center;\n color: ").concat(dt("stepper.step.number.color"), ";\n border: 2px solid ").concat(dt("stepper.step.number.border.color"), ";\n background: ").concat(dt("stepper.step.number.background"), ";\n min-width: ").concat(dt("stepper.step.number.size"), ";\n height: ").concat(dt("stepper.step.number.size"), ";\n line-height: ").concat(dt("stepper.step.number.size"), ";\n font-size: ").concat(dt("stepper.step.number.font.size"), ";\n z-index: 1;\n border-radius: ").concat(dt("stepper.step.number.border.radius"), ";\n position: relative;\n font-weight: ").concat(dt("stepper.step.number.font.weight"), ';\n}\n\n.p-step-number::after {\n content: " ";\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: ').concat(dt("stepper.step.number.border.radius"), ";\n box-shadow: ").concat(dt("stepper.step.number.shadow"), ";\n}\n\n.p-step-active .p-step-header {\n cursor: default;\n}\n\n.p-step-active .p-step-number {\n background: ").concat(dt("stepper.step.number.active.background"), ";\n border-color: ").concat(dt("stepper.step.number.active.border.color"), ";\n color: ").concat(dt("stepper.step.number.active.color"), ";\n}\n\n.p-step-active .p-step-title {\n color: ").concat(dt("stepper.step.title.active.color"), ";\n}\n\n.p-step:not(.p-disabled):focus-visible {\n outline: ").concat(dt("focus.ring.width"), " ").concat(dt("focus.ring.style"), " ").concat(dt("focus.ring.color"), ";\n outline-offset: ").concat(dt("focus.ring.offset"), ";\n}\n\n.p-step:has(~ .p-step-active) .p-stepper-separator {\n background: ").concat(dt("stepper.separator.active.background"), ";\n}\n\n.p-stepper-separator {\n flex: 1 1 0;\n background: ").concat(dt("stepper.separator.background"), ";\n width: 100%;\n height: ").concat(dt("stepper.separator.size"), ";\n transition: background ").concat(dt("stepper.transition.duration"), ", color ").concat(dt("stepper.transition.duration"), ", border-color ").concat(dt("stepper.transition.duration"), ", box-shadow ").concat(dt("stepper.transition.duration"), ", outline-color ").concat(dt("stepper.transition.duration"), ";\n}\n\n.p-steppanels {\n padding: ").concat(dt("stepper.steppanels.padding"), ";\n}\n\n.p-steppanel {\n background: ").concat(dt("stepper.steppanel.background"), ";\n color: ").concat(dt("stepper.steppanel.color"), ";\n}\n\n.p-stepper:has(.p-stepitem) {\n display: flex;\n flex-direction: column;\n}\n\n.p-stepitem {\n display: flex;\n flex-direction: column;\n flex: initial;\n}\n\n.p-stepitem.p-stepitem-active {\n flex: 1 1 auto;\n}\n\n.p-stepitem .p-step {\n flex: initial;\n}\n\n.p-stepitem .p-steppanel-content {\n width: 100%;\n padding: ").concat(dt("stepper.steppanel.padding"), ";\n}\n\n.p-stepitem .p-steppanel {\n display: flex;\n flex: 1 1 auto;\n}\n\n.p-stepitem .p-stepper-separator {\n flex: 0 0 auto;\n width: ").concat(dt("stepper.separator.size"), ";\n height: auto;\n margin: ").concat(dt("stepper.separator.margin"), ";\n position: relative;\n left: calc(-1 * ").concat(dt("stepper.separator.size"), ");\n}\n\n.p-stepitem:has(~ .p-stepitem-active) .p-stepper-separator {\n background: ").concat(dt("stepper.separator.active.background"), ";\n}\n\n.p-stepitem:last-of-type .p-steppanel {\n padding-inline-start: ").concat(dt("stepper.step.number.size"), ";\n}\n"); @@ -1064,4 +1064,4 @@ const InstallView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data- export { InstallView as default }; -//# sourceMappingURL=InstallView-D4T0qJ1I.js.map +//# sourceMappingURL=InstallView-DbHtR5YG.js.map diff --git a/web/assets/InstallView-D4T0qJ1I.js.map b/web/assets/InstallView-DbHtR5YG.js.map similarity index 99% rename from web/assets/InstallView-D4T0qJ1I.js.map rename to web/assets/InstallView-DbHtR5YG.js.map index 0fed6039..346c244f 100644 --- a/web/assets/InstallView-D4T0qJ1I.js.map +++ b/web/assets/InstallView-DbHtR5YG.js.map @@ -1 +1 @@ -{"version":3,"file":"InstallView-D4T0qJ1I.js","sources":["../../node_modules/primevue/stepper/style/index.mjs","../../node_modules/primevue/stepper/index.mjs","../../node_modules/primevue/steplist/style/index.mjs","../../node_modules/primevue/steplist/index.mjs","../../node_modules/primevue/steppanels/style/index.mjs","../../node_modules/primevue/steppanels/index.mjs","../../node_modules/primevue/step/style/index.mjs","../../node_modules/primevue/step/index.mjs","../../node_modules/primevue/steppanel/style/index.mjs","../../node_modules/primevue/steppanel/index.mjs","../../src/components/install/InstallLocationPicker.vue","../../src/components/install/MigrationPicker.vue","../../src/components/install/DesktopSettingsConfiguration.vue","../../src/views/InstallView.vue"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-steplist {\\n position: relative;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n overflow-x: auto;\\n}\\n\\n.p-step {\\n position: relative;\\n display: flex;\\n flex: 1 1 auto;\\n align-items: center;\\n gap: \".concat(dt('stepper.step.gap'), \";\\n padding: \").concat(dt('stepper.step.padding'), \";\\n}\\n\\n.p-step:last-of-type {\\n flex: initial;\\n}\\n\\n.p-step-header {\\n border: 0 none;\\n display: inline-flex;\\n align-items: center;\\n text-decoration: none;\\n cursor: pointer;\\n transition: background \").concat(dt('stepper.transition.duration'), \", color \").concat(dt('stepper.transition.duration'), \", border-color \").concat(dt('stepper.transition.duration'), \", outline-color \").concat(dt('stepper.transition.duration'), \", box-shadow \").concat(dt('stepper.transition.duration'), \";\\n border-radius: \").concat(dt('stepper.step.header.border.radius'), \";\\n outline-color: transparent;\\n background: transparent;\\n padding: \").concat(dt('stepper.step.header.padding'), \";\\n gap: \").concat(dt('stepper.step.header.gap'), \";\\n}\\n\\n.p-step-header:focus-visible {\\n box-shadow: \").concat(dt('stepper.step.header.focus.ring.shadow'), \";\\n outline: \").concat(dt('stepper.step.header.focus.ring.width'), \" \").concat(dt('stepper.step.header.focus.ring.style'), \" \").concat(dt('stepper.step.header.focus.ring.color'), \";\\n outline-offset: \").concat(dt('stepper.step.header.focus.ring.offset'), \";\\n}\\n\\n.p-stepper.p-stepper-readonly .p-step {\\n cursor: auto;\\n}\\n\\n.p-step-title {\\n display: block;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 100%;\\n color: \").concat(dt('stepper.step.title.color'), \";\\n font-weight: \").concat(dt('stepper.step.title.font.weight'), \";\\n transition: background \").concat(dt('stepper.transition.duration'), \", color \").concat(dt('stepper.transition.duration'), \", border-color \").concat(dt('stepper.transition.duration'), \", box-shadow \").concat(dt('stepper.transition.duration'), \", outline-color \").concat(dt('stepper.transition.duration'), \";\\n}\\n\\n.p-step-number {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: \").concat(dt('stepper.step.number.color'), \";\\n border: 2px solid \").concat(dt('stepper.step.number.border.color'), \";\\n background: \").concat(dt('stepper.step.number.background'), \";\\n min-width: \").concat(dt('stepper.step.number.size'), \";\\n height: \").concat(dt('stepper.step.number.size'), \";\\n line-height: \").concat(dt('stepper.step.number.size'), \";\\n font-size: \").concat(dt('stepper.step.number.font.size'), \";\\n z-index: 1;\\n border-radius: \").concat(dt('stepper.step.number.border.radius'), \";\\n position: relative;\\n font-weight: \").concat(dt('stepper.step.number.font.weight'), \";\\n}\\n\\n.p-step-number::after {\\n content: \\\" \\\";\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n border-radius: \").concat(dt('stepper.step.number.border.radius'), \";\\n box-shadow: \").concat(dt('stepper.step.number.shadow'), \";\\n}\\n\\n.p-step-active .p-step-header {\\n cursor: default;\\n}\\n\\n.p-step-active .p-step-number {\\n background: \").concat(dt('stepper.step.number.active.background'), \";\\n border-color: \").concat(dt('stepper.step.number.active.border.color'), \";\\n color: \").concat(dt('stepper.step.number.active.color'), \";\\n}\\n\\n.p-step-active .p-step-title {\\n color: \").concat(dt('stepper.step.title.active.color'), \";\\n}\\n\\n.p-step:not(.p-disabled):focus-visible {\\n outline: \").concat(dt('focus.ring.width'), \" \").concat(dt('focus.ring.style'), \" \").concat(dt('focus.ring.color'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-step:has(~ .p-step-active) .p-stepper-separator {\\n background: \").concat(dt('stepper.separator.active.background'), \";\\n}\\n\\n.p-stepper-separator {\\n flex: 1 1 0;\\n background: \").concat(dt('stepper.separator.background'), \";\\n width: 100%;\\n height: \").concat(dt('stepper.separator.size'), \";\\n transition: background \").concat(dt('stepper.transition.duration'), \", color \").concat(dt('stepper.transition.duration'), \", border-color \").concat(dt('stepper.transition.duration'), \", box-shadow \").concat(dt('stepper.transition.duration'), \", outline-color \").concat(dt('stepper.transition.duration'), \";\\n}\\n\\n.p-steppanels {\\n padding: \").concat(dt('stepper.steppanels.padding'), \";\\n}\\n\\n.p-steppanel {\\n background: \").concat(dt('stepper.steppanel.background'), \";\\n color: \").concat(dt('stepper.steppanel.color'), \";\\n}\\n\\n.p-stepper:has(.p-stepitem) {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-stepitem {\\n display: flex;\\n flex-direction: column;\\n flex: initial;\\n}\\n\\n.p-stepitem.p-stepitem-active {\\n flex: 1 1 auto;\\n}\\n\\n.p-stepitem .p-step {\\n flex: initial;\\n}\\n\\n.p-stepitem .p-steppanel-content {\\n width: 100%;\\n padding: \").concat(dt('stepper.steppanel.padding'), \";\\n}\\n\\n.p-stepitem .p-steppanel {\\n display: flex;\\n flex: 1 1 auto;\\n}\\n\\n.p-stepitem .p-stepper-separator {\\n flex: 0 0 auto;\\n width: \").concat(dt('stepper.separator.size'), \";\\n height: auto;\\n margin: \").concat(dt('stepper.separator.margin'), \";\\n position: relative;\\n left: calc(-1 * \").concat(dt('stepper.separator.size'), \");\\n}\\n\\n.p-stepitem:has(~ .p-stepitem-active) .p-stepper-separator {\\n background: \").concat(dt('stepper.separator.active.background'), \";\\n}\\n\\n.p-stepitem:last-of-type .p-steppanel {\\n padding-inline-start: \").concat(dt('stepper.step.number.size'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-stepper p-component', {\n 'p-readonly': props.linear\n }];\n },\n separator: 'p-stepper-separator'\n};\nvar StepperStyle = BaseStyle.extend({\n name: 'stepper',\n theme: theme,\n classes: classes\n});\n\nexport { StepperStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport StepperStyle from 'primevue/stepper/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseStepper',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n linear: {\n type: Boolean,\n \"default\": false\n }\n },\n style: StepperStyle,\n provide: function provide() {\n return {\n $pcStepper: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Stepper',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:value'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_value: this.value\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n value: function value(newValue) {\n this.d_value = newValue;\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n updateValue: function updateValue(newValue) {\n if (this.d_value !== newValue) {\n this.d_value = newValue;\n this.$emit('update:value', newValue);\n }\n },\n isStepActive: function isStepActive(value) {\n return this.d_value === value;\n },\n isStepDisabled: function isStepDisabled() {\n return this.linear;\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"tablist\"\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? renderSlot(_ctx.$slots, \"start\", {\n key: 0\n }) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"default\"), _ctx.$slots.end ? renderSlot(_ctx.$slots, \"end\", {\n key: 1\n }) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-steplist'\n};\nvar StepListStyle = BaseStyle.extend({\n name: 'steplist',\n classes: classes\n});\n\nexport { StepListStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport StepListStyle from 'primevue/steplist/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseStepList',\n \"extends\": BaseComponent,\n style: StepListStyle,\n provide: function provide() {\n return {\n $pcStepList: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'StepList',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-steppanels'\n};\nvar StepPanelsStyle = BaseStyle.extend({\n name: 'steppanels',\n classes: classes\n});\n\nexport { StepPanelsStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport StepPanelsStyle from 'primevue/steppanels/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseStepPanels',\n \"extends\": BaseComponent,\n style: StepPanelsStyle,\n provide: function provide() {\n return {\n $pcStepPanels: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'StepPanels',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-step', {\n 'p-step-active': instance.active,\n 'p-disabled': instance.isStepDisabled\n }];\n },\n header: 'p-step-header',\n number: 'p-step-number',\n title: 'p-step-title'\n};\nvar StepStyle = BaseStyle.extend({\n name: 'step',\n classes: classes\n});\n\nexport { StepStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { find } from '@primeuix/utils/dom';\nimport { findIndexInList } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { openBlock, createElementBlock, mergeProps, resolveComponent, createBlock, resolveDynamicComponent, withCtx, createElementVNode, toDisplayString, renderSlot, createCommentVNode, normalizeClass } from 'vue';\nimport StepStyle from 'primevue/step/style';\n\nvar script$2 = {\n name: 'StepperSeparator',\n hostName: 'Stepper',\n \"extends\": BaseComponent\n};\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('separator')\n }, _ctx.ptm('separator')), null, 16);\n}\n\nscript$2.render = render$1;\n\nvar script$1 = {\n name: 'BaseStep',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n asChild: {\n type: Boolean,\n \"default\": false\n },\n as: {\n type: [String, Object],\n \"default\": 'DIV'\n }\n },\n style: StepStyle,\n provide: function provide() {\n return {\n $pcStep: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Step',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: {\n $pcStepper: {\n \"default\": null\n },\n $pcStepList: {\n \"default\": null\n },\n $pcStepItem: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n isSeparatorVisible: false\n };\n },\n mounted: function mounted() {\n if (this.$el && this.$pcStepList) {\n var index = findIndexInList(this.$el, find(this.$pcStepper.$el, '[data-pc-name=\"step\"]'));\n var stepLen = find(this.$pcStepper.$el, '[data-pc-name=\"step\"]').length;\n this.isSeparatorVisible = index !== stepLen - 1;\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n active: this.active,\n disabled: this.isStepDisabled\n }\n });\n },\n onStepClick: function onStepClick() {\n this.$pcStepper.updateValue(this.activeValue);\n }\n },\n computed: {\n active: function active() {\n return this.$pcStepper.isStepActive(this.activeValue);\n },\n activeValue: function activeValue() {\n var _this$$pcStepItem;\n return !!this.$pcStepItem ? (_this$$pcStepItem = this.$pcStepItem) === null || _this$$pcStepItem === void 0 ? void 0 : _this$$pcStepItem.value : this.value;\n },\n isStepDisabled: function isStepDisabled() {\n return !this.active && (this.$pcStepper.isStepDisabled() || this.disabled);\n },\n id: function id() {\n var _this$$pcStepper;\n return \"\".concat((_this$$pcStepper = this.$pcStepper) === null || _this$$pcStepper === void 0 ? void 0 : _this$$pcStepper.id, \"_step_\").concat(this.activeValue);\n },\n ariaControls: function ariaControls() {\n var _this$$pcStepper2;\n return \"\".concat((_this$$pcStepper2 = this.$pcStepper) === null || _this$$pcStepper2 === void 0 ? void 0 : _this$$pcStepper2.id, \"_steppanel_\").concat(this.activeValue);\n },\n a11yAttrs: function a11yAttrs() {\n return {\n root: {\n role: 'presentation',\n 'aria-current': this.active ? 'step' : undefined,\n 'data-pc-name': 'step',\n 'data-pc-section': 'root',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active\n },\n header: {\n id: this.id,\n role: 'tab',\n taindex: this.disabled ? -1 : undefined,\n 'aria-controls': this.ariaControls,\n 'data-pc-section': 'header',\n disabled: this.disabled,\n onClick: this.onStepClick\n }\n };\n }\n },\n components: {\n StepperSeparator: script$2\n }\n};\n\nvar _hoisted_1 = [\"id\", \"tabindex\", \"aria-controls\", \"disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_StepperSeparator = resolveComponent(\"StepperSeparator\");\n return !_ctx.asChild ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n \"class\": _ctx.cx('root'),\n \"aria-current\": $options.active ? 'step' : undefined,\n role: \"presentation\",\n \"data-p-active\": $options.active,\n \"data-p-disabled\": $options.isStepDisabled\n }, $options.getPTOptions('root')), {\n \"default\": withCtx(function () {\n return [createElementVNode(\"button\", mergeProps({\n id: $options.id,\n \"class\": _ctx.cx('header'),\n role: \"tab\",\n type: \"button\",\n tabindex: $options.isStepDisabled ? -1 : undefined,\n \"aria-controls\": $options.ariaControls,\n disabled: $options.isStepDisabled,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onStepClick && $options.onStepClick.apply($options, arguments);\n })\n }, $options.getPTOptions('header')), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('number')\n }, $options.getPTOptions('number')), toDisplayString($options.activeValue), 17), createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('title')\n }, $options.getPTOptions('title')), [renderSlot(_ctx.$slots, \"default\")], 16)], 16, _hoisted_1), $data.isSeparatorVisible ? (openBlock(), createBlock(_component_StepperSeparator, {\n key: 0\n })) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"class\", \"aria-current\", \"data-p-active\", \"data-p-disabled\"])) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('root')),\n active: $options.active,\n value: _ctx.value,\n a11yAttrs: $options.a11yAttrs,\n activateCallback: $options.onStepClick\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-steppanel', {\n 'p-steppanel-active': instance.isVertical && instance.active\n }];\n },\n content: 'p-steppanel-content'\n};\nvar StepPanelStyle = BaseStyle.extend({\n name: 'steppanel',\n classes: classes\n});\n\nexport { StepPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { find, findSingle } from '@primeuix/utils/dom';\nimport { findIndexInList } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { openBlock, createElementBlock, mergeProps, resolveComponent, Fragment, createBlock, Transition, withCtx, withDirectives, resolveDynamicComponent, createCommentVNode, createElementVNode, renderSlot, vShow } from 'vue';\nimport StepPanelStyle from 'primevue/steppanel/style';\n\nvar script$2 = {\n name: 'StepperSeparator',\n hostName: 'Stepper',\n \"extends\": BaseComponent\n};\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('separator')\n }, _ctx.ptm('separator')), null, 16);\n}\n\nscript$2.render = render$1;\n\nvar script$1 = {\n name: 'BaseStepPanel',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n asChild: {\n type: Boolean,\n \"default\": false\n },\n as: {\n type: [String, Object],\n \"default\": 'DIV'\n }\n },\n style: StepPanelStyle,\n provide: function provide() {\n return {\n $pcStepPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'StepPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: {\n $pcStepper: {\n \"default\": null\n },\n $pcStepItem: {\n \"default\": null\n },\n $pcStepList: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n isSeparatorVisible: false\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n var _this$$pcStepItem, _this$$pcStepList;\n var stepElements = find(this.$pcStepper.$el, '[data-pc-name=\"step\"]');\n var stepPanelEl = findSingle(this.isVertical ? (_this$$pcStepItem = this.$pcStepItem) === null || _this$$pcStepItem === void 0 ? void 0 : _this$$pcStepItem.$el : (_this$$pcStepList = this.$pcStepList) === null || _this$$pcStepList === void 0 ? void 0 : _this$$pcStepList.$el, '[data-pc-name=\"step\"]');\n var stepPanelIndex = findIndexInList(stepPanelEl, stepElements);\n this.isSeparatorVisible = this.isVertical && stepPanelIndex !== stepElements.length - 1;\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n active: this.active\n }\n });\n },\n updateValue: function updateValue(val) {\n this.$pcStepper.updateValue(val);\n }\n },\n computed: {\n active: function active() {\n var _this$$pcStepItem2, _this$$pcStepper;\n var activeValue = !!this.$pcStepItem ? (_this$$pcStepItem2 = this.$pcStepItem) === null || _this$$pcStepItem2 === void 0 ? void 0 : _this$$pcStepItem2.value : this.value;\n return activeValue === ((_this$$pcStepper = this.$pcStepper) === null || _this$$pcStepper === void 0 ? void 0 : _this$$pcStepper.d_value);\n },\n isVertical: function isVertical() {\n return !!this.$pcStepItem;\n },\n activeValue: function activeValue() {\n var _this$$pcStepItem3;\n return this.isVertical ? (_this$$pcStepItem3 = this.$pcStepItem) === null || _this$$pcStepItem3 === void 0 ? void 0 : _this$$pcStepItem3.value : this.value;\n },\n id: function id() {\n var _this$$pcStepper2;\n return \"\".concat((_this$$pcStepper2 = this.$pcStepper) === null || _this$$pcStepper2 === void 0 ? void 0 : _this$$pcStepper2.id, \"_steppanel_\").concat(this.activeValue);\n },\n ariaControls: function ariaControls() {\n var _this$$pcStepper3;\n return \"\".concat((_this$$pcStepper3 = this.$pcStepper) === null || _this$$pcStepper3 === void 0 ? void 0 : _this$$pcStepper3.id, \"_step_\").concat(this.activeValue);\n },\n a11yAttrs: function a11yAttrs() {\n return {\n id: this.id,\n role: 'tabpanel',\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'steppanel',\n 'data-p-active': this.active\n };\n }\n },\n components: {\n StepperSeparator: script$2\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_StepperSeparator = resolveComponent(\"StepperSeparator\");\n return $options.isVertical ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [!_ctx.asChild ? (openBlock(), createBlock(Transition, mergeProps({\n key: 0,\n name: \"p-toggleable-content\"\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n id: $options.id,\n \"class\": _ctx.cx('root'),\n role: \"tabpanel\",\n \"aria-controls\": $options.ariaControls\n }, $options.getPTOptions('root')), {\n \"default\": withCtx(function () {\n return [$data.isSeparatorVisible ? (openBlock(), createBlock(_component_StepperSeparator, {\n key: 0\n })) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content')\n }, $options.getPTOptions('content')), [renderSlot(_ctx.$slots, \"default\", {\n active: $options.active,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n })], 16)];\n }),\n _: 3\n }, 16, [\"id\", \"class\", \"aria-controls\"])), [[vShow, $options.active]])];\n }),\n _: 3\n }, 16)) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n active: $options.active,\n a11yAttrs: $options.a11yAttrs,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n })], 64)) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [!_ctx.asChild ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n id: $options.id,\n \"class\": _ctx.cx('root'),\n role: \"tabpanel\",\n \"aria-controls\": $options.ariaControls\n }, $options.getPTOptions('root')), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\", {\n active: $options.active,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n })];\n }),\n _: 3\n }, 16, [\"id\", \"class\", \"aria-controls\"])), [[vShow, $options.active]]) : _ctx.asChild && $options.active ? renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n active: $options.active,\n a11yAttrs: $options.a11yAttrs,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n }) : createCommentVNode(\"\", true)], 64));\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n"],"names":["theme","classes","script$1","BaseComponent","script","value","render","provide","root","script$2","render$1","data","mounted","isStepDisabled","_hoisted_1","createElementVNode","getPTOptions","updateValue","active","activeValue","id","ariaControls","a11yAttrs","_useModel","sourcePath"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} \ No newline at end of file +{"version":3,"file":"InstallView-DbHtR5YG.js","sources":["../../node_modules/primevue/stepper/style/index.mjs","../../node_modules/primevue/stepper/index.mjs","../../node_modules/primevue/steplist/style/index.mjs","../../node_modules/primevue/steplist/index.mjs","../../node_modules/primevue/steppanels/style/index.mjs","../../node_modules/primevue/steppanels/index.mjs","../../node_modules/primevue/step/style/index.mjs","../../node_modules/primevue/step/index.mjs","../../node_modules/primevue/steppanel/style/index.mjs","../../node_modules/primevue/steppanel/index.mjs","../../src/components/install/InstallLocationPicker.vue","../../src/components/install/MigrationPicker.vue","../../src/components/install/DesktopSettingsConfiguration.vue","../../src/views/InstallView.vue"],"sourcesContent":["import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-steplist {\\n position: relative;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n overflow-x: auto;\\n}\\n\\n.p-step {\\n position: relative;\\n display: flex;\\n flex: 1 1 auto;\\n align-items: center;\\n gap: \".concat(dt('stepper.step.gap'), \";\\n padding: \").concat(dt('stepper.step.padding'), \";\\n}\\n\\n.p-step:last-of-type {\\n flex: initial;\\n}\\n\\n.p-step-header {\\n border: 0 none;\\n display: inline-flex;\\n align-items: center;\\n text-decoration: none;\\n cursor: pointer;\\n transition: background \").concat(dt('stepper.transition.duration'), \", color \").concat(dt('stepper.transition.duration'), \", border-color \").concat(dt('stepper.transition.duration'), \", outline-color \").concat(dt('stepper.transition.duration'), \", box-shadow \").concat(dt('stepper.transition.duration'), \";\\n border-radius: \").concat(dt('stepper.step.header.border.radius'), \";\\n outline-color: transparent;\\n background: transparent;\\n padding: \").concat(dt('stepper.step.header.padding'), \";\\n gap: \").concat(dt('stepper.step.header.gap'), \";\\n}\\n\\n.p-step-header:focus-visible {\\n box-shadow: \").concat(dt('stepper.step.header.focus.ring.shadow'), \";\\n outline: \").concat(dt('stepper.step.header.focus.ring.width'), \" \").concat(dt('stepper.step.header.focus.ring.style'), \" \").concat(dt('stepper.step.header.focus.ring.color'), \";\\n outline-offset: \").concat(dt('stepper.step.header.focus.ring.offset'), \";\\n}\\n\\n.p-stepper.p-stepper-readonly .p-step {\\n cursor: auto;\\n}\\n\\n.p-step-title {\\n display: block;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 100%;\\n color: \").concat(dt('stepper.step.title.color'), \";\\n font-weight: \").concat(dt('stepper.step.title.font.weight'), \";\\n transition: background \").concat(dt('stepper.transition.duration'), \", color \").concat(dt('stepper.transition.duration'), \", border-color \").concat(dt('stepper.transition.duration'), \", box-shadow \").concat(dt('stepper.transition.duration'), \", outline-color \").concat(dt('stepper.transition.duration'), \";\\n}\\n\\n.p-step-number {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: \").concat(dt('stepper.step.number.color'), \";\\n border: 2px solid \").concat(dt('stepper.step.number.border.color'), \";\\n background: \").concat(dt('stepper.step.number.background'), \";\\n min-width: \").concat(dt('stepper.step.number.size'), \";\\n height: \").concat(dt('stepper.step.number.size'), \";\\n line-height: \").concat(dt('stepper.step.number.size'), \";\\n font-size: \").concat(dt('stepper.step.number.font.size'), \";\\n z-index: 1;\\n border-radius: \").concat(dt('stepper.step.number.border.radius'), \";\\n position: relative;\\n font-weight: \").concat(dt('stepper.step.number.font.weight'), \";\\n}\\n\\n.p-step-number::after {\\n content: \\\" \\\";\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n border-radius: \").concat(dt('stepper.step.number.border.radius'), \";\\n box-shadow: \").concat(dt('stepper.step.number.shadow'), \";\\n}\\n\\n.p-step-active .p-step-header {\\n cursor: default;\\n}\\n\\n.p-step-active .p-step-number {\\n background: \").concat(dt('stepper.step.number.active.background'), \";\\n border-color: \").concat(dt('stepper.step.number.active.border.color'), \";\\n color: \").concat(dt('stepper.step.number.active.color'), \";\\n}\\n\\n.p-step-active .p-step-title {\\n color: \").concat(dt('stepper.step.title.active.color'), \";\\n}\\n\\n.p-step:not(.p-disabled):focus-visible {\\n outline: \").concat(dt('focus.ring.width'), \" \").concat(dt('focus.ring.style'), \" \").concat(dt('focus.ring.color'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-step:has(~ .p-step-active) .p-stepper-separator {\\n background: \").concat(dt('stepper.separator.active.background'), \";\\n}\\n\\n.p-stepper-separator {\\n flex: 1 1 0;\\n background: \").concat(dt('stepper.separator.background'), \";\\n width: 100%;\\n height: \").concat(dt('stepper.separator.size'), \";\\n transition: background \").concat(dt('stepper.transition.duration'), \", color \").concat(dt('stepper.transition.duration'), \", border-color \").concat(dt('stepper.transition.duration'), \", box-shadow \").concat(dt('stepper.transition.duration'), \", outline-color \").concat(dt('stepper.transition.duration'), \";\\n}\\n\\n.p-steppanels {\\n padding: \").concat(dt('stepper.steppanels.padding'), \";\\n}\\n\\n.p-steppanel {\\n background: \").concat(dt('stepper.steppanel.background'), \";\\n color: \").concat(dt('stepper.steppanel.color'), \";\\n}\\n\\n.p-stepper:has(.p-stepitem) {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-stepitem {\\n display: flex;\\n flex-direction: column;\\n flex: initial;\\n}\\n\\n.p-stepitem.p-stepitem-active {\\n flex: 1 1 auto;\\n}\\n\\n.p-stepitem .p-step {\\n flex: initial;\\n}\\n\\n.p-stepitem .p-steppanel-content {\\n width: 100%;\\n padding: \").concat(dt('stepper.steppanel.padding'), \";\\n}\\n\\n.p-stepitem .p-steppanel {\\n display: flex;\\n flex: 1 1 auto;\\n}\\n\\n.p-stepitem .p-stepper-separator {\\n flex: 0 0 auto;\\n width: \").concat(dt('stepper.separator.size'), \";\\n height: auto;\\n margin: \").concat(dt('stepper.separator.margin'), \";\\n position: relative;\\n left: calc(-1 * \").concat(dt('stepper.separator.size'), \");\\n}\\n\\n.p-stepitem:has(~ .p-stepitem-active) .p-stepper-separator {\\n background: \").concat(dt('stepper.separator.active.background'), \";\\n}\\n\\n.p-stepitem:last-of-type .p-steppanel {\\n padding-inline-start: \").concat(dt('stepper.step.number.size'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-stepper p-component', {\n 'p-readonly': props.linear\n }];\n },\n separator: 'p-stepper-separator'\n};\nvar StepperStyle = BaseStyle.extend({\n name: 'stepper',\n theme: theme,\n classes: classes\n});\n\nexport { StepperStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport StepperStyle from 'primevue/stepper/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseStepper',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n linear: {\n type: Boolean,\n \"default\": false\n }\n },\n style: StepperStyle,\n provide: function provide() {\n return {\n $pcStepper: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Stepper',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:value'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_value: this.value\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n value: function value(newValue) {\n this.d_value = newValue;\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n updateValue: function updateValue(newValue) {\n if (this.d_value !== newValue) {\n this.d_value = newValue;\n this.$emit('update:value', newValue);\n }\n },\n isStepActive: function isStepActive(value) {\n return this.d_value === value;\n },\n isStepDisabled: function isStepDisabled() {\n return this.linear;\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"tablist\"\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? renderSlot(_ctx.$slots, \"start\", {\n key: 0\n }) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"default\"), _ctx.$slots.end ? renderSlot(_ctx.$slots, \"end\", {\n key: 1\n }) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-steplist'\n};\nvar StepListStyle = BaseStyle.extend({\n name: 'steplist',\n classes: classes\n});\n\nexport { StepListStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport StepListStyle from 'primevue/steplist/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseStepList',\n \"extends\": BaseComponent,\n style: StepListStyle,\n provide: function provide() {\n return {\n $pcStepList: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'StepList',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-steppanels'\n};\nvar StepPanelsStyle = BaseStyle.extend({\n name: 'steppanels',\n classes: classes\n});\n\nexport { StepPanelsStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport StepPanelsStyle from 'primevue/steppanels/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseStepPanels',\n \"extends\": BaseComponent,\n style: StepPanelsStyle,\n provide: function provide() {\n return {\n $pcStepPanels: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'StepPanels',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-step', {\n 'p-step-active': instance.active,\n 'p-disabled': instance.isStepDisabled\n }];\n },\n header: 'p-step-header',\n number: 'p-step-number',\n title: 'p-step-title'\n};\nvar StepStyle = BaseStyle.extend({\n name: 'step',\n classes: classes\n});\n\nexport { StepStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { find } from '@primeuix/utils/dom';\nimport { findIndexInList } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { openBlock, createElementBlock, mergeProps, resolveComponent, createBlock, resolveDynamicComponent, withCtx, createElementVNode, toDisplayString, renderSlot, createCommentVNode, normalizeClass } from 'vue';\nimport StepStyle from 'primevue/step/style';\n\nvar script$2 = {\n name: 'StepperSeparator',\n hostName: 'Stepper',\n \"extends\": BaseComponent\n};\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('separator')\n }, _ctx.ptm('separator')), null, 16);\n}\n\nscript$2.render = render$1;\n\nvar script$1 = {\n name: 'BaseStep',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n asChild: {\n type: Boolean,\n \"default\": false\n },\n as: {\n type: [String, Object],\n \"default\": 'DIV'\n }\n },\n style: StepStyle,\n provide: function provide() {\n return {\n $pcStep: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Step',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: {\n $pcStepper: {\n \"default\": null\n },\n $pcStepList: {\n \"default\": null\n },\n $pcStepItem: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n isSeparatorVisible: false\n };\n },\n mounted: function mounted() {\n if (this.$el && this.$pcStepList) {\n var index = findIndexInList(this.$el, find(this.$pcStepper.$el, '[data-pc-name=\"step\"]'));\n var stepLen = find(this.$pcStepper.$el, '[data-pc-name=\"step\"]').length;\n this.isSeparatorVisible = index !== stepLen - 1;\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n active: this.active,\n disabled: this.isStepDisabled\n }\n });\n },\n onStepClick: function onStepClick() {\n this.$pcStepper.updateValue(this.activeValue);\n }\n },\n computed: {\n active: function active() {\n return this.$pcStepper.isStepActive(this.activeValue);\n },\n activeValue: function activeValue() {\n var _this$$pcStepItem;\n return !!this.$pcStepItem ? (_this$$pcStepItem = this.$pcStepItem) === null || _this$$pcStepItem === void 0 ? void 0 : _this$$pcStepItem.value : this.value;\n },\n isStepDisabled: function isStepDisabled() {\n return !this.active && (this.$pcStepper.isStepDisabled() || this.disabled);\n },\n id: function id() {\n var _this$$pcStepper;\n return \"\".concat((_this$$pcStepper = this.$pcStepper) === null || _this$$pcStepper === void 0 ? void 0 : _this$$pcStepper.id, \"_step_\").concat(this.activeValue);\n },\n ariaControls: function ariaControls() {\n var _this$$pcStepper2;\n return \"\".concat((_this$$pcStepper2 = this.$pcStepper) === null || _this$$pcStepper2 === void 0 ? void 0 : _this$$pcStepper2.id, \"_steppanel_\").concat(this.activeValue);\n },\n a11yAttrs: function a11yAttrs() {\n return {\n root: {\n role: 'presentation',\n 'aria-current': this.active ? 'step' : undefined,\n 'data-pc-name': 'step',\n 'data-pc-section': 'root',\n 'data-p-disabled': this.disabled,\n 'data-p-active': this.active\n },\n header: {\n id: this.id,\n role: 'tab',\n taindex: this.disabled ? -1 : undefined,\n 'aria-controls': this.ariaControls,\n 'data-pc-section': 'header',\n disabled: this.disabled,\n onClick: this.onStepClick\n }\n };\n }\n },\n components: {\n StepperSeparator: script$2\n }\n};\n\nvar _hoisted_1 = [\"id\", \"tabindex\", \"aria-controls\", \"disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_StepperSeparator = resolveComponent(\"StepperSeparator\");\n return !_ctx.asChild ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n \"class\": _ctx.cx('root'),\n \"aria-current\": $options.active ? 'step' : undefined,\n role: \"presentation\",\n \"data-p-active\": $options.active,\n \"data-p-disabled\": $options.isStepDisabled\n }, $options.getPTOptions('root')), {\n \"default\": withCtx(function () {\n return [createElementVNode(\"button\", mergeProps({\n id: $options.id,\n \"class\": _ctx.cx('header'),\n role: \"tab\",\n type: \"button\",\n tabindex: $options.isStepDisabled ? -1 : undefined,\n \"aria-controls\": $options.ariaControls,\n disabled: $options.isStepDisabled,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onStepClick && $options.onStepClick.apply($options, arguments);\n })\n }, $options.getPTOptions('header')), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('number')\n }, $options.getPTOptions('number')), toDisplayString($options.activeValue), 17), createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('title')\n }, $options.getPTOptions('title')), [renderSlot(_ctx.$slots, \"default\")], 16)], 16, _hoisted_1), $data.isSeparatorVisible ? (openBlock(), createBlock(_component_StepperSeparator, {\n key: 0\n })) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"class\", \"aria-current\", \"data-p-active\", \"data-p-disabled\"])) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('root')),\n active: $options.active,\n value: _ctx.value,\n a11yAttrs: $options.a11yAttrs,\n activateCallback: $options.onStepClick\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-steppanel', {\n 'p-steppanel-active': instance.isVertical && instance.active\n }];\n },\n content: 'p-steppanel-content'\n};\nvar StepPanelStyle = BaseStyle.extend({\n name: 'steppanel',\n classes: classes\n});\n\nexport { StepPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { find, findSingle } from '@primeuix/utils/dom';\nimport { findIndexInList } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { openBlock, createElementBlock, mergeProps, resolveComponent, Fragment, createBlock, Transition, withCtx, withDirectives, resolveDynamicComponent, createCommentVNode, createElementVNode, renderSlot, vShow } from 'vue';\nimport StepPanelStyle from 'primevue/steppanel/style';\n\nvar script$2 = {\n name: 'StepperSeparator',\n hostName: 'Stepper',\n \"extends\": BaseComponent\n};\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('separator')\n }, _ctx.ptm('separator')), null, 16);\n}\n\nscript$2.render = render$1;\n\nvar script$1 = {\n name: 'BaseStepPanel',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n asChild: {\n type: Boolean,\n \"default\": false\n },\n as: {\n type: [String, Object],\n \"default\": 'DIV'\n }\n },\n style: StepPanelStyle,\n provide: function provide() {\n return {\n $pcStepPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'StepPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: {\n $pcStepper: {\n \"default\": null\n },\n $pcStepItem: {\n \"default\": null\n },\n $pcStepList: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n isSeparatorVisible: false\n };\n },\n mounted: function mounted() {\n if (this.$el) {\n var _this$$pcStepItem, _this$$pcStepList;\n var stepElements = find(this.$pcStepper.$el, '[data-pc-name=\"step\"]');\n var stepPanelEl = findSingle(this.isVertical ? (_this$$pcStepItem = this.$pcStepItem) === null || _this$$pcStepItem === void 0 ? void 0 : _this$$pcStepItem.$el : (_this$$pcStepList = this.$pcStepList) === null || _this$$pcStepList === void 0 ? void 0 : _this$$pcStepList.$el, '[data-pc-name=\"step\"]');\n var stepPanelIndex = findIndexInList(stepPanelEl, stepElements);\n this.isSeparatorVisible = this.isVertical && stepPanelIndex !== stepElements.length - 1;\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n active: this.active\n }\n });\n },\n updateValue: function updateValue(val) {\n this.$pcStepper.updateValue(val);\n }\n },\n computed: {\n active: function active() {\n var _this$$pcStepItem2, _this$$pcStepper;\n var activeValue = !!this.$pcStepItem ? (_this$$pcStepItem2 = this.$pcStepItem) === null || _this$$pcStepItem2 === void 0 ? void 0 : _this$$pcStepItem2.value : this.value;\n return activeValue === ((_this$$pcStepper = this.$pcStepper) === null || _this$$pcStepper === void 0 ? void 0 : _this$$pcStepper.d_value);\n },\n isVertical: function isVertical() {\n return !!this.$pcStepItem;\n },\n activeValue: function activeValue() {\n var _this$$pcStepItem3;\n return this.isVertical ? (_this$$pcStepItem3 = this.$pcStepItem) === null || _this$$pcStepItem3 === void 0 ? void 0 : _this$$pcStepItem3.value : this.value;\n },\n id: function id() {\n var _this$$pcStepper2;\n return \"\".concat((_this$$pcStepper2 = this.$pcStepper) === null || _this$$pcStepper2 === void 0 ? void 0 : _this$$pcStepper2.id, \"_steppanel_\").concat(this.activeValue);\n },\n ariaControls: function ariaControls() {\n var _this$$pcStepper3;\n return \"\".concat((_this$$pcStepper3 = this.$pcStepper) === null || _this$$pcStepper3 === void 0 ? void 0 : _this$$pcStepper3.id, \"_step_\").concat(this.activeValue);\n },\n a11yAttrs: function a11yAttrs() {\n return {\n id: this.id,\n role: 'tabpanel',\n 'aria-controls': this.ariaControls,\n 'data-pc-name': 'steppanel',\n 'data-p-active': this.active\n };\n }\n },\n components: {\n StepperSeparator: script$2\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_StepperSeparator = resolveComponent(\"StepperSeparator\");\n return $options.isVertical ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [!_ctx.asChild ? (openBlock(), createBlock(Transition, mergeProps({\n key: 0,\n name: \"p-toggleable-content\"\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n id: $options.id,\n \"class\": _ctx.cx('root'),\n role: \"tabpanel\",\n \"aria-controls\": $options.ariaControls\n }, $options.getPTOptions('root')), {\n \"default\": withCtx(function () {\n return [$data.isSeparatorVisible ? (openBlock(), createBlock(_component_StepperSeparator, {\n key: 0\n })) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content')\n }, $options.getPTOptions('content')), [renderSlot(_ctx.$slots, \"default\", {\n active: $options.active,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n })], 16)];\n }),\n _: 3\n }, 16, [\"id\", \"class\", \"aria-controls\"])), [[vShow, $options.active]])];\n }),\n _: 3\n }, 16)) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n active: $options.active,\n a11yAttrs: $options.a11yAttrs,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n })], 64)) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [!_ctx.asChild ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n id: $options.id,\n \"class\": _ctx.cx('root'),\n role: \"tabpanel\",\n \"aria-controls\": $options.ariaControls\n }, $options.getPTOptions('root')), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\", {\n active: $options.active,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n })];\n }),\n _: 3\n }, 16, [\"id\", \"class\", \"aria-controls\"])), [[vShow, $options.active]]) : _ctx.asChild && $options.active ? renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n active: $options.active,\n a11yAttrs: $options.a11yAttrs,\n activateCallback: function activateCallback(val) {\n return $options.updateValue(val);\n }\n }) : createCommentVNode(\"\", true)], 64));\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n"],"names":["theme","classes","script$1","BaseComponent","script","value","render","provide","root","script$2","render$1","data","mounted","isStepDisabled","_hoisted_1","createElementVNode","getPTOptions","updateValue","active","activeValue","id","ariaControls","a11yAttrs","_useModel","sourcePath"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} \ No newline at end of file diff --git a/web/assets/KeybindingPanel-BlOA8Yhu.js b/web/assets/KeybindingPanel-DC2AxNNa.js similarity index 98% rename from web/assets/KeybindingPanel-BlOA8Yhu.js rename to web/assets/KeybindingPanel-DC2AxNNa.js index c23a6ce5..757103de 100644 --- a/web/assets/KeybindingPanel-BlOA8Yhu.js +++ b/web/assets/KeybindingPanel-DC2AxNNa.js @@ -1,8 +1,8 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { a as defineComponent, q as computed, f as openBlock, g as createElementBlock, P as Fragment, Q as renderList, h as createVNode, y as withCtx, ay as createTextVNode, a8 as toDisplayString, z as unref, aC as script, i as createCommentVNode, r as ref, ck as FilterMatchMode, O as useKeybindingStore, F as useCommandStore, I as useI18n, aS as normalizeI18nKey, aL as watchEffect, bn as useToast, t as resolveDirective, x as createBlock, cl as SearchBox, A as createBaseVNode, D as script$2, aq as script$4, br as withModifiers, bW as script$5, aI as script$6, v as withDirectives, cm as _sfc_main$2, R as pushScopeId, U as popScopeId, ce as KeyComboImpl, cn as KeybindingImpl, _ as _export_sfc } from "./index-CSl7lfOs.js"; -import { s as script$1, a as script$3 } from "./index-CgmI-OoW.js"; -import "./index-aSkd2KAK.js"; +import { a as defineComponent, q as computed, f as openBlock, g as createElementBlock, P as Fragment, Q as renderList, h as createVNode, y as withCtx, ay as createTextVNode, a8 as toDisplayString, z as unref, aC as script, i as createCommentVNode, r as ref, ck as FilterMatchMode, O as useKeybindingStore, F as useCommandStore, I as useI18n, aS as normalizeI18nKey, aL as watchEffect, bn as useToast, t as resolveDirective, x as createBlock, cl as SearchBox, A as createBaseVNode, D as script$2, aq as script$4, br as withModifiers, bW as script$5, aI as script$6, v as withDirectives, cm as _sfc_main$2, R as pushScopeId, U as popScopeId, ce as KeyComboImpl, cn as KeybindingImpl, _ as _export_sfc } from "./index-DIU5yZe9.js"; +import { s as script$1, a as script$3 } from "./index-D3u7l7ha.js"; +import "./index-d698Brhb.js"; const _hoisted_1$1 = { key: 0, class: "px-2" @@ -278,4 +278,4 @@ const KeybindingPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "d export { KeybindingPanel as default }; -//# sourceMappingURL=KeybindingPanel-BlOA8Yhu.js.map +//# sourceMappingURL=KeybindingPanel-DC2AxNNa.js.map diff --git a/web/assets/KeybindingPanel-BlOA8Yhu.js.map b/web/assets/KeybindingPanel-DC2AxNNa.js.map similarity index 99% rename from web/assets/KeybindingPanel-BlOA8Yhu.js.map rename to web/assets/KeybindingPanel-DC2AxNNa.js.map index 02141bad..3b87df93 100644 --- a/web/assets/KeybindingPanel-BlOA8Yhu.js.map +++ b/web/assets/KeybindingPanel-DC2AxNNa.js.map @@ -1 +1 @@ -{"version":3,"file":"KeybindingPanel-BlOA8Yhu.js","sources":["../../src/components/dialog/content/setting/keybinding/KeyComboDisplay.vue","../../src/components/dialog/content/setting/KeybindingPanel.vue"],"sourcesContent":["\n\n\n","\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAgBA,UAAM,QAAQ;AAUd,UAAM,eAAe,SAAS,MAAM,MAAM,SAAS,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACgHpE,UAAM,UAAU,IAAI;AAAA,MAClB,QAAQ,EAAE,OAAO,IAAI,WAAW,gBAAgB,SAAS;AAAA,IAAA,CAC1D;AAED,UAAM,kBAAkB;AACxB,UAAM,eAAe;AACf,UAAA,EAAE,MAAM;AAOR,UAAA,eAAe,SAAyB,MAAM;AAClD,aAAO,OAAO,OAAO,aAAa,QAAQ,EAAE,IAAI,CAAC,aAAa;AAAA,QAC5D,IAAI,QAAQ;AAAA,QACZ,OAAO,EAAE,YAAY,iBAAiB,QAAQ,EAAE,CAAC,UAAU,QAAQ,KAAK;AAAA,QACxE,YAAY,gBAAgB,yBAAyB,QAAQ,EAAE;AAAA,MAC/D,EAAA;AAAA,IAAA,CACH;AAEK,UAAA,sBAAsB,IAAyB,IAAI;AACnD,UAAA,oBAAoB,IAAI,KAAK;AAC7B,UAAA,qBAAqB,IAAyB,IAAI;AAClD,UAAA,wBAAwB,IAAyB,IAAI;AACrD,UAAA,kBAAkB,IAAI,IAAI;AAE1B,UAAA,4BAA4B,SAAgC,MAAM;AAClE,UAAA,CAAC,sBAAsB,OAAO;AACzB,eAAA;AAAA,MACT;AAIE,UAAA,sBAAsB,MAAM,YAAY,OAAO;AAAA,QAC7C,mBAAmB;AAAA,MAAA,GAErB;AACO,eAAA;AAAA,MACT;AAEI,UAAA,CAAC,mBAAmB,OAAO;AACtB,eAAA;AAAA,MACT;AAEO,aAAA,gBAAgB,cAAc,mBAAmB,KAAK;AAAA,IAAA,CAC9D;AAED,aAAS,eAAe,aAA2B;AACjD,4BAAsB,QAAQ;AAC9B,yBAAmB,QAAQ,YAAY,aACnC,YAAY,WAAW,QACvB;AACJ,wBAAkB,QAAQ;AAAA,IAC5B;AANS;AAQT,gBAAY,MAAM;AAChB,UAAI,kBAAkB,OAAO;AAE3B,mBAAW,MAAM;AACC,0BAAA,OAAO,KAAK;WAC3B,GAAG;AAAA,MACR;AAAA,IAAA,CACD;AAED,aAAS,iBAAiB,aAA2B;AACnD,UAAI,YAAY,YAAY;AACV,wBAAA,gBAAgB,YAAY,UAAU;AACtD,wBAAgB,uBAAuB;AAAA,MACzC;AAAA,IACF;AALS;AAOT,aAAS,kBAAkB,OAAsB;AACzC,YAAA,WAAW,aAAa,UAAU,KAAK;AAC7C,yBAAmB,QAAQ;AAAA,IAC7B;AAHS;AAKT,aAAS,aAAa;AACpB,wBAAkB,QAAQ;AAC1B,4BAAsB,QAAQ;AAC9B,yBAAmB,QAAQ;AAAA,IAC7B;AAJS;AAMT,aAAS,iBAAiB;AACpB,UAAA,sBAAsB,SAAS,mBAAmB,OAAO;AAC3D,cAAM,UAAU,gBAAgB;AAAA,UAC9B,IAAI,eAAe;AAAA,YACjB,WAAW,sBAAsB,MAAM;AAAA,YACvC,OAAO,mBAAmB;AAAA,UAAA,CAC3B;AAAA,QAAA;AAEH,YAAI,SAAS;AACX,0BAAgB,uBAAuB;AAAA,QACzC;AAAA,MACF;AACW;IACb;AAbS;AAeT,UAAM,QAAQ;AACd,mBAAe,mBAAmB;AAChC,sBAAgB,iBAAiB;AACjC,YAAM,gBAAgB;AACtB,YAAM,IAAI;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AATe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"KeybindingPanel-DC2AxNNa.js","sources":["../../src/components/dialog/content/setting/keybinding/KeyComboDisplay.vue","../../src/components/dialog/content/setting/KeybindingPanel.vue"],"sourcesContent":["\n\n\n","\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAgBA,UAAM,QAAQ;AAUd,UAAM,eAAe,SAAS,MAAM,MAAM,SAAS,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACgHpE,UAAM,UAAU,IAAI;AAAA,MAClB,QAAQ,EAAE,OAAO,IAAI,WAAW,gBAAgB,SAAS;AAAA,IAAA,CAC1D;AAED,UAAM,kBAAkB;AACxB,UAAM,eAAe;AACf,UAAA,EAAE,MAAM;AAOR,UAAA,eAAe,SAAyB,MAAM;AAClD,aAAO,OAAO,OAAO,aAAa,QAAQ,EAAE,IAAI,CAAC,aAAa;AAAA,QAC5D,IAAI,QAAQ;AAAA,QACZ,OAAO,EAAE,YAAY,iBAAiB,QAAQ,EAAE,CAAC,UAAU,QAAQ,KAAK;AAAA,QACxE,YAAY,gBAAgB,yBAAyB,QAAQ,EAAE;AAAA,MAC/D,EAAA;AAAA,IAAA,CACH;AAEK,UAAA,sBAAsB,IAAyB,IAAI;AACnD,UAAA,oBAAoB,IAAI,KAAK;AAC7B,UAAA,qBAAqB,IAAyB,IAAI;AAClD,UAAA,wBAAwB,IAAyB,IAAI;AACrD,UAAA,kBAAkB,IAAI,IAAI;AAE1B,UAAA,4BAA4B,SAAgC,MAAM;AAClE,UAAA,CAAC,sBAAsB,OAAO;AACzB,eAAA;AAAA,MACT;AAIE,UAAA,sBAAsB,MAAM,YAAY,OAAO;AAAA,QAC7C,mBAAmB;AAAA,MAAA,GAErB;AACO,eAAA;AAAA,MACT;AAEI,UAAA,CAAC,mBAAmB,OAAO;AACtB,eAAA;AAAA,MACT;AAEO,aAAA,gBAAgB,cAAc,mBAAmB,KAAK;AAAA,IAAA,CAC9D;AAED,aAAS,eAAe,aAA2B;AACjD,4BAAsB,QAAQ;AAC9B,yBAAmB,QAAQ,YAAY,aACnC,YAAY,WAAW,QACvB;AACJ,wBAAkB,QAAQ;AAAA,IAC5B;AANS;AAQT,gBAAY,MAAM;AAChB,UAAI,kBAAkB,OAAO;AAE3B,mBAAW,MAAM;AACC,0BAAA,OAAO,KAAK;WAC3B,GAAG;AAAA,MACR;AAAA,IAAA,CACD;AAED,aAAS,iBAAiB,aAA2B;AACnD,UAAI,YAAY,YAAY;AACV,wBAAA,gBAAgB,YAAY,UAAU;AACtD,wBAAgB,uBAAuB;AAAA,MACzC;AAAA,IACF;AALS;AAOT,aAAS,kBAAkB,OAAsB;AACzC,YAAA,WAAW,aAAa,UAAU,KAAK;AAC7C,yBAAmB,QAAQ;AAAA,IAC7B;AAHS;AAKT,aAAS,aAAa;AACpB,wBAAkB,QAAQ;AAC1B,4BAAsB,QAAQ;AAC9B,yBAAmB,QAAQ;AAAA,IAC7B;AAJS;AAMT,aAAS,iBAAiB;AACpB,UAAA,sBAAsB,SAAS,mBAAmB,OAAO;AAC3D,cAAM,UAAU,gBAAgB;AAAA,UAC9B,IAAI,eAAe;AAAA,YACjB,WAAW,sBAAsB,MAAM;AAAA,YACvC,OAAO,mBAAmB;AAAA,UAAA,CAC3B;AAAA,QAAA;AAEH,YAAI,SAAS;AACX,0BAAgB,uBAAuB;AAAA,QACzC;AAAA,MACF;AACW;IACb;AAbS;AAeT,UAAM,QAAQ;AACd,mBAAe,mBAAmB;AAChC,sBAAgB,iBAAiB;AACjC,YAAM,gBAAgB;AACtB,YAAM,IAAI;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AATe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/NotSupportedView-Dhitj9aO.js b/web/assets/NotSupportedView-C8O1Ed5c.js similarity index 97% rename from web/assets/NotSupportedView-Dhitj9aO.js rename to web/assets/NotSupportedView-C8O1Ed5c.js index 9dbe8ccc..906fc9b8 100644 --- a/web/assets/NotSupportedView-Dhitj9aO.js +++ b/web/assets/NotSupportedView-C8O1Ed5c.js @@ -1,6 +1,6 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { a as defineComponent, bU as useRouter, t as resolveDirective, f as openBlock, g as createElementBlock, A as createBaseVNode, a8 as toDisplayString, h as createVNode, z as unref, D as script, v as withDirectives } from "./index-CSl7lfOs.js"; +import { a as defineComponent, bU as useRouter, t as resolveDirective, f as openBlock, g as createElementBlock, A as createBaseVNode, a8 as toDisplayString, h as createVNode, z as unref, D as script, v as withDirectives } from "./index-DIU5yZe9.js"; const _imports_0 = "" + new URL("images/sad_girl.png", import.meta.url).href; const _hoisted_1 = { class: "font-sans w-screen h-screen flex items-center m-0 text-neutral-900 bg-neutral-300 pointer-events-auto" }; const _hoisted_2 = { class: "flex-grow flex items-center justify-center" }; @@ -79,4 +79,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=NotSupportedView-Dhitj9aO.js.map +//# sourceMappingURL=NotSupportedView-C8O1Ed5c.js.map diff --git a/web/assets/NotSupportedView-Dhitj9aO.js.map b/web/assets/NotSupportedView-C8O1Ed5c.js.map similarity index 97% rename from web/assets/NotSupportedView-Dhitj9aO.js.map rename to web/assets/NotSupportedView-C8O1Ed5c.js.map index e93fe884..b6d2fffa 100644 --- a/web/assets/NotSupportedView-Dhitj9aO.js.map +++ b/web/assets/NotSupportedView-C8O1Ed5c.js.map @@ -1 +1 @@ -{"version":3,"file":"NotSupportedView-Dhitj9aO.js","sources":["../../../../../../../assets/images/sad_girl.png","../../src/views/NotSupportedView.vue"],"sourcesContent":["export default \"__VITE_PUBLIC_ASSET__b82952e7__\"","\n\n\n"],"names":[],"mappings":";;;AAAA,MAAe,aAAA,KAAA,IAAA,IAAA,uBAAA,YAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;AC+Df,UAAM,WAAW,6BAAM;AACd,aAAA;AAAA,QACL;AAAA,QACA;AAAA,MAAA;AAAA,IACF,GAJe;AAOjB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAAA,GAD5C;AAIpB,UAAM,SAAS;AACf,UAAM,oBAAoB,6BAAM;AAC9B,aAAO,KAAK,UAAU;AAAA,IAAA,GADE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"NotSupportedView-C8O1Ed5c.js","sources":["../../../../../../../assets/images/sad_girl.png","../../src/views/NotSupportedView.vue"],"sourcesContent":["export default \"__VITE_PUBLIC_ASSET__b82952e7__\"","\n\n\n"],"names":[],"mappings":";;;AAAA,MAAe,aAAA,KAAA,IAAA,IAAA,uBAAA,YAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;AC+Df,UAAM,WAAW,6BAAM;AACd,aAAA;AAAA,QACL;AAAA,QACA;AAAA,MAAA;AAAA,IACF,GAJe;AAOjB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAAA,GAD5C;AAIpB,UAAM,SAAS;AACf,UAAM,oBAAoB,6BAAM;AAC9B,aAAO,KAAK,UAAU;AAAA,IAAA,GADE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/ServerConfigPanel-6N6BTSXC.js b/web/assets/ServerConfigPanel-CvXC1Xmx.js similarity index 98% rename from web/assets/ServerConfigPanel-6N6BTSXC.js rename to web/assets/ServerConfigPanel-CvXC1Xmx.js index 6725c1d9..6443c8df 100644 --- a/web/assets/ServerConfigPanel-6N6BTSXC.js +++ b/web/assets/ServerConfigPanel-CvXC1Xmx.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { A as createBaseVNode, f as openBlock, g as createElementBlock, aZ as markRaw, a as defineComponent, u as useSettingStore, aK as storeToRefs, w as watch, cL as useCopyToClipboard, I as useI18n, x as createBlock, y as withCtx, z as unref, bW as script, a8 as toDisplayString, Q as renderList, P as Fragment, h as createVNode, D as script$1, i as createCommentVNode, bN as script$2, cM as FormItem, cm as _sfc_main$1, bZ as electronAPI } from "./index-CSl7lfOs.js"; -import { u as useServerConfigStore } from "./serverConfigStore-D4vD2qBB.js"; +import { A as createBaseVNode, f as openBlock, g as createElementBlock, aZ as markRaw, a as defineComponent, u as useSettingStore, aK as storeToRefs, w as watch, cL as useCopyToClipboard, I as useI18n, x as createBlock, y as withCtx, z as unref, bW as script, a8 as toDisplayString, Q as renderList, P as Fragment, h as createVNode, D as script$1, i as createCommentVNode, bN as script$2, cM as FormItem, cm as _sfc_main$1, bZ as electronAPI } from "./index-DIU5yZe9.js"; +import { u as useServerConfigStore } from "./serverConfigStore-DYv7_Nld.js"; const _hoisted_1$1 = { viewBox: "0 0 24 24", width: "1.2em", @@ -155,4 +155,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=ServerConfigPanel-6N6BTSXC.js.map +//# sourceMappingURL=ServerConfigPanel-CvXC1Xmx.js.map diff --git a/web/assets/ServerConfigPanel-6N6BTSXC.js.map b/web/assets/ServerConfigPanel-CvXC1Xmx.js.map similarity index 98% rename from web/assets/ServerConfigPanel-6N6BTSXC.js.map rename to web/assets/ServerConfigPanel-CvXC1Xmx.js.map index db74ac56..868d3fb1 100644 --- a/web/assets/ServerConfigPanel-6N6BTSXC.js.map +++ b/web/assets/ServerConfigPanel-CvXC1Xmx.js.map @@ -1 +1 @@ -{"version":3,"file":"ServerConfigPanel-6N6BTSXC.js","sources":["../../src/components/dialog/content/setting/ServerConfigPanel.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,eAAe;AACrB,UAAM,oBAAoB;AACpB,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,YAAY,iBAAiB;AAEjC,UAAM,gBAAgB,6BAAM;AAC1B,wBAAkB,cAAc;AAAA,IAAA,GADZ;AAItB,UAAM,aAAa,6BAAM;AACvB,kBAAA,EAAc;IAAW,GADR;AAIb,UAAA,YAAY,CAAC,WAAW;AACf,mBAAA,IAAI,2BAA2B,MAAM;AAAA,IAAA,CACnD;AAEK,UAAA,oBAAoB,CAAC,WAAW;AACvB,mBAAA,IAAI,mCAAmC,MAAM;AAAA,IAAA,CAC3D;AAEK,UAAA,EAAE,oBAAoB;AAC5B,UAAM,sBAAsB,mCAAY;AAChC,YAAA,gBAAgB,gBAAgB,KAAK;AAAA,IAAA,GADjB;AAItB,UAAA,EAAE,MAAM;AACR,UAAA,gBAAgB,wBAAC,SAA0C;AACxD,aAAA;AAAA,QACL,GAAG;AAAA,QACH,MAAM,EAAE,qBAAqB,KAAK,EAAE,SAAS,KAAK,IAAI;AAAA,QACtD,SAAS,KAAK,UACV,EAAE,qBAAqB,KAAK,EAAE,YAAY,KAAK,OAAO,IACtD;AAAA,MAAA;AAAA,IACN,GAPoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"ServerConfigPanel-CvXC1Xmx.js","sources":["../../src/components/dialog/content/setting/ServerConfigPanel.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,eAAe;AACrB,UAAM,oBAAoB;AACpB,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,YAAY,iBAAiB;AAEjC,UAAM,gBAAgB,6BAAM;AAC1B,wBAAkB,cAAc;AAAA,IAAA,GADZ;AAItB,UAAM,aAAa,6BAAM;AACvB,kBAAA,EAAc;IAAW,GADR;AAIb,UAAA,YAAY,CAAC,WAAW;AACf,mBAAA,IAAI,2BAA2B,MAAM;AAAA,IAAA,CACnD;AAEK,UAAA,oBAAoB,CAAC,WAAW;AACvB,mBAAA,IAAI,mCAAmC,MAAM;AAAA,IAAA,CAC3D;AAEK,UAAA,EAAE,oBAAoB;AAC5B,UAAM,sBAAsB,mCAAY;AAChC,YAAA,gBAAgB,gBAAgB,KAAK;AAAA,IAAA,GADjB;AAItB,UAAA,EAAE,MAAM;AACR,UAAA,gBAAgB,wBAAC,SAA0C;AACxD,aAAA;AAAA,QACL,GAAG;AAAA,QACH,MAAM,EAAE,qBAAqB,KAAK,EAAE,SAAS,KAAK,IAAI;AAAA,QACtD,SAAS,KAAK,UACV,EAAE,qBAAqB,KAAK,EAAE,YAAY,KAAK,OAAO,IACtD;AAAA,MAAA;AAAA,IACN,GAPoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/ServerStartView-BykYRkoj.js b/web/assets/ServerStartView-BvuHEhuL.js similarity index 97% rename from web/assets/ServerStartView-BykYRkoj.js rename to web/assets/ServerStartView-BvuHEhuL.js index 2c11f8b4..af172de1 100644 --- a/web/assets/ServerStartView-BykYRkoj.js +++ b/web/assets/ServerStartView-BvuHEhuL.js @@ -1,6 +1,6 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { a as defineComponent, I as useI18n, r as ref, bX as ProgressStatus, o as onMounted, f as openBlock, g as createElementBlock, A as createBaseVNode, ay as createTextVNode, a8 as toDisplayString, z as unref, i as createCommentVNode, h as createVNode, D as script, x as createBlock, v as withDirectives, ad as vShow, bY as BaseTerminal, R as pushScopeId, U as popScopeId, bZ as electronAPI, _ as _export_sfc } from "./index-CSl7lfOs.js"; +import { a as defineComponent, I as useI18n, r as ref, bX as ProgressStatus, o as onMounted, f as openBlock, g as createElementBlock, A as createBaseVNode, ay as createTextVNode, a8 as toDisplayString, z as unref, i as createCommentVNode, h as createVNode, D as script, x as createBlock, v as withDirectives, ad as vShow, bY as BaseTerminal, R as pushScopeId, U as popScopeId, bZ as electronAPI, _ as _export_sfc } from "./index-DIU5yZe9.js"; const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-c0d3157e"), n = n(), popScopeId(), n), "_withScopeId"); const _hoisted_1 = { class: "font-sans flex flex-col justify-center items-center h-screen m-0 text-neutral-300 bg-neutral-900 dark-theme pointer-events-auto" }; const _hoisted_2 = { class: "text-2xl font-bold" }; @@ -89,4 +89,4 @@ const ServerStartView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "d export { ServerStartView as default }; -//# sourceMappingURL=ServerStartView-BykYRkoj.js.map +//# sourceMappingURL=ServerStartView-BvuHEhuL.js.map diff --git a/web/assets/ServerStartView-BykYRkoj.js.map b/web/assets/ServerStartView-BvuHEhuL.js.map similarity index 98% rename from web/assets/ServerStartView-BykYRkoj.js.map rename to web/assets/ServerStartView-BvuHEhuL.js.map index 9c15a836..047e682a 100644 --- a/web/assets/ServerStartView-BykYRkoj.js.map +++ b/web/assets/ServerStartView-BvuHEhuL.js.map @@ -1 +1 @@ -{"version":3,"file":"ServerStartView-BykYRkoj.js","sources":["../../src/views/ServerStartView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuDA,UAAM,WAAW;AACX,UAAA,EAAE,MAAM;AAER,UAAA,SAAS,IAAoB,eAAe,aAAa;AACzD,UAAA,kBAAkB,IAAY,EAAE;AAClC,QAAA;AAEE,UAAA,kBAAkB,IAAI,IAAI;AAEhC,UAAM,iBAAiB,wBAAC,EAAE,QAAQ,gBAA4C;AAC5E,aAAO,QAAQ;AAGf,UAAI,cAAc,eAAe,MAAO,iBAAgB,QAAQ;AAAA,kBACpD,MAAM;AAAA,IAAA,GALG;AAQvB,UAAM,kBAAkB,wBACtB,EAAE,UAAU,YAAA,GACZ,SACG;AACK,cAAA;AAEI,kBAAA,MAAM,MAAM,IAAI;AACnB,eAAA,aAAa,CAAC,YAAoB;AACzC,iBAAS,MAAM,OAAO;AAAA,MAAA,CACvB;AAED,eAAS,QAAQ,cAAc;AAC/B,eAAS,QAAQ,eAAe;AAChC,eAAS,QAAQ,sBAAsB;AAAA,IAAA,GAbjB;AAgBlB,UAAA,YAAY,6BAAM,SAAS,aAAf;AAClB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAAA,GAD5C;AAGd,UAAA,WAAW,6BAAM,SAAS,kBAAf;AAEjB,cAAU,YAAY;AACpB,eAAS,UAAU;AACnB,eAAS,iBAAiB,cAAc;AACxB,sBAAA,QAAQ,MAAM,SAAS,mBAAmB;AAAA,IAAA,CAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"ServerStartView-BvuHEhuL.js","sources":["../../src/views/ServerStartView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuDA,UAAM,WAAW;AACX,UAAA,EAAE,MAAM;AAER,UAAA,SAAS,IAAoB,eAAe,aAAa;AACzD,UAAA,kBAAkB,IAAY,EAAE;AAClC,QAAA;AAEE,UAAA,kBAAkB,IAAI,IAAI;AAEhC,UAAM,iBAAiB,wBAAC,EAAE,QAAQ,gBAA4C;AAC5E,aAAO,QAAQ;AAGf,UAAI,cAAc,eAAe,MAAO,iBAAgB,QAAQ;AAAA,kBACpD,MAAM;AAAA,IAAA,GALG;AAQvB,UAAM,kBAAkB,wBACtB,EAAE,UAAU,YAAA,GACZ,SACG;AACK,cAAA;AAEI,kBAAA,MAAM,MAAM,IAAI;AACnB,eAAA,aAAa,CAAC,YAAoB;AACzC,iBAAS,MAAM,OAAO;AAAA,MAAA,CACvB;AAED,eAAS,QAAQ,cAAc;AAC/B,eAAS,QAAQ,eAAe;AAChC,eAAS,QAAQ,sBAAsB;AAAA,IAAA,GAbjB;AAgBlB,UAAA,YAAY,6BAAM,SAAS,aAAf;AAClB,UAAM,cAAc,6BAAM;AACjB,aAAA,KAAK,0CAA0C,QAAQ;AAAA,IAAA,GAD5C;AAGd,UAAA,WAAW,6BAAM,SAAS,kBAAf;AAEjB,cAAU,YAAY;AACpB,eAAS,UAAU;AACnB,eAAS,iBAAiB,cAAc;AACxB,sBAAA,QAAQ,MAAM,SAAS,mBAAmB;AAAA,IAAA,CAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/UserSelectView-DMDUPUPX.js b/web/assets/UserSelectView-C_4L-Yqf.js similarity index 98% rename from web/assets/UserSelectView-DMDUPUPX.js rename to web/assets/UserSelectView-C_4L-Yqf.js index 9c5c9ea6..09d6f844 100644 --- a/web/assets/UserSelectView-DMDUPUPX.js +++ b/web/assets/UserSelectView-C_4L-Yqf.js @@ -1,6 +1,6 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { a as defineComponent, J as useUserStore, bU as useRouter, r as ref, q as computed, o as onMounted, f as openBlock, g as createElementBlock, A as createBaseVNode, a8 as toDisplayString, h as createVNode, z as unref, aq as script, bN as script$1, bV as script$2, x as createBlock, y as withCtx, ay as createTextVNode, bW as script$3, i as createCommentVNode, D as script$4 } from "./index-CSl7lfOs.js"; +import { a as defineComponent, J as useUserStore, bU as useRouter, r as ref, q as computed, o as onMounted, f as openBlock, g as createElementBlock, A as createBaseVNode, a8 as toDisplayString, h as createVNode, z as unref, aq as script, bN as script$1, bV as script$2, x as createBlock, y as withCtx, ay as createTextVNode, bW as script$3, i as createCommentVNode, D as script$4 } from "./index-DIU5yZe9.js"; const _hoisted_1 = { id: "comfy-user-selection", class: "font-sans flex flex-col items-center h-screen m-0 text-neutral-300 bg-neutral-900 dark-theme pointer-events-auto" @@ -95,4 +95,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=UserSelectView-DMDUPUPX.js.map +//# sourceMappingURL=UserSelectView-C_4L-Yqf.js.map diff --git a/web/assets/UserSelectView-DMDUPUPX.js.map b/web/assets/UserSelectView-C_4L-Yqf.js.map similarity index 98% rename from web/assets/UserSelectView-DMDUPUPX.js.map rename to web/assets/UserSelectView-C_4L-Yqf.js.map index 64a11a7c..895075fc 100644 --- a/web/assets/UserSelectView-DMDUPUPX.js.map +++ b/web/assets/UserSelectView-C_4L-Yqf.js.map @@ -1 +1 @@ -{"version":3,"file":"UserSelectView-DMDUPUPX.js","sources":["../../src/views/UserSelectView.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAoDA,UAAM,YAAY;AAClB,UAAM,SAAS;AAET,UAAA,eAAe,IAAiB,IAAI;AACpC,UAAA,cAAc,IAAI,EAAE;AACpB,UAAA,aAAa,IAAI,EAAE;AAEzB,UAAM,gBAAgB,SAAS,MAAM,YAAY,MAAM,KAAA,MAAW,EAAE;AAC9D,UAAA,qBAAqB,SAAS,MAAM;AACxC,aAAO,UAAU,MAAM,KAAK,CAAC,SAAS,KAAK,aAAa,YAAY,KAAK,IACrE,SAAS,YAAY,KAAK,qBAC1B;AAAA,IAAA,CACL;AACD,UAAM,QAAQ,SAAS,MAAM,mBAAmB,SAAS,WAAW,KAAK;AAEzE,UAAM,QAAQ,mCAAY;AACpB,UAAA;AACI,cAAA,OAAO,cAAc,QACvB,MAAM,UAAU,WAAW,YAAY,KAAK,IAC5C,aAAa;AAEjB,YAAI,CAAC,MAAM;AACH,gBAAA,IAAI,MAAM,kBAAkB;AAAA,QACpC;AAEA,kBAAU,MAAM,IAAI;AACpB,eAAO,KAAK,GAAG;AAAA,eACR,KAAK;AACZ,mBAAW,QAAQ,IAAI,WAAW,KAAK,UAAU,GAAG;AAAA,MACtD;AAAA,IAAA,GAdY;AAiBd,cAAU,YAAY;AAChB,UAAA,CAAC,UAAU,aAAa;AAC1B,cAAM,UAAU;MAClB;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"UserSelectView-C_4L-Yqf.js","sources":["../../src/views/UserSelectView.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAoDA,UAAM,YAAY;AAClB,UAAM,SAAS;AAET,UAAA,eAAe,IAAiB,IAAI;AACpC,UAAA,cAAc,IAAI,EAAE;AACpB,UAAA,aAAa,IAAI,EAAE;AAEzB,UAAM,gBAAgB,SAAS,MAAM,YAAY,MAAM,KAAA,MAAW,EAAE;AAC9D,UAAA,qBAAqB,SAAS,MAAM;AACxC,aAAO,UAAU,MAAM,KAAK,CAAC,SAAS,KAAK,aAAa,YAAY,KAAK,IACrE,SAAS,YAAY,KAAK,qBAC1B;AAAA,IAAA,CACL;AACD,UAAM,QAAQ,SAAS,MAAM,mBAAmB,SAAS,WAAW,KAAK;AAEzE,UAAM,QAAQ,mCAAY;AACpB,UAAA;AACI,cAAA,OAAO,cAAc,QACvB,MAAM,UAAU,WAAW,YAAY,KAAK,IAC5C,aAAa;AAEjB,YAAI,CAAC,MAAM;AACH,gBAAA,IAAI,MAAM,kBAAkB;AAAA,QACpC;AAEA,kBAAU,MAAM,IAAI;AACpB,eAAO,KAAK,GAAG;AAAA,eACR,KAAK;AACZ,mBAAW,QAAQ,IAAI,WAAW,KAAK,UAAU,GAAG;AAAA,MACtD;AAAA,IAAA,GAdY;AAiBd,cAAU,YAAY;AAChB,UAAA,CAAC,UAAU,aAAa;AAC1B,cAAM,UAAU;MAClB;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/WelcomeView-D6WEsVyp.js b/web/assets/WelcomeView-Db7ZDfZo.js similarity index 94% rename from web/assets/WelcomeView-D6WEsVyp.js rename to web/assets/WelcomeView-Db7ZDfZo.js index b9e29ae9..e6dc150e 100644 --- a/web/assets/WelcomeView-D6WEsVyp.js +++ b/web/assets/WelcomeView-Db7ZDfZo.js @@ -1,6 +1,6 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { a as defineComponent, bU as useRouter, f as openBlock, g as createElementBlock, A as createBaseVNode, a8 as toDisplayString, h as createVNode, z as unref, D as script, R as pushScopeId, U as popScopeId, _ as _export_sfc } from "./index-CSl7lfOs.js"; +import { a as defineComponent, bU as useRouter, f as openBlock, g as createElementBlock, A as createBaseVNode, a8 as toDisplayString, h as createVNode, z as unref, D as script, R as pushScopeId, U as popScopeId, _ as _export_sfc } from "./index-DIU5yZe9.js"; const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-c4d014c5"), n = n(), popScopeId(), n), "_withScopeId"); const _hoisted_1 = { class: "font-sans flex flex-col justify-center items-center h-screen m-0 text-neutral-300 bg-neutral-900 dark-theme pointer-events-auto" }; const _hoisted_2 = { class: "flex flex-col items-center justify-center gap-8 p-8" }; @@ -34,4 +34,4 @@ const WelcomeView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data- export { WelcomeView as default }; -//# sourceMappingURL=WelcomeView-D6WEsVyp.js.map +//# sourceMappingURL=WelcomeView-Db7ZDfZo.js.map diff --git a/web/assets/WelcomeView-D6WEsVyp.js.map b/web/assets/WelcomeView-Db7ZDfZo.js.map similarity index 96% rename from web/assets/WelcomeView-D6WEsVyp.js.map rename to web/assets/WelcomeView-Db7ZDfZo.js.map index e4046a62..65e38de4 100644 --- a/web/assets/WelcomeView-D6WEsVyp.js.map +++ b/web/assets/WelcomeView-Db7ZDfZo.js.map @@ -1 +1 @@ -{"version":3,"file":"WelcomeView-D6WEsVyp.js","sources":["../../src/views/WelcomeView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;AA4BA,UAAM,SAAS;AACT,UAAA,aAAa,wBAAC,SAAiB;AACnC,aAAO,KAAK,IAAI;AAAA,IAAA,GADC;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"WelcomeView-Db7ZDfZo.js","sources":["../../src/views/WelcomeView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;AA4BA,UAAM,SAAS;AACT,UAAA,aAAa,wBAAC,SAAiB;AACnC,aAAO,KAAK,IAAI;AAAA,IAAA,GADC;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/index-BNMdgttb.js.map b/web/assets/index-BNMdgttb.js.map deleted file mode 100644 index f86e825d..00000000 --- a/web/assets/index-BNMdgttb.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-BNMdgttb.js","sources":["../../src/extensions/core/clipspace.ts","../../src/extensions/core/contextMenuFilter.ts","../../src/extensions/core/dynamicPrompts.ts","../../src/extensions/core/editAttention.ts","../../src/extensions/core/groupNodeManage.ts","../../src/extensions/core/groupNode.ts","../../src/extensions/core/groupOptions.ts","../../src/extensions/core/invertMenuScrolling.ts","../../src/extensions/core/keybinds.ts","../../src/extensions/core/maskEditorOld.ts","../../src/extensions/core/maskeditor.ts","../../src/extensions/core/nodeTemplates.ts","../../src/extensions/core/noteNode.ts","../../src/extensions/core/rerouteNode.ts","../../src/extensions/core/saveImageExtraOutput.ts","../../src/extensions/core/simpleTouchSupport.ts","../../src/extensions/core/slotDefaults.ts","../../src/extensions/core/uploadImage.ts","../../src/extensions/core/webcamCapture.ts","../../src/extensions/core/uploadAudio.ts","../../src/extensions/core/electronAdapter.ts","../../node_modules/three/build/three.module.js","../../node_modules/three/examples/jsm/controls/OrbitControls.js","../../node_modules/three/examples/jsm/utils/BufferGeometryUtils.js","../../node_modules/three/examples/jsm/loaders/GLTFLoader.js","../../node_modules/three/examples/jsm/loaders/OBJLoader.js","../../node_modules/three/examples/jsm/loaders/MTLLoader.js","../../node_modules/three/examples/jsm/libs/fflate.module.js","../../node_modules/three/examples/jsm/curves/NURBSUtils.js","../../node_modules/three/examples/jsm/curves/NURBSCurve.js","../../node_modules/three/examples/jsm/loaders/FBXLoader.js","../../node_modules/three/examples/jsm/loaders/STLLoader.js","../../src/extensions/core/load3d.ts"],"sourcesContent":["import { app } from '../../scripts/app'\nimport { ComfyDialog, $el } from '../../scripts/ui'\nimport { ComfyApp } from '../../scripts/app'\n\nexport class ClipspaceDialog extends ComfyDialog {\n static items: Array<\n HTMLButtonElement & {\n contextPredicate?: () => boolean\n }\n > = []\n static instance: ClipspaceDialog | null = null\n\n static registerButton(\n name: string,\n contextPredicate: () => boolean,\n callback: () => void\n ) {\n const item = $el('button', {\n type: 'button',\n textContent: name,\n contextPredicate: contextPredicate,\n onclick: callback\n })\n\n ClipspaceDialog.items.push(item)\n }\n\n static invalidatePreview() {\n if (\n ComfyApp.clipspace &&\n ComfyApp.clipspace.imgs &&\n ComfyApp.clipspace.imgs.length > 0\n ) {\n const img_preview = document.getElementById(\n 'clipspace_preview'\n ) as HTMLImageElement\n if (img_preview) {\n img_preview.src =\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n img_preview.style.maxHeight = '100%'\n img_preview.style.maxWidth = '100%'\n }\n }\n }\n\n static invalidate() {\n if (ClipspaceDialog.instance) {\n const self = ClipspaceDialog.instance\n // allow reconstruct controls when copying from non-image to image content.\n const children = $el('div.comfy-modal-content', [\n self.createImgSettings(),\n ...self.createButtons()\n ])\n\n if (self.element) {\n // update\n if (self.element.firstChild) {\n self.element.removeChild(self.element.firstChild)\n }\n self.element.appendChild(children)\n } else {\n // new\n self.element = $el('div.comfy-modal', { parent: document.body }, [\n children\n ])\n }\n\n if (self.element.children[0].children.length <= 1) {\n self.element.children[0].appendChild(\n $el('p', {}, [\n 'Unable to find the features to edit content of a format stored in the current Clipspace.'\n ])\n )\n }\n\n ClipspaceDialog.invalidatePreview()\n }\n }\n\n constructor() {\n super()\n }\n\n createButtons() {\n const buttons = []\n\n for (let idx in ClipspaceDialog.items) {\n const item = ClipspaceDialog.items[idx]\n if (!item.contextPredicate || item.contextPredicate())\n buttons.push(ClipspaceDialog.items[idx])\n }\n\n buttons.push(\n $el('button', {\n type: 'button',\n textContent: 'Close',\n onclick: () => {\n this.close()\n }\n })\n )\n\n return buttons\n }\n\n createImgSettings() {\n if (ComfyApp.clipspace?.imgs) {\n const combo_items = []\n const imgs = ComfyApp.clipspace.imgs\n\n for (let i = 0; i < imgs.length; i++) {\n combo_items.push($el('option', { value: i }, [`${i}`]))\n }\n\n const combo1 = $el(\n 'select',\n {\n id: 'clipspace_img_selector',\n onchange: (event: Event) => {\n if (event.target && ComfyApp.clipspace) {\n ComfyApp.clipspace['selectedIndex'] = (\n event.target as HTMLSelectElement\n ).selectedIndex\n ClipspaceDialog.invalidatePreview()\n }\n }\n },\n combo_items\n )\n\n const row1 = $el('tr', {}, [\n $el('td', {}, [$el('font', { color: 'white' }, ['Select Image'])]),\n $el('td', {}, [combo1])\n ])\n\n const combo2 = $el(\n 'select',\n {\n id: 'clipspace_img_paste_mode',\n onchange: (event: Event) => {\n if (event.target && ComfyApp.clipspace) {\n ComfyApp.clipspace['img_paste_mode'] = (\n event.target as HTMLSelectElement\n ).value\n }\n }\n },\n [\n $el('option', { value: 'selected' }, 'selected'),\n $el('option', { value: 'all' }, 'all')\n ]\n ) as HTMLSelectElement\n combo2.value = ComfyApp.clipspace['img_paste_mode']\n\n const row2 = $el('tr', {}, [\n $el('td', {}, [$el('font', { color: 'white' }, ['Paste Mode'])]),\n $el('td', {}, [combo2])\n ])\n\n const td = $el(\n 'td',\n { align: 'center', width: '100px', height: '100px', colSpan: '2' },\n [$el('img', { id: 'clipspace_preview', ondragstart: () => false }, [])]\n )\n\n const row3 = $el('tr', {}, [td])\n\n return $el('table', {}, [row1, row2, row3])\n } else {\n return []\n }\n }\n\n createImgPreview() {\n if (ComfyApp.clipspace?.imgs) {\n return $el('img', { id: 'clipspace_preview', ondragstart: () => false })\n } else return []\n }\n\n show() {\n const img_preview = document.getElementById('clipspace_preview')\n ClipspaceDialog.invalidate()\n\n this.element.style.display = 'block'\n }\n}\n\napp.registerExtension({\n name: 'Comfy.Clipspace',\n init(app) {\n app.openClipspace = function () {\n if (!ClipspaceDialog.instance) {\n ClipspaceDialog.instance = new ClipspaceDialog()\n ComfyApp.clipspace_invalidate_handler = ClipspaceDialog.invalidate\n }\n\n if (ComfyApp.clipspace) {\n ClipspaceDialog.instance.show()\n } else app.ui.dialog.show('Clipspace is Empty!')\n }\n }\n})\n","import { LiteGraph, LGraphCanvas } from '@comfyorg/litegraph'\nimport { app } from '../../scripts/app'\n\n// Adds filtering to combo context menus\n\nconst ext = {\n name: 'Comfy.ContextMenuFilter',\n init() {\n const ctxMenu = LiteGraph.ContextMenu\n\n // @ts-expect-error TODO Very hacky way to modify Litegraph behaviour. Fix ctx later.\n LiteGraph.ContextMenu = function (values, options) {\n const ctx = new ctxMenu(values, options)\n\n // If we are a dark menu (only used for combo boxes) then add a filter input\n if (options?.className === 'dark' && values?.length > 4) {\n const filter = document.createElement('input')\n filter.classList.add('comfy-context-menu-filter')\n filter.placeholder = 'Filter list'\n\n ctx.root.prepend(filter)\n\n const items = Array.from(\n ctx.root.querySelectorAll('.litemenu-entry')\n ) as HTMLElement[]\n let displayedItems = [...items]\n let itemCount = displayedItems.length\n\n // We must request an animation frame for the current node of the active canvas to update.\n requestAnimationFrame(() => {\n const currentNode = LGraphCanvas.active_canvas.current_node\n const clickedComboValue = currentNode?.widgets\n ?.filter(\n (w) =>\n w.type === 'combo' && w.options.values?.length === values.length\n )\n .find((w) =>\n w.options.values?.every((v, i) => v === values[i])\n )?.value\n\n let selectedIndex = clickedComboValue\n ? values.findIndex((v: string) => v === clickedComboValue)\n : 0\n if (selectedIndex < 0) {\n selectedIndex = 0\n }\n let selectedItem = displayedItems[selectedIndex]\n updateSelected()\n\n // Apply highlighting to the selected item\n function updateSelected() {\n selectedItem?.style.setProperty('background-color', '')\n selectedItem?.style.setProperty('color', '')\n selectedItem = displayedItems[selectedIndex]\n selectedItem?.style.setProperty(\n 'background-color',\n '#ccc',\n 'important'\n )\n selectedItem?.style.setProperty('color', '#000', 'important')\n }\n\n const positionList = () => {\n const rect = ctx.root.getBoundingClientRect()\n\n // If the top is off-screen then shift the element with scaling applied\n if (rect.top < 0) {\n const scale =\n 1 -\n ctx.root.getBoundingClientRect().height / ctx.root.clientHeight\n\n const shift = (ctx.root.clientHeight * scale) / 2\n\n ctx.root.style.top = -shift + 'px'\n }\n }\n\n // Arrow up/down to select items\n filter.addEventListener('keydown', (event) => {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault()\n if (selectedIndex === 0) {\n selectedIndex = itemCount - 1\n } else {\n selectedIndex--\n }\n updateSelected()\n break\n case 'ArrowRight':\n event.preventDefault()\n selectedIndex = itemCount - 1\n updateSelected()\n break\n case 'ArrowDown':\n event.preventDefault()\n if (selectedIndex === itemCount - 1) {\n selectedIndex = 0\n } else {\n selectedIndex++\n }\n updateSelected()\n break\n case 'ArrowLeft':\n event.preventDefault()\n selectedIndex = 0\n updateSelected()\n break\n case 'Enter':\n selectedItem?.click()\n break\n case 'Escape':\n ctx.close()\n break\n }\n })\n\n filter.addEventListener('input', () => {\n // Hide all items that don't match our filter\n const term = filter.value.toLocaleLowerCase()\n // When filtering, recompute which items are visible for arrow up/down and maintain selection.\n displayedItems = items.filter((item) => {\n const isVisible =\n !term || item.textContent?.toLocaleLowerCase().includes(term)\n item.style.display = isVisible ? 'block' : 'none'\n return isVisible\n })\n\n selectedIndex = 0\n if (displayedItems.includes(selectedItem)) {\n selectedIndex = displayedItems.findIndex(\n (d) => d === selectedItem\n )\n }\n itemCount = displayedItems.length\n\n updateSelected()\n\n // If we have an event then we can try and position the list under the source\n if (options.event) {\n let top = options.event.clientY - 10\n\n const bodyRect = document.body.getBoundingClientRect()\n\n const rootRect = ctx.root.getBoundingClientRect()\n if (\n bodyRect.height &&\n top > bodyRect.height - rootRect.height - 10\n ) {\n top = Math.max(0, bodyRect.height - rootRect.height - 10)\n }\n\n ctx.root.style.top = top + 'px'\n positionList()\n }\n })\n\n requestAnimationFrame(() => {\n // Focus the filter box when opening\n filter.focus()\n\n positionList()\n })\n })\n }\n\n return ctx\n }\n\n LiteGraph.ContextMenu.prototype = ctxMenu.prototype\n }\n}\n\napp.registerExtension(ext)\n","// @ts-strict-ignore\nimport { app } from '../../scripts/app'\n\n// Allows for simple dynamic prompt replacement\n// Inputs in the format {a|b} will have a random value of a or b chosen when the prompt is queued.\n\n/*\n * Strips C-style line and block comments from a string\n */\nfunction stripComments(str) {\n return str.replace(/\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/g, '')\n}\n\napp.registerExtension({\n name: 'Comfy.DynamicPrompts',\n nodeCreated(node) {\n if (node.widgets) {\n // Locate dynamic prompt text widgets\n // Include any widgets with dynamicPrompts set to true, and customtext\n // @ts-expect-error dynamicPrompts is not typed\n const widgets = node.widgets.filter((n) => n.dynamicPrompts)\n for (const widget of widgets) {\n // Override the serialization of the value to resolve dynamic prompts for all widgets supporting it in this node\n // @ts-expect-error hacky override\n widget.serializeValue = (workflowNode, widgetIndex) => {\n let prompt = stripComments(widget.value)\n while (\n prompt.replace('\\\\{', '').includes('{') &&\n prompt.replace('\\\\}', '').includes('}')\n ) {\n const startIndex = prompt.replace('\\\\{', '00').indexOf('{')\n const endIndex = prompt.replace('\\\\}', '00').indexOf('}')\n\n const optionsString = prompt.substring(startIndex + 1, endIndex)\n const options = optionsString.split('|')\n\n const randomIndex = Math.floor(Math.random() * options.length)\n const randomOption = options[randomIndex]\n\n prompt =\n prompt.substring(0, startIndex) +\n randomOption +\n prompt.substring(endIndex + 1)\n }\n\n // Overwrite the value in the serialized workflow pnginfo\n if (workflowNode?.widgets_values)\n workflowNode.widgets_values[widgetIndex] = prompt\n\n return prompt\n }\n }\n }\n }\n})\n","import { app } from '../../scripts/app'\n\n// Allows you to edit the attention weight by holding ctrl (or cmd) and using the up/down arrow keys\n\napp.registerExtension({\n name: 'Comfy.EditAttention',\n init() {\n const editAttentionDelta = app.ui.settings.addSetting({\n id: 'Comfy.EditAttention.Delta',\n category: ['Comfy', 'EditTokenWeight', 'Delta'],\n name: 'Ctrl+up/down precision',\n type: 'slider',\n attrs: {\n min: 0.01,\n max: 0.5,\n step: 0.01\n },\n defaultValue: 0.05\n })\n\n function incrementWeight(weight: string, delta: number): string {\n const floatWeight = parseFloat(weight)\n if (isNaN(floatWeight)) return weight\n const newWeight = floatWeight + delta\n return String(Number(newWeight.toFixed(10)))\n }\n\n type Enclosure = {\n start: number\n end: number\n }\n\n function findNearestEnclosure(\n text: string,\n cursorPos: number\n ): Enclosure | null {\n let start = cursorPos,\n end = cursorPos\n let openCount = 0,\n closeCount = 0\n\n // Find opening parenthesis before cursor\n while (start >= 0) {\n start--\n if (text[start] === '(' && openCount === closeCount) break\n if (text[start] === '(') openCount++\n if (text[start] === ')') closeCount++\n }\n if (start < 0) return null\n\n openCount = 0\n closeCount = 0\n\n // Find closing parenthesis after cursor\n while (end < text.length) {\n if (text[end] === ')' && openCount === closeCount) break\n if (text[end] === '(') openCount++\n if (text[end] === ')') closeCount++\n end++\n }\n if (end === text.length) return null\n\n return { start: start + 1, end: end }\n }\n\n function addWeightToParentheses(text: string): string {\n const parenRegex = /^\\((.*)\\)$/\n const parenMatch = text.match(parenRegex)\n\n const floatRegex = /:([+-]?(\\d*\\.)?\\d+([eE][+-]?\\d+)?)/\n const floatMatch = text.match(floatRegex)\n\n if (parenMatch && !floatMatch) {\n return `(${parenMatch[1]}:1.0)`\n } else {\n return text\n }\n }\n\n function editAttention(event: KeyboardEvent) {\n // @ts-expect-error Runtime narrowing not impl.\n const inputField: HTMLTextAreaElement = event.composedPath()[0]\n const delta = parseFloat(editAttentionDelta.value)\n\n if (inputField.tagName !== 'TEXTAREA') return\n if (!(event.key === 'ArrowUp' || event.key === 'ArrowDown')) return\n if (!event.ctrlKey && !event.metaKey) return\n\n event.preventDefault()\n\n let start = inputField.selectionStart\n let end = inputField.selectionEnd\n let selectedText = inputField.value.substring(start, end)\n\n // If there is no selection, attempt to find the nearest enclosure, or select the current word\n if (!selectedText) {\n const nearestEnclosure = findNearestEnclosure(inputField.value, start)\n if (nearestEnclosure) {\n start = nearestEnclosure.start\n end = nearestEnclosure.end\n selectedText = inputField.value.substring(start, end)\n } else {\n // Select the current word, find the start and end of the word\n const delimiters = ' .,\\\\/!?%^*;:{}=-_`~()\\r\\n\\t'\n\n while (\n !delimiters.includes(inputField.value[start - 1]) &&\n start > 0\n ) {\n start--\n }\n\n while (\n !delimiters.includes(inputField.value[end]) &&\n end < inputField.value.length\n ) {\n end++\n }\n\n selectedText = inputField.value.substring(start, end)\n if (!selectedText) return\n }\n }\n\n // If the selection ends with a space, remove it\n if (selectedText[selectedText.length - 1] === ' ') {\n selectedText = selectedText.substring(0, selectedText.length - 1)\n end -= 1\n }\n\n // If there are parentheses left and right of the selection, select them\n if (\n inputField.value[start - 1] === '(' &&\n inputField.value[end] === ')'\n ) {\n start -= 1\n end += 1\n selectedText = inputField.value.substring(start, end)\n }\n\n // If the selection is not enclosed in parentheses, add them\n if (\n selectedText[0] !== '(' ||\n selectedText[selectedText.length - 1] !== ')'\n ) {\n selectedText = `(${selectedText})`\n }\n\n // If the selection does not have a weight, add a weight of 1.0\n selectedText = addWeightToParentheses(selectedText)\n\n // Increment the weight\n const weightDelta = event.key === 'ArrowUp' ? delta : -delta\n const updatedText = selectedText.replace(\n /\\((.*):([+-]?\\d+(?:\\.\\d+)?)\\)/,\n (match, text, weight) => {\n weight = incrementWeight(weight, weightDelta)\n if (weight == 1) {\n return text\n } else {\n return `(${text}:${weight})`\n }\n }\n )\n\n inputField.setSelectionRange(start, end)\n // Intentional use of deprecated: https://developer.mozilla.org/docs/Web/API/Document/execCommand#using_inserttext\n document.execCommand('insertText', false, updatedText)\n inputField.setSelectionRange(start, start + updatedText.length)\n }\n window.addEventListener('keydown', editAttention)\n }\n})\n","// @ts-strict-ignore\nimport { $el, ComfyDialog } from '../../scripts/ui'\nimport { DraggableList } from '../../scripts/ui/draggableList'\nimport { GroupNodeConfig, GroupNodeHandler } from './groupNode'\nimport './groupNodeManage.css'\nimport { app, type ComfyApp } from '../../scripts/app'\nimport {\n LiteGraph,\n type LGraphNode,\n type LGraphNodeConstructor\n} from '@comfyorg/litegraph'\nimport { useToastStore } from '@/stores/toastStore'\n\nconst ORDER: symbol = Symbol()\nconst PREFIX = 'workflow'\nconst SEPARATOR = '>'\n\nfunction merge(target, source) {\n if (typeof target === 'object' && typeof source === 'object') {\n for (const key in source) {\n const sv = source[key]\n if (typeof sv === 'object') {\n let tv = target[key]\n if (!tv) tv = target[key] = {}\n merge(tv, source[key])\n } else {\n target[key] = sv\n }\n }\n }\n\n return target\n}\n\nexport class ManageGroupDialog extends ComfyDialog {\n tabs: Record<\n 'Inputs' | 'Outputs' | 'Widgets',\n { tab: HTMLAnchorElement; page: HTMLElement }\n >\n selectedNodeIndex: number | null | undefined\n selectedTab: keyof ManageGroupDialog['tabs'] = 'Inputs'\n selectedGroup: string | undefined\n modifications: Record<\n string,\n Record<\n string,\n Record<\n string,\n { name?: string | undefined; visible?: boolean | undefined }\n >\n >\n > = {}\n nodeItems: any[]\n app: ComfyApp\n groupNodeType: LGraphNodeConstructor\n groupNodeDef: any\n groupData: any\n\n innerNodesList: HTMLUListElement\n widgetsPage: HTMLElement\n inputsPage: HTMLElement\n outputsPage: HTMLElement\n draggable: any\n\n get selectedNodeInnerIndex() {\n return +this.nodeItems[this.selectedNodeIndex].dataset.nodeindex\n }\n\n constructor(app) {\n super()\n this.app = app\n this.element = $el('dialog.comfy-group-manage', {\n parent: document.body\n }) as HTMLDialogElement\n }\n\n changeTab(tab) {\n this.tabs[this.selectedTab].tab.classList.remove('active')\n this.tabs[this.selectedTab].page.classList.remove('active')\n this.tabs[tab].tab.classList.add('active')\n this.tabs[tab].page.classList.add('active')\n this.selectedTab = tab\n }\n\n changeNode(index, force?) {\n if (!force && this.selectedNodeIndex === index) return\n\n if (this.selectedNodeIndex != null) {\n this.nodeItems[this.selectedNodeIndex].classList.remove('selected')\n }\n this.nodeItems[index].classList.add('selected')\n this.selectedNodeIndex = index\n\n if (!this.buildInputsPage() && this.selectedTab === 'Inputs') {\n this.changeTab('Widgets')\n }\n if (!this.buildWidgetsPage() && this.selectedTab === 'Widgets') {\n this.changeTab('Outputs')\n }\n if (!this.buildOutputsPage() && this.selectedTab === 'Outputs') {\n this.changeTab('Inputs')\n }\n\n this.changeTab(this.selectedTab)\n }\n\n getGroupData() {\n this.groupNodeType =\n LiteGraph.registered_node_types[\n `${PREFIX}${SEPARATOR}` + this.selectedGroup\n ]\n this.groupNodeDef = this.groupNodeType.nodeData\n this.groupData = GroupNodeHandler.getGroupData(this.groupNodeType)\n }\n\n changeGroup(group, reset = true) {\n this.selectedGroup = group\n this.getGroupData()\n\n const nodes = this.groupData.nodeData.nodes\n this.nodeItems = nodes.map((n, i) =>\n $el(\n 'li.draggable-item',\n {\n dataset: {\n nodeindex: n.index + ''\n },\n onclick: () => {\n this.changeNode(i)\n }\n },\n [\n $el('span.drag-handle'),\n $el(\n 'div',\n {\n textContent: n.title ?? n.type\n },\n n.title\n ? $el('span', {\n textContent: n.type\n })\n : []\n )\n ]\n )\n )\n\n this.innerNodesList.replaceChildren(...this.nodeItems)\n\n if (reset) {\n this.selectedNodeIndex = null\n this.changeNode(0)\n } else {\n const items = this.draggable.getAllItems()\n let index = items.findIndex((item) => item.classList.contains('selected'))\n if (index === -1) index = this.selectedNodeIndex\n this.changeNode(index, true)\n }\n\n const ordered = [...nodes]\n this.draggable?.dispose()\n this.draggable = new DraggableList(this.innerNodesList, 'li')\n this.draggable.addEventListener(\n 'dragend',\n ({ detail: { oldPosition, newPosition } }) => {\n if (oldPosition === newPosition) return\n ordered.splice(newPosition, 0, ordered.splice(oldPosition, 1)[0])\n for (let i = 0; i < ordered.length; i++) {\n this.storeModification({\n nodeIndex: ordered[i].index,\n section: ORDER,\n prop: 'order',\n value: i\n })\n }\n }\n )\n }\n\n storeModification(props: {\n nodeIndex?: number\n section: symbol\n prop: string\n value: any\n }) {\n const { nodeIndex, section, prop, value } = props\n const groupMod = (this.modifications[this.selectedGroup] ??= {})\n const nodesMod = (groupMod.nodes ??= {})\n const nodeMod = (nodesMod[nodeIndex ?? this.selectedNodeInnerIndex] ??= {})\n const typeMod = (nodeMod[section] ??= {})\n if (typeof value === 'object') {\n const objMod = (typeMod[prop] ??= {})\n Object.assign(objMod, value)\n } else {\n typeMod[prop] = value\n }\n }\n\n getEditElement(section, prop, value, placeholder, checked, checkable = true) {\n if (value === placeholder) value = ''\n\n const mods =\n this.modifications[this.selectedGroup]?.nodes?.[\n this.selectedNodeInnerIndex\n ]?.[section]?.[prop]\n if (mods) {\n if (mods.name != null) {\n value = mods.name\n }\n if (mods.visible != null) {\n checked = mods.visible\n }\n }\n\n return $el('div', [\n $el('input', {\n value,\n placeholder,\n type: 'text',\n onchange: (e) => {\n this.storeModification({\n section,\n prop,\n value: { name: e.target.value }\n })\n }\n }),\n $el('label', { textContent: 'Visible' }, [\n $el('input', {\n type: 'checkbox',\n checked,\n disabled: !checkable,\n onchange: (e) => {\n this.storeModification({\n section,\n prop,\n value: { visible: !!e.target.checked }\n })\n }\n })\n ])\n ])\n }\n\n buildWidgetsPage() {\n const widgets =\n this.groupData.oldToNewWidgetMap[this.selectedNodeInnerIndex]\n const items = Object.keys(widgets ?? {})\n const type = app.graph.extra.groupNodes[this.selectedGroup]\n const config = type.config?.[this.selectedNodeInnerIndex]?.input\n this.widgetsPage.replaceChildren(\n ...items.map((oldName) => {\n return this.getEditElement(\n 'input',\n oldName,\n widgets[oldName],\n oldName,\n config?.[oldName]?.visible !== false\n )\n })\n )\n return !!items.length\n }\n\n buildInputsPage() {\n const inputs = this.groupData.nodeInputs[this.selectedNodeInnerIndex]\n const items = Object.keys(inputs ?? {})\n const type = app.graph.extra.groupNodes[this.selectedGroup]\n const config = type.config?.[this.selectedNodeInnerIndex]?.input\n this.inputsPage.replaceChildren(\n ...items\n .map((oldName) => {\n let value = inputs[oldName]\n if (!value) {\n return\n }\n\n return this.getEditElement(\n 'input',\n oldName,\n value,\n oldName,\n config?.[oldName]?.visible !== false\n )\n })\n .filter(Boolean)\n )\n return !!items.length\n }\n\n buildOutputsPage() {\n const nodes = this.groupData.nodeData.nodes\n const innerNodeDef = this.groupData.getNodeDef(\n nodes[this.selectedNodeInnerIndex]\n )\n const outputs = innerNodeDef?.output ?? []\n const groupOutputs =\n this.groupData.oldToNewOutputMap[this.selectedNodeInnerIndex]\n\n const type = app.graph.extra.groupNodes[this.selectedGroup]\n const config = type.config?.[this.selectedNodeInnerIndex]?.output\n const node = this.groupData.nodeData.nodes[this.selectedNodeInnerIndex]\n const checkable = node.type !== 'PrimitiveNode'\n this.outputsPage.replaceChildren(\n ...outputs\n .map((type, slot) => {\n const groupOutputIndex = groupOutputs?.[slot]\n const oldName = innerNodeDef.output_name?.[slot] ?? type\n let value = config?.[slot]?.name\n const visible = config?.[slot]?.visible || groupOutputIndex != null\n if (!value || value === oldName) {\n value = ''\n }\n return this.getEditElement(\n 'output',\n slot,\n value,\n oldName,\n visible,\n checkable\n )\n })\n .filter(Boolean)\n )\n return !!outputs.length\n }\n\n show(type?) {\n const groupNodes = Object.keys(app.graph.extra?.groupNodes ?? {}).sort(\n (a, b) => a.localeCompare(b)\n )\n\n this.innerNodesList = $el(\n 'ul.comfy-group-manage-list-items'\n ) as HTMLUListElement\n this.widgetsPage = $el('section.comfy-group-manage-node-page')\n this.inputsPage = $el('section.comfy-group-manage-node-page')\n this.outputsPage = $el('section.comfy-group-manage-node-page')\n const pages = $el('div', [\n this.widgetsPage,\n this.inputsPage,\n this.outputsPage\n ])\n\n this.tabs = [\n ['Inputs', this.inputsPage],\n ['Widgets', this.widgetsPage],\n ['Outputs', this.outputsPage]\n ].reduce((p, [name, page]: [string, HTMLElement]) => {\n p[name] = {\n tab: $el('a', {\n onclick: () => {\n this.changeTab(name)\n },\n textContent: name\n }),\n page\n }\n return p\n }, {}) as any\n\n const outer = $el('div.comfy-group-manage-outer', [\n $el('header', [\n $el('h2', 'Group Nodes'),\n $el(\n 'select',\n {\n onchange: (e) => {\n this.changeGroup(e.target.value)\n }\n },\n groupNodes.map((g) =>\n $el('option', {\n textContent: g,\n selected: `${PREFIX}${SEPARATOR}` + g === type,\n value: g\n })\n )\n )\n ]),\n $el('main', [\n $el('section.comfy-group-manage-list', this.innerNodesList),\n $el('section.comfy-group-manage-node', [\n $el(\n 'header',\n Object.values(this.tabs).map((t) => t.tab)\n ),\n pages\n ])\n ]),\n $el('footer', [\n $el(\n 'button.comfy-btn',\n {\n onclick: (e) => {\n const node = app.graph.nodes.find(\n (n) => n.type === `${PREFIX}${SEPARATOR}` + this.selectedGroup\n )\n if (node) {\n useToastStore().addAlert(\n 'This group node is in use in the current workflow, please first remove these.'\n )\n return\n }\n if (\n confirm(\n `Are you sure you want to remove the node: \"${this.selectedGroup}\"`\n )\n ) {\n delete app.graph.extra.groupNodes[this.selectedGroup]\n LiteGraph.unregisterNodeType(\n `${PREFIX}${SEPARATOR}` + this.selectedGroup\n )\n }\n this.show()\n }\n },\n 'Delete Group Node'\n ),\n $el(\n 'button.comfy-btn',\n {\n onclick: async () => {\n let nodesByType\n let recreateNodes = []\n const types = {}\n for (const g in this.modifications) {\n const type = app.graph.extra.groupNodes[g]\n let config = (type.config ??= {})\n\n let nodeMods = this.modifications[g]?.nodes\n if (nodeMods) {\n const keys = Object.keys(nodeMods)\n if (nodeMods[keys[0]][ORDER]) {\n // If any node is reordered, they will all need sequencing\n const orderedNodes = []\n const orderedMods = {}\n const orderedConfig = {}\n\n for (const n of keys) {\n const order = nodeMods[n][ORDER].order\n orderedNodes[order] = type.nodes[+n]\n orderedMods[order] = nodeMods[n]\n orderedNodes[order].index = order\n }\n\n // Rewrite links\n for (const l of type.links) {\n if (l[0] != null) l[0] = type.nodes[l[0]].index\n if (l[2] != null) l[2] = type.nodes[l[2]].index\n }\n\n // Rewrite externals\n if (type.external) {\n for (const ext of type.external) {\n ext[0] = type.nodes[ext[0]]\n }\n }\n\n // Rewrite modifications\n for (const id of keys) {\n if (config[id]) {\n orderedConfig[type.nodes[id].index] = config[id]\n }\n delete config[id]\n }\n\n type.nodes = orderedNodes\n nodeMods = orderedMods\n type.config = config = orderedConfig\n }\n\n merge(config, nodeMods)\n }\n\n types[g] = type\n\n if (!nodesByType) {\n nodesByType = app.graph.nodes.reduce((p, n) => {\n p[n.type] ??= []\n p[n.type].push(n)\n return p\n }, {})\n }\n\n const nodes = nodesByType[`${PREFIX}${SEPARATOR}` + g]\n if (nodes) recreateNodes.push(...nodes)\n }\n\n await GroupNodeConfig.registerFromWorkflow(types, {})\n\n for (const node of recreateNodes) {\n node.recreate()\n }\n\n this.modifications = {}\n this.app.graph.setDirtyCanvas(true, true)\n this.changeGroup(this.selectedGroup, false)\n }\n },\n 'Save'\n ),\n $el(\n 'button.comfy-btn',\n { onclick: () => this.element.close() },\n 'Close'\n )\n ])\n ])\n\n this.element.replaceChildren(outer)\n this.changeGroup(\n type\n ? groupNodes.find((g) => `${PREFIX}${SEPARATOR}` + g === type)\n : groupNodes[0]\n )\n this.element.showModal()\n\n this.element.addEventListener('close', () => {\n this.draggable?.dispose()\n this.element.remove()\n })\n }\n}\n","// @ts-strict-ignore\nimport { app } from '../../scripts/app'\nimport { api } from '../../scripts/api'\nimport { mergeIfValid } from './widgetInputs'\nimport { ManageGroupDialog } from './groupNodeManage'\nimport { LGraphCanvas, LiteGraph, type LGraph } from '@comfyorg/litegraph'\nimport { LGraphNode, type NodeId } from '@comfyorg/litegraph/dist/LGraphNode'\nimport { useNodeDefStore } from '@/stores/nodeDefStore'\nimport { ComfyLink, ComfyNode, ComfyWorkflowJSON } from '@/types/comfyWorkflow'\nimport { useToastStore } from '@/stores/toastStore'\nimport { ComfyExtension } from '@/types/comfy'\nimport {\n deserialiseAndCreate,\n serialise\n} from '@/extensions/core/vintageClipboard'\nimport type { ComfyNodeDef } from '@/types/apiTypes'\nimport { showPromptDialog } from '@/services/dialogService'\nimport { t } from '@/i18n'\n\ntype GroupNodeWorkflowData = {\n external: ComfyLink[]\n links: ComfyLink[]\n nodes: ComfyNode[]\n}\n\nconst GROUP = Symbol()\n\n// v1 Prefix + Separator: workflow/\n// v2 Prefix + Separator: workflow> (ComfyUI_frontend v1.2.63)\nconst PREFIX = 'workflow'\nconst SEPARATOR = '>'\n\nconst Workflow = {\n InUse: {\n Free: 0,\n Registered: 1,\n InWorkflow: 2\n },\n isInUseGroupNode(name) {\n const id = `${PREFIX}${SEPARATOR}${name}`\n // Check if lready registered/in use in this workflow\n if (app.graph.extra?.groupNodes?.[name]) {\n if (app.graph.nodes.find((n) => n.type === id)) {\n return Workflow.InUse.InWorkflow\n } else {\n return Workflow.InUse.Registered\n }\n }\n return Workflow.InUse.Free\n },\n storeGroupNode(name: string, data: GroupNodeWorkflowData) {\n let extra = app.graph.extra\n if (!extra) app.graph.extra = extra = {}\n let groupNodes = extra.groupNodes\n if (!groupNodes) extra.groupNodes = groupNodes = {}\n groupNodes[name] = data\n }\n}\n\nclass GroupNodeBuilder {\n nodes: LGraphNode[]\n nodeData: GroupNodeWorkflowData\n\n constructor(nodes: LGraphNode[]) {\n this.nodes = nodes\n }\n\n async build() {\n const name = await this.getName()\n if (!name) return\n\n // Sort the nodes so they are in execution order\n // this allows for widgets to be in the correct order when reconstructing\n this.sortNodes()\n\n this.nodeData = this.getNodeData()\n Workflow.storeGroupNode(name, this.nodeData)\n\n return { name, nodeData: this.nodeData }\n }\n\n async getName() {\n const name = await showPromptDialog({\n title: t('groupNode.create'),\n message: t('groupNode.enterName'),\n defaultValue: ''\n })\n if (!name) return\n const used = Workflow.isInUseGroupNode(name)\n switch (used) {\n case Workflow.InUse.InWorkflow:\n useToastStore().addAlert(\n 'An in use group node with this name already exists embedded in this workflow, please remove any instances or use a new name.'\n )\n return\n case Workflow.InUse.Registered:\n if (\n !confirm(\n 'A group node with this name already exists embedded in this workflow, are you sure you want to overwrite it?'\n )\n ) {\n return\n }\n break\n }\n return name\n }\n\n sortNodes() {\n // Gets the builders nodes in graph execution order\n const nodesInOrder = app.graph.computeExecutionOrder(false)\n this.nodes = this.nodes\n .map((node) => ({ index: nodesInOrder.indexOf(node), node }))\n // @ts-expect-error id might be string\n .sort((a, b) => a.index - b.index || a.node.id - b.node.id)\n .map(({ node }) => node)\n }\n\n getNodeData() {\n const storeLinkTypes = (config) => {\n // Store link types for dynamically typed nodes e.g. reroutes\n for (const link of config.links) {\n const origin = app.graph.getNodeById(link[4])\n const type = origin.outputs[link[1]].type\n link.push(type)\n }\n }\n\n const storeExternalLinks = (config) => {\n // Store any external links to the group in the config so when rebuilding we add extra slots\n config.external = []\n for (let i = 0; i < this.nodes.length; i++) {\n const node = this.nodes[i]\n if (!node.outputs?.length) continue\n for (let slot = 0; slot < node.outputs.length; slot++) {\n let hasExternal = false\n const output = node.outputs[slot]\n let type = output.type\n if (!output.links?.length) continue\n for (const l of output.links) {\n const link = app.graph.links[l]\n if (!link) continue\n if (type === '*') type = link.type\n\n if (!app.canvas.selected_nodes[link.target_id]) {\n hasExternal = true\n break\n }\n }\n if (hasExternal) {\n config.external.push([i, slot, type])\n }\n }\n }\n }\n\n // Use the built in copyToClipboard function to generate the node data we need\n try {\n const serialised = serialise(this.nodes, app.canvas.graph)\n const config = JSON.parse(serialised)\n\n storeLinkTypes(config)\n storeExternalLinks(config)\n\n return config\n } finally {\n }\n }\n}\n\nexport class GroupNodeConfig {\n name: string\n nodeData: any\n inputCount: number\n oldToNewOutputMap: {}\n newToOldOutputMap: {}\n oldToNewInputMap: {}\n oldToNewWidgetMap: {}\n newToOldWidgetMap: {}\n primitiveDefs: {}\n widgetToPrimitive: {}\n primitiveToWidget: {}\n nodeInputs: {}\n outputVisibility: any[]\n nodeDef: ComfyNodeDef\n inputs: any[]\n linksFrom: {}\n linksTo: {}\n externalFrom: {}\n\n constructor(name, nodeData) {\n this.name = name\n this.nodeData = nodeData\n this.getLinks()\n\n this.inputCount = 0\n this.oldToNewOutputMap = {}\n this.newToOldOutputMap = {}\n this.oldToNewInputMap = {}\n this.oldToNewWidgetMap = {}\n this.newToOldWidgetMap = {}\n this.primitiveDefs = {}\n this.widgetToPrimitive = {}\n this.primitiveToWidget = {}\n this.nodeInputs = {}\n this.outputVisibility = []\n }\n\n async registerType(source = PREFIX) {\n this.nodeDef = {\n output: [],\n output_name: [],\n output_is_list: [],\n // @ts-expect-error Unused, doesn't exist\n output_is_hidden: [],\n name: source + SEPARATOR + this.name,\n display_name: this.name,\n category: 'group nodes' + (SEPARATOR + source),\n input: { required: {} },\n description: `Group node combining ${this.nodeData.nodes\n .map((n) => n.type)\n .join(', ')}`,\n python_module: 'custom_nodes.' + this.name,\n\n [GROUP]: this\n }\n\n this.inputs = []\n const seenInputs = {}\n const seenOutputs = {}\n for (let i = 0; i < this.nodeData.nodes.length; i++) {\n const node = this.nodeData.nodes[i]\n node.index = i\n this.processNode(node, seenInputs, seenOutputs)\n }\n\n for (const p of this.#convertedToProcess) {\n p()\n }\n this.#convertedToProcess = null\n await app.registerNodeDef(`${PREFIX}${SEPARATOR}` + this.name, this.nodeDef)\n useNodeDefStore().addNodeDef(this.nodeDef)\n }\n\n getLinks() {\n this.linksFrom = {}\n this.linksTo = {}\n this.externalFrom = {}\n\n // Extract links for easy lookup\n for (const l of this.nodeData.links) {\n const [sourceNodeId, sourceNodeSlot, targetNodeId, targetNodeSlot] = l\n\n // Skip links outside the copy config\n if (sourceNodeId == null) continue\n\n if (!this.linksFrom[sourceNodeId]) {\n this.linksFrom[sourceNodeId] = {}\n }\n if (!this.linksFrom[sourceNodeId][sourceNodeSlot]) {\n this.linksFrom[sourceNodeId][sourceNodeSlot] = []\n }\n this.linksFrom[sourceNodeId][sourceNodeSlot].push(l)\n\n if (!this.linksTo[targetNodeId]) {\n this.linksTo[targetNodeId] = {}\n }\n this.linksTo[targetNodeId][targetNodeSlot] = l\n }\n\n if (this.nodeData.external) {\n for (const ext of this.nodeData.external) {\n if (!this.externalFrom[ext[0]]) {\n this.externalFrom[ext[0]] = { [ext[1]]: ext[2] }\n } else {\n this.externalFrom[ext[0]][ext[1]] = ext[2]\n }\n }\n }\n }\n\n processNode(node, seenInputs, seenOutputs) {\n const def = this.getNodeDef(node)\n if (!def) return\n\n const inputs = { ...def.input?.required, ...def.input?.optional }\n\n this.inputs.push(this.processNodeInputs(node, seenInputs, inputs))\n if (def.output?.length) this.processNodeOutputs(node, seenOutputs, def)\n }\n\n getNodeDef(node) {\n const def = globalDefs[node.type]\n if (def) return def\n\n const linksFrom = this.linksFrom[node.index]\n if (node.type === 'PrimitiveNode') {\n // Skip as its not linked\n if (!linksFrom) return\n\n let type = linksFrom['0'][0][5]\n if (type === 'COMBO') {\n // Use the array items\n const source = node.outputs[0].widget.name\n const fromTypeName = this.nodeData.nodes[linksFrom['0'][0][2]].type\n const fromType = globalDefs[fromTypeName]\n const input =\n fromType.input.required[source] ?? fromType.input.optional[source]\n type = input[0]\n }\n\n const def = (this.primitiveDefs[node.index] = {\n input: {\n required: {\n value: [type, {}]\n }\n },\n output: [type],\n output_name: [],\n output_is_list: []\n })\n return def\n } else if (node.type === 'Reroute') {\n const linksTo = this.linksTo[node.index]\n if (linksTo && linksFrom && !this.externalFrom[node.index]?.[0]) {\n // Being used internally\n return null\n }\n\n let config = {}\n let rerouteType = '*'\n if (linksFrom) {\n for (const [, , id, slot] of linksFrom['0']) {\n const node = this.nodeData.nodes[id]\n const input = node.inputs[slot]\n if (rerouteType === '*') {\n rerouteType = input.type\n }\n if (input.widget) {\n const targetDef = globalDefs[node.type]\n const targetWidget =\n targetDef.input.required[input.widget.name] ??\n targetDef.input.optional[input.widget.name]\n\n const widget = [targetWidget[0], config]\n const res = mergeIfValid(\n {\n widget\n },\n targetWidget,\n false,\n null,\n widget\n )\n config = res?.customConfig ?? config\n }\n }\n } else if (linksTo) {\n const [id, slot] = linksTo['0']\n rerouteType = this.nodeData.nodes[id].outputs[slot].type\n } else {\n // Reroute used as a pipe\n for (const l of this.nodeData.links) {\n if (l[2] === node.index) {\n rerouteType = l[5]\n break\n }\n }\n if (rerouteType === '*') {\n // Check for an external link\n const t = this.externalFrom[node.index]?.[0]\n if (t) {\n rerouteType = t\n }\n }\n }\n\n // @ts-expect-error\n config.forceInput = true\n return {\n input: {\n required: {\n [rerouteType]: [rerouteType, config]\n }\n },\n output: [rerouteType],\n output_name: [],\n output_is_list: []\n }\n }\n\n console.warn(\n 'Skipping virtual node ' +\n node.type +\n ' when building group node ' +\n this.name\n )\n }\n\n getInputConfig(node, inputName, seenInputs, config, extra?) {\n const customConfig = this.nodeData.config?.[node.index]?.input?.[inputName]\n let name =\n customConfig?.name ??\n node.inputs?.find((inp) => inp.name === inputName)?.label ??\n inputName\n let key = name\n let prefix = ''\n // Special handling for primitive to include the title if it is set rather than just \"value\"\n if ((node.type === 'PrimitiveNode' && node.title) || name in seenInputs) {\n prefix = `${node.title ?? node.type} `\n key = name = `${prefix}${inputName}`\n if (name in seenInputs) {\n name = `${prefix}${seenInputs[name]} ${inputName}`\n }\n }\n seenInputs[key] = (seenInputs[key] ?? 1) + 1\n\n if (inputName === 'seed' || inputName === 'noise_seed') {\n if (!extra) extra = {}\n extra.control_after_generate = `${prefix}control_after_generate`\n }\n if (config[0] === 'IMAGEUPLOAD') {\n if (!extra) extra = {}\n extra.widget =\n this.oldToNewWidgetMap[node.index]?.[config[1]?.widget ?? 'image'] ??\n 'image'\n }\n\n if (extra) {\n config = [config[0], { ...config[1], ...extra }]\n }\n\n return { name, config, customConfig }\n }\n\n processWidgetInputs(inputs, node, inputNames, seenInputs) {\n const slots = []\n const converted = new Map()\n const widgetMap = (this.oldToNewWidgetMap[node.index] = {})\n for (const inputName of inputNames) {\n let widgetType = app.getWidgetType(inputs[inputName], inputName)\n if (widgetType) {\n const convertedIndex = node.inputs?.findIndex(\n (inp) => inp.name === inputName && inp.widget?.name === inputName\n )\n if (convertedIndex > -1) {\n // This widget has been converted to a widget\n // We need to store this in the correct position so link ids line up\n converted.set(convertedIndex, inputName)\n widgetMap[inputName] = null\n } else {\n // Normal widget\n const { name, config } = this.getInputConfig(\n node,\n inputName,\n seenInputs,\n inputs[inputName]\n )\n this.nodeDef.input.required[name] = config\n widgetMap[inputName] = name\n this.newToOldWidgetMap[name] = { node, inputName }\n }\n } else {\n // Normal input\n slots.push(inputName)\n }\n }\n return { converted, slots }\n }\n\n checkPrimitiveConnection(link, inputName, inputs) {\n const sourceNode = this.nodeData.nodes[link[0]]\n if (sourceNode.type === 'PrimitiveNode') {\n // Merge link configurations\n const [sourceNodeId, _, targetNodeId, __] = link\n const primitiveDef = this.primitiveDefs[sourceNodeId]\n const targetWidget = inputs[inputName]\n const primitiveConfig = primitiveDef.input.required.value\n const output = { widget: primitiveConfig }\n const config = mergeIfValid(\n output,\n targetWidget,\n false,\n null,\n primitiveConfig\n )\n primitiveConfig[1] =\n config?.customConfig ?? inputs[inputName][1]\n ? { ...inputs[inputName][1] }\n : {}\n\n let name = this.oldToNewWidgetMap[sourceNodeId]['value']\n name = name.substr(0, name.length - 6)\n primitiveConfig[1].control_after_generate = true\n primitiveConfig[1].control_prefix = name\n\n let toPrimitive = this.widgetToPrimitive[targetNodeId]\n if (!toPrimitive) {\n toPrimitive = this.widgetToPrimitive[targetNodeId] = {}\n }\n if (toPrimitive[inputName]) {\n toPrimitive[inputName].push(sourceNodeId)\n }\n toPrimitive[inputName] = sourceNodeId\n\n let toWidget = this.primitiveToWidget[sourceNodeId]\n if (!toWidget) {\n toWidget = this.primitiveToWidget[sourceNodeId] = []\n }\n toWidget.push({ nodeId: targetNodeId, inputName })\n }\n }\n\n processInputSlots(inputs, node, slots, linksTo, inputMap, seenInputs) {\n this.nodeInputs[node.index] = {}\n for (let i = 0; i < slots.length; i++) {\n const inputName = slots[i]\n if (linksTo[i]) {\n this.checkPrimitiveConnection(linksTo[i], inputName, inputs)\n // This input is linked so we can skip it\n continue\n }\n\n const { name, config, customConfig } = this.getInputConfig(\n node,\n inputName,\n seenInputs,\n inputs[inputName]\n )\n\n this.nodeInputs[node.index][inputName] = name\n if (customConfig?.visible === false) continue\n\n this.nodeDef.input.required[name] = config\n inputMap[i] = this.inputCount++\n }\n }\n\n processConvertedWidgets(\n inputs,\n node,\n slots,\n converted,\n linksTo,\n inputMap,\n seenInputs\n ) {\n // Add converted widgets sorted into their index order (ordered as they were converted) so link ids match up\n const convertedSlots = [...converted.keys()]\n .sort()\n .map((k) => converted.get(k))\n for (let i = 0; i < convertedSlots.length; i++) {\n const inputName = convertedSlots[i]\n if (linksTo[slots.length + i]) {\n this.checkPrimitiveConnection(\n linksTo[slots.length + i],\n inputName,\n inputs\n )\n // This input is linked so we can skip it\n continue\n }\n\n const { name, config } = this.getInputConfig(\n node,\n inputName,\n seenInputs,\n inputs[inputName],\n {\n defaultInput: true\n }\n )\n\n this.nodeDef.input.required[name] = config\n this.newToOldWidgetMap[name] = { node, inputName }\n\n if (!this.oldToNewWidgetMap[node.index]) {\n this.oldToNewWidgetMap[node.index] = {}\n }\n this.oldToNewWidgetMap[node.index][inputName] = name\n\n inputMap[slots.length + i] = this.inputCount++\n }\n }\n\n #convertedToProcess = []\n processNodeInputs(node, seenInputs, inputs) {\n const inputMapping = []\n\n const inputNames = Object.keys(inputs)\n if (!inputNames.length) return\n\n const { converted, slots } = this.processWidgetInputs(\n inputs,\n node,\n inputNames,\n seenInputs\n )\n const linksTo = this.linksTo[node.index] ?? {}\n const inputMap = (this.oldToNewInputMap[node.index] = {})\n this.processInputSlots(inputs, node, slots, linksTo, inputMap, seenInputs)\n\n // Converted inputs have to be processed after all other nodes as they'll be at the end of the list\n this.#convertedToProcess.push(() =>\n this.processConvertedWidgets(\n inputs,\n node,\n slots,\n converted,\n linksTo,\n inputMap,\n seenInputs\n )\n )\n\n return inputMapping\n }\n\n processNodeOutputs(node, seenOutputs, def) {\n const oldToNew = (this.oldToNewOutputMap[node.index] = {})\n\n // Add outputs\n for (let outputId = 0; outputId < def.output.length; outputId++) {\n const linksFrom = this.linksFrom[node.index]\n // If this output is linked internally we flag it to hide\n const hasLink =\n linksFrom?.[outputId] && !this.externalFrom[node.index]?.[outputId]\n const customConfig =\n this.nodeData.config?.[node.index]?.output?.[outputId]\n const visible = customConfig?.visible ?? !hasLink\n this.outputVisibility.push(visible)\n if (!visible) {\n continue\n }\n\n oldToNew[outputId] = this.nodeDef.output.length\n this.newToOldOutputMap[this.nodeDef.output.length] = {\n node,\n slot: outputId\n }\n this.nodeDef.output.push(def.output[outputId])\n this.nodeDef.output_is_list.push(def.output_is_list[outputId])\n\n let label = customConfig?.name\n if (!label) {\n label = def.output_name?.[outputId] ?? def.output[outputId]\n const output = node.outputs.find((o) => o.name === label)\n if (output?.label) {\n label = output.label\n }\n }\n\n let name = label\n if (name in seenOutputs) {\n const prefix = `${node.title ?? node.type} `\n name = `${prefix}${label}`\n if (name in seenOutputs) {\n name = `${prefix}${node.index} ${label}`\n }\n }\n seenOutputs[name] = 1\n\n this.nodeDef.output_name.push(name)\n }\n }\n\n static async registerFromWorkflow(groupNodes, missingNodeTypes) {\n for (const g in groupNodes) {\n const groupData = groupNodes[g]\n\n let hasMissing = false\n for (const n of groupData.nodes) {\n // Find missing node types\n if (!(n.type in LiteGraph.registered_node_types)) {\n missingNodeTypes.push({\n type: n.type,\n hint: ` (In group node '${PREFIX}${SEPARATOR}${g}')`\n })\n\n missingNodeTypes.push({\n type: `${PREFIX}${SEPARATOR}` + g,\n action: {\n text: 'Remove from workflow',\n callback: (e) => {\n delete groupNodes[g]\n e.target.textContent = 'Removed'\n e.target.style.pointerEvents = 'none'\n e.target.style.opacity = 0.7\n }\n }\n })\n\n hasMissing = true\n }\n }\n\n if (hasMissing) continue\n\n const config = new GroupNodeConfig(g, groupData)\n await config.registerType()\n }\n }\n}\n\nexport class GroupNodeHandler {\n node: LGraphNode\n groupData\n innerNodes: any\n\n constructor(node: LGraphNode) {\n this.node = node\n this.groupData = node.constructor?.nodeData?.[GROUP]\n\n this.node.setInnerNodes = (innerNodes) => {\n this.innerNodes = innerNodes\n\n for (\n let innerNodeIndex = 0;\n innerNodeIndex < this.innerNodes.length;\n innerNodeIndex++\n ) {\n const innerNode = this.innerNodes[innerNodeIndex]\n\n for (const w of innerNode.widgets ?? []) {\n if (w.type === 'converted-widget') {\n w.serializeValue = w.origSerializeValue\n }\n }\n\n innerNode.index = innerNodeIndex\n innerNode.getInputNode = (slot) => {\n // Check if this input is internal or external\n const externalSlot =\n this.groupData.oldToNewInputMap[innerNode.index]?.[slot]\n if (externalSlot != null) {\n return this.node.getInputNode(externalSlot)\n }\n\n // Internal link\n const innerLink = this.groupData.linksTo[innerNode.index]?.[slot]\n if (!innerLink) return null\n\n const inputNode = innerNodes[innerLink[0]]\n // Primitives will already apply their values\n if (inputNode.type === 'PrimitiveNode') return null\n\n return inputNode\n }\n\n innerNode.getInputLink = (slot) => {\n const externalSlot =\n this.groupData.oldToNewInputMap[innerNode.index]?.[slot]\n if (externalSlot != null) {\n // The inner node is connected via the group node inputs\n const linkId = this.node.inputs[externalSlot].link\n let link = app.graph.links[linkId]\n\n // Use the outer link, but update the target to the inner node\n // @ts-expect-error\n // TODO: Fix this\n link = {\n ...link,\n target_id: innerNode.id,\n target_slot: +slot\n }\n return link\n }\n\n let link = this.groupData.linksTo[innerNode.index]?.[slot]\n if (!link) return null\n // Use the inner link, but update the origin node to be inner node id\n link = {\n origin_id: innerNodes[link[0]].id,\n origin_slot: link[1],\n target_id: innerNode.id,\n target_slot: +slot\n }\n return link\n }\n }\n }\n\n this.node.updateLink = (link) => {\n // Replace the group node reference with the internal node\n // @ts-expect-error Can this be removed? Or replaced with: LLink.create(link.asSerialisable())\n link = { ...link }\n const output = this.groupData.newToOldOutputMap[link.origin_slot]\n let innerNode = this.innerNodes[output.node.index]\n let l\n while (innerNode?.type === 'Reroute') {\n l = innerNode.getInputLink(0)\n innerNode = innerNode.getInputNode(0)\n }\n\n if (!innerNode) {\n return null\n }\n\n if (l && GroupNodeHandler.isGroupNode(innerNode)) {\n return innerNode.updateLink(l)\n }\n\n link.origin_id = innerNode.id\n link.origin_slot = l?.origin_slot ?? output.slot\n return link\n }\n\n this.node.getInnerNodes = () => {\n if (!this.innerNodes) {\n this.node.setInnerNodes(\n this.groupData.nodeData.nodes.map((n, i) => {\n const innerNode = LiteGraph.createNode(n.type)\n innerNode.configure(n)\n innerNode.id = `${this.node.id}:${i}`\n return innerNode\n })\n )\n }\n\n this.updateInnerWidgets()\n\n return this.innerNodes\n }\n\n this.node.recreate = async () => {\n const id = this.node.id\n const sz = this.node.size\n const nodes = this.node.convertToNodes()\n\n const groupNode = LiteGraph.createNode(this.node.type)\n groupNode.id = id\n\n // Reuse the existing nodes for this instance\n groupNode.setInnerNodes(nodes)\n groupNode[GROUP].populateWidgets()\n app.graph.add(groupNode)\n groupNode.size = [\n Math.max(groupNode.size[0], sz[0]),\n Math.max(groupNode.size[1], sz[1])\n ]\n\n // Remove all converted nodes and relink them\n const builder = new GroupNodeBuilder(nodes)\n const nodeData = builder.getNodeData()\n groupNode[GROUP].groupData.nodeData.links = nodeData.links\n groupNode[GROUP].replaceNodes(nodes)\n return groupNode\n }\n\n this.node.convertToNodes = () => {\n const addInnerNodes = () => {\n // Clone the node data so we dont mutate it for other nodes\n const c = { ...this.groupData.nodeData }\n c.nodes = [...c.nodes]\n const innerNodes = this.node.getInnerNodes()\n let ids = []\n for (let i = 0; i < c.nodes.length; i++) {\n let id = innerNodes?.[i]?.id\n // Use existing IDs if they are set on the inner nodes\n if (id == null || isNaN(id)) {\n id = undefined\n } else {\n ids.push(id)\n }\n c.nodes[i] = { ...c.nodes[i], id }\n }\n deserialiseAndCreate(JSON.stringify(c), app.canvas)\n\n const [x, y] = this.node.pos\n let top\n let left\n // Configure nodes with current widget data\n const selectedIds = ids.length\n ? ids\n : Object.keys(app.canvas.selected_nodes)\n const newNodes = []\n for (let i = 0; i < selectedIds.length; i++) {\n const id = selectedIds[i]\n const newNode = app.graph.getNodeById(id)\n const innerNode = innerNodes[i]\n newNodes.push(newNode)\n\n if (left == null || newNode.pos[0] < left) {\n left = newNode.pos[0]\n }\n if (top == null || newNode.pos[1] < top) {\n top = newNode.pos[1]\n }\n\n if (!newNode.widgets) continue\n\n const map = this.groupData.oldToNewWidgetMap[innerNode.index]\n if (map) {\n const widgets = Object.keys(map)\n\n for (const oldName of widgets) {\n const newName = map[oldName]\n if (!newName) continue\n\n const widgetIndex = this.node.widgets.findIndex(\n (w) => w.name === newName\n )\n if (widgetIndex === -1) continue\n\n // Populate the main and any linked widgets\n if (innerNode.type === 'PrimitiveNode') {\n for (let i = 0; i < newNode.widgets.length; i++) {\n newNode.widgets[i].value =\n this.node.widgets[widgetIndex + i].value\n }\n } else {\n const outerWidget = this.node.widgets[widgetIndex]\n const newWidget = newNode.widgets.find(\n (w) => w.name === oldName\n )\n if (!newWidget) continue\n\n newWidget.value = outerWidget.value\n for (let w = 0; w < outerWidget.linkedWidgets?.length; w++) {\n newWidget.linkedWidgets[w].value =\n outerWidget.linkedWidgets[w].value\n }\n }\n }\n }\n }\n\n // Shift each node\n for (const newNode of newNodes) {\n newNode.pos[0] -= left - x\n newNode.pos[1] -= top - y\n }\n\n return { newNodes, selectedIds }\n }\n\n const reconnectInputs = (selectedIds) => {\n for (const innerNodeIndex in this.groupData.oldToNewInputMap) {\n const id = selectedIds[innerNodeIndex]\n const newNode = app.graph.getNodeById(id)\n const map = this.groupData.oldToNewInputMap[innerNodeIndex]\n for (const innerInputId in map) {\n const groupSlotId = map[innerInputId]\n if (groupSlotId == null) continue\n const slot = node.inputs[groupSlotId]\n if (slot.link == null) continue\n const link = app.graph.links[slot.link]\n if (!link) continue\n // connect this node output to the input of another node\n const originNode = app.graph.getNodeById(link.origin_id)\n originNode.connect(link.origin_slot, newNode, +innerInputId)\n }\n }\n }\n\n const reconnectOutputs = (selectedIds) => {\n for (\n let groupOutputId = 0;\n groupOutputId < node.outputs?.length;\n groupOutputId++\n ) {\n const output = node.outputs[groupOutputId]\n if (!output.links) continue\n const links = [...output.links]\n for (const l of links) {\n const slot = this.groupData.newToOldOutputMap[groupOutputId]\n const link = app.graph.links[l]\n const targetNode = app.graph.getNodeById(link.target_id)\n const newNode = app.graph.getNodeById(selectedIds[slot.node.index])\n newNode.connect(slot.slot, targetNode, link.target_slot)\n }\n }\n }\n\n app.canvas.emitBeforeChange()\n\n try {\n const { newNodes, selectedIds } = addInnerNodes()\n reconnectInputs(selectedIds)\n reconnectOutputs(selectedIds)\n app.graph.remove(this.node)\n\n return newNodes\n } finally {\n app.canvas.emitAfterChange()\n }\n }\n\n const getExtraMenuOptions = this.node.getExtraMenuOptions\n // @ts-expect-error Should pass patched return value getExtraMenuOptions\n this.node.getExtraMenuOptions = function (_, options) {\n getExtraMenuOptions?.apply(this, arguments)\n\n let optionIndex = options.findIndex((o) => o.content === 'Outputs')\n if (optionIndex === -1) optionIndex = options.length\n else optionIndex++\n options.splice(\n optionIndex,\n 0,\n null,\n {\n content: 'Convert to nodes',\n // @ts-expect-error\n callback: () => {\n return this.convertToNodes()\n }\n },\n {\n content: 'Manage Group Node',\n callback: () => manageGroupNodes(this.type)\n }\n )\n }\n\n // Draw custom collapse icon to identity this as a group\n const onDrawTitleBox = this.node.onDrawTitleBox\n this.node.onDrawTitleBox = function (ctx, height, size, scale) {\n onDrawTitleBox?.apply(this, arguments)\n\n const fill = ctx.fillStyle\n ctx.beginPath()\n ctx.rect(11, -height + 11, 2, 2)\n ctx.rect(14, -height + 11, 2, 2)\n ctx.rect(17, -height + 11, 2, 2)\n ctx.rect(11, -height + 14, 2, 2)\n ctx.rect(14, -height + 14, 2, 2)\n ctx.rect(17, -height + 14, 2, 2)\n ctx.rect(11, -height + 17, 2, 2)\n ctx.rect(14, -height + 17, 2, 2)\n ctx.rect(17, -height + 17, 2, 2)\n\n ctx.fillStyle = this.boxcolor || LiteGraph.NODE_DEFAULT_BOXCOLOR\n ctx.fill()\n ctx.fillStyle = fill\n }\n\n // Draw progress label\n const onDrawForeground = node.onDrawForeground\n const groupData = this.groupData.nodeData\n node.onDrawForeground = function (ctx) {\n const r = onDrawForeground?.apply?.(this, arguments)\n if (\n +app.runningNodeId === this.id &&\n this.runningInternalNodeId !== null\n ) {\n const n = groupData.nodes[this.runningInternalNodeId]\n if (!n) return\n const message = `Running ${n.title || n.type} (${this.runningInternalNodeId}/${groupData.nodes.length})`\n ctx.save()\n ctx.font = '12px sans-serif'\n const sz = ctx.measureText(message)\n ctx.fillStyle = node.boxcolor || LiteGraph.NODE_DEFAULT_BOXCOLOR\n ctx.beginPath()\n ctx.roundRect(\n 0,\n -LiteGraph.NODE_TITLE_HEIGHT - 20,\n sz.width + 12,\n 20,\n 5\n )\n ctx.fill()\n\n ctx.fillStyle = '#fff'\n ctx.fillText(message, 6, -LiteGraph.NODE_TITLE_HEIGHT - 6)\n ctx.restore()\n }\n }\n\n // Flag this node as needing to be reset\n const onExecutionStart = this.node.onExecutionStart\n this.node.onExecutionStart = function () {\n this.resetExecution = true\n return onExecutionStart?.apply(this, arguments)\n }\n\n const self = this\n const onNodeCreated = this.node.onNodeCreated\n this.node.onNodeCreated = function () {\n if (!this.widgets) {\n return\n }\n const config = self.groupData.nodeData.config\n if (config) {\n for (const n in config) {\n const inputs = config[n]?.input\n for (const w in inputs) {\n if (inputs[w].visible !== false) continue\n const widgetName = self.groupData.oldToNewWidgetMap[n][w]\n const widget = this.widgets.find((w) => w.name === widgetName)\n if (widget) {\n widget.type = 'hidden'\n widget.computeSize = () => [0, -4]\n }\n }\n }\n }\n\n return onNodeCreated?.apply(this, arguments)\n }\n\n function handleEvent(type, getId, getEvent) {\n const handler = ({ detail }) => {\n const id = getId(detail)\n if (!id) return\n const node = app.graph.getNodeById(id)\n if (node) return\n\n const innerNodeIndex = this.innerNodes?.findIndex((n) => n.id == id)\n if (innerNodeIndex > -1) {\n this.node.runningInternalNodeId = innerNodeIndex\n api.dispatchCustomEvent(\n type,\n getEvent(detail, `${this.node.id}`, this.node)\n )\n }\n }\n api.addEventListener(type, handler)\n return handler\n }\n\n const executing = handleEvent.call(\n this,\n 'executing',\n (d) => d,\n (d, id, node) => id\n )\n\n const executed = handleEvent.call(\n this,\n 'executed',\n (d) => d?.display_node || d?.node,\n (d, id, node) => ({\n ...d,\n node: id,\n display_node: id,\n merge: !node.resetExecution\n })\n )\n\n const onRemoved = node.onRemoved\n this.node.onRemoved = function () {\n onRemoved?.apply(this, arguments)\n api.removeEventListener('executing', executing)\n api.removeEventListener('executed', executed)\n }\n\n this.node.refreshComboInNode = (defs) => {\n // Update combo widget options\n for (const widgetName in this.groupData.newToOldWidgetMap) {\n const widget = this.node.widgets.find((w) => w.name === widgetName)\n if (widget?.type === 'combo') {\n const old = this.groupData.newToOldWidgetMap[widgetName]\n const def = defs[old.node.type]\n const input =\n def?.input?.required?.[old.inputName] ??\n def?.input?.optional?.[old.inputName]\n if (!input) continue\n\n widget.options.values = input[0]\n\n if (\n old.inputName !== 'image' &&\n // @ts-expect-error Widget values\n !widget.options.values.includes(widget.value)\n ) {\n widget.value = widget.options.values[0]\n widget.callback(widget.value)\n }\n }\n }\n }\n }\n\n updateInnerWidgets() {\n for (const newWidgetName in this.groupData.newToOldWidgetMap) {\n const newWidget = this.node.widgets.find((w) => w.name === newWidgetName)\n if (!newWidget) continue\n\n const newValue = newWidget.value\n const old = this.groupData.newToOldWidgetMap[newWidgetName]\n let innerNode = this.innerNodes[old.node.index]\n\n if (innerNode.type === 'PrimitiveNode') {\n innerNode.primitiveValue = newValue\n const primitiveLinked = this.groupData.primitiveToWidget[old.node.index]\n for (const linked of primitiveLinked ?? []) {\n const node = this.innerNodes[linked.nodeId]\n const widget = node.widgets.find((w) => w.name === linked.inputName)\n\n if (widget) {\n widget.value = newValue\n }\n }\n continue\n } else if (innerNode.type === 'Reroute') {\n const rerouteLinks = this.groupData.linksFrom[old.node.index]\n if (rerouteLinks) {\n for (const [_, , targetNodeId, targetSlot] of rerouteLinks['0']) {\n const node = this.innerNodes[targetNodeId]\n const input = node.inputs[targetSlot]\n if (input.widget) {\n const widget = node.widgets?.find(\n (w) => w.name === input.widget.name\n )\n if (widget) {\n widget.value = newValue\n }\n }\n }\n }\n }\n\n const widget = innerNode.widgets?.find((w) => w.name === old.inputName)\n if (widget) {\n widget.value = newValue\n }\n }\n }\n\n populatePrimitive(node, nodeId, oldName, i, linkedShift) {\n // Converted widget, populate primitive if linked\n const primitiveId = this.groupData.widgetToPrimitive[nodeId]?.[oldName]\n if (primitiveId == null) return\n const targetWidgetName =\n this.groupData.oldToNewWidgetMap[primitiveId]['value']\n const targetWidgetIndex = this.node.widgets.findIndex(\n (w) => w.name === targetWidgetName\n )\n if (targetWidgetIndex > -1) {\n const primitiveNode = this.innerNodes[primitiveId]\n let len = primitiveNode.widgets.length\n if (\n len - 1 !==\n this.node.widgets[targetWidgetIndex].linkedWidgets?.length\n ) {\n // Fallback handling for if some reason the primitive has a different number of widgets\n // we dont want to overwrite random widgets, better to leave blank\n len = 1\n }\n for (let i = 0; i < len; i++) {\n this.node.widgets[targetWidgetIndex + i].value =\n primitiveNode.widgets[i].value\n }\n }\n return true\n }\n\n populateReroute(node, nodeId, map) {\n if (node.type !== 'Reroute') return\n\n const link = this.groupData.linksFrom[nodeId]?.[0]?.[0]\n if (!link) return\n const [, , targetNodeId, targetNodeSlot] = link\n const targetNode = this.groupData.nodeData.nodes[targetNodeId]\n const inputs = targetNode.inputs\n const targetWidget = inputs?.[targetNodeSlot]?.widget\n if (!targetWidget) return\n\n const offset = inputs.length - (targetNode.widgets_values?.length ?? 0)\n const v = targetNode.widgets_values?.[targetNodeSlot - offset]\n if (v == null) return\n\n const widgetName = Object.values(map)[0]\n const widget = this.node.widgets.find((w) => w.name === widgetName)\n if (widget) {\n widget.value = v\n }\n }\n\n populateWidgets() {\n if (!this.node.widgets) return\n\n for (\n let nodeId = 0;\n nodeId < this.groupData.nodeData.nodes.length;\n nodeId++\n ) {\n const node = this.groupData.nodeData.nodes[nodeId]\n const map = this.groupData.oldToNewWidgetMap[nodeId] ?? {}\n const widgets = Object.keys(map)\n\n if (!node.widgets_values?.length) {\n // special handling for populating values into reroutes\n // this allows primitives connect to them to pick up the correct value\n this.populateReroute(node, nodeId, map)\n continue\n }\n\n let linkedShift = 0\n for (let i = 0; i < widgets.length; i++) {\n const oldName = widgets[i]\n const newName = map[oldName]\n const widgetIndex = this.node.widgets.findIndex(\n (w) => w.name === newName\n )\n const mainWidget = this.node.widgets[widgetIndex]\n if (\n this.populatePrimitive(node, nodeId, oldName, i, linkedShift) ||\n widgetIndex === -1\n ) {\n // Find the inner widget and shift by the number of linked widgets as they will have been removed too\n const innerWidget = this.innerNodes[nodeId].widgets?.find(\n (w) => w.name === oldName\n )\n linkedShift += innerWidget?.linkedWidgets?.length ?? 0\n }\n if (widgetIndex === -1) {\n continue\n }\n\n // Populate the main and any linked widget\n mainWidget.value = node.widgets_values[i + linkedShift]\n for (let w = 0; w < mainWidget.linkedWidgets?.length; w++) {\n this.node.widgets[widgetIndex + w + 1].value =\n node.widgets_values[i + ++linkedShift]\n }\n }\n }\n }\n\n replaceNodes(nodes) {\n let top\n let left\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i]\n if (left == null || node.pos[0] < left) {\n left = node.pos[0]\n }\n if (top == null || node.pos[1] < top) {\n top = node.pos[1]\n }\n\n this.linkOutputs(node, i)\n app.graph.remove(node)\n }\n\n this.linkInputs()\n this.node.pos = [left, top]\n }\n\n linkOutputs(originalNode, nodeId) {\n if (!originalNode.outputs) return\n\n for (const output of originalNode.outputs) {\n if (!output.links) continue\n // Clone the links as they'll be changed if we reconnect\n const links = [...output.links]\n for (const l of links) {\n const link = app.graph.links[l]\n if (!link) continue\n\n const targetNode = app.graph.getNodeById(link.target_id)\n const newSlot =\n this.groupData.oldToNewOutputMap[nodeId]?.[link.origin_slot]\n if (newSlot != null) {\n this.node.connect(newSlot, targetNode, link.target_slot)\n }\n }\n }\n }\n\n linkInputs() {\n for (const link of this.groupData.nodeData.links ?? []) {\n const [, originSlot, targetId, targetSlot, actualOriginId] = link\n const originNode = app.graph.getNodeById(actualOriginId)\n if (!originNode) continue // this node is in the group\n originNode.connect(\n originSlot,\n // @ts-expect-error Valid - uses deprecated interface. Required check: if (graph.getNodeById(this.node.id) !== this.node) report()\n this.node.id,\n this.groupData.oldToNewInputMap[targetId][targetSlot]\n )\n }\n }\n\n static getGroupData(node) {\n return (node.nodeData ?? node.constructor?.nodeData)?.[GROUP]\n }\n\n static isGroupNode(node: LGraphNode) {\n return !!node.constructor?.nodeData?.[GROUP]\n }\n\n static async fromNodes(nodes: LGraphNode[]) {\n // Process the nodes into the stored workflow group node data\n const builder = new GroupNodeBuilder(nodes)\n const res = await builder.build()\n if (!res) return\n\n const { name, nodeData } = res\n\n // Convert this data into a LG node definition and register it\n const config = new GroupNodeConfig(name, nodeData)\n await config.registerType()\n\n const groupNode = LiteGraph.createNode(`${PREFIX}${SEPARATOR}${name}`)\n // Reuse the existing nodes for this instance\n groupNode.setInnerNodes(builder.nodes)\n groupNode[GROUP].populateWidgets()\n app.graph.add(groupNode)\n\n // Remove all converted nodes and relink them\n groupNode[GROUP].replaceNodes(builder.nodes)\n return groupNode\n }\n}\n\nfunction addConvertToGroupOptions() {\n function addConvertOption(options, index) {\n const selected = Object.values(app.canvas.selected_nodes ?? {})\n const disabled =\n selected.length < 2 ||\n selected.find((n) => GroupNodeHandler.isGroupNode(n))\n options.splice(index + 1, null, {\n content: `Convert to Group Node`,\n disabled,\n callback: convertSelectedNodesToGroupNode\n })\n }\n\n function addManageOption(options, index) {\n const groups = app.graph.extra?.groupNodes\n const disabled = !groups || !Object.keys(groups).length\n options.splice(index + 1, null, {\n content: `Manage Group Nodes`,\n disabled,\n callback: manageGroupNodes\n })\n }\n\n // Add to canvas\n const getCanvasMenuOptions = LGraphCanvas.prototype.getCanvasMenuOptions\n LGraphCanvas.prototype.getCanvasMenuOptions = function () {\n const options = getCanvasMenuOptions.apply(this, arguments)\n const index =\n options.findIndex((o) => o?.content === 'Add Group') + 1 || options.length\n addConvertOption(options, index)\n addManageOption(options, index + 1)\n return options\n }\n\n // Add to nodes\n const getNodeMenuOptions = LGraphCanvas.prototype.getNodeMenuOptions\n LGraphCanvas.prototype.getNodeMenuOptions = function (node) {\n const options = getNodeMenuOptions.apply(this, arguments)\n if (!GroupNodeHandler.isGroupNode(node)) {\n const index =\n options.findIndex((o) => o?.content === 'Outputs') + 1 ||\n options.length - 1\n addConvertOption(options, index)\n }\n return options\n }\n}\n\nconst replaceLegacySeparators = (nodes: ComfyNode[]): void => {\n for (const node of nodes) {\n if (typeof node.type === 'string' && node.type.startsWith('workflow/')) {\n node.type = node.type.replace(/^workflow\\//, `${PREFIX}${SEPARATOR}`)\n }\n }\n}\n\n/**\n * Convert selected nodes to a group node\n * @throws {Error} if no nodes are selected\n * @throws {Error} if a group node is already selected\n * @throws {Error} if a group node is selected\n *\n * The context menu item should not be available if any of the above conditions are met.\n * The error is automatically handled by the commandStore when the command is executed.\n */\nasync function convertSelectedNodesToGroupNode() {\n const nodes = Object.values(app.canvas.selected_nodes ?? {})\n if (nodes.length === 0) {\n throw new Error('No nodes selected')\n }\n if (nodes.length === 1) {\n throw new Error('Please select multiple nodes to convert to group node')\n }\n if (nodes.some((n) => GroupNodeHandler.isGroupNode(n))) {\n throw new Error('Selected nodes contain a group node')\n }\n return await GroupNodeHandler.fromNodes(nodes)\n}\n\nfunction ungroupSelectedGroupNodes() {\n const nodes = Object.values(app.canvas.selected_nodes ?? {})\n for (const node of nodes) {\n if (GroupNodeHandler.isGroupNode(node)) {\n node.convertToNodes?.()\n }\n }\n}\n\nfunction manageGroupNodes(type?: string) {\n new ManageGroupDialog(app).show(type)\n}\n\nconst id = 'Comfy.GroupNode'\nlet globalDefs\nconst ext: ComfyExtension = {\n name: id,\n commands: [\n {\n id: 'Comfy.GroupNode.ConvertSelectedNodesToGroupNode',\n label: 'Convert selected nodes to group node',\n icon: 'pi pi-sitemap',\n versionAdded: '1.3.17',\n function: convertSelectedNodesToGroupNode\n },\n {\n id: 'Comfy.GroupNode.UngroupSelectedGroupNodes',\n label: 'Ungroup selected group nodes',\n icon: 'pi pi-sitemap',\n versionAdded: '1.3.17',\n function: ungroupSelectedGroupNodes\n },\n {\n id: 'Comfy.GroupNode.ManageGroupNodes',\n label: 'Manage group nodes',\n icon: 'pi pi-cog',\n versionAdded: '1.3.17',\n function: manageGroupNodes\n }\n ],\n keybindings: [\n {\n commandId: 'Comfy.GroupNode.ConvertSelectedNodesToGroupNode',\n combo: {\n alt: true,\n key: 'g'\n }\n },\n {\n commandId: 'Comfy.GroupNode.UngroupSelectedGroupNodes',\n combo: {\n alt: true,\n shift: true,\n key: 'G'\n }\n }\n ],\n setup() {\n addConvertToGroupOptions()\n },\n async beforeConfigureGraph(\n graphData: ComfyWorkflowJSON,\n missingNodeTypes: string[]\n ) {\n const nodes = graphData?.extra?.groupNodes\n if (nodes) {\n replaceLegacySeparators(graphData.nodes)\n await GroupNodeConfig.registerFromWorkflow(nodes, missingNodeTypes)\n }\n },\n addCustomNodeDefs(defs) {\n // Store this so we can mutate it later with group nodes\n globalDefs = defs\n },\n nodeCreated(node) {\n if (GroupNodeHandler.isGroupNode(node)) {\n node[GROUP] = new GroupNodeHandler(node)\n\n // Ensure group nodes pasted from other workflows are stored\n if (node.title && node[GROUP]?.groupData?.nodeData) {\n Workflow.storeGroupNode(node.title, node[GROUP].groupData.nodeData)\n }\n }\n },\n async refreshComboInNodes(defs) {\n // Re-register group nodes so new ones are created with the correct options\n Object.assign(globalDefs, defs)\n const nodes = app.graph.extra?.groupNodes\n if (nodes) {\n await GroupNodeConfig.registerFromWorkflow(nodes, {})\n }\n }\n}\n\napp.registerExtension(ext)\n","// @ts-strict-ignore\nimport { LGraphGroup } from '@comfyorg/litegraph'\nimport { app } from '../../scripts/app'\nimport { LGraphCanvas } from '@comfyorg/litegraph'\nimport type { Positionable } from '@comfyorg/litegraph/dist/interfaces'\nimport type { LGraphNode } from '@comfyorg/litegraph'\nimport { useSettingStore } from '@/stores/settingStore'\n\nfunction setNodeMode(node: LGraphNode, mode: number) {\n node.mode = mode\n node.graph?.change()\n}\n\nfunction addNodesToGroup(group: LGraphGroup, items: Iterable) {\n const padding = useSettingStore().get('Comfy.GroupSelectedNodes.Padding')\n group.resizeTo([...group.children, ...items], padding)\n}\n\napp.registerExtension({\n name: 'Comfy.GroupOptions',\n setup() {\n const orig = LGraphCanvas.prototype.getCanvasMenuOptions\n // graph_mouse\n LGraphCanvas.prototype.getCanvasMenuOptions = function (\n this: LGraphCanvas\n ) {\n const options = orig.apply(this, arguments)\n const group = this.graph.getGroupOnPos(\n this.graph_mouse[0],\n this.graph_mouse[1]\n )\n if (!group) {\n options.push({\n content: 'Add Group For Selected Nodes',\n disabled: !this.selectedItems?.size,\n callback: () => {\n const group = new LGraphGroup()\n addNodesToGroup(group, this.selectedItems)\n this.graph.add(group)\n this.graph.change()\n }\n })\n\n return options\n }\n\n // Group nodes aren't recomputed until the group is moved, this ensures the nodes are up-to-date\n group.recomputeInsideNodes()\n const nodesInGroup = group.nodes\n\n options.push({\n content: 'Add Selected Nodes To Group',\n disabled: !this.selectedItems?.size,\n callback: () => {\n addNodesToGroup(group, this.selectedItems)\n this.graph.change()\n }\n })\n\n // No nodes in group, return default options\n if (nodesInGroup.length === 0) {\n return options\n } else {\n // Add a separator between the default options and the group options\n options.push(null)\n }\n\n // Check if all nodes are the same mode\n let allNodesAreSameMode = true\n for (let i = 1; i < nodesInGroup.length; i++) {\n if (nodesInGroup[i].mode !== nodesInGroup[0].mode) {\n allNodesAreSameMode = false\n break\n }\n }\n\n options.push({\n content: 'Fit Group To Nodes',\n callback: () => {\n group.recomputeInsideNodes()\n const padding = useSettingStore().get(\n 'Comfy.GroupSelectedNodes.Padding'\n )\n group.resizeTo(group.children, padding)\n this.graph.change()\n }\n })\n\n options.push({\n content: 'Select Nodes',\n callback: () => {\n this.selectNodes(nodesInGroup)\n this.graph.change()\n this.canvas.focus()\n }\n })\n\n // Modes\n // 0: Always\n // 1: On Event\n // 2: Never\n // 3: On Trigger\n // 4: Bypass\n // If all nodes are the same mode, add a menu option to change the mode\n if (allNodesAreSameMode) {\n const mode = nodesInGroup[0].mode\n switch (mode) {\n case 0:\n // All nodes are always, option to disable, and bypass\n options.push({\n content: 'Set Group Nodes to Never',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 2)\n }\n }\n })\n options.push({\n content: 'Bypass Group Nodes',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 4)\n }\n }\n })\n break\n case 2:\n // All nodes are never, option to enable, and bypass\n options.push({\n content: 'Set Group Nodes to Always',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 0)\n }\n }\n })\n options.push({\n content: 'Bypass Group Nodes',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 4)\n }\n }\n })\n break\n case 4:\n // All nodes are bypass, option to enable, and disable\n options.push({\n content: 'Set Group Nodes to Always',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 0)\n }\n }\n })\n options.push({\n content: 'Set Group Nodes to Never',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 2)\n }\n }\n })\n break\n default:\n // All nodes are On Trigger or On Event(Or other?), option to disable, set to always, or bypass\n options.push({\n content: 'Set Group Nodes to Always',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 0)\n }\n }\n })\n options.push({\n content: 'Set Group Nodes to Never',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 2)\n }\n }\n })\n options.push({\n content: 'Bypass Group Nodes',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 4)\n }\n }\n })\n break\n }\n } else {\n // Nodes are not all the same mode, add a menu option to change the mode to always, never, or bypass\n options.push({\n content: 'Set Group Nodes to Always',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 0)\n }\n }\n })\n options.push({\n content: 'Set Group Nodes to Never',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 2)\n }\n }\n })\n options.push({\n content: 'Bypass Group Nodes',\n callback: () => {\n for (const node of nodesInGroup) {\n setNodeMode(node, 4)\n }\n }\n })\n }\n\n return options\n }\n }\n})\n","// @ts-strict-ignore\nimport { LiteGraph } from '@comfyorg/litegraph'\nimport { app } from '../../scripts/app'\n\n// Inverts the scrolling of context menus\n\nconst id = 'Comfy.InvertMenuScrolling'\napp.registerExtension({\n name: id,\n init() {\n const ctxMenu = LiteGraph.ContextMenu\n const replace = () => {\n // @ts-expect-error\n LiteGraph.ContextMenu = function (values, options) {\n options = options || {}\n if (options.scroll_speed) {\n options.scroll_speed *= -1\n } else {\n options.scroll_speed = -0.1\n }\n return ctxMenu.call(this, values, options)\n }\n LiteGraph.ContextMenu.prototype = ctxMenu.prototype\n }\n app.ui.settings.addSetting({\n id,\n category: ['LiteGraph', 'Menu', 'InvertMenuScrolling'],\n name: 'Invert Context Menu Scrolling',\n type: 'boolean',\n defaultValue: false,\n onChange(value) {\n if (value) {\n replace()\n } else {\n LiteGraph.ContextMenu = ctxMenu\n }\n }\n })\n }\n})\n","import { app } from '../../scripts/app'\nimport { KeyComboImpl, useKeybindingStore } from '@/stores/keybindingStore'\nimport { useCommandStore } from '@/stores/commandStore'\n\napp.registerExtension({\n name: 'Comfy.Keybinds',\n init() {\n const keybindListener = async function (event: KeyboardEvent) {\n // Ignore keybindings for legacy jest tests as jest tests don't have\n // a Vue app instance or pinia stores.\n if (!app.vueAppReady) return\n\n const keyCombo = KeyComboImpl.fromEvent(event)\n if (keyCombo.isModifier) {\n return\n }\n\n // Ignore non-modifier keybindings if typing in input fields\n const target = event.composedPath()[0] as HTMLElement\n if (\n !keyCombo.hasModifier &&\n (target.tagName === 'TEXTAREA' ||\n target.tagName === 'INPUT' ||\n (target.tagName === 'SPAN' &&\n target.classList.contains('property_value')))\n ) {\n return\n }\n\n const keybindingStore = useKeybindingStore()\n const commandStore = useCommandStore()\n const keybinding = keybindingStore.getKeybinding(keyCombo)\n if (keybinding && keybinding.targetSelector !== '#graph-canvas') {\n // Prevent default browser behavior first, then execute the command\n event.preventDefault()\n await commandStore.execute(keybinding.commandId)\n return\n }\n\n // Only clear dialogs if not using modifiers\n if (event.ctrlKey || event.altKey || event.metaKey) {\n return\n }\n\n // Escape key: close the first open modal found, and all dialogs\n if (event.key === 'Escape') {\n const modals = document.querySelectorAll('.comfy-modal')\n for (const modal of modals) {\n const modalDisplay = window\n .getComputedStyle(modal)\n .getPropertyValue('display')\n\n if (modalDisplay !== 'none') {\n modal.style.display = 'none'\n break\n }\n }\n\n for (const d of document.querySelectorAll('dialog')) d.close()\n }\n }\n\n window.addEventListener('keydown', keybindListener)\n }\n})\n","// @ts-strict-ignore\nimport { app } from '../../scripts/app'\nimport { ComfyDialog, $el } from '../../scripts/ui'\nimport { ComfyApp } from '../../scripts/app'\nimport { api } from '../../scripts/api'\nimport { ClipspaceDialog } from './clipspace'\n\n// Helper function to convert a data URL to a Blob object\nfunction dataURLToBlob(dataURL) {\n const parts = dataURL.split(';base64,')\n const contentType = parts[0].split(':')[1]\n const byteString = atob(parts[1])\n const arrayBuffer = new ArrayBuffer(byteString.length)\n const uint8Array = new Uint8Array(arrayBuffer)\n for (let i = 0; i < byteString.length; i++) {\n uint8Array[i] = byteString.charCodeAt(i)\n }\n return new Blob([arrayBuffer], { type: contentType })\n}\n\nfunction loadedImageToBlob(image) {\n const canvas = document.createElement('canvas')\n\n canvas.width = image.width\n canvas.height = image.height\n\n const ctx = canvas.getContext('2d')\n\n ctx.drawImage(image, 0, 0)\n\n const dataURL = canvas.toDataURL('image/png', 1)\n const blob = dataURLToBlob(dataURL)\n\n return blob\n}\n\nfunction loadImage(imagePath) {\n return new Promise((resolve, reject) => {\n const image = new Image()\n\n image.onload = function () {\n resolve(image)\n }\n\n image.src = imagePath\n })\n}\n\nasync function uploadMask(filepath, formData) {\n await api\n .fetchApi('/upload/mask', {\n method: 'POST',\n body: formData\n })\n .then((response) => {})\n .catch((error) => {\n console.error('Error:', error)\n })\n\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']] = new Image()\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src = api.apiURL(\n '/view?' +\n new URLSearchParams(filepath).toString() +\n app.getPreviewFormatParam() +\n app.getRandParam()\n )\n\n if (ComfyApp.clipspace.images)\n ComfyApp.clipspace.images[ComfyApp.clipspace['selectedIndex']] = filepath\n\n ClipspaceDialog.invalidatePreview()\n}\n\nfunction prepare_mask(image, maskCanvas, maskCtx, maskColor) {\n // paste mask data into alpha channel\n maskCtx.drawImage(image, 0, 0, maskCanvas.width, maskCanvas.height)\n const maskData = maskCtx.getImageData(\n 0,\n 0,\n maskCanvas.width,\n maskCanvas.height\n )\n\n // invert mask\n for (let i = 0; i < maskData.data.length; i += 4) {\n if (maskData.data[i + 3] == 255) maskData.data[i + 3] = 0\n else maskData.data[i + 3] = 255\n\n maskData.data[i] = maskColor.r\n maskData.data[i + 1] = maskColor.g\n maskData.data[i + 2] = maskColor.b\n }\n\n maskCtx.globalCompositeOperation = 'source-over'\n maskCtx.putImageData(maskData, 0, 0)\n}\n\n// Define the PointerType enum\nenum PointerType {\n Arc = 'arc',\n Rect = 'rect'\n}\n\nenum CompositionOperation {\n SourceOver = 'source-over',\n DestinationOut = 'destination-out'\n}\n\nexport class MaskEditorDialogOld extends ComfyDialog {\n static instance = null\n static mousedown_x: number | null = null\n static mousedown_y: number | null = null\n\n brush: HTMLDivElement\n maskCtx: any\n maskCanvas: HTMLCanvasElement\n brush_size_slider: HTMLDivElement\n brush_opacity_slider: HTMLDivElement\n colorButton: HTMLButtonElement\n saveButton: HTMLButtonElement\n zoom_ratio: number\n pan_x: number\n pan_y: number\n imgCanvas: HTMLCanvasElement\n last_display_style: string\n is_visible: boolean\n image: HTMLImageElement\n handler_registered: boolean\n brush_slider_input: HTMLInputElement\n cursorX: number\n cursorY: number\n mousedown_pan_x: number\n mousedown_pan_y: number\n last_pressure: number\n pointer_type: PointerType\n brush_pointer_type_select: HTMLDivElement\n\n static getInstance() {\n if (!MaskEditorDialogOld.instance) {\n MaskEditorDialogOld.instance = new MaskEditorDialogOld()\n }\n\n return MaskEditorDialogOld.instance\n }\n\n is_layout_created = false\n\n constructor() {\n super()\n this.element = $el('div.comfy-modal', { parent: document.body }, [\n $el('div.comfy-modal-content', [...this.createButtons()])\n ])\n }\n\n createButtons() {\n return []\n }\n\n createButton(name, callback): HTMLButtonElement {\n var button = document.createElement('button')\n button.style.pointerEvents = 'auto'\n button.innerText = name\n button.addEventListener('click', callback)\n return button\n }\n\n createLeftButton(name, callback) {\n var button = this.createButton(name, callback)\n button.style.cssFloat = 'left'\n button.style.marginRight = '4px'\n return button\n }\n\n createRightButton(name, callback) {\n var button = this.createButton(name, callback)\n button.style.cssFloat = 'right'\n button.style.marginLeft = '4px'\n return button\n }\n\n createLeftSlider(self, name, callback): HTMLDivElement {\n const divElement = document.createElement('div')\n divElement.id = 'maskeditor-slider'\n divElement.style.cssFloat = 'left'\n divElement.style.fontFamily = 'sans-serif'\n divElement.style.marginRight = '4px'\n divElement.style.color = 'var(--input-text)'\n divElement.style.backgroundColor = 'var(--comfy-input-bg)'\n divElement.style.borderRadius = '8px'\n divElement.style.borderColor = 'var(--border-color)'\n divElement.style.borderStyle = 'solid'\n divElement.style.fontSize = '15px'\n divElement.style.height = '25px'\n divElement.style.padding = '1px 6px'\n divElement.style.display = 'flex'\n divElement.style.position = 'relative'\n divElement.style.top = '2px'\n divElement.style.pointerEvents = 'auto'\n self.brush_slider_input = document.createElement('input')\n self.brush_slider_input.setAttribute('type', 'range')\n self.brush_slider_input.setAttribute('min', '1')\n self.brush_slider_input.setAttribute('max', '100')\n self.brush_slider_input.setAttribute('value', '10')\n const labelElement = document.createElement('label')\n labelElement.textContent = name\n\n divElement.appendChild(labelElement)\n divElement.appendChild(self.brush_slider_input)\n\n self.brush_slider_input.addEventListener('change', callback)\n\n return divElement\n }\n\n createOpacitySlider(self, name, callback): HTMLDivElement {\n const divElement = document.createElement('div')\n divElement.id = 'maskeditor-opacity-slider'\n divElement.style.cssFloat = 'left'\n divElement.style.fontFamily = 'sans-serif'\n divElement.style.marginRight = '4px'\n divElement.style.color = 'var(--input-text)'\n divElement.style.backgroundColor = 'var(--comfy-input-bg)'\n divElement.style.borderRadius = '8px'\n divElement.style.borderColor = 'var(--border-color)'\n divElement.style.borderStyle = 'solid'\n divElement.style.fontSize = '15px'\n divElement.style.height = '25px'\n divElement.style.padding = '1px 6px'\n divElement.style.display = 'flex'\n divElement.style.position = 'relative'\n divElement.style.top = '2px'\n divElement.style.pointerEvents = 'auto'\n self.opacity_slider_input = document.createElement('input')\n self.opacity_slider_input.setAttribute('type', 'range')\n self.opacity_slider_input.setAttribute('min', '0.1')\n self.opacity_slider_input.setAttribute('max', '1.0')\n self.opacity_slider_input.setAttribute('step', '0.01')\n self.opacity_slider_input.setAttribute('value', '0.7')\n const labelElement = document.createElement('label')\n labelElement.textContent = name\n\n divElement.appendChild(labelElement)\n divElement.appendChild(self.opacity_slider_input)\n\n self.opacity_slider_input.addEventListener('input', callback)\n\n return divElement\n }\n\n createPointerTypeSelect(self: any): HTMLDivElement {\n const divElement = document.createElement('div')\n divElement.id = 'maskeditor-pointer-type'\n divElement.style.cssFloat = 'left'\n divElement.style.fontFamily = 'sans-serif'\n divElement.style.marginRight = '4px'\n divElement.style.color = 'var(--input-text)'\n divElement.style.backgroundColor = 'var(--comfy-input-bg)'\n divElement.style.borderRadius = '8px'\n divElement.style.borderColor = 'var(--border-color)'\n divElement.style.borderStyle = 'solid'\n divElement.style.fontSize = '15px'\n divElement.style.height = '25px'\n divElement.style.padding = '1px 6px'\n divElement.style.display = 'flex'\n divElement.style.position = 'relative'\n divElement.style.top = '2px'\n divElement.style.pointerEvents = 'auto'\n\n const labelElement = document.createElement('label')\n labelElement.textContent = 'Pointer Type:'\n\n const selectElement = document.createElement('select')\n selectElement.style.borderRadius = '0'\n selectElement.style.borderColor = 'transparent'\n selectElement.style.borderStyle = 'unset'\n selectElement.style.fontSize = '0.9em'\n\n const optionArc = document.createElement('option')\n optionArc.value = 'arc'\n optionArc.text = 'Circle'\n optionArc.selected = true // Fix for TypeScript, \"selected\" should be boolean\n\n const optionRect = document.createElement('option')\n optionRect.value = 'rect'\n optionRect.text = 'Square'\n\n selectElement.appendChild(optionArc)\n selectElement.appendChild(optionRect)\n\n selectElement.addEventListener('change', (event: Event) => {\n const target = event.target as HTMLSelectElement\n self.pointer_type = target.value\n this.setBrushBorderRadius(self)\n })\n\n divElement.appendChild(labelElement)\n divElement.appendChild(selectElement)\n\n return divElement\n }\n\n setBrushBorderRadius(self: any): void {\n if (self.pointer_type === PointerType.Rect) {\n this.brush.style.borderRadius = '0%'\n // @ts-expect-error\n this.brush.style.MozBorderRadius = '0%'\n // @ts-expect-error\n this.brush.style.WebkitBorderRadius = '0%'\n } else {\n this.brush.style.borderRadius = '50%'\n // @ts-expect-error\n this.brush.style.MozBorderRadius = '50%'\n // @ts-expect-error\n this.brush.style.WebkitBorderRadius = '50%'\n }\n }\n\n setlayout(imgCanvas: HTMLCanvasElement, maskCanvas: HTMLCanvasElement) {\n const self = this\n self.pointer_type = PointerType.Arc\n\n // If it is specified as relative, using it only as a hidden placeholder for padding is recommended\n // to prevent anomalies where it exceeds a certain size and goes outside of the window.\n var bottom_panel = document.createElement('div')\n bottom_panel.style.position = 'absolute'\n bottom_panel.style.bottom = '0px'\n bottom_panel.style.left = '20px'\n bottom_panel.style.right = '20px'\n bottom_panel.style.height = '50px'\n bottom_panel.style.pointerEvents = 'none'\n\n var brush = document.createElement('div')\n brush.id = 'brush'\n brush.style.backgroundColor = 'transparent'\n brush.style.outline = '1px dashed black'\n brush.style.boxShadow = '0 0 0 1px white'\n brush.style.position = 'absolute'\n brush.style.zIndex = '8889'\n brush.style.pointerEvents = 'none'\n this.brush = brush\n this.setBrushBorderRadius(self)\n this.element.appendChild(imgCanvas)\n this.element.appendChild(maskCanvas)\n this.element.appendChild(bottom_panel)\n document.body.appendChild(brush)\n\n var clearButton = this.createLeftButton('Clear', () => {\n self.maskCtx.clearRect(\n 0,\n 0,\n self.maskCanvas.width,\n self.maskCanvas.height\n )\n })\n\n this.brush_size_slider = this.createLeftSlider(\n self,\n 'Thickness',\n (event) => {\n self.brush_size = event.target.value\n self.updateBrushPreview(self)\n }\n )\n\n this.brush_opacity_slider = this.createOpacitySlider(\n self,\n 'Opacity',\n (event) => {\n self.brush_opacity = event.target.value\n if (self.brush_color_mode !== 'negative') {\n self.maskCanvas.style.opacity = self.brush_opacity.toString()\n }\n }\n )\n\n this.brush_pointer_type_select = this.createPointerTypeSelect(self)\n this.colorButton = this.createLeftButton(this.getColorButtonText(), () => {\n if (self.brush_color_mode === 'black') {\n self.brush_color_mode = 'white'\n } else if (self.brush_color_mode === 'white') {\n self.brush_color_mode = 'negative'\n } else {\n self.brush_color_mode = 'black'\n }\n\n self.updateWhenBrushColorModeChanged()\n })\n\n var cancelButton = this.createRightButton('Cancel', () => {\n document.removeEventListener('keydown', MaskEditorDialogOld.handleKeyDown)\n self.close()\n })\n\n this.saveButton = this.createRightButton('Save', () => {\n document.removeEventListener('keydown', MaskEditorDialogOld.handleKeyDown)\n self.save()\n })\n\n this.element.appendChild(imgCanvas)\n this.element.appendChild(maskCanvas)\n this.element.appendChild(bottom_panel)\n\n bottom_panel.appendChild(clearButton)\n bottom_panel.appendChild(this.saveButton)\n bottom_panel.appendChild(cancelButton)\n bottom_panel.appendChild(this.brush_size_slider)\n bottom_panel.appendChild(this.brush_opacity_slider)\n bottom_panel.appendChild(this.brush_pointer_type_select)\n bottom_panel.appendChild(this.colorButton)\n\n imgCanvas.style.position = 'absolute'\n maskCanvas.style.position = 'absolute'\n\n imgCanvas.style.top = '200'\n imgCanvas.style.left = '0'\n\n maskCanvas.style.top = imgCanvas.style.top\n maskCanvas.style.left = imgCanvas.style.left\n\n const maskCanvasStyle = this.getMaskCanvasStyle()\n maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode\n maskCanvas.style.opacity = maskCanvasStyle.opacity.toString()\n }\n\n async show() {\n this.zoom_ratio = 1.0\n this.pan_x = 0\n this.pan_y = 0\n\n if (!this.is_layout_created) {\n // layout\n const imgCanvas = document.createElement('canvas')\n const maskCanvas = document.createElement('canvas')\n\n imgCanvas.id = 'imageCanvas'\n maskCanvas.id = 'maskCanvas'\n\n this.setlayout(imgCanvas, maskCanvas)\n\n // prepare content\n this.imgCanvas = imgCanvas\n this.maskCanvas = maskCanvas\n this.maskCtx = maskCanvas.getContext('2d', { willReadFrequently: true })\n\n this.setEventHandler(maskCanvas)\n\n this.is_layout_created = true\n\n // replacement of onClose hook since close is not real close\n const self = this\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (\n mutation.type === 'attributes' &&\n mutation.attributeName === 'style'\n ) {\n if (\n self.last_display_style &&\n self.last_display_style != 'none' &&\n self.element.style.display == 'none'\n ) {\n self.brush.style.display = 'none'\n ComfyApp.onClipspaceEditorClosed()\n }\n\n self.last_display_style = self.element.style.display\n }\n })\n })\n\n const config = { attributes: true }\n observer.observe(this.element, config)\n }\n\n // The keydown event needs to be reconfigured when closing the dialog as it gets removed.\n document.addEventListener('keydown', MaskEditorDialogOld.handleKeyDown)\n\n if (ComfyApp.clipspace_return_node) {\n this.saveButton.innerText = 'Save to node'\n } else {\n this.saveButton.innerText = 'Save'\n }\n this.saveButton.disabled = false\n\n this.element.style.display = 'block'\n this.element.style.width = '85%'\n this.element.style.margin = '0 7.5%'\n this.element.style.height = '100vh'\n this.element.style.top = '50%'\n this.element.style.left = '42%'\n this.element.style.zIndex = '8888' // NOTE: alert dialog must be high priority.\n\n await this.setImages(this.imgCanvas)\n\n this.is_visible = true\n }\n\n isOpened() {\n return this.element.style.display == 'block'\n }\n\n invalidateCanvas(orig_image, mask_image) {\n this.imgCanvas.width = orig_image.width\n this.imgCanvas.height = orig_image.height\n\n this.maskCanvas.width = orig_image.width\n this.maskCanvas.height = orig_image.height\n\n let imgCtx = this.imgCanvas.getContext('2d', { willReadFrequently: true })\n let maskCtx = this.maskCanvas.getContext('2d', {\n willReadFrequently: true\n })\n\n imgCtx.drawImage(orig_image, 0, 0, orig_image.width, orig_image.height)\n prepare_mask(mask_image, this.maskCanvas, maskCtx, this.getMaskColor())\n }\n\n async setImages(imgCanvas) {\n let self = this\n\n const imgCtx = imgCanvas.getContext('2d', { willReadFrequently: true })\n const maskCtx = this.maskCtx\n const maskCanvas = this.maskCanvas\n\n imgCtx.clearRect(0, 0, this.imgCanvas.width, this.imgCanvas.height)\n maskCtx.clearRect(0, 0, this.maskCanvas.width, this.maskCanvas.height)\n\n // image load\n const filepath = ComfyApp.clipspace.images\n\n const alpha_url = new URL(\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n )\n alpha_url.searchParams.delete('channel')\n alpha_url.searchParams.delete('preview')\n alpha_url.searchParams.set('channel', 'a')\n let mask_image = await loadImage(alpha_url)\n\n // original image load\n const rgb_url = new URL(\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n )\n rgb_url.searchParams.delete('channel')\n rgb_url.searchParams.set('channel', 'rgb')\n this.image = new Image()\n this.image.onload = function () {\n maskCanvas.width = self.image.width\n maskCanvas.height = self.image.height\n\n self.invalidateCanvas(self.image, mask_image)\n self.initializeCanvasPanZoom()\n }\n this.image.src = rgb_url.toString()\n }\n\n initializeCanvasPanZoom() {\n // set initialize\n let drawWidth = this.image.width\n let drawHeight = this.image.height\n\n let width = this.element.clientWidth\n let height = this.element.clientHeight\n\n if (this.image.width > width) {\n drawWidth = width\n drawHeight = (drawWidth / this.image.width) * this.image.height\n }\n\n if (drawHeight > height) {\n drawHeight = height\n drawWidth = (drawHeight / this.image.height) * this.image.width\n }\n\n this.zoom_ratio = drawWidth / this.image.width\n\n const canvasX = (width - drawWidth) / 2\n const canvasY = (height - drawHeight) / 2\n this.pan_x = canvasX\n this.pan_y = canvasY\n\n this.invalidatePanZoom()\n }\n\n invalidatePanZoom() {\n let raw_width = this.image.width * this.zoom_ratio\n let raw_height = this.image.height * this.zoom_ratio\n\n if (this.pan_x + raw_width < 10) {\n this.pan_x = 10 - raw_width\n }\n\n if (this.pan_y + raw_height < 10) {\n this.pan_y = 10 - raw_height\n }\n\n let width = `${raw_width}px`\n let height = `${raw_height}px`\n\n let left = `${this.pan_x}px`\n let top = `${this.pan_y}px`\n\n this.maskCanvas.style.width = width\n this.maskCanvas.style.height = height\n this.maskCanvas.style.left = left\n this.maskCanvas.style.top = top\n\n this.imgCanvas.style.width = width\n this.imgCanvas.style.height = height\n this.imgCanvas.style.left = left\n this.imgCanvas.style.top = top\n }\n\n setEventHandler(maskCanvas) {\n const self = this\n\n if (!this.handler_registered) {\n maskCanvas.addEventListener('contextmenu', (event) => {\n event.preventDefault()\n })\n\n this.element.addEventListener('wheel', (event) =>\n this.handleWheelEvent(self, event)\n )\n this.element.addEventListener('pointermove', (event) =>\n this.pointMoveEvent(self, event)\n )\n this.element.addEventListener('touchmove', (event) =>\n this.pointMoveEvent(self, event)\n )\n\n this.element.addEventListener('dragstart', (event) => {\n if (event.ctrlKey) {\n event.preventDefault()\n }\n })\n\n maskCanvas.addEventListener('pointerdown', (event) =>\n this.handlePointerDown(self, event)\n )\n maskCanvas.addEventListener('pointermove', (event) =>\n this.draw_move(self, event)\n )\n maskCanvas.addEventListener('touchmove', (event) =>\n this.draw_move(self, event)\n )\n maskCanvas.addEventListener('pointerover', (event) => {\n this.brush.style.display = 'block'\n })\n maskCanvas.addEventListener('pointerleave', (event) => {\n this.brush.style.display = 'none'\n })\n\n document.addEventListener(\n 'pointerup',\n MaskEditorDialogOld.handlePointerUp\n )\n\n this.handler_registered = true\n }\n }\n\n getMaskCanvasStyle() {\n if (this.brush_color_mode === 'negative') {\n return {\n mixBlendMode: 'difference',\n opacity: '1'\n }\n } else {\n return {\n mixBlendMode: 'initial',\n opacity: this.brush_opacity\n }\n }\n }\n\n getMaskColor() {\n if (this.brush_color_mode === 'black') {\n return { r: 0, g: 0, b: 0 }\n }\n if (this.brush_color_mode === 'white') {\n return { r: 255, g: 255, b: 255 }\n }\n if (this.brush_color_mode === 'negative') {\n // negative effect only works with white color\n return { r: 255, g: 255, b: 255 }\n }\n\n return { r: 0, g: 0, b: 0 }\n }\n\n getMaskFillStyle() {\n const maskColor = this.getMaskColor()\n\n return 'rgb(' + maskColor.r + ',' + maskColor.g + ',' + maskColor.b + ')'\n }\n\n getColorButtonText() {\n let colorCaption = 'unknown'\n\n if (this.brush_color_mode === 'black') {\n colorCaption = 'black'\n } else if (this.brush_color_mode === 'white') {\n colorCaption = 'white'\n } else if (this.brush_color_mode === 'negative') {\n colorCaption = 'negative'\n }\n\n return 'Color: ' + colorCaption\n }\n\n updateWhenBrushColorModeChanged() {\n this.colorButton.innerText = this.getColorButtonText()\n\n // update mask canvas css styles\n\n const maskCanvasStyle = this.getMaskCanvasStyle()\n this.maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode\n this.maskCanvas.style.opacity = maskCanvasStyle.opacity.toString()\n\n // update mask canvas rgb colors\n\n const maskColor = this.getMaskColor()\n\n const maskData = this.maskCtx.getImageData(\n 0,\n 0,\n this.maskCanvas.width,\n this.maskCanvas.height\n )\n\n for (let i = 0; i < maskData.data.length; i += 4) {\n maskData.data[i] = maskColor.r\n maskData.data[i + 1] = maskColor.g\n maskData.data[i + 2] = maskColor.b\n }\n\n this.maskCtx.putImageData(maskData, 0, 0)\n }\n\n brush_opacity = 0.7\n brush_size = 10\n brush_color_mode = 'black'\n drawing_mode = false\n lastx = -1\n lasty = -1\n lasttime = 0\n\n static handleKeyDown(event) {\n const self = MaskEditorDialogOld.instance\n if (event.key === ']') {\n self.brush_size = Math.min(self.brush_size + 2, 100)\n self.brush_slider_input.value = self.brush_size\n } else if (event.key === '[') {\n self.brush_size = Math.max(self.brush_size - 2, 1)\n self.brush_slider_input.value = self.brush_size\n } else if (event.key === 'Enter') {\n self.save()\n }\n\n self.updateBrushPreview(self)\n }\n\n static handlePointerUp(event) {\n event.preventDefault()\n\n this.mousedown_x = null\n this.mousedown_y = null\n\n MaskEditorDialogOld.instance.drawing_mode = false\n }\n\n updateBrushPreview(self) {\n const brush = self.brush\n\n var centerX = self.cursorX\n var centerY = self.cursorY\n\n brush.style.width = self.brush_size * 2 * this.zoom_ratio + 'px'\n brush.style.height = self.brush_size * 2 * this.zoom_ratio + 'px'\n brush.style.left = centerX - self.brush_size * this.zoom_ratio + 'px'\n brush.style.top = centerY - self.brush_size * this.zoom_ratio + 'px'\n }\n\n handleWheelEvent(self, event) {\n event.preventDefault()\n\n if (event.ctrlKey) {\n // zoom canvas\n if (event.deltaY < 0) {\n this.zoom_ratio = Math.min(10.0, this.zoom_ratio + 0.2)\n } else {\n this.zoom_ratio = Math.max(0.2, this.zoom_ratio - 0.2)\n }\n\n this.invalidatePanZoom()\n } else {\n // adjust brush size\n if (event.deltaY < 0) this.brush_size = Math.min(this.brush_size + 2, 100)\n else this.brush_size = Math.max(this.brush_size - 2, 1)\n\n this.brush_slider_input.value = this.brush_size.toString()\n\n this.updateBrushPreview(this)\n }\n }\n\n pointMoveEvent(self, event) {\n this.cursorX = event.pageX\n this.cursorY = event.pageY\n\n self.updateBrushPreview(self)\n\n if (event.ctrlKey) {\n event.preventDefault()\n self.pan_move(self, event)\n }\n\n let left_button_down =\n (window.TouchEvent && event instanceof TouchEvent) || event.buttons == 1\n\n if (event.shiftKey && left_button_down) {\n self.drawing_mode = false\n\n const y = event.clientY\n let delta = (self.zoom_lasty - y) * 0.005\n self.zoom_ratio = Math.max(\n Math.min(10.0, self.last_zoom_ratio - delta),\n 0.2\n )\n\n this.invalidatePanZoom()\n return\n }\n }\n\n pan_move(self, event) {\n if (event.buttons == 1) {\n if (MaskEditorDialogOld.mousedown_x) {\n let deltaX = MaskEditorDialogOld.mousedown_x - event.clientX\n let deltaY = MaskEditorDialogOld.mousedown_y - event.clientY\n\n self.pan_x = this.mousedown_pan_x - deltaX\n self.pan_y = this.mousedown_pan_y - deltaY\n\n self.invalidatePanZoom()\n }\n }\n }\n\n draw_move(self, event) {\n if (event.ctrlKey || event.shiftKey) {\n return\n }\n\n event.preventDefault()\n\n this.cursorX = event.pageX\n this.cursorY = event.pageY\n\n self.updateBrushPreview(self)\n\n let left_button_down =\n (window.TouchEvent && event instanceof TouchEvent) || event.buttons == 1\n let right_button_down = [2, 5, 32].includes(event.buttons)\n\n if (!event.altKey && left_button_down) {\n var diff = performance.now() - self.lasttime\n\n const maskRect = self.maskCanvas.getBoundingClientRect()\n\n var x = event.offsetX\n var y = event.offsetY\n\n if (event.offsetX == null) {\n x = event.targetTouches[0].clientX - maskRect.left\n }\n\n if (event.offsetY == null) {\n y = event.targetTouches[0].clientY - maskRect.top\n }\n\n x /= self.zoom_ratio\n y /= self.zoom_ratio\n\n var brush_size = this.brush_size\n if (event instanceof PointerEvent && event.pointerType == 'pen') {\n brush_size *= event.pressure\n this.last_pressure = event.pressure\n } else if (\n window.TouchEvent &&\n event instanceof TouchEvent &&\n diff < 20\n ) {\n // The firing interval of PointerEvents in Pen is unreliable, so it is supplemented by TouchEvents.\n brush_size *= this.last_pressure\n } else {\n brush_size = this.brush_size\n }\n\n if (diff > 20 && !this.drawing_mode)\n requestAnimationFrame(() => {\n self.init_shape(self, CompositionOperation.SourceOver)\n self.draw_shape(self, x, y, brush_size)\n self.lastx = x\n self.lasty = y\n })\n else\n requestAnimationFrame(() => {\n self.init_shape(self, CompositionOperation.SourceOver)\n\n var dx = x - self.lastx\n var dy = y - self.lasty\n\n var distance = Math.sqrt(dx * dx + dy * dy)\n var directionX = dx / distance\n var directionY = dy / distance\n\n for (var i = 0; i < distance; i += 5) {\n var px = self.lastx + directionX * i\n var py = self.lasty + directionY * i\n self.draw_shape(self, px, py, brush_size)\n }\n self.lastx = x\n self.lasty = y\n })\n\n self.lasttime = performance.now()\n } else if ((event.altKey && left_button_down) || right_button_down) {\n const maskRect = self.maskCanvas.getBoundingClientRect()\n const x =\n (event.offsetX || event.targetTouches[0].clientX - maskRect.left) /\n self.zoom_ratio\n const y =\n (event.offsetY || event.targetTouches[0].clientY - maskRect.top) /\n self.zoom_ratio\n\n var brush_size = this.brush_size\n if (event instanceof PointerEvent && event.pointerType == 'pen') {\n brush_size *= event.pressure\n this.last_pressure = event.pressure\n } else if (\n window.TouchEvent &&\n event instanceof TouchEvent &&\n diff < 20\n ) {\n brush_size *= this.last_pressure\n } else {\n brush_size = this.brush_size\n }\n\n if (diff > 20 && !this.drawing_mode)\n // cannot tracking drawing_mode for touch event\n requestAnimationFrame(() => {\n self.init_shape(self, CompositionOperation.DestinationOut)\n self.draw_shape(self, x, y, brush_size)\n self.lastx = x\n self.lasty = y\n })\n else\n requestAnimationFrame(() => {\n self.init_shape(self, CompositionOperation.DestinationOut)\n\n var dx = x - self.lastx\n var dy = y - self.lasty\n\n var distance = Math.sqrt(dx * dx + dy * dy)\n var directionX = dx / distance\n var directionY = dy / distance\n\n for (var i = 0; i < distance; i += 5) {\n var px = self.lastx + directionX * i\n var py = self.lasty + directionY * i\n self.draw_shape(self, px, py, brush_size)\n }\n self.lastx = x\n self.lasty = y\n })\n\n self.lasttime = performance.now()\n }\n }\n\n handlePointerDown(self, event) {\n if (event.ctrlKey) {\n if (event.buttons == 1) {\n MaskEditorDialogOld.mousedown_x = event.clientX\n MaskEditorDialogOld.mousedown_y = event.clientY\n\n this.mousedown_pan_x = this.pan_x\n this.mousedown_pan_y = this.pan_y\n }\n return\n }\n\n var brush_size = this.brush_size\n if (event instanceof PointerEvent && event.pointerType == 'pen') {\n brush_size *= event.pressure\n this.last_pressure = event.pressure\n }\n\n if ([0, 2, 5].includes(event.button)) {\n self.drawing_mode = true\n\n event.preventDefault()\n\n if (event.shiftKey) {\n self.zoom_lasty = event.clientY\n self.last_zoom_ratio = self.zoom_ratio\n return\n }\n\n const maskRect = self.maskCanvas.getBoundingClientRect()\n const x =\n (event.offsetX || event.targetTouches[0].clientX - maskRect.left) /\n self.zoom_ratio\n const y =\n (event.offsetY || event.targetTouches[0].clientY - maskRect.top) /\n self.zoom_ratio\n\n if (!event.altKey && event.button == 0) {\n self.init_shape(self, CompositionOperation.SourceOver)\n } else {\n self.init_shape(self, CompositionOperation.DestinationOut)\n }\n self.draw_shape(self, x, y, brush_size)\n self.lastx = x\n self.lasty = y\n self.lasttime = performance.now()\n }\n }\n\n init_shape(self, compositionOperation) {\n self.maskCtx.beginPath()\n if (compositionOperation == CompositionOperation.SourceOver) {\n self.maskCtx.fillStyle = this.getMaskFillStyle()\n self.maskCtx.globalCompositeOperation = CompositionOperation.SourceOver\n } else if (compositionOperation == CompositionOperation.DestinationOut) {\n self.maskCtx.globalCompositeOperation =\n CompositionOperation.DestinationOut\n }\n }\n\n draw_shape(self, x, y, brush_size) {\n if (self.pointer_type === PointerType.Rect) {\n self.maskCtx.rect(\n x - brush_size,\n y - brush_size,\n brush_size * 2,\n brush_size * 2\n )\n } else {\n self.maskCtx.arc(x, y, brush_size, 0, Math.PI * 2, false)\n }\n self.maskCtx.fill()\n }\n\n async save() {\n const backupCanvas = document.createElement('canvas')\n const backupCtx = backupCanvas.getContext('2d', {\n willReadFrequently: true\n })\n backupCanvas.width = this.image.width\n backupCanvas.height = this.image.height\n\n backupCtx.clearRect(0, 0, backupCanvas.width, backupCanvas.height)\n backupCtx.drawImage(\n this.maskCanvas,\n 0,\n 0,\n this.maskCanvas.width,\n this.maskCanvas.height,\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n // paste mask data into alpha channel\n const backupData = backupCtx.getImageData(\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n // refine mask image\n for (let i = 0; i < backupData.data.length; i += 4) {\n if (backupData.data[i + 3] == 255) backupData.data[i + 3] = 0\n else backupData.data[i + 3] = 255\n\n backupData.data[i] = 0\n backupData.data[i + 1] = 0\n backupData.data[i + 2] = 0\n }\n\n backupCtx.globalCompositeOperation = CompositionOperation.SourceOver\n backupCtx.putImageData(backupData, 0, 0)\n\n const formData = new FormData()\n const filename = 'clipspace-mask-' + performance.now() + '.png'\n\n const item = {\n filename: filename,\n subfolder: 'clipspace',\n type: 'input'\n }\n\n if (ComfyApp.clipspace.images) ComfyApp.clipspace.images[0] = item\n\n if (ComfyApp.clipspace.widgets) {\n const index = ComfyApp.clipspace.widgets.findIndex(\n (obj) => obj.name === 'image'\n )\n\n if (index >= 0) ComfyApp.clipspace.widgets[index].value = item\n }\n\n const dataURL = backupCanvas.toDataURL()\n const blob = dataURLToBlob(dataURL)\n\n let original_url = new URL(this.image.src)\n\n type Ref = { filename: string; subfolder?: string; type?: string }\n\n const original_ref: Ref = {\n filename: original_url.searchParams.get('filename')\n }\n\n let original_subfolder = original_url.searchParams.get('subfolder')\n if (original_subfolder) original_ref.subfolder = original_subfolder\n\n let original_type = original_url.searchParams.get('type')\n if (original_type) original_ref.type = original_type\n\n formData.append('image', blob, filename)\n formData.append('original_ref', JSON.stringify(original_ref))\n formData.append('type', 'input')\n formData.append('subfolder', 'clipspace')\n\n this.saveButton.innerText = 'Saving...'\n this.saveButton.disabled = true\n await uploadMask(item, formData)\n ComfyApp.onClipspaceEditorSave()\n this.close()\n }\n}\n","import { app } from '../../scripts/app'\nimport { ComfyDialog, $el } from '../../scripts/ui'\nimport { ComfyApp } from '../../scripts/app'\nimport { api } from '../../scripts/api'\nimport { ClipspaceDialog } from './clipspace'\nimport { MaskEditorDialogOld } from './maskEditorOld'\n\nvar styles = `\n #maskEditorContainer {\n display: fixed;\n }\n #maskEditor_brush {\n position: absolute;\n backgroundColor: transparent;\n z-index: 8889;\n pointer-events: none;\n border-radius: 50%;\n overflow: visible;\n outline: 1px dashed black;\n box-shadow: 0 0 0 1px white;\n }\n #maskEditor_brushPreviewGradient {\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n display: none;\n }\n #maskEditor {\n display: block;\n width: 100%;\n height: 100vh;\n left: 0;\n z-index: 8888;\n position: fixed;\n background: rgba(50,50,50,0.75);\n backdrop-filter: blur(10px);\n overflow: hidden;\n user-select: none;\n }\n #maskEditor_sidePanelContainer {\n height: 100%;\n width: 220px;\n z-index: 8888;\n display: flex;\n flex-direction: column;\n }\n #maskEditor_sidePanel {\n background: var(--comfy-menu-bg);\n height: 100%;\n display: flex;\n align-items: center;\n overflow-y: hidden;\n width: 220px;\n }\n #maskEditor_sidePanelShortcuts {\n display: flex;\n flex-direction: row;\n width: 200px;\n margin-top: 10px;\n gap: 10px;\n justify-content: center;\n }\n .maskEditor_sidePanelIconButton {\n width: 40px;\n height: 40px;\n pointer-events: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.1s;\n }\n .maskEditor_sidePanelIconButton:hover {\n background-color: rgba(0, 0, 0, 0.2);\n }\n #maskEditor_sidePanelBrushSettings {\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 200px;\n padding: 10px;\n }\n .maskEditor_sidePanelTitle {\n text-align: center;\n font-size: 15px;\n font-family: sans-serif;\n color: var(--descrip-text);\n margin-top: 10px;\n }\n #maskEditor_sidePanelBrushShapeContainer {\n display: flex;\n width: 180px;\n height: 50px;\n border: 1px solid var(--border-color);\n pointer-events: auto;\n background: rgba(0, 0, 0, 0.2);\n }\n #maskEditor_sidePanelBrushShapeCircle {\n width: 35px;\n height: 35px;\n border-radius: 50%;\n border: 1px solid var(--border-color);\n pointer-events: auto;\n transition: background 0.1s;\n margin-left: 7.5px;\n }\n .maskEditor_sidePanelBrushRange {\n width: 180px;\n -webkit-appearance: none;\n appearance: none;\n background: transparent;\n cursor: pointer;\n }\n .maskEditor_sidePanelBrushRange::-webkit-slider-thumb {\n height: 20px;\n width: 20px;\n border-radius: 50%;\n cursor: grab;\n margin-top: -8px;\n background: var(--p-surface-700);\n border: 1px solid var(--border-color);\n }\n .maskEditor_sidePanelBrushRange::-moz-range-thumb {\n height: 20px;\n width: 20px;\n border-radius: 50%;\n cursor: grab;\n background: var(--p-surface-800);\n border: 1px solid var(--border-color);\n }\n .maskEditor_sidePanelBrushRange::-webkit-slider-runnable-track {\n background: var(--p-surface-700);\n height: 3px;\n }\n .maskEditor_sidePanelBrushRange::-moz-range-track {\n background: var(--p-surface-700);\n height: 3px;\n }\n\n #maskEditor_sidePanelBrushShapeSquare {\n width: 35px;\n height: 35px;\n margin: 5px;\n border: 1px solid var(--border-color);\n pointer-events: auto;\n transition: background 0.1s;\n }\n\n .maskEditor_brushShape_dark {\n background: transparent;\n }\n\n .maskEditor_brushShape_dark:hover {\n background: var(--p-surface-900);\n }\n\n .maskEditor_brushShape_light {\n background: transparent;\n }\n\n .maskEditor_brushShape_light:hover {\n background: var(--comfy-menu-bg);\n }\n\n #maskEditor_sidePanelImageLayerSettings {\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 200px;\n align-items: center;\n }\n .maskEditor_sidePanelLayer {\n display: flex;\n width: 200px;\n height: 50px;\n }\n .maskEditor_sidePanelLayerVisibilityContainer {\n width: 50px;\n height: 50px;\n border-radius: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .maskEditor_sidePanelVisibilityToggle {\n width: 12px;\n height: 12px;\n border-radius: 50%;\n pointer-events: auto;\n }\n .maskEditor_sidePanelLayerIconContainer {\n width: 60px;\n height: 50px;\n border-radius: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n fill: var(--input-text);\n }\n .maskEditor_sidePanelLayerIconContainer svg {\n width: 30px;\n height: 30px;\n }\n #maskEditor_sidePanelMaskLayerBlendingContainer {\n width: 80px;\n height: 50px;\n border-radius: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n #maskEditor_sidePanelMaskLayerBlendingSelect {\n width: 80px;\n height: 30px;\n border: 1px solid var(--border-color);\n background-color: rgba(0, 0, 0, 0.2);\n color: var(--input-text);\n font-family: sans-serif;\n font-size: 15px;\n pointer-events: auto;\n transition: background-color border 0.1s;\n }\n #maskEditor_sidePanelClearCanvasButton:hover {\n background-color: var(--p-overlaybadge-outline-color);\n border: none;\n }\n #maskEditor_sidePanelClearCanvasButton {\n width: 180px;\n height: 30px;\n border: none;\n background: rgba(0, 0, 0, 0.2);\n border: 1px solid var(--border-color);\n color: var(--input-text);\n font-family: sans-serif;\n font-size: 15px;\n pointer-events: auto;\n transition: background-color 0.1s;\n }\n #maskEditor_sidePanelClearCanvasButton:hover {\n background-color: var(--p-overlaybadge-outline-color);\n }\n #maskEditor_sidePanelHorizontalButtonContainer {\n display: flex;\n gap: 10px;\n height: 40px;\n }\n .maskEditor_sidePanelBigButton {\n width: 85px;\n height: 30px;\n border: none;\n background: rgba(0, 0, 0, 0.2);\n border: 1px solid var(--border-color);\n color: var(--input-text);\n font-family: sans-serif;\n font-size: 15px;\n pointer-events: auto;\n transition: background-color border 0.1s;\n }\n .maskEditor_sidePanelBigButton:hover {\n background-color: var(--p-overlaybadge-outline-color);\n border: none;\n }\n #maskEditor_toolPanel {\n height: 100%;\n width: var(--sidebar-width);\n z-index: 8888;\n background: var(--comfy-menu-bg);\n display: flex;\n flex-direction: column;\n }\n .maskEditor_toolPanelContainer {\n width: var(--sidebar-width);\n height: var(--sidebar-width);\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n transition: background-color 0.2s;\n }\n .maskEditor_toolPanelContainerSelected svg {\n fill: var(--p-button-text-primary-color) !important;\n }\n .maskEditor_toolPanelContainerSelected .maskEditor_toolPanelIndicator {\n display: block;\n }\n .maskEditor_toolPanelContainer svg {\n width: 75%;\n aspect-ratio: 1/1;\n fill: var(--p-button-text-secondary-color);\n }\n\n .maskEditor_toolPanelContainerDark:hover {\n background-color: var(--p-surface-800);\n }\n\n .maskEditor_toolPanelContainerLight:hover {\n background-color: var(--p-surface-300);\n }\n\n .maskEditor_toolPanelIndicator {\n display: none;\n height: 100%;\n width: 4px;\n position: absolute;\n left: 0;\n background: var(--p-button-text-primary-color);\n }\n #maskEditor_sidePanelPaintBucketSettings {\n display: flex;\n flex-direction: column;\n gap: 10px;\n width: 200px;\n padding: 10px;\n }\n #canvasBackground {\n background: white;\n width: 100%;\n height: 100%;\n }\n #maskEditor_sidePanelButtonsContainer {\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-top: 10px;\n }\n .maskEditor_sidePanelSeparator {\n width: 200px;\n height: 2px;\n background: var(--border-color);\n margin-top: 5px;\n margin-bottom: 5px;\n }\n #maskEditor_pointerZone {\n width: calc(100% - var(--sidebar-width) - 220px);\n height: 100%;\n }\n #maskEditor_uiContainer {\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 8888;\n display: flex;\n flex-direction: column;\n }\n #maskEditorCanvasContainer {\n position: absolute;\n width: 1000px;\n height: 667px;\n left: 359px;\n top: 280px;\n }\n #imageCanvas {\n width: 100%;\n height: 100%;\n }\n #maskCanvas {\n width: 100%;\n height: 100%;\n }\n #maskEditor_uiHorizontalContainer {\n width: 100%;\n height: 100%;\n display: flex;\n }\n #maskEditor_topBar {\n display: flex;\n height: 44px;\n align-items: center;\n background: var(--comfy-menu-bg);\n }\n #maskEditor_topBarTitle {\n margin: 0;\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n font-size: 1.2em;\n }\n #maskEditor_topBarButtonContainer {\n display: flex;\n gap: 10px;\n margin-right: 0.5rem;\n position: absolute;\n right: 0;\n width: 200px;\n }\n #maskEditor_topBarShortcutsContainer {\n display: flex;\n gap: 10px;\n margin-left: 5px;\n }\n\n .maskEditor_topPanelIconButton_dark {\n width: 50px;\n height: 30px;\n pointer-events: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.1s;\n background: var(--p-surface-800);\n border: 1px solid var(--p-form-field-border-color);\n border-radius: 10px;\n }\n\n .maskEditor_topPanelIconButton_dark:hover {\n background-color: var(--p-surface-900);\n }\n\n .maskEditor_topPanelIconButton_dark svg {\n width: 25px;\n height: 25px;\n pointer-events: none;\n fill: var(--input-text);\n }\n\n .maskEditor_topPanelIconButton_light {\n width: 50px;\n height: 30px;\n pointer-events: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: background-color 0.1s;\n background: var(--comfy-menu-bg);\n border: 1px solid var(--p-form-field-border-color);\n border-radius: 10px;\n }\n\n .maskEditor_topPanelIconButton_light:hover {\n background-color: var(--p-surface-300);\n }\n\n .maskEditor_topPanelIconButton_light svg {\n width: 25px;\n height: 25px;\n pointer-events: none;\n fill: var(--input-text);\n }\n\n .maskEditor_topPanelButton_dark {\n height: 30px;\n background: var(--p-surface-800);\n border: 1px solid var(--p-form-field-border-color);\n border-radius: 10px;\n color: var(--input-text);\n font-family: sans-serif;\n pointer-events: auto;\n transition: 0.1s;\n width: 60px;\n }\n\n .maskEditor_topPanelButton_dark:hover {\n background-color: var(--p-surface-900);\n }\n\n .maskEditor_topPanelButton_light {\n height: 30px;\n background: var(--comfy-menu-bg);\n border: 1px solid var(--p-form-field-border-color);\n border-radius: 10px;\n color: var(--input-text);\n font-family: sans-serif;\n pointer-events: auto;\n transition: 0.1s;\n width: 60px;\n }\n\n .maskEditor_topPanelButton_light:hover {\n background-color: var(--p-surface-300);\n }\n\n\n #maskEditor_sidePanelColorSelectSettings {\n flex-direction: column;\n }\n \n .maskEditor_sidePanel_paintBucket_Container {\n width: 180px;\n display: flex;\n flex-direction: column;\n position: relative;\n }\n\n .maskEditor_sidePanel_colorSelect_Container {\n display: flex;\n width: 180px;\n align-items: center;\n gap: 5px;\n height: 30px;\n }\n \n #maskEditor_sidePanelVisibilityToggle {\n position: absolute;\n right: 0;\n }\n\n #maskEditor_sidePanelColorSelectMethodSelect {\n position: absolute;\n right: 0;\n height: 30px;\n border-radius: 0;\n border: 1px solid var(--border-color);\n background: rgba(0,0,0,0.2);\n }\n\n #maskEditor_sidePanelVisibilityToggle {\n position: absolute;\n right: 0;\n }\n\n .maskEditor_sidePanel_colorSelect_tolerance_container {\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-bottom: 10px;\n }\n\n .maskEditor_sidePanelContainerColumn {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .maskEditor_sidePanelContainerRow {\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n min-height: 24px;\n position: relative;\n }\n\n .maskEditor_accent_bg_dark {\n background: var(--p-surface-800);\n }\n\n .maskEditor_accent_bg_very_dark {\n background: var(--p-surface-900);\n }\n\n .maskEditor_accent_bg_light {\n background: var(--p-surface-300);\n }\n\n .maskEditor_accent_bg_very_light {\n background: var(--comfy-menu-bg);\n }\n\n #maskEditor_paintBucketSettings {\n display: none;\n }\n\n #maskEditor_colorSelectSettings {\n display: none;\n }\n\n .maskEditor_sidePanelToggleContainer {\n cursor: pointer;\n display: inline-block;\n position: absolute;\n right: 0;\n }\n\n .maskEditor_toggle_bg_dark {\n background: var(--p-surface-700);\n }\n\n .maskEditor_toggle_bg_light {\n background: var(--p-surface-300);\n }\n\n .maskEditor_sidePanelToggleSwitch {\n display: inline-block;\n border-radius: 16px;\n width: 40px;\n height: 24px;\n position: relative;\n vertical-align: middle;\n transition: background 0.25s;\n }\n .maskEditor_sidePanelToggleSwitch:before, .maskEditor_sidePanelToggleSwitch:after {\n content: \"\";\n }\n .maskEditor_sidePanelToggleSwitch:before {\n display: block;\n background: linear-gradient(to bottom, #fff 0%, #eee 100%);\n border-radius: 50%;\n width: 16px;\n height: 16px;\n position: absolute;\n top: 4px;\n left: 4px;\n transition: ease 0.2s;\n }\n .maskEditor_sidePanelToggleContainer:hover .maskEditor_sidePanelToggleSwitch:before {\n background: linear-gradient(to bottom, #fff 0%, #fff 100%);\n }\n .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_sidePanelToggleSwitch {\n background: var(--p-button-text-primary-color);\n }\n .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_toggle_bg_dark:before {\n background: var(--p-surface-900);\n }\n .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_toggle_bg_light:before {\n background: var(--comfy-menu-bg);\n }\n .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_sidePanelToggleSwitch:before {\n left: 20px;\n }\n\n .maskEditor_sidePanelToggleCheckbox {\n position: absolute;\n visibility: hidden;\n }\n\n .maskEditor_sidePanelDropdown_dark {\n border: 1px solid var(--p-form-field-border-color);\n background: var(--p-surface-900);\n height: 24px;\n padding-left: 5px;\n padding-right: 5px;\n border-radius: 6px;\n transition: background 0.1s;\n }\n\n .maskEditor_sidePanelDropdown_dark option {\n background: var(--p-surface-900);\n }\n\n .maskEditor_sidePanelDropdown_dark:focus {\n outline: 1px solid var(--p-button-text-primary-color);\n }\n\n .maskEditor_sidePanelDropdown_dark option:hover {\n background: white;\n }\n .maskEditor_sidePanelDropdown_dark option:active {\n background: var(--p-highlight-background);\n }\n\n .maskEditor_sidePanelDropdown_light {\n border: 1px solid var(--p-form-field-border-color);\n background: var(--comfy-menu-bg);\n height: 24px;\n padding-left: 5px;\n padding-right: 5px;\n border-radius: 6px;\n transition: background 0.1s;\n }\n\n .maskEditor_sidePanelDropdown_light option {\n background: var(--comfy-menu-bg);\n }\n\n .maskEditor_sidePanelDropdown_light:focus {\n outline: 1px solid var(--p-surface-300);\n }\n\n .maskEditor_sidePanelDropdown_light option:hover {\n background: white;\n }\n .maskEditor_sidePanelDropdown_light option:active {\n background: var(--p-surface-300);\n }\n\n .maskEditor_layerRow {\n height: 50px;\n width: 200px;\n border-radius: 10px;\n }\n\n .maskEditor_sidePanelLayerPreviewContainer {\n width: 40px;\n height: 30px;\n }\n\n .maskEditor_sidePanelLayerPreviewContainer > svg{\n width: 100%;\n height: 100%;\n object-fit: contain;\n fill: var(--p-surface-100);\n }\n\n #maskEditor_sidePanelImageLayerImage {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n .maskEditor_sidePanelSubTitle {\n text-align: left;\n font-size: 12px;\n font-family: sans-serif;\n color: var(--descrip-text);\n }\n\n .maskEditor_containerDropdown {\n position: absolute;\n right: 0;\n }\n\n .maskEditor_sidePanelLayerCheckbox {\n margin-left: 15px;\n }\n\n .maskEditor_toolPanelZoomIndicator {\n width: var(--sidebar-width);\n height: var(--sidebar-width);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 5px;\n color: var(--p-button-text-secondary-color);\n position: absolute;\n bottom: 0;\n transition: background-color 0.2s;\n }\n\n #maskEditor_toolPanelDimensionsText {\n font-size: 12px;\n }\n\n #maskEditor_topBarSaveButton {\n background: var(--p-primary-color) !important;\n color: var(--p-button-primary-color) !important;\n }\n\n #maskEditor_topBarSaveButton:hover {\n background: var(--p-primary-hover-color) !important;\n }\n\n`\n\nvar styleSheet = document.createElement('style')\nstyleSheet.type = 'text/css'\nstyleSheet.innerText = styles\ndocument.head.appendChild(styleSheet)\n\nenum BrushShape {\n Arc = 'arc',\n Rect = 'rect'\n}\n\nenum Tools {\n Pen = 'pen',\n Eraser = 'eraser',\n PaintBucket = 'paintBucket',\n ColorSelect = 'colorSelect'\n}\n\nenum CompositionOperation {\n SourceOver = 'source-over',\n DestinationOut = 'destination-out'\n}\n\nenum MaskBlendMode {\n Black = 'black',\n White = 'white',\n Negative = 'negative'\n}\n\nenum ColorComparisonMethod {\n Simple = 'simple',\n HSL = 'hsl',\n LAB = 'lab'\n}\n\ninterface Point {\n x: number\n y: number\n}\n\ninterface Offset {\n x: number\n y: number\n}\n\nexport interface Brush {\n size: number\n opacity: number\n hardness: number\n type: BrushShape\n}\n\ntype Callback = (data?: any) => void\n\nclass MaskEditorDialog extends ComfyDialog {\n static instance: MaskEditorDialog | null = null\n\n //new\n private uiManager!: UIManager\n private toolManager!: ToolManager\n private panAndZoomManager!: PanAndZoomManager\n private brushTool!: BrushTool\n private paintBucketTool!: PaintBucketTool\n private colorSelectTool!: ColorSelectTool\n private canvasHistory!: CanvasHistory\n private messageBroker!: MessageBroker\n private keyboardManager!: KeyboardManager\n\n private rootElement!: HTMLElement\n private imageURL!: string\n\n private isLayoutCreated: boolean = false\n private isOpen: boolean = false\n\n //variables needed?\n last_display_style: string | null = null\n\n constructor() {\n super()\n this.rootElement = $el(\n 'div.maskEditor_hidden',\n { parent: document.body },\n []\n )\n\n this.element = this.rootElement\n }\n\n static getInstance() {\n if (!ComfyApp.clipspace || !ComfyApp.clipspace.imgs) {\n throw new Error('No clipspace images found')\n }\n const currentSrc =\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n\n if (\n !MaskEditorDialog.instance ||\n currentSrc !== MaskEditorDialog.instance.imageURL\n ) {\n MaskEditorDialog.instance = new MaskEditorDialog()\n }\n return MaskEditorDialog.instance\n }\n\n async show() {\n this.cleanup()\n if (!this.isLayoutCreated) {\n // layout\n this.messageBroker = new MessageBroker()\n this.canvasHistory = new CanvasHistory(this, 20)\n this.paintBucketTool = new PaintBucketTool(this)\n this.brushTool = new BrushTool(this)\n this.panAndZoomManager = new PanAndZoomManager(this)\n this.toolManager = new ToolManager(this)\n this.keyboardManager = new KeyboardManager(this)\n this.uiManager = new UIManager(this.rootElement, this)\n this.colorSelectTool = new ColorSelectTool(this)\n\n // replacement of onClose hook since close is not real close\n const self = this\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (\n mutation.type === 'attributes' &&\n mutation.attributeName === 'style'\n ) {\n if (\n self.last_display_style &&\n self.last_display_style != 'none' &&\n self.element.style.display == 'none'\n ) {\n //self.brush.style.display = 'none'\n ComfyApp.onClipspaceEditorClosed()\n }\n\n self.last_display_style = self.element.style.display\n }\n })\n })\n\n const config = { attributes: true }\n observer.observe(this.rootElement, config)\n\n this.isLayoutCreated = true\n\n await this.uiManager.setlayout()\n }\n\n //this.zoomAndPanManager.reset()\n\n this.rootElement.id = 'maskEditor'\n this.rootElement.style.display = 'flex'\n this.element.style.display = 'flex'\n await this.uiManager.initUI()\n this.paintBucketTool.initPaintBucketTool()\n this.colorSelectTool.initColorSelectTool()\n await this.canvasHistory.saveInitialState()\n this.isOpen = true\n if (ComfyApp.clipspace && ComfyApp.clipspace.imgs) {\n this.uiManager.setSidebarImage()\n }\n this.keyboardManager.addListeners()\n }\n\n private cleanup() {\n // Remove all maskEditor elements\n const maskEditors = document.querySelectorAll('[id^=\"maskEditor\"]')\n maskEditors.forEach((element) => element.remove())\n\n // Remove brush elements specifically\n const brushElements = document.querySelectorAll('#maskEditor_brush')\n brushElements.forEach((element) => element.remove())\n }\n\n isOpened() {\n return this.isOpen\n }\n\n async save() {\n const backupCanvas = document.createElement('canvas')\n const imageCanvas = this.uiManager.getImgCanvas()\n const maskCanvas = this.uiManager.getMaskCanvas()\n const image = this.uiManager.getImage()\n const backupCtx = backupCanvas.getContext('2d', {\n willReadFrequently: true\n })\n\n backupCanvas.width = imageCanvas.width\n backupCanvas.height = imageCanvas.height\n\n if (!backupCtx) {\n return\n }\n\n // Ensure the mask image is fully loaded\n const maskImageLoaded = new Promise((resolve, reject) => {\n const maskImage = new Image()\n maskImage.src = maskCanvas.toDataURL()\n maskImage.onload = () => {\n resolve()\n }\n maskImage.onerror = (error) => {\n reject(error)\n }\n })\n\n try {\n await maskImageLoaded\n } catch (error) {\n console.error('Error loading mask image:', error)\n return\n }\n\n backupCtx.clearRect(0, 0, backupCanvas.width, backupCanvas.height)\n backupCtx.drawImage(\n maskCanvas,\n 0,\n 0,\n maskCanvas.width,\n maskCanvas.height,\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n let maskHasContent = false\n const maskData = backupCtx.getImageData(\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n for (let i = 0; i < maskData.data.length; i += 4) {\n if (maskData.data[i + 3] !== 0) {\n maskHasContent = true\n break\n }\n }\n\n // paste mask data into alpha channel\n const backupData = backupCtx.getImageData(\n 0,\n 0,\n backupCanvas.width,\n backupCanvas.height\n )\n\n let backupHasContent = false\n for (let i = 0; i < backupData.data.length; i += 4) {\n if (backupData.data[i + 3] !== 0) {\n backupHasContent = true\n break\n }\n }\n\n if (maskHasContent && !backupHasContent) {\n console.error('Mask appears to be empty')\n alert('Cannot save empty mask')\n return\n }\n\n // refine mask image\n for (let i = 0; i < backupData.data.length; i += 4) {\n const alpha = backupData.data[i + 3]\n backupData.data[i] = 0\n backupData.data[i + 1] = 0\n backupData.data[i + 2] = 0\n backupData.data[i + 3] = 255 - alpha\n }\n\n backupCtx.globalCompositeOperation = CompositionOperation.SourceOver\n backupCtx.putImageData(backupData, 0, 0)\n\n const formData = new FormData()\n const filename = 'clipspace-mask-' + performance.now() + '.png'\n\n const item = {\n filename: filename,\n subfolder: 'clipspace',\n type: 'input'\n }\n\n if (ComfyApp?.clipspace?.widgets?.length) {\n const index = ComfyApp.clipspace.widgets.findIndex(\n (obj) => obj?.name === 'image'\n )\n\n if (index >= 0 && item !== undefined) {\n try {\n ComfyApp.clipspace.widgets[index].value = item\n } catch (err) {\n console.warn('Failed to set widget value:', err)\n }\n }\n }\n\n const dataURL = backupCanvas.toDataURL()\n const blob = this.dataURLToBlob(dataURL)\n\n let original_url = new URL(image.src)\n\n type Ref = { filename: string; subfolder?: string; type?: string }\n\n this.uiManager.setBrushOpacity(0)\n\n const filenameRef = original_url.searchParams.get('filename')\n if (!filenameRef) {\n throw new Error('filename parameter is required')\n }\n const original_ref: Ref = {\n filename: filenameRef\n }\n\n let original_subfolder = original_url.searchParams.get('subfolder')\n if (original_subfolder) original_ref.subfolder = original_subfolder\n\n let original_type = original_url.searchParams.get('type')\n if (original_type) original_ref.type = original_type\n\n formData.append('image', blob, filename)\n formData.append('original_ref', JSON.stringify(original_ref))\n formData.append('type', 'input')\n formData.append('subfolder', 'clipspace')\n\n this.uiManager.setSaveButtonText('Saving')\n this.uiManager.setSaveButtonEnabled(false)\n this.keyboardManager.removeListeners()\n\n // Retry mechanism\n const maxRetries = 3\n let attempt = 0\n let success = false\n\n while (attempt < maxRetries && !success) {\n try {\n await this.uploadMask(item, formData)\n success = true\n } catch (error) {\n console.error(`Upload attempt ${attempt + 1} failed:`, error)\n attempt++\n if (attempt < maxRetries) {\n console.log('Retrying upload...')\n } else {\n console.log('Max retries reached. Upload failed.')\n }\n }\n }\n\n if (success) {\n ComfyApp.onClipspaceEditorSave()\n this.close()\n this.isOpen = false\n } else {\n this.uiManager.setSaveButtonText('Save')\n this.uiManager.setSaveButtonEnabled(true)\n this.keyboardManager.addListeners()\n }\n }\n\n getMessageBroker() {\n return this.messageBroker\n }\n\n // Helper function to convert a data URL to a Blob object\n private dataURLToBlob(dataURL: string) {\n const parts = dataURL.split(';base64,')\n const contentType = parts[0].split(':')[1]\n const byteString = atob(parts[1])\n const arrayBuffer = new ArrayBuffer(byteString.length)\n const uint8Array = new Uint8Array(arrayBuffer)\n for (let i = 0; i < byteString.length; i++) {\n uint8Array[i] = byteString.charCodeAt(i)\n }\n return new Blob([arrayBuffer], { type: contentType })\n }\n\n private async uploadMask(\n filepath: { filename: string; subfolder: string; type: string },\n formData: FormData,\n retries = 3\n ) {\n if (retries <= 0) {\n throw new Error('Max retries reached')\n return\n }\n await api\n .fetchApi('/upload/mask', {\n method: 'POST',\n body: formData\n })\n .then((response) => {\n if (!response.ok) {\n console.log('Failed to upload mask:', response)\n this.uploadMask(filepath, formData, 2)\n }\n })\n .catch((error) => {\n console.error('Error:', error)\n })\n\n try {\n const selectedIndex = ComfyApp.clipspace?.selectedIndex\n if (ComfyApp.clipspace?.imgs && selectedIndex !== undefined) {\n // Create and set new image\n const newImage = new Image()\n newImage.src = api.apiURL(\n '/view?' +\n new URLSearchParams(filepath).toString() +\n app.getPreviewFormatParam() +\n app.getRandParam()\n )\n ComfyApp.clipspace.imgs[selectedIndex] = newImage\n\n // Update images array if it exists\n if (ComfyApp.clipspace.images) {\n ComfyApp.clipspace.images[selectedIndex] = filepath\n }\n }\n } catch (err) {\n console.warn('Failed to update clipspace image:', err)\n }\n ClipspaceDialog.invalidatePreview()\n }\n}\n\nclass CanvasHistory {\n private maskEditor!: MaskEditorDialog\n private messageBroker!: MessageBroker\n\n private canvas!: HTMLCanvasElement\n private ctx!: CanvasRenderingContext2D\n private states: ImageData[] = []\n private currentStateIndex: number = -1\n private maxStates: number = 20\n private initialized: boolean = false\n\n constructor(maskEditor: MaskEditorDialog, maxStates = 20) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.maxStates = maxStates\n this.createListeners()\n }\n\n private async pullCanvas() {\n this.canvas = await this.messageBroker.pull('maskCanvas')\n this.ctx = await this.messageBroker.pull('maskCtx')\n }\n\n private createListeners() {\n this.messageBroker.subscribe('saveState', () => this.saveState())\n this.messageBroker.subscribe('undo', () => this.undo())\n this.messageBroker.subscribe('redo', () => this.redo())\n }\n\n clearStates() {\n this.states = []\n this.currentStateIndex = -1\n this.initialized = false\n }\n\n async saveInitialState() {\n await this.pullCanvas()\n if (!this.canvas.width || !this.canvas.height) {\n // Canvas not ready yet, defer initialization\n requestAnimationFrame(() => this.saveInitialState())\n return\n }\n\n this.clearStates()\n const state = this.ctx.getImageData(\n 0,\n 0,\n this.canvas.width,\n this.canvas.height\n )\n\n this.states.push(state)\n this.currentStateIndex = 0\n this.initialized = true\n }\n\n saveState() {\n // Ensure we have an initial state\n if (!this.initialized || this.currentStateIndex === -1) {\n this.saveInitialState()\n return\n }\n\n this.states = this.states.slice(0, this.currentStateIndex + 1)\n const state = this.ctx.getImageData(\n 0,\n 0,\n this.canvas.width,\n this.canvas.height\n )\n this.states.push(state)\n this.currentStateIndex++\n\n if (this.states.length > this.maxStates) {\n this.states.shift()\n this.currentStateIndex--\n }\n }\n\n undo() {\n if (this.states.length > 1 && this.currentStateIndex > 0) {\n this.currentStateIndex--\n this.restoreState(this.states[this.currentStateIndex])\n } else {\n alert('No more undo states available')\n }\n }\n\n redo() {\n if (\n this.states.length > 1 &&\n this.currentStateIndex < this.states.length - 1\n ) {\n this.currentStateIndex++\n this.restoreState(this.states[this.currentStateIndex])\n } else {\n alert('No more redo states available')\n }\n }\n\n restoreState(state: ImageData) {\n if (state && this.initialized) {\n this.ctx.putImageData(state, 0, 0)\n }\n }\n}\n\nclass PaintBucketTool {\n maskEditor: MaskEditorDialog\n messageBroker: MessageBroker\n\n private canvas!: HTMLCanvasElement\n private ctx!: CanvasRenderingContext2D\n private width: number | null = null\n private height: number | null = null\n private imageData: ImageData | null = null\n private data: Uint8ClampedArray | null = null\n private tolerance: number = 5\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.createListeners()\n this.addPullTopics()\n }\n\n initPaintBucketTool() {\n this.pullCanvas()\n }\n\n private async pullCanvas() {\n this.canvas = await this.messageBroker.pull('maskCanvas')\n this.ctx = await this.messageBroker.pull('maskCtx')\n }\n\n private createListeners() {\n this.messageBroker.subscribe(\n 'setPaintBucketTolerance',\n (tolerance: number) => this.setTolerance(tolerance)\n )\n\n this.messageBroker.subscribe('paintBucketFill', (point: Point) =>\n this.floodFill(point)\n )\n\n this.messageBroker.subscribe('invert', () => this.invertMask())\n }\n\n private addPullTopics() {\n this.messageBroker.createPullTopic(\n 'getTolerance',\n async () => this.tolerance\n )\n }\n\n private getPixel(x: number, y: number): number {\n return this.data![(y * this.width! + x) * 4 + 3]\n }\n\n private setPixel(\n x: number,\n y: number,\n alpha: number,\n color: { r: number; g: number; b: number }\n ): void {\n const index = (y * this.width! + x) * 4\n this.data![index] = color.r // R\n this.data![index + 1] = color.g // G\n this.data![index + 2] = color.b // B\n this.data![index + 3] = alpha // A\n }\n\n private shouldProcessPixel(\n currentAlpha: number,\n targetAlpha: number,\n tolerance: number,\n isFillMode: boolean\n ): boolean {\n if (currentAlpha === -1) return false\n\n if (isFillMode) {\n // Fill mode: process pixels that are empty/similar to target\n return (\n currentAlpha !== 255 &&\n Math.abs(currentAlpha - targetAlpha) <= tolerance\n )\n } else {\n // Erase mode: process pixels that are filled/similar to target\n return (\n currentAlpha === 255 ||\n Math.abs(currentAlpha - targetAlpha) <= tolerance\n )\n }\n }\n\n private async floodFill(point: Point): Promise {\n let startX = Math.floor(point.x)\n let startY = Math.floor(point.y)\n this.width = this.canvas.width\n this.height = this.canvas.height\n\n if (\n startX < 0 ||\n startX >= this.width ||\n startY < 0 ||\n startY >= this.height\n ) {\n return\n }\n\n this.imageData = this.ctx.getImageData(0, 0, this.width, this.height)\n this.data = this.imageData.data\n\n const targetAlpha = this.getPixel(startX, startY)\n const isFillMode = targetAlpha !== 255 // Determine mode based on clicked pixel\n\n if (targetAlpha === -1) return\n\n const maskColor = await this.messageBroker.pull('getMaskColor')\n const stack: Array<[number, number]> = []\n const visited = new Uint8Array(this.width * this.height)\n\n if (\n this.shouldProcessPixel(\n targetAlpha,\n targetAlpha,\n this.tolerance,\n isFillMode\n )\n ) {\n stack.push([startX, startY])\n }\n\n while (stack.length > 0) {\n const [x, y] = stack.pop()!\n const visitedIndex = y * this.width + x\n\n if (visited[visitedIndex]) continue\n\n const currentAlpha = this.getPixel(x, y)\n if (\n !this.shouldProcessPixel(\n currentAlpha,\n targetAlpha,\n this.tolerance,\n isFillMode\n )\n ) {\n continue\n }\n\n visited[visitedIndex] = 1\n // Set alpha to 255 for fill mode, 0 for erase mode\n this.setPixel(x, y, isFillMode ? 255 : 0, maskColor)\n\n // Check neighbors\n const checkNeighbor = (nx: number, ny: number) => {\n if (nx < 0 || nx >= this.width! || ny < 0 || ny >= this.height!) return\n if (!visited[ny * this.width! + nx]) {\n const alpha = this.getPixel(nx, ny)\n if (\n this.shouldProcessPixel(\n alpha,\n targetAlpha,\n this.tolerance,\n isFillMode\n )\n ) {\n stack.push([nx, ny])\n }\n }\n }\n\n checkNeighbor(x - 1, y) // Left\n checkNeighbor(x + 1, y) // Right\n checkNeighbor(x, y - 1) // Up\n checkNeighbor(x, y + 1) // Down\n }\n\n this.ctx.putImageData(this.imageData, 0, 0)\n this.imageData = null\n this.data = null\n }\n\n setTolerance(tolerance: number): void {\n this.tolerance = tolerance\n }\n\n getTolerance(): number {\n return this.tolerance\n }\n\n //invert mask\n\n private invertMask() {\n const imageData = this.ctx.getImageData(\n 0,\n 0,\n this.canvas.width,\n this.canvas.height\n )\n const data = imageData.data\n\n // Find first non-transparent pixel to get mask color\n let maskR = 0,\n maskG = 0,\n maskB = 0\n for (let i = 0; i < data.length; i += 4) {\n if (data[i + 3] > 0) {\n maskR = data[i]\n maskG = data[i + 1]\n maskB = data[i + 2]\n break\n }\n }\n\n // Process each pixel\n for (let i = 0; i < data.length; i += 4) {\n const alpha = data[i + 3]\n // Invert alpha channel (0 becomes 255, 255 becomes 0)\n data[i + 3] = 255 - alpha\n\n // If this was originally transparent (now opaque), fill with mask color\n if (alpha === 0) {\n data[i] = maskR\n data[i + 1] = maskG\n data[i + 2] = maskB\n }\n }\n\n this.ctx.putImageData(imageData, 0, 0)\n this.messageBroker.publish('saveState')\n }\n}\n\nclass ColorSelectTool {\n private maskEditor!: MaskEditorDialog\n private messageBroker!: MessageBroker\n private width: number | null = null\n private height: number | null = null\n private canvas!: HTMLCanvasElement\n private maskCTX!: CanvasRenderingContext2D\n private imageCTX!: CanvasRenderingContext2D\n private maskData: Uint8ClampedArray | null = null\n private imageData: Uint8ClampedArray | null = null\n private tolerance: number = 20\n private livePreview: boolean = false\n private lastPoint: Point | null = null\n private colorComparisonMethod: ColorComparisonMethod =\n ColorComparisonMethod.Simple\n private applyWholeImage: boolean = false\n private maskBoundry: boolean = false\n private maskTolerance: number = 0\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.createListeners()\n this.addPullTopics()\n }\n\n async initColorSelectTool() {\n await this.pullCanvas()\n }\n\n private async pullCanvas() {\n this.canvas = await this.messageBroker.pull('imgCanvas')\n this.maskCTX = await this.messageBroker.pull('maskCtx')\n this.imageCTX = await this.messageBroker.pull('imageCtx')\n }\n\n private createListeners() {\n this.messageBroker.subscribe('colorSelectFill', (point: Point) =>\n this.fillColorSelection(point)\n )\n this.messageBroker.subscribe(\n 'setColorSelectTolerance',\n (tolerance: number) => this.setTolerance(tolerance)\n )\n this.messageBroker.subscribe('setLivePreview', (livePreview: boolean) =>\n this.setLivePreview(livePreview)\n )\n this.messageBroker.subscribe(\n 'setColorComparisonMethod',\n (method: ColorComparisonMethod) => this.setComparisonMethod(method)\n )\n\n this.messageBroker.subscribe('clearLastPoint', () => this.clearLastPoint())\n\n this.messageBroker.subscribe('setWholeImage', (applyWholeImage: boolean) =>\n this.setApplyWholeImage(applyWholeImage)\n )\n\n this.messageBroker.subscribe('setMaskBoundary', (maskBoundry: boolean) =>\n this.setMaskBoundary(maskBoundry)\n )\n\n this.messageBroker.subscribe('setMaskTolerance', (maskTolerance: number) =>\n this.setMaskTolerance(maskTolerance)\n )\n }\n\n private async addPullTopics() {\n this.messageBroker.createPullTopic(\n 'getLivePreview',\n async () => this.livePreview\n )\n }\n\n private getPixel(x: number, y: number): { r: number; g: number; b: number } {\n const index = (y * this.width! + x) * 4\n return {\n r: this.imageData![index],\n g: this.imageData![index + 1],\n b: this.imageData![index + 2]\n }\n }\n\n private getMaskAlpha(x: number, y: number): number {\n return this.maskData![(y * this.width! + x) * 4 + 3]\n }\n\n private isPixelInRange(\n pixel: { r: number; g: number; b: number },\n target: { r: number; g: number; b: number }\n ): boolean {\n switch (this.colorComparisonMethod) {\n case ColorComparisonMethod.Simple:\n return this.isPixelInRangeSimple(pixel, target)\n case ColorComparisonMethod.HSL:\n return this.isPixelInRangeHSL(pixel, target)\n case ColorComparisonMethod.LAB:\n return this.isPixelInRangeLab(pixel, target)\n default:\n return this.isPixelInRangeSimple(pixel, target)\n }\n }\n\n private isPixelInRangeSimple(\n pixel: { r: number; g: number; b: number },\n target: { r: number; g: number; b: number }\n ): boolean {\n //calculate the euclidean distance between the two colors\n const distance = Math.sqrt(\n Math.pow(pixel.r - target.r, 2) +\n Math.pow(pixel.g - target.g, 2) +\n Math.pow(pixel.b - target.b, 2)\n )\n return distance <= this.tolerance\n }\n\n private isPixelInRangeHSL(\n pixel: { r: number; g: number; b: number },\n target: { r: number; g: number; b: number }\n ): boolean {\n // Convert RGB to HSL\n const pixelHSL = this.rgbToHSL(pixel.r, pixel.g, pixel.b)\n const targetHSL = this.rgbToHSL(target.r, target.g, target.b)\n\n // Compare mainly hue and saturation, be more lenient with lightness\n const hueDiff = Math.abs(pixelHSL.h - targetHSL.h)\n const satDiff = Math.abs(pixelHSL.s - targetHSL.s)\n const lightDiff = Math.abs(pixelHSL.l - targetHSL.l)\n\n const distance = Math.sqrt(\n Math.pow((hueDiff / 360) * 255, 2) +\n Math.pow((satDiff / 100) * 255, 2) +\n Math.pow((lightDiff / 100) * 255, 2)\n )\n return distance <= this.tolerance\n }\n\n private rgbToHSL(\n r: number,\n g: number,\n b: number\n ): { h: number; s: number; l: number } {\n r /= 255\n g /= 255\n b /= 255\n\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n let h = 0,\n s = 0,\n l = (max + min) / 2\n\n if (max !== min) {\n const d = max - min\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0)\n break\n case g:\n h = (b - r) / d + 2\n break\n case b:\n h = (r - g) / d + 4\n break\n }\n h /= 6\n }\n\n return {\n h: h * 360,\n s: s * 100,\n l: l * 100\n }\n }\n\n private isPixelInRangeLab(\n pixel: { r: number; g: number; b: number },\n target: { r: number; g: number; b: number }\n ): boolean {\n const pixelLab = this.rgbToLab(pixel)\n const targetLab = this.rgbToLab(target)\n\n // Calculate Delta E (CIE76 formula)\n const deltaE = Math.sqrt(\n Math.pow(pixelLab.l - targetLab.l, 2) +\n Math.pow(pixelLab.a - targetLab.a, 2) +\n Math.pow(pixelLab.b - targetLab.b, 2)\n )\n\n const normalizedDeltaE = (deltaE / 100) * 255\n return normalizedDeltaE <= this.tolerance\n }\n\n private rgbToLab(rgb: { r: number; g: number; b: number }): {\n l: number\n a: number\n b: number\n } {\n // First convert RGB to XYZ\n let r = rgb.r / 255\n let g = rgb.g / 255\n let b = rgb.b / 255\n\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92\n\n r *= 100\n g *= 100\n b *= 100\n\n const x = r * 0.4124 + g * 0.3576 + b * 0.1805\n const y = r * 0.2126 + g * 0.7152 + b * 0.0722\n const z = r * 0.0193 + g * 0.1192 + b * 0.9505\n\n // Then XYZ to Lab\n const xn = 95.047\n const yn = 100.0\n const zn = 108.883\n\n const xyz = [x / xn, y / yn, z / zn]\n for (let i = 0; i < xyz.length; i++) {\n xyz[i] =\n xyz[i] > 0.008856 ? Math.pow(xyz[i], 1 / 3) : 7.787 * xyz[i] + 16 / 116\n }\n\n return {\n l: 116 * xyz[1] - 16,\n a: 500 * (xyz[0] - xyz[1]),\n b: 200 * (xyz[1] - xyz[2])\n }\n }\n\n private setPixel(\n x: number,\n y: number,\n alpha: number,\n color: { r: number; g: number; b: number }\n ): void {\n const index = (y * this.width! + x) * 4\n this.maskData![index] = color.r // R\n this.maskData![index + 1] = color.g // G\n this.maskData![index + 2] = color.b // B\n this.maskData![index + 3] = alpha // A\n }\n\n async fillColorSelection(point: Point) {\n this.width = this.canvas.width\n this.height = this.canvas.height\n this.lastPoint = point\n\n // Get image data\n const maskData = this.maskCTX.getImageData(0, 0, this.width, this.height)\n this.maskData = maskData.data\n this.imageData = this.imageCTX.getImageData(\n 0,\n 0,\n this.width,\n this.height\n ).data\n\n if (this.applyWholeImage) {\n // Process entire image\n const targetPixel = this.getPixel(\n Math.floor(point.x),\n Math.floor(point.y)\n )\n const maskColor = await this.messageBroker.pull('getMaskColor')\n\n // Use TypedArrays for better performance\n const width = this.width!\n const height = this.height!\n\n // Process in chunks for better performance\n const CHUNK_SIZE = 10000\n for (let i = 0; i < width * height; i += CHUNK_SIZE) {\n const endIndex = Math.min(i + CHUNK_SIZE, width * height)\n for (let pixelIndex = i; pixelIndex < endIndex; pixelIndex++) {\n const x = pixelIndex % width\n const y = Math.floor(pixelIndex / width)\n if (this.isPixelInRange(this.getPixel(x, y), targetPixel)) {\n this.setPixel(x, y, 255, maskColor)\n }\n }\n // Allow UI updates between chunks\n await new Promise((resolve) => setTimeout(resolve, 0))\n }\n } else {\n // Original flood fill logic\n let startX = Math.floor(point.x)\n let startY = Math.floor(point.y)\n\n if (\n startX < 0 ||\n startX >= this.width ||\n startY < 0 ||\n startY >= this.height\n ) {\n return\n }\n\n const pixel = this.getPixel(startX, startY)\n\n const stack: Array<[number, number]> = []\n const visited = new Uint8Array(this.width * this.height)\n\n stack.push([startX, startY])\n const maskColor = await this.messageBroker.pull('getMaskColor')\n\n while (stack.length > 0) {\n const [x, y] = stack.pop()!\n const visitedIndex = y * this.width + x\n\n if (\n visited[visitedIndex] ||\n !this.isPixelInRange(this.getPixel(x, y), pixel)\n ) {\n continue\n }\n\n visited[visitedIndex] = 1\n this.setPixel(x, y, 255, maskColor)\n\n // Inline direction checks for better performance\n if (\n x > 0 &&\n !visited[y * this.width + (x - 1)] &&\n this.isPixelInRange(this.getPixel(x - 1, y), pixel)\n ) {\n if (\n !this.maskBoundry ||\n 255 - this.getMaskAlpha(x - 1, y) > this.maskTolerance\n ) {\n stack.push([x - 1, y])\n }\n }\n if (\n x < this.width - 1 &&\n !visited[y * this.width + (x + 1)] &&\n this.isPixelInRange(this.getPixel(x + 1, y), pixel)\n ) {\n if (\n !this.maskBoundry ||\n 255 - this.getMaskAlpha(x + 1, y) > this.maskTolerance\n ) {\n stack.push([x + 1, y])\n }\n }\n if (\n y > 0 &&\n !visited[(y - 1) * this.width + x] &&\n this.isPixelInRange(this.getPixel(x, y - 1), pixel)\n ) {\n if (\n !this.maskBoundry ||\n 255 - this.getMaskAlpha(x, y - 1) > this.maskTolerance\n ) {\n stack.push([x, y - 1])\n }\n }\n if (\n y < this.height - 1 &&\n !visited[(y + 1) * this.width + x] &&\n this.isPixelInRange(this.getPixel(x, y + 1), pixel)\n ) {\n if (\n !this.maskBoundry ||\n 255 - this.getMaskAlpha(x, y + 1) > this.maskTolerance\n ) {\n stack.push([x, y + 1])\n }\n }\n }\n }\n\n this.maskCTX.putImageData(maskData, 0, 0)\n this.messageBroker.publish('saveState')\n this.maskData = null\n this.imageData = null\n }\n setTolerance(tolerance: number): void {\n this.tolerance = tolerance\n\n if (this.lastPoint && this.livePreview) {\n this.messageBroker.publish('undo')\n this.fillColorSelection(this.lastPoint)\n }\n }\n\n setLivePreview(livePreview: boolean): void {\n this.livePreview = livePreview\n }\n\n setComparisonMethod(method: ColorComparisonMethod): void {\n this.colorComparisonMethod = method\n\n if (this.lastPoint && this.livePreview) {\n this.messageBroker.publish('undo')\n this.fillColorSelection(this.lastPoint)\n }\n }\n\n clearLastPoint() {\n this.lastPoint = null\n }\n\n setApplyWholeImage(applyWholeImage: boolean): void {\n this.applyWholeImage = applyWholeImage\n }\n\n setMaskBoundary(maskBoundry: boolean): void {\n this.maskBoundry = maskBoundry\n }\n\n setMaskTolerance(maskTolerance: number): void {\n this.maskTolerance = maskTolerance\n }\n}\n\nclass BrushTool {\n brushSettings: Brush //this saves the current brush settings\n maskBlendMode: MaskBlendMode\n\n isDrawing: boolean = false\n isDrawingLine: boolean = false\n lineStartPoint: Point | null = null\n smoothingPrecision: number = 10\n smoothingCordsArray: Point[] = []\n smoothingLastDrawTime!: Date\n maskCtx: CanvasRenderingContext2D | null = null\n initialDraw: boolean = true\n\n brushStrokeCanvas: HTMLCanvasElement | null = null\n brushStrokeCtx: CanvasRenderingContext2D | null = null\n\n //brush adjustment\n isBrushAdjusting: boolean = false\n brushPreviewGradient: HTMLElement | null = null\n initialPoint: Point | null = null\n useDominantAxis: boolean = false\n brushAdjustmentSpeed: number = 1.0\n\n maskEditor: MaskEditorDialog\n messageBroker: MessageBroker\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.createListeners()\n this.addPullTopics()\n\n this.useDominantAxis = app.extensionManager.setting.get(\n 'Comfy.MaskEditor.UseDominantAxis'\n )\n this.brushAdjustmentSpeed = app.extensionManager.setting.get(\n 'Comfy.MaskEditor.BrushAdjustmentSpeed'\n )\n\n this.brushSettings = {\n size: 10,\n opacity: 100,\n hardness: 1,\n type: BrushShape.Arc\n }\n this.maskBlendMode = MaskBlendMode.Black\n }\n\n private createListeners() {\n //setters\n this.messageBroker.subscribe('setBrushSize', (size: number) =>\n this.setBrushSize(size)\n )\n this.messageBroker.subscribe('setBrushOpacity', (opacity: number) =>\n this.setBrushOpacity(opacity)\n )\n this.messageBroker.subscribe('setBrushHardness', (hardness: number) =>\n this.setBrushHardness(hardness)\n )\n this.messageBroker.subscribe('setBrushShape', (type: BrushShape) =>\n this.setBrushType(type)\n )\n this.messageBroker.subscribe(\n 'setBrushSmoothingPrecision',\n (precision: number) => this.setBrushSmoothingPrecision(precision)\n )\n //brush adjustment\n this.messageBroker.subscribe(\n 'brushAdjustmentStart',\n (event: PointerEvent) => this.startBrushAdjustment(event)\n )\n this.messageBroker.subscribe('brushAdjustment', (event: PointerEvent) =>\n this.handleBrushAdjustment(event)\n )\n //drawing\n this.messageBroker.subscribe('drawStart', (event: PointerEvent) =>\n this.startDrawing(event)\n )\n this.messageBroker.subscribe('draw', (event: PointerEvent) =>\n this.handleDrawing(event)\n )\n this.messageBroker.subscribe('drawEnd', (event: PointerEvent) =>\n this.drawEnd(event)\n )\n }\n\n private addPullTopics() {\n this.messageBroker.createPullTopic(\n 'brushSize',\n async () => this.brushSettings.size\n )\n this.messageBroker.createPullTopic(\n 'brushOpacity',\n async () => this.brushSettings.opacity\n )\n this.messageBroker.createPullTopic(\n 'brushHardness',\n async () => this.brushSettings.hardness\n )\n this.messageBroker.createPullTopic(\n 'brushType',\n async () => this.brushSettings.type\n )\n this.messageBroker.createPullTopic(\n 'maskBlendMode',\n async () => this.maskBlendMode\n )\n this.messageBroker.createPullTopic(\n 'brushSettings',\n async () => this.brushSettings\n )\n }\n\n private async createBrushStrokeCanvas() {\n if (this.brushStrokeCanvas !== null) {\n return\n }\n\n const maskCanvas = await this.messageBroker.pull('maskCanvas')\n const canvas = document.createElement('canvas')\n canvas.width = maskCanvas.width\n canvas.height = maskCanvas.height\n\n this.brushStrokeCanvas = canvas\n this.brushStrokeCtx = canvas.getContext('2d')!\n }\n\n private async startDrawing(event: PointerEvent) {\n this.isDrawing = true\n let compositionOp: CompositionOperation\n let currentTool = await this.messageBroker.pull('currentTool')\n let coords = { x: event.offsetX, y: event.offsetY }\n let coords_canvas = await this.messageBroker.pull('screenToCanvas', coords)\n await this.createBrushStrokeCanvas()\n\n //set drawing mode\n if (currentTool === Tools.Eraser || event.buttons == 2) {\n compositionOp = CompositionOperation.DestinationOut //eraser\n } else {\n compositionOp = CompositionOperation.SourceOver //pen\n }\n\n //check if user wants to draw line or free draw\n if (event.shiftKey && this.lineStartPoint) {\n this.isDrawingLine = true\n this.drawLine(this.lineStartPoint, coords_canvas, compositionOp)\n } else {\n this.isDrawingLine = false\n this.init_shape(compositionOp)\n this.draw_shape(coords_canvas)\n }\n this.lineStartPoint = coords_canvas\n this.smoothingCordsArray = [coords_canvas] //used to smooth the drawing line\n this.smoothingLastDrawTime = new Date()\n }\n\n private async handleDrawing(event: PointerEvent) {\n var diff = performance.now() - this.smoothingLastDrawTime.getTime()\n let coords = { x: event.offsetX, y: event.offsetY }\n let coords_canvas = await this.messageBroker.pull('screenToCanvas', coords)\n let currentTool = await this.messageBroker.pull('currentTool')\n\n if (diff > 20 && !this.isDrawing)\n requestAnimationFrame(() => {\n this.init_shape(CompositionOperation.SourceOver)\n this.draw_shape(coords_canvas)\n this.smoothingCordsArray.push(coords_canvas)\n })\n else\n requestAnimationFrame(() => {\n if (currentTool === Tools.Eraser || event.buttons == 2) {\n this.init_shape(CompositionOperation.DestinationOut)\n } else {\n this.init_shape(CompositionOperation.SourceOver)\n }\n\n //use drawWithSmoothing for better performance or change step in drawWithBetterSmoothing\n this.drawWithBetterSmoothing(coords_canvas)\n })\n\n this.smoothingLastDrawTime = new Date()\n }\n\n private async drawEnd(event: PointerEvent) {\n const coords = { x: event.offsetX, y: event.offsetY }\n const coords_canvas = await this.messageBroker.pull(\n 'screenToCanvas',\n coords\n )\n\n if (this.isDrawing) {\n this.isDrawing = false\n this.messageBroker.publish('saveState')\n this.lineStartPoint = coords_canvas\n this.initialDraw = true\n }\n }\n\n private drawWithBetterSmoothing(point: Point) {\n // Add current point to the smoothing array\n if (!this.smoothingCordsArray) {\n this.smoothingCordsArray = []\n }\n const opacityConstant = 1 / (1 + Math.exp(3))\n const interpolatedOpacity =\n 1 / (1 + Math.exp(-6 * (this.brushSettings.opacity - 0.5))) -\n opacityConstant\n\n this.smoothingCordsArray.push(point)\n\n // Keep a moving window of points for the spline\n const POINTS_NR = 5\n if (this.smoothingCordsArray.length < POINTS_NR) {\n return\n }\n\n // Calculate total length more efficiently\n let totalLength = 0\n const points = this.smoothingCordsArray\n const len = points.length - 1\n\n // Use local variables for better performance\n let dx, dy\n for (let i = 0; i < len; i++) {\n dx = points[i + 1].x - points[i].x\n dy = points[i + 1].y - points[i].y\n totalLength += Math.sqrt(dx * dx + dy * dy)\n }\n\n const distanceBetweenPoints =\n (this.brushSettings.size / this.smoothingPrecision) * 6\n const stepNr = Math.ceil(totalLength / distanceBetweenPoints)\n\n let interpolatedPoints = points\n\n if (stepNr > 0) {\n //this calculation needs to be improved\n interpolatedPoints = this.generateEquidistantPoints(\n this.smoothingCordsArray,\n distanceBetweenPoints // Distance between interpolated points\n )\n }\n\n if (!this.initialDraw) {\n // Remove the first 3 points from the array to avoid drawing the same points twice\n const spliceIndex = interpolatedPoints.findIndex(\n (point) =>\n point.x === this.smoothingCordsArray[2].x &&\n point.y === this.smoothingCordsArray[2].y\n )\n\n if (spliceIndex !== -1) {\n interpolatedPoints = interpolatedPoints.slice(spliceIndex + 1)\n }\n }\n\n // Draw all interpolated points\n for (const point of interpolatedPoints) {\n this.draw_shape(point, interpolatedOpacity)\n }\n\n if (!this.initialDraw) {\n // initially draw on all 5 points, then remove the first 3 points to go into 2 new, 3 old points cycle\n this.smoothingCordsArray = this.smoothingCordsArray.slice(2)\n } else {\n this.initialDraw = false\n }\n }\n\n private async drawLine(\n p1: Point,\n p2: Point,\n compositionOp: CompositionOperation\n ) {\n const brush_size = await this.messageBroker.pull('brushSize')\n const distance = Math.sqrt((p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2)\n const steps = Math.ceil(\n distance / ((brush_size / this.smoothingPrecision) * 4)\n ) // Adjust for smoother lines\n const interpolatedOpacity =\n 1 / (1 + Math.exp(-6 * (this.brushSettings.opacity - 0.5))) -\n 1 / (1 + Math.exp(3))\n this.init_shape(compositionOp)\n\n for (let i = 0; i <= steps; i++) {\n const t = i / steps\n const x = p1.x + (p2.x - p1.x) * t\n const y = p1.y + (p2.y - p1.y) * t\n const point = { x: x, y: y }\n this.draw_shape(point, interpolatedOpacity)\n }\n }\n\n //brush adjustment\n\n private async startBrushAdjustment(event: PointerEvent) {\n event.preventDefault()\n const coords = { x: event.offsetX, y: event.offsetY }\n let coords_canvas = await this.messageBroker.pull('screenToCanvas', coords)\n this.messageBroker.publish('setBrushPreviewGradientVisibility', true)\n this.initialPoint = coords_canvas\n this.isBrushAdjusting = true\n return\n }\n\n private async handleBrushAdjustment(event: PointerEvent) {\n const coords = { x: event.offsetX, y: event.offsetY }\n const brushDeadZone = 5\n let coords_canvas = await this.messageBroker.pull('screenToCanvas', coords)\n\n const delta_x = coords_canvas.x - this.initialPoint!.x\n const delta_y = coords_canvas.y - this.initialPoint!.y\n\n const effectiveDeltaX = Math.abs(delta_x) < brushDeadZone ? 0 : delta_x\n const effectiveDeltaY = Math.abs(delta_y) < brushDeadZone ? 0 : delta_y\n\n // New dominant axis logic\n let finalDeltaX = effectiveDeltaX\n let finalDeltaY = effectiveDeltaY\n\n console.log(this.useDominantAxis)\n\n if (this.useDominantAxis) {\n // New setting flag\n const ratio = Math.abs(effectiveDeltaX) / Math.abs(effectiveDeltaY)\n const threshold = 2.0 // Configurable threshold\n\n if (ratio > threshold) {\n finalDeltaY = 0 // X is dominant\n } else if (ratio < 1 / threshold) {\n finalDeltaX = 0 // Y is dominant\n }\n }\n\n const cappedDeltaX = Math.max(-100, Math.min(100, finalDeltaX))\n const cappedDeltaY = Math.max(-100, Math.min(100, finalDeltaY))\n\n // Rest of the function remains the same\n const sizeDelta = cappedDeltaX / 40\n const hardnessDelta = cappedDeltaY / 800\n\n const newSize = Math.max(\n 1,\n Math.min(\n 100,\n this.brushSettings.size! +\n (cappedDeltaX / 35) * this.brushAdjustmentSpeed\n )\n )\n\n const newHardness = Math.max(\n 0,\n Math.min(\n 1,\n this.brushSettings!.hardness -\n (cappedDeltaY / 4000) * this.brushAdjustmentSpeed\n )\n )\n\n this.brushSettings.size = newSize\n this.brushSettings.hardness = newHardness\n\n this.messageBroker.publish('updateBrushPreview')\n }\n\n //helper functions\n\n private async draw_shape(point: Point, overrideOpacity?: number) {\n const brushSettings: Brush = this.brushSettings\n const maskCtx = this.maskCtx || (await this.messageBroker.pull('maskCtx'))\n const brushType = await this.messageBroker.pull('brushType')\n const maskColor = await this.messageBroker.pull('getMaskColor')\n const size = brushSettings.size\n const sliderOpacity = brushSettings.opacity\n const opacity =\n overrideOpacity == undefined ? sliderOpacity : overrideOpacity\n const hardness = brushSettings.hardness\n\n const x = point.x\n const y = point.y\n\n // Extend the gradient radius beyond the brush size\n const extendedSize = size * (2 - hardness)\n\n let gradient = maskCtx.createRadialGradient(x, y, 0, x, y, extendedSize)\n\n const isErasing = maskCtx.globalCompositeOperation === 'destination-out'\n\n if (hardness === 1) {\n console.log(sliderOpacity, opacity)\n gradient.addColorStop(\n 0,\n isErasing\n ? `rgba(255, 255, 255, ${opacity})`\n : `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})`\n )\n gradient.addColorStop(\n 1,\n isErasing\n ? `rgba(255, 255, 255, ${opacity})`\n : `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})`\n )\n } else {\n let softness = 1 - hardness\n let innerStop = Math.max(0, hardness - softness)\n let outerStop = size / extendedSize\n\n if (isErasing) {\n gradient.addColorStop(0, `rgba(255, 255, 255, ${opacity})`)\n gradient.addColorStop(innerStop, `rgba(255, 255, 255, ${opacity})`)\n gradient.addColorStop(outerStop, `rgba(255, 255, 255, ${opacity / 2})`)\n gradient.addColorStop(1, `rgba(255, 255, 255, 0)`)\n } else {\n gradient.addColorStop(\n 0,\n `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})`\n )\n gradient.addColorStop(\n innerStop,\n `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})`\n )\n gradient.addColorStop(\n outerStop,\n `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity / 2})`\n )\n gradient.addColorStop(\n 1,\n `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, 0)`\n )\n }\n }\n\n maskCtx.fillStyle = gradient\n maskCtx.beginPath()\n if (brushType === BrushShape.Rect) {\n maskCtx.rect(\n x - extendedSize,\n y - extendedSize,\n extendedSize * 2,\n extendedSize * 2\n )\n } else {\n maskCtx.arc(x, y, extendedSize, 0, Math.PI * 2, false)\n }\n maskCtx.fill()\n }\n\n private async init_shape(compositionOperation: CompositionOperation) {\n const maskBlendMode = await this.messageBroker.pull('maskBlendMode')\n const maskCtx = this.maskCtx || (await this.messageBroker.pull('maskCtx'))\n maskCtx.beginPath()\n if (compositionOperation == CompositionOperation.SourceOver) {\n maskCtx.fillStyle = maskBlendMode\n maskCtx.globalCompositeOperation = CompositionOperation.SourceOver\n } else if (compositionOperation == CompositionOperation.DestinationOut) {\n maskCtx.globalCompositeOperation = CompositionOperation.DestinationOut\n }\n }\n\n private calculateCubicSplinePoints(\n points: Point[],\n numSegments: number = 10\n ): Point[] {\n const result: Point[] = []\n\n const xCoords = points.map((p) => p.x)\n const yCoords = points.map((p) => p.y)\n\n const xDerivatives = this.calculateSplineCoefficients(xCoords)\n const yDerivatives = this.calculateSplineCoefficients(yCoords)\n\n // Generate points along the spline\n for (let i = 0; i < points.length - 1; i++) {\n const p0 = points[i]\n const p1 = points[i + 1]\n const d0x = xDerivatives[i]\n const d1x = xDerivatives[i + 1]\n const d0y = yDerivatives[i]\n const d1y = yDerivatives[i + 1]\n\n for (let t = 0; t <= numSegments; t++) {\n const t_normalized = t / numSegments\n\n // Hermite basis functions\n const h00 = 2 * t_normalized ** 3 - 3 * t_normalized ** 2 + 1\n const h10 = t_normalized ** 3 - 2 * t_normalized ** 2 + t_normalized\n const h01 = -2 * t_normalized ** 3 + 3 * t_normalized ** 2\n const h11 = t_normalized ** 3 - t_normalized ** 2\n\n const x = h00 * p0.x + h10 * d0x + h01 * p1.x + h11 * d1x\n const y = h00 * p0.y + h10 * d0y + h01 * p1.y + h11 * d1y\n\n result.push({ x, y })\n }\n }\n\n return result\n }\n\n private generateEvenlyDistributedPoints(\n splinePoints: Point[],\n numPoints: number\n ): Point[] {\n const distances: number[] = [0]\n for (let i = 1; i < splinePoints.length; i++) {\n const dx = splinePoints[i].x - splinePoints[i - 1].x\n const dy = splinePoints[i].y - splinePoints[i - 1].y\n const dist = Math.hypot(dx, dy)\n distances.push(distances[i - 1] + dist)\n }\n\n const totalLength = distances[distances.length - 1]\n const interval = totalLength / (numPoints - 1)\n const result: Point[] = []\n let currentIndex = 0\n\n for (let i = 0; i < numPoints; i++) {\n const targetDistance = i * interval\n\n while (\n currentIndex < distances.length - 1 &&\n distances[currentIndex + 1] < targetDistance\n ) {\n currentIndex++\n }\n\n const t =\n (targetDistance - distances[currentIndex]) /\n (distances[currentIndex + 1] - distances[currentIndex])\n\n const x =\n splinePoints[currentIndex].x +\n t * (splinePoints[currentIndex + 1].x - splinePoints[currentIndex].x)\n const y =\n splinePoints[currentIndex].y +\n t * (splinePoints[currentIndex + 1].y - splinePoints[currentIndex].y)\n\n result.push({ x, y })\n }\n\n return result\n }\n\n private generateEquidistantPoints(\n points: Point[],\n distance: number\n ): Point[] {\n const result: Point[] = []\n const cumulativeDistances: number[] = [0]\n\n // Calculate cumulative distances between points\n for (let i = 1; i < points.length; i++) {\n const dx = points[i].x - points[i - 1].x\n const dy = points[i].y - points[i - 1].y\n const dist = Math.hypot(dx, dy)\n cumulativeDistances[i] = cumulativeDistances[i - 1] + dist\n }\n\n const totalLength = cumulativeDistances[cumulativeDistances.length - 1]\n const numPoints = Math.floor(totalLength / distance)\n\n for (let i = 0; i <= numPoints; i++) {\n const targetDistance = i * distance\n let idx = 0\n\n // Find the segment where the target distance falls\n while (\n idx < cumulativeDistances.length - 1 &&\n cumulativeDistances[idx + 1] < targetDistance\n ) {\n idx++\n }\n\n if (idx >= points.length - 1) {\n result.push(points[points.length - 1])\n continue\n }\n\n const d0 = cumulativeDistances[idx]\n const d1 = cumulativeDistances[idx + 1]\n const t = (targetDistance - d0) / (d1 - d0)\n\n const x = points[idx].x + t * (points[idx + 1].x - points[idx].x)\n const y = points[idx].y + t * (points[idx + 1].y - points[idx].y)\n\n result.push({ x, y })\n }\n\n return result\n }\n\n private calculateSplineCoefficients(values: number[]): number[] {\n const n = values.length - 1\n const matrix: number[][] = new Array(n + 1)\n .fill(0)\n .map(() => new Array(n + 1).fill(0))\n const rhs: number[] = new Array(n + 1).fill(0)\n\n // Set up tridiagonal matrix\n for (let i = 1; i < n; i++) {\n matrix[i][i - 1] = 1\n matrix[i][i] = 4\n matrix[i][i + 1] = 1\n rhs[i] = 3 * (values[i + 1] - values[i - 1])\n }\n\n // Set boundary conditions (natural spline)\n matrix[0][0] = 2\n matrix[0][1] = 1\n matrix[n][n - 1] = 1\n matrix[n][n] = 2\n rhs[0] = 3 * (values[1] - values[0])\n rhs[n] = 3 * (values[n] - values[n - 1])\n\n // Solve tridiagonal system using Thomas algorithm\n for (let i = 1; i <= n; i++) {\n const m = matrix[i][i - 1] / matrix[i - 1][i - 1]\n matrix[i][i] -= m * matrix[i - 1][i]\n rhs[i] -= m * rhs[i - 1]\n }\n\n const solution: number[] = new Array(n + 1)\n solution[n] = rhs[n] / matrix[n][n]\n for (let i = n - 1; i >= 0; i--) {\n solution[i] = (rhs[i] - matrix[i][i + 1] * solution[i + 1]) / matrix[i][i]\n }\n\n return solution\n }\n\n private setBrushSize(size: number) {\n this.brushSettings.size = size\n }\n\n private setBrushOpacity(opacity: number) {\n this.brushSettings.opacity = opacity\n }\n\n private setBrushHardness(hardness: number) {\n this.brushSettings.hardness = hardness\n }\n\n private setBrushType(type: BrushShape) {\n this.brushSettings.type = type\n }\n\n private setBrushSmoothingPrecision(precision: number) {\n //console.log('precision', precision)\n this.smoothingPrecision = precision\n }\n}\n\nclass UIManager {\n private rootElement: HTMLElement\n private brush!: HTMLDivElement\n private brushPreviewGradient!: HTMLDivElement\n private maskCtx!: CanvasRenderingContext2D\n private imageCtx!: CanvasRenderingContext2D\n private maskCanvas!: HTMLCanvasElement\n private imgCanvas!: HTMLCanvasElement\n private brushSettingsHTML!: HTMLDivElement\n private paintBucketSettingsHTML!: HTMLDivElement\n private colorSelectSettingsHTML!: HTMLDivElement\n private maskOpacitySlider!: HTMLInputElement\n private brushHardnessSlider!: HTMLInputElement\n private brushSizeSlider!: HTMLInputElement\n private brushOpacitySlider!: HTMLInputElement\n private sidebarImage!: HTMLImageElement\n private saveButton!: HTMLButtonElement\n private toolPanel!: HTMLDivElement\n private sidePanel!: HTMLDivElement\n private pointerZone!: HTMLDivElement\n private canvasBackground!: HTMLDivElement\n private canvasContainer!: HTMLDivElement\n private image!: HTMLImageElement\n private imageURL!: URL\n private darkMode: boolean = true\n\n private maskEditor: MaskEditorDialog\n private messageBroker: MessageBroker\n\n private mask_opacity: number = 1.0\n private maskBlendMode: MaskBlendMode = MaskBlendMode.Black\n\n private zoomTextHTML!: HTMLSpanElement\n private dimensionsTextHTML!: HTMLSpanElement\n\n constructor(rootElement: HTMLElement, maskEditor: MaskEditorDialog) {\n this.rootElement = rootElement\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.addListeners()\n this.addPullTopics()\n }\n\n addListeners() {\n this.messageBroker.subscribe('updateBrushPreview', async () =>\n this.updateBrushPreview()\n )\n\n this.messageBroker.subscribe(\n 'paintBucketCursor',\n (isPaintBucket: boolean) => this.handlePaintBucketCursor(isPaintBucket)\n )\n\n this.messageBroker.subscribe('panCursor', (isPan: boolean) =>\n this.handlePanCursor(isPan)\n )\n\n this.messageBroker.subscribe('setBrushVisibility', (isVisible: boolean) =>\n this.setBrushVisibility(isVisible)\n )\n\n this.messageBroker.subscribe(\n 'setBrushPreviewGradientVisibility',\n (isVisible: boolean) => this.setBrushPreviewGradientVisibility(isVisible)\n )\n\n this.messageBroker.subscribe('updateCursor', () => this.updateCursor())\n\n this.messageBroker.subscribe('setZoomText', (text: string) =>\n this.setZoomText(text)\n )\n }\n\n addPullTopics() {\n this.messageBroker.createPullTopic(\n 'maskCanvas',\n async () => this.maskCanvas\n )\n this.messageBroker.createPullTopic('maskCtx', async () => this.maskCtx)\n this.messageBroker.createPullTopic('imageCtx', async () => this.imageCtx)\n this.messageBroker.createPullTopic('imgCanvas', async () => this.imgCanvas)\n this.messageBroker.createPullTopic(\n 'screenToCanvas',\n async (coords: Point) => this.screenToCanvas(coords)\n )\n this.messageBroker.createPullTopic(\n 'getCanvasContainer',\n async () => this.canvasContainer\n )\n this.messageBroker.createPullTopic('getMaskColor', async () =>\n this.getMaskColor()\n )\n }\n\n async setlayout() {\n this.detectLightMode()\n var user_ui = await this.createUI()\n var canvasContainer = this.createBackgroundUI()\n\n var brush = await this.createBrush()\n await this.setBrushBorderRadius()\n this.setBrushOpacity(1)\n this.rootElement.appendChild(canvasContainer)\n this.rootElement.appendChild(user_ui)\n document.body.appendChild(brush)\n }\n\n private async createUI() {\n var ui_container = document.createElement('div')\n ui_container.id = 'maskEditor_uiContainer'\n\n var top_bar = await this.createTopBar()\n\n var ui_horizontal_container = document.createElement('div')\n ui_horizontal_container.id = 'maskEditor_uiHorizontalContainer'\n\n var side_panel_container = await this.createSidePanel()\n\n var pointer_zone = this.createPointerZone()\n\n var tool_panel = this.createToolPanel()\n\n ui_horizontal_container.appendChild(tool_panel)\n ui_horizontal_container.appendChild(pointer_zone)\n ui_horizontal_container.appendChild(side_panel_container)\n\n ui_container.appendChild(top_bar)\n ui_container.appendChild(ui_horizontal_container)\n\n return ui_container\n }\n\n private createBackgroundUI() {\n const canvasContainer = document.createElement('div')\n canvasContainer.id = 'maskEditorCanvasContainer'\n\n const imgCanvas = document.createElement('canvas')\n imgCanvas.id = 'imageCanvas'\n\n const maskCanvas = document.createElement('canvas')\n maskCanvas.id = 'maskCanvas'\n\n const canvas_background = document.createElement('div')\n canvas_background.id = 'canvasBackground'\n\n canvasContainer.appendChild(imgCanvas)\n canvasContainer.appendChild(maskCanvas)\n canvasContainer.appendChild(canvas_background)\n\n // prepare content\n this.imgCanvas = imgCanvas!\n this.maskCanvas = maskCanvas!\n this.canvasContainer = canvasContainer!\n this.canvasBackground = canvas_background!\n let maskCtx = maskCanvas!.getContext('2d', { willReadFrequently: true })\n if (maskCtx) {\n this.maskCtx = maskCtx\n }\n let imgCtx = imgCanvas!.getContext('2d', { willReadFrequently: true })\n if (imgCtx) {\n this.imageCtx = imgCtx\n }\n this.setEventHandler()\n\n //remove styling and move to css file\n\n this.imgCanvas.style.position = 'absolute'\n this.maskCanvas.style.position = 'absolute'\n\n this.imgCanvas.style.top = '200'\n this.imgCanvas.style.left = '0'\n\n this.maskCanvas.style.top = this.imgCanvas.style.top\n this.maskCanvas.style.left = this.imgCanvas.style.left\n\n const maskCanvasStyle = this.getMaskCanvasStyle()\n this.maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode\n this.maskCanvas.style.opacity = maskCanvasStyle.opacity.toString()\n\n return canvasContainer\n }\n\n async setBrushBorderRadius() {\n const brushSettings = await this.messageBroker.pull('brushSettings')\n\n if (brushSettings.type === BrushShape.Rect) {\n this.brush.style.borderRadius = '0%'\n // @ts-expect-error\n this.brush.style.MozBorderRadius = '0%'\n // @ts-expect-error\n this.brush.style.WebkitBorderRadius = '0%'\n } else {\n this.brush.style.borderRadius = '50%'\n // @ts-expect-error\n this.brush.style.MozBorderRadius = '50%'\n // @ts-expect-error\n this.brush.style.WebkitBorderRadius = '50%'\n }\n }\n\n async initUI() {\n this.saveButton.innerText = 'Save'\n this.saveButton.disabled = false\n\n await this.setImages(this.imgCanvas) //probably change method to initImageCanvas\n }\n\n private async createSidePanel() {\n const side_panel = this.createContainer(true)\n side_panel.id = 'maskEditor_sidePanel'\n\n const brush_settings = await this.createBrushSettings()\n brush_settings.id = 'maskEditor_brushSettings'\n this.brushSettingsHTML = brush_settings\n\n const paint_bucket_settings = await this.createPaintBucketSettings()\n paint_bucket_settings.id = 'maskEditor_paintBucketSettings'\n this.paintBucketSettingsHTML = paint_bucket_settings\n\n const color_select_settings = await this.createColorSelectSettings()\n color_select_settings.id = 'maskEditor_colorSelectSettings'\n this.colorSelectSettingsHTML = color_select_settings\n\n const image_layer_settings = await this.createImageLayerSettings()\n\n const separator = this.createSeparator()\n\n side_panel.appendChild(brush_settings)\n side_panel.appendChild(paint_bucket_settings)\n side_panel.appendChild(color_select_settings)\n side_panel.appendChild(separator)\n side_panel.appendChild(image_layer_settings)\n\n return side_panel\n }\n\n private async createBrushSettings() {\n const shapeColor = this.darkMode\n ? 'maskEditor_brushShape_dark'\n : 'maskEditor_brushShape_light'\n const brush_settings_container = this.createContainer(true)\n\n const brush_settings_title = this.createHeadline('Brush Settings')\n\n const brush_shape_outer_container = this.createContainer(true)\n\n const brush_shape_title = this.createContainerTitle('Brush Shape')\n\n const brush_shape_container = this.createContainer(false)\n\n const accentColor = this.darkMode\n ? 'maskEditor_accent_bg_dark'\n : 'maskEditor_accent_bg_light'\n\n brush_shape_container.classList.add(accentColor)\n brush_shape_container.classList.add('maskEditor_layerRow')\n\n const circle_shape = document.createElement('div')\n circle_shape.id = 'maskEditor_sidePanelBrushShapeCircle'\n circle_shape.classList.add(shapeColor)\n circle_shape.style.background = 'var(--p-button-text-primary-color)'\n circle_shape.addEventListener('click', () => {\n this.messageBroker.publish('setBrushShape', BrushShape.Arc)\n this.setBrushBorderRadius()\n circle_shape.style.background = 'var(--p-button-text-primary-color)'\n square_shape.style.background = ''\n })\n\n const square_shape = document.createElement('div')\n square_shape.id = 'maskEditor_sidePanelBrushShapeSquare'\n square_shape.classList.add(shapeColor)\n square_shape.style.background = ''\n square_shape.addEventListener('click', () => {\n this.messageBroker.publish('setBrushShape', BrushShape.Rect)\n this.setBrushBorderRadius()\n square_shape.style.background = 'var(--p-button-text-primary-color)'\n circle_shape.style.background = ''\n })\n\n brush_shape_container.appendChild(circle_shape)\n brush_shape_container.appendChild(square_shape)\n\n brush_shape_outer_container.appendChild(brush_shape_title)\n brush_shape_outer_container.appendChild(brush_shape_container)\n\n const thicknesSliderObj = this.createSlider(\n 'Thickness',\n 1,\n 100,\n 1,\n 10,\n (event, value) => {\n this.messageBroker.publish('setBrushSize', parseInt(value))\n this.updateBrushPreview()\n }\n )\n this.brushSizeSlider = thicknesSliderObj.slider\n\n const opacitySliderObj = this.createSlider(\n 'Opacity',\n 0,\n 1,\n 0.01,\n 0.7,\n (event, value) => {\n this.messageBroker.publish('setBrushOpacity', parseFloat(value))\n this.updateBrushPreview()\n }\n )\n this.brushOpacitySlider = opacitySliderObj.slider\n\n const hardnessSliderObj = this.createSlider(\n 'Hardness',\n 0,\n 1,\n 0.01,\n 1,\n (event, value) => {\n this.messageBroker.publish('setBrushHardness', parseFloat(value))\n this.updateBrushPreview()\n }\n )\n this.brushHardnessSlider = hardnessSliderObj.slider\n\n const brushSmoothingPrecisionSliderObj = this.createSlider(\n 'Smoothing Precision',\n 1,\n 100,\n 1,\n 10,\n (event, value) => {\n this.messageBroker.publish(\n 'setBrushSmoothingPrecision',\n parseInt(value)\n )\n }\n )\n\n brush_settings_container.appendChild(brush_settings_title)\n brush_settings_container.appendChild(brush_shape_outer_container)\n brush_settings_container.appendChild(thicknesSliderObj.container)\n brush_settings_container.appendChild(opacitySliderObj.container)\n brush_settings_container.appendChild(hardnessSliderObj.container)\n brush_settings_container.appendChild(\n brushSmoothingPrecisionSliderObj.container\n )\n\n return brush_settings_container\n }\n\n private async createPaintBucketSettings() {\n const paint_bucket_settings_container = this.createContainer(true)\n\n const paint_bucket_settings_title = this.createHeadline(\n 'Paint Bucket Settings'\n )\n\n const tolerance = await this.messageBroker.pull('getTolerance')\n const paintBucketToleranceSliderObj = this.createSlider(\n 'Tolerance',\n 0,\n 255,\n 1,\n tolerance,\n (event, value) => {\n this.messageBroker.publish('setPaintBucketTolerance', parseInt(value))\n }\n )\n\n paint_bucket_settings_container.appendChild(paint_bucket_settings_title)\n paint_bucket_settings_container.appendChild(\n paintBucketToleranceSliderObj.container\n )\n\n return paint_bucket_settings_container\n }\n\n private async createColorSelectSettings() {\n const color_select_settings_container = this.createContainer(true)\n\n const color_select_settings_title = this.createHeadline(\n 'Color Select Settings'\n )\n\n var tolerance = await this.messageBroker.pull('getTolerance')\n const colorSelectToleranceSliderObj = this.createSlider(\n 'Tolerance',\n 0,\n 255,\n 1,\n tolerance,\n (event, value) => {\n this.messageBroker.publish('setColorSelectTolerance', parseInt(value))\n }\n )\n\n const livePreviewToggle = this.createToggle(\n 'Live Preview',\n (event, value) => {\n this.messageBroker.publish('setLivePreview', value)\n }\n )\n\n const wholeImageToggle = this.createToggle(\n 'Apply to Whole Image',\n (event, value) => {\n this.messageBroker.publish('setWholeImage', value)\n }\n )\n\n const methodOptions = Object.values(ColorComparisonMethod)\n const methodSelect = this.createDropdown(\n 'Method',\n methodOptions,\n (event, value) => {\n this.messageBroker.publish('setColorComparisonMethod', value)\n }\n )\n\n const maskBoundaryToggle = this.createToggle(\n 'Stop at mask',\n (event, value) => {\n this.messageBroker.publish('setMaskBoundary', value)\n }\n )\n\n const maskToleranceSliderObj = this.createSlider(\n 'Mask Tolerance',\n 0,\n 255,\n 1,\n 0,\n (event, value) => {\n this.messageBroker.publish('setMaskTolerance', parseInt(value))\n }\n )\n\n color_select_settings_container.appendChild(color_select_settings_title)\n color_select_settings_container.appendChild(\n colorSelectToleranceSliderObj.container\n )\n color_select_settings_container.appendChild(livePreviewToggle)\n color_select_settings_container.appendChild(wholeImageToggle)\n color_select_settings_container.appendChild(methodSelect)\n color_select_settings_container.appendChild(maskBoundaryToggle)\n color_select_settings_container.appendChild(\n maskToleranceSliderObj.container\n )\n\n return color_select_settings_container\n }\n\n private async createImageLayerSettings() {\n const accentColor = this.darkMode\n ? 'maskEditor_accent_bg_dark'\n : 'maskEditor_accent_bg_light'\n\n const image_layer_settings_container = this.createContainer(true)\n\n const image_layer_settings_title = this.createHeadline('Layers')\n\n const mask_layer_title = this.createContainerTitle('Mask Layer')\n\n const mask_layer_container = this.createContainer(false)\n mask_layer_container.classList.add(accentColor)\n mask_layer_container.classList.add('maskEditor_layerRow')\n\n const mask_layer_visibility_checkbox = document.createElement('input')\n mask_layer_visibility_checkbox.setAttribute('type', 'checkbox')\n mask_layer_visibility_checkbox.checked = true\n mask_layer_visibility_checkbox.classList.add(\n 'maskEditor_sidePanelLayerCheckbox'\n )\n mask_layer_visibility_checkbox.addEventListener('change', (event) => {\n if (!(event.target as HTMLInputElement)!.checked) {\n this.maskCanvas.style.opacity = '0'\n } else {\n this.maskCanvas.style.opacity = String(this.mask_opacity) //change name\n }\n })\n\n var mask_layer_image_container = document.createElement('div')\n mask_layer_image_container.classList.add(\n 'maskEditor_sidePanelLayerPreviewContainer'\n )\n mask_layer_image_container.innerHTML =\n ' '\n\n var blending_options = ['black', 'white', 'negative']\n\n const sidePanelDropdownAccent = this.darkMode\n ? 'maskEditor_sidePanelDropdown_dark'\n : 'maskEditor_sidePanelDropdown_light'\n\n var mask_layer_dropdown = document.createElement('select')\n mask_layer_dropdown.classList.add(sidePanelDropdownAccent)\n mask_layer_dropdown.classList.add(sidePanelDropdownAccent)\n blending_options.forEach((option) => {\n var option_element = document.createElement('option')\n option_element.value = option\n option_element.innerText = option\n mask_layer_dropdown.appendChild(option_element)\n\n if (option == this.maskBlendMode) {\n option_element.selected = true\n }\n })\n\n mask_layer_dropdown.addEventListener('change', (event) => {\n const selectedValue = (event.target as HTMLSelectElement)\n .value as MaskBlendMode\n this.maskBlendMode = selectedValue\n this.updateMaskColor()\n })\n\n mask_layer_container.appendChild(mask_layer_visibility_checkbox)\n mask_layer_container.appendChild(mask_layer_image_container)\n mask_layer_container.appendChild(mask_layer_dropdown)\n\n const mask_layer_opacity_sliderObj = this.createSlider(\n 'Mask Opacity',\n 0.0,\n 1.0,\n 0.01,\n this.mask_opacity,\n (event, value) => {\n this.mask_opacity = parseFloat(value)\n this.maskCanvas.style.opacity = String(this.mask_opacity)\n\n if (this.mask_opacity == 0) {\n mask_layer_visibility_checkbox.checked = false\n } else {\n mask_layer_visibility_checkbox.checked = true\n }\n }\n )\n this.maskOpacitySlider = mask_layer_opacity_sliderObj.slider\n\n const image_layer_title = this.createContainerTitle('Image Layer')\n\n const image_layer_container = this.createContainer(false)\n image_layer_container.classList.add(accentColor)\n image_layer_container.classList.add('maskEditor_layerRow')\n\n const image_layer_visibility_checkbox = document.createElement('input')\n image_layer_visibility_checkbox.setAttribute('type', 'checkbox')\n image_layer_visibility_checkbox.classList.add(\n 'maskEditor_sidePanelLayerCheckbox'\n )\n image_layer_visibility_checkbox.checked = true\n image_layer_visibility_checkbox.addEventListener('change', (event) => {\n if (!(event.target as HTMLInputElement)!.checked) {\n this.imgCanvas.style.opacity = '0'\n } else {\n this.imgCanvas.style.opacity = '1'\n }\n })\n\n const image_layer_image_container = document.createElement('div')\n image_layer_image_container.classList.add(\n 'maskEditor_sidePanelLayerPreviewContainer'\n )\n\n const image_layer_image = document.createElement('img')\n image_layer_image.id = 'maskEditor_sidePanelImageLayerImage'\n image_layer_image.src =\n ComfyApp.clipspace?.imgs?.[ComfyApp.clipspace?.selectedIndex ?? 0]?.src ??\n ''\n this.sidebarImage = image_layer_image\n\n image_layer_image_container.appendChild(image_layer_image)\n\n image_layer_container.appendChild(image_layer_visibility_checkbox)\n image_layer_container.appendChild(image_layer_image_container)\n\n image_layer_settings_container.appendChild(image_layer_settings_title)\n image_layer_settings_container.appendChild(mask_layer_title)\n image_layer_settings_container.appendChild(mask_layer_container)\n image_layer_settings_container.appendChild(\n mask_layer_opacity_sliderObj.container\n )\n image_layer_settings_container.appendChild(image_layer_title)\n image_layer_settings_container.appendChild(image_layer_container)\n\n return image_layer_settings_container\n }\n\n private createHeadline(title: string) {\n var headline = document.createElement('h3')\n headline.classList.add('maskEditor_sidePanelTitle')\n headline.innerText = title\n\n return headline\n }\n\n private createContainer(flexDirection: boolean) {\n var container = document.createElement('div')\n if (flexDirection) {\n container.classList.add('maskEditor_sidePanelContainerColumn')\n } else {\n container.classList.add('maskEditor_sidePanelContainerRow')\n }\n\n return container\n }\n\n private createContainerTitle(title: string) {\n var container_title = document.createElement('span')\n container_title.classList.add('maskEditor_sidePanelSubTitle')\n container_title.innerText = title\n\n return container_title\n }\n\n private createSlider(\n title: string,\n min: number,\n max: number,\n step: number,\n value: number,\n callback: (event: Event, value: string) => void\n ) {\n var slider_container = this.createContainer(true)\n var slider_title = this.createContainerTitle(title)\n\n var slider = document.createElement('input')\n slider.classList.add('maskEditor_sidePanelBrushRange')\n slider.setAttribute('type', 'range')\n slider.setAttribute('min', String(min))\n slider.setAttribute('max', String(max))\n slider.setAttribute('step', String(step))\n slider.setAttribute('value', String(value))\n slider.addEventListener('input', (event) => {\n callback(event, (event.target as HTMLInputElement).value)\n })\n slider_container.appendChild(slider_title)\n slider_container.appendChild(slider)\n\n return { container: slider_container, slider: slider }\n }\n\n private createToggle(\n title: string,\n callback: (event: Event, value: boolean) => void\n ) {\n var outer_Container = this.createContainer(false)\n var toggle_title = this.createContainerTitle(title)\n\n var toggle_container = document.createElement('label')\n toggle_container.classList.add('maskEditor_sidePanelToggleContainer')\n\n var toggle_checkbox = document.createElement('input')\n toggle_checkbox.setAttribute('type', 'checkbox')\n toggle_checkbox.classList.add('maskEditor_sidePanelToggleCheckbox')\n toggle_checkbox.addEventListener('change', (event) => {\n callback(event, (event.target as HTMLInputElement).checked)\n })\n\n var toggleAccentColor = this.darkMode\n ? 'maskEditor_toggle_bg_dark'\n : 'maskEditor_toggle_bg_light'\n\n var toggle_switch = document.createElement('div')\n toggle_switch.classList.add('maskEditor_sidePanelToggleSwitch')\n toggle_switch.classList.add(toggleAccentColor)\n\n toggle_container.appendChild(toggle_checkbox)\n toggle_container.appendChild(toggle_switch)\n\n outer_Container.appendChild(toggle_title)\n outer_Container.appendChild(toggle_container)\n\n return outer_Container\n }\n\n private createDropdown(\n title: string,\n options: string[],\n callback: (event: Event, value: string) => void\n ) {\n const sidePanelDropdownAccent = this.darkMode\n ? 'maskEditor_sidePanelDropdown_dark'\n : 'maskEditor_sidePanelDropdown_light'\n var dropdown_container = this.createContainer(false)\n var dropdown_title = this.createContainerTitle(title)\n\n var dropdown = document.createElement('select')\n dropdown.classList.add(sidePanelDropdownAccent)\n dropdown.classList.add('maskEditor_containerDropdown')\n\n options.forEach((option) => {\n var option_element = document.createElement('option')\n option_element.value = option\n option_element.innerText = option\n dropdown.appendChild(option_element)\n })\n\n dropdown.addEventListener('change', (event) => {\n callback(event, (event.target as HTMLSelectElement).value)\n })\n\n dropdown_container.appendChild(dropdown_title)\n dropdown_container.appendChild(dropdown)\n\n return dropdown_container\n }\n\n private createSeparator() {\n var separator = document.createElement('div')\n separator.classList.add('maskEditor_sidePanelSeparator')\n\n return separator\n }\n\n //----------------\n\n private async createTopBar() {\n const buttonAccentColor = this.darkMode\n ? 'maskEditor_topPanelButton_dark'\n : 'maskEditor_topPanelButton_light'\n\n const iconButtonAccentColor = this.darkMode\n ? 'maskEditor_topPanelIconButton_dark'\n : 'maskEditor_topPanelIconButton_light'\n\n var top_bar = document.createElement('div')\n top_bar.id = 'maskEditor_topBar'\n\n var top_bar_title_container = document.createElement('div')\n top_bar_title_container.id = 'maskEditor_topBarTitleContainer'\n\n var top_bar_title = document.createElement('h1')\n top_bar_title.id = 'maskEditor_topBarTitle'\n top_bar_title.innerText = 'ComfyUI'\n\n top_bar_title_container.appendChild(top_bar_title)\n\n var top_bar_shortcuts_container = document.createElement('div')\n top_bar_shortcuts_container.id = 'maskEditor_topBarShortcutsContainer'\n\n var top_bar_undo_button = document.createElement('div')\n top_bar_undo_button.id = 'maskEditor_topBarUndoButton'\n top_bar_undo_button.classList.add(iconButtonAccentColor)\n top_bar_undo_button.innerHTML =\n ' '\n\n top_bar_undo_button.addEventListener('click', () => {\n this.messageBroker.publish('undo')\n })\n\n var top_bar_redo_button = document.createElement('div')\n top_bar_redo_button.id = 'maskEditor_topBarRedoButton'\n top_bar_redo_button.classList.add(iconButtonAccentColor)\n top_bar_redo_button.innerHTML =\n ' '\n\n top_bar_redo_button.addEventListener('click', () => {\n this.messageBroker.publish('redo')\n })\n\n var top_bar_invert_button = document.createElement('button')\n top_bar_invert_button.id = 'maskEditor_topBarInvertButton'\n top_bar_invert_button.classList.add(buttonAccentColor)\n top_bar_invert_button.innerText = 'Invert'\n top_bar_invert_button.addEventListener('click', () => {\n this.messageBroker.publish('invert')\n })\n\n var top_bar_clear_button = document.createElement('button')\n top_bar_clear_button.id = 'maskEditor_topBarClearButton'\n top_bar_clear_button.classList.add(buttonAccentColor)\n top_bar_clear_button.innerText = 'Clear'\n\n top_bar_clear_button.addEventListener('click', () => {\n this.maskCtx.clearRect(\n 0,\n 0,\n this.maskCanvas.width,\n this.maskCanvas.height\n )\n this.messageBroker.publish('saveState')\n })\n\n var top_bar_save_button = document.createElement('button')\n top_bar_save_button.id = 'maskEditor_topBarSaveButton'\n top_bar_save_button.classList.add(buttonAccentColor)\n top_bar_save_button.innerText = 'Save'\n this.saveButton = top_bar_save_button\n\n top_bar_save_button.addEventListener('click', () => {\n this.maskEditor.save()\n })\n\n var top_bar_cancel_button = document.createElement('button')\n top_bar_cancel_button.id = 'maskEditor_topBarCancelButton'\n top_bar_cancel_button.classList.add(buttonAccentColor)\n top_bar_cancel_button.innerText = 'Cancel'\n\n top_bar_cancel_button.addEventListener('click', () => {\n this.maskEditor.close()\n })\n\n top_bar_shortcuts_container.appendChild(top_bar_undo_button)\n top_bar_shortcuts_container.appendChild(top_bar_redo_button)\n top_bar_shortcuts_container.appendChild(top_bar_invert_button)\n top_bar_shortcuts_container.appendChild(top_bar_clear_button)\n top_bar_shortcuts_container.appendChild(top_bar_save_button)\n top_bar_shortcuts_container.appendChild(top_bar_cancel_button)\n\n top_bar.appendChild(top_bar_title_container)\n top_bar.appendChild(top_bar_shortcuts_container)\n\n return top_bar\n }\n\n private createToolPanel() {\n var tool_panel = document.createElement('div')\n tool_panel.id = 'maskEditor_toolPanel'\n this.toolPanel = tool_panel\n var toolPanelHoverAccent = this.darkMode\n ? 'maskEditor_toolPanelContainerDark'\n : 'maskEditor_toolPanelContainerLight'\n\n var toolElements: HTMLElement[] = []\n\n //brush tool\n\n var toolPanel_brushToolContainer = document.createElement('div')\n toolPanel_brushToolContainer.classList.add('maskEditor_toolPanelContainer')\n toolPanel_brushToolContainer.classList.add(\n 'maskEditor_toolPanelContainerSelected'\n )\n toolPanel_brushToolContainer.classList.add(toolPanelHoverAccent)\n toolPanel_brushToolContainer.innerHTML = `\n \n \n \n \n `\n toolElements.push(toolPanel_brushToolContainer)\n\n toolPanel_brushToolContainer.addEventListener('click', () => {\n //move logic to tool manager\n this.messageBroker.publish('setTool', Tools.Pen)\n for (let toolElement of toolElements) {\n if (toolElement != toolPanel_brushToolContainer) {\n toolElement.classList.remove('maskEditor_toolPanelContainerSelected')\n } else {\n toolElement.classList.add('maskEditor_toolPanelContainerSelected')\n this.brushSettingsHTML.style.display = 'flex'\n this.colorSelectSettingsHTML.style.display = 'none'\n this.paintBucketSettingsHTML.style.display = 'none'\n }\n }\n this.messageBroker.publish('setTool', Tools.Pen)\n this.pointerZone.style.cursor = 'none'\n })\n\n var toolPanel_brushToolIndicator = document.createElement('div')\n toolPanel_brushToolIndicator.classList.add('maskEditor_toolPanelIndicator')\n\n toolPanel_brushToolContainer.appendChild(toolPanel_brushToolIndicator)\n\n //eraser tool\n\n var toolPanel_eraserToolContainer = document.createElement('div')\n toolPanel_eraserToolContainer.classList.add('maskEditor_toolPanelContainer')\n toolPanel_eraserToolContainer.classList.add(toolPanelHoverAccent)\n toolPanel_eraserToolContainer.innerHTML = `\n \n \n \n \n \n \n \n `\n toolElements.push(toolPanel_eraserToolContainer)\n\n toolPanel_eraserToolContainer.addEventListener('click', () => {\n //move logic to tool manager\n this.messageBroker.publish('setTool', Tools.Eraser)\n for (let toolElement of toolElements) {\n if (toolElement != toolPanel_eraserToolContainer) {\n toolElement.classList.remove('maskEditor_toolPanelContainerSelected')\n } else {\n toolElement.classList.add('maskEditor_toolPanelContainerSelected')\n this.brushSettingsHTML.style.display = 'flex'\n this.colorSelectSettingsHTML.style.display = 'none'\n this.paintBucketSettingsHTML.style.display = 'none'\n }\n }\n this.messageBroker.publish('setTool', Tools.Eraser)\n this.pointerZone.style.cursor = 'none'\n })\n\n var toolPanel_eraserToolIndicator = document.createElement('div')\n toolPanel_eraserToolIndicator.classList.add('maskEditor_toolPanelIndicator')\n\n toolPanel_eraserToolContainer.appendChild(toolPanel_eraserToolIndicator)\n\n //paint bucket tool\n\n var toolPanel_paintBucketToolContainer = document.createElement('div')\n toolPanel_paintBucketToolContainer.classList.add(\n 'maskEditor_toolPanelContainer'\n )\n toolPanel_paintBucketToolContainer.classList.add(toolPanelHoverAccent)\n toolPanel_paintBucketToolContainer.innerHTML = `\n \n \n \n \n \n `\n toolElements.push(toolPanel_paintBucketToolContainer)\n\n toolPanel_paintBucketToolContainer.addEventListener('click', () => {\n //move logic to tool manager\n this.messageBroker.publish('setTool', Tools.PaintBucket)\n for (let toolElement of toolElements) {\n if (toolElement != toolPanel_paintBucketToolContainer) {\n toolElement.classList.remove('maskEditor_toolPanelContainerSelected')\n } else {\n toolElement.classList.add('maskEditor_toolPanelContainerSelected')\n this.brushSettingsHTML.style.display = 'none'\n this.colorSelectSettingsHTML.style.display = 'none'\n this.paintBucketSettingsHTML.style.display = 'flex'\n }\n }\n this.messageBroker.publish('setTool', Tools.PaintBucket)\n this.pointerZone.style.cursor =\n \"url('/cursor/paintBucket.png') 30 25, auto\"\n this.brush.style.opacity = '0'\n })\n\n var toolPanel_paintBucketToolIndicator = document.createElement('div')\n toolPanel_paintBucketToolIndicator.classList.add(\n 'maskEditor_toolPanelIndicator'\n )\n\n toolPanel_paintBucketToolContainer.appendChild(\n toolPanel_paintBucketToolIndicator\n )\n\n //color select tool\n\n var toolPanel_colorSelectToolContainer = document.createElement('div')\n toolPanel_colorSelectToolContainer.classList.add(\n 'maskEditor_toolPanelContainer'\n )\n toolPanel_colorSelectToolContainer.classList.add(toolPanelHoverAccent)\n toolPanel_colorSelectToolContainer.innerHTML = `\n \n \n \n `\n toolElements.push(toolPanel_colorSelectToolContainer)\n toolPanel_colorSelectToolContainer.addEventListener('click', () => {\n this.messageBroker.publish('setTool', 'colorSelect')\n for (let toolElement of toolElements) {\n if (toolElement != toolPanel_colorSelectToolContainer) {\n toolElement.classList.remove('maskEditor_toolPanelContainerSelected')\n } else {\n toolElement.classList.add('maskEditor_toolPanelContainerSelected')\n this.brushSettingsHTML.style.display = 'none'\n this.paintBucketSettingsHTML.style.display = 'none'\n this.colorSelectSettingsHTML.style.display = 'flex'\n }\n }\n this.messageBroker.publish('setTool', Tools.ColorSelect)\n this.pointerZone.style.cursor =\n \"url('/cursor/colorSelect.png') 15 25, auto\"\n this.brush.style.opacity = '0'\n })\n\n var toolPanel_colorSelectToolIndicator = document.createElement('div')\n toolPanel_colorSelectToolIndicator.classList.add(\n 'maskEditor_toolPanelIndicator'\n )\n toolPanel_colorSelectToolContainer.appendChild(\n toolPanel_colorSelectToolIndicator\n )\n\n //zoom indicator\n var toolPanel_zoomIndicator = document.createElement('div')\n toolPanel_zoomIndicator.classList.add('maskEditor_toolPanelZoomIndicator')\n toolPanel_zoomIndicator.classList.add(toolPanelHoverAccent)\n\n var toolPanel_zoomText = document.createElement('span')\n toolPanel_zoomText.id = 'maskEditor_toolPanelZoomText'\n toolPanel_zoomText.innerText = '100%'\n this.zoomTextHTML = toolPanel_zoomText\n\n var toolPanel_DimensionsText = document.createElement('span')\n toolPanel_DimensionsText.id = 'maskEditor_toolPanelDimensionsText'\n toolPanel_DimensionsText.innerText = ' '\n this.dimensionsTextHTML = toolPanel_DimensionsText\n\n toolPanel_zoomIndicator.appendChild(toolPanel_zoomText)\n toolPanel_zoomIndicator.appendChild(toolPanel_DimensionsText)\n\n toolPanel_zoomIndicator.addEventListener('click', () => {\n this.messageBroker.publish('resetZoom')\n })\n\n tool_panel.appendChild(toolPanel_brushToolContainer)\n tool_panel.appendChild(toolPanel_eraserToolContainer)\n tool_panel.appendChild(toolPanel_paintBucketToolContainer)\n tool_panel.appendChild(toolPanel_colorSelectToolContainer)\n tool_panel.appendChild(toolPanel_zoomIndicator)\n\n return tool_panel\n }\n\n private createPointerZone() {\n const pointer_zone = document.createElement('div')\n pointer_zone.id = 'maskEditor_pointerZone'\n\n this.pointerZone = pointer_zone\n\n pointer_zone.addEventListener('pointerdown', (event: PointerEvent) => {\n this.messageBroker.publish('pointerDown', event)\n })\n\n pointer_zone.addEventListener('pointermove', (event: PointerEvent) => {\n this.messageBroker.publish('pointerMove', event)\n })\n\n pointer_zone.addEventListener('pointerup', (event: PointerEvent) => {\n this.messageBroker.publish('pointerUp', event)\n })\n\n pointer_zone.addEventListener('pointerleave', (event: PointerEvent) => {\n this.brush.style.opacity = '0'\n this.pointerZone.style.cursor = ''\n })\n\n pointer_zone.addEventListener('touchstart', (event: TouchEvent) => {\n this.messageBroker.publish('handleTouchStart', event)\n })\n\n pointer_zone.addEventListener('touchmove', (event: TouchEvent) => {\n this.messageBroker.publish('handleTouchMove', event)\n })\n\n pointer_zone.addEventListener('touchend', (event: TouchEvent) => {\n this.messageBroker.publish('handleTouchEnd', event)\n })\n\n pointer_zone.addEventListener('wheel', (event) =>\n this.messageBroker.publish('wheel', event)\n )\n\n pointer_zone.addEventListener(\n 'pointerenter',\n async (event: PointerEvent) => {\n this.updateCursor()\n }\n )\n\n return pointer_zone\n }\n\n async screenToCanvas(clientPoint: Point): Promise {\n // Get the bounding rectangles for both elements\n const zoomRatio = await this.messageBroker.pull('zoomRatio')\n const canvasRect = this.maskCanvas.getBoundingClientRect()\n\n // Calculate the offset between pointer zone and canvas\n const offsetX = clientPoint.x - canvasRect.left + this.toolPanel.clientWidth\n const offsetY = clientPoint.y - canvasRect.top + 44 // 44 is the height of the top menu\n\n const x = offsetX / zoomRatio\n const y = offsetY / zoomRatio\n\n return { x: x, y: y }\n }\n\n private setEventHandler() {\n this.maskCanvas.addEventListener('contextmenu', (event: Event) => {\n event.preventDefault()\n })\n\n this.rootElement.addEventListener('contextmenu', (event: Event) => {\n event.preventDefault()\n })\n\n this.rootElement.addEventListener('dragstart', (event) => {\n if (event.ctrlKey) {\n event.preventDefault()\n }\n })\n }\n\n private async createBrush() {\n var brush = document.createElement('div')\n const brushSettings = await this.messageBroker.pull('brushSettings')\n brush.id = 'maskEditor_brush'\n\n var brush_preview_gradient = document.createElement('div')\n brush_preview_gradient.id = 'maskEditor_brushPreviewGradient'\n\n brush.appendChild(brush_preview_gradient)\n\n this.brush = brush\n this.brushPreviewGradient = brush_preview_gradient\n\n return brush\n }\n\n async setImages(imgCanvas: HTMLCanvasElement) {\n const imgCtx = imgCanvas.getContext('2d', { willReadFrequently: true })\n const maskCtx = this.maskCtx\n const maskCanvas = this.maskCanvas\n\n imgCtx!.clearRect(0, 0, this.imgCanvas.width, this.imgCanvas.height)\n maskCtx.clearRect(0, 0, this.maskCanvas.width, this.maskCanvas.height)\n\n const alpha_url = new URL(\n ComfyApp.clipspace?.imgs?.[ComfyApp.clipspace?.selectedIndex ?? 0]?.src ??\n ''\n )\n alpha_url.searchParams.delete('channel')\n alpha_url.searchParams.delete('preview')\n alpha_url.searchParams.set('channel', 'a')\n let mask_image: HTMLImageElement = await this.loadImage(alpha_url)\n\n // original image load\n if (\n !ComfyApp.clipspace?.imgs?.[ComfyApp.clipspace?.selectedIndex ?? 0]?.src\n ) {\n throw new Error(\n 'Unable to access image source - clipspace or image is null'\n )\n }\n\n const rgb_url = new URL(\n ComfyApp.clipspace.imgs[ComfyApp.clipspace.selectedIndex].src\n )\n this.imageURL = rgb_url\n console.log(rgb_url)\n rgb_url.searchParams.delete('channel')\n rgb_url.searchParams.set('channel', 'rgb')\n this.image = new Image()\n\n this.image = await new Promise((resolve, reject) => {\n const img = new Image()\n img.onload = () => resolve(img)\n img.onerror = reject\n img.src = rgb_url.toString()\n })\n\n maskCanvas.width = this.image.width\n maskCanvas.height = this.image.height\n\n this.dimensionsTextHTML.innerText = `${this.image.width}x${this.image.height}`\n\n await this.invalidateCanvas(this.image, mask_image)\n this.messageBroker.publish('initZoomPan', [this.image, this.rootElement])\n }\n\n async invalidateCanvas(\n orig_image: HTMLImageElement,\n mask_image: HTMLImageElement\n ) {\n this.imgCanvas.width = orig_image.width\n this.imgCanvas.height = orig_image.height\n\n this.maskCanvas.width = orig_image.width\n this.maskCanvas.height = orig_image.height\n\n let imgCtx = this.imgCanvas.getContext('2d', { willReadFrequently: true })\n let maskCtx = this.maskCanvas.getContext('2d', {\n willReadFrequently: true\n })\n\n imgCtx!.drawImage(orig_image, 0, 0, orig_image.width, orig_image.height)\n await this.prepare_mask(\n mask_image,\n this.maskCanvas,\n maskCtx!,\n await this.getMaskColor()\n )\n }\n\n private async prepare_mask(\n image: HTMLImageElement,\n maskCanvas: HTMLCanvasElement,\n maskCtx: CanvasRenderingContext2D,\n maskColor: { r: number; g: number; b: number }\n ) {\n // paste mask data into alpha channel\n maskCtx.drawImage(image, 0, 0, maskCanvas.width, maskCanvas.height)\n const maskData = maskCtx.getImageData(\n 0,\n 0,\n maskCanvas.width,\n maskCanvas.height\n )\n\n // invert mask\n for (let i = 0; i < maskData.data.length; i += 4) {\n const alpha = maskData.data[i + 3]\n maskData.data[i] = maskColor.r\n maskData.data[i + 1] = maskColor.g\n maskData.data[i + 2] = maskColor.b\n maskData.data[i + 3] = 255 - alpha\n }\n\n maskCtx.globalCompositeOperation = 'source-over'\n maskCtx.putImageData(maskData, 0, 0)\n }\n\n private async updateMaskColor() {\n // update mask canvas css styles\n const maskCanvasStyle = this.getMaskCanvasStyle()\n this.maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode\n this.maskCanvas.style.opacity = maskCanvasStyle.opacity.toString()\n\n // update mask canvas rgb colors\n const maskColor = await this.getMaskColor()\n this.maskCtx.fillStyle = `rgb(${maskColor.r}, ${maskColor.g}, ${maskColor.b})`\n\n //set canvas background color\n this.setCanvasBackground()\n\n const maskData = this.maskCtx.getImageData(\n 0,\n 0,\n this.maskCanvas.width,\n this.maskCanvas.height\n )\n for (let i = 0; i < maskData.data.length; i += 4) {\n maskData.data[i] = maskColor.r\n maskData.data[i + 1] = maskColor.g\n maskData.data[i + 2] = maskColor.b\n }\n this.maskCtx.putImageData(maskData, 0, 0)\n }\n\n getMaskCanvasStyle() {\n if (this.maskBlendMode === MaskBlendMode.Negative) {\n return {\n mixBlendMode: 'difference',\n opacity: '1'\n }\n } else {\n return {\n mixBlendMode: 'initial',\n opacity: this.mask_opacity\n }\n }\n }\n\n private detectLightMode() {\n this.darkMode = document.body.classList.contains('dark-theme')\n }\n\n private loadImage(imagePath: URL): Promise {\n return new Promise((resolve, reject) => {\n const image = new Image() as HTMLImageElement\n image.onload = function () {\n resolve(image)\n }\n image.onerror = function (error) {\n reject(error)\n }\n image.src = imagePath.href\n })\n }\n\n async updateBrushPreview() {\n const cursorPoint = await this.messageBroker.pull('cursorPoint')\n const pan_offset = await this.messageBroker.pull('panOffset')\n const brushSettings = await this.messageBroker.pull('brushSettings')\n const zoom_ratio = await this.messageBroker.pull('zoomRatio')\n const centerX = cursorPoint.x + pan_offset.x\n const centerY = cursorPoint.y + pan_offset.y\n const brush = this.brush\n const hardness = brushSettings.hardness\n const extendedSize = brushSettings.size * (2 - hardness) * 2 * zoom_ratio\n\n this.brushSizeSlider.value = String(brushSettings.size)\n this.brushHardnessSlider.value = String(hardness)\n\n brush.style.width = extendedSize + 'px'\n brush.style.height = extendedSize + 'px'\n brush.style.left = centerX - extendedSize / 2 + 'px'\n brush.style.top = centerY - extendedSize / 2 + 'px'\n\n if (hardness === 1) {\n this.brushPreviewGradient.style.background = 'rgba(255, 0, 0, 0.5)'\n return\n }\n\n const opacityStop = hardness / 4 + 0.25\n\n this.brushPreviewGradient.style.background = `\n radial-gradient(\n circle,\n rgba(255, 0, 0, 0.5) 0%,\n rgba(255, 0, 0, ${opacityStop}) ${hardness * 100}%,\n rgba(255, 0, 0, 0) 100%\n )\n `\n }\n\n getMaskBlendMode() {\n return this.maskBlendMode\n }\n\n setSidebarImage() {\n this.sidebarImage.src = this.imageURL.href\n }\n\n async getMaskColor() {\n if (this.maskBlendMode === MaskBlendMode.Black) {\n return { r: 0, g: 0, b: 0 }\n }\n if (this.maskBlendMode === MaskBlendMode.White) {\n return { r: 255, g: 255, b: 255 }\n }\n if (this.maskBlendMode === MaskBlendMode.Negative) {\n // negative effect only works with white color\n return { r: 255, g: 255, b: 255 }\n }\n\n return { r: 0, g: 0, b: 0 }\n }\n\n async getMaskFillStyle() {\n const maskColor = await this.getMaskColor()\n\n return 'rgb(' + maskColor.r + ',' + maskColor.g + ',' + maskColor.b + ')'\n }\n\n async setCanvasBackground() {\n if (this.maskBlendMode === MaskBlendMode.White) {\n this.canvasBackground.style.background = 'black'\n } else {\n this.canvasBackground.style.background = 'white'\n }\n }\n\n getMaskCanvas() {\n return this.maskCanvas\n }\n\n getImgCanvas() {\n return this.imgCanvas\n }\n\n getImage() {\n return this.image\n }\n\n setBrushOpacity(opacity: number) {\n this.brush.style.opacity = String(opacity)\n }\n\n setSaveButtonEnabled(enabled: boolean) {\n this.saveButton.disabled = !enabled\n }\n\n setSaveButtonText(text: string) {\n this.saveButton.innerText = text\n }\n\n handlePaintBucketCursor(isPaintBucket: boolean) {\n if (isPaintBucket) {\n this.pointerZone.style.cursor =\n \"url('/cursor/paintBucket.png') 30 25, auto\"\n } else {\n this.pointerZone.style.cursor = 'none'\n }\n }\n\n handlePanCursor(isPanning: boolean) {\n if (isPanning) {\n this.pointerZone.style.cursor = 'grabbing'\n } else {\n this.pointerZone.style.cursor = 'none'\n }\n }\n\n setBrushVisibility(visible: boolean) {\n this.brush.style.opacity = visible ? '1' : '0'\n }\n\n setBrushPreviewGradientVisibility(visible: boolean) {\n this.brushPreviewGradient.style.display = visible ? 'block' : 'none'\n }\n\n async updateCursor() {\n const currentTool = await this.messageBroker.pull('currentTool')\n if (currentTool === Tools.PaintBucket) {\n this.pointerZone.style.cursor =\n \"url('/cursor/paintBucket.png') 30 25, auto\"\n this.setBrushOpacity(0)\n } else if (currentTool === Tools.ColorSelect) {\n this.pointerZone.style.cursor =\n \"url('/cursor/colorSelect.png') 15 25, auto\"\n this.setBrushOpacity(0)\n } else {\n this.pointerZone.style.cursor = 'none'\n this.setBrushOpacity(1)\n }\n\n this.updateBrushPreview()\n this.setBrushPreviewGradientVisibility(false)\n }\n\n setZoomText(zoomText: string) {\n this.zoomTextHTML.innerText = zoomText\n }\n\n setDimensionsText(dimensionsText: string) {\n this.dimensionsTextHTML.innerText = dimensionsText\n }\n}\n\nclass ToolManager {\n maskEditor: MaskEditorDialog\n messageBroker: MessageBroker\n mouseDownPoint: Point | null = null\n\n currentTool: Tools = Tools.Pen\n isAdjustingBrush: boolean = false // is user adjusting brush size or hardness with alt + right mouse button\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.addListeners()\n this.addPullTopics()\n }\n\n private addListeners() {\n this.messageBroker.subscribe('setTool', async (tool: Tools) => {\n this.setTool(tool)\n })\n\n this.messageBroker.subscribe('pointerDown', async (event: PointerEvent) => {\n this.handlePointerDown(event)\n })\n\n this.messageBroker.subscribe('pointerMove', async (event: PointerEvent) => {\n this.handlePointerMove(event)\n })\n\n this.messageBroker.subscribe('pointerUp', async (event: PointerEvent) => {\n this.handlePointerUp(event)\n })\n\n this.messageBroker.subscribe('wheel', async (event: WheelEvent) => {\n this.handleWheelEvent(event)\n })\n }\n\n private async addPullTopics() {\n this.messageBroker.createPullTopic('currentTool', async () =>\n this.getCurrentTool()\n )\n }\n\n //tools\n\n setTool(tool: Tools) {\n this.currentTool = tool\n\n if (tool != Tools.ColorSelect) {\n this.messageBroker.publish('clearLastPoint')\n }\n }\n\n getCurrentTool() {\n return this.currentTool\n }\n\n private async handlePointerDown(event: PointerEvent) {\n event.preventDefault()\n if (event.pointerType == 'touch') return\n\n var isSpacePressed = await this.messageBroker.pull('isKeyPressed', ' ')\n\n // Pan canvas\n if (event.buttons === 4 || (event.buttons === 1 && isSpacePressed)) {\n this.messageBroker.publish('panStart', event)\n this.messageBroker.publish('setBrushVisibility', false)\n return\n }\n\n //paint bucket\n if (this.currentTool === Tools.PaintBucket && event.button === 0) {\n const offset = { x: event.offsetX, y: event.offsetY }\n const coords_canvas = await this.messageBroker.pull(\n 'screenToCanvas',\n offset\n )\n this.messageBroker.publish('paintBucketFill', coords_canvas)\n this.messageBroker.publish('saveState')\n return\n }\n\n if (this.currentTool === Tools.ColorSelect && event.button === 0) {\n const offset = { x: event.offsetX, y: event.offsetY }\n const coords_canvas = await this.messageBroker.pull(\n 'screenToCanvas',\n offset\n )\n this.messageBroker.publish('colorSelectFill', coords_canvas)\n return\n }\n\n // (brush resize/change hardness) Check for alt + right mouse button\n if (event.altKey && event.button === 2) {\n this.isAdjustingBrush = true\n this.messageBroker.publish('brushAdjustmentStart', event)\n return\n }\n\n var isDrawingTool = [Tools.Pen, Tools.Eraser].includes(this.currentTool)\n //drawing\n if ([0, 2].includes(event.button) && isDrawingTool) {\n this.messageBroker.publish('drawStart', event)\n return\n }\n }\n\n private async handlePointerMove(event: PointerEvent) {\n event.preventDefault()\n if (event.pointerType == 'touch') return\n const newCursorPoint = { x: event.clientX, y: event.clientY }\n this.messageBroker.publish('cursorPoint', newCursorPoint)\n\n var isSpacePressed = await this.messageBroker.pull('isKeyPressed', ' ')\n this.messageBroker.publish('updateBrushPreview')\n\n //move the canvas\n if (event.buttons === 4 || (event.buttons === 1 && isSpacePressed)) {\n this.messageBroker.publish('panMove', event)\n return\n }\n\n //prevent drawing with other tools\n\n var isDrawingTool = [Tools.Pen, Tools.Eraser].includes(this.currentTool)\n if (!isDrawingTool) return\n\n // alt + right mouse button hold brush adjustment\n if (\n this.isAdjustingBrush &&\n (this.currentTool === Tools.Pen || this.currentTool === Tools.Eraser) &&\n event.altKey &&\n event.buttons === 2\n ) {\n this.messageBroker.publish('brushAdjustment', event)\n return\n }\n\n //draw with pen or eraser\n if (event.buttons == 1 || event.buttons == 2) {\n this.messageBroker.publish('draw', event)\n return\n }\n }\n\n private handlePointerUp(event: PointerEvent) {\n this.messageBroker.publish('panCursor', false)\n if (event.pointerType === 'touch') return\n this.messageBroker.publish('updateCursor')\n this.isAdjustingBrush = false\n this.messageBroker.publish('drawEnd', event)\n this.mouseDownPoint = null\n }\n\n private handleWheelEvent(event: WheelEvent) {\n this.messageBroker.publish('zoom', event)\n const newCursorPoint = { x: event.clientX, y: event.clientY }\n this.messageBroker.publish('cursorPoint', newCursorPoint)\n }\n}\n\nclass PanAndZoomManager {\n maskEditor: MaskEditorDialog\n messageBroker: MessageBroker\n\n DOUBLE_TAP_DELAY: number = 300\n lastTwoFingerTap: number = 0\n\n isTouchZooming: boolean = false\n lastTouchZoomDistance: number = 0\n lastTouchMidPoint: Point = { x: 0, y: 0 }\n lastTouchPoint: Point = { x: 0, y: 0 }\n\n zoom_ratio: number = 1\n interpolatedZoomRatio: number = 1\n pan_offset: Offset = { x: 0, y: 0 }\n\n mouseDownPoint: Point | null = null\n initialPan: Offset = { x: 0, y: 0 }\n\n canvasContainer: HTMLElement | null = null\n maskCanvas: HTMLCanvasElement | null = null\n rootElement: HTMLElement | null = null\n\n image: HTMLImageElement | null = null\n imageRootWidth: number = 0\n imageRootHeight: number = 0\n\n cursorPoint: Point = { x: 0, y: 0 }\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n\n this.addListeners()\n this.addPullTopics()\n }\n\n private addListeners() {\n this.messageBroker.subscribe(\n 'initZoomPan',\n async (args: [HTMLImageElement, HTMLElement]) => {\n await this.initializeCanvasPanZoom(args[0], args[1])\n }\n )\n\n this.messageBroker.subscribe('panStart', async (event: PointerEvent) => {\n this.handlePanStart(event)\n })\n\n this.messageBroker.subscribe('panMove', async (event: PointerEvent) => {\n this.handlePanMove(event)\n })\n\n this.messageBroker.subscribe('zoom', async (event: WheelEvent) => {\n this.zoom(event)\n })\n\n this.messageBroker.subscribe('cursorPoint', async (point: Point) => {\n this.updateCursorPosition(point)\n })\n\n this.messageBroker.subscribe(\n 'handleTouchStart',\n async (event: TouchEvent) => {\n this.handleTouchStart(event)\n }\n )\n\n this.messageBroker.subscribe(\n 'handleTouchMove',\n async (event: TouchEvent) => {\n this.handleTouchMove(event)\n }\n )\n\n this.messageBroker.subscribe(\n 'handleTouchEnd',\n async (event: TouchEvent) => {\n this.handleTouchEnd(event)\n }\n )\n\n this.messageBroker.subscribe('resetZoom', async () => {\n if (this.interpolatedZoomRatio === 1) return\n await this.smoothResetView()\n })\n }\n\n private addPullTopics() {\n this.messageBroker.createPullTopic(\n 'cursorPoint',\n async () => this.cursorPoint\n )\n this.messageBroker.createPullTopic('zoomRatio', async () => this.zoom_ratio)\n this.messageBroker.createPullTopic('panOffset', async () => this.pan_offset)\n }\n\n handleTouchStart(event: TouchEvent) {\n event.preventDefault()\n if ((event.touches[0] as any).touchType === 'stylus') return\n this.messageBroker.publish('setBrushVisibility', false)\n if (event.touches.length === 2) {\n const currentTime = new Date().getTime()\n const tapTimeDiff = currentTime - this.lastTwoFingerTap\n\n if (tapTimeDiff < this.DOUBLE_TAP_DELAY) {\n // Double tap detected\n this.handleDoubleTap()\n this.lastTwoFingerTap = 0 // Reset to prevent triple-tap\n } else {\n this.lastTwoFingerTap = currentTime\n\n // Existing two-finger touch logic\n this.isTouchZooming = true\n this.lastTouchZoomDistance = this.getTouchDistance(event.touches)\n const midpoint = this.getTouchMidpoint(event.touches)\n this.lastTouchMidPoint = midpoint\n }\n } else if (event.touches.length === 1) {\n this.lastTouchPoint = {\n x: event.touches[0].clientX,\n y: event.touches[0].clientY\n }\n }\n }\n\n async handleTouchMove(event: TouchEvent) {\n event.preventDefault()\n if ((event.touches[0] as any).touchType === 'stylus') return\n\n this.lastTwoFingerTap = 0\n if (this.isTouchZooming && event.touches.length === 2) {\n // Handle zooming\n const newDistance = this.getTouchDistance(event.touches)\n const zoomFactor = newDistance / this.lastTouchZoomDistance\n const oldZoom = this.zoom_ratio\n this.zoom_ratio = Math.max(\n 0.2,\n Math.min(10.0, this.zoom_ratio * zoomFactor)\n )\n const newZoom = this.zoom_ratio\n\n // Calculate the midpoint of the two touches\n const midpoint = this.getTouchMidpoint(event.touches)\n\n // Handle panning - calculate the movement of the midpoint\n if (this.lastTouchMidPoint) {\n const deltaX = midpoint.x - this.lastTouchMidPoint.x\n const deltaY = midpoint.y - this.lastTouchMidPoint.y\n\n // Apply the pan\n this.pan_offset.x += deltaX\n this.pan_offset.y += deltaY\n }\n\n // Get touch position relative to the container\n if (this.maskCanvas === null) {\n this.maskCanvas = await this.messageBroker.pull('maskCanvas')\n }\n const rect = this.maskCanvas!.getBoundingClientRect()\n const touchX = midpoint.x - rect.left\n const touchY = midpoint.y - rect.top\n\n // Calculate new pan position based on zoom\n const scaleFactor = newZoom / oldZoom\n this.pan_offset.x += touchX - touchX * scaleFactor\n this.pan_offset.y += touchY - touchY * scaleFactor\n\n this.invalidatePanZoom()\n this.lastTouchZoomDistance = newDistance\n this.lastTouchMidPoint = midpoint\n } else if (event.touches.length === 1) {\n // Handle single touch pan\n this.handleSingleTouchPan(event.touches[0])\n }\n }\n\n handleTouchEnd(event: TouchEvent) {\n event.preventDefault()\n if (\n event.touches.length === 0 &&\n (event.touches[0] as any).touchType === 'stylus'\n ) {\n return\n }\n\n this.isTouchZooming = false\n this.lastTouchMidPoint = { x: 0, y: 0 }\n\n if (event.touches.length === 0) {\n this.lastTouchPoint = { x: 0, y: 0 }\n } else if (event.touches.length === 1) {\n this.lastTouchPoint = {\n x: event.touches[0].clientX,\n y: event.touches[0].clientY\n }\n }\n }\n\n private getTouchDistance(touches: TouchList) {\n const dx = touches[0].clientX - touches[1].clientX\n const dy = touches[0].clientY - touches[1].clientY\n return Math.sqrt(dx * dx + dy * dy)\n }\n\n private getTouchMidpoint(touches: TouchList) {\n return {\n x: (touches[0].clientX + touches[1].clientX) / 2,\n y: (touches[0].clientY + touches[1].clientY) / 2\n }\n }\n\n private async handleSingleTouchPan(touch: Touch) {\n if (this.lastTouchPoint === null) {\n this.lastTouchPoint = { x: touch.clientX, y: touch.clientY }\n return\n }\n\n const deltaX = touch.clientX - this.lastTouchPoint.x\n const deltaY = touch.clientY - this.lastTouchPoint.y\n\n this.pan_offset.x += deltaX\n this.pan_offset.y += deltaY\n\n await this.invalidatePanZoom()\n\n this.lastTouchPoint = { x: touch.clientX, y: touch.clientY }\n }\n\n private updateCursorPosition(clientPoint: Point) {\n var cursorX = clientPoint.x - this.pan_offset.x\n var cursorY = clientPoint.y - this.pan_offset.y\n\n this.cursorPoint = { x: cursorX, y: cursorY }\n }\n\n //prob redundant\n handleDoubleTap() {\n this.messageBroker.publish('undo')\n // Add any additional logic needed after undo\n }\n\n async zoom(event: WheelEvent) {\n // Store original cursor position\n const cursorPoint = { x: event.clientX, y: event.clientY }\n\n // zoom canvas\n const oldZoom = this.zoom_ratio\n const zoomFactor = event.deltaY < 0 ? 1.1 : 0.9\n this.zoom_ratio = Math.max(\n 0.2,\n Math.min(10.0, this.zoom_ratio * zoomFactor)\n )\n const newZoom = this.zoom_ratio\n\n const maskCanvas = await this.messageBroker.pull('maskCanvas')\n\n // Get mouse position relative to the container\n const rect = maskCanvas.getBoundingClientRect()\n const mouseX = cursorPoint.x - rect.left\n const mouseY = cursorPoint.y - rect.top\n\n console.log(oldZoom, newZoom)\n // Calculate new pan position\n const scaleFactor = newZoom / oldZoom\n this.pan_offset.x += mouseX - mouseX * scaleFactor\n this.pan_offset.y += mouseY - mouseY * scaleFactor\n\n // Update pan and zoom immediately\n await this.invalidatePanZoom()\n\n const newImageWidth = maskCanvas.clientWidth\n\n const zoomRatio = newImageWidth / this.imageRootWidth\n\n this.interpolatedZoomRatio = zoomRatio\n\n this.messageBroker.publish('setZoomText', `${Math.round(zoomRatio * 100)}%`)\n\n // Update cursor position with new pan values\n this.updateCursorPosition(cursorPoint)\n\n // Update brush preview after pan/zoom is complete\n requestAnimationFrame(() => {\n this.messageBroker.publish('updateBrushPreview')\n })\n }\n\n private async smoothResetView(duration: number = 500) {\n // Store initial state\n const startZoom = this.zoom_ratio\n const startPan = { ...this.pan_offset }\n\n // Panel dimensions\n const sidePanelWidth = 220\n const toolPanelWidth = 64\n const topBarHeight = 44\n\n // Calculate available space\n const availableWidth =\n this.rootElement!.clientWidth - sidePanelWidth - toolPanelWidth\n const availableHeight = this.rootElement!.clientHeight - topBarHeight\n\n // Calculate target zoom\n const zoomRatioWidth = availableWidth / this.image!.width\n const zoomRatioHeight = availableHeight / this.image!.height\n const targetZoom = Math.min(zoomRatioWidth, zoomRatioHeight)\n\n // Calculate final dimensions\n const aspectRatio = this.image!.width / this.image!.height\n let finalWidth = 0\n let finalHeight = 0\n\n // Calculate target pan position\n const targetPan = { x: toolPanelWidth, y: topBarHeight }\n\n if (zoomRatioHeight > zoomRatioWidth) {\n finalWidth = availableWidth\n finalHeight = finalWidth / aspectRatio\n targetPan.y = (availableHeight - finalHeight) / 2 + topBarHeight\n } else {\n finalHeight = availableHeight\n finalWidth = finalHeight * aspectRatio\n targetPan.x = (availableWidth - finalWidth) / 2 + toolPanelWidth\n }\n\n const startTime = performance.now()\n const animate = (currentTime: number) => {\n const elapsed = currentTime - startTime\n const progress = Math.min(elapsed / duration, 1)\n // Cubic easing out for smooth deceleration\n const eased = 1 - Math.pow(1 - progress, 3)\n\n // Calculate intermediate zoom and pan values\n const currentZoom = startZoom + (targetZoom - startZoom) * eased\n\n this.zoom_ratio = currentZoom\n this.pan_offset.x = startPan.x + (targetPan.x - startPan.x) * eased\n this.pan_offset.y = startPan.y + (targetPan.y - startPan.y) * eased\n\n this.invalidatePanZoom()\n\n const interpolatedZoomRatio = startZoom + (1.0 - startZoom) * eased\n\n this.messageBroker.publish(\n 'setZoomText',\n `${Math.round(interpolatedZoomRatio * 100)}%`\n )\n\n if (progress < 1) {\n requestAnimationFrame(animate)\n }\n }\n\n requestAnimationFrame(animate)\n this.interpolatedZoomRatio = 1.0\n }\n\n async initializeCanvasPanZoom(\n image: HTMLImageElement,\n rootElement: HTMLElement\n ) {\n // Get side panel width\n let sidePanelWidth = 220\n const toolPanelWidth = 64\n let topBarHeight = 44\n\n this.rootElement = rootElement\n\n // Calculate available width accounting for both side panels\n let availableWidth =\n rootElement.clientWidth - sidePanelWidth - toolPanelWidth\n let availableHeight = rootElement.clientHeight - topBarHeight\n\n let zoomRatioWidth = availableWidth / image.width\n let zoomRatioHeight = availableHeight / image.height\n\n let aspectRatio = image.width / image.height\n\n let finalWidth = 0\n let finalHeight = 0\n\n let pan_offset: Offset = { x: toolPanelWidth, y: topBarHeight }\n\n if (zoomRatioHeight > zoomRatioWidth) {\n finalWidth = availableWidth\n finalHeight = finalWidth / aspectRatio\n pan_offset.y = (availableHeight - finalHeight) / 2 + topBarHeight\n } else {\n finalHeight = availableHeight\n finalWidth = finalHeight * aspectRatio\n pan_offset.x = (availableWidth - finalWidth) / 2 + toolPanelWidth\n }\n\n if (this.image === null) {\n this.image = image\n }\n\n this.imageRootWidth = finalWidth\n this.imageRootHeight = finalHeight\n\n this.zoom_ratio = Math.min(zoomRatioWidth, zoomRatioHeight)\n this.pan_offset = pan_offset\n\n await this.invalidatePanZoom()\n }\n\n async invalidatePanZoom() {\n // Single validation check upfront\n if (\n !this.image?.width ||\n !this.image?.height ||\n !this.pan_offset ||\n !this.zoom_ratio\n ) {\n console.warn('Missing required properties for pan/zoom')\n return\n }\n\n // Now TypeScript knows these are non-null\n const raw_width = this.image.width * this.zoom_ratio\n const raw_height = this.image.height * this.zoom_ratio\n\n // Get canvas container\n this.canvasContainer ??=\n await this.messageBroker?.pull('getCanvasContainer')\n if (!this.canvasContainer) return\n\n // Apply styles\n Object.assign(this.canvasContainer.style, {\n width: `${raw_width}px`,\n height: `${raw_height}px`,\n left: `${this.pan_offset.x}px`,\n top: `${this.pan_offset.y}px`\n })\n }\n\n private handlePanStart(event: PointerEvent) {\n let coords_canvas = this.messageBroker.pull('screenToCanvas', {\n x: event.offsetX,\n y: event.offsetY\n })\n this.mouseDownPoint = { x: event.clientX, y: event.clientY }\n this.messageBroker.publish('panCursor', true)\n this.initialPan = this.pan_offset\n return\n }\n\n private handlePanMove(event: PointerEvent) {\n if (this.mouseDownPoint === null) throw new Error('mouseDownPoint is null')\n\n let deltaX = this.mouseDownPoint.x - event.clientX\n let deltaY = this.mouseDownPoint.y - event.clientY\n\n let pan_x = this.initialPan.x - deltaX\n let pan_y = this.initialPan.y - deltaY\n\n this.pan_offset = { x: pan_x, y: pan_y }\n\n this.invalidatePanZoom()\n }\n}\n\nclass MessageBroker {\n private pushTopics: Record = {}\n private pullTopics: Record Promise> = {}\n\n constructor() {\n this.registerListeners()\n }\n\n // Push\n\n private registerListeners() {\n // Register listeners\n this.createPushTopic('panStart')\n this.createPushTopic('paintBucketFill')\n this.createPushTopic('saveState')\n this.createPushTopic('brushAdjustmentStart')\n this.createPushTopic('drawStart')\n this.createPushTopic('panMove')\n this.createPushTopic('updateBrushPreview')\n this.createPushTopic('brushAdjustment')\n this.createPushTopic('draw')\n this.createPushTopic('paintBucketCursor')\n this.createPushTopic('panCursor')\n this.createPushTopic('drawEnd')\n this.createPushTopic('zoom')\n this.createPushTopic('undo')\n this.createPushTopic('redo')\n this.createPushTopic('cursorPoint')\n this.createPushTopic('panOffset')\n this.createPushTopic('zoomRatio')\n this.createPushTopic('getMaskCanvas')\n this.createPushTopic('getCanvasContainer')\n this.createPushTopic('screenToCanvas')\n this.createPushTopic('isKeyPressed')\n this.createPushTopic('isCombinationPressed')\n this.createPushTopic('setPaintBucketTolerance')\n this.createPushTopic('setBrushSize')\n this.createPushTopic('setBrushHardness')\n this.createPushTopic('setBrushOpacity')\n this.createPushTopic('setBrushShape')\n this.createPushTopic('initZoomPan')\n this.createPushTopic('setTool')\n this.createPushTopic('pointerDown')\n this.createPushTopic('pointerMove')\n this.createPushTopic('pointerUp')\n this.createPushTopic('wheel')\n this.createPushTopic('initPaintBucketTool')\n this.createPushTopic('setBrushVisibility')\n this.createPushTopic('setBrushPreviewGradientVisibility')\n this.createPushTopic('handleTouchStart')\n this.createPushTopic('handleTouchMove')\n this.createPushTopic('handleTouchEnd')\n this.createPushTopic('colorSelectFill')\n this.createPushTopic('setColorSelectTolerance')\n this.createPushTopic('setLivePreview')\n this.createPushTopic('updateCursor')\n this.createPushTopic('setColorComparisonMethod')\n this.createPushTopic('clearLastPoint')\n this.createPushTopic('setWholeImage')\n this.createPushTopic('setMaskBoundary')\n this.createPushTopic('setMaskTolerance')\n this.createPushTopic('setBrushSmoothingPrecision')\n this.createPushTopic('setZoomText')\n this.createPushTopic('resetZoom')\n this.createPushTopic('invert')\n }\n\n /**\n * Creates a new push topic (listener is notified)\n *\n * @param {string} topicName - The name of the topic to create.\n * @throws {Error} If the topic already exists.\n */\n createPushTopic(topicName: string) {\n if (this.topicExists(this.pushTopics, topicName)) {\n throw new Error('Topic already exists')\n }\n this.pushTopics[topicName] = []\n }\n\n /**\n * Subscribe a callback function to the given topic.\n *\n * @param {string} topicName - The name of the topic to subscribe to.\n * @param {Callback} callback - The callback function to be subscribed.\n * @throws {Error} If the topic does not exist.\n */\n subscribe(topicName: string, callback: Callback) {\n if (!this.topicExists(this.pushTopics, topicName)) {\n throw new Error(`Topic \"${topicName}\" does not exist!`)\n }\n this.pushTopics[topicName].push(callback)\n }\n\n /**\n * Removes a callback function from the list of subscribers for a given topic.\n *\n * @param {string} topicName - The name of the topic to unsubscribe from.\n * @param {Callback} callback - The callback function to remove from the subscribers list.\n * @throws {Error} If the topic does not exist in the list of topics.\n */\n unsubscribe(topicName: string, callback: Callback) {\n if (!this.topicExists(this.pushTopics, topicName)) {\n throw new Error('Topic does not exist')\n }\n const index = this.pushTopics[topicName].indexOf(callback)\n if (index > -1) {\n this.pushTopics[topicName].splice(index, 1)\n }\n }\n\n /**\n * Publishes data to a specified topic with variable number of arguments.\n * @param {string} topicName - The name of the topic to publish to.\n * @param {...any[]} args - Variable number of arguments to pass to subscribers\n * @throws {Error} If the specified topic does not exist.\n */\n publish(topicName: string, ...args: any[]) {\n if (!this.topicExists(this.pushTopics, topicName)) {\n throw new Error(`Topic \"${topicName}\" does not exist!`)\n }\n\n this.pushTopics[topicName].forEach((callback) => {\n callback(...args)\n })\n }\n\n // Pull\n\n /**\n * Creates a new pull topic (listener must request data)\n *\n * @param {string} topicName - The name of the topic to create.\n * @param {() => Promise} callBack - The callback function to be called when data is requested.\n * @throws {Error} If the topic already exists.\n */\n createPullTopic(topicName: string, callBack: (data?: any) => Promise) {\n if (this.topicExists(this.pullTopics, topicName)) {\n throw new Error('Topic already exists')\n }\n this.pullTopics[topicName] = callBack\n }\n\n /**\n * Requests data from a specified pull topic.\n * @param {string} topicName - The name of the topic to request data from.\n * @returns {Promise} - The data from the pull topic.\n * @throws {Error} If the specified topic does not exist.\n */\n async pull(topicName: string, data?: any): Promise {\n if (!this.topicExists(this.pullTopics, topicName)) {\n throw new Error('Topic does not exist')\n }\n\n const callBack = this.pullTopics[topicName]\n try {\n const result = await callBack(data)\n return result\n } catch (error) {\n console.error(`Error pulling data from topic \"${topicName}\":`, error)\n throw error\n }\n }\n\n // Helper Methods\n\n /**\n * Checks if a topic exists in the given topics object.\n * @param {Record} topics - The topics object to check.\n * @param {string} topicName - The name of the topic to check.\n * @returns {boolean} - True if the topic exists, false otherwise.\n */\n private topicExists(topics: Record, topicName: string): boolean {\n return topics.hasOwnProperty(topicName)\n }\n}\n\nclass KeyboardManager {\n private keysDown: string[] = []\n private maskEditor: MaskEditorDialog\n private messageBroker: MessageBroker\n\n constructor(maskEditor: MaskEditorDialog) {\n this.maskEditor = maskEditor\n this.messageBroker = maskEditor.getMessageBroker()\n this.addPullTopics()\n }\n\n private addPullTopics() {\n // isKeyPressed\n this.messageBroker.createPullTopic('isKeyPressed', (key: string) =>\n Promise.resolve(this.isKeyDown(key))\n )\n }\n\n addListeners() {\n document.addEventListener('keydown', (event) => this.handleKeyDown(event))\n document.addEventListener('keyup', (event) => this.handleKeyUp(event))\n window.addEventListener('blur', () => this.clearKeys())\n }\n\n removeListeners() {\n document.removeEventListener('keydown', (event) =>\n this.handleKeyDown(event)\n )\n document.removeEventListener('keyup', (event) => this.handleKeyUp(event))\n }\n\n private clearKeys() {\n this.keysDown = []\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!this.keysDown.includes(event.key)) {\n this.keysDown.push(event.key)\n }\n //if (this.redoCombinationPressed()) return\n //this.undoCombinationPressed()\n }\n\n private handleKeyUp(event: KeyboardEvent) {\n this.keysDown = this.keysDown.filter((key) => key !== event.key)\n }\n\n private isKeyDown(key: string) {\n return this.keysDown.includes(key)\n }\n\n // combinations\n\n private undoCombinationPressed() {\n const combination = ['ctrl', 'z']\n const keysDownLower = this.keysDown.map((key) => key.toLowerCase())\n const result = combination.every((key) => keysDownLower.includes(key))\n if (result) this.messageBroker.publish('undo')\n return result\n }\n\n private redoCombinationPressed() {\n const combination = ['ctrl', 'shift', 'z']\n const keysDownLower = this.keysDown.map((key) => key.toLowerCase())\n const result = combination.every((key) => keysDownLower.includes(key))\n if (result) this.messageBroker.publish('redo')\n return result\n }\n}\n\napp.registerExtension({\n name: 'Comfy.MaskEditor',\n settings: [\n {\n id: 'Comfy.MaskEditor.UseNewEditor',\n category: ['Mask Editor', 'NewEditor'],\n name: 'Use new mask editor',\n tooltip: 'Switch to the new mask editor interface',\n type: 'boolean',\n defaultValue: true,\n experimental: true\n },\n {\n id: 'Comfy.MaskEditor.BrushAdjustmentSpeed',\n category: ['Mask Editor', 'BrushAdjustment', 'Sensitivity'],\n name: 'Brush adjustment speed multiplier',\n tooltip:\n 'Controls how quickly the brush size and hardness change when adjusting. Higher values mean faster changes.',\n experimental: true,\n type: 'slider',\n attrs: {\n min: 0.1,\n max: 2.0,\n step: 0.1\n },\n defaultValue: 1.0,\n versionAdded: '1.0.0'\n },\n {\n id: 'Comfy.MaskEditor.UseDominantAxis',\n category: ['Mask Editor', 'BrushAdjustment', 'UseDominantAxis'],\n name: 'Lock brush adjustment to dominant axis',\n tooltip:\n 'When enabled, brush adjustments will only affect size OR hardness based on which direction you move more',\n type: 'boolean',\n defaultValue: true,\n experimental: true\n }\n ],\n init(app) {\n // Create function before assignment\n function openMaskEditor(): void {\n const useNewEditor = app.extensionManager.setting.get(\n 'Comfy.MaskEditor.UseNewEditor'\n )\n if (useNewEditor) {\n const dlg = MaskEditorDialog.getInstance() as any\n if (dlg?.isOpened && !dlg.isOpened()) {\n dlg.show()\n }\n } else {\n const dlg = MaskEditorDialogOld.getInstance() as any\n if (dlg?.isOpened && !dlg.isOpened()) {\n dlg.show()\n }\n }\n }\n\n // Assign the created function\n ;(ComfyApp as any).open_maskeditor = openMaskEditor\n\n // Ensure boolean return type\n const context_predicate = (): boolean => {\n return !!(\n ComfyApp.clipspace &&\n ComfyApp.clipspace.imgs &&\n ComfyApp.clipspace.imgs.length > 0\n )\n }\n\n ClipspaceDialog.registerButton(\n 'MaskEditor',\n context_predicate,\n openMaskEditor\n )\n }\n})\n","// @ts-strict-ignore\nimport { app } from '../../scripts/app'\nimport { api } from '../../scripts/api'\nimport { ComfyDialog, $el } from '../../scripts/ui'\nimport { GroupNodeConfig, GroupNodeHandler } from './groupNode'\nimport { LGraphCanvas } from '@comfyorg/litegraph'\nimport { useToastStore } from '@/stores/toastStore'\nimport { deserialiseAndCreate } from '@/extensions/core/vintageClipboard'\nimport { showPromptDialog } from '@/services/dialogService'\nimport { t } from '@/i18n'\n\n// Adds the ability to save and add multiple nodes as a template\n// To save:\n// Select multiple nodes (ctrl + drag to select a region or ctrl+click individual nodes)\n// Right click the canvas\n// Save Node Template -> give it a name\n//\n// To add:\n// Right click the canvas\n// Node templates -> click the one to add\n//\n// To delete/rename:\n// Right click the canvas\n// Node templates -> Manage\n//\n// To rearrange:\n// Open the manage dialog and Drag and drop elements using the \"Name:\" label as handle\n\nconst id = 'Comfy.NodeTemplates'\nconst file = 'comfy.templates.json'\n\nclass ManageTemplates extends ComfyDialog {\n templates: any[]\n draggedEl: HTMLElement | null\n saveVisualCue: number | null\n emptyImg: HTMLImageElement\n importInput: HTMLInputElement\n\n constructor() {\n super()\n this.load().then((v) => {\n this.templates = v\n })\n\n this.element.classList.add('comfy-manage-templates')\n this.draggedEl = null\n this.saveVisualCue = null\n this.emptyImg = new Image()\n this.emptyImg.src =\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs='\n\n this.importInput = $el('input', {\n type: 'file',\n accept: '.json',\n multiple: true,\n style: { display: 'none' },\n parent: document.body,\n onchange: () => this.importAll()\n }) as HTMLInputElement\n }\n\n createButtons() {\n const btns = super.createButtons()\n btns[0].textContent = 'Close'\n btns[0].onclick = (e) => {\n clearTimeout(this.saveVisualCue)\n this.close()\n }\n btns.unshift(\n $el('button', {\n type: 'button',\n textContent: 'Export',\n onclick: () => this.exportAll()\n })\n )\n btns.unshift(\n $el('button', {\n type: 'button',\n textContent: 'Import',\n onclick: () => {\n this.importInput.click()\n }\n })\n )\n return btns\n }\n\n async load() {\n let templates = []\n const res = await api.getUserData(file)\n if (res.status === 200) {\n try {\n templates = await res.json()\n } catch (error) {}\n } else if (res.status !== 404) {\n console.error(res.status + ' ' + res.statusText)\n }\n return templates ?? []\n }\n\n async store() {\n const templates = JSON.stringify(this.templates, undefined, 4)\n try {\n await api.storeUserData(file, templates, { stringify: false })\n } catch (error) {\n console.error(error)\n useToastStore().addAlert(error.message)\n }\n }\n\n async importAll() {\n for (const file of this.importInput.files) {\n if (file.type === 'application/json' || file.name.endsWith('.json')) {\n const reader = new FileReader()\n reader.onload = async () => {\n const importFile = JSON.parse(reader.result as string)\n if (importFile?.templates) {\n for (const template of importFile.templates) {\n if (template?.name && template?.data) {\n this.templates.push(template)\n }\n }\n await this.store()\n }\n }\n await reader.readAsText(file)\n }\n }\n\n this.importInput.value = null\n\n this.close()\n }\n\n exportAll() {\n if (this.templates.length == 0) {\n useToastStore().addAlert('No templates to export.')\n return\n }\n\n const json = JSON.stringify({ templates: this.templates }, null, 2) // convert the data to a JSON string\n const blob = new Blob([json], { type: 'application/json' })\n const url = URL.createObjectURL(blob)\n const a = $el('a', {\n href: url,\n download: 'node_templates.json',\n style: { display: 'none' },\n parent: document.body\n })\n a.click()\n setTimeout(function () {\n a.remove()\n window.URL.revokeObjectURL(url)\n }, 0)\n }\n\n show() {\n // Show list of template names + delete button\n super.show(\n $el(\n 'div',\n {},\n this.templates.flatMap((t, i) => {\n let nameInput\n return [\n $el(\n 'div',\n {\n dataset: { id: i.toString() },\n className: 'templateManagerRow',\n style: {\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n border: '1px dashed transparent',\n gap: '5px',\n backgroundColor: 'var(--comfy-menu-bg)'\n },\n ondragstart: (e) => {\n this.draggedEl = e.currentTarget\n e.currentTarget.style.opacity = '0.6'\n e.currentTarget.style.border = '1px dashed yellow'\n e.dataTransfer.effectAllowed = 'move'\n e.dataTransfer.setDragImage(this.emptyImg, 0, 0)\n },\n ondragend: (e) => {\n e.target.style.opacity = '1'\n e.currentTarget.style.border = '1px dashed transparent'\n e.currentTarget.removeAttribute('draggable')\n\n // rearrange the elements\n this.element\n .querySelectorAll('.templateManagerRow')\n .forEach((el: HTMLElement, i) => {\n var prev_i = Number.parseInt(el.dataset.id)\n\n if (el == this.draggedEl && prev_i != i) {\n this.templates.splice(\n i,\n 0,\n this.templates.splice(prev_i, 1)[0]\n )\n }\n el.dataset.id = i.toString()\n })\n this.store()\n },\n ondragover: (e) => {\n e.preventDefault()\n if (e.currentTarget == this.draggedEl) return\n\n let rect = e.currentTarget.getBoundingClientRect()\n if (e.clientY > rect.top + rect.height / 2) {\n e.currentTarget.parentNode.insertBefore(\n this.draggedEl,\n e.currentTarget.nextSibling\n )\n } else {\n e.currentTarget.parentNode.insertBefore(\n this.draggedEl,\n e.currentTarget\n )\n }\n }\n },\n [\n $el(\n 'label',\n {\n textContent: 'Name: ',\n style: {\n cursor: 'grab'\n },\n onmousedown: (e) => {\n // enable dragging only from the label\n if (e.target.localName == 'label')\n e.currentTarget.parentNode.draggable = 'true'\n }\n },\n [\n $el('input', {\n value: t.name,\n dataset: { name: t.name },\n style: {\n transitionProperty: 'background-color',\n transitionDuration: '0s'\n },\n onchange: (e) => {\n clearTimeout(this.saveVisualCue)\n var el = e.target\n var row = el.parentNode.parentNode\n this.templates[row.dataset.id].name =\n el.value.trim() || 'untitled'\n this.store()\n el.style.backgroundColor = 'rgb(40, 95, 40)'\n el.style.transitionDuration = '0s'\n // @ts-expect-error\n // In browser env the return value is number.\n this.saveVisualCue = setTimeout(function () {\n el.style.transitionDuration = '.7s'\n el.style.backgroundColor = 'var(--comfy-input-bg)'\n }, 15)\n },\n onkeypress: (e) => {\n var el = e.target\n clearTimeout(this.saveVisualCue)\n el.style.transitionDuration = '0s'\n el.style.backgroundColor = 'var(--comfy-input-bg)'\n },\n $: (el) => (nameInput = el)\n })\n ]\n ),\n $el('div', {}, [\n $el('button', {\n textContent: 'Export',\n style: {\n fontSize: '12px',\n fontWeight: 'normal'\n },\n onclick: (e) => {\n const json = JSON.stringify({ templates: [t] }, null, 2) // convert the data to a JSON string\n const blob = new Blob([json], {\n type: 'application/json'\n })\n const url = URL.createObjectURL(blob)\n const a = $el('a', {\n href: url,\n download: (nameInput.value || t.name) + '.json',\n style: { display: 'none' },\n parent: document.body\n })\n a.click()\n setTimeout(function () {\n a.remove()\n window.URL.revokeObjectURL(url)\n }, 0)\n }\n }),\n $el('button', {\n textContent: 'Delete',\n style: {\n fontSize: '12px',\n color: 'red',\n fontWeight: 'normal'\n },\n onclick: (e) => {\n const item = e.target.parentNode.parentNode\n item.parentNode.removeChild(item)\n this.templates.splice(item.dataset.id * 1, 1)\n this.store()\n // update the rows index, setTimeout ensures that the list is updated\n var that = this\n setTimeout(function () {\n that.element\n .querySelectorAll('.templateManagerRow')\n .forEach((el: HTMLElement, i) => {\n el.dataset.id = i.toString()\n })\n }, 0)\n }\n })\n ])\n ]\n )\n ]\n })\n )\n )\n }\n}\n\napp.registerExtension({\n name: id,\n setup() {\n const manage = new ManageTemplates()\n\n const clipboardAction = async (cb) => {\n // We use the clipboard functions but dont want to overwrite the current user clipboard\n // Restore it after we've run our callback\n const old = localStorage.getItem('litegrapheditor_clipboard')\n await cb()\n localStorage.setItem('litegrapheditor_clipboard', old)\n }\n\n const orig = LGraphCanvas.prototype.getCanvasMenuOptions\n LGraphCanvas.prototype.getCanvasMenuOptions = function () {\n const options = orig.apply(this, arguments)\n\n options.push(null)\n options.push({\n content: `Save Selected as Template`,\n disabled: !Object.keys(app.canvas.selected_nodes || {}).length,\n callback: async () => {\n const name = await showPromptDialog({\n title: t('nodeTemplates.saveAsTemplate'),\n message: t('nodeTemplates.enterName'),\n defaultValue: ''\n })\n if (!name?.trim()) return\n\n clipboardAction(() => {\n app.canvas.copyToClipboard()\n let data = localStorage.getItem('litegrapheditor_clipboard')\n data = JSON.parse(data)\n const nodeIds = Object.keys(app.canvas.selected_nodes)\n for (let i = 0; i < nodeIds.length; i++) {\n const node = app.graph.getNodeById(nodeIds[i])\n const nodeData = node?.constructor.nodeData\n\n let groupData = GroupNodeHandler.getGroupData(node)\n if (groupData) {\n groupData = groupData.nodeData\n // @ts-expect-error\n if (!data.groupNodes) {\n // @ts-expect-error\n data.groupNodes = {}\n }\n // @ts-expect-error\n data.groupNodes[nodeData.name] = groupData\n // @ts-expect-error\n data.nodes[i].type = nodeData.name\n }\n }\n\n manage.templates.push({\n name,\n data: JSON.stringify(data)\n })\n manage.store()\n })\n }\n })\n\n // Map each template to a menu item\n const subItems = manage.templates.map((t) => {\n return {\n content: t.name,\n callback: () => {\n clipboardAction(async () => {\n const data = JSON.parse(t.data)\n await GroupNodeConfig.registerFromWorkflow(data.groupNodes, {})\n\n // Check for old clipboard format\n if (!data.reroutes) {\n deserialiseAndCreate(t.data, app.canvas)\n } else {\n localStorage.setItem('litegrapheditor_clipboard', t.data)\n app.canvas.pasteFromClipboard()\n }\n })\n }\n }\n })\n\n subItems.push(null, {\n content: 'Manage',\n callback: () => manage.show()\n })\n\n options.push({\n content: 'Node Templates',\n submenu: {\n options: subItems\n }\n })\n\n return options\n }\n }\n})\n","// @ts-strict-ignore\nimport { LiteGraph, LGraphCanvas } from '@comfyorg/litegraph'\nimport { app } from '../../scripts/app'\nimport { ComfyWidgets } from '../../scripts/widgets'\nimport { LGraphNode } from '@comfyorg/litegraph'\n// Node that add notes to your project\n\napp.registerExtension({\n name: 'Comfy.NoteNode',\n registerCustomNodes() {\n class NoteNode extends LGraphNode {\n static category: string\n\n color = LGraphCanvas.node_colors.yellow.color\n bgcolor = LGraphCanvas.node_colors.yellow.bgcolor\n groupcolor = LGraphCanvas.node_colors.yellow.groupcolor\n isVirtualNode: boolean\n collapsable: boolean\n title_mode: number\n\n constructor(title?: string) {\n super(title)\n if (!this.properties) {\n this.properties = { text: '' }\n }\n ComfyWidgets.STRING(\n // Should we extends LGraphNode? Yesss\n this,\n '',\n ['', { default: this.properties.text, multiline: true }],\n app\n )\n\n this.serialize_widgets = true\n this.isVirtualNode = true\n }\n }\n\n // Load default visibility\n\n LiteGraph.registerNodeType(\n 'Note',\n Object.assign(NoteNode, {\n title_mode: LiteGraph.NORMAL_TITLE,\n title: 'Note',\n collapsable: true\n })\n )\n\n NoteNode.category = 'utils'\n }\n})\n","// @ts-strict-ignore\nimport type { IContextMenuValue } from '@comfyorg/litegraph'\nimport { app } from '../../scripts/app'\nimport { mergeIfValid, getWidgetConfig, setWidgetConfig } from './widgetInputs'\nimport { LiteGraph, LGraphCanvas, LGraphNode } from '@comfyorg/litegraph'\n\n// Node that allows you to redirect connections for cleaner graphs\n\napp.registerExtension({\n name: 'Comfy.RerouteNode',\n registerCustomNodes(app) {\n interface RerouteNode extends LGraphNode {\n __outputType?: string\n }\n\n class RerouteNode extends LGraphNode {\n static category: string | undefined\n static defaultVisibility = false\n\n constructor(title?: string) {\n super(title)\n if (!this.properties) {\n this.properties = {}\n }\n this.properties.showOutputText = RerouteNode.defaultVisibility\n this.properties.horizontal = false\n\n this.addInput('', '*')\n this.addOutput(this.properties.showOutputText ? '*' : '', '*')\n\n this.onAfterGraphConfigured = function () {\n requestAnimationFrame(() => {\n this.onConnectionsChange(LiteGraph.INPUT, null, true, null)\n })\n }\n\n this.onConnectionsChange = (type, index, connected, link_info) => {\n this.applyOrientation()\n\n // Prevent multiple connections to different types when we have no input\n if (connected && type === LiteGraph.OUTPUT) {\n // Ignore wildcard nodes as these will be updated to real types\n const types = new Set(\n this.outputs[0].links\n .map((l) => app.graph.links[l].type)\n .filter((t) => t !== '*')\n )\n if (types.size > 1) {\n const linksToDisconnect = []\n for (let i = 0; i < this.outputs[0].links.length - 1; i++) {\n const linkId = this.outputs[0].links[i]\n const link = app.graph.links[linkId]\n linksToDisconnect.push(link)\n }\n for (const link of linksToDisconnect) {\n const node = app.graph.getNodeById(link.target_id)\n node.disconnectInput(link.target_slot)\n }\n }\n }\n\n // Find root input\n let currentNode: LGraphNode | null = this\n let updateNodes = []\n let inputType = null\n let inputNode = null\n while (currentNode) {\n updateNodes.unshift(currentNode)\n const linkId = currentNode.inputs[0].link\n if (linkId !== null) {\n const link = app.graph.links[linkId]\n if (!link) return\n const node = app.graph.getNodeById(link.origin_id)\n const type = node.constructor.type\n if (type === 'Reroute') {\n if (node === this) {\n // We've found a circle\n currentNode.disconnectInput(link.target_slot)\n currentNode = null\n } else {\n // Move the previous node\n currentNode = node\n }\n } else {\n // We've found the end\n inputNode = currentNode\n inputType = node.outputs[link.origin_slot]?.type ?? null\n break\n }\n } else {\n // This path has no input node\n currentNode = null\n break\n }\n }\n\n // Find all outputs\n const nodes: LGraphNode[] = [this]\n let outputType = null\n while (nodes.length) {\n currentNode = nodes.pop()\n const outputs =\n (currentNode.outputs ? currentNode.outputs[0].links : []) || []\n if (outputs.length) {\n for (const linkId of outputs) {\n const link = app.graph.links[linkId]\n\n // When disconnecting sometimes the link is still registered\n if (!link) continue\n\n const node = app.graph.getNodeById(link.target_id)\n const type = node.constructor.type\n\n if (type === 'Reroute') {\n // Follow reroute nodes\n nodes.push(node)\n updateNodes.push(node)\n } else {\n // We've found an output\n const nodeOutType =\n node.inputs &&\n node.inputs[link?.target_slot] &&\n node.inputs[link.target_slot].type\n ? node.inputs[link.target_slot].type\n : null\n if (\n inputType &&\n !LiteGraph.isValidConnection(inputType, nodeOutType)\n ) {\n // The output doesnt match our input so disconnect it\n node.disconnectInput(link.target_slot)\n } else {\n outputType = nodeOutType\n }\n }\n }\n } else {\n // No more outputs for this path\n }\n }\n\n const displayType = inputType || outputType || '*'\n const color = LGraphCanvas.link_type_colors[displayType]\n\n let widgetConfig\n let targetWidget\n let widgetType\n // Update the types of each node\n for (const node of updateNodes) {\n // If we dont have an input type we are always wildcard but we'll show the output type\n // This lets you change the output link to a different type and all nodes will update\n node.outputs[0].type = inputType || '*'\n node.__outputType = displayType\n node.outputs[0].name = node.properties.showOutputText\n ? displayType\n : ''\n node.size = node.computeSize()\n node.applyOrientation()\n\n for (const l of node.outputs[0].links || []) {\n const link = app.graph.links[l]\n if (link) {\n link.color = color\n\n if (app.configuringGraph) continue\n const targetNode = app.graph.getNodeById(link.target_id)\n const targetInput = targetNode.inputs?.[link.target_slot]\n if (targetInput?.widget) {\n const config = getWidgetConfig(targetInput)\n if (!widgetConfig) {\n widgetConfig = config[1] ?? {}\n widgetType = config[0]\n }\n if (!targetWidget) {\n targetWidget = targetNode.widgets?.find(\n (w) => w.name === (targetInput.widget as any).name\n )\n }\n\n const merged = mergeIfValid(targetInput, [\n config[0],\n widgetConfig\n ])\n if (merged.customConfig) {\n widgetConfig = merged.customConfig\n }\n }\n }\n }\n }\n\n for (const node of updateNodes) {\n if (widgetConfig && outputType) {\n node.inputs[0].widget = { name: 'value' }\n setWidgetConfig(\n node.inputs[0],\n [widgetType ?? displayType, widgetConfig],\n targetWidget\n )\n } else {\n setWidgetConfig(node.inputs[0], null)\n }\n }\n\n if (inputNode) {\n const link = app.graph.links[inputNode.inputs[0].link]\n if (link) {\n link.color = color\n }\n }\n }\n\n this.clone = function () {\n const cloned = RerouteNode.prototype.clone.apply(this)\n cloned.removeOutput(0)\n cloned.addOutput(this.properties.showOutputText ? '*' : '', '*')\n cloned.size = cloned.computeSize()\n return cloned\n }\n\n // This node is purely frontend and does not impact the resulting prompt so should not be serialized\n this.isVirtualNode = true\n }\n\n getExtraMenuOptions(_, options): IContextMenuValue[] {\n options.unshift(\n {\n content:\n (this.properties.showOutputText ? 'Hide' : 'Show') + ' Type',\n callback: () => {\n this.properties.showOutputText = !this.properties.showOutputText\n if (this.properties.showOutputText) {\n this.outputs[0].name =\n this.__outputType || (this.outputs[0].type as string)\n } else {\n this.outputs[0].name = ''\n }\n this.size = this.computeSize()\n this.applyOrientation()\n app.graph.setDirtyCanvas(true, true)\n }\n },\n {\n content:\n (RerouteNode.defaultVisibility ? 'Hide' : 'Show') +\n ' Type By Default',\n callback: () => {\n RerouteNode.setDefaultTextVisibility(\n !RerouteNode.defaultVisibility\n )\n }\n },\n {\n // naming is inverted with respect to LiteGraphNode.horizontal\n // LiteGraphNode.horizontal == true means that\n // each slot in the inputs and outputs are laid out horizontally,\n // which is the opposite of the visual orientation of the inputs and outputs as a node\n content:\n 'Set ' + (this.properties.horizontal ? 'Horizontal' : 'Vertical'),\n callback: () => {\n this.properties.horizontal = !this.properties.horizontal\n this.applyOrientation()\n }\n }\n )\n return []\n }\n applyOrientation() {\n this.horizontal = this.properties.horizontal\n if (this.horizontal) {\n // we correct the input position, because LiteGraphNode.horizontal\n // doesn't account for title presence\n // which reroute nodes don't have\n this.inputs[0].pos = [this.size[0] / 2, 0]\n } else {\n delete this.inputs[0].pos\n }\n app.graph.setDirtyCanvas(true, true)\n }\n\n computeSize(): [number, number] {\n return [\n this.properties.showOutputText && this.outputs && this.outputs.length\n ? Math.max(\n 75,\n LiteGraph.NODE_TEXT_SIZE * this.outputs[0].name.length * 0.6 +\n 40\n )\n : 75,\n 26\n ]\n }\n\n static setDefaultTextVisibility(visible) {\n RerouteNode.defaultVisibility = visible\n if (visible) {\n localStorage['Comfy.RerouteNode.DefaultVisibility'] = 'true'\n } else {\n delete localStorage['Comfy.RerouteNode.DefaultVisibility']\n }\n }\n }\n\n // Load default visibility\n RerouteNode.setDefaultTextVisibility(\n !!localStorage['Comfy.RerouteNode.DefaultVisibility']\n )\n\n LiteGraph.registerNodeType(\n 'Reroute',\n Object.assign(RerouteNode, {\n title_mode: LiteGraph.NO_TITLE,\n title: 'Reroute',\n collapsable: false\n })\n )\n\n RerouteNode.category = 'utils'\n }\n})\n","// @ts-strict-ignore\nimport { app } from '../../scripts/app'\nimport { applyTextReplacements } from '../../scripts/utils'\n// Use widget values and dates in output filenames\n\napp.registerExtension({\n name: 'Comfy.SaveImageExtraOutput',\n async beforeRegisterNodeDef(nodeType, nodeData, app) {\n if (nodeData.name === 'SaveImage' || nodeData.name === 'SaveAnimatedWEBP') {\n const onNodeCreated = nodeType.prototype.onNodeCreated\n // When the SaveImage node is created we want to override the serialization of the output name widget to run our S&R\n nodeType.prototype.onNodeCreated = function () {\n const r = onNodeCreated\n ? onNodeCreated.apply(this, arguments)\n : undefined\n\n const widget = this.widgets.find((w) => w.name === 'filename_prefix')\n widget.serializeValue = () => {\n return applyTextReplacements(app, widget.value)\n }\n\n return r\n }\n } else {\n // When any other node is created add a property to alias the node\n const onNodeCreated = nodeType.prototype.onNodeCreated\n nodeType.prototype.onNodeCreated = function () {\n const r = onNodeCreated\n ? onNodeCreated.apply(this, arguments)\n : undefined\n\n if (!this.properties || !('Node name for S&R' in this.properties)) {\n this.addProperty('Node name for S&R', this.constructor.type, 'string')\n }\n\n return r\n }\n }\n }\n})\n","// @ts-strict-ignore\nimport { app } from '../../scripts/app'\nimport { LGraphCanvas, LiteGraph } from '@comfyorg/litegraph'\n\nlet touchZooming\nlet touchCount = 0\n\napp.registerExtension({\n name: 'Comfy.SimpleTouchSupport',\n setup() {\n let touchDist\n let touchTime\n let lastTouch\n let lastScale\n function getMultiTouchPos(e) {\n return Math.hypot(\n e.touches[0].clientX - e.touches[1].clientX,\n e.touches[0].clientY - e.touches[1].clientY\n )\n }\n\n function getMultiTouchCenter(e) {\n return {\n clientX: (e.touches[0].clientX + e.touches[1].clientX) / 2,\n clientY: (e.touches[0].clientY + e.touches[1].clientY) / 2\n }\n }\n\n app.canvasEl.parentElement.addEventListener(\n 'touchstart',\n (e: TouchEvent) => {\n touchCount++\n lastTouch = null\n lastScale = null\n if (e.touches?.length === 1) {\n // Store start time for press+hold for context menu\n touchTime = new Date()\n lastTouch = e.touches[0]\n } else {\n touchTime = null\n if (e.touches?.length === 2) {\n // Store center pos for zoom\n lastScale = app.canvas.ds.scale\n lastTouch = getMultiTouchCenter(e)\n\n touchDist = getMultiTouchPos(e)\n app.canvas.pointer.isDown = false\n }\n }\n },\n true\n )\n\n app.canvasEl.parentElement.addEventListener('touchend', (e: TouchEvent) => {\n touchCount--\n\n if (e.touches?.length !== 1) touchZooming = false\n if (touchTime && !e.touches?.length) {\n if (new Date().getTime() - touchTime > 600) {\n if (e.target === app.canvasEl) {\n app.canvasEl.dispatchEvent(\n new PointerEvent('pointerdown', {\n button: 2,\n clientX: e.changedTouches[0].clientX,\n clientY: e.changedTouches[0].clientY\n })\n )\n e.preventDefault()\n }\n }\n touchTime = null\n }\n })\n\n app.canvasEl.parentElement.addEventListener(\n 'touchmove',\n (e) => {\n touchTime = null\n if (e.touches?.length === 2 && lastTouch && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault() // Prevent browser from zooming when two textareas are touched\n app.canvas.pointer.isDown = false\n touchZooming = true\n\n LiteGraph.closeAllContextMenus(window)\n // @ts-expect-error\n app.canvas.search_box?.close()\n const newTouchDist = getMultiTouchPos(e)\n\n const center = getMultiTouchCenter(e)\n\n let scale = (lastScale * newTouchDist) / touchDist\n\n const newX = (center.clientX - lastTouch.clientX) / scale\n const newY = (center.clientY - lastTouch.clientY) / scale\n\n // Code from LiteGraph\n if (scale < app.canvas.ds.min_scale) {\n scale = app.canvas.ds.min_scale\n } else if (scale > app.canvas.ds.max_scale) {\n scale = app.canvas.ds.max_scale\n }\n\n const oldScale = app.canvas.ds.scale\n\n app.canvas.ds.scale = scale\n\n // Code from LiteGraph\n if (Math.abs(app.canvas.ds.scale - 1) < 0.01) {\n app.canvas.ds.scale = 1\n }\n\n const newScale = app.canvas.ds.scale\n\n const convertScaleToOffset = (scale) => [\n center.clientX / scale - app.canvas.ds.offset[0],\n center.clientY / scale - app.canvas.ds.offset[1]\n ]\n var oldCenter = convertScaleToOffset(oldScale)\n var newCenter = convertScaleToOffset(newScale)\n\n app.canvas.ds.offset[0] += newX + newCenter[0] - oldCenter[0]\n app.canvas.ds.offset[1] += newY + newCenter[1] - oldCenter[1]\n\n lastTouch.clientX = center.clientX\n lastTouch.clientY = center.clientY\n\n app.canvas.setDirty(true, true)\n }\n },\n true\n )\n }\n})\n\nconst processMouseDown = LGraphCanvas.prototype.processMouseDown\nLGraphCanvas.prototype.processMouseDown = function (e) {\n if (touchZooming || touchCount) {\n return\n }\n app.canvas.pointer.isDown = false // Prevent context menu from opening on second tap\n return processMouseDown.apply(this, arguments)\n}\n\nconst processMouseMove = LGraphCanvas.prototype.processMouseMove\nLGraphCanvas.prototype.processMouseMove = function (e) {\n if (touchZooming || touchCount > 1) {\n return\n }\n return processMouseMove.apply(this, arguments)\n}\n","import { app } from '../../scripts/app'\nimport { ComfyWidgets } from '../../scripts/widgets'\nimport { LiteGraph } from '@comfyorg/litegraph'\n// Adds defaults for quickly adding nodes with middle click on the input/output\n\napp.registerExtension({\n name: 'Comfy.SlotDefaults',\n suggestionsNumber: null,\n init() {\n LiteGraph.search_filter_enabled = true\n LiteGraph.middle_click_slot_add_default_node = true\n this.suggestionsNumber = app.ui.settings.addSetting({\n id: 'Comfy.NodeSuggestions.number',\n category: ['Comfy', 'Node Search Box', 'NodeSuggestions'],\n name: 'Number of nodes suggestions',\n tooltip: 'Only for litegraph searchbox/context menu',\n type: 'slider',\n attrs: {\n min: 1,\n max: 100,\n step: 1\n },\n defaultValue: 5,\n onChange: (newVal, oldVal) => {\n this.setDefaults(newVal)\n }\n })\n },\n slot_types_default_out: {},\n slot_types_default_in: {},\n async beforeRegisterNodeDef(nodeType, nodeData, app) {\n var nodeId = nodeData.name\n const inputs = nodeData['input']?.['required'] //only show required inputs to reduce the mess also not logical to create node with optional inputs\n for (const inputKey in inputs) {\n var input = inputs[inputKey]\n if (typeof input[0] !== 'string') continue\n\n var type = input[0]\n if (type in ComfyWidgets) {\n var customProperties = input[1]\n if (!customProperties?.forceInput) continue //ignore widgets that don't force input\n }\n\n if (!(type in this.slot_types_default_out)) {\n this.slot_types_default_out[type] = ['Reroute']\n }\n if (this.slot_types_default_out[type].includes(nodeId)) continue\n this.slot_types_default_out[type].push(nodeId)\n\n // Input types have to be stored as lower case\n // Store each node that can handle this input type\n const lowerType = type.toLocaleLowerCase()\n if (!(lowerType in LiteGraph.registered_slot_in_types)) {\n LiteGraph.registered_slot_in_types[lowerType] = { nodes: [] }\n }\n LiteGraph.registered_slot_in_types[lowerType].nodes.push(\n // @ts-expect-error ComfyNode\n nodeType.comfyClass\n )\n }\n\n var outputs = nodeData['output'] ?? []\n for (const el of outputs) {\n const type = el as string\n if (!(type in this.slot_types_default_in)) {\n this.slot_types_default_in[type] = ['Reroute'] // [\"Reroute\", \"Primitive\"]; primitive doesn't always work :'()\n }\n\n this.slot_types_default_in[type].push(nodeId)\n\n // Store each node that can handle this output type\n if (!(type in LiteGraph.registered_slot_out_types)) {\n LiteGraph.registered_slot_out_types[type] = { nodes: [] }\n }\n // @ts-expect-error ComfyNode\n LiteGraph.registered_slot_out_types[type].nodes.push(nodeType.comfyClass)\n\n if (!LiteGraph.slot_types_out.includes(type)) {\n LiteGraph.slot_types_out.push(type)\n }\n }\n\n var maxNum = this.suggestionsNumber.value\n this.setDefaults(maxNum)\n },\n setDefaults(maxNum?: number | null) {\n LiteGraph.slot_types_default_out = {}\n LiteGraph.slot_types_default_in = {}\n\n for (const type in this.slot_types_default_out) {\n LiteGraph.slot_types_default_out[type] = this.slot_types_default_out[\n type\n ].slice(0, maxNum)\n }\n for (const type in this.slot_types_default_in) {\n LiteGraph.slot_types_default_in[type] = this.slot_types_default_in[\n type\n ].slice(0, maxNum)\n }\n }\n})\n","import { app } from '../../scripts/app'\nimport { ComfyNodeDef } from '@/types/apiTypes'\n\n// Adds an upload button to the nodes\n\napp.registerExtension({\n name: 'Comfy.UploadImage',\n beforeRegisterNodeDef(nodeType, nodeData: ComfyNodeDef) {\n if (nodeData?.input?.required?.image?.[1]?.image_upload === true) {\n nodeData.input.required.upload = ['IMAGEUPLOAD']\n }\n }\n})\n","// @ts-strict-ignore\nimport { app } from '../../scripts/app'\nimport { api } from '../../scripts/api'\nimport { useToastStore } from '@/stores/toastStore'\n\nconst WEBCAM_READY = Symbol()\n\napp.registerExtension({\n name: 'Comfy.WebcamCapture',\n getCustomWidgets(app) {\n return {\n WEBCAM(node, inputName) {\n let res\n node[WEBCAM_READY] = new Promise((resolve) => (res = resolve))\n\n const container = document.createElement('div')\n container.style.background = 'rgba(0,0,0,0.25)'\n container.style.textAlign = 'center'\n\n const video = document.createElement('video')\n video.style.height = video.style.width = '100%'\n\n const loadVideo = async () => {\n try {\n const stream = await navigator.mediaDevices.getUserMedia({\n video: true,\n audio: false\n })\n container.replaceChildren(video)\n\n setTimeout(() => res(video), 500) // Fallback as loadedmetadata doesnt fire sometimes?\n video.addEventListener('loadedmetadata', () => res(video), false)\n video.srcObject = stream\n video.play()\n } catch (error) {\n const label = document.createElement('div')\n label.style.color = 'red'\n label.style.overflow = 'auto'\n label.style.maxHeight = '100%'\n label.style.whiteSpace = 'pre-wrap'\n\n if (window.isSecureContext) {\n label.textContent =\n 'Unable to load webcam, please ensure access is granted:\\n' +\n error.message\n } else {\n label.textContent =\n 'Unable to load webcam. A secure context is required, if you are not accessing ComfyUI on localhost (127.0.0.1) you will have to enable TLS (https)\\n\\n' +\n error.message\n }\n\n container.replaceChildren(label)\n }\n }\n\n loadVideo()\n\n return { widget: node.addDOMWidget(inputName, 'WEBCAM', container) }\n }\n }\n },\n nodeCreated(node) {\n if ((node.type, node.constructor.comfyClass !== 'WebcamCapture')) return\n\n let video\n const camera = node.widgets.find((w) => w.name === 'image')\n const w = node.widgets.find((w) => w.name === 'width')\n const h = node.widgets.find((w) => w.name === 'height')\n const captureOnQueue = node.widgets.find(\n (w) => w.name === 'capture_on_queue'\n )\n\n const canvas = document.createElement('canvas')\n\n const capture = () => {\n // @ts-expect-error widget value type narrow down\n canvas.width = w.value\n // @ts-expect-error widget value type narrow down\n canvas.height = h.value\n const ctx = canvas.getContext('2d')\n // @ts-expect-error widget value type narrow down\n ctx.drawImage(video, 0, 0, w.value, h.value)\n const data = canvas.toDataURL('image/png')\n\n const img = new Image()\n img.onload = () => {\n // @ts-expect-error adding extra property\n node.imgs = [img]\n app.graph.setDirtyCanvas(true)\n requestAnimationFrame(() => {\n // @ts-expect-error accessing extra property\n node.setSizeForImage?.()\n })\n }\n img.src = data\n }\n\n const btn = node.addWidget(\n 'button',\n 'waiting for camera...',\n 'capture',\n capture\n )\n btn.disabled = true\n // @ts-expect-error hacky override\n btn.serializeValue = () => undefined\n\n // @ts-expect-error hacky override\n camera.serializeValue = async () => {\n if (captureOnQueue.value) {\n capture()\n // @ts-expect-error accessing extra property\n } else if (!node.imgs?.length) {\n const err = `No webcam image captured`\n useToastStore().addAlert(err)\n throw new Error(err)\n }\n\n // Upload image to temp storage\n const blob = await new Promise((r) => canvas.toBlob(r))\n const name = `${+new Date()}.png`\n const file = new File([blob], name)\n const body = new FormData()\n body.append('image', file)\n body.append('subfolder', 'webcam')\n body.append('type', 'temp')\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n if (resp.status !== 200) {\n const err = `Error uploading camera image: ${resp.status} - ${resp.statusText}`\n useToastStore().addAlert(err)\n throw new Error(err)\n }\n return `webcam/${name} [temp]`\n }\n\n node[WEBCAM_READY].then((v) => {\n video = v\n // If width isnt specified then use video output resolution\n if (!w.value) {\n w.value = video.videoWidth || 640\n h.value = video.videoHeight || 480\n }\n btn.disabled = false\n btn.label = 'capture'\n })\n }\n})\n","// @ts-strict-ignore\nimport { app } from '../../scripts/app'\nimport { api } from '../../scripts/api'\nimport type { IWidget } from '@comfyorg/litegraph'\nimport type { DOMWidget } from '@/scripts/domWidget'\nimport { ComfyNodeDef } from '@/types/apiTypes'\nimport { useToastStore } from '@/stores/toastStore'\n\ntype FolderType = 'input' | 'output' | 'temp'\n\nfunction splitFilePath(path: string): [string, string] {\n const folder_separator = path.lastIndexOf('/')\n if (folder_separator === -1) {\n return ['', path]\n }\n return [\n path.substring(0, folder_separator),\n path.substring(folder_separator + 1)\n ]\n}\n\nfunction getResourceURL(\n subfolder: string,\n filename: string,\n type: FolderType = 'input'\n): string {\n const params = [\n 'filename=' + encodeURIComponent(filename),\n 'type=' + type,\n 'subfolder=' + subfolder,\n app.getRandParam().substring(1)\n ].join('&')\n\n return `/view?${params}`\n}\n\nasync function uploadFile(\n audioWidget: IWidget,\n audioUIWidget: DOMWidget,\n file: File,\n updateNode: boolean,\n pasted: boolean = false\n) {\n try {\n // Wrap file in formdata so it includes filename\n const body = new FormData()\n body.append('image', file)\n if (pasted) body.append('subfolder', 'pasted')\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n\n if (resp.status === 200) {\n const data = await resp.json()\n // Add the file to the dropdown list and update the widget value\n let path = data.name\n if (data.subfolder) path = data.subfolder + '/' + path\n\n if (!audioWidget.options.values.includes(path)) {\n audioWidget.options.values.push(path)\n }\n\n if (updateNode) {\n audioUIWidget.element.src = api.apiURL(\n getResourceURL(...splitFilePath(path))\n )\n audioWidget.value = path\n }\n } else {\n useToastStore().addAlert(resp.status + ' - ' + resp.statusText)\n }\n } catch (error) {\n useToastStore().addAlert(error)\n }\n}\n\n// AudioWidget MUST be registered first, as AUDIOUPLOAD depends on AUDIO_UI to be\n// present.\napp.registerExtension({\n name: 'Comfy.AudioWidget',\n async beforeRegisterNodeDef(nodeType, nodeData) {\n if (\n // @ts-expect-error ComfyNode\n ['LoadAudio', 'SaveAudio', 'PreviewAudio'].includes(nodeType.comfyClass)\n ) {\n nodeData.input.required.audioUI = ['AUDIO_UI']\n }\n },\n getCustomWidgets() {\n return {\n AUDIO_UI(node, inputName: string) {\n const audio = document.createElement('audio')\n audio.controls = true\n audio.classList.add('comfy-audio')\n audio.setAttribute('name', 'media')\n\n const audioUIWidget: DOMWidget =\n node.addDOMWidget(inputName, /* name=*/ 'audioUI', audio, {\n serialize: false\n })\n\n const isOutputNode = node.constructor.nodeData.output_node\n if (isOutputNode) {\n // Hide the audio widget when there is no audio initially.\n audioUIWidget.element.classList.add('empty-audio-widget')\n // Populate the audio widget UI on node execution.\n const onExecuted = node.onExecuted\n node.onExecuted = function (message: any) {\n onExecuted?.apply(this, arguments)\n const audios = message.audio\n if (!audios) return\n const audio = audios[0]\n audioUIWidget.element.src = api.apiURL(\n getResourceURL(audio.subfolder, audio.filename, audio.type)\n )\n audioUIWidget.element.classList.remove('empty-audio-widget')\n }\n }\n return { widget: audioUIWidget }\n }\n }\n },\n onNodeOutputsUpdated(nodeOutputs: Record) {\n for (const [nodeId, output] of Object.entries(nodeOutputs)) {\n const node = app.graph.getNodeById(nodeId)\n if ('audio' in output) {\n const audioUIWidget = node.widgets.find(\n (w) => w.name === 'audioUI'\n ) as unknown as DOMWidget\n const audio = output.audio[0]\n audioUIWidget.element.src = api.apiURL(\n getResourceURL(audio.subfolder, audio.filename, audio.type)\n )\n audioUIWidget.element.classList.remove('empty-audio-widget')\n }\n }\n }\n})\n\napp.registerExtension({\n name: 'Comfy.UploadAudio',\n async beforeRegisterNodeDef(nodeType, nodeData: ComfyNodeDef) {\n if (nodeData?.input?.required?.audio?.[1]?.audio_upload === true) {\n nodeData.input.required.upload = ['AUDIOUPLOAD']\n }\n },\n getCustomWidgets() {\n return {\n AUDIOUPLOAD(node, inputName: string) {\n // The widget that allows user to select file.\n const audioWidget: IWidget = node.widgets.find(\n (w: IWidget) => w.name === 'audio'\n )\n const audioUIWidget = node.widgets.find(\n (w: IWidget) => w.name === 'audioUI'\n ) as unknown as DOMWidget\n\n const onAudioWidgetUpdate = () => {\n audioUIWidget.element.src = api.apiURL(\n getResourceURL(...splitFilePath(audioWidget.value as string))\n )\n }\n // Initially load default audio file to audioUIWidget.\n if (audioWidget.value) {\n onAudioWidgetUpdate()\n }\n audioWidget.callback = onAudioWidgetUpdate\n\n // Load saved audio file widget values if restoring from workflow\n const onGraphConfigured = node.onGraphConfigured\n node.onGraphConfigured = function () {\n onGraphConfigured?.apply(this, arguments)\n if (audioWidget.value) {\n onAudioWidgetUpdate()\n }\n }\n\n const fileInput = document.createElement('input')\n fileInput.type = 'file'\n fileInput.accept = 'audio/*'\n fileInput.style.display = 'none'\n fileInput.onchange = () => {\n if (fileInput.files.length) {\n uploadFile(audioWidget, audioUIWidget, fileInput.files[0], true)\n }\n }\n // The widget to pop up the upload dialog.\n const uploadWidget = node.addWidget(\n 'button',\n inputName,\n /* value=*/ '',\n () => {\n fileInput.click()\n },\n { serialize: false }\n )\n uploadWidget.label = 'choose file to upload'\n\n return { widget: uploadWidget }\n }\n }\n }\n})\n","import { t } from '@/i18n'\nimport { app } from '@/scripts/app'\nimport { showConfirmationDialog } from '@/services/dialogService'\nimport { electronAPI as getElectronAPI, isElectron } from '@/utils/envUtil'\n;(async () => {\n if (!isElectron()) return\n\n const electronAPI = getElectronAPI()\n const desktopAppVersion = await electronAPI.getElectronVersion()\n\n const onChangeRestartApp = (newValue: string, oldValue: string) => {\n // Add a delay to allow changes to take effect before restarting.\n if (oldValue !== undefined && newValue !== oldValue) {\n electronAPI.restartApp('Restart ComfyUI to apply changes.', 1500)\n }\n }\n\n app.registerExtension({\n name: 'Comfy.ElectronAdapter',\n settings: [\n {\n id: 'Comfy-Desktop.AutoUpdate',\n category: ['Comfy-Desktop', 'General', 'AutoUpdate'],\n name: 'Automatically check for updates',\n type: 'boolean',\n defaultValue: true,\n onChange: onChangeRestartApp\n },\n {\n id: 'Comfy-Desktop.SendStatistics',\n category: ['Comfy-Desktop', 'General', 'Send Statistics'],\n name: 'Send anonymous crash reports',\n type: 'boolean',\n defaultValue: true,\n onChange: onChangeRestartApp\n }\n ],\n\n commands: [\n {\n id: 'Comfy-Desktop.Folders.OpenLogsFolder',\n label: 'Open Logs Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openLogsFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenModelsFolder',\n label: 'Open Models Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openModelsFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenOutputsFolder',\n label: 'Open Outputs Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openOutputsFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenInputsFolder',\n label: 'Open Inputs Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openInputsFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenCustomNodesFolder',\n label: 'Open Custom Nodes Folder',\n icon: 'pi pi-folder-open',\n function() {\n electronAPI.openCustomNodesFolder()\n }\n },\n {\n id: 'Comfy-Desktop.Folders.OpenModelConfig',\n label: 'Open extra_model_paths.yaml',\n icon: 'pi pi-file',\n function() {\n electronAPI.openModelConfig()\n }\n },\n {\n id: 'Comfy-Desktop.OpenDevTools',\n label: 'Open DevTools',\n icon: 'pi pi-code',\n function() {\n electronAPI.openDevTools()\n }\n },\n {\n id: 'Comfy-Desktop.OpenFeedbackPage',\n label: 'Feedback',\n icon: 'pi pi-envelope',\n function() {\n window.open('https://forum.comfy.org/c/v1-feedback/', '_blank')\n }\n },\n {\n id: 'Comfy-Desktop.OpenUserGuide',\n label: 'Desktop User Guide',\n icon: 'pi pi-book',\n function() {\n window.open('https://comfyorg.notion.site/', '_blank')\n }\n },\n {\n id: 'Comfy-Desktop.Reinstall',\n label: 'Reinstall',\n icon: 'pi pi-refresh',\n async function() {\n const proceed = await showConfirmationDialog({\n message: t('desktopMenu.confirmReinstall'),\n title: t('desktopMenu.reinstall'),\n type: 'reinstall'\n })\n\n if (proceed) electronAPI.reinstall()\n }\n },\n {\n id: 'Comfy-Desktop.Restart',\n label: 'Restart',\n icon: 'pi pi-refresh',\n function() {\n electronAPI.restartApp()\n }\n }\n ],\n\n menuCommands: [\n {\n path: ['Help'],\n commands: [\n 'Comfy-Desktop.OpenUserGuide',\n 'Comfy-Desktop.OpenFeedbackPage'\n ]\n },\n {\n path: ['Help'],\n commands: ['Comfy-Desktop.OpenDevTools']\n },\n {\n path: ['Help', 'Open Folder'],\n commands: [\n 'Comfy-Desktop.Folders.OpenLogsFolder',\n 'Comfy-Desktop.Folders.OpenModelsFolder',\n 'Comfy-Desktop.Folders.OpenOutputsFolder',\n 'Comfy-Desktop.Folders.OpenInputsFolder',\n 'Comfy-Desktop.Folders.OpenCustomNodesFolder',\n 'Comfy-Desktop.Folders.OpenModelConfig'\n ]\n },\n {\n path: ['Help'],\n commands: ['Comfy-Desktop.Reinstall']\n }\n ],\n\n aboutPageBadges: [\n {\n label: 'ComfyUI_desktop v' + desktopAppVersion,\n url: 'https://github.com/Comfy-Org/electron',\n icon: 'pi pi-github'\n }\n ]\n })\n})()\n","/**\n * @license\n * Copyright 2010-2024 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '170';\n\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nconst CullFaceNone = 0;\nconst CullFaceBack = 1;\nconst CullFaceFront = 2;\nconst CullFaceFrontBack = 3;\nconst BasicShadowMap = 0;\nconst PCFShadowMap = 1;\nconst PCFSoftShadowMap = 2;\nconst VSMShadowMap = 3;\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst NoBlending = 0;\nconst NormalBlending = 1;\nconst AdditiveBlending = 2;\nconst SubtractiveBlending = 3;\nconst MultiplyBlending = 4;\nconst CustomBlending = 5;\nconst AddEquation = 100;\nconst SubtractEquation = 101;\nconst ReverseSubtractEquation = 102;\nconst MinEquation = 103;\nconst MaxEquation = 104;\nconst ZeroFactor = 200;\nconst OneFactor = 201;\nconst SrcColorFactor = 202;\nconst OneMinusSrcColorFactor = 203;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst DstAlphaFactor = 206;\nconst OneMinusDstAlphaFactor = 207;\nconst DstColorFactor = 208;\nconst OneMinusDstColorFactor = 209;\nconst SrcAlphaSaturateFactor = 210;\nconst ConstantColorFactor = 211;\nconst OneMinusConstantColorFactor = 212;\nconst ConstantAlphaFactor = 213;\nconst OneMinusConstantAlphaFactor = 214;\nconst NeverDepth = 0;\nconst AlwaysDepth = 1;\nconst LessDepth = 2;\nconst LessEqualDepth = 3;\nconst EqualDepth = 4;\nconst GreaterEqualDepth = 5;\nconst GreaterDepth = 6;\nconst NotEqualDepth = 7;\nconst MultiplyOperation = 0;\nconst MixOperation = 1;\nconst AddOperation = 2;\nconst NoToneMapping = 0;\nconst LinearToneMapping = 1;\nconst ReinhardToneMapping = 2;\nconst CineonToneMapping = 3;\nconst ACESFilmicToneMapping = 4;\nconst CustomToneMapping = 5;\nconst AgXToneMapping = 6;\nconst NeutralToneMapping = 7;\nconst AttachedBindMode = 'attached';\nconst DetachedBindMode = 'detached';\n\nconst UVMapping = 300;\nconst CubeReflectionMapping = 301;\nconst CubeRefractionMapping = 302;\nconst EquirectangularReflectionMapping = 303;\nconst EquirectangularRefractionMapping = 304;\nconst CubeUVReflectionMapping = 306;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst NearestFilter = 1003;\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004;\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005;\nconst LinearFilter = 1006;\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007;\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst ByteType = 1010;\nconst ShortType = 1011;\nconst UnsignedShortType = 1012;\nconst IntType = 1013;\nconst UnsignedIntType = 1014;\nconst FloatType = 1015;\nconst HalfFloatType = 1016;\nconst UnsignedShort4444Type = 1017;\nconst UnsignedShort5551Type = 1018;\nconst UnsignedInt248Type = 1020;\nconst UnsignedInt5999Type = 35902;\nconst AlphaFormat = 1021;\nconst RGBFormat = 1022;\nconst RGBAFormat = 1023;\nconst LuminanceFormat = 1024;\nconst LuminanceAlphaFormat = 1025;\nconst DepthFormat = 1026;\nconst DepthStencilFormat = 1027;\nconst RedFormat = 1028;\nconst RedIntegerFormat = 1029;\nconst RGFormat = 1030;\nconst RGIntegerFormat = 1031;\nconst RGBIntegerFormat = 1032;\nconst RGBAIntegerFormat = 1033;\n\nconst RGB_S3TC_DXT1_Format = 33776;\nconst RGBA_S3TC_DXT1_Format = 33777;\nconst RGBA_S3TC_DXT3_Format = 33778;\nconst RGBA_S3TC_DXT5_Format = 33779;\nconst RGB_PVRTC_4BPPV1_Format = 35840;\nconst RGB_PVRTC_2BPPV1_Format = 35841;\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\nconst RGB_ETC1_Format = 36196;\nconst RGB_ETC2_Format = 37492;\nconst RGBA_ETC2_EAC_Format = 37496;\nconst RGBA_ASTC_4x4_Format = 37808;\nconst RGBA_ASTC_5x4_Format = 37809;\nconst RGBA_ASTC_5x5_Format = 37810;\nconst RGBA_ASTC_6x5_Format = 37811;\nconst RGBA_ASTC_6x6_Format = 37812;\nconst RGBA_ASTC_8x5_Format = 37813;\nconst RGBA_ASTC_8x6_Format = 37814;\nconst RGBA_ASTC_8x8_Format = 37815;\nconst RGBA_ASTC_10x5_Format = 37816;\nconst RGBA_ASTC_10x6_Format = 37817;\nconst RGBA_ASTC_10x8_Format = 37818;\nconst RGBA_ASTC_10x10_Format = 37819;\nconst RGBA_ASTC_12x10_Format = 37820;\nconst RGBA_ASTC_12x12_Format = 37821;\nconst RGBA_BPTC_Format = 36492;\nconst RGB_BPTC_SIGNED_Format = 36494;\nconst RGB_BPTC_UNSIGNED_Format = 36495;\nconst RED_RGTC1_Format = 36283;\nconst SIGNED_RED_RGTC1_Format = 36284;\nconst RED_GREEN_RGTC2_Format = 36285;\nconst SIGNED_RED_GREEN_RGTC2_Format = 36286;\nconst LoopOnce = 2200;\nconst LoopRepeat = 2201;\nconst LoopPingPong = 2202;\nconst InterpolateDiscrete = 2300;\nconst InterpolateLinear = 2301;\nconst InterpolateSmooth = 2302;\nconst ZeroCurvatureEnding = 2400;\nconst ZeroSlopeEnding = 2401;\nconst WrapAroundEnding = 2402;\nconst NormalAnimationBlendMode = 2500;\nconst AdditiveAnimationBlendMode = 2501;\nconst TrianglesDrawMode = 0;\nconst TriangleStripDrawMode = 1;\nconst TriangleFanDrawMode = 2;\nconst BasicDepthPacking = 3200;\nconst RGBADepthPacking = 3201;\nconst RGBDepthPacking = 3202;\nconst RGDepthPacking = 3203;\nconst TangentSpaceNormalMap = 0;\nconst ObjectSpaceNormalMap = 1;\n\n// Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\nconst NoColorSpace = '';\nconst SRGBColorSpace = 'srgb';\nconst LinearSRGBColorSpace = 'srgb-linear';\n\nconst LinearTransfer = 'linear';\nconst SRGBTransfer = 'srgb';\n\nconst ZeroStencilOp = 0;\nconst KeepStencilOp = 7680;\nconst ReplaceStencilOp = 7681;\nconst IncrementStencilOp = 7682;\nconst DecrementStencilOp = 7683;\nconst IncrementWrapStencilOp = 34055;\nconst DecrementWrapStencilOp = 34056;\nconst InvertStencilOp = 5386;\n\nconst NeverStencilFunc = 512;\nconst LessStencilFunc = 513;\nconst EqualStencilFunc = 514;\nconst LessEqualStencilFunc = 515;\nconst GreaterStencilFunc = 516;\nconst NotEqualStencilFunc = 517;\nconst GreaterEqualStencilFunc = 518;\nconst AlwaysStencilFunc = 519;\n\nconst NeverCompare = 512;\nconst LessCompare = 513;\nconst EqualCompare = 514;\nconst LessEqualCompare = 515;\nconst GreaterCompare = 516;\nconst NotEqualCompare = 517;\nconst GreaterEqualCompare = 518;\nconst AlwaysCompare = 519;\n\nconst StaticDrawUsage = 35044;\nconst DynamicDrawUsage = 35048;\nconst StreamDrawUsage = 35040;\nconst StaticReadUsage = 35045;\nconst DynamicReadUsage = 35049;\nconst StreamReadUsage = 35041;\nconst StaticCopyUsage = 35046;\nconst DynamicCopyUsage = 35050;\nconst StreamCopyUsage = 35042;\n\nconst GLSL1 = '100';\nconst GLSL3 = '300 es';\n\nconst WebGLCoordinateSystem = 2000;\nconst WebGPUCoordinateSystem = 2001;\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\nconst _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];\n\nlet _seed = 1234567;\n\n\nconst DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n\n}\n\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// Linear mapping from range to range \nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\nfunction inverseLerp( x, y, value ) {\n\n\tif ( x !== y ) {\n\n\t\treturn ( value - x ) / ( y - x );\n\n\t} else {\n\n\t\treturn 0;\n\n\t}\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n// https://www.desmos.com/calculator/vcsjnyz7x4\nfunction pingpong( x, length = 1 ) {\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n// http://en.wikipedia.org/wiki/Smoothstep\nfunction smoothstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * ( 3 - 2 * x );\n\n}\n\nfunction smootherstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n}\n\n// Random integer from interval\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n// Random float from interval\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n// Random float from <-range/2, range/2> interval\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n// Deterministic pseudo-random float in the interval [ 0, 1 ]\nfunction seededRandom( s ) {\n\n\tif ( s !== undefined ) _seed = s;\n\n\t// Mulberry32 generator\n\n\tlet t = _seed += 0x6D2B79F5;\n\n\tt = Math.imul( t ^ t >>> 15, t | 1 );\n\n\tt ^= t + Math.imul( t ^ t >>> 7, t | 61 );\n\n\treturn ( ( t ^ t >>> 14 ) >>> 0 ) / 4294967296;\n\n}\n\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\n\n\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t// rotations are applied to the axes in the order specified by 'order'\n\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t// angles are in radians\n\n\tconst cos = Math.cos;\n\tconst sin = Math.sin;\n\n\tconst c2 = cos( b / 2 );\n\tconst s2 = sin( b / 2 );\n\n\tconst c13 = cos( ( a + c ) / 2 );\n\tconst s13 = sin( ( a + c ) / 2 );\n\n\tconst c1_3 = cos( ( a - c ) / 2 );\n\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\tconst c3_1 = cos( ( c - a ) / 2 );\n\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\tswitch ( order ) {\n\n\t\tcase 'XYX':\n\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YZY':\n\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZXZ':\n\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'XZX':\n\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YXY':\n\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZYZ':\n\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t}\n\n}\n\nfunction denormalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn value / 4294967295.0;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn value / 65535.0;\n\n\t\tcase Uint8Array:\n\n\t\t\treturn value / 255.0;\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.max( value / 2147483647.0, - 1.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, - 1.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, - 1.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nfunction normalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn Math.round( value * 4294967295.0 );\n\n\t\tcase Uint16Array:\n\n\t\t\treturn Math.round( value * 65535.0 );\n\n\t\tcase Uint8Array:\n\n\t\t\treturn Math.round( value * 255.0 );\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.round( value * 2147483647.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.round( value * 32767.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.round( value * 127.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nconst MathUtils = {\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\tgenerateUUID: generateUUID,\n\tclamp: clamp,\n\teuclideanModulo: euclideanModulo,\n\tmapLinear: mapLinear,\n\tinverseLerp: inverseLerp,\n\tlerp: lerp,\n\tdamp: damp,\n\tpingpong: pingpong,\n\tsmoothstep: smoothstep,\n\tsmootherstep: smootherstep,\n\trandInt: randInt,\n\trandFloat: randFloat,\n\trandFloatSpread: randFloatSpread,\n\tseededRandom: seededRandom,\n\tdegToRad: degToRad,\n\tradToDeg: radToDeg,\n\tisPowerOfTwo: isPowerOfTwo,\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\tnormalize: normalize,\n\tdenormalize: denormalize\n};\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tVector2.prototype.isVector2 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nclass Matrix3 {\n\n\tconstructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n21, n22, n23, n31, n32, n33 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tthis.premultiply( _m3.makeTranslation( tx, ty ) );\n\n\t\treturn this;\n\n\t}\n\n\t// for 2D Transforms\n\n\tmakeTranslation( x, y ) {\n\n\t\tif ( x.isVector2 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x.x,\n\t\t\t\t0, 1, x.y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x,\n\t\t\t\t0, 1, y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotation( theta ) {\n\n\t\t// counterclockwise\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0,\n\t\t\ts, c, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0,\n\t\t\t0, y, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nconst _m3 = /*@__PURE__*/ new Matrix3();\n\nfunction arrayNeedsUint32( array ) {\n\n\t// assumes larger values usually on last\n\n\tfor ( let i = array.length - 1; i >= 0; -- i ) {\n\n\t\tif ( array[ i ] >= 65535 ) return true; // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565\n\n\t}\n\n\treturn false;\n\n}\n\nconst TYPED_ARRAYS = {\n\tInt8Array: Int8Array,\n\tUint8Array: Uint8Array,\n\tUint8ClampedArray: Uint8ClampedArray,\n\tInt16Array: Int16Array,\n\tUint16Array: Uint16Array,\n\tInt32Array: Int32Array,\n\tUint32Array: Uint32Array,\n\tFloat32Array: Float32Array,\n\tFloat64Array: Float64Array\n};\n\nfunction getTypedArray( type, buffer ) {\n\n\treturn new TYPED_ARRAYS[ type ]( buffer );\n\n}\n\nfunction createElementNS( name ) {\n\n\treturn document.createElementNS( 'http://www.w3.org/1999/xhtml', name );\n\n}\n\nfunction createCanvasElement() {\n\n\tconst canvas = createElementNS( 'canvas' );\n\tcanvas.style.display = 'block';\n\treturn canvas;\n\n}\n\nconst _cache = {};\n\nfunction warnOnce( message ) {\n\n\tif ( message in _cache ) return;\n\n\t_cache[ message ] = true;\n\n\tconsole.warn( message );\n\n}\n\nfunction probeAsync( gl, sync, interval ) {\n\n\treturn new Promise( function ( resolve, reject ) {\n\n\t\tfunction probe() {\n\n\t\t\tswitch ( gl.clientWaitSync( sync, gl.SYNC_FLUSH_COMMANDS_BIT, 0 ) ) {\n\n\t\t\t\tcase gl.WAIT_FAILED:\n\t\t\t\t\treject();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase gl.TIMEOUT_EXPIRED:\n\t\t\t\t\tsetTimeout( probe, interval );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tresolve();\n\n\t\t\t}\n\n\t\t}\n\n\t\tsetTimeout( probe, interval );\n\n\t} );\n\n}\n\nfunction toNormalizedProjectionMatrix( projectionMatrix ) {\n\n\tconst m = projectionMatrix.elements;\n\n\t// Convert [-1, 1] to [0, 1] projection matrix\n\tm[ 2 ] = 0.5 * m[ 2 ] + 0.5 * m[ 3 ];\n\tm[ 6 ] = 0.5 * m[ 6 ] + 0.5 * m[ 7 ];\n\tm[ 10 ] = 0.5 * m[ 10 ] + 0.5 * m[ 11 ];\n\tm[ 14 ] = 0.5 * m[ 14 ] + 0.5 * m[ 15 ];\n\n}\n\nfunction toReversedProjectionMatrix( projectionMatrix ) {\n\n\tconst m = projectionMatrix.elements;\n\tconst isPerspectiveMatrix = m[ 11 ] === - 1;\n\n\t// Reverse [0, 1] projection matrix\n\tif ( isPerspectiveMatrix ) {\n\n\t\tm[ 10 ] = - m[ 10 ] - 1;\n\t\tm[ 14 ] = - m[ 14 ];\n\n\t} else {\n\n\t\tm[ 10 ] = - m[ 10 ];\n\t\tm[ 14 ] = - m[ 14 ] + 1;\n\n\t}\n\n}\n\nconst ColorManagement = {\n\n\tenabled: true,\n\n\tworkingColorSpace: LinearSRGBColorSpace,\n\n\t/**\n\t * Implementations of supported color spaces.\n\t *\n\t * Required:\n\t *\t- primaries: chromaticity coordinates [ rx ry gx gy bx by ]\n\t *\t- whitePoint: reference white [ x y ]\n\t *\t- transfer: transfer function (pre-defined)\n\t *\t- toXYZ: Matrix3 RGB to XYZ transform\n\t *\t- fromXYZ: Matrix3 XYZ to RGB transform\n\t *\t- luminanceCoefficients: RGB luminance coefficients\n\t *\n\t * Optional:\n\t * - outputColorSpaceConfig: { drawingBufferColorSpace: ColorSpace }\n\t * - workingColorSpaceConfig: { unpackColorSpace: ColorSpace }\n\t *\n\t * Reference:\n\t * - https://www.russellcottrell.com/photo/matrixCalculator.htm\n\t */\n\tspaces: {},\n\n\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\tif ( this.enabled === false || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\treturn color;\n\n\t\t}\n\n\t\tif ( this.spaces[ sourceColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\tcolor.r = SRGBToLinear( color.r );\n\t\t\tcolor.g = SRGBToLinear( color.g );\n\t\t\tcolor.b = SRGBToLinear( color.b );\n\n\t\t}\n\n\t\tif ( this.spaces[ sourceColorSpace ].primaries !== this.spaces[ targetColorSpace ].primaries ) {\n\n\t\t\tcolor.applyMatrix3( this.spaces[ sourceColorSpace ].toXYZ );\n\t\t\tcolor.applyMatrix3( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t\t}\n\n\t\tif ( this.spaces[ targetColorSpace ].transfer === SRGBTransfer ) {\n\n\t\t\tcolor.r = LinearToSRGB( color.r );\n\t\t\tcolor.g = LinearToSRGB( color.g );\n\t\t\tcolor.b = LinearToSRGB( color.b );\n\n\t\t}\n\n\t\treturn color;\n\n\t},\n\n\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\treturn this.convert( color, this.workingColorSpace, targetColorSpace );\n\n\t},\n\n\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\treturn this.convert( color, sourceColorSpace, this.workingColorSpace );\n\n\t},\n\n\tgetPrimaries: function ( colorSpace ) {\n\n\t\treturn this.spaces[ colorSpace ].primaries;\n\n\t},\n\n\tgetTransfer: function ( colorSpace ) {\n\n\t\tif ( colorSpace === NoColorSpace ) return LinearTransfer;\n\n\t\treturn this.spaces[ colorSpace ].transfer;\n\n\t},\n\n\tgetLuminanceCoefficients: function ( target, colorSpace = this.workingColorSpace ) {\n\n\t\treturn target.fromArray( this.spaces[ colorSpace ].luminanceCoefficients );\n\n\t},\n\n\tdefine: function ( colorSpaces ) {\n\n\t\tObject.assign( this.spaces, colorSpaces );\n\n\t},\n\n\t// Internal APIs\n\n\t_getMatrix: function ( targetMatrix, sourceColorSpace, targetColorSpace ) {\n\n\t\treturn targetMatrix\n\t\t\t.copy( this.spaces[ sourceColorSpace ].toXYZ )\n\t\t\t.multiply( this.spaces[ targetColorSpace ].fromXYZ );\n\n\t},\n\n\t_getDrawingBufferColorSpace: function ( colorSpace ) {\n\n\t\treturn this.spaces[ colorSpace ].outputColorSpaceConfig.drawingBufferColorSpace;\n\n\t},\n\n\t_getUnpackColorSpace: function ( colorSpace = this.workingColorSpace ) {\n\n\t\treturn this.spaces[ colorSpace ].workingColorSpaceConfig.unpackColorSpace;\n\n\t}\n\n};\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\n/******************************************************************************\n * sRGB definitions\n */\n\nconst REC709_PRIMARIES = [ 0.640, 0.330, 0.300, 0.600, 0.150, 0.060 ];\nconst REC709_LUMINANCE_COEFFICIENTS = [ 0.2126, 0.7152, 0.0722 ];\nconst D65 = [ 0.3127, 0.3290 ];\n\nconst LINEAR_REC709_TO_XYZ = /*@__PURE__*/ new Matrix3().set(\n\t0.4123908, 0.3575843, 0.1804808,\n\t0.2126390, 0.7151687, 0.0721923,\n\t0.0193308, 0.1191948, 0.9505322\n);\n\nconst XYZ_TO_LINEAR_REC709 = /*@__PURE__*/ new Matrix3().set(\n\t3.2409699, - 1.5373832, - 0.4986108,\n\t- 0.9692436, 1.8759675, 0.0415551,\n\t0.0556301, - 0.2039770, 1.0569715\n);\n\nColorManagement.define( {\n\n\t[ LinearSRGBColorSpace ]: {\n\t\tprimaries: REC709_PRIMARIES,\n\t\twhitePoint: D65,\n\t\ttransfer: LinearTransfer,\n\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\tworkingColorSpaceConfig: { unpackColorSpace: SRGBColorSpace },\n\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t},\n\n\t[ SRGBColorSpace ]: {\n\t\tprimaries: REC709_PRIMARIES,\n\t\twhitePoint: D65,\n\t\ttransfer: SRGBTransfer,\n\t\ttoXYZ: LINEAR_REC709_TO_XYZ,\n\t\tfromXYZ: XYZ_TO_LINEAR_REC709,\n\t\tluminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS,\n\t\toutputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace }\n\t},\n\n} );\n\nlet _canvas;\n\nclass ImageUtils {\n\n\tstatic getDataURL( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement === 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = createElementNS( 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n\tstatic sRGBToLinear( image ) {\n\n\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\tconst canvas = createElementNS( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\tconst imageData = context.getImageData( 0, 0, image.width, image.height );\n\t\t\tconst data = imageData.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imageData, 0, 0 );\n\n\t\t\treturn canvas;\n\n\t\t} else if ( image.data ) {\n\n\t\t\tconst data = image.data.slice( 0 );\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tif ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) {\n\n\t\t\t\t\tdata[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// assuming float\n\n\t\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data,\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );\n\t\t\treturn image;\n\n\t\t}\n\n\t}\n\n}\n\nlet _sourceId = 0;\n\nclass Source {\n\n\tconstructor( data = null ) {\n\n\t\tthis.isSource = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _sourceId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.data = data;\n\t\tthis.dataReady = true;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.images[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.images[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\t\t\tuuid: this.uuid,\n\t\t\turl: ''\n\t\t};\n\n\t\tconst data = this.data;\n\n\t\tif ( data !== null ) {\n\n\t\t\tlet url;\n\n\t\t\tif ( Array.isArray( data ) ) {\n\n\t\t\t\t// cube texture\n\n\t\t\t\turl = [];\n\n\t\t\t\tfor ( let i = 0, l = data.length; i < l; i ++ ) {\n\n\t\t\t\t\tif ( data[ i ].isDataTexture ) {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ].image ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ] ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// texture\n\n\t\t\t\turl = serializeImage( data );\n\n\t\t\t}\n\n\t\t\toutput.url = url;\n\n\t\t}\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.images[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n}\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.from( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nlet _textureId = 0;\n\nclass Texture extends EventDispatcher {\n\n\tconstructor( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = Texture.DEFAULT_ANISOTROPY, colorSpace = NoColorSpace ) {\n\n\t\tsuper();\n\n\t\tthis.isTexture = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _textureId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.source = new Source( image );\n\t\tthis.mipmaps = [];\n\n\t\tthis.mapping = mapping;\n\t\tthis.channel = 0;\n\n\t\tthis.wrapS = wrapS;\n\t\tthis.wrapT = wrapT;\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.anisotropy = anisotropy;\n\n\t\tthis.format = format;\n\t\tthis.internalFormat = null;\n\t\tthis.type = type;\n\n\t\tthis.offset = new Vector2( 0, 0 );\n\t\tthis.repeat = new Vector2( 1, 1 );\n\t\tthis.center = new Vector2( 0, 0 );\n\t\tthis.rotation = 0;\n\n\t\tthis.matrixAutoUpdate = true;\n\t\tthis.matrix = new Matrix3();\n\n\t\tthis.generateMipmaps = true;\n\t\tthis.premultiplyAlpha = false;\n\t\tthis.flipY = true;\n\t\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t\tthis.colorSpace = colorSpace;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\t\tthis.onUpdate = null;\n\n\t\tthis.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\t\tthis.pmremVersion = 0; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n\t}\n\n\tget image() {\n\n\t\treturn this.source.data;\n\n\t}\n\n\tset image( value = null ) {\n\n\t\tthis.source.data = value;\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.source = source.source;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\t\tthis.channel = source.channel;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.colorSpace = source.colorSpace;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tthis.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\timage: this.source.toJSON( meta ).uuid,\n\n\t\t\tmapping: this.mapping,\n\t\t\tchannel: this.channel,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\tinternalFormat: this.internalFormat,\n\t\t\ttype: this.type,\n\t\t\tcolorSpace: this.colorSpace,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tgenerateMipmaps: this.generateMipmaps,\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) output.userData = this.userData;\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\ttransformUv( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.version ++;\n\t\t\tthis.source.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tset needsPMREMUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.pmremVersion ++;\n\n\t\t}\n\n\t}\n\n}\n\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tVector4.prototype.isVector4 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\t\tthis.w /= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\t\tthis.w = e[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\t\tthis.w = Math.max( min.w, Math.min( max.w, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\t\tthis.w = Math.max( minVal, Math.min( maxVal, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\t\tthis.w = Math.trunc( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\nclass RenderTarget extends EventDispatcher {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.isRenderTarget = true;\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.depth = 1;\n\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\t\tthis.scissorTest = false;\n\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tconst image = { width: width, height: height, depth: 1 };\n\n\t\toptions = Object.assign( {\n\t\t\tgenerateMipmaps: false,\n\t\t\tinternalFormat: null,\n\t\t\tminFilter: LinearFilter,\n\t\t\tdepthBuffer: true,\n\t\t\tstencilBuffer: false,\n\t\t\tresolveDepthBuffer: true,\n\t\t\tresolveStencilBuffer: true,\n\t\t\tdepthTexture: null,\n\t\t\tsamples: 0,\n\t\t\tcount: 1\n\t\t}, options );\n\n\t\tconst texture = new Texture( image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\ttexture.flipY = false;\n\t\ttexture.generateMipmaps = options.generateMipmaps;\n\t\ttexture.internalFormat = options.internalFormat;\n\n\t\tthis.textures = [];\n\n\t\tconst count = options.count;\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.textures[ i ] = texture.clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t\tthis.depthBuffer = options.depthBuffer;\n\t\tthis.stencilBuffer = options.stencilBuffer;\n\n\t\tthis.resolveDepthBuffer = options.resolveDepthBuffer;\n\t\tthis.resolveStencilBuffer = options.resolveStencilBuffer;\n\n\t\tthis.depthTexture = options.depthTexture;\n\n\t\tthis.samples = options.samples;\n\n\t}\n\n\tget texture() {\n\n\t\treturn this.textures[ 0 ];\n\n\t}\n\n\tset texture( value ) {\n\n\t\tthis.textures[ 0 ] = value;\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tfor ( let i = 0, il = this.textures.length; i < il; i ++ ) {\n\n\t\t\t\tthis.textures[ i ].image.width = width;\n\t\t\t\tthis.textures[ i ].image.height = height;\n\t\t\t\tthis.textures[ i ].image.depth = depth;\n\n\t\t\t}\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.scissor.copy( source.scissor );\n\t\tthis.scissorTest = source.scissorTest;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.textures.length = 0;\n\n\t\tfor ( let i = 0, il = source.textures.length; i < il; i ++ ) {\n\n\t\t\tthis.textures[ i ] = source.textures[ i ].clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t\t// ensure image object is not shared, see #20328\n\n\t\tconst image = Object.assign( {}, source.texture.image );\n\t\tthis.texture.source = new Source( image );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\n\t\tthis.resolveDepthBuffer = source.resolveDepthBuffer;\n\t\tthis.resolveStencilBuffer = source.resolveStencilBuffer;\n\n\t\tif ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();\n\n\t\tthis.samples = source.samples;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nclass WebGLRenderTarget extends RenderTarget {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLRenderTarget = true;\n\n\t}\n\n}\n\nclass DataArrayTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\tthis.isDataArrayTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\nclass WebGLArrayRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLArrayRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Data3DTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\t// We're going to add .setXXX() methods for setting properties later.\n\t\t// Users can still set in DataTexture3D directly.\n\t\t//\n\t\t//\tconst texture = new THREE.DataTexture3D( data, width, height, depth );\n\t\t// \ttexture.anisotropy = 16;\n\t\t//\n\t\t// See #14839\n\n\t\tsuper( null );\n\n\t\tthis.isData3DTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nclass WebGL3DRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGL3DRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.isQuaternion = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update = true ) {\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize(); // normalize calls _onChangeCallback()\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// sets this quaternion to a uniform random unit quaternnion\n\n\t\t// Ken Shoemake\n\t\t// Uniform random rotations\n\t\t// D. Kirk, editor, Graphics Gems III, pages 124-132. Academic Press, New York, 1992.\n\n\t\tconst theta1 = 2 * Math.PI * Math.random();\n\t\tconst theta2 = 2 * Math.PI * Math.random();\n\n\t\tconst x0 = Math.random();\n\t\tconst r1 = Math.sqrt( 1 - x0 );\n\t\tconst r2 = Math.sqrt( x0 );\n\n\t\treturn this.set(\n\t\t\tr1 * Math.sin( theta1 ),\n\t\t\tr1 * Math.cos( theta1 ),\n\t\t\tr2 * Math.sin( theta2 ),\n\t\t\tr2 * Math.cos( theta2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.toArray();\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._w;\n\n\t}\n\n}\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tVector3.prototype.isVector3 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t// quaternion q is assumed to have unit length\n\n\t\tconst vx = this.x, vy = this.y, vz = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// t = 2 * cross( q.xyz, v );\n\t\tconst tx = 2 * ( qy * vz - qz * vy );\n\t\tconst ty = 2 * ( qz * vx - qx * vz );\n\t\tconst tz = 2 * ( qx * vy - qy * vx );\n\n\t\t// v + q.w * t + cross( q.xyz, t );\n\t\tthis.x = vx + qw * tx + qy * tz - qz * ty;\n\t\tthis.y = vy + qw * ty + qz * tx - qx * tz;\n\t\tthis.z = vz + qw * tz + qx * ty - qy * tx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector$c.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector$c );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tsetFromEuler( e ) {\n\n\t\tthis.x = e._x;\n\t\tthis.y = e._y;\n\t\tthis.z = e._z;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromColor( c ) {\n\n\t\tthis.x = c.r;\n\t\tthis.y = c.g;\n\t\tthis.z = c.b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst theta = Math.random() * Math.PI * 2;\n\t\tconst u = Math.random() * 2 - 1;\n\t\tconst c = Math.sqrt( 1 - u * u );\n\n\t\tthis.x = c * Math.cos( theta );\n\t\tthis.y = u;\n\t\tthis.z = c * Math.sin( theta );\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\n\t}\n\n}\n\nconst _vector$c = /*@__PURE__*/ new Vector3();\nconst _quaternion$4 = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox3 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = array.length; i < il; i += 3 ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromArray( array, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = attribute.count; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromBufferAttribute( attribute, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\t\t// precise AABB computation based on vertex data requires at least a position attribute.\n\t\t\t// instancing isn't supported so far and uses the normal (conservative) code path.\n\n\t\t\tif ( precise === true && positionAttribute !== undefined && object.isInstancedMesh !== true ) {\n\n\t\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t\tif ( object.isMesh === true ) {\n\n\t\t\t\t\t\tobject.getVertexPosition( i, _vector$b );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_vector$b.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_vector$b.applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector$b );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( object.boundingBox !== undefined ) {\n\n\t\t\t\t\t// object-level bounding box\n\n\t\t\t\t\tif ( object.boundingBox === null ) {\n\n\t\t\t\t\t\tobject.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( object.boundingBox );\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// geometry-level bounding box\n\n\t\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( geometry.boundingBox );\n\n\t\t\t\t}\n\n\t\t\t\t_box$4.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box$4 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x >= this.min.x && point.x <= this.max.x &&\n\t\t\tpoint.y >= this.min.y && point.y <= this.max.y &&\n\t\t\tpoint.z >= this.min.z && point.z <= this.max.z;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x >= this.min.x && box.min.x <= this.max.x &&\n\t\t\tbox.max.y >= this.min.y && box.min.y <= this.max.y &&\n\t\t\tbox.max.z >= this.min.z && box.min.z <= this.max.z;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$b );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0$3.subVectors( triangle.a, _center );\n\t\t_v1$7.subVectors( triangle.b, _center );\n\t\t_v2$4.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1$7, _v0$3 );\n\t\t_f1.subVectors( _v2$4, _v1$7 );\n\t\t_f2.subVectors( _v0$3, _v2$4 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0$3, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0$3, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0$3, _v1$7, _v2$4, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$b ).distanceTo( point );\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\ttarget.makeEmpty();\n\n\t\t} else {\n\n\t\t\tthis.getCenter( target.center );\n\n\t\t\ttarget.radius = this.getSize( _vector$b ).length() * 0.5;\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$b = /*@__PURE__*/ new Vector3();\n\nconst _box$4 = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0$3 = /*@__PURE__*/ new Vector3();\nconst _v1$7 = /*@__PURE__*/ new Vector3();\nconst _v2$4 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the separating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the separating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is separating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _box$3 = /*@__PURE__*/ new Box3();\nconst _v1$6 = /*@__PURE__*/ new Vector3();\nconst _v2$3 = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.isSphere = true;\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$3.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.center.copy( point );\n\n\t\t\tthis.radius = 0;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t_v1$6.subVectors( point, this.center );\n\n\t\tconst lengthSq = _v1$6.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\t// calculate the minimal sphere\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\n\t\t\tconst delta = ( length - this.radius ) * 0.5;\n\n\t\t\tthis.center.addScaledVector( _v1$6, delta / length );\n\n\t\t\tthis.radius += delta;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\tif ( sphere.isEmpty() ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.copy( sphere );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t this.radius = Math.max( this.radius, sphere.radius );\n\n\t\t} else {\n\n\t\t\t_v2$3.subVectors( sphere.center, this.center ).setLength( sphere.radius );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).add( _v2$3 ) );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).sub( _v2$3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$a = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal$1 = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) {\n\n\t\tthis.origin = origin;\n\t\tthis.direction = direction;\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, t );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$a.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t\treturn _vector$a.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.origin ).addScaledVector( this.direction, s0 );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segCenter ).addScaledVector( _segDir, s1 );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$a.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$a.dot( this.direction );\n\t\tconst d2 = _vector$a.dot( _vector$a ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if t1 is behind the ray - if so, return null\n\t\tif ( t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\tif ( tymin > tmin || isNaN( tmin ) ) tmin = tymin;\n\n\t\tif ( tymax < tmax || isNaN( tmax ) ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal$1.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t// |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t// |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t// |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal$1 );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal$1 );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x.x,\n\t\t\t\t0, 1, 0, x.y,\n\t\t\t\t0, 0, 1, x.z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x,\n\t\t\t\t0, 1, 0, y,\n\t\t\t\t0, 0, 1, z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1$4.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1$4.elements[ 0 ] *= invSX;\n\t\t_m1$4.elements[ 1 ] *= invSX;\n\t\t_m1$4.elements[ 2 ] *= invSX;\n\n\t\t_m1$4.elements[ 4 ] *= invSY;\n\t\t_m1$4.elements[ 5 ] *= invSY;\n\t\t_m1$4.elements[ 6 ] *= invSY;\n\n\t\t_m1$4.elements[ 8 ] *= invSZ;\n\t\t_m1$4.elements[ 9 ] *= invSZ;\n\t\t_m1$4.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$4 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\n\t\tlet c, d;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tc = - ( far + near ) / ( far - near );\n\t\t\td = ( - 2 * far * near ) / ( far - near );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tc = - far / ( far - near );\n\t\t\td = ( - far * near ) / ( far - near );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a; \tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b; \tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c; \tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\n\t\tlet z, zInv;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tz = ( far + near ) * p;\n\t\t\tzInv = - 2 * p;\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tz = near * p;\n\t\t\tzInv = - 1 * p;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\t\tte[ 8 ] = 0; \t\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0; \t\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0; \t\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0; \t\tte[ 6 ] = 0;\t\tte[ 10 ] = zInv;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0; \t\tte[ 7 ] = 0;\t\tte[ 11 ] = 0;\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nconst _v1$5 = /*@__PURE__*/ new Vector3();\nconst _m1$4 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nconst _matrix$2 = /*@__PURE__*/ new Matrix4();\nconst _quaternion$3 = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\tthis.isEuler = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix$2.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix$2, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._order;\n\n\t}\n\n}\n\nEuler.DEFAULT_ORDER = 'XYZ';\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$4 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1$3 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position$3 = /*@__PURE__*/ new Vector3();\nconst _scale$2 = /*@__PURE__*/ new Vector3();\nconst _quaternion$2 = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nconst _childaddedEvent = { type: 'childadded', child: null };\nconst _childremovedEvent = { type: 'childremoved', child: null };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isObject3D = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DEFAULT_UP.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonAfterShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$4.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$4.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1$3.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position$3.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$3.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$3.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$3 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$3.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$3 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tobject.removeFromParent();\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t\t_childaddedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t\t_childaddedEvent.child = null;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t\t_childremovedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childremovedEvent );\n\t\t\t_childremovedEvent.child = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\treturn this.remove( ... this.children );\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$3.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$3.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$3 );\n\n\t\tobject.removeFromParent();\n\t\tobject.parent = this;\n\t\tthis.children.push( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t_childaddedEvent.child = object;\n\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t_childaddedEvent.child = null;\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetObjectsByProperty( name, value, result = [] ) {\n\n\t\tif ( this[ name ] === value ) result.push( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].getObjectsByProperty( name, value, result );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, target, _scale$2 );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, _quaternion$2, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\t\tif ( this.parent === null ) {\n\n\t\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// make sure descendants are updated if required\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tconst child = children[ i ];\n\n\t\t\tchild.updateMatrixWorld( force );\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// make sure descendants are updated\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tconst child = children[ i ];\n\n\t\t\t\tchild.updateWorldMatrix( false, true );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {},\n\t\t\t\tnodes: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\t\tobject.up = this.up.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\tif ( this.isBatchedMesh ) {\n\n\t\t\tobject.type = 'BatchedMesh';\n\t\t\tobject.perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\t\tobject.sortObjects = this.sortObjects;\n\n\t\t\tobject.drawRanges = this._drawRanges;\n\t\t\tobject.reservedRanges = this._reservedRanges;\n\n\t\t\tobject.visibility = this._visibility;\n\t\t\tobject.active = this._active;\n\t\t\tobject.bounds = this._bounds.map( bound => ( {\n\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\tboxMin: bound.box.min.toArray(),\n\t\t\t\tboxMax: bound.box.max.toArray(),\n\n\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\tsphereRadius: bound.sphere.radius,\n\t\t\t\tsphereCenter: bound.sphere.center.toArray()\n\t\t\t} ) );\n\n\t\t\tobject.maxInstanceCount = this._maxInstanceCount;\n\t\t\tobject.maxVertexCount = this._maxVertexCount;\n\t\t\tobject.maxIndexCount = this._maxIndexCount;\n\n\t\t\tobject.geometryInitialized = this._geometryInitialized;\n\t\t\tobject.geometryCount = this._geometryCount;\n\n\t\t\tobject.matricesTexture = this._matricesTexture.toJSON( meta );\n\n\t\t\tif ( this._colorsTexture !== null ) object.colorsTexture = this._colorsTexture.toJSON( meta );\n\n\t\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\t\tobject.boundingSphere = {\n\t\t\t\t\tcenter: object.boundingSphere.center.toArray(),\n\t\t\t\t\tradius: object.boundingSphere.radius\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t\tif ( this.boundingBox !== null ) {\n\n\t\t\t\tobject.boundingBox = {\n\t\t\t\t\tmin: object.boundingBox.min.toArray(),\n\t\t\t\t\tmax: object.boundingBox.max.toArray()\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\t\t\tconst nodes = extractFromCache( meta.nodes );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\t\t\tif ( nodes.length > 0 ) output.nodes = nodes;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\tthis.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.animations = source.animations.slice();\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\n\nconst _v0$2 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$2 = /*@__PURE__*/ new Vector3();\nconst _v3$2 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nconst _v40 = /*@__PURE__*/ new Vector4();\nconst _v41 = /*@__PURE__*/ new Vector4();\nconst _v42 = /*@__PURE__*/ new Vector4();\n\nclass Triangle {\n\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$2.subVectors( a, b );\n\t\ttarget.cross( _v0$2 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$2.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$2.subVectors( point, a );\n\n\t\tconst dot00 = _v0$2.dot( _v0$2 );\n\t\tconst dot01 = _v0$2.dot( _v1$3 );\n\t\tconst dot02 = _v0$2.dot( _v2$2 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$2 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\ttarget.set( 0, 0, 0 );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\t// if the triangle is degenerate then we can't contain a point\n\t\tif ( this.getBarycoord( point, a, b, c, _v3$2 ) === null ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn ( _v3$2.x >= 0 ) && ( _v3$2.y >= 0 ) && ( ( _v3$2.x + _v3$2.y ) <= 1 );\n\n\t}\n\n\tstatic getInterpolation( point, p1, p2, p3, v1, v2, v3, target ) {\n\n\t\tif ( this.getBarycoord( point, p1, p2, p3, _v3$2 ) === null ) {\n\n\t\t\ttarget.x = 0;\n\t\t\ttarget.y = 0;\n\t\t\tif ( 'z' in target ) target.z = 0;\n\t\t\tif ( 'w' in target ) target.w = 0;\n\t\t\treturn null;\n\n\t\t}\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( v1, _v3$2.x );\n\t\ttarget.addScaledVector( v2, _v3$2.y );\n\t\ttarget.addScaledVector( v3, _v3$2.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic getInterpolatedAttribute( attr, i1, i2, i3, barycoord, target ) {\n\n\t\t_v40.setScalar( 0 );\n\t\t_v41.setScalar( 0 );\n\t\t_v42.setScalar( 0 );\n\n\t\t_v40.fromBufferAttribute( attr, i1 );\n\t\t_v41.fromBufferAttribute( attr, i2 );\n\t\t_v42.fromBufferAttribute( attr, i3 );\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( _v40, barycoord.x );\n\t\ttarget.addScaledVector( _v41, barycoord.y );\n\t\ttarget.addScaledVector( _v42, barycoord.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$2.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$2.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAttributeAndIndices( attribute, i0, i1, i2 ) {\n\n\t\tthis.a.fromBufferAttribute( attribute, i0 );\n\t\tthis.b.fromBufferAttribute( attribute, i1 );\n\t\tthis.c.fromBufferAttribute( attribute, i2 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$2.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$2.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetInterpolation( point, v1, v2, v3, target ) {\n\n\t\treturn Triangle.getInterpolation( point, this.a, this.b, this.c, v1, v2, v3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tthis.isColor = true;\n\n\t\tthis.r = 1;\n\t\tthis.g = 1;\n\t\tthis.b = 1;\n\n\t\treturn this.set( r, g, b );\n\n\t}\n\n\tset( r, g, b ) {\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\n\t\t\tconst value = r;\n\n\t\t\tif ( value && value.isColor ) {\n\n\t\t\t\tthis.copy( value );\n\n\t\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\t\tthis.setHex( value );\n\n\t\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\t\tthis.setStyle( value );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.setRGB( r, g, b );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex, colorSpace = SRGBColorSpace ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = euclideanModulo( h, 1 );\n\t\ts = clamp( s, 0, 1 );\n\t\tl = clamp( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style, colorSpace = SRGBColorSpace ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^(\\w+)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 1 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 2 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 3 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 1 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 2 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 3 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL(\n\t\t\t\t\t\t\tparseFloat( color[ 1 ] ) / 360,\n\t\t\t\t\t\t\tparseFloat( color[ 2 ] ) / 100,\n\t\t\t\t\t\t\tparseFloat( color[ 3 ] ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tconsole.warn( 'THREE.Color: Unknown color model ' + style );\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\treturn this.setRGB(\n\t\t\t\t\tparseInt( hex.charAt( 0 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 1 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 2 ), 16 ) / 15,\n\t\t\t\t\tcolorSpace\n\t\t\t\t);\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\treturn this.setHex( parseInt( hex, 16 ), colorSpace );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Invalid hex color ' + style );\n\n\t\t\t}\n\n\t\t} else if ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style, colorSpace );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style, colorSpace = SRGBColorSpace ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style.toLowerCase() ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex, colorSpace );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\treturn Math.round( clamp( _color.r * 255, 0, 255 ) ) * 65536 + Math.round( clamp( _color.g * 255, 0, 255 ) ) * 256 + Math.round( clamp( _color.b * 255, 0, 255 ) );\n\n\t}\n\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetRGB( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\ttarget.r = _color.r;\n\t\ttarget.g = _color.g;\n\t\ttarget.b = _color.b;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tif ( colorSpace !== SRGBColorSpace ) {\n\n\t\t\t// Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/).\n\t\t\treturn `color(${ colorSpace } ${ r.toFixed( 3 ) } ${ g.toFixed( 3 ) } ${ b.toFixed( 3 ) })`;\n\n\t\t}\n\n\t\treturn `rgb(${ Math.round( r * 255 ) },${ Math.round( g * 255 ) },${ Math.round( b * 255 ) })`;\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\treturn this.setHSL( _hslA.h + h, _hslA.s + s, _hslA.l + l );\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = lerp( _hslA.h, _hslB.h, alpha );\n\t\tconst s = lerp( _hslA.s, _hslB.s, alpha );\n\t\tconst l = lerp( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\tthis.r = v.x;\n\t\tthis.g = v.y;\n\t\tthis.b = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst r = this.r, g = this.g, b = this.b;\n\t\tconst e = m.elements;\n\n\t\tthis.r = e[ 0 ] * r + e[ 3 ] * g + e[ 6 ] * b;\n\t\tthis.g = e[ 1 ] * r + e[ 4 ] * g + e[ 7 ] * b;\n\t\tthis.b = e[ 2 ] * r + e[ 5 ] * g + e[ 8 ] * b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.r;\n\t\tyield this.g;\n\t\tyield this.b;\n\n\t}\n\n}\n\nconst _color = /*@__PURE__*/ new Color();\n\nColor.NAMES = _colorKeywords;\n\nlet _materialId = 0;\n\nclass Material extends EventDispatcher {\n\n\tstatic get type() {\n\n\t\treturn 'Material';\n\n\t}\n\n\tget type() {\n\n\t\treturn this.constructor.type;\n\n\t}\n\n\tset type( _value ) { /* */ }\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isMaterial = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _materialId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.blending = NormalBlending;\n\t\tthis.side = FrontSide;\n\t\tthis.vertexColors = false;\n\n\t\tthis.opacity = 1;\n\t\tthis.transparent = false;\n\t\tthis.alphaHash = false;\n\n\t\tthis.blendSrc = SrcAlphaFactor;\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\t\tthis.blendEquation = AddEquation;\n\t\tthis.blendSrcAlpha = null;\n\t\tthis.blendDstAlpha = null;\n\t\tthis.blendEquationAlpha = null;\n\t\tthis.blendColor = new Color( 0, 0, 0 );\n\t\tthis.blendAlpha = 0;\n\n\t\tthis.depthFunc = LessEqualDepth;\n\t\tthis.depthTest = true;\n\t\tthis.depthWrite = true;\n\n\t\tthis.stencilWriteMask = 0xff;\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\t\tthis.stencilRef = 0;\n\t\tthis.stencilFuncMask = 0xff;\n\t\tthis.stencilFail = KeepStencilOp;\n\t\tthis.stencilZFail = KeepStencilOp;\n\t\tthis.stencilZPass = KeepStencilOp;\n\t\tthis.stencilWrite = false;\n\n\t\tthis.clippingPlanes = null;\n\t\tthis.clipIntersection = false;\n\t\tthis.clipShadows = false;\n\n\t\tthis.shadowSide = null;\n\n\t\tthis.colorWrite = true;\n\n\t\tthis.precision = null; // override the renderer's default precision for this material\n\n\t\tthis.polygonOffset = false;\n\t\tthis.polygonOffsetFactor = 0;\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\tthis.dithering = false;\n\n\t\tthis.alphaToCoverage = false;\n\t\tthis.premultipliedAlpha = false;\n\t\tthis.forceSinglePass = false;\n\n\t\tthis.visible = true;\n\n\t\tthis.toneMapped = true;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\tget alphaTest() {\n\n\t\treturn this._alphaTest;\n\n\t}\n\n\tset alphaTest( value ) {\n\n\t\tif ( this._alphaTest > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._alphaTest = value;\n\n\t}\n\n\t// onBeforeRender and onBeforeCompile only supported in WebGLRenderer\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\tsetValues( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: parameter '${ key }' has value of undefined.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: '${ key }' is not a property of THREE.${ this.type }.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRootObject ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen !== undefined ) data.sheen = this.sheen;\n\t\tif ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex();\n\t\tif ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness;\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity !== undefined && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity;\n\t\tif ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.dispersion !== undefined ) data.dispersion = this.dispersion;\n\n\t\tif ( this.iridescence !== undefined ) data.iridescence = this.iridescence;\n\t\tif ( this.iridescenceIOR !== undefined ) data.iridescenceIOR = this.iridescenceIOR;\n\t\tif ( this.iridescenceThicknessRange !== undefined ) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n\n\t\tif ( this.iridescenceMap && this.iridescenceMap.isTexture ) {\n\n\t\t\tdata.iridescenceMap = this.iridescenceMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture ) {\n\n\t\t\tdata.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy;\n\t\tif ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation;\n\n\t\tif ( this.anisotropyMap && this.anisotropyMap.isTexture ) {\n\n\t\t\tdata.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\n\t\tif ( this.lightMap && this.lightMap.isTexture ) {\n\n\t\t\tdata.lightMap = this.lightMap.toJSON( meta ).uuid;\n\t\t\tdata.lightMapIntensity = this.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\t\tif ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid;\n\t\tif ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\n\t\t}\n\n\t\tif ( this.envMapRotation !== undefined ) data.envMapRotation = this.envMapRotation.toArray();\n\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\t\tif ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity;\n\t\tif ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio;\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.transmission !== undefined ) data.transmission = this.transmission;\n\t\tif ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;\n\t\tif ( this.thickness !== undefined ) data.thickness = this.thickness;\n\t\tif ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;\n\t\tif ( this.attenuationDistance !== undefined && this.attenuationDistance !== Infinity ) data.attenuationDistance = this.attenuationDistance;\n\t\tif ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex();\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors === true ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = true;\n\n\t\tif ( this.blendSrc !== SrcAlphaFactor ) data.blendSrc = this.blendSrc;\n\t\tif ( this.blendDst !== OneMinusSrcAlphaFactor ) data.blendDst = this.blendDst;\n\t\tif ( this.blendEquation !== AddEquation ) data.blendEquation = this.blendEquation;\n\t\tif ( this.blendSrcAlpha !== null ) data.blendSrcAlpha = this.blendSrcAlpha;\n\t\tif ( this.blendDstAlpha !== null ) data.blendDstAlpha = this.blendDstAlpha;\n\t\tif ( this.blendEquationAlpha !== null ) data.blendEquationAlpha = this.blendEquationAlpha;\n\t\tif ( this.blendColor && this.blendColor.isColor ) data.blendColor = this.blendColor.getHex();\n\t\tif ( this.blendAlpha !== 0 ) data.blendAlpha = this.blendAlpha;\n\n\t\tif ( this.depthFunc !== LessEqualDepth ) data.depthFunc = this.depthFunc;\n\t\tif ( this.depthTest === false ) data.depthTest = this.depthTest;\n\t\tif ( this.depthWrite === false ) data.depthWrite = this.depthWrite;\n\t\tif ( this.colorWrite === false ) data.colorWrite = this.colorWrite;\n\n\t\tif ( this.stencilWriteMask !== 0xff ) data.stencilWriteMask = this.stencilWriteMask;\n\t\tif ( this.stencilFunc !== AlwaysStencilFunc ) data.stencilFunc = this.stencilFunc;\n\t\tif ( this.stencilRef !== 0 ) data.stencilRef = this.stencilRef;\n\t\tif ( this.stencilFuncMask !== 0xff ) data.stencilFuncMask = this.stencilFuncMask;\n\t\tif ( this.stencilFail !== KeepStencilOp ) data.stencilFail = this.stencilFail;\n\t\tif ( this.stencilZFail !== KeepStencilOp ) data.stencilZFail = this.stencilZFail;\n\t\tif ( this.stencilZPass !== KeepStencilOp ) data.stencilZPass = this.stencilZPass;\n\t\tif ( this.stencilWrite === true ) data.stencilWrite = this.stencilWrite;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation !== undefined && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth !== undefined && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.alphaHash === true ) data.alphaHash = true;\n\t\tif ( this.alphaToCoverage === true ) data.alphaToCoverage = true;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = true;\n\t\tif ( this.forceSinglePass === true ) data.forceSinglePass = true;\n\n\t\tif ( this.wireframe === true ) data.wireframe = true;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.flatShading === true ) data.flatShading = true;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( this.fog === false ) data.fog = false;\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\t\tthis.blendColor.copy( source.blendColor );\n\t\tthis.blendAlpha = source.blendAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaHash = source.alphaHash;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\t\tthis.forceSinglePass = source.forceSinglePass;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tonBuild( /* shaderobject, renderer */ ) {\n\n\t\tconsole.warn( 'Material: onBuild() has been removed.' ); // @deprecated, r166\n\n\t}\n\n}\n\nclass MeshBasicMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshBasicMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshBasicMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff ); // emissive\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\nconst _tables = /*@__PURE__*/ _generateTables();\n\nfunction _generateTables() {\n\n\t// float32 to float16 helpers\n\n\tconst buffer = new ArrayBuffer( 4 );\n\tconst floatView = new Float32Array( buffer );\n\tconst uint32View = new Uint32Array( buffer );\n\n\tconst baseTable = new Uint32Array( 512 );\n\tconst shiftTable = new Uint32Array( 512 );\n\n\tfor ( let i = 0; i < 256; ++ i ) {\n\n\t\tconst e = i - 127;\n\n\t\t// very small number (0, -0)\n\n\t\tif ( e < - 27 ) {\n\n\t\t\tbaseTable[ i ] = 0x0000;\n\t\t\tbaseTable[ i | 0x100 ] = 0x8000;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// small number (denorm)\n\n\t\t} else if ( e < - 14 ) {\n\n\t\t\tbaseTable[ i ] = 0x0400 >> ( - e - 14 );\n\t\t\tbaseTable[ i | 0x100 ] = ( 0x0400 >> ( - e - 14 ) ) | 0x8000;\n\t\t\tshiftTable[ i ] = - e - 1;\n\t\t\tshiftTable[ i | 0x100 ] = - e - 1;\n\n\t\t\t// normal number\n\n\t\t} else if ( e <= 15 ) {\n\n\t\t\tbaseTable[ i ] = ( e + 15 ) << 10;\n\t\t\tbaseTable[ i | 0x100 ] = ( ( e + 15 ) << 10 ) | 0x8000;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t\t// large number (Infinity, -Infinity)\n\n\t\t} else if ( e < 128 ) {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// stay (NaN, Infinity, -Infinity)\n\n\t\t} else {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t}\n\n\t}\n\n\t// float16 to float32 helpers\n\n\tconst mantissaTable = new Uint32Array( 2048 );\n\tconst exponentTable = new Uint32Array( 64 );\n\tconst offsetTable = new Uint32Array( 64 );\n\n\tfor ( let i = 1; i < 1024; ++ i ) {\n\n\t\tlet m = i << 13; // zero pad mantissa bits\n\t\tlet e = 0; // zero exponent\n\n\t\t// normalized\n\t\twhile ( ( m & 0x00800000 ) === 0 ) {\n\n\t\t\tm <<= 1;\n\t\t\te -= 0x00800000; // decrement exponent\n\n\t\t}\n\n\t\tm &= ~ 0x00800000; // clear leading 1 bit\n\t\te += 0x38800000; // adjust bias\n\n\t\tmantissaTable[ i ] = m | e;\n\n\t}\n\n\tfor ( let i = 1024; i < 2048; ++ i ) {\n\n\t\tmantissaTable[ i ] = 0x38000000 + ( ( i - 1024 ) << 13 );\n\n\t}\n\n\tfor ( let i = 1; i < 31; ++ i ) {\n\n\t\texponentTable[ i ] = i << 23;\n\n\t}\n\n\texponentTable[ 31 ] = 0x47800000;\n\texponentTable[ 32 ] = 0x80000000;\n\n\tfor ( let i = 33; i < 63; ++ i ) {\n\n\t\texponentTable[ i ] = 0x80000000 + ( ( i - 32 ) << 23 );\n\n\t}\n\n\texponentTable[ 63 ] = 0xc7800000;\n\n\tfor ( let i = 1; i < 64; ++ i ) {\n\n\t\tif ( i !== 32 ) {\n\n\t\t\toffsetTable[ i ] = 1024;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tfloatView: floatView,\n\t\tuint32View: uint32View,\n\t\tbaseTable: baseTable,\n\t\tshiftTable: shiftTable,\n\t\tmantissaTable: mantissaTable,\n\t\texponentTable: exponentTable,\n\t\toffsetTable: offsetTable\n\t};\n\n}\n\n// float32 to float16\n\nfunction toHalfFloat( val ) {\n\n\tif ( Math.abs( val ) > 65504 ) console.warn( 'THREE.DataUtils.toHalfFloat(): Value out of range.' );\n\n\tval = clamp( val, - 65504, 65504 );\n\n\t_tables.floatView[ 0 ] = val;\n\tconst f = _tables.uint32View[ 0 ];\n\tconst e = ( f >> 23 ) & 0x1ff;\n\treturn _tables.baseTable[ e ] + ( ( f & 0x007fffff ) >> _tables.shiftTable[ e ] );\n\n}\n\n// float16 to float32\n\nfunction fromHalfFloat( val ) {\n\n\tconst m = val >> 10;\n\t_tables.uint32View[ 0 ] = _tables.mantissaTable[ _tables.offsetTable[ m ] + ( val & 0x3ff ) ] + _tables.exponentTable[ m ];\n\treturn _tables.floatView[ 0 ];\n\n}\n\nconst DataUtils = {\n\ttoHalfFloat: toHalfFloat,\n\tfromHalfFloat: fromHalfFloat,\n};\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nclass BufferAttribute {\n\n\tconstructor( array, itemSize, normalized = false ) {\n\n\t\tif ( Array.isArray( array ) ) {\n\n\t\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t\t}\n\n\t\tthis.isBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.array = array;\n\t\tthis.itemSize = itemSize;\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\t\tthis.normalized = normalized;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRanges = [];\n\t\tthis.gpuType = FloatType;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\t\tthis.gpuType = source.gpuType;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$9.fromBufferAttribute( this, i );\n\t\t\t\t_vector$9.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\t// Matching BufferAttribute constructor, do not normalize the array.\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.itemSize + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.array[ index * this.itemSize + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.array[ index * this.itemSize ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.array[ index * this.itemSize + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.array[ index * this.itemSize + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.array[ index * this.itemSize + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.from( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( this.usage !== StaticDrawUsage ) data.usage = this.usage;\n\n\t\treturn data;\n\n\t}\n\n}\n\n//\n\nclass Int8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8ClampedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8ClampedArray( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t\tthis.isFloat16BufferAttribute = true;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = fromHalfFloat( this.array[ index * this.itemSize ] );\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = toHalfFloat( x );\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = fromHalfFloat( this.array[ index * this.itemSize + 1 ] );\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = fromHalfFloat( this.array[ index * this.itemSize + 2 ] );\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = fromHalfFloat( this.array[ index * this.itemSize + 3 ] );\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\t\tthis.array[ index + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n}\n\n\nclass Float32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$2 = 0;\n\nconst _m1$2 = /*@__PURE__*/ new Matrix4();\nconst _obj = /*@__PURE__*/ new Object3D();\nconst _offset = /*@__PURE__*/ new Vector3();\nconst _box$2 = /*@__PURE__*/ new Box3();\nconst _boxMorphTargets = /*@__PURE__*/ new Box3();\nconst _vector$8 = /*@__PURE__*/ new Vector3();\n\nclass BufferGeometry extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBufferGeometry = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id$2 ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\tthis.index = null;\n\t\tthis.indirect = null;\n\t\tthis.attributes = {};\n\n\t\tthis.morphAttributes = {};\n\t\tthis.morphTargetsRelative = false;\n\n\t\tthis.groups = [];\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\tthis.userData = {};\n\n\t}\n\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\tsetIndex( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetIndirect( indirect ) {\n\n\t\tthis.indirect = indirect;\n\n\t\treturn this;\n\n\t}\n\n\tgetIndirect() {\n\n\t\treturn this.indirect;\n\n\t}\n\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\taddGroup( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t}\n\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t_m1$2.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1$2.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1$2.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1$2.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1$2.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1$2.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\tlookAt( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t}\n\n\tcenter() {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute === undefined ) {\n\n\t\t\tconst position = [];\n\n\t\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\tconst point = points[ i ];\n\t\t\t\tpositionAttribute.setXYZ( i, point.x, point.y, point.z || 0 );\n\n\t\t\t}\n\n\t\t\tif ( points.length > positionAttribute.count ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.' );\n\n\t\t\t}\n\n\t\t\tpositionAttribute.needsUpdate = true;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$2.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.min, _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.max, _box$2.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$2.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$2.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$8.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$8.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$8.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeTangents() {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst positionAttribute = attributes.position;\n\t\tconst normalAttribute = attributes.normal;\n\t\tconst uvAttribute = attributes.uv;\n\n\t\tif ( this.hasAttribute( 'tangent' ) === false ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * positionAttribute.count ), 4 ) );\n\n\t\t}\n\n\t\tconst tangentAttribute = this.getAttribute( 'tangent' );\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromBufferAttribute( positionAttribute, a );\n\t\t\tvB.fromBufferAttribute( positionAttribute, b );\n\t\t\tvC.fromBufferAttribute( positionAttribute, c );\n\n\t\t\tuvA.fromBufferAttribute( uvAttribute, a );\n\t\t\tuvB.fromBufferAttribute( uvAttribute, b );\n\t\t\tuvC.fromBufferAttribute( uvAttribute, c );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: index.count\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindex.getX( j + 0 ),\n\t\t\t\t\tindex.getX( j + 1 ),\n\t\t\t\t\tindex.getX( j + 2 )\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromBufferAttribute( normalAttribute, v );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangentAttribute.setXYZW( v, tmp.x, tmp.y, tmp.z, w );\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( index.getX( j + 0 ) );\n\t\t\t\thandleVertex( index.getX( j + 1 ) );\n\t\t\t\thandleVertex( index.getX( j + 2 ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeVertexNormals() {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tnormalizeNormals() {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$8.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$8.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z );\n\n\t\t}\n\n\t}\n\n\ttoNonIndexed() {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\tindex = indices[ i ] * attribute.data.stride + attribute.offset;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\t// for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tdata.data.attributes[ key ] = attribute.toJSON( data.data );\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tarray.push( attribute.toJSON( data.data ) );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nconst _inverseMatrix$3 = /*@__PURE__*/ new Matrix4();\nconst _ray$3 = /*@__PURE__*/ new Ray();\nconst _sphere$6 = /*@__PURE__*/ new Sphere();\nconst _sphereHitAt = /*@__PURE__*/ new Vector3();\n\nconst _vA$1 = /*@__PURE__*/ new Vector3();\nconst _vB$1 = /*@__PURE__*/ new Vector3();\nconst _vC$1 = /*@__PURE__*/ new Vector3();\n\nconst _tempA = /*@__PURE__*/ new Vector3();\nconst _morphA = /*@__PURE__*/ new Vector3();\n\nconst _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\nclass Mesh extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isMesh = true;\n\n\t\tthis.type = 'Mesh';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.attributes.position;\n\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\n\t\ttarget.fromBufferAttribute( position, index );\n\n\t\tconst morphInfluences = this.morphTargetInfluences;\n\n\t\tif ( morphPosition && morphInfluences ) {\n\n\t\t\t_morphA.set( 0, 0, 0 );\n\n\t\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\t\tconst influence = morphInfluences[ i ];\n\t\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t\t_tempA.fromBufferAttribute( morphAttribute, index );\n\n\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA.sub( target ), influence );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttarget.add( _morphA );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$6.copy( geometry.boundingSphere );\n\t\t_sphere$6.applyMatrix4( matrixWorld );\n\n\t\t// check distance from ray origin to bounding sphere\n\n\t\t_ray$3.copy( raycaster.ray ).recast( raycaster.near );\n\n\t\tif ( _sphere$6.containsPoint( _ray$3.origin ) === false ) {\n\n\t\t\tif ( _ray$3.intersectSphere( _sphere$6, _sphereHitAt ) === null ) return;\n\n\t\t\tif ( _ray$3.origin.distanceToSquared( _sphereHitAt ) > ( raycaster.far - raycaster.near ) ** 2 ) return;\n\n\t\t}\n\n\t\t// convert ray to local space of mesh\n\n\t\t_inverseMatrix$3.copy( matrixWorld ).invert();\n\t\t_ray$3.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$3 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray$3.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$3 );\n\n\t}\n\n\t_computeIntersections( raycaster, intersects, rayLocalSpace ) {\n\n\t\tlet intersection;\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\n\t\tconst index = geometry.index;\n\t\tconst position = geometry.attributes.position;\n\t\tconst uv = geometry.attributes.uv;\n\t\tconst uv1 = geometry.attributes.uv1;\n\t\tconst normal = geometry.attributes.normal;\n\t\tconst groups = geometry.groups;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\tif ( index !== null ) {\n\n\t\t\t// indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( position !== undefined ) {\n\n\t\t\t// non-indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = i;\n\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection$1( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, ( material.side === FrontSide ), point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkGeometryIntersection( object, material, raycaster, ray, uv, uv1, normal, a, b, c ) {\n\n\tobject.getVertexPosition( a, _vA$1 );\n\tobject.getVertexPosition( b, _vB$1 );\n\tobject.getVertexPosition( c, _vC$1 );\n\n\tconst intersection = checkIntersection$1( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tconst barycoord = new Vector3();\n\t\tTriangle.getBarycoord( _intersectionPoint, _vA$1, _vB$1, _vC$1, barycoord );\n\n\t\tif ( uv ) {\n\n\t\t\tintersection.uv = Triangle.getInterpolatedAttribute( uv, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv1 ) {\n\n\t\t\tintersection.uv1 = Triangle.getInterpolatedAttribute( uv1, a, b, c, barycoord, new Vector2() );\n\n\t\t}\n\n\t\tif ( normal ) {\n\n\t\t\tintersection.normal = Triangle.getInterpolatedAttribute( normal, a, b, c, barycoord, new Vector3() );\n\n\t\t\tif ( intersection.normal.dot( ray.direction ) > 0 ) {\n\n\t\t\t\tintersection.normal.multiplyScalar( - 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst face = {\n\t\t\ta: a,\n\t\t\tb: b,\n\t\t\tc: c,\n\t\t\tnormal: new Vector3(),\n\t\t\tmaterialIndex: 0\n\t\t};\n\n\t\tTriangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal );\n\n\t\tintersection.face = face;\n\t\tintersection.barycoord = barycoord;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass BoxGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'BoxGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tdepth: depth,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tdepthSegments: depthSegments\n\t\t};\n\n\t\tconst scope = this;\n\n\t\t// segments\n\n\t\twidthSegments = Math.floor( widthSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\t\tdepthSegments = Math.floor( depthSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet numberOfVertices = 0;\n\t\tlet groupStart = 0;\n\n\t\t// build each side of the box geometry\n\n\t\tbuildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px\n\t\tbuildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx\n\t\tbuildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py\n\t\tbuildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny\n\t\tbuildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz\n\t\tbuildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) {\n\n\t\t\tconst segmentWidth = width / gridX;\n\t\t\tconst segmentHeight = height / gridY;\n\n\t\t\tconst widthHalf = width / 2;\n\t\t\tconst heightHalf = height / 2;\n\t\t\tconst depthHalf = depth / 2;\n\n\t\t\tconst gridX1 = gridX + 1;\n\t\t\tconst gridY1 = gridY + 1;\n\n\t\t\tlet vertexCounter = 0;\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst vector = new Vector3();\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\t\tconst y = iy * segmentHeight - heightHalf;\n\n\t\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\t\tconst x = ix * segmentWidth - widthHalf;\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = x * udir;\n\t\t\t\t\tvector[ v ] = y * vdir;\n\t\t\t\t\tvector[ w ] = depthHalf;\n\n\t\t\t\t\t// now apply vector to vertex buffer\n\n\t\t\t\t\tvertices.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = 0;\n\t\t\t\t\tvector[ v ] = 0;\n\t\t\t\t\tvector[ w ] = depth > 0 ? 1 : - 1;\n\n\t\t\t\t\t// now apply vector to normal buffer\n\n\t\t\t\t\tnormals.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// uvs\n\n\t\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t\t\t// counters\n\n\t\t\t\t\tvertexCounter += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\t// 1. you need three indices to draw a single face\n\t\t\t// 2. a single segment consists of two faces\n\t\t\t// 3. so we need to generate six (2*3) indices per segment\n\n\t\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\t\tconst a = numberOfVertices + ix + gridX1 * iy;\n\t\t\t\t\tconst b = numberOfVertices + ix + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst d = numberOfVertices + ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// increase counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, materialIndex );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t\t// update total number of vertices\n\n\t\t\tnumberOfVertices += vertexCounter;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new BoxGeometry( data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments );\n\n\t}\n\n}\n\n/**\n * Uniform Utilities\n */\n\nfunction cloneUniforms( src ) {\n\n\tconst dst = {};\n\n\tfor ( const u in src ) {\n\n\t\tdst[ u ] = {};\n\n\t\tfor ( const p in src[ u ] ) {\n\n\t\t\tconst property = src[ u ][ p ];\n\n\t\t\tif ( property && ( property.isColor ||\n\t\t\t\tproperty.isMatrix3 || property.isMatrix4 ||\n\t\t\t\tproperty.isVector2 || property.isVector3 || property.isVector4 ||\n\t\t\t\tproperty.isTexture || property.isQuaternion ) ) {\n\n\t\t\t\tif ( property.isRenderTargetTexture ) {\n\n\t\t\t\t\tconsole.warn( 'UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().' );\n\t\t\t\t\tdst[ u ][ p ] = null;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdst[ u ][ p ] = property.clone();\n\n\t\t\t\t}\n\n\t\t\t} else if ( Array.isArray( property ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.slice();\n\n\t\t\t} else {\n\n\t\t\t\tdst[ u ][ p ] = property;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction mergeUniforms( uniforms ) {\n\n\tconst merged = {};\n\n\tfor ( let u = 0; u < uniforms.length; u ++ ) {\n\n\t\tconst tmp = cloneUniforms( uniforms[ u ] );\n\n\t\tfor ( const p in tmp ) {\n\n\t\t\tmerged[ p ] = tmp[ p ];\n\n\t\t}\n\n\t}\n\n\treturn merged;\n\n}\n\nfunction cloneUniformsGroups( src ) {\n\n\tconst dst = [];\n\n\tfor ( let u = 0; u < src.length; u ++ ) {\n\n\t\tdst.push( src[ u ].clone() );\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction getUnlitUniformColorSpace( renderer ) {\n\n\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\tif ( currentRenderTarget === null ) {\n\n\t\t// https://github.com/mrdoob/three.js/pull/23937#issuecomment-1111067398\n\t\treturn renderer.outputColorSpace;\n\n\t}\n\n\t// https://github.com/mrdoob/three.js/issues/27868\n\tif ( currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\treturn currentRenderTarget.texture.colorSpace;\n\n\t}\n\n\treturn ColorManagement.workingColorSpace;\n\n}\n\n// Legacy\n\nconst UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\n\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\n\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\nclass ShaderMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'ShaderMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShaderMaterial = true;\n\n\t\tthis.defines = {};\n\t\tthis.uniforms = {};\n\t\tthis.uniformsGroups = [];\n\n\t\tthis.vertexShader = default_vertex;\n\t\tthis.fragmentShader = default_fragment;\n\n\t\tthis.linewidth = 1;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false; // set to use scene fog\n\t\tthis.lights = false; // set to use scene lights\n\t\tthis.clipping = false; // set to use user-defined clipping planes\n\n\t\tthis.forceSinglePass = true;\n\n\t\tthis.extensions = {\n\t\t\tclipCullDistance: false, // set to use vertex shader clipping\n\t\t\tmultiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID\n\t\t};\n\n\t\t// When rendered geometry doesn't include these attributes but the material does,\n\t\t// use these default values in WebGL. This avoids errors when buffer data is missing.\n\t\tthis.defaultAttributeValues = {\n\t\t\t'color': [ 1, 1, 1 ],\n\t\t\t'uv': [ 0, 0 ],\n\t\t\t'uv1': [ 0, 0 ]\n\t\t};\n\n\t\tthis.index0AttributeName = undefined;\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\tthis.glslVersion = null;\n\n\t\tif ( parameters !== undefined ) {\n\n\t\t\tthis.setValues( parameters );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.fragmentShader = source.fragmentShader;\n\t\tthis.vertexShader = source.vertexShader;\n\n\t\tthis.uniforms = cloneUniforms( source.uniforms );\n\t\tthis.uniformsGroups = cloneUniformsGroups( source.uniformsGroups );\n\n\t\tthis.defines = Object.assign( {}, source.defines );\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.fog = source.fog;\n\t\tthis.lights = source.lights;\n\t\tthis.clipping = source.clipping;\n\n\t\tthis.extensions = Object.assign( {}, source.extensions );\n\n\t\tthis.glslVersion = source.glslVersion;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.glslVersion = this.glslVersion;\n\t\tdata.uniforms = {};\n\n\t\tfor ( const name in this.uniforms ) {\n\n\t\t\tconst uniform = this.uniforms[ name ];\n\t\t\tconst value = uniform.value;\n\n\t\t\tif ( value && value.isTexture ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 't',\n\t\t\t\t\tvalue: value.toJSON( meta ).uuid\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isColor ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'c',\n\t\t\t\t\tvalue: value.getHex()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector2 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v2',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\n\t\t\t\t// note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( Object.keys( this.defines ).length > 0 ) data.defines = this.defines;\n\n\t\tdata.vertexShader = this.vertexShader;\n\t\tdata.fragmentShader = this.fragmentShader;\n\n\t\tdata.lights = this.lights;\n\t\tdata.clipping = this.clipping;\n\n\t\tconst extensions = {};\n\n\t\tfor ( const key in this.extensions ) {\n\n\t\t\tif ( this.extensions[ key ] === true ) extensions[ key ] = true;\n\n\t\t}\n\n\t\tif ( Object.keys( extensions ).length > 0 ) data.extensions = extensions;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\tthis.coordinateSystem = source.coordinateSystem;\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\treturn super.getWorldDirection( target ).negate();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _v3$1 = /*@__PURE__*/ new Vector3();\nconst _minTarget = /*@__PURE__*/ new Vector2();\nconst _maxTarget = /*@__PURE__*/ new Vector2();\n\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.\n\t */\n\tgetViewBounds( distance, minTarget, maxTarget ) {\n\n\t\t_v3$1.set( - 1, - 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tminTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t\t_v3$1.set( 1, 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tmaxTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t}\n\n\t/**\n\t * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Copies the result into the target Vector2, where x is width and y is height.\n\t */\n\tgetViewSize( distance, target ) {\n\n\t\tthis.getViewBounds( distance, _minTarget, _maxTarget );\n\n\t\treturn target.subVectors( _maxTarget, _minTarget );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst fov = - 90; // negative fov is not an error\nconst aspect = 1;\n\nclass CubeCamera extends Object3D {\n\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\tthis.renderTarget = renderTarget;\n\t\tthis.coordinateSystem = null;\n\t\tthis.activeMipmapLevel = 0;\n\n\t\tconst cameraPX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPX.layers = this.layers;\n\t\tthis.add( cameraPX );\n\n\t\tconst cameraNX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNX.layers = this.layers;\n\t\tthis.add( cameraNX );\n\n\t\tconst cameraPY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPY.layers = this.layers;\n\t\tthis.add( cameraPY );\n\n\t\tconst cameraNY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNY.layers = this.layers;\n\t\tthis.add( cameraNY );\n\n\t\tconst cameraPZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPZ.layers = this.layers;\n\t\tthis.add( cameraPZ );\n\n\t\tconst cameraNZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNZ.layers = this.layers;\n\t\tthis.add( cameraNZ );\n\n\t}\n\n\tupdateCoordinateSystem() {\n\n\t\tconst coordinateSystem = this.coordinateSystem;\n\n\t\tconst cameras = this.children.concat();\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = cameras;\n\n\t\tfor ( const camera of cameras ) this.remove( camera );\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, 1, 0 );\n\t\t\tcameraPX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, 1, 0 );\n\t\t\tcameraNX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, - 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, - 1, 0 );\n\t\t\tcameraPX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, - 1, 0 );\n\t\t\tcameraNX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, - 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, - 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, - 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tfor ( const camera of cameras ) {\n\n\t\t\tthis.add( camera );\n\n\t\t\tcamera.updateMatrixWorld();\n\n\t\t}\n\n\t}\n\n\tupdate( renderer, scene ) {\n\n\t\tif ( this.parent === null ) this.updateMatrixWorld();\n\n\t\tconst { renderTarget, activeMipmapLevel } = this;\n\n\t\tif ( this.coordinateSystem !== renderer.coordinateSystem ) {\n\n\t\t\tthis.coordinateSystem = renderer.coordinateSystem;\n\n\t\t\tthis.updateCoordinateSystem();\n\n\t\t}\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst currentActiveCubeFace = renderer.getActiveCubeFace();\n\t\tconst currentActiveMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst currentXrEnabled = renderer.xr.enabled;\n\n\t\trenderer.xr.enabled = false;\n\n\t\tconst generateMipmaps = renderTarget.texture.generateMipmaps;\n\n\t\trenderTarget.texture.generateMipmaps = false;\n\n\t\trenderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPX );\n\n\t\trenderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNX );\n\n\t\trenderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPY );\n\n\t\trenderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNY );\n\n\t\trenderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPZ );\n\n\t\t// mipmaps are generated during the last call of render()\n\t\t// at this point, all sides of the cube render target are defined\n\n\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\n\n\t\trenderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNZ );\n\n\t\trenderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );\n\n\t\trenderer.xr.enabled = currentXrEnabled;\n\n\t\trenderTarget.texture.needsPMREMUpdate = true;\n\n\t}\n\n}\n\nclass CubeTexture extends Texture {\n\n\tconstructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace ) {\n\n\t\timages = images !== undefined ? images : [];\n\t\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.flipY = false;\n\n\t}\n\n\tget images() {\n\n\t\treturn this.image;\n\n\t}\n\n\tset images( value ) {\n\n\t\tthis.image = value;\n\n\t}\n\n}\n\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( size = 1, options = {} ) {\n\n\t\tsuper( size, size, options );\n\n\t\tthis.isWebGLCubeRenderTarget = true;\n\n\t\tconst image = { width: size, height: size, depth: 1 };\n\t\tconst images = [ image, image, image, image, image, image ];\n\n\t\tthis.texture = new CubeTexture( images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n\t\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n\t\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n\n\t\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n\t\t// and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture\n\t\t// as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t}\n\n\tfromEquirectangularTexture( renderer, texture ) {\n\n\t\tthis.texture.type = texture.type;\n\t\tthis.texture.colorSpace = texture.colorSpace;\n\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\n\t\tthis.texture.minFilter = texture.minFilter;\n\t\tthis.texture.magFilter = texture.magFilter;\n\n\t\tconst shader = {\n\n\t\t\tuniforms: {\n\t\t\t\ttEquirect: { value: null },\n\t\t\t},\n\n\t\t\tvertexShader: /* glsl */`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,\n\n\t\t\tfragmentShader: /* glsl */`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`\n\t\t};\n\n\t\tconst geometry = new BoxGeometry( 5, 5, 5 );\n\n\t\tconst material = new ShaderMaterial( {\n\n\t\t\tname: 'CubemapFromEquirect',\n\n\t\t\tuniforms: cloneUniforms( shader.uniforms ),\n\t\t\tvertexShader: shader.vertexShader,\n\t\t\tfragmentShader: shader.fragmentShader,\n\t\t\tside: BackSide,\n\t\t\tblending: NoBlending\n\n\t\t} );\n\n\t\tmaterial.uniforms.tEquirect.value = texture;\n\n\t\tconst mesh = new Mesh( geometry, material );\n\n\t\tconst currentMinFilter = texture.minFilter;\n\n\t\t// Avoid blurred poles\n\t\tif ( texture.minFilter === LinearMipmapLinearFilter ) texture.minFilter = LinearFilter;\n\n\t\tconst camera = new CubeCamera( 1, 10, this );\n\t\tcamera.update( renderer, mesh );\n\n\t\ttexture.minFilter = currentMinFilter;\n\n\t\tmesh.geometry.dispose();\n\t\tmesh.material.dispose();\n\n\t\treturn this;\n\n\t}\n\n\tclear( renderer, color, depth, stencil ) {\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\trenderer.setRenderTarget( this, i );\n\n\t\t\trenderer.clear( color, depth, stencil );\n\n\t\t}\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n}\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\tthis.isPlane = true;\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( line.start ).addScaledVector( direction, t );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _sphere$5 = /*@__PURE__*/ new Sphere();\nconst _vector$7 = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize();\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( object.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t} else {\n\n\t\t\tconst geometry = object.geometry;\n\n\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$5.center.set( 0, 0, 0 );\n\t\t_sphere$5.radius = 0.7071067811865476;\n\t\t_sphere$5.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$7 ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nfunction WebGLAnimation() {\n\n\tlet context = null;\n\tlet isAnimating = false;\n\tlet animationLoop = null;\n\tlet requestId = null;\n\n\tfunction onAnimationFrame( time, frame ) {\n\n\t\tanimationLoop( time, frame );\n\n\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t}\n\n\treturn {\n\n\t\tstart: function () {\n\n\t\t\tif ( isAnimating === true ) return;\n\t\t\tif ( animationLoop === null ) return;\n\n\t\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t\t\tisAnimating = true;\n\n\t\t},\n\n\t\tstop: function () {\n\n\t\t\tcontext.cancelAnimationFrame( requestId );\n\n\t\t\tisAnimating = false;\n\n\t\t},\n\n\t\tsetAnimationLoop: function ( callback ) {\n\n\t\t\tanimationLoop = callback;\n\n\t\t},\n\n\t\tsetContext: function ( value ) {\n\n\t\t\tcontext = value;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLAttributes( gl ) {\n\n\tconst buffers = new WeakMap();\n\n\tfunction createBuffer( attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst usage = attribute.usage;\n\t\tconst size = array.byteLength;\n\n\t\tconst buffer = gl.createBuffer();\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\t\tgl.bufferData( bufferType, array, usage );\n\n\t\tattribute.onUploadCallback();\n\n\t\tlet type;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\ttype = gl.FLOAT;\n\n\t\t} else if ( array instanceof Uint16Array ) {\n\n\t\t\tif ( attribute.isFloat16BufferAttribute ) {\n\n\t\t\t\ttype = gl.HALF_FLOAT;\n\n\t\t\t} else {\n\n\t\t\t\ttype = gl.UNSIGNED_SHORT;\n\n\t\t\t}\n\n\t\t} else if ( array instanceof Int16Array ) {\n\n\t\t\ttype = gl.SHORT;\n\n\t\t} else if ( array instanceof Uint32Array ) {\n\n\t\t\ttype = gl.UNSIGNED_INT;\n\n\t\t} else if ( array instanceof Int32Array ) {\n\n\t\t\ttype = gl.INT;\n\n\t\t} else if ( array instanceof Int8Array ) {\n\n\t\t\ttype = gl.BYTE;\n\n\t\t} else if ( array instanceof Uint8Array ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else if ( array instanceof Uint8ClampedArray ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.WebGLAttributes: Unsupported buffer data format: ' + array );\n\n\t\t}\n\n\t\treturn {\n\t\t\tbuffer: buffer,\n\t\t\ttype: type,\n\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\n\t\t\tversion: attribute.version,\n\t\t\tsize: size\n\t\t};\n\n\t}\n\n\tfunction updateBuffer( buffer, attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst updateRanges = attribute.updateRanges;\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\n\t\tif ( updateRanges.length === 0 ) {\n\n\t\t\t// Not using update ranges\n\t\t\tgl.bufferSubData( bufferType, 0, array );\n\n\t\t} else {\n\n\t\t\t// Before applying update ranges, we merge any adjacent / overlapping\n\t\t\t// ranges to reduce load on `gl.bufferSubData`. Empirically, this has led\n\t\t\t// to performance improvements for applications which make heavy use of\n\t\t\t// update ranges. Likely due to GPU command overhead.\n\t\t\t//\n\t\t\t// Note that to reduce garbage collection between frames, we merge the\n\t\t\t// update ranges in-place. This is safe because this method will clear the\n\t\t\t// update ranges once updated.\n\n\t\t\tupdateRanges.sort( ( a, b ) => a.start - b.start );\n\n\t\t\t// To merge the update ranges in-place, we work from left to right in the\n\t\t\t// existing updateRanges array, merging ranges. This may result in a final\n\t\t\t// array which is smaller than the original. This index tracks the last\n\t\t\t// index representing a merged range, any data after this index can be\n\t\t\t// trimmed once the merge algorithm is completed.\n\t\t\tlet mergeIndex = 0;\n\n\t\t\tfor ( let i = 1; i < updateRanges.length; i ++ ) {\n\n\t\t\t\tconst previousRange = updateRanges[ mergeIndex ];\n\t\t\t\tconst range = updateRanges[ i ];\n\n\t\t\t\t// We add one here to merge adjacent ranges. This is safe because ranges\n\t\t\t\t// operate over positive integers.\n\t\t\t\tif ( range.start <= previousRange.start + previousRange.count + 1 ) {\n\n\t\t\t\t\tpreviousRange.count = Math.max(\n\t\t\t\t\t\tpreviousRange.count,\n\t\t\t\t\t\trange.start + range.count - previousRange.start\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\t++ mergeIndex;\n\t\t\t\t\tupdateRanges[ mergeIndex ] = range;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Trim the array to only contain the merged ranges.\n\t\t\tupdateRanges.length = mergeIndex + 1;\n\n\t\t\tfor ( let i = 0, l = updateRanges.length; i < l; i ++ ) {\n\n\t\t\t\tconst range = updateRanges[ i ];\n\n\t\t\t\tgl.bufferSubData( bufferType, range.start * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray, range.start, range.count );\n\n\t\t\t}\n\n\t\t\tattribute.clearUpdateRanges();\n\n\t\t}\n\n\t\tattribute.onUploadCallback();\n\n\t}\n\n\t//\n\n\tfunction get( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\treturn buffers.get( attribute );\n\n\t}\n\n\tfunction remove( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data ) {\n\n\t\t\tgl.deleteBuffer( data.buffer );\n\n\t\t\tbuffers.delete( attribute );\n\n\t\t}\n\n\t}\n\n\tfunction update( attribute, bufferType ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tif ( attribute.isGLBufferAttribute ) {\n\n\t\t\tconst cached = buffers.get( attribute );\n\n\t\t\tif ( ! cached || cached.version < attribute.version ) {\n\n\t\t\t\tbuffers.set( attribute, {\n\t\t\t\t\tbuffer: attribute.buffer,\n\t\t\t\t\ttype: attribute.type,\n\t\t\t\t\tbytesPerElement: attribute.elementSize,\n\t\t\t\t\tversion: attribute.version\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data === undefined ) {\n\n\t\t\tbuffers.set( attribute, createBuffer( attribute, bufferType ) );\n\n\t\t} else if ( data.version < attribute.version ) {\n\n\t\t\tif ( data.size !== attribute.array.byteLength ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLAttributes: The size of the buffer attribute\\'s array buffer does not match the original size. Resizing buffer attributes is not supported.' );\n\n\t\t\t}\n\n\t\t\tupdateBuffer( data.buffer, attribute, bufferType );\n\n\t\t\tdata.version = attribute.version;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update\n\n\t};\n\n}\n\nclass PlaneGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PlaneGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments\n\t\t};\n\n\t\tconst width_half = width / 2;\n\t\tconst height_half = height / 2;\n\n\t\tconst gridX = Math.floor( widthSegments );\n\t\tconst gridY = Math.floor( heightSegments );\n\n\t\tconst gridX1 = gridX + 1;\n\t\tconst gridY1 = gridY + 1;\n\n\t\tconst segment_width = width / gridX;\n\t\tconst segment_height = height / gridY;\n\n\t\t//\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\tconst y = iy * segment_height - height_half;\n\n\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\tconst x = ix * segment_width - width_half;\n\n\t\t\t\tvertices.push( x, - y, 0 );\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\tconst a = ix + gridX1 * iy;\n\t\t\t\tconst b = ix + gridX1 * ( iy + 1 );\n\t\t\t\tconst c = ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\tconst d = ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\nvar alphahash_fragment = \"#ifdef USE_ALPHAHASH\\n\\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";\n\nvar alphahash_pars_fragment = \"#ifdef USE_ALPHAHASH\\n\\tconst float ALPHA_HASH_SCALE = 0.05;\\n\\tfloat hash2D( vec2 value ) {\\n\\t\\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\\t}\\n\\tfloat hash3D( vec3 value ) {\\n\\t\\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\\t}\\n\\tfloat getAlphaHashThreshold( vec3 position ) {\\n\\t\\tfloat maxDeriv = max(\\n\\t\\t\\tlength( dFdx( position.xyz ) ),\\n\\t\\t\\tlength( dFdy( position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\\t\\tvec2 pixScales = vec2(\\n\\t\\t\\texp2( floor( log2( pixScale ) ) ),\\n\\t\\t\\texp2( ceil( log2( pixScale ) ) )\\n\\t\\t);\\n\\t\\tvec2 alpha = vec2(\\n\\t\\t\\thash3D( floor( pixScales.x * position.xyz ) ),\\n\\t\\t\\thash3D( floor( pixScales.y * position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat lerpFactor = fract( log2( pixScale ) );\\n\\t\\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\\t\\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\\t\\tvec3 cases = vec3(\\n\\t\\t\\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\\t\\t\\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\\t\\t\\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\\t\\t);\\n\\t\\tfloat threshold = ( x < ( 1.0 - a ) )\\n\\t\\t\\t? ( ( x < a ) ? cases.x : cases.y )\\n\\t\\t\\t: cases.z;\\n\\t\\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\\t}\\n#endif\";\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";\n\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\\n\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n\\t#endif\\n#endif\";\n\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";\n\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_CLEARCOAT ) \\n\\t\\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_SHEEN ) \\n\\t\\tsheenSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";\n\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\n\nvar batching_pars_vertex = \"#ifdef USE_BATCHING\\n\\t#if ! defined( GL_ANGLE_multi_draw )\\n\\t#define gl_DrawID _gl_DrawID\\n\\tuniform int _gl_DrawID;\\n\\t#endif\\n\\tuniform highp sampler2D batchingTexture;\\n\\tuniform highp usampler2D batchingIdTexture;\\n\\tmat4 getBatchingMatrix( const in float i ) {\\n\\t\\tint size = textureSize( batchingTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n\\tfloat getIndirectIndex( const in int i ) {\\n\\t\\tint size = textureSize( batchingIdTexture, 0 ).x;\\n\\t\\tint x = i % size;\\n\\t\\tint y = i / size;\\n\\t\\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\\n\\t}\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tuniform sampler2D batchingColorTexture;\\n\\tvec3 getBatchingColor( const in float i ) {\\n\\t\\tint size = textureSize( batchingColorTexture, 0 ).x;\\n\\t\\tint j = int( i );\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\\n\\t}\\n#endif\";\n\nvar batching_vertex = \"#ifdef USE_BATCHING\\n\\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\\n#endif\";\n\nvar begin_vertex = \"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\\tvPosition = vec3( position );\\n#endif\";\n\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\n\nvar bsdfs = \"float G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n} // validated\";\n\nvar iridescence_fragment = \"#ifdef USE_IRIDESCENCE\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660, 0.0556434,\\n\\t\\t-1.5371385, 1.8760108, -0.2040259,\\n\\t\\t-0.4985314, 0.0415560, 1.0572252\\n\\t);\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\t}\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\t}\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\t}\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\t}\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\t\\tvec3 I;\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t}\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\t\\t}\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\t}\\n#endif\";\n\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\\t\\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\\n\\t\\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";\n\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\t\\tfloat distanceToPlane, distanceGradient;\\n\\t\\tfloat clipOpacity = 1.0;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\tif ( clipOpacity == 0.0 ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tfloat unionClipOpacity = 1.0;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\t\\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tclipOpacity *= 1.0 - unionClipOpacity;\\n\\t\\t#endif\\n\\t\\tdiffuseColor.a *= clipOpacity;\\n\\t\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tbool clipped = true;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tif ( clipped ) discard;\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\n\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\n\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\n\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\n\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\\n\\tvColor.xyz *= batchingColor.xyz;\\n#endif\";\n\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\n#ifdef USE_ALPHAHASH\\n\\tvarying vec3 vPosition;\\n#endif\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";\n\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";\n\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\\tmat3 bm = mat3( batchingMatrix );\\n\\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\\ttransformedNormal = bm * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = bm * transformedTangent;\\n\\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmat3 im = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\\ttransformedNormal = im * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = im * transformedTangent;\\n\\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\n\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\n\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";\n\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE_EMISSIVE\\n\\t\\temissiveColor = sRGBTransferEOTF( emissiveColor );\\n\\t#endif\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\n\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\n\nvar colorspace_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\n\nvar colorspace_pars_fragment = \"vec4 LinearTransferOETF( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 sRGBTransferEOTF( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\nvec4 sRGBTransferOETF( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\";\n\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";\n\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform mat3 envMapRotation;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\n\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\n\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\n\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";\n\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";\n\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\n\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";\n\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\t#endif\\n}\";\n\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\n\nvar lights_lambert_fragment = \"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_lambert_pars_fragment = \"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\";\n\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\\tuniform vec3 lightProbe[ 9 ];\\n#endif\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\n\nvar envmap_physical_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\\t\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t\\tvec3 bentNormal = cross( bitangent, viewDir );\\n\\t\\t\\t\\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\\t\\t\\t\\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\\t\\t\\t\\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\n\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\";\n\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\";\n\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\tmaterial.ior = ior;\\n\\t#ifdef USE_SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_DISPERSION\\n\\tmaterial.dispersion = dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\\t#else\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\\t\\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\\t\\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\\t#else\\n\\t\\tvec2 anisotropyV = anisotropyVector;\\n\\t#endif\\n\\tmaterial.anisotropy = length( anisotropyV );\\n\\tif( material.anisotropy == 0.0 ) {\\n\\t\\tanisotropyV = vec2( 1.0, 0.0 );\\n\\t} else {\\n\\t\\tanisotropyV /= material.anisotropy;\\n\\t\\tmaterial.anisotropy = saturate( material.anisotropy );\\n\\t}\\n\\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";\n\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\tfloat dispersion;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat anisotropy;\\n\\t\\tfloat alphaT;\\n\\t\\tvec3 anisotropyT;\\n\\t\\tvec3 anisotropyB;\\n\\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n float x2 = x * x;\\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_ANISOTROPY\\n\\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\\t\\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\\t\\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\\t\\tfloat v = 0.5 / ( gv + gl );\\n\\t\\treturn saturate(v);\\n\\t}\\n\\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\\t\\tfloat a2 = alphaT * alphaB;\\n\\t\\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\\t\\thighp float v2 = dot( v, v );\\n\\t\\tfloat w2 = a2 / v2;\\n\\t\\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\\t\\tvec3 f0 = material.clearcoatF0;\\n\\t\\tfloat f90 = material.clearcoatF90;\\n\\t\\tfloat roughness = material.clearcoatRoughness;\\n\\t\\tfloat alpha = pow2( roughness );\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\t\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t\\treturn F * ( V * D );\\n\\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\\tvec3 f0 = material.specularColor;\\n\\tfloat f90 = material.specularF90;\\n\\tfloat roughness = material.roughness;\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\\t\\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\\t\\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\\t\\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\\t\\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\\t\\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\\t\\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\\t\\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\\t#else\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t#endif\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\t#else\\n\\t\\tvec3 Fr = specularColor;\\n\\t#endif\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometryNormal;\\n\\t\\tvec3 viewDir = geometryViewDir;\\n\\t\\tvec3 position = geometryPosition;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\t#else\\n\\t\\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\t#endif\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\n\nvar lights_fragment_begin = \"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\t\\tmaterial.iridescence = 0.0;\\n\\t} else {\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\t}\\n\\tif ( material.iridescence > 0.0 ) {\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#if defined( USE_LIGHT_PROBES )\\n\\t\\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\n\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\\t#else\\n\\t\\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";\n\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";\n\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\n\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\tvFragDepth = 1.0 + gl_Position.w;\\n\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n#endif\";\n\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tsampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );\\n\\t#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\n\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\n\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t#if defined( USE_POINTS_UV )\\n\\t\\tvec2 uv = vUv;\\n\\t#else\\n\\t\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\n\nvar map_particle_pars_fragment = \"#if defined( USE_POINTS_UV )\\n\\tvarying vec2 vUv;\\n#else\\n\\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t\\tuniform mat3 uvTransform;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\n\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\n\nvar morphinstance_vertex = \"#ifdef USE_INSTANCING_MORPH\\n\\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\\n\\t}\\n#endif\";\n\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";\n\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_INSTANCING_MORPH\\n\\t\\tuniform float morphTargetBaseInfluence;\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t#endif\\n\\tuniform sampler2DArray morphTargetsTexture;\\n\\tuniform ivec2 morphTargetsTextureSize;\\n\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t}\\n#endif\";\n\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";\n\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal *= faceDirection;\\n\\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\\t\\t#if defined( USE_NORMALMAP )\\n\\t\\t\\tvNormalMapUv\\n\\t\\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tvClearcoatNormalMapUv\\n\\t\\t#else\\n\\t\\t\\tvUv\\n\\t\\t#endif\\n\\t\\t);\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn[0] *= faceDirection;\\n\\t\\ttbn[1] *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn2[0] *= faceDirection;\\n\\t\\ttbn2[1] *= faceDirection;\\n\\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";\n\nvar normal_fragment_maps = \"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\n\nvar normal_pars_fragment = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_pars_vertex = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_vertex = \"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";\n\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( uv.st );\\n\\t\\tvec2 st1 = dFdy( uv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\\t\\treturn mat3( T * scale, B * scale, N );\\n\\t}\\n#endif\";\n\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";\n\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";\n\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";\n\nvar iridescence_pars_fragment = \"#ifdef USE_IRIDESCENCEMAP\\n\\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";\n\nvar opaque_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\n\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\\nconst float Inv255 = 1. / 255.;\\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec4( 0., 0., 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec4( 1., 1., 1., 1. );\\n\\tfloat vuf;\\n\\tfloat af = modf( v * PackFactors.a, vuf );\\n\\tfloat bf = modf( vuf * ShiftRight8, vuf );\\n\\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\\n}\\nvec3 packDepthToRGB( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec3( 0., 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec3( 1., 1., 1. );\\n\\tfloat vuf;\\n\\tfloat bf = modf( v * PackFactors.b, vuf );\\n\\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\\n}\\nvec2 packDepthToRG( const in float v ) {\\n\\tif( v <= 0.0 )\\n\\t\\treturn vec2( 0., 0. );\\n\\tif( v >= 1.0 )\\n\\t\\treturn vec2( 1., 1. );\\n\\tfloat vuf;\\n\\tfloat gf = modf( v * 256., vuf );\\n\\treturn vec2( vuf * Inv255, gf );\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors4 );\\n}\\nfloat unpackRGBToDepth( const in vec3 v ) {\\n\\treturn dot( v, UnpackFactors3 );\\n}\\nfloat unpackRGToDepth( const in vec2 v ) {\\n\\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\\n}\\nvec4 pack2HalfToRGBA( const in vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( const in vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";\n\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\n\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\n\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\n\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";\n\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\n\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\n\nvar shadowmap_pars_fragment = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\\t\\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\t\\n\\t\\tfloat lightToPositionLength = length( lightToPosition );\\n\\t\\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\\n\\t\\t\\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\t\\tdp += shadowBias;\\n\\t\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\t\\tshadow = (\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n#endif\";\n\nvar shadowmap_pars_vertex = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\n\nvar shadowmap_vertex = \"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\n\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\n\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\n\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\tuniform highp sampler2D boneTexture;\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\tint size = textureSize( boneTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";\n\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\n\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";\n\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\n\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\n\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\n\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 CineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3( 1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108, 1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605, 1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\\tvec3 x2 = x * x;\\n\\tvec3 x4 = x2 * x2;\\n\\treturn + 15.5 * x4 * x2\\n\\t\\t- 40.14 * x4 * x\\n\\t\\t+ 31.96 * x4\\n\\t\\t- 6.868 * x2 * x\\n\\t\\t+ 0.4298 * x2\\n\\t\\t+ 0.1191 * x\\n\\t\\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\\tconst mat3 AgXInsetMatrix = mat3(\\n\\t\\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\\t\\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\\t\\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\\t);\\n\\tconst mat3 AgXOutsetMatrix = mat3(\\n\\t\\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\\t\\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\\t\\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\\t);\\n\\tconst float AgxMinEv = - 12.47393;\\tconst float AgxMaxEv = 4.026069;\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\\tcolor = AgXInsetMatrix * color;\\n\\tcolor = max( color, 1e-10 );\\tcolor = log2( color );\\n\\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\tcolor = agxDefaultContrastApprox( color );\\n\\tcolor = AgXOutsetMatrix * color;\\n\\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\treturn color;\\n}\\nvec3 NeutralToneMapping( vec3 color ) {\\n\\tconst float StartCompression = 0.8 - 0.04;\\n\\tconst float Desaturation = 0.15;\\n\\tcolor *= toneMappingExposure;\\n\\tfloat x = min( color.r, min( color.g, color.b ) );\\n\\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\\n\\tcolor -= offset;\\n\\tfloat peak = max( color.r, max( color.g, color.b ) );\\n\\tif ( peak < StartCompression ) return color;\\n\\tfloat d = 1. - StartCompression;\\n\\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\\n\\tcolor *= newPeak / peak;\\n\\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\\n\\treturn mix( color, vec3( newPeak ), g );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\n\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\\tmaterial.transmission = transmission;\\n\\tmaterial.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmitted = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";\n\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tfloat w0( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w1( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\\t}\\n\\tfloat w2( float a ){\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w3( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\\t}\\n\\tfloat g0( float a ) {\\n\\t\\treturn w0( a ) + w1( a );\\n\\t}\\n\\tfloat g1( float a ) {\\n\\t\\treturn w2( a ) + w3( a );\\n\\t}\\n\\tfloat h0( float a ) {\\n\\t\\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\\t}\\n\\tfloat h1( float a ) {\\n\\t\\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\\t}\\n\\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\\t\\tuv = uv * texelSize.zw + 0.5;\\n\\t\\tvec2 iuv = floor( uv );\\n\\t\\tvec2 fuv = fract( uv );\\n\\t\\tfloat g0x = g0( fuv.x );\\n\\t\\tfloat g1x = g1( fuv.x );\\n\\t\\tfloat h0x = h0( fuv.x );\\n\\t\\tfloat h1x = h1( fuv.x );\\n\\t\\tfloat h0y = h0( fuv.y );\\n\\t\\tfloat h1y = h1( fuv.y );\\n\\t\\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\\t\\t\\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\\t}\\n\\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\\t\\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\\t\\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\\t\\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\\t\\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\\t\\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\\t\\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\\t\\treturn mix( fSample, cSample, fract( lod ) );\\n\\t}\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\\t}\\n\\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( isinf( attenuationDistance ) ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec4 transmittedLight;\\n\\t\\tvec3 transmittance;\\n\\t\\t#ifdef USE_DISPERSION\\n\\t\\t\\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\\n\\t\\t\\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\\n\\t\\t\\tfor ( int i = 0; i < 3; i ++ ) {\\n\\t\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\\n\\t\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\n\\t\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\n\\t\\t\\t\\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\\n\\t\\t\\t\\ttransmittedLight[ i ] = transmissionSample[ i ];\\n\\t\\t\\t\\ttransmittedLight.a += transmissionSample.a;\\n\\t\\t\\t\\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\\n\\t\\t\\t}\\n\\t\\t\\ttransmittedLight.a /= 3.0;\\n\\t\\t\\n\\t\\t#else\\n\\t\\t\\n\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\t\\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\t\\n\\t\\t#endif\\n\\t\\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\\t}\\n#endif\";\n\nvar uv_pars_fragment = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_pars_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform mat3 mapTransform;\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform mat3 alphaMapTransform;\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tuniform mat3 lightMapTransform;\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tuniform mat3 aoMapTransform;\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tuniform mat3 bumpMapTransform;\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tuniform mat3 normalMapTransform;\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tuniform mat3 displacementMapTransform;\\n\\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tuniform mat3 emissiveMapTransform;\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tuniform mat3 metalnessMapTransform;\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tuniform mat3 roughnessMapTransform;\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tuniform mat3 anisotropyMapTransform;\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tuniform mat3 clearcoatMapTransform;\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform mat3 clearcoatNormalMapTransform;\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform mat3 clearcoatRoughnessMapTransform;\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tuniform mat3 sheenColorMapTransform;\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tuniform mat3 sheenRoughnessMapTransform;\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tuniform mat3 iridescenceMapTransform;\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform mat3 iridescenceThicknessMapTransform;\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tuniform mat3 specularMapTransform;\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tuniform mat3 specularColorMapTransform;\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tuniform mat3 specularIntensityMapTransform;\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";\n\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_BATCHING\\n\\t\\tworldPosition = batchingMatrix * worldPosition;\\n\\t#endif\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\n\nconst vertex$h = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\n\nconst fragment$h = \"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$g = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$g = \"#ifdef ENVMAP_TYPE_CUBE\\n\\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nuniform mat3 backgroundRotation;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\\n\\t#else\\n\\t\\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$f = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$f = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = texColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$e = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\n\nconst fragment$e = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#elif DEPTH_PACKING == 3202\\n\\t\\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\\n\\t#elif DEPTH_PACKING == 3203\\n\\t\\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\\n\\t#endif\\n}\";\n\nconst vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\n\nconst fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\n\nconst vertex$c = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$a = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$9 = \"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$9 = \"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$8 = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n}\";\n\nconst fragment$8 = \"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$7 = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$7 = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\\n\\t#ifdef OPAQUE\\n\\t\\tgl_FragColor.a = 1.0;\\n\\t#endif\\n}\";\n\nconst vertex$6 = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$6 = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$5 = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$5 = \"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define USE_SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n#ifdef USE_SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_DISPERSION\\n\\tuniform float dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tuniform float iridescence;\\n\\tuniform float iridescenceIOR;\\n\\tuniform float iridescenceThicknessMinimum;\\n\\tuniform float iridescenceThicknessMaximum;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\tuniform vec2 anisotropyVector;\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tuniform sampler2D anisotropyMap;\\n\\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include \\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\t#ifdef USE_SHEEN\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$4 = \"#define TOON\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$4 = \"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$3 = \"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#ifdef USE_POINTS_UV\\n\\tvarying vec2 vUv;\\n\\tuniform mat3 uvTransform;\\n#endif\\nvoid main() {\\n\\t#ifdef USE_POINTS_UV\\n\\t\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$3 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$2 = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$2 = \"uniform vec3 color;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$1 = \"uniform float rotation;\\nuniform vec2 center;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 mvPosition = modelViewMatrix[ 3 ];\\n\\tvec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$1 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst ShaderChunk = {\n\talphahash_fragment: alphahash_fragment,\n\talphahash_pars_fragment: alphahash_pars_fragment,\n\talphamap_fragment: alphamap_fragment,\n\talphamap_pars_fragment: alphamap_pars_fragment,\n\talphatest_fragment: alphatest_fragment,\n\talphatest_pars_fragment: alphatest_pars_fragment,\n\taomap_fragment: aomap_fragment,\n\taomap_pars_fragment: aomap_pars_fragment,\n\tbatching_pars_vertex: batching_pars_vertex,\n\tbatching_vertex: batching_vertex,\n\tbegin_vertex: begin_vertex,\n\tbeginnormal_vertex: beginnormal_vertex,\n\tbsdfs: bsdfs,\n\tiridescence_fragment: iridescence_fragment,\n\tbumpmap_pars_fragment: bumpmap_pars_fragment,\n\tclipping_planes_fragment: clipping_planes_fragment,\n\tclipping_planes_pars_fragment: clipping_planes_pars_fragment,\n\tclipping_planes_pars_vertex: clipping_planes_pars_vertex,\n\tclipping_planes_vertex: clipping_planes_vertex,\n\tcolor_fragment: color_fragment,\n\tcolor_pars_fragment: color_pars_fragment,\n\tcolor_pars_vertex: color_pars_vertex,\n\tcolor_vertex: color_vertex,\n\tcommon: common,\n\tcube_uv_reflection_fragment: cube_uv_reflection_fragment,\n\tdefaultnormal_vertex: defaultnormal_vertex,\n\tdisplacementmap_pars_vertex: displacementmap_pars_vertex,\n\tdisplacementmap_vertex: displacementmap_vertex,\n\temissivemap_fragment: emissivemap_fragment,\n\temissivemap_pars_fragment: emissivemap_pars_fragment,\n\tcolorspace_fragment: colorspace_fragment,\n\tcolorspace_pars_fragment: colorspace_pars_fragment,\n\tenvmap_fragment: envmap_fragment,\n\tenvmap_common_pars_fragment: envmap_common_pars_fragment,\n\tenvmap_pars_fragment: envmap_pars_fragment,\n\tenvmap_pars_vertex: envmap_pars_vertex,\n\tenvmap_physical_pars_fragment: envmap_physical_pars_fragment,\n\tenvmap_vertex: envmap_vertex,\n\tfog_vertex: fog_vertex,\n\tfog_pars_vertex: fog_pars_vertex,\n\tfog_fragment: fog_fragment,\n\tfog_pars_fragment: fog_pars_fragment,\n\tgradientmap_pars_fragment: gradientmap_pars_fragment,\n\tlightmap_pars_fragment: lightmap_pars_fragment,\n\tlights_lambert_fragment: lights_lambert_fragment,\n\tlights_lambert_pars_fragment: lights_lambert_pars_fragment,\n\tlights_pars_begin: lights_pars_begin,\n\tlights_toon_fragment: lights_toon_fragment,\n\tlights_toon_pars_fragment: lights_toon_pars_fragment,\n\tlights_phong_fragment: lights_phong_fragment,\n\tlights_phong_pars_fragment: lights_phong_pars_fragment,\n\tlights_physical_fragment: lights_physical_fragment,\n\tlights_physical_pars_fragment: lights_physical_pars_fragment,\n\tlights_fragment_begin: lights_fragment_begin,\n\tlights_fragment_maps: lights_fragment_maps,\n\tlights_fragment_end: lights_fragment_end,\n\tlogdepthbuf_fragment: logdepthbuf_fragment,\n\tlogdepthbuf_pars_fragment: logdepthbuf_pars_fragment,\n\tlogdepthbuf_pars_vertex: logdepthbuf_pars_vertex,\n\tlogdepthbuf_vertex: logdepthbuf_vertex,\n\tmap_fragment: map_fragment,\n\tmap_pars_fragment: map_pars_fragment,\n\tmap_particle_fragment: map_particle_fragment,\n\tmap_particle_pars_fragment: map_particle_pars_fragment,\n\tmetalnessmap_fragment: metalnessmap_fragment,\n\tmetalnessmap_pars_fragment: metalnessmap_pars_fragment,\n\tmorphinstance_vertex: morphinstance_vertex,\n\tmorphcolor_vertex: morphcolor_vertex,\n\tmorphnormal_vertex: morphnormal_vertex,\n\tmorphtarget_pars_vertex: morphtarget_pars_vertex,\n\tmorphtarget_vertex: morphtarget_vertex,\n\tnormal_fragment_begin: normal_fragment_begin,\n\tnormal_fragment_maps: normal_fragment_maps,\n\tnormal_pars_fragment: normal_pars_fragment,\n\tnormal_pars_vertex: normal_pars_vertex,\n\tnormal_vertex: normal_vertex,\n\tnormalmap_pars_fragment: normalmap_pars_fragment,\n\tclearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin,\n\tclearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,\n\tclearcoat_pars_fragment: clearcoat_pars_fragment,\n\tiridescence_pars_fragment: iridescence_pars_fragment,\n\topaque_fragment: opaque_fragment,\n\tpacking: packing,\n\tpremultiplied_alpha_fragment: premultiplied_alpha_fragment,\n\tproject_vertex: project_vertex,\n\tdithering_fragment: dithering_fragment,\n\tdithering_pars_fragment: dithering_pars_fragment,\n\troughnessmap_fragment: roughnessmap_fragment,\n\troughnessmap_pars_fragment: roughnessmap_pars_fragment,\n\tshadowmap_pars_fragment: shadowmap_pars_fragment,\n\tshadowmap_pars_vertex: shadowmap_pars_vertex,\n\tshadowmap_vertex: shadowmap_vertex,\n\tshadowmask_pars_fragment: shadowmask_pars_fragment,\n\tskinbase_vertex: skinbase_vertex,\n\tskinning_pars_vertex: skinning_pars_vertex,\n\tskinning_vertex: skinning_vertex,\n\tskinnormal_vertex: skinnormal_vertex,\n\tspecularmap_fragment: specularmap_fragment,\n\tspecularmap_pars_fragment: specularmap_pars_fragment,\n\ttonemapping_fragment: tonemapping_fragment,\n\ttonemapping_pars_fragment: tonemapping_pars_fragment,\n\ttransmission_fragment: transmission_fragment,\n\ttransmission_pars_fragment: transmission_pars_fragment,\n\tuv_pars_fragment: uv_pars_fragment,\n\tuv_pars_vertex: uv_pars_vertex,\n\tuv_vertex: uv_vertex,\n\tworldpos_vertex: worldpos_vertex,\n\n\tbackground_vert: vertex$h,\n\tbackground_frag: fragment$h,\n\tbackgroundCube_vert: vertex$g,\n\tbackgroundCube_frag: fragment$g,\n\tcube_vert: vertex$f,\n\tcube_frag: fragment$f,\n\tdepth_vert: vertex$e,\n\tdepth_frag: fragment$e,\n\tdistanceRGBA_vert: vertex$d,\n\tdistanceRGBA_frag: fragment$d,\n\tequirect_vert: vertex$c,\n\tequirect_frag: fragment$c,\n\tlinedashed_vert: vertex$b,\n\tlinedashed_frag: fragment$b,\n\tmeshbasic_vert: vertex$a,\n\tmeshbasic_frag: fragment$a,\n\tmeshlambert_vert: vertex$9,\n\tmeshlambert_frag: fragment$9,\n\tmeshmatcap_vert: vertex$8,\n\tmeshmatcap_frag: fragment$8,\n\tmeshnormal_vert: vertex$7,\n\tmeshnormal_frag: fragment$7,\n\tmeshphong_vert: vertex$6,\n\tmeshphong_frag: fragment$6,\n\tmeshphysical_vert: vertex$5,\n\tmeshphysical_frag: fragment$5,\n\tmeshtoon_vert: vertex$4,\n\tmeshtoon_frag: fragment$4,\n\tpoints_vert: vertex$3,\n\tpoints_frag: fragment$3,\n\tshadow_vert: vertex$2,\n\tshadow_frag: fragment$2,\n\tsprite_vert: vertex$1,\n\tsprite_frag: fragment$1\n};\n\n/**\n * Uniforms library for shared webgl shaders\n */\n\nconst UniformsLib = {\n\n\tcommon: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\n\t\tmap: { value: null },\n\t\tmapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\n\t\talphaTest: { value: 0 }\n\n\t},\n\n\tspecularmap: {\n\n\t\tspecularMap: { value: null },\n\t\tspecularMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tenvmap: {\n\n\t\tenvMap: { value: null },\n\t\tenvMapRotation: { value: /*@__PURE__*/ new Matrix3() },\n\t\tflipEnvMap: { value: - 1 },\n\t\treflectivity: { value: 1.0 }, // basic, lambert, phong\n\t\tior: { value: 1.5 }, // physical\n\t\trefractionRatio: { value: 0.98 }, // basic, lambert, phong\n\n\t},\n\n\taomap: {\n\n\t\taoMap: { value: null },\n\t\taoMapIntensity: { value: 1 },\n\t\taoMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tlightmap: {\n\n\t\tlightMap: { value: null },\n\t\tlightMapIntensity: { value: 1 },\n\t\tlightMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tbumpmap: {\n\n\t\tbumpMap: { value: null },\n\t\tbumpMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tbumpScale: { value: 1 }\n\n\t},\n\n\tnormalmap: {\n\n\t\tnormalMap: { value: null },\n\t\tnormalMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tnormalScale: { value: /*@__PURE__*/ new Vector2( 1, 1 ) }\n\n\t},\n\n\tdisplacementmap: {\n\n\t\tdisplacementMap: { value: null },\n\t\tdisplacementMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tdisplacementScale: { value: 1 },\n\t\tdisplacementBias: { value: 0 }\n\n\t},\n\n\temissivemap: {\n\n\t\temissiveMap: { value: null },\n\t\temissiveMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tmetalnessmap: {\n\n\t\tmetalnessMap: { value: null },\n\t\tmetalnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\troughnessmap: {\n\n\t\troughnessMap: { value: null },\n\t\troughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tgradientmap: {\n\n\t\tgradientMap: { value: null }\n\n\t},\n\n\tfog: {\n\n\t\tfogDensity: { value: 0.00025 },\n\t\tfogNear: { value: 1 },\n\t\tfogFar: { value: 2000 },\n\t\tfogColor: { value: /*@__PURE__*/ new Color( 0xffffff ) }\n\n\t},\n\n\tlights: {\n\n\t\tambientLightColor: { value: [] },\n\n\t\tlightProbe: { value: [] },\n\n\t\tdirectionalLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tcolor: {}\n\t\t} },\n\n\t\tdirectionalLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tdirectionalShadowMap: { value: [] },\n\t\tdirectionalShadowMatrix: { value: [] },\n\n\t\tspotLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdirection: {},\n\t\t\tdistance: {},\n\t\t\tconeCos: {},\n\t\t\tpenumbraCos: {},\n\t\t\tdecay: {}\n\t\t} },\n\n\t\tspotLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tspotLightMap: { value: [] },\n\t\tspotShadowMap: { value: [] },\n\t\tspotLightMatrix: { value: [] },\n\n\t\tpointLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdecay: {},\n\t\t\tdistance: {}\n\t\t} },\n\n\t\tpointLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {},\n\t\t\tshadowCameraNear: {},\n\t\t\tshadowCameraFar: {}\n\t\t} },\n\n\t\tpointShadowMap: { value: [] },\n\t\tpointShadowMatrix: { value: [] },\n\n\t\themisphereLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tskyColor: {},\n\t\t\tgroundColor: {}\n\t\t} },\n\n\t\t// TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n\t\trectAreaLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\twidth: {},\n\t\t\theight: {}\n\t\t} },\n\n\t\tltc_1: { value: null },\n\t\tltc_2: { value: null }\n\n\t},\n\n\tpoints: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tsize: { value: 1.0 },\n\t\tscale: { value: 1.0 },\n\t\tmap: { value: null },\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaTest: { value: 0 },\n\t\tuvTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tsprite: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tcenter: { value: /*@__PURE__*/ new Vector2( 0.5, 0.5 ) },\n\t\trotation: { value: 0.0 },\n\t\tmap: { value: null },\n\t\tmapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaTest: { value: 0 }\n\n\t}\n\n};\n\nconst ShaderLib = {\n\n\tbasic: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshbasic_vert,\n\t\tfragmentShader: ShaderChunk.meshbasic_frag\n\n\t},\n\n\tlambert: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshlambert_vert,\n\t\tfragmentShader: ShaderChunk.meshlambert_frag\n\n\t},\n\n\tphong: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\t\tspecular: { value: /*@__PURE__*/ new Color( 0x111111 ) },\n\t\t\t\tshininess: { value: 30 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphong_vert,\n\t\tfragmentShader: ShaderChunk.meshphong_frag\n\n\t},\n\n\tstandard: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.roughnessmap,\n\t\t\tUniformsLib.metalnessmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\t\troughness: { value: 1.0 },\n\t\t\t\tmetalness: { value: 0.0 },\n\t\t\t\tenvMapIntensity: { value: 1 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphysical_vert,\n\t\tfragmentShader: ShaderChunk.meshphysical_frag\n\n\t},\n\n\ttoon: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.gradientmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshtoon_vert,\n\t\tfragmentShader: ShaderChunk.meshtoon_frag\n\n\t},\n\n\tmatcap: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tmatcap: { value: null }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshmatcap_vert,\n\t\tfragmentShader: ShaderChunk.meshmatcap_frag\n\n\t},\n\n\tpoints: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.points,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.points_vert,\n\t\tfragmentShader: ShaderChunk.points_frag\n\n\t},\n\n\tdashed: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tscale: { value: 1 },\n\t\t\t\tdashSize: { value: 1 },\n\t\t\t\ttotalSize: { value: 2 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.linedashed_vert,\n\t\tfragmentShader: ShaderChunk.linedashed_frag\n\n\t},\n\n\tdepth: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.depth_vert,\n\t\tfragmentShader: ShaderChunk.depth_frag\n\n\t},\n\n\tnormal: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshnormal_vert,\n\t\tfragmentShader: ShaderChunk.meshnormal_frag\n\n\t},\n\n\tsprite: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.sprite,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.sprite_vert,\n\t\tfragmentShader: ShaderChunk.sprite_frag\n\n\t},\n\n\tbackground: {\n\n\t\tuniforms: {\n\t\t\tuvTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tt2D: { value: null },\n\t\t\tbackgroundIntensity: { value: 1 }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.background_vert,\n\t\tfragmentShader: ShaderChunk.background_frag\n\n\t},\n\n\tbackgroundCube: {\n\n\t\tuniforms: {\n\t\t\tenvMap: { value: null },\n\t\t\tflipEnvMap: { value: - 1 },\n\t\t\tbackgroundBlurriness: { value: 0 },\n\t\t\tbackgroundIntensity: { value: 1 },\n\t\t\tbackgroundRotation: { value: /*@__PURE__*/ new Matrix3() }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.backgroundCube_vert,\n\t\tfragmentShader: ShaderChunk.backgroundCube_frag\n\n\t},\n\n\tcube: {\n\n\t\tuniforms: {\n\t\t\ttCube: { value: null },\n\t\t\ttFlip: { value: - 1 },\n\t\t\topacity: { value: 1.0 }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.cube_vert,\n\t\tfragmentShader: ShaderChunk.cube_frag\n\n\t},\n\n\tequirect: {\n\n\t\tuniforms: {\n\t\t\ttEquirect: { value: null },\n\t\t},\n\n\t\tvertexShader: ShaderChunk.equirect_vert,\n\t\tfragmentShader: ShaderChunk.equirect_frag\n\n\t},\n\n\tdistanceRGBA: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\treferencePosition: { value: /*@__PURE__*/ new Vector3() },\n\t\t\t\tnearDistance: { value: 1 },\n\t\t\t\tfarDistance: { value: 1000 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.distanceRGBA_vert,\n\t\tfragmentShader: ShaderChunk.distanceRGBA_frag\n\n\t},\n\n\tshadow: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.lights,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tcolor: { value: /*@__PURE__*/ new Color( 0x00000 ) },\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t},\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.shadow_vert,\n\t\tfragmentShader: ShaderChunk.shadow_frag\n\n\t}\n\n};\n\nShaderLib.physical = {\n\n\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\tShaderLib.standard.uniforms,\n\t\t{\n\t\t\tclearcoat: { value: 0 },\n\t\t\tclearcoatMap: { value: null },\n\t\t\tclearcoatMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tclearcoatNormalMap: { value: null },\n\t\t\tclearcoatNormalMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tclearcoatNormalScale: { value: /*@__PURE__*/ new Vector2( 1, 1 ) },\n\t\t\tclearcoatRoughness: { value: 0 },\n\t\t\tclearcoatRoughnessMap: { value: null },\n\t\t\tclearcoatRoughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tdispersion: { value: 0 },\n\t\t\tiridescence: { value: 0 },\n\t\t\tiridescenceMap: { value: null },\n\t\t\tiridescenceMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tiridescenceIOR: { value: 1.3 },\n\t\t\tiridescenceThicknessMinimum: { value: 100 },\n\t\t\tiridescenceThicknessMaximum: { value: 400 },\n\t\t\tiridescenceThicknessMap: { value: null },\n\t\t\tiridescenceThicknessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tsheen: { value: 0 },\n\t\t\tsheenColor: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\tsheenColorMap: { value: null },\n\t\t\tsheenColorMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tsheenRoughness: { value: 1 },\n\t\t\tsheenRoughnessMap: { value: null },\n\t\t\tsheenRoughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\ttransmission: { value: 0 },\n\t\t\ttransmissionMap: { value: null },\n\t\t\ttransmissionMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\ttransmissionSamplerSize: { value: /*@__PURE__*/ new Vector2() },\n\t\t\ttransmissionSamplerMap: { value: null },\n\t\t\tthickness: { value: 0 },\n\t\t\tthicknessMap: { value: null },\n\t\t\tthicknessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tattenuationDistance: { value: 0 },\n\t\t\tattenuationColor: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\tspecularColor: { value: /*@__PURE__*/ new Color( 1, 1, 1 ) },\n\t\t\tspecularColorMap: { value: null },\n\t\t\tspecularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tspecularIntensity: { value: 1 },\n\t\t\tspecularIntensityMap: { value: null },\n\t\t\tspecularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tanisotropyVector: { value: /*@__PURE__*/ new Vector2() },\n\t\t\tanisotropyMap: { value: null },\n\t\t\tanisotropyMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t}\n\t] ),\n\n\tvertexShader: ShaderChunk.meshphysical_vert,\n\tfragmentShader: ShaderChunk.meshphysical_frag\n\n};\n\nconst _rgb = { r: 0, b: 0, g: 0 };\nconst _e1$1 = /*@__PURE__*/ new Euler();\nconst _m1$1 = /*@__PURE__*/ new Matrix4();\n\nfunction WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, premultipliedAlpha ) {\n\n\tconst clearColor = new Color( 0x000000 );\n\tlet clearAlpha = alpha === true ? 0 : 1;\n\n\tlet planeMesh;\n\tlet boxMesh;\n\n\tlet currentBackground = null;\n\tlet currentBackgroundVersion = 0;\n\tlet currentTonemapping = null;\n\n\tfunction getBackground( scene ) {\n\n\t\tlet background = scene.isScene === true ? scene.background : null;\n\n\t\tif ( background && background.isTexture ) {\n\n\t\t\tconst usePMREM = scene.backgroundBlurriness > 0; // use PMREM if the user wants to blur the background\n\t\t\tbackground = ( usePMREM ? cubeuvmaps : cubemaps ).get( background );\n\n\t\t}\n\n\t\treturn background;\n\n\t}\n\n\tfunction render( scene ) {\n\n\t\tlet forceClear = false;\n\t\tconst background = getBackground( scene );\n\n\t\tif ( background === null ) {\n\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t} else if ( background && background.isColor ) {\n\n\t\t\tsetClear( background, 1 );\n\t\t\tforceClear = true;\n\n\t\t}\n\n\t\tconst environmentBlendMode = renderer.xr.getEnvironmentBlendMode();\n\n\t\tif ( environmentBlendMode === 'additive' ) {\n\n\t\t\tstate.buffers.color.setClear( 0, 0, 0, 1, premultipliedAlpha );\n\n\t\t} else if ( environmentBlendMode === 'alpha-blend' ) {\n\n\t\t\tstate.buffers.color.setClear( 0, 0, 0, 0, premultipliedAlpha );\n\n\t\t}\n\n\t\tif ( renderer.autoClear || forceClear ) {\n\n\t\t\t// buffers might not be writable which is required to ensure a correct clear\n\n\t\t\tstate.buffers.depth.setTest( true );\n\t\t\tstate.buffers.depth.setMask( true );\n\t\t\tstate.buffers.color.setMask( true );\n\n\t\t\trenderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );\n\n\t\t}\n\n\t}\n\n\tfunction addToRenderList( renderList, scene ) {\n\n\t\tconst background = getBackground( scene );\n\n\t\tif ( background && ( background.isCubeTexture || background.mapping === CubeUVReflectionMapping ) ) {\n\n\t\t\tif ( boxMesh === undefined ) {\n\n\t\t\t\tboxMesh = new Mesh(\n\t\t\t\t\tnew BoxGeometry( 1, 1, 1 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundCubeMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.backgroundCube.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.backgroundCube.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.backgroundCube.fragmentShader,\n\t\t\t\t\t\tside: BackSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'normal' );\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'uv' );\n\n\t\t\t\tboxMesh.onBeforeRender = function ( renderer, scene, camera ) {\n\n\t\t\t\t\tthis.matrixWorld.copyPosition( camera.matrixWorld );\n\n\t\t\t\t};\n\n\t\t\t\t// add \"envMap\" material property so the renderer can evaluate it like for built-in materials\n\t\t\t\tObject.defineProperty( boxMesh.material, 'envMap', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.envMap.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( boxMesh );\n\n\t\t\t}\n\n\t\t\t_e1$1.copy( scene.backgroundRotation );\n\n\t\t\t// accommodate left-handed frame\n\t\t\t_e1$1.x *= - 1; _e1$1.y *= - 1; _e1$1.z *= - 1;\n\n\t\t\tif ( background.isCubeTexture && background.isRenderTargetTexture === false ) {\n\n\t\t\t\t// environment maps which are not cube render targets or PMREMs follow a different convention\n\t\t\t\t_e1$1.y *= - 1;\n\t\t\t\t_e1$1.z *= - 1;\n\n\t\t\t}\n\n\t\t\tboxMesh.material.uniforms.envMap.value = background;\n\t\t\tboxMesh.material.uniforms.flipEnvMap.value = ( background.isCubeTexture && background.isRenderTargetTexture === false ) ? - 1 : 1;\n\t\t\tboxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness;\n\t\t\tboxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n\t\t\tboxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4( _m1$1.makeRotationFromEuler( _e1$1 ) );\n\t\t\tboxMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer;\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tboxMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\tboxMesh.layers.enableAll();\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null );\n\n\t\t} else if ( background && background.isTexture ) {\n\n\t\t\tif ( planeMesh === undefined ) {\n\n\t\t\t\tplaneMesh = new Mesh(\n\t\t\t\t\tnew PlaneGeometry( 2, 2 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.background.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.background.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.background.fragmentShader,\n\t\t\t\t\t\tside: FrontSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tplaneMesh.geometry.deleteAttribute( 'normal' );\n\n\t\t\t\t// add \"map\" material property so the renderer can evaluate it like for built-in materials\n\t\t\t\tObject.defineProperty( planeMesh.material, 'map', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.t2D.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( planeMesh );\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.t2D.value = background;\n\t\t\tplaneMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n\t\t\tplaneMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer;\n\n\t\t\tif ( background.matrixAutoUpdate === true ) {\n\n\t\t\t\tbackground.updateMatrix();\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.uvTransform.value.copy( background.matrix );\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tplaneMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\tplaneMesh.layers.enableAll();\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null );\n\n\t\t}\n\n\t}\n\n\tfunction setClear( color, alpha ) {\n\n\t\tcolor.getRGB( _rgb, getUnlitUniformColorSpace( renderer ) );\n\n\t\tstate.buffers.color.setClear( _rgb.r, _rgb.g, _rgb.b, alpha, premultipliedAlpha );\n\n\t}\n\n\treturn {\n\n\t\tgetClearColor: function () {\n\n\t\t\treturn clearColor;\n\n\t\t},\n\t\tsetClearColor: function ( color, alpha = 1 ) {\n\n\t\t\tclearColor.set( color );\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\tgetClearAlpha: function () {\n\n\t\t\treturn clearAlpha;\n\n\t\t},\n\t\tsetClearAlpha: function ( alpha ) {\n\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\trender: render,\n\t\taddToRenderList: addToRenderList\n\n\t};\n\n}\n\nfunction WebGLBindingStates( gl, attributes ) {\n\n\tconst maxVertexAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );\n\n\tconst bindingStates = {};\n\n\tconst defaultState = createBindingState( null );\n\tlet currentState = defaultState;\n\tlet forceUpdate = false;\n\n\tfunction setup( object, material, program, geometry, index ) {\n\n\t\tlet updateBuffers = false;\n\n\t\tconst state = getBindingState( geometry, program, material );\n\n\t\tif ( currentState !== state ) {\n\n\t\t\tcurrentState = state;\n\t\t\tbindVertexArrayObject( currentState.object );\n\n\t\t}\n\n\t\tupdateBuffers = needsUpdate( object, geometry, program, index );\n\n\t\tif ( updateBuffers ) saveCache( object, geometry, program, index );\n\n\t\tif ( index !== null ) {\n\n\t\t\tattributes.update( index, gl.ELEMENT_ARRAY_BUFFER );\n\n\t\t}\n\n\t\tif ( updateBuffers || forceUpdate ) {\n\n\t\t\tforceUpdate = false;\n\n\t\t\tsetupVertexAttributes( object, material, program, geometry );\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tgl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, attributes.get( index ).buffer );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction createVertexArrayObject() {\n\n\t\treturn gl.createVertexArray();\n\n\t}\n\n\tfunction bindVertexArrayObject( vao ) {\n\n\t\treturn gl.bindVertexArray( vao );\n\n\t}\n\n\tfunction deleteVertexArrayObject( vao ) {\n\n\t\treturn gl.deleteVertexArray( vao );\n\n\t}\n\n\tfunction getBindingState( geometry, program, material ) {\n\n\t\tconst wireframe = ( material.wireframe === true );\n\n\t\tlet programMap = bindingStates[ geometry.id ];\n\n\t\tif ( programMap === undefined ) {\n\n\t\t\tprogramMap = {};\n\t\t\tbindingStates[ geometry.id ] = programMap;\n\n\t\t}\n\n\t\tlet stateMap = programMap[ program.id ];\n\n\t\tif ( stateMap === undefined ) {\n\n\t\t\tstateMap = {};\n\t\t\tprogramMap[ program.id ] = stateMap;\n\n\t\t}\n\n\t\tlet state = stateMap[ wireframe ];\n\n\t\tif ( state === undefined ) {\n\n\t\t\tstate = createBindingState( createVertexArrayObject() );\n\t\t\tstateMap[ wireframe ] = state;\n\n\t\t}\n\n\t\treturn state;\n\n\t}\n\n\tfunction createBindingState( vao ) {\n\n\t\tconst newAttributes = [];\n\t\tconst enabledAttributes = [];\n\t\tconst attributeDivisors = [];\n\n\t\tfor ( let i = 0; i < maxVertexAttributes; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\t\t\tenabledAttributes[ i ] = 0;\n\t\t\tattributeDivisors[ i ] = 0;\n\n\t\t}\n\n\t\treturn {\n\n\t\t\t// for backward compatibility on non-VAO support browser\n\t\t\tgeometry: null,\n\t\t\tprogram: null,\n\t\t\twireframe: false,\n\n\t\t\tnewAttributes: newAttributes,\n\t\t\tenabledAttributes: enabledAttributes,\n\t\t\tattributeDivisors: attributeDivisors,\n\t\t\tobject: vao,\n\t\t\tattributes: {},\n\t\t\tindex: null\n\n\t\t};\n\n\t}\n\n\tfunction needsUpdate( object, geometry, program, index ) {\n\n\t\tconst cachedAttributes = currentState.attributes;\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tlet attributesNum = 0;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tconst cachedAttribute = cachedAttributes[ name ];\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( cachedAttribute === undefined ) return true;\n\n\t\t\t\tif ( cachedAttribute.attribute !== geometryAttribute ) return true;\n\n\t\t\t\tif ( geometryAttribute && cachedAttribute.data !== geometryAttribute.data ) return true;\n\n\t\t\t\tattributesNum ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( currentState.attributesNum !== attributesNum ) return true;\n\n\t\tif ( currentState.index !== index ) return true;\n\n\t\treturn false;\n\n\t}\n\n\tfunction saveCache( object, geometry, program, index ) {\n\n\t\tconst cache = {};\n\t\tconst attributes = geometry.attributes;\n\t\tlet attributesNum = 0;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet attribute = attributes[ name ];\n\n\t\t\t\tif ( attribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) attribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) attribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tconst data = {};\n\t\t\t\tdata.attribute = attribute;\n\n\t\t\t\tif ( attribute && attribute.data ) {\n\n\t\t\t\t\tdata.data = attribute.data;\n\n\t\t\t\t}\n\n\t\t\t\tcache[ name ] = data;\n\n\t\t\t\tattributesNum ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tcurrentState.attributes = cache;\n\t\tcurrentState.attributesNum = attributesNum;\n\n\t\tcurrentState.index = index;\n\n\t}\n\n\tfunction initAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\n\t\tfor ( let i = 0, il = newAttributes.length; i < il; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\tfunction enableAttribute( attribute ) {\n\n\t\tenableAttributeAndDivisor( attribute, 0 );\n\n\t}\n\n\tfunction enableAttributeAndDivisor( attribute, meshPerAttribute ) {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\t\tconst attributeDivisors = currentState.attributeDivisors;\n\n\t\tnewAttributes[ attribute ] = 1;\n\n\t\tif ( enabledAttributes[ attribute ] === 0 ) {\n\n\t\t\tgl.enableVertexAttribArray( attribute );\n\t\t\tenabledAttributes[ attribute ] = 1;\n\n\t\t}\n\n\t\tif ( attributeDivisors[ attribute ] !== meshPerAttribute ) {\n\n\t\t\tgl.vertexAttribDivisor( attribute, meshPerAttribute );\n\t\t\tattributeDivisors[ attribute ] = meshPerAttribute;\n\n\t\t}\n\n\t}\n\n\tfunction disableUnusedAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\n\t\tfor ( let i = 0, il = enabledAttributes.length; i < il; i ++ ) {\n\n\t\t\tif ( enabledAttributes[ i ] !== newAttributes[ i ] ) {\n\n\t\t\t\tgl.disableVertexAttribArray( i );\n\t\t\t\tenabledAttributes[ i ] = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction vertexAttribPointer( index, size, type, normalized, stride, offset, integer ) {\n\n\t\tif ( integer === true ) {\n\n\t\t\tgl.vertexAttribIPointer( index, size, type, stride, offset );\n\n\t\t} else {\n\n\t\t\tgl.vertexAttribPointer( index, size, type, normalized, stride, offset );\n\n\t\t}\n\n\t}\n\n\tfunction setupVertexAttributes( object, material, program, geometry ) {\n\n\t\tinitAttributes();\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tconst materialDefaultAttributeValues = material.defaultAttributeValues;\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometryAttribute !== undefined ) {\n\n\t\t\t\t\tconst normalized = geometryAttribute.normalized;\n\t\t\t\t\tconst size = geometryAttribute.itemSize;\n\n\t\t\t\t\tconst attribute = attributes.get( geometryAttribute );\n\n\t\t\t\t\t// TODO Attribute may not be available on context restore\n\n\t\t\t\t\tif ( attribute === undefined ) continue;\n\n\t\t\t\t\tconst buffer = attribute.buffer;\n\t\t\t\t\tconst type = attribute.type;\n\t\t\t\t\tconst bytesPerElement = attribute.bytesPerElement;\n\n\t\t\t\t\t// check for integer attributes\n\n\t\t\t\t\tconst integer = ( type === gl.INT || type === gl.UNSIGNED_INT || geometryAttribute.gpuType === IntType );\n\n\t\t\t\t\tif ( geometryAttribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst data = geometryAttribute.data;\n\t\t\t\t\t\tconst stride = data.stride;\n\t\t\t\t\t\tconst offset = geometryAttribute.offset;\n\n\t\t\t\t\t\tif ( data.isInstancedInterleavedBuffer ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, data.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = data.meshPerAttribute * data.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( gl.ARRAY_BUFFER, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tstride * bytesPerElement,\n\t\t\t\t\t\t\t\t( offset + ( size / programAttribute.locationSize ) * i ) * bytesPerElement,\n\t\t\t\t\t\t\t\tinteger\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( geometryAttribute.isInstancedBufferAttribute ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, geometryAttribute.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( gl.ARRAY_BUFFER, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tsize * bytesPerElement,\n\t\t\t\t\t\t\t\t( size / programAttribute.locationSize ) * i * bytesPerElement,\n\t\t\t\t\t\t\t\tinteger\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( materialDefaultAttributeValues !== undefined ) {\n\n\t\t\t\t\tconst value = materialDefaultAttributeValues[ name ];\n\n\t\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\t\tswitch ( value.length ) {\n\n\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\tgl.vertexAttrib2fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\tgl.vertexAttrib3fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\tgl.vertexAttrib4fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tgl.vertexAttrib1fv( programAttribute.location, value );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tdisableUnusedAttributes();\n\n\t}\n\n\tfunction dispose() {\n\n\t\treset();\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tfor ( const programId in programMap ) {\n\n\t\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t\t}\n\n\t\t\t\tdelete programMap[ programId ];\n\n\t\t\t}\n\n\t\t\tdelete bindingStates[ geometryId ];\n\n\t\t}\n\n\t}\n\n\tfunction releaseStatesOfGeometry( geometry ) {\n\n\t\tif ( bindingStates[ geometry.id ] === undefined ) return;\n\n\t\tconst programMap = bindingStates[ geometry.id ];\n\n\t\tfor ( const programId in programMap ) {\n\n\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ programId ];\n\n\t\t}\n\n\t\tdelete bindingStates[ geometry.id ];\n\n\t}\n\n\tfunction releaseStatesOfProgram( program ) {\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tif ( programMap[ program.id ] === undefined ) continue;\n\n\t\t\tconst stateMap = programMap[ program.id ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ program.id ];\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\tresetDefaultState();\n\t\tforceUpdate = true;\n\n\t\tif ( currentState === defaultState ) return;\n\n\t\tcurrentState = defaultState;\n\t\tbindVertexArrayObject( currentState.object );\n\n\t}\n\n\t// for backward-compatibility\n\n\tfunction resetDefaultState() {\n\n\t\tdefaultState.geometry = null;\n\t\tdefaultState.program = null;\n\t\tdefaultState.wireframe = false;\n\n\t}\n\n\treturn {\n\n\t\tsetup: setup,\n\t\treset: reset,\n\t\tresetDefaultState: resetDefaultState,\n\t\tdispose: dispose,\n\t\treleaseStatesOfGeometry: releaseStatesOfGeometry,\n\t\treleaseStatesOfProgram: releaseStatesOfProgram,\n\n\t\tinitAttributes: initAttributes,\n\t\tenableAttribute: enableAttribute,\n\t\tdisableUnusedAttributes: disableUnusedAttributes\n\n\t};\n\n}\n\nfunction WebGLBufferRenderer( gl, extensions, info ) {\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawArrays( mode, start, count );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tgl.drawArraysInstanced( mode, start, count, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\tfunction renderMultiDraw( starts, counts, drawCount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\t\textension.multiDrawArraysWEBGL( mode, starts, 0, counts, 0, drawCount );\n\n\t\tlet elementCount = 0;\n\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\telementCount += counts[ i ];\n\n\t\t}\n\n\t\tinfo.update( elementCount, mode, 1 );\n\n\t}\n\n\tfunction renderMultiDrawInstances( starts, counts, drawCount, primcount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\n\t\tif ( extension === null ) {\n\n\t\t\tfor ( let i = 0; i < starts.length; i ++ ) {\n\n\t\t\t\trenderInstances( starts[ i ], counts[ i ], primcount[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\textension.multiDrawArraysInstancedWEBGL( mode, starts, 0, counts, 0, primcount, 0, drawCount );\n\n\t\t\tlet elementCount = 0;\n\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\telementCount += counts[ i ] * primcount[ i ];\n\n\t\t\t}\n\n\t\t\tinfo.update( elementCount, mode, 1 );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\tthis.renderMultiDraw = renderMultiDraw;\n\tthis.renderMultiDrawInstances = renderMultiDrawInstances;\n\n}\n\nfunction WebGLCapabilities( gl, extensions, parameters, utils ) {\n\n\tlet maxAnisotropy;\n\n\tfunction getMaxAnisotropy() {\n\n\t\tif ( maxAnisotropy !== undefined ) return maxAnisotropy;\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\n\t\t\tmaxAnisotropy = gl.getParameter( extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT );\n\n\t\t} else {\n\n\t\t\tmaxAnisotropy = 0;\n\n\t\t}\n\n\t\treturn maxAnisotropy;\n\n\t}\n\n\tfunction textureFormatReadable( textureFormat ) {\n\n\t\tif ( textureFormat !== RGBAFormat && utils.convert( textureFormat ) !== gl.getParameter( gl.IMPLEMENTATION_COLOR_READ_FORMAT ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfunction textureTypeReadable( textureType ) {\n\n\t\tconst halfFloatSupportedByExt = ( textureType === HalfFloatType ) && ( extensions.has( 'EXT_color_buffer_half_float' ) || extensions.has( 'EXT_color_buffer_float' ) );\n\n\t\tif ( textureType !== UnsignedByteType && utils.convert( textureType ) !== gl.getParameter( gl.IMPLEMENTATION_COLOR_READ_TYPE ) && // Edge and Chrome Mac < 52 (#9513)\n\t\t\ttextureType !== FloatType && ! halfFloatSupportedByExt ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfunction getMaxPrecision( precision ) {\n\n\t\tif ( precision === 'highp' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.HIGH_FLOAT ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.HIGH_FLOAT ).precision > 0 ) {\n\n\t\t\t\treturn 'highp';\n\n\t\t\t}\n\n\t\t\tprecision = 'mediump';\n\n\t\t}\n\n\t\tif ( precision === 'mediump' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.MEDIUM_FLOAT ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT ).precision > 0 ) {\n\n\t\t\t\treturn 'mediump';\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn 'lowp';\n\n\t}\n\n\tlet precision = parameters.precision !== undefined ? parameters.precision : 'highp';\n\tconst maxPrecision = getMaxPrecision( precision );\n\n\tif ( maxPrecision !== precision ) {\n\n\t\tconsole.warn( 'THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.' );\n\t\tprecision = maxPrecision;\n\n\t}\n\n\tconst logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n\tconst reverseDepthBuffer = parameters.reverseDepthBuffer === true && extensions.has( 'EXT_clip_control' );\n\n\tconst maxTextures = gl.getParameter( gl.MAX_TEXTURE_IMAGE_UNITS );\n\tconst maxVertexTextures = gl.getParameter( gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS );\n\tconst maxTextureSize = gl.getParameter( gl.MAX_TEXTURE_SIZE );\n\tconst maxCubemapSize = gl.getParameter( gl.MAX_CUBE_MAP_TEXTURE_SIZE );\n\n\tconst maxAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );\n\tconst maxVertexUniforms = gl.getParameter( gl.MAX_VERTEX_UNIFORM_VECTORS );\n\tconst maxVaryings = gl.getParameter( gl.MAX_VARYING_VECTORS );\n\tconst maxFragmentUniforms = gl.getParameter( gl.MAX_FRAGMENT_UNIFORM_VECTORS );\n\n\tconst vertexTextures = maxVertexTextures > 0;\n\n\tconst maxSamples = gl.getParameter( gl.MAX_SAMPLES );\n\n\treturn {\n\n\t\tisWebGL2: true, // keeping this for backwards compatibility\n\n\t\tgetMaxAnisotropy: getMaxAnisotropy,\n\t\tgetMaxPrecision: getMaxPrecision,\n\n\t\ttextureFormatReadable: textureFormatReadable,\n\t\ttextureTypeReadable: textureTypeReadable,\n\n\t\tprecision: precision,\n\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\t\treverseDepthBuffer: reverseDepthBuffer,\n\n\t\tmaxTextures: maxTextures,\n\t\tmaxVertexTextures: maxVertexTextures,\n\t\tmaxTextureSize: maxTextureSize,\n\t\tmaxCubemapSize: maxCubemapSize,\n\n\t\tmaxAttributes: maxAttributes,\n\t\tmaxVertexUniforms: maxVertexUniforms,\n\t\tmaxVaryings: maxVaryings,\n\t\tmaxFragmentUniforms: maxFragmentUniforms,\n\n\t\tvertexTextures: vertexTextures,\n\n\t\tmaxSamples: maxSamples\n\n\t};\n\n}\n\nfunction WebGLClipping( properties ) {\n\n\tconst scope = this;\n\n\tlet globalState = null,\n\t\tnumGlobalPlanes = 0,\n\t\tlocalClippingEnabled = false,\n\t\trenderingShadows = false;\n\n\tconst plane = new Plane(),\n\t\tviewNormalMatrix = new Matrix3(),\n\n\t\tuniform = { value: null, needsUpdate: false };\n\n\tthis.uniform = uniform;\n\tthis.numPlanes = 0;\n\tthis.numIntersection = 0;\n\n\tthis.init = function ( planes, enableLocalClipping ) {\n\n\t\tconst enabled =\n\t\t\tplanes.length !== 0 ||\n\t\t\tenableLocalClipping ||\n\t\t\t// enable state of previous frame - the clipping code has to\n\t\t\t// run another frame in order to reset the state:\n\t\t\tnumGlobalPlanes !== 0 ||\n\t\t\tlocalClippingEnabled;\n\n\t\tlocalClippingEnabled = enableLocalClipping;\n\n\t\tnumGlobalPlanes = planes.length;\n\n\t\treturn enabled;\n\n\t};\n\n\tthis.beginShadows = function () {\n\n\t\trenderingShadows = true;\n\t\tprojectPlanes( null );\n\n\t};\n\n\tthis.endShadows = function () {\n\n\t\trenderingShadows = false;\n\n\t};\n\n\tthis.setGlobalState = function ( planes, camera ) {\n\n\t\tglobalState = projectPlanes( planes, camera, 0 );\n\n\t};\n\n\tthis.setState = function ( material, camera, useCache ) {\n\n\t\tconst planes = material.clippingPlanes,\n\t\t\tclipIntersection = material.clipIntersection,\n\t\t\tclipShadows = material.clipShadows;\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tif ( ! localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && ! clipShadows ) {\n\n\t\t\t// there's no local clipping\n\n\t\t\tif ( renderingShadows ) {\n\n\t\t\t\t// there's no global clipping\n\n\t\t\t\tprojectPlanes( null );\n\n\t\t\t} else {\n\n\t\t\t\tresetGlobalState();\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst nGlobal = renderingShadows ? 0 : numGlobalPlanes,\n\t\t\t\tlGlobal = nGlobal * 4;\n\n\t\t\tlet dstArray = materialProperties.clippingState || null;\n\n\t\t\tuniform.value = dstArray; // ensure unique state\n\n\t\t\tdstArray = projectPlanes( planes, camera, lGlobal, useCache );\n\n\t\t\tfor ( let i = 0; i !== lGlobal; ++ i ) {\n\n\t\t\t\tdstArray[ i ] = globalState[ i ];\n\n\t\t\t}\n\n\t\t\tmaterialProperties.clippingState = dstArray;\n\t\t\tthis.numIntersection = clipIntersection ? this.numPlanes : 0;\n\t\t\tthis.numPlanes += nGlobal;\n\n\t\t}\n\n\n\t};\n\n\tfunction resetGlobalState() {\n\n\t\tif ( uniform.value !== globalState ) {\n\n\t\t\tuniform.value = globalState;\n\t\t\tuniform.needsUpdate = numGlobalPlanes > 0;\n\n\t\t}\n\n\t\tscope.numPlanes = numGlobalPlanes;\n\t\tscope.numIntersection = 0;\n\n\t}\n\n\tfunction projectPlanes( planes, camera, dstOffset, skipTransform ) {\n\n\t\tconst nPlanes = planes !== null ? planes.length : 0;\n\t\tlet dstArray = null;\n\n\t\tif ( nPlanes !== 0 ) {\n\n\t\t\tdstArray = uniform.value;\n\n\t\t\tif ( skipTransform !== true || dstArray === null ) {\n\n\t\t\t\tconst flatSize = dstOffset + nPlanes * 4,\n\t\t\t\t\tviewMatrix = camera.matrixWorldInverse;\n\n\t\t\t\tviewNormalMatrix.getNormalMatrix( viewMatrix );\n\n\t\t\t\tif ( dstArray === null || dstArray.length < flatSize ) {\n\n\t\t\t\t\tdstArray = new Float32Array( flatSize );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, i4 = dstOffset; i !== nPlanes; ++ i, i4 += 4 ) {\n\n\t\t\t\t\tplane.copy( planes[ i ] ).applyMatrix4( viewMatrix, viewNormalMatrix );\n\n\t\t\t\t\tplane.normal.toArray( dstArray, i4 );\n\t\t\t\t\tdstArray[ i4 + 3 ] = plane.constant;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tuniform.value = dstArray;\n\t\t\tuniform.needsUpdate = true;\n\n\t\t}\n\n\t\tscope.numPlanes = nPlanes;\n\t\tscope.numIntersection = 0;\n\n\t\treturn dstArray;\n\n\t}\n\n}\n\nfunction WebGLCubeMaps( renderer ) {\n\n\tlet cubemaps = new WeakMap();\n\n\tfunction mapTextureMapping( texture, mapping ) {\n\n\t\tif ( mapping === EquirectangularReflectionMapping ) {\n\n\t\t\ttexture.mapping = CubeReflectionMapping;\n\n\t\t} else if ( mapping === EquirectangularRefractionMapping ) {\n\n\t\t\ttexture.mapping = CubeRefractionMapping;\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tif ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping ) {\n\n\t\t\t\tif ( cubemaps.has( texture ) ) {\n\n\t\t\t\t\tconst cubemap = cubemaps.get( texture ).texture;\n\t\t\t\t\treturn mapTextureMapping( cubemap, texture.mapping );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\tif ( image && image.height > 0 ) {\n\n\t\t\t\t\t\tconst renderTarget = new WebGLCubeRenderTarget( image.height );\n\t\t\t\t\t\trenderTarget.fromEquirectangularTexture( renderer, texture );\n\t\t\t\t\t\tcubemaps.set( texture, renderTarget );\n\n\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\treturn mapTextureMapping( renderTarget.texture, texture.mapping );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemap = cubemaps.get( texture );\n\n\t\tif ( cubemap !== undefined ) {\n\n\t\t\tcubemaps.delete( texture );\n\t\t\tcubemap.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubemaps = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nclass OrthographicCamera extends Camera {\n\n\tconstructor( left = - 1, right = 1, top = 1, bottom = - 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isOrthographicCamera = true;\n\n\t\tthis.type = 'OrthographicCamera';\n\n\t\tthis.zoom = 1;\n\t\tthis.view = null;\n\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.top = top;\n\t\tthis.bottom = bottom;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.left = source.left;\n\t\tthis.right = source.right;\n\t\tthis.top = source.top;\n\t\tthis.bottom = source.bottom;\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\n\t\tthis.zoom = source.zoom;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\treturn this;\n\n\t}\n\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst dx = ( this.right - this.left ) / ( 2 * this.zoom );\n\t\tconst dy = ( this.top - this.bottom ) / ( 2 * this.zoom );\n\t\tconst cx = ( this.right + this.left ) / 2;\n\t\tconst cy = ( this.top + this.bottom ) / 2;\n\n\t\tlet left = cx - dx;\n\t\tlet right = cx + dx;\n\t\tlet top = cy + dy;\n\t\tlet bottom = cy - dy;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst scaleW = ( this.right - this.left ) / this.view.fullWidth / this.zoom;\n\t\t\tconst scaleH = ( this.top - this.bottom ) / this.view.fullHeight / this.zoom;\n\n\t\t\tleft += scaleW * this.view.offsetX;\n\t\t\tright = left + scaleW * this.view.width;\n\t\t\ttop -= scaleH * this.view.offsetY;\n\t\t\tbottom = top - scaleH * this.view.height;\n\n\t\t}\n\n\t\tthis.projectionMatrix.makeOrthographic( left, right, top, bottom, this.near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.zoom = this.zoom;\n\t\tdata.object.left = this.left;\n\t\tdata.object.right = this.right;\n\t\tdata.object.top = this.top;\n\t\tdata.object.bottom = this.bottom;\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst LOD_MIN = 4;\n\n// The standard deviations (radians) associated with the extra mips. These are\n// chosen to approximate a Trowbridge-Reitz distribution function times the\n// geometric shadowing function. These sigma values squared must match the\n// variance #defines in cube_uv_reflection_fragment.glsl.js.\nconst EXTRA_LOD_SIGMA = [ 0.125, 0.215, 0.35, 0.446, 0.526, 0.582 ];\n\n// The maximum length of the blur for loop. Smaller sigmas will use fewer\n// samples and exit early, but not recompile the shader.\nconst MAX_SAMPLES = 20;\n\nconst _flatCamera = /*@__PURE__*/ new OrthographicCamera();\nconst _clearColor = /*@__PURE__*/ new Color();\nlet _oldTarget = null;\nlet _oldActiveCubeFace = 0;\nlet _oldActiveMipmapLevel = 0;\nlet _oldXrEnabled = false;\n\n// Golden Ratio\nconst PHI = ( 1 + Math.sqrt( 5 ) ) / 2;\nconst INV_PHI = 1 / PHI;\n\n// Vertices of a dodecahedron (except the opposites, which represent the\n// same axis), used as axis directions evenly spread on a sphere.\nconst _axisDirections = [\n\t/*@__PURE__*/ new Vector3( - PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( - INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, - INV_PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, INV_PHI ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, 1 ) ];\n\n/**\n * This class generates a Prefiltered, Mipmapped Radiance Environment Map\n * (PMREM) from a cubeMap environment texture. This allows different levels of\n * blur to be quickly accessed based on material roughness. It is packed into a\n * special CubeUV format that allows us to perform custom interpolation so that\n * we can support nonlinear formats such as RGBE. Unlike a traditional mipmap\n * chain, it only goes down to the LOD_MIN level (above), and then creates extra\n * even more filtered 'mips' at the same LOD_MIN resolution, associated with\n * higher roughness levels. In this way we maintain resolution to smoothly\n * interpolate diffuse lighting while limiting sampling computation.\n *\n * Paper: Fast, Accurate Image-Based Lighting\n * https://drive.google.com/file/d/15y8r_UpKlU9SvV4ILb0C3qCPecS8pvLz/view\n*/\n\nclass PMREMGenerator {\n\n\tconstructor( renderer ) {\n\n\t\tthis._renderer = renderer;\n\t\tthis._pingPongRenderTarget = null;\n\n\t\tthis._lodMax = 0;\n\t\tthis._cubeSize = 0;\n\t\tthis._lodPlanes = [];\n\t\tthis._sizeLods = [];\n\t\tthis._sigmas = [];\n\n\t\tthis._blurMaterial = null;\n\t\tthis._cubemapMaterial = null;\n\t\tthis._equirectMaterial = null;\n\n\t\tthis._compileMaterial( this._blurMaterial );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from a supplied Scene, which can be faster than using an\n\t * image if networking bandwidth is low. Optional sigma specifies a blur radius\n\t * in radians to be applied to the scene before PMREM generation. Optional near\n\t * and far planes ensure the scene is rendered in its entirety (the cubeCamera\n\t * is placed at the origin).\n\t */\n\tfromScene( scene, sigma = 0, near = 0.1, far = 100 ) {\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\t_oldActiveCubeFace = this._renderer.getActiveCubeFace();\n\t\t_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n\t\t_oldXrEnabled = this._renderer.xr.enabled;\n\n\t\tthis._renderer.xr.enabled = false;\n\n\t\tthis._setSize( 256 );\n\n\t\tconst cubeUVRenderTarget = this._allocateTargets();\n\t\tcubeUVRenderTarget.depthBuffer = true;\n\n\t\tthis._sceneToCubeUV( scene, near, far, cubeUVRenderTarget );\n\n\t\tif ( sigma > 0 ) {\n\n\t\t\tthis._blur( cubeUVRenderTarget, 0, 0, sigma );\n\n\t\t}\n\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an equirectangular texture, which can be either LDR\n\t * or HDR. The ideal input image size is 1k (1024 x 512),\n\t * as this matches best with the 256 x 256 cubemap output.\n\t * The smallest supported equirectangular image size is 64 x 32.\n\t */\n\tfromEquirectangular( equirectangular, renderTarget = null ) {\n\n\t\treturn this._fromTexture( equirectangular, renderTarget );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an cubemap texture, which can be either LDR\n\t * or HDR. The ideal input cube size is 256 x 256,\n\t * as this matches best with the 256 x 256 cubemap output.\n\t * The smallest supported cube size is 16 x 16.\n\t */\n\tfromCubemap( cubemap, renderTarget = null ) {\n\n\t\treturn this._fromTexture( cubemap, renderTarget );\n\n\t}\n\n\t/**\n\t * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileCubemapShader() {\n\n\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\t\t\tthis._compileMaterial( this._cubemapMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileEquirectangularShader() {\n\n\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\t\t\tthis._compileMaterial( this._equirectMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\n\t * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\n\t * one of them will cause any others to also become unusable.\n\t */\n\tdispose() {\n\n\t\tthis._dispose();\n\n\t\tif ( this._cubemapMaterial !== null ) this._cubemapMaterial.dispose();\n\t\tif ( this._equirectMaterial !== null ) this._equirectMaterial.dispose();\n\n\t}\n\n\t// private interface\n\n\t_setSize( cubeSize ) {\n\n\t\tthis._lodMax = Math.floor( Math.log2( cubeSize ) );\n\t\tthis._cubeSize = Math.pow( 2, this._lodMax );\n\n\t}\n\n\t_dispose() {\n\n\t\tif ( this._blurMaterial !== null ) this._blurMaterial.dispose();\n\n\t\tif ( this._pingPongRenderTarget !== null ) this._pingPongRenderTarget.dispose();\n\n\t\tfor ( let i = 0; i < this._lodPlanes.length; i ++ ) {\n\n\t\t\tthis._lodPlanes[ i ].dispose();\n\n\t\t}\n\n\t}\n\n\t_cleanup( outputTarget ) {\n\n\t\tthis._renderer.setRenderTarget( _oldTarget, _oldActiveCubeFace, _oldActiveMipmapLevel );\n\t\tthis._renderer.xr.enabled = _oldXrEnabled;\n\n\t\toutputTarget.scissorTest = false;\n\t\t_setViewport( outputTarget, 0, 0, outputTarget.width, outputTarget.height );\n\n\t}\n\n\t_fromTexture( texture, renderTarget ) {\n\n\t\tif ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping ) {\n\n\t\t\tthis._setSize( texture.image.length === 0 ? 16 : ( texture.image[ 0 ].width || texture.image[ 0 ].image.width ) );\n\n\t\t} else { // Equirectangular\n\n\t\t\tthis._setSize( texture.image.width / 4 );\n\n\t\t}\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\t_oldActiveCubeFace = this._renderer.getActiveCubeFace();\n\t\t_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n\t\t_oldXrEnabled = this._renderer.xr.enabled;\n\n\t\tthis._renderer.xr.enabled = false;\n\n\t\tconst cubeUVRenderTarget = renderTarget || this._allocateTargets();\n\t\tthis._textureToCubeUV( texture, cubeUVRenderTarget );\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_allocateTargets() {\n\n\t\tconst width = 3 * Math.max( this._cubeSize, 16 * 7 );\n\t\tconst height = 4 * this._cubeSize;\n\n\t\tconst params = {\n\t\t\tmagFilter: LinearFilter,\n\t\t\tminFilter: LinearFilter,\n\t\t\tgenerateMipmaps: false,\n\t\t\ttype: HalfFloatType,\n\t\t\tformat: RGBAFormat,\n\t\t\tcolorSpace: LinearSRGBColorSpace,\n\t\t\tdepthBuffer: false\n\t\t};\n\n\t\tconst cubeUVRenderTarget = _createRenderTarget( width, height, params );\n\n\t\tif ( this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width || this._pingPongRenderTarget.height !== height ) {\n\n\t\t\tif ( this._pingPongRenderTarget !== null ) {\n\n\t\t\t\tthis._dispose();\n\n\t\t\t}\n\n\t\t\tthis._pingPongRenderTarget = _createRenderTarget( width, height, params );\n\n\t\t\tconst { _lodMax } = this;\n\t\t\t( { sizeLods: this._sizeLods, lodPlanes: this._lodPlanes, sigmas: this._sigmas } = _createPlanes( _lodMax ) );\n\n\t\t\tthis._blurMaterial = _getBlurShader( _lodMax, width, height );\n\n\t\t}\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_compileMaterial( material ) {\n\n\t\tconst tmpMesh = new Mesh( this._lodPlanes[ 0 ], material );\n\t\tthis._renderer.compile( tmpMesh, _flatCamera );\n\n\t}\n\n\t_sceneToCubeUV( scene, near, far, cubeUVRenderTarget ) {\n\n\t\tconst fov = 90;\n\t\tconst aspect = 1;\n\t\tconst cubeCamera = new PerspectiveCamera( fov, aspect, near, far );\n\t\tconst upSign = [ 1, - 1, 1, 1, 1, 1 ];\n\t\tconst forwardSign = [ 1, 1, 1, - 1, - 1, - 1 ];\n\t\tconst renderer = this._renderer;\n\n\t\tconst originalAutoClear = renderer.autoClear;\n\t\tconst toneMapping = renderer.toneMapping;\n\t\trenderer.getClearColor( _clearColor );\n\n\t\trenderer.toneMapping = NoToneMapping;\n\t\trenderer.autoClear = false;\n\n\t\tconst backgroundMaterial = new MeshBasicMaterial( {\n\t\t\tname: 'PMREM.Background',\n\t\t\tside: BackSide,\n\t\t\tdepthWrite: false,\n\t\t\tdepthTest: false,\n\t\t} );\n\n\t\tconst backgroundBox = new Mesh( new BoxGeometry(), backgroundMaterial );\n\n\t\tlet useSolidColor = false;\n\t\tconst background = scene.background;\n\n\t\tif ( background ) {\n\n\t\t\tif ( background.isColor ) {\n\n\t\t\t\tbackgroundMaterial.color.copy( background );\n\t\t\t\tscene.background = null;\n\t\t\t\tuseSolidColor = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tbackgroundMaterial.color.copy( _clearColor );\n\t\t\tuseSolidColor = true;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst col = i % 3;\n\n\t\t\tif ( col === 0 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( forwardSign[ i ], 0, 0 );\n\n\t\t\t} else if ( col === 1 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, 0, upSign[ i ] );\n\t\t\t\tcubeCamera.lookAt( 0, forwardSign[ i ], 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( 0, 0, forwardSign[ i ] );\n\n\t\t\t}\n\n\t\t\tconst size = this._cubeSize;\n\n\t\t\t_setViewport( cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size );\n\n\t\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\n\t\t\tif ( useSolidColor ) {\n\n\t\t\t\trenderer.render( backgroundBox, cubeCamera );\n\n\t\t\t}\n\n\t\t\trenderer.render( scene, cubeCamera );\n\n\t\t}\n\n\t\tbackgroundBox.geometry.dispose();\n\t\tbackgroundBox.material.dispose();\n\n\t\trenderer.toneMapping = toneMapping;\n\t\trenderer.autoClear = originalAutoClear;\n\t\tscene.background = background;\n\n\t}\n\n\t_textureToCubeUV( texture, cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\n\t\tconst isCubeTexture = ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping );\n\n\t\tif ( isCubeTexture ) {\n\n\t\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\n\t\t\t}\n\n\t\t\tthis._cubemapMaterial.uniforms.flipEnvMap.value = ( texture.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t} else {\n\n\t\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;\n\t\tconst mesh = new Mesh( this._lodPlanes[ 0 ], material );\n\n\t\tconst uniforms = material.uniforms;\n\n\t\tuniforms[ 'envMap' ].value = texture;\n\n\t\tconst size = this._cubeSize;\n\n\t\t_setViewport( cubeUVRenderTarget, 0, 0, 3 * size, 2 * size );\n\n\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\t\trenderer.render( mesh, _flatCamera );\n\n\t}\n\n\t_applyPMREM( cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst autoClear = renderer.autoClear;\n\t\trenderer.autoClear = false;\n\t\tconst n = this._lodPlanes.length;\n\n\t\tfor ( let i = 1; i < n; i ++ ) {\n\n\t\t\tconst sigma = Math.sqrt( this._sigmas[ i ] * this._sigmas[ i ] - this._sigmas[ i - 1 ] * this._sigmas[ i - 1 ] );\n\n\t\t\tconst poleAxis = _axisDirections[ ( n - i - 1 ) % _axisDirections.length ];\n\n\t\t\tthis._blur( cubeUVRenderTarget, i - 1, i, sigma, poleAxis );\n\n\t\t}\n\n\t\trenderer.autoClear = autoClear;\n\n\t}\n\n\t/**\n\t * This is a two-pass Gaussian blur for a cubemap. Normally this is done\n\t * vertically and horizontally, but this breaks down on a cube. Here we apply\n\t * the blur latitudinally (around the poles), and then longitudinally (towards\n\t * the poles) to approximate the orthogonally-separable blur. It is least\n\t * accurate at the poles, but still does a decent job.\n\t */\n\t_blur( cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis ) {\n\n\t\tconst pingPongRenderTarget = this._pingPongRenderTarget;\n\n\t\tthis._halfBlur(\n\t\t\tcubeUVRenderTarget,\n\t\t\tpingPongRenderTarget,\n\t\t\tlodIn,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'latitudinal',\n\t\t\tpoleAxis );\n\n\t\tthis._halfBlur(\n\t\t\tpingPongRenderTarget,\n\t\t\tcubeUVRenderTarget,\n\t\t\tlodOut,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'longitudinal',\n\t\t\tpoleAxis );\n\n\t}\n\n\t_halfBlur( targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst blurMaterial = this._blurMaterial;\n\n\t\tif ( direction !== 'latitudinal' && direction !== 'longitudinal' ) {\n\n\t\t\tconsole.error(\n\t\t\t\t'blur direction must be either latitudinal or longitudinal!' );\n\n\t\t}\n\n\t\t// Number of standard deviations at which to cut off the discrete approximation.\n\t\tconst STANDARD_DEVIATIONS = 3;\n\n\t\tconst blurMesh = new Mesh( this._lodPlanes[ lodOut ], blurMaterial );\n\t\tconst blurUniforms = blurMaterial.uniforms;\n\n\t\tconst pixels = this._sizeLods[ lodIn ] - 1;\n\t\tconst radiansPerPixel = isFinite( sigmaRadians ) ? Math.PI / ( 2 * pixels ) : 2 * Math.PI / ( 2 * MAX_SAMPLES - 1 );\n\t\tconst sigmaPixels = sigmaRadians / radiansPerPixel;\n\t\tconst samples = isFinite( sigmaRadians ) ? 1 + Math.floor( STANDARD_DEVIATIONS * sigmaPixels ) : MAX_SAMPLES;\n\n\t\tif ( samples > MAX_SAMPLES ) {\n\n\t\t\tconsole.warn( `sigmaRadians, ${\n\t\t\t\tsigmaRadians}, is too large and will clip, as it requested ${\n\t\t\t\tsamples} samples when the maximum is set to ${MAX_SAMPLES}` );\n\n\t\t}\n\n\t\tconst weights = [];\n\t\tlet sum = 0;\n\n\t\tfor ( let i = 0; i < MAX_SAMPLES; ++ i ) {\n\n\t\t\tconst x = i / sigmaPixels;\n\t\t\tconst weight = Math.exp( - x * x / 2 );\n\t\t\tweights.push( weight );\n\n\t\t\tif ( i === 0 ) {\n\n\t\t\t\tsum += weight;\n\n\t\t\t} else if ( i < samples ) {\n\n\t\t\t\tsum += 2 * weight;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let i = 0; i < weights.length; i ++ ) {\n\n\t\t\tweights[ i ] = weights[ i ] / sum;\n\n\t\t}\n\n\t\tblurUniforms[ 'envMap' ].value = targetIn.texture;\n\t\tblurUniforms[ 'samples' ].value = samples;\n\t\tblurUniforms[ 'weights' ].value = weights;\n\t\tblurUniforms[ 'latitudinal' ].value = direction === 'latitudinal';\n\n\t\tif ( poleAxis ) {\n\n\t\t\tblurUniforms[ 'poleAxis' ].value = poleAxis;\n\n\t\t}\n\n\t\tconst { _lodMax } = this;\n\t\tblurUniforms[ 'dTheta' ].value = radiansPerPixel;\n\t\tblurUniforms[ 'mipInt' ].value = _lodMax - lodIn;\n\n\t\tconst outputSize = this._sizeLods[ lodOut ];\n\t\tconst x = 3 * outputSize * ( lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0 );\n\t\tconst y = 4 * ( this._cubeSize - outputSize );\n\n\t\t_setViewport( targetOut, x, y, 3 * outputSize, 2 * outputSize );\n\t\trenderer.setRenderTarget( targetOut );\n\t\trenderer.render( blurMesh, _flatCamera );\n\n\t}\n\n}\n\n\n\nfunction _createPlanes( lodMax ) {\n\n\tconst lodPlanes = [];\n\tconst sizeLods = [];\n\tconst sigmas = [];\n\n\tlet lod = lodMax;\n\n\tconst totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n\n\tfor ( let i = 0; i < totalLods; i ++ ) {\n\n\t\tconst sizeLod = Math.pow( 2, lod );\n\t\tsizeLods.push( sizeLod );\n\t\tlet sigma = 1.0 / sizeLod;\n\n\t\tif ( i > lodMax - LOD_MIN ) {\n\n\t\t\tsigma = EXTRA_LOD_SIGMA[ i - lodMax + LOD_MIN - 1 ];\n\n\t\t} else if ( i === 0 ) {\n\n\t\t\tsigma = 0;\n\n\t\t}\n\n\t\tsigmas.push( sigma );\n\n\t\tconst texelSize = 1.0 / ( sizeLod - 2 );\n\t\tconst min = - texelSize;\n\t\tconst max = 1 + texelSize;\n\t\tconst uv1 = [ min, min, max, min, max, max, min, min, max, max, min, max ];\n\n\t\tconst cubeFaces = 6;\n\t\tconst vertices = 6;\n\t\tconst positionSize = 3;\n\t\tconst uvSize = 2;\n\t\tconst faceIndexSize = 1;\n\n\t\tconst position = new Float32Array( positionSize * vertices * cubeFaces );\n\t\tconst uv = new Float32Array( uvSize * vertices * cubeFaces );\n\t\tconst faceIndex = new Float32Array( faceIndexSize * vertices * cubeFaces );\n\n\t\tfor ( let face = 0; face < cubeFaces; face ++ ) {\n\n\t\t\tconst x = ( face % 3 ) * 2 / 3 - 1;\n\t\t\tconst y = face > 2 ? 0 : - 1;\n\t\t\tconst coordinates = [\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y + 1, 0\n\t\t\t];\n\t\t\tposition.set( coordinates, positionSize * vertices * face );\n\t\t\tuv.set( uv1, uvSize * vertices * face );\n\t\t\tconst fill = [ face, face, face, face, face, face ];\n\t\t\tfaceIndex.set( fill, faceIndexSize * vertices * face );\n\n\t\t}\n\n\t\tconst planes = new BufferGeometry();\n\t\tplanes.setAttribute( 'position', new BufferAttribute( position, positionSize ) );\n\t\tplanes.setAttribute( 'uv', new BufferAttribute( uv, uvSize ) );\n\t\tplanes.setAttribute( 'faceIndex', new BufferAttribute( faceIndex, faceIndexSize ) );\n\t\tlodPlanes.push( planes );\n\n\t\tif ( lod > LOD_MIN ) {\n\n\t\t\tlod --;\n\n\t\t}\n\n\t}\n\n\treturn { lodPlanes, sizeLods, sigmas };\n\n}\n\nfunction _createRenderTarget( width, height, params ) {\n\n\tconst cubeUVRenderTarget = new WebGLRenderTarget( width, height, params );\n\tcubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\n\tcubeUVRenderTarget.texture.name = 'PMREM.cubeUv';\n\tcubeUVRenderTarget.scissorTest = true;\n\treturn cubeUVRenderTarget;\n\n}\n\nfunction _setViewport( target, x, y, width, height ) {\n\n\ttarget.viewport.set( x, y, width, height );\n\ttarget.scissor.set( x, y, width, height );\n\n}\n\nfunction _getBlurShader( lodMax, width, height ) {\n\n\tconst weights = new Float32Array( MAX_SAMPLES );\n\tconst poleAxis = new Vector3( 0, 1, 0 );\n\tconst shaderMaterial = new ShaderMaterial( {\n\n\t\tname: 'SphericalGaussianBlur',\n\n\t\tdefines: {\n\t\t\t'n': MAX_SAMPLES,\n\t\t\t'CUBEUV_TEXEL_WIDTH': 1.0 / width,\n\t\t\t'CUBEUV_TEXEL_HEIGHT': 1.0 / height,\n\t\t\t'CUBEUV_MAX_MIP': `${lodMax}.0`,\n\t\t},\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'samples': { value: 1 },\n\t\t\t'weights': { value: weights },\n\t\t\t'latitudinal': { value: false },\n\t\t\t'dTheta': { value: 0 },\n\t\t\t'mipInt': { value: 0 },\n\t\t\t'poleAxis': { value: poleAxis }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n\treturn shaderMaterial;\n\n}\n\nfunction _getEquirectMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'EquirectangularToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCubemapMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'CubemapToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'flipEnvMap': { value: - 1 }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCommonVertexShader() {\n\n\treturn /* glsl */`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`;\n\n}\n\nfunction WebGLCubeUVMaps( renderer ) {\n\n\tlet cubeUVmaps = new WeakMap();\n\n\tlet pmremGenerator = null;\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tconst isEquirectMap = ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping );\n\t\t\tconst isCubeMap = ( mapping === CubeReflectionMapping || mapping === CubeRefractionMapping );\n\n\t\t\t// equirect/cube map to cubeUV conversion\n\n\t\t\tif ( isEquirectMap || isCubeMap ) {\n\n\t\t\t\tlet renderTarget = cubeUVmaps.get( texture );\n\n\t\t\t\tconst currentPMREMVersion = renderTarget !== undefined ? renderTarget.texture.pmremVersion : 0;\n\n\t\t\t\tif ( texture.isRenderTargetTexture && texture.pmremVersion !== currentPMREMVersion ) {\n\n\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture, renderTarget ) : pmremGenerator.fromCubemap( texture, renderTarget );\n\t\t\t\t\trenderTarget.texture.pmremVersion = texture.pmremVersion;\n\n\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( renderTarget !== undefined ) {\n\n\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\t\tif ( ( isEquirectMap && image && image.height > 0 ) || ( isCubeMap && image && isCubeTextureComplete( image ) ) ) {\n\n\t\t\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture ) : pmremGenerator.fromCubemap( texture );\n\t\t\t\t\t\t\trenderTarget.texture.pmremVersion = texture.pmremVersion;\n\n\t\t\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction isCubeTextureComplete( image ) {\n\n\t\tlet count = 0;\n\t\tconst length = 6;\n\n\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\tif ( image[ i ] !== undefined ) count ++;\n\n\t\t}\n\n\t\treturn count === length;\n\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemapUV = cubeUVmaps.get( texture );\n\n\t\tif ( cubemapUV !== undefined ) {\n\n\t\t\tcubeUVmaps.delete( texture );\n\t\t\tcubemapUV.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubeUVmaps = new WeakMap();\n\n\t\tif ( pmremGenerator !== null ) {\n\n\t\t\tpmremGenerator.dispose();\n\t\t\tpmremGenerator = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLExtensions( gl ) {\n\n\tconst extensions = {};\n\n\tfunction getExtension( name ) {\n\n\t\tif ( extensions[ name ] !== undefined ) {\n\n\t\t\treturn extensions[ name ];\n\n\t\t}\n\n\t\tlet extension;\n\n\t\tswitch ( name ) {\n\n\t\t\tcase 'WEBGL_depth_texture':\n\t\t\t\textension = gl.getExtension( 'WEBGL_depth_texture' ) || gl.getExtension( 'MOZ_WEBGL_depth_texture' ) || gl.getExtension( 'WEBKIT_WEBGL_depth_texture' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'EXT_texture_filter_anisotropic':\n\t\t\t\textension = gl.getExtension( 'EXT_texture_filter_anisotropic' ) || gl.getExtension( 'MOZ_EXT_texture_filter_anisotropic' ) || gl.getExtension( 'WEBKIT_EXT_texture_filter_anisotropic' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_s3tc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'MOZ_WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_s3tc' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_pvrtc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_pvrtc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_pvrtc' );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\textension = gl.getExtension( name );\n\n\t\t}\n\n\t\textensions[ name ] = extension;\n\n\t\treturn extension;\n\n\t}\n\n\treturn {\n\n\t\thas: function ( name ) {\n\n\t\t\treturn getExtension( name ) !== null;\n\n\t\t},\n\n\t\tinit: function () {\n\n\t\t\tgetExtension( 'EXT_color_buffer_float' );\n\t\t\tgetExtension( 'WEBGL_clip_cull_distance' );\n\t\t\tgetExtension( 'OES_texture_float_linear' );\n\t\t\tgetExtension( 'EXT_color_buffer_half_float' );\n\t\t\tgetExtension( 'WEBGL_multisampled_render_to_texture' );\n\t\t\tgetExtension( 'WEBGL_render_shared_exponent' );\n\n\t\t},\n\n\t\tget: function ( name ) {\n\n\t\t\tconst extension = getExtension( name );\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\twarnOnce( 'THREE.WebGLRenderer: ' + name + ' extension not supported.' );\n\n\t\t\t}\n\n\t\t\treturn extension;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLGeometries( gl, attributes, info, bindingStates ) {\n\n\tconst geometries = {};\n\tconst wireframeAttributes = new WeakMap();\n\n\tfunction onGeometryDispose( event ) {\n\n\t\tconst geometry = event.target;\n\n\t\tif ( geometry.index !== null ) {\n\n\t\t\tattributes.remove( geometry.index );\n\n\t\t}\n\n\t\tfor ( const name in geometry.attributes ) {\n\n\t\t\tattributes.remove( geometry.attributes[ name ] );\n\n\t\t}\n\n\t\tfor ( const name in geometry.morphAttributes ) {\n\n\t\t\tconst array = geometry.morphAttributes[ name ];\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tattributes.remove( array[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.removeEventListener( 'dispose', onGeometryDispose );\n\n\t\tdelete geometries[ geometry.id ];\n\n\t\tconst attribute = wireframeAttributes.get( geometry );\n\n\t\tif ( attribute ) {\n\n\t\t\tattributes.remove( attribute );\n\t\t\twireframeAttributes.delete( geometry );\n\n\t\t}\n\n\t\tbindingStates.releaseStatesOfGeometry( geometry );\n\n\t\tif ( geometry.isInstancedBufferGeometry === true ) {\n\n\t\t\tdelete geometry._maxInstanceCount;\n\n\t\t}\n\n\t\t//\n\n\t\tinfo.memory.geometries --;\n\n\t}\n\n\tfunction get( object, geometry ) {\n\n\t\tif ( geometries[ geometry.id ] === true ) return geometry;\n\n\t\tgeometry.addEventListener( 'dispose', onGeometryDispose );\n\n\t\tgeometries[ geometry.id ] = true;\n\n\t\tinfo.memory.geometries ++;\n\n\t\treturn geometry;\n\n\t}\n\n\tfunction update( geometry ) {\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates.\n\n\t\tfor ( const name in geometryAttributes ) {\n\n\t\t\tattributes.update( geometryAttributes[ name ], gl.ARRAY_BUFFER );\n\n\t\t}\n\n\t\t// morph targets\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = morphAttributes[ name ];\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tattributes.update( array[ i ], gl.ARRAY_BUFFER );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction updateWireframeAttribute( geometry ) {\n\n\t\tconst indices = [];\n\n\t\tconst geometryIndex = geometry.index;\n\t\tconst geometryPosition = geometry.attributes.position;\n\t\tlet version = 0;\n\n\t\tif ( geometryIndex !== null ) {\n\n\t\t\tconst array = geometryIndex.array;\n\t\t\tversion = geometryIndex.version;\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\t\tconst a = array[ i + 0 ];\n\t\t\t\tconst b = array[ i + 1 ];\n\t\t\t\tconst c = array[ i + 2 ];\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else if ( geometryPosition !== undefined ) {\n\n\t\t\tconst array = geometryPosition.array;\n\t\t\tversion = geometryPosition.version;\n\n\t\t\tfor ( let i = 0, l = ( array.length / 3 ) - 1; i < l; i += 3 ) {\n\n\t\t\t\tconst a = i + 0;\n\t\t\t\tconst b = i + 1;\n\t\t\t\tconst c = i + 2;\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst attribute = new ( arrayNeedsUint32( indices ) ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );\n\t\tattribute.version = version;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates\n\n\t\t//\n\n\t\tconst previousAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( previousAttribute ) attributes.remove( previousAttribute );\n\n\t\t//\n\n\t\twireframeAttributes.set( geometry, attribute );\n\n\t}\n\n\tfunction getWireframeAttribute( geometry ) {\n\n\t\tconst currentAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( currentAttribute ) {\n\n\t\t\tconst geometryIndex = geometry.index;\n\n\t\t\tif ( geometryIndex !== null ) {\n\n\t\t\t\t// if the attribute is obsolete, create a new one\n\n\t\t\t\tif ( currentAttribute.version < geometryIndex.version ) {\n\n\t\t\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t}\n\n\t\treturn wireframeAttributes.get( geometry );\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tupdate: update,\n\n\t\tgetWireframeAttribute: getWireframeAttribute\n\n\t};\n\n}\n\nfunction WebGLIndexedBufferRenderer( gl, extensions, info ) {\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tlet type, bytesPerElement;\n\n\tfunction setIndex( value ) {\n\n\t\ttype = value.type;\n\t\tbytesPerElement = value.bytesPerElement;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawElements( mode, count, type, start * bytesPerElement );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tgl.drawElementsInstanced( mode, count, type, start * bytesPerElement, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\tfunction renderMultiDraw( starts, counts, drawCount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\t\textension.multiDrawElementsWEBGL( mode, counts, 0, type, starts, 0, drawCount );\n\n\t\tlet elementCount = 0;\n\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\telementCount += counts[ i ];\n\n\t\t}\n\n\t\tinfo.update( elementCount, mode, 1 );\n\n\n\t}\n\n\tfunction renderMultiDrawInstances( starts, counts, drawCount, primcount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\n\t\tif ( extension === null ) {\n\n\t\t\tfor ( let i = 0; i < starts.length; i ++ ) {\n\n\t\t\t\trenderInstances( starts[ i ] / bytesPerElement, counts[ i ], primcount[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\textension.multiDrawElementsInstancedWEBGL( mode, counts, 0, type, starts, 0, primcount, 0, drawCount );\n\n\t\t\tlet elementCount = 0;\n\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\telementCount += counts[ i ] * primcount[ i ];\n\n\t\t\t}\n\n\t\t\tinfo.update( elementCount, mode, 1 );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.setIndex = setIndex;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\tthis.renderMultiDraw = renderMultiDraw;\n\tthis.renderMultiDrawInstances = renderMultiDrawInstances;\n\n}\n\nfunction WebGLInfo( gl ) {\n\n\tconst memory = {\n\t\tgeometries: 0,\n\t\ttextures: 0\n\t};\n\n\tconst render = {\n\t\tframe: 0,\n\t\tcalls: 0,\n\t\ttriangles: 0,\n\t\tpoints: 0,\n\t\tlines: 0\n\t};\n\n\tfunction update( count, mode, instanceCount ) {\n\n\t\trender.calls ++;\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase gl.TRIANGLES:\n\t\t\t\trender.triangles += instanceCount * ( count / 3 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINES:\n\t\t\t\trender.lines += instanceCount * ( count / 2 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINE_STRIP:\n\t\t\t\trender.lines += instanceCount * ( count - 1 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINE_LOOP:\n\t\t\t\trender.lines += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tcase gl.POINTS:\n\t\t\t\trender.points += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.error( 'THREE.WebGLInfo: Unknown draw mode:', mode );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\trender.calls = 0;\n\t\trender.triangles = 0;\n\t\trender.points = 0;\n\t\trender.lines = 0;\n\n\t}\n\n\treturn {\n\t\tmemory: memory,\n\t\trender: render,\n\t\tprograms: null,\n\t\tautoReset: true,\n\t\treset: reset,\n\t\tupdate: update\n\t};\n\n}\n\nfunction WebGLMorphtargets( gl, capabilities, textures ) {\n\n\tconst morphTextures = new WeakMap();\n\tconst morph = new Vector4();\n\n\tfunction update( object, geometry, program ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\t// the following encodes morph targets into an array of data textures. Each layer represents a single morph target.\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tlet entry = morphTextures.get( geometry );\n\n\t\tif ( entry === undefined || entry.count !== morphTargetsCount ) {\n\n\t\t\tif ( entry !== undefined ) entry.texture.dispose();\n\n\t\t\tconst hasMorphPosition = geometry.morphAttributes.position !== undefined;\n\t\t\tconst hasMorphNormals = geometry.morphAttributes.normal !== undefined;\n\t\t\tconst hasMorphColors = geometry.morphAttributes.color !== undefined;\n\n\t\t\tconst morphTargets = geometry.morphAttributes.position || [];\n\t\t\tconst morphNormals = geometry.morphAttributes.normal || [];\n\t\t\tconst morphColors = geometry.morphAttributes.color || [];\n\n\t\t\tlet vertexDataCount = 0;\n\n\t\t\tif ( hasMorphPosition === true ) vertexDataCount = 1;\n\t\t\tif ( hasMorphNormals === true ) vertexDataCount = 2;\n\t\t\tif ( hasMorphColors === true ) vertexDataCount = 3;\n\n\t\t\tlet width = geometry.attributes.position.count * vertexDataCount;\n\t\t\tlet height = 1;\n\n\t\t\tif ( width > capabilities.maxTextureSize ) {\n\n\t\t\t\theight = Math.ceil( width / capabilities.maxTextureSize );\n\t\t\t\twidth = capabilities.maxTextureSize;\n\n\t\t\t}\n\n\t\t\tconst buffer = new Float32Array( width * height * 4 * morphTargetsCount );\n\n\t\t\tconst texture = new DataArrayTexture( buffer, width, height, morphTargetsCount );\n\t\t\ttexture.type = FloatType;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\t// fill buffer\n\n\t\t\tconst vertexDataStride = vertexDataCount * 4;\n\n\t\t\tfor ( let i = 0; i < morphTargetsCount; i ++ ) {\n\n\t\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\t\tconst morphNormal = morphNormals[ i ];\n\t\t\t\tconst morphColor = morphColors[ i ];\n\n\t\t\t\tconst offset = width * height * 4 * i;\n\n\t\t\t\tfor ( let j = 0; j < morphTarget.count; j ++ ) {\n\n\t\t\t\t\tconst stride = j * vertexDataStride;\n\n\t\t\t\t\tif ( hasMorphPosition === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphTarget, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 0 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 1 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 2 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 3 ] = 0;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hasMorphNormals === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphNormal, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 4 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 5 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 6 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 7 ] = 0;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hasMorphColors === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphColor, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 8 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 9 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 10 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 11 ] = ( morphColor.itemSize === 4 ) ? morph.w : 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tentry = {\n\t\t\t\tcount: morphTargetsCount,\n\t\t\t\ttexture: texture,\n\t\t\t\tsize: new Vector2( width, height )\n\t\t\t};\n\n\t\t\tmorphTextures.set( geometry, entry );\n\n\t\t\tfunction disposeTexture() {\n\n\t\t\t\ttexture.dispose();\n\n\t\t\t\tmorphTextures.delete( geometry );\n\n\t\t\t\tgeometry.removeEventListener( 'dispose', disposeTexture );\n\n\t\t\t}\n\n\t\t\tgeometry.addEventListener( 'dispose', disposeTexture );\n\n\t\t}\n\n\t\t//\n\t\tif ( object.isInstancedMesh === true && object.morphTexture !== null ) {\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTexture', object.morphTexture, textures );\n\n\t\t} else {\n\n\t\t\tlet morphInfluencesSum = 0;\n\n\t\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t\t}\n\n\t\t\tconst morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetBaseInfluence', morphBaseInfluence );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetInfluences', objectInfluences );\n\n\t\t}\n\n\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTexture', entry.texture, textures );\n\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTextureSize', entry.size );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update\n\n\t};\n\n}\n\nfunction WebGLObjects( gl, geometries, attributes, info ) {\n\n\tlet updateMap = new WeakMap();\n\n\tfunction update( object ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\tconst geometry = object.geometry;\n\t\tconst buffergeometry = geometries.get( object, geometry );\n\n\t\t// Update once per frame\n\n\t\tif ( updateMap.get( buffergeometry ) !== frame ) {\n\n\t\t\tgeometries.update( buffergeometry );\n\n\t\t\tupdateMap.set( buffergeometry, frame );\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh ) {\n\n\t\t\tif ( object.hasEventListener( 'dispose', onInstancedMeshDispose ) === false ) {\n\n\t\t\t\tobject.addEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\t\t}\n\n\t\t\tif ( updateMap.get( object ) !== frame ) {\n\n\t\t\t\tattributes.update( object.instanceMatrix, gl.ARRAY_BUFFER );\n\n\t\t\t\tif ( object.instanceColor !== null ) {\n\n\t\t\t\t\tattributes.update( object.instanceColor, gl.ARRAY_BUFFER );\n\n\t\t\t\t}\n\n\t\t\t\tupdateMap.set( object, frame );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\tconst skeleton = object.skeleton;\n\n\t\t\tif ( updateMap.get( skeleton ) !== frame ) {\n\n\t\t\t\tskeleton.update();\n\n\t\t\t\tupdateMap.set( skeleton, frame );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn buffergeometry;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tupdateMap = new WeakMap();\n\n\t}\n\n\tfunction onInstancedMeshDispose( event ) {\n\n\t\tconst instancedMesh = event.target;\n\n\t\tinstancedMesh.removeEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\tattributes.remove( instancedMesh.instanceMatrix );\n\n\t\tif ( instancedMesh.instanceColor !== null ) attributes.remove( instancedMesh.instanceColor );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update,\n\t\tdispose: dispose\n\n\t};\n\n}\n\nclass DepthTexture extends Texture {\n\n\tconstructor( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format = DepthFormat ) {\n\n\t\tif ( format !== DepthFormat && format !== DepthStencilFormat ) {\n\n\t\t\tthrow new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' );\n\n\t\t}\n\n\t\tif ( type === undefined && format === DepthFormat ) type = UnsignedIntType;\n\t\tif ( type === undefined && format === DepthStencilFormat ) type = UnsignedInt248Type;\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isDepthTexture = true;\n\n\t\tthis.image = { width: width, height: height };\n\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n\n\t\tthis.flipY = false;\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.compareFunction = null;\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.compareFunction = source.compareFunction;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.compareFunction !== null ) data.compareFunction = this.compareFunction;\n\n\t\treturn data;\n\n\t}\n\n}\n\n/**\n * Uniforms of a program.\n * Those form a tree structure with a special top-level container for the root,\n * which you get by calling 'new WebGLUniforms( gl, program )'.\n *\n *\n * Properties of inner nodes including the top-level container:\n *\n * .seq - array of nested uniforms\n * .map - nested uniforms by name\n *\n *\n * Methods of all nodes except the top-level container:\n *\n * .setValue( gl, value, [textures] )\n *\n * \t\tuploads a uniform value(s)\n * \tthe 'textures' parameter is needed for sampler uniforms\n *\n *\n * Static methods of the top-level container (textures factorizations):\n *\n * .upload( gl, seq, values, textures )\n *\n * \t\tsets uniforms in 'seq' to 'values[id].value'\n *\n * .seqWithValue( seq, values ) : filteredSeq\n *\n * \t\tfilters 'seq' entries with corresponding entry in values\n *\n *\n * Methods of the top-level container (textures factorizations):\n *\n * .setValue( gl, name, value, textures )\n *\n * \t\tsets uniform with name 'name' to 'value'\n *\n * .setOptional( gl, obj, prop )\n *\n * \t\tlike .set for an optional property of the object\n *\n */\n\n\nconst emptyTexture = /*@__PURE__*/ new Texture();\n\nconst emptyShadowTexture = /*@__PURE__*/ new DepthTexture( 1, 1 );\n\nconst emptyArrayTexture = /*@__PURE__*/ new DataArrayTexture();\nconst empty3dTexture = /*@__PURE__*/ new Data3DTexture();\nconst emptyCubeTexture = /*@__PURE__*/ new CubeTexture();\n\n// --- Utilities ---\n\n// Array Caches (provide typed arrays for temporary by size)\n\nconst arrayCacheF32 = [];\nconst arrayCacheI32 = [];\n\n// Float32Array caches used for uploading Matrix uniforms\n\nconst mat4array = new Float32Array( 16 );\nconst mat3array = new Float32Array( 9 );\nconst mat2array = new Float32Array( 4 );\n\n// Flattening for arrays of vectors and matrices\n\nfunction flatten( array, nBlocks, blockSize ) {\n\n\tconst firstElem = array[ 0 ];\n\n\tif ( firstElem <= 0 || firstElem > 0 ) return array;\n\t// unoptimized: ! isNaN( firstElem )\n\t// see http://jacksondunstan.com/articles/983\n\n\tconst n = nBlocks * blockSize;\n\tlet r = arrayCacheF32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Float32Array( n );\n\t\tarrayCacheF32[ n ] = r;\n\n\t}\n\n\tif ( nBlocks !== 0 ) {\n\n\t\tfirstElem.toArray( r, 0 );\n\n\t\tfor ( let i = 1, offset = 0; i !== nBlocks; ++ i ) {\n\n\t\t\toffset += blockSize;\n\t\t\tarray[ i ].toArray( r, offset );\n\n\t\t}\n\n\t}\n\n\treturn r;\n\n}\n\nfunction arraysEqual( a, b ) {\n\n\tif ( a.length !== b.length ) return false;\n\n\tfor ( let i = 0, l = a.length; i < l; i ++ ) {\n\n\t\tif ( a[ i ] !== b[ i ] ) return false;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction copyArray( a, b ) {\n\n\tfor ( let i = 0, l = b.length; i < l; i ++ ) {\n\n\t\ta[ i ] = b[ i ];\n\n\t}\n\n}\n\n// Texture unit allocation\n\nfunction allocTexUnits( textures, n ) {\n\n\tlet r = arrayCacheI32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Int32Array( n );\n\t\tarrayCacheI32[ n ] = r;\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\tr[ i ] = textures.allocateTextureUnit();\n\n\t}\n\n\treturn r;\n\n}\n\n// --- Setters ---\n\n// Note: Defining these methods externally, because they come in a bunch\n// and this way their names minify.\n\n// Single scalar\n\nfunction setValueV1f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1f( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single float vector (from flat array or THREE.VectorN)\n\nfunction setValueV2f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2f( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3f( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else if ( v.r !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.r || cache[ 1 ] !== v.g || cache[ 2 ] !== v.b ) {\n\n\t\t\tgl.uniform3f( this.addr, v.r, v.g, v.b );\n\n\t\t\tcache[ 0 ] = v.r;\n\t\t\tcache[ 1 ] = v.g;\n\t\t\tcache[ 2 ] = v.b;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4f( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single matrix (from flat array or THREE.MatrixN)\n\nfunction setValueM2( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix2fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat2array.set( elements );\n\n\t\tgl.uniformMatrix2fv( this.addr, false, mat2array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM3( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix3fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat3array.set( elements );\n\n\t\tgl.uniformMatrix3fv( this.addr, false, mat3array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM4( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix4fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat4array.set( elements );\n\n\t\tgl.uniformMatrix4fv( this.addr, false, mat4array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\n// Single integer / boolean\n\nfunction setValueV1i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1i( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single integer / boolean vector (from flat array or THREE.VectorN)\n\nfunction setValueV2i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2i( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3i( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4i( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single unsigned integer\n\nfunction setValueV1ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1ui( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single unsigned integer vector (from flat array or THREE.VectorN)\n\nfunction setValueV2ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2ui( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3ui( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4ui( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n\n// Single texture (2D / Cube)\n\nfunction setValueT1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\tlet emptyTexture2D;\n\n\tif ( this.type === gl.SAMPLER_2D_SHADOW ) {\n\n\t\temptyShadowTexture.compareFunction = LessEqualCompare; // #28670\n\t\temptyTexture2D = emptyShadowTexture;\n\n\t} else {\n\n\t\temptyTexture2D = emptyTexture;\n\n\t}\n\n\ttextures.setTexture2D( v || emptyTexture2D, unit );\n\n}\n\nfunction setValueT3D1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture3D( v || empty3dTexture, unit );\n\n}\n\nfunction setValueT6( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTextureCube( v || emptyCubeTexture, unit );\n\n}\n\nfunction setValueT2DArray1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture2DArray( v || emptyArrayTexture, unit );\n\n}\n\n// Helper to pick the right setter for the singular case\n\nfunction getSingularSetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1f; // FLOAT\n\t\tcase 0x8b50: return setValueV2f; // _VEC2\n\t\tcase 0x8b51: return setValueV3f; // _VEC3\n\t\tcase 0x8b52: return setValueV4f; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2; // _MAT2\n\t\tcase 0x8b5b: return setValueM3; // _MAT3\n\t\tcase 0x8b5c: return setValueM4; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1i; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2i; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3i; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4i; // _VEC4\n\n\t\tcase 0x1405: return setValueV1ui; // UINT\n\t\tcase 0x8dc6: return setValueV2ui; // _VEC2\n\t\tcase 0x8dc7: return setValueV3ui; // _VEC3\n\t\tcase 0x8dc8: return setValueV4ui; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3D1;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArray1;\n\n\t}\n\n}\n\n\n// Array of scalars\n\nfunction setValueV1fArray( gl, v ) {\n\n\tgl.uniform1fv( this.addr, v );\n\n}\n\n// Array of vectors (from flat array or array of THREE.VectorN)\n\nfunction setValueV2fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 2 );\n\n\tgl.uniform2fv( this.addr, data );\n\n}\n\nfunction setValueV3fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 3 );\n\n\tgl.uniform3fv( this.addr, data );\n\n}\n\nfunction setValueV4fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniform4fv( this.addr, data );\n\n}\n\n// Array of matrices (from flat array or array of THREE.MatrixN)\n\nfunction setValueM2Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniformMatrix2fv( this.addr, false, data );\n\n}\n\nfunction setValueM3Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 9 );\n\n\tgl.uniformMatrix3fv( this.addr, false, data );\n\n}\n\nfunction setValueM4Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 16 );\n\n\tgl.uniformMatrix4fv( this.addr, false, data );\n\n}\n\n// Array of integer / boolean\n\nfunction setValueV1iArray( gl, v ) {\n\n\tgl.uniform1iv( this.addr, v );\n\n}\n\n// Array of integer / boolean vectors (from flat array)\n\nfunction setValueV2iArray( gl, v ) {\n\n\tgl.uniform2iv( this.addr, v );\n\n}\n\nfunction setValueV3iArray( gl, v ) {\n\n\tgl.uniform3iv( this.addr, v );\n\n}\n\nfunction setValueV4iArray( gl, v ) {\n\n\tgl.uniform4iv( this.addr, v );\n\n}\n\n// Array of unsigned integer\n\nfunction setValueV1uiArray( gl, v ) {\n\n\tgl.uniform1uiv( this.addr, v );\n\n}\n\n// Array of unsigned integer vectors (from flat array)\n\nfunction setValueV2uiArray( gl, v ) {\n\n\tgl.uniform2uiv( this.addr, v );\n\n}\n\nfunction setValueV3uiArray( gl, v ) {\n\n\tgl.uniform3uiv( this.addr, v );\n\n}\n\nfunction setValueV4uiArray( gl, v ) {\n\n\tgl.uniform4uiv( this.addr, v );\n\n}\n\n\n// Array of textures (2D / 3D / Cube / 2DArray)\n\nfunction setValueT1Array( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2D( v[ i ] || emptyTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT3DArray( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture3D( v[ i ] || empty3dTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT6Array( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTextureCube( v[ i ] || emptyCubeTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT2DArrayArray( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2DArray( v[ i ] || emptyArrayTexture, units[ i ] );\n\n\t}\n\n}\n\n\n// Helper to pick the right setter for a pure (bottom-level) array\n\nfunction getPureArraySetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1fArray; // FLOAT\n\t\tcase 0x8b50: return setValueV2fArray; // _VEC2\n\t\tcase 0x8b51: return setValueV3fArray; // _VEC3\n\t\tcase 0x8b52: return setValueV4fArray; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2Array; // _MAT2\n\t\tcase 0x8b5b: return setValueM3Array; // _MAT3\n\t\tcase 0x8b5c: return setValueM4Array; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1iArray; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2iArray; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3iArray; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4iArray; // _VEC4\n\n\t\tcase 0x1405: return setValueV1uiArray; // UINT\n\t\tcase 0x8dc6: return setValueV2uiArray; // _VEC2\n\t\tcase 0x8dc7: return setValueV3uiArray; // _VEC3\n\t\tcase 0x8dc8: return setValueV4uiArray; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1Array;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3DArray;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6Array;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArrayArray;\n\n\t}\n\n}\n\n// --- Uniform Classes ---\n\nclass SingleUniform {\n\n\tconstructor( id, activeInfo, addr ) {\n\n\t\tthis.id = id;\n\t\tthis.addr = addr;\n\t\tthis.cache = [];\n\t\tthis.type = activeInfo.type;\n\t\tthis.setValue = getSingularSetter( activeInfo.type );\n\n\t\t// this.path = activeInfo.name; // DEBUG\n\n\t}\n\n}\n\nclass PureArrayUniform {\n\n\tconstructor( id, activeInfo, addr ) {\n\n\t\tthis.id = id;\n\t\tthis.addr = addr;\n\t\tthis.cache = [];\n\t\tthis.type = activeInfo.type;\n\t\tthis.size = activeInfo.size;\n\t\tthis.setValue = getPureArraySetter( activeInfo.type );\n\n\t\t// this.path = activeInfo.name; // DEBUG\n\n\t}\n\n}\n\nclass StructuredUniform {\n\n\tconstructor( id ) {\n\n\t\tthis.id = id;\n\n\t\tthis.seq = [];\n\t\tthis.map = {};\n\n\t}\n\n\tsetValue( gl, value, textures ) {\n\n\t\tconst seq = this.seq;\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ];\n\t\t\tu.setValue( gl, value[ u.id ], textures );\n\n\t\t}\n\n\t}\n\n}\n\n// --- Top-level ---\n\n// Parser - builds up the property tree from the path strings\n\nconst RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g;\n\n// extracts\n// \t- the identifier (member name or array index)\n// - followed by an optional right bracket (found when array index)\n// - followed by an optional left bracket or dot (type of subscript)\n//\n// Note: These portions can be read in a non-overlapping fashion and\n// allow straightforward parsing of the hierarchy that WebGL encodes\n// in the uniform names.\n\nfunction addUniform( container, uniformObject ) {\n\n\tcontainer.seq.push( uniformObject );\n\tcontainer.map[ uniformObject.id ] = uniformObject;\n\n}\n\nfunction parseUniform( activeInfo, addr, container ) {\n\n\tconst path = activeInfo.name,\n\t\tpathLength = path.length;\n\n\t// reset RegExp object, because of the early exit of a previous run\n\tRePathPart.lastIndex = 0;\n\n\twhile ( true ) {\n\n\t\tconst match = RePathPart.exec( path ),\n\t\t\tmatchEnd = RePathPart.lastIndex;\n\n\t\tlet id = match[ 1 ];\n\t\tconst idIsIndex = match[ 2 ] === ']',\n\t\t\tsubscript = match[ 3 ];\n\n\t\tif ( idIsIndex ) id = id | 0; // convert to integer\n\n\t\tif ( subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength ) {\n\n\t\t\t// bare name or \"pure\" bottom-level array \"[0]\" suffix\n\n\t\t\taddUniform( container, subscript === undefined ?\n\t\t\t\tnew SingleUniform( id, activeInfo, addr ) :\n\t\t\t\tnew PureArrayUniform( id, activeInfo, addr ) );\n\n\t\t\tbreak;\n\n\t\t} else {\n\n\t\t\t// step into inner node / create it in case it doesn't exist\n\n\t\t\tconst map = container.map;\n\t\t\tlet next = map[ id ];\n\n\t\t\tif ( next === undefined ) {\n\n\t\t\t\tnext = new StructuredUniform( id );\n\t\t\t\taddUniform( container, next );\n\n\t\t\t}\n\n\t\t\tcontainer = next;\n\n\t\t}\n\n\t}\n\n}\n\n// Root Container\n\nclass WebGLUniforms {\n\n\tconstructor( gl, program ) {\n\n\t\tthis.seq = [];\n\t\tthis.map = {};\n\n\t\tconst n = gl.getProgramParameter( program, gl.ACTIVE_UNIFORMS );\n\n\t\tfor ( let i = 0; i < n; ++ i ) {\n\n\t\t\tconst info = gl.getActiveUniform( program, i ),\n\t\t\t\taddr = gl.getUniformLocation( program, info.name );\n\n\t\t\tparseUniform( info, addr, this );\n\n\t\t}\n\n\t}\n\n\tsetValue( gl, name, value, textures ) {\n\n\t\tconst u = this.map[ name ];\n\n\t\tif ( u !== undefined ) u.setValue( gl, value, textures );\n\n\t}\n\n\tsetOptional( gl, object, name ) {\n\n\t\tconst v = object[ name ];\n\n\t\tif ( v !== undefined ) this.setValue( gl, name, v );\n\n\t}\n\n\tstatic upload( gl, seq, values, textures ) {\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ],\n\t\t\t\tv = values[ u.id ];\n\n\t\t\tif ( v.needsUpdate !== false ) {\n\n\t\t\t\t// note: always updating when .needsUpdate is undefined\n\t\t\t\tu.setValue( gl, v.value, textures );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tstatic seqWithValue( seq, values ) {\n\n\t\tconst r = [];\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ];\n\t\t\tif ( u.id in values ) r.push( u );\n\n\t\t}\n\n\t\treturn r;\n\n\t}\n\n}\n\nfunction WebGLShader( gl, type, string ) {\n\n\tconst shader = gl.createShader( type );\n\n\tgl.shaderSource( shader, string );\n\tgl.compileShader( shader );\n\n\treturn shader;\n\n}\n\n// From https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile/\nconst COMPLETION_STATUS_KHR = 0x91B1;\n\nlet programIdCount = 0;\n\nfunction handleSource( string, errorLine ) {\n\n\tconst lines = string.split( '\\n' );\n\tconst lines2 = [];\n\n\tconst from = Math.max( errorLine - 6, 0 );\n\tconst to = Math.min( errorLine + 6, lines.length );\n\n\tfor ( let i = from; i < to; i ++ ) {\n\n\t\tconst line = i + 1;\n\t\tlines2.push( `${line === errorLine ? '>' : ' '} ${line}: ${lines[ i ]}` );\n\n\t}\n\n\treturn lines2.join( '\\n' );\n\n}\n\nconst _m0 = /*@__PURE__*/ new Matrix3();\n\nfunction getEncodingComponents( colorSpace ) {\n\n\tColorManagement._getMatrix( _m0, ColorManagement.workingColorSpace, colorSpace );\n\n\tconst encodingMatrix = `mat3( ${ _m0.elements.map( ( v ) => v.toFixed( 4 ) ) } )`;\n\n\tswitch ( ColorManagement.getTransfer( colorSpace ) ) {\n\n\t\tcase LinearTransfer:\n\t\t\treturn [ encodingMatrix, 'LinearTransferOETF' ];\n\n\t\tcase SRGBTransfer:\n\t\t\treturn [ encodingMatrix, 'sRGBTransferOETF' ];\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported color space: ', colorSpace );\n\t\t\treturn [ encodingMatrix, 'LinearTransferOETF' ];\n\n\t}\n\n}\n\nfunction getShaderErrors( gl, shader, type ) {\n\n\tconst status = gl.getShaderParameter( shader, gl.COMPILE_STATUS );\n\tconst errors = gl.getShaderInfoLog( shader ).trim();\n\n\tif ( status && errors === '' ) return '';\n\n\tconst errorMatches = /ERROR: 0:(\\d+)/.exec( errors );\n\tif ( errorMatches ) {\n\n\t\t// --enable-privileged-webgl-extension\n\t\t// console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );\n\n\t\tconst errorLine = parseInt( errorMatches[ 1 ] );\n\t\treturn type.toUpperCase() + '\\n\\n' + errors + '\\n\\n' + handleSource( gl.getShaderSource( shader ), errorLine );\n\n\t} else {\n\n\t\treturn errors;\n\n\t}\n\n}\n\nfunction getTexelEncodingFunction( functionName, colorSpace ) {\n\n\tconst components = getEncodingComponents( colorSpace );\n\n\treturn [\n\n\t\t`vec4 ${functionName}( vec4 value ) {`,\n\n\t\t`\treturn ${components[ 1 ]}( vec4( value.rgb * ${components[ 0 ]}, value.a ) );`,\n\n\t\t'}',\n\n\t].join( '\\n' );\n\n}\n\nfunction getToneMappingFunction( functionName, toneMapping ) {\n\n\tlet toneMappingName;\n\n\tswitch ( toneMapping ) {\n\n\t\tcase LinearToneMapping:\n\t\t\ttoneMappingName = 'Linear';\n\t\t\tbreak;\n\n\t\tcase ReinhardToneMapping:\n\t\t\ttoneMappingName = 'Reinhard';\n\t\t\tbreak;\n\n\t\tcase CineonToneMapping:\n\t\t\ttoneMappingName = 'Cineon';\n\t\t\tbreak;\n\n\t\tcase ACESFilmicToneMapping:\n\t\t\ttoneMappingName = 'ACESFilmic';\n\t\t\tbreak;\n\n\t\tcase AgXToneMapping:\n\t\t\ttoneMappingName = 'AgX';\n\t\t\tbreak;\n\n\t\tcase NeutralToneMapping:\n\t\t\ttoneMappingName = 'Neutral';\n\t\t\tbreak;\n\n\t\tcase CustomToneMapping:\n\t\t\ttoneMappingName = 'Custom';\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported toneMapping:', toneMapping );\n\t\t\ttoneMappingName = 'Linear';\n\n\t}\n\n\treturn 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\n\n}\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\n\nfunction getLuminanceFunction() {\n\n\tColorManagement.getLuminanceCoefficients( _v0$1 );\n\n\tconst r = _v0$1.x.toFixed( 4 );\n\tconst g = _v0$1.y.toFixed( 4 );\n\tconst b = _v0$1.z.toFixed( 4 );\n\n\treturn [\n\n\t\t'float luminance( const in vec3 rgb ) {',\n\n\t\t`\tconst vec3 weights = vec3( ${ r }, ${ g }, ${ b } );`,\n\n\t\t'\treturn dot( weights, rgb );',\n\n\t\t'}'\n\n\t].join( '\\n' );\n\n}\n\nfunction generateVertexExtensions( parameters ) {\n\n\tconst chunks = [\n\t\tparameters.extensionClipCullDistance ? '#extension GL_ANGLE_clip_cull_distance : require' : '',\n\t\tparameters.extensionMultiDraw ? '#extension GL_ANGLE_multi_draw : require' : '',\n\t];\n\n\treturn chunks.filter( filterEmptyLine ).join( '\\n' );\n\n}\n\nfunction generateDefines( defines ) {\n\n\tconst chunks = [];\n\n\tfor ( const name in defines ) {\n\n\t\tconst value = defines[ name ];\n\n\t\tif ( value === false ) continue;\n\n\t\tchunks.push( '#define ' + name + ' ' + value );\n\n\t}\n\n\treturn chunks.join( '\\n' );\n\n}\n\nfunction fetchAttributeLocations( gl, program ) {\n\n\tconst attributes = {};\n\n\tconst n = gl.getProgramParameter( program, gl.ACTIVE_ATTRIBUTES );\n\n\tfor ( let i = 0; i < n; i ++ ) {\n\n\t\tconst info = gl.getActiveAttrib( program, i );\n\t\tconst name = info.name;\n\n\t\tlet locationSize = 1;\n\t\tif ( info.type === gl.FLOAT_MAT2 ) locationSize = 2;\n\t\tif ( info.type === gl.FLOAT_MAT3 ) locationSize = 3;\n\t\tif ( info.type === gl.FLOAT_MAT4 ) locationSize = 4;\n\n\t\t// console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );\n\n\t\tattributes[ name ] = {\n\t\t\ttype: info.type,\n\t\t\tlocation: gl.getAttribLocation( program, name ),\n\t\t\tlocationSize: locationSize\n\t\t};\n\n\t}\n\n\treturn attributes;\n\n}\n\nfunction filterEmptyLine( string ) {\n\n\treturn string !== '';\n\n}\n\nfunction replaceLightNums( string, parameters ) {\n\n\tconst numSpotLightCoords = parameters.numSpotLightShadows + parameters.numSpotLightMaps - parameters.numSpotLightShadowsWithMaps;\n\n\treturn string\n\t\t.replace( /NUM_DIR_LIGHTS/g, parameters.numDirLights )\n\t\t.replace( /NUM_SPOT_LIGHTS/g, parameters.numSpotLights )\n\t\t.replace( /NUM_SPOT_LIGHT_MAPS/g, parameters.numSpotLightMaps )\n\t\t.replace( /NUM_SPOT_LIGHT_COORDS/g, numSpotLightCoords )\n\t\t.replace( /NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights )\n\t\t.replace( /NUM_POINT_LIGHTS/g, parameters.numPointLights )\n\t\t.replace( /NUM_HEMI_LIGHTS/g, parameters.numHemiLights )\n\t\t.replace( /NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g, parameters.numSpotLightShadowsWithMaps )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows )\n\t\t.replace( /NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows );\n\n}\n\nfunction replaceClippingPlaneNums( string, parameters ) {\n\n\treturn string\n\t\t.replace( /NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes )\n\t\t.replace( /UNION_CLIPPING_PLANES/g, ( parameters.numClippingPlanes - parameters.numClipIntersection ) );\n\n}\n\n// Resolve Includes\n\nconst includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n\nfunction resolveIncludes( string ) {\n\n\treturn string.replace( includePattern, includeReplacer );\n\n}\n\nconst shaderChunkMap = new Map();\n\nfunction includeReplacer( match, include ) {\n\n\tlet string = ShaderChunk[ include ];\n\n\tif ( string === undefined ) {\n\n\t\tconst newInclude = shaderChunkMap.get( include );\n\n\t\tif ( newInclude !== undefined ) {\n\n\t\t\tstring = ShaderChunk[ newInclude ];\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.', include, newInclude );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Can not resolve #include <' + include + '>' );\n\n\t\t}\n\n\t}\n\n\treturn resolveIncludes( string );\n\n}\n\n// Unroll Loops\n\nconst unrollLoopPattern = /#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;\n\nfunction unrollLoops( string ) {\n\n\treturn string.replace( unrollLoopPattern, loopReplacer );\n\n}\n\nfunction loopReplacer( match, start, end, snippet ) {\n\n\tlet string = '';\n\n\tfor ( let i = parseInt( start ); i < parseInt( end ); i ++ ) {\n\n\t\tstring += snippet\n\t\t\t.replace( /\\[\\s*i\\s*\\]/g, '[ ' + i + ' ]' )\n\t\t\t.replace( /UNROLLED_LOOP_INDEX/g, i );\n\n\t}\n\n\treturn string;\n\n}\n\n//\n\nfunction generatePrecision( parameters ) {\n\n\tlet precisionstring = `precision ${parameters.precision} float;\n\tprecision ${parameters.precision} int;\n\tprecision ${parameters.precision} sampler2D;\n\tprecision ${parameters.precision} samplerCube;\n\tprecision ${parameters.precision} sampler3D;\n\tprecision ${parameters.precision} sampler2DArray;\n\tprecision ${parameters.precision} sampler2DShadow;\n\tprecision ${parameters.precision} samplerCubeShadow;\n\tprecision ${parameters.precision} sampler2DArrayShadow;\n\tprecision ${parameters.precision} isampler2D;\n\tprecision ${parameters.precision} isampler3D;\n\tprecision ${parameters.precision} isamplerCube;\n\tprecision ${parameters.precision} isampler2DArray;\n\tprecision ${parameters.precision} usampler2D;\n\tprecision ${parameters.precision} usampler3D;\n\tprecision ${parameters.precision} usamplerCube;\n\tprecision ${parameters.precision} usampler2DArray;\n\t`;\n\n\tif ( parameters.precision === 'highp' ) {\n\n\t\tprecisionstring += '\\n#define HIGH_PRECISION';\n\n\t} else if ( parameters.precision === 'mediump' ) {\n\n\t\tprecisionstring += '\\n#define MEDIUM_PRECISION';\n\n\t} else if ( parameters.precision === 'lowp' ) {\n\n\t\tprecisionstring += '\\n#define LOW_PRECISION';\n\n\t}\n\n\treturn precisionstring;\n\n}\n\nfunction generateShadowMapTypeDefine( parameters ) {\n\n\tlet shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\n\n\tif ( parameters.shadowMapType === PCFShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\n\n\t} else if ( parameters.shadowMapType === PCFSoftShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\n\n\t} else if ( parameters.shadowMapType === VSMShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\n\n\t}\n\n\treturn shadowMapTypeDefine;\n\n}\n\nfunction generateEnvMapTypeDefine( parameters ) {\n\n\tlet envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeReflectionMapping:\n\t\t\tcase CubeRefractionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\t\t\t\tbreak;\n\n\t\t\tcase CubeUVReflectionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapTypeDefine;\n\n}\n\nfunction generateEnvMapModeDefine( parameters ) {\n\n\tlet envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeRefractionMapping:\n\n\t\t\t\tenvMapModeDefine = 'ENVMAP_MODE_REFRACTION';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapModeDefine;\n\n}\n\nfunction generateEnvMapBlendingDefine( parameters ) {\n\n\tlet envMapBlendingDefine = 'ENVMAP_BLENDING_NONE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.combine ) {\n\n\t\t\tcase MultiplyOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n\t\t\t\tbreak;\n\n\t\t\tcase MixOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\n\t\t\t\tbreak;\n\n\t\t\tcase AddOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapBlendingDefine;\n\n}\n\nfunction generateCubeUVSize( parameters ) {\n\n\tconst imageHeight = parameters.envMapCubeUVHeight;\n\n\tif ( imageHeight === null ) return null;\n\n\tconst maxMip = Math.log2( imageHeight ) - 2;\n\n\tconst texelHeight = 1.0 / imageHeight;\n\n\tconst texelWidth = 1.0 / ( 3 * Math.max( Math.pow( 2, maxMip ), 7 * 16 ) );\n\n\treturn { texelWidth, texelHeight, maxMip };\n\n}\n\nfunction WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {\n\n\t// TODO Send this event to Three.js DevTools\n\t// console.log( 'WebGLProgram', cacheKey );\n\n\tconst gl = renderer.getContext();\n\n\tconst defines = parameters.defines;\n\n\tlet vertexShader = parameters.vertexShader;\n\tlet fragmentShader = parameters.fragmentShader;\n\n\tconst shadowMapTypeDefine = generateShadowMapTypeDefine( parameters );\n\tconst envMapTypeDefine = generateEnvMapTypeDefine( parameters );\n\tconst envMapModeDefine = generateEnvMapModeDefine( parameters );\n\tconst envMapBlendingDefine = generateEnvMapBlendingDefine( parameters );\n\tconst envMapCubeUVSize = generateCubeUVSize( parameters );\n\n\tconst customVertexExtensions = generateVertexExtensions( parameters );\n\n\tconst customDefines = generateDefines( defines );\n\n\tconst program = gl.createProgram();\n\n\tlet prefixVertex, prefixFragment;\n\tlet versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + '\\n' : '';\n\n\tif ( parameters.isRawShaderMaterial ) {\n\n\t\tprefixVertex = [\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixVertex.length > 0 ) {\n\n\t\t\tprefixVertex += '\\n';\n\n\t\t}\n\n\t\tprefixFragment = [\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixFragment.length > 0 ) {\n\n\t\t\tprefixFragment += '\\n';\n\n\t\t}\n\n\t} else {\n\n\t\tprefixVertex = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.extensionClipCullDistance ? '#define USE_CLIP_DISTANCE' : '',\n\t\t\tparameters.batching ? '#define USE_BATCHING' : '',\n\t\t\tparameters.batchingColor ? '#define USE_BATCHING_COLOR' : '',\n\t\t\tparameters.instancing ? '#define USE_INSTANCING' : '',\n\t\t\tparameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '',\n\t\t\tparameters.instancingMorph ? '#define USE_INSTANCING_MORPH' : '',\n\n\t\t\tparameters.useFog && parameters.fog ? '#define USE_FOG' : '',\n\t\t\tparameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\tparameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '',\n\t\t\tparameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '',\n\t\t\tparameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\n\t\t\tparameters.anisotropy ? '#define USE_ANISOTROPY' : '',\n\t\t\tparameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '',\n\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '',\n\t\t\tparameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaHash ? '#define USE_ALPHAHASH' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '',\n\n\t\t\t//\n\n\t\t\tparameters.mapUv ? '#define MAP_UV ' + parameters.mapUv : '',\n\t\t\tparameters.alphaMapUv ? '#define ALPHAMAP_UV ' + parameters.alphaMapUv : '',\n\t\t\tparameters.lightMapUv ? '#define LIGHTMAP_UV ' + parameters.lightMapUv : '',\n\t\t\tparameters.aoMapUv ? '#define AOMAP_UV ' + parameters.aoMapUv : '',\n\t\t\tparameters.emissiveMapUv ? '#define EMISSIVEMAP_UV ' + parameters.emissiveMapUv : '',\n\t\t\tparameters.bumpMapUv ? '#define BUMPMAP_UV ' + parameters.bumpMapUv : '',\n\t\t\tparameters.normalMapUv ? '#define NORMALMAP_UV ' + parameters.normalMapUv : '',\n\t\t\tparameters.displacementMapUv ? '#define DISPLACEMENTMAP_UV ' + parameters.displacementMapUv : '',\n\n\t\t\tparameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '',\n\t\t\tparameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '',\n\n\t\t\tparameters.anisotropyMapUv ? '#define ANISOTROPYMAP_UV ' + parameters.anisotropyMapUv : '',\n\n\t\t\tparameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '',\n\t\t\tparameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '',\n\t\t\tparameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '',\n\n\t\t\tparameters.iridescenceMapUv ? '#define IRIDESCENCEMAP_UV ' + parameters.iridescenceMapUv : '',\n\t\t\tparameters.iridescenceThicknessMapUv ? '#define IRIDESCENCE_THICKNESSMAP_UV ' + parameters.iridescenceThicknessMapUv : '',\n\n\t\t\tparameters.sheenColorMapUv ? '#define SHEEN_COLORMAP_UV ' + parameters.sheenColorMapUv : '',\n\t\t\tparameters.sheenRoughnessMapUv ? '#define SHEEN_ROUGHNESSMAP_UV ' + parameters.sheenRoughnessMapUv : '',\n\n\t\t\tparameters.specularMapUv ? '#define SPECULARMAP_UV ' + parameters.specularMapUv : '',\n\t\t\tparameters.specularColorMapUv ? '#define SPECULAR_COLORMAP_UV ' + parameters.specularColorMapUv : '',\n\t\t\tparameters.specularIntensityMapUv ? '#define SPECULAR_INTENSITYMAP_UV ' + parameters.specularIntensityMapUv : '',\n\n\t\t\tparameters.transmissionMapUv ? '#define TRANSMISSIONMAP_UV ' + parameters.transmissionMapUv : '',\n\t\t\tparameters.thicknessMapUv ? '#define THICKNESSMAP_UV ' + parameters.thicknessMapUv : '',\n\n\t\t\t//\n\n\t\t\tparameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUv1s ? '#define USE_UV1' : '',\n\t\t\tparameters.vertexUv2s ? '#define USE_UV2' : '',\n\t\t\tparameters.vertexUv3s ? '#define USE_UV3' : '',\n\n\t\t\tparameters.pointsUvs ? '#define USE_POINTS_UV' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.skinning ? '#define USE_SKINNING' : '',\n\n\t\t\tparameters.morphTargets ? '#define USE_MORPHTARGETS' : '',\n\t\t\tparameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '',\n\t\t\t( parameters.morphColors ) ? '#define USE_MORPHCOLORS' : '',\n\t\t\t( parameters.morphTargetsCount > 0 ) ? '#define MORPHTARGETS_TEXTURE_STRIDE ' + parameters.morphTextureStride : '',\n\t\t\t( parameters.morphTargetsCount > 0 ) ? '#define MORPHTARGETS_COUNT ' + parameters.morphTargetsCount : '',\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',\n\n\t\t\tparameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\tparameters.reverseDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',\n\n\t\t\t'uniform mat4 modelMatrix;',\n\t\t\t'uniform mat4 modelViewMatrix;',\n\t\t\t'uniform mat4 projectionMatrix;',\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform mat3 normalMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t'#ifdef USE_INSTANCING',\n\n\t\t\t'\tattribute mat4 instanceMatrix;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_COLOR',\n\n\t\t\t'\tattribute vec3 instanceColor;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_MORPH',\n\n\t\t\t'\tuniform sampler2D morphTexture;',\n\n\t\t\t'#endif',\n\n\t\t\t'attribute vec3 position;',\n\t\t\t'attribute vec3 normal;',\n\t\t\t'attribute vec2 uv;',\n\n\t\t\t'#ifdef USE_UV1',\n\n\t\t\t'\tattribute vec2 uv1;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_UV2',\n\n\t\t\t'\tattribute vec2 uv2;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_UV3',\n\n\t\t\t'\tattribute vec2 uv3;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_TANGENT',\n\n\t\t\t'\tattribute vec4 tangent;',\n\n\t\t\t'#endif',\n\n\t\t\t'#if defined( USE_COLOR_ALPHA )',\n\n\t\t\t'\tattribute vec4 color;',\n\n\t\t\t'#elif defined( USE_COLOR )',\n\n\t\t\t'\tattribute vec3 color;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_SKINNING',\n\n\t\t\t'\tattribute vec4 skinIndex;',\n\t\t\t'\tattribute vec4 skinWeight;',\n\n\t\t\t'#endif',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tprefixFragment = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.useFog && parameters.fog ? '#define USE_FOG' : '',\n\t\t\tparameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.alphaToCoverage ? '#define ALPHA_TO_COVERAGE' : '',\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.matcap ? '#define USE_MATCAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapTypeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapBlendingDefine : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_WIDTH ' + envMapCubeUVSize.texelWidth : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_HEIGHT ' + envMapCubeUVSize.texelHeight : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_MAX_MIP ' + envMapCubeUVSize.maxMip + '.0' : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\tparameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '',\n\t\t\tparameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\n\t\t\tparameters.anisotropy ? '#define USE_ANISOTROPY' : '',\n\t\t\tparameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '',\n\n\t\t\tparameters.clearcoat ? '#define USE_CLEARCOAT' : '',\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.dispersion ? '#define USE_DISPERSION' : '',\n\n\t\t\tparameters.iridescence ? '#define USE_IRIDESCENCE' : '',\n\t\t\tparameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '',\n\t\t\tparameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaTest ? '#define USE_ALPHATEST' : '',\n\t\t\tparameters.alphaHash ? '#define USE_ALPHAHASH' : '',\n\n\t\t\tparameters.sheen ? '#define USE_SHEEN' : '',\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors || parameters.instancingColor || parameters.batchingColor ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUv1s ? '#define USE_UV1' : '',\n\t\t\tparameters.vertexUv2s ? '#define USE_UV2' : '',\n\t\t\tparameters.vertexUv3s ? '#define USE_UV3' : '',\n\n\t\t\tparameters.pointsUvs ? '#define USE_POINTS_UV' : '',\n\n\t\t\tparameters.gradientMap ? '#define USE_GRADIENTMAP' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '',\n\n\t\t\tparameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',\n\n\t\t\tparameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',\n\t\t\tparameters.decodeVideoTextureEmissive ? '#define DECODE_VIDEO_TEXTURE_EMISSIVE' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\tparameters.reverseDepthBuffer ? '#define USE_REVERSEDEPTHBUF' : '',\n\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? '#define TONE_MAPPING' : '',\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? ShaderChunk[ 'tonemapping_pars_fragment' ] : '', // this code is required here because it is used by the toneMapping() function defined below\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? getToneMappingFunction( 'toneMapping', parameters.toneMapping ) : '',\n\n\t\t\tparameters.dithering ? '#define DITHERING' : '',\n\t\t\tparameters.opaque ? '#define OPAQUE' : '',\n\n\t\t\tShaderChunk[ 'colorspace_pars_fragment' ], // this code is required here because it is used by the various encoding/decoding function defined below\n\t\t\tgetTexelEncodingFunction( 'linearToOutputTexel', parameters.outputColorSpace ),\n\t\t\tgetLuminanceFunction(),\n\n\t\t\tparameters.useDepthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t}\n\n\tvertexShader = resolveIncludes( vertexShader );\n\tvertexShader = replaceLightNums( vertexShader, parameters );\n\tvertexShader = replaceClippingPlaneNums( vertexShader, parameters );\n\n\tfragmentShader = resolveIncludes( fragmentShader );\n\tfragmentShader = replaceLightNums( fragmentShader, parameters );\n\tfragmentShader = replaceClippingPlaneNums( fragmentShader, parameters );\n\n\tvertexShader = unrollLoops( vertexShader );\n\tfragmentShader = unrollLoops( fragmentShader );\n\n\tif ( parameters.isRawShaderMaterial !== true ) {\n\n\t\t// GLSL 3.0 conversion for built-in materials and ShaderMaterial\n\n\t\tversionString = '#version 300 es\\n';\n\n\t\tprefixVertex = [\n\t\t\tcustomVertexExtensions,\n\t\t\t'#define attribute in',\n\t\t\t'#define varying out',\n\t\t\t'#define texture2D texture'\n\t\t].join( '\\n' ) + '\\n' + prefixVertex;\n\n\t\tprefixFragment = [\n\t\t\t'#define varying in',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : 'layout(location = 0) out highp vec4 pc_fragColor;',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : '#define gl_FragColor pc_fragColor',\n\t\t\t'#define gl_FragDepthEXT gl_FragDepth',\n\t\t\t'#define texture2D texture',\n\t\t\t'#define textureCube texture',\n\t\t\t'#define texture2DProj textureProj',\n\t\t\t'#define texture2DLodEXT textureLod',\n\t\t\t'#define texture2DProjLodEXT textureProjLod',\n\t\t\t'#define textureCubeLodEXT textureLod',\n\t\t\t'#define texture2DGradEXT textureGrad',\n\t\t\t'#define texture2DProjGradEXT textureProjGrad',\n\t\t\t'#define textureCubeGradEXT textureGrad'\n\t\t].join( '\\n' ) + '\\n' + prefixFragment;\n\n\t}\n\n\tconst vertexGlsl = versionString + prefixVertex + vertexShader;\n\tconst fragmentGlsl = versionString + prefixFragment + fragmentShader;\n\n\t// console.log( '*VERTEX*', vertexGlsl );\n\t// console.log( '*FRAGMENT*', fragmentGlsl );\n\n\tconst glVertexShader = WebGLShader( gl, gl.VERTEX_SHADER, vertexGlsl );\n\tconst glFragmentShader = WebGLShader( gl, gl.FRAGMENT_SHADER, fragmentGlsl );\n\n\tgl.attachShader( program, glVertexShader );\n\tgl.attachShader( program, glFragmentShader );\n\n\t// Force a particular attribute to index 0.\n\n\tif ( parameters.index0AttributeName !== undefined ) {\n\n\t\tgl.bindAttribLocation( program, 0, parameters.index0AttributeName );\n\n\t} else if ( parameters.morphTargets === true ) {\n\n\t\t// programs with morphTargets displace position out of attribute 0\n\t\tgl.bindAttribLocation( program, 0, 'position' );\n\n\t}\n\n\tgl.linkProgram( program );\n\n\tfunction onFirstUse( self ) {\n\n\t\t// check for link errors\n\t\tif ( renderer.debug.checkShaderErrors ) {\n\n\t\t\tconst programLog = gl.getProgramInfoLog( program ).trim();\n\t\t\tconst vertexLog = gl.getShaderInfoLog( glVertexShader ).trim();\n\t\t\tconst fragmentLog = gl.getShaderInfoLog( glFragmentShader ).trim();\n\n\t\t\tlet runnable = true;\n\t\t\tlet haveDiagnostics = true;\n\n\t\t\tif ( gl.getProgramParameter( program, gl.LINK_STATUS ) === false ) {\n\n\t\t\t\trunnable = false;\n\n\t\t\t\tif ( typeof renderer.debug.onShaderError === 'function' ) {\n\n\t\t\t\t\trenderer.debug.onShaderError( gl, program, glVertexShader, glFragmentShader );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// default error reporting\n\n\t\t\t\t\tconst vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );\n\t\t\t\t\tconst fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );\n\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +\n\t\t\t\t\t\t'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\\n\\n' +\n\t\t\t\t\t\t'Material Name: ' + self.name + '\\n' +\n\t\t\t\t\t\t'Material Type: ' + self.type + '\\n\\n' +\n\t\t\t\t\t\t'Program Info Log: ' + programLog + '\\n' +\n\t\t\t\t\t\tvertexErrors + '\\n' +\n\t\t\t\t\t\tfragmentErrors\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t} else if ( programLog !== '' ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram: Program Info Log:', programLog );\n\n\t\t\t} else if ( vertexLog === '' || fragmentLog === '' ) {\n\n\t\t\t\thaveDiagnostics = false;\n\n\t\t\t}\n\n\t\t\tif ( haveDiagnostics ) {\n\n\t\t\t\tself.diagnostics = {\n\n\t\t\t\t\trunnable: runnable,\n\n\t\t\t\t\tprogramLog: programLog,\n\n\t\t\t\t\tvertexShader: {\n\n\t\t\t\t\t\tlog: vertexLog,\n\t\t\t\t\t\tprefix: prefixVertex\n\n\t\t\t\t\t},\n\n\t\t\t\t\tfragmentShader: {\n\n\t\t\t\t\t\tlog: fragmentLog,\n\t\t\t\t\t\tprefix: prefixFragment\n\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Clean up\n\n\t\t// Crashes in iOS9 and iOS10. #18402\n\t\t// gl.detachShader( program, glVertexShader );\n\t\t// gl.detachShader( program, glFragmentShader );\n\n\t\tgl.deleteShader( glVertexShader );\n\t\tgl.deleteShader( glFragmentShader );\n\n\t\tcachedUniforms = new WebGLUniforms( gl, program );\n\t\tcachedAttributes = fetchAttributeLocations( gl, program );\n\n\t}\n\n\t// set up caching for uniform locations\n\n\tlet cachedUniforms;\n\n\tthis.getUniforms = function () {\n\n\t\tif ( cachedUniforms === undefined ) {\n\n\t\t\t// Populates cachedUniforms and cachedAttributes\n\t\t\tonFirstUse( this );\n\n\t\t}\n\n\t\treturn cachedUniforms;\n\n\t};\n\n\t// set up caching for attribute locations\n\n\tlet cachedAttributes;\n\n\tthis.getAttributes = function () {\n\n\t\tif ( cachedAttributes === undefined ) {\n\n\t\t\t// Populates cachedAttributes and cachedUniforms\n\t\t\tonFirstUse( this );\n\n\t\t}\n\n\t\treturn cachedAttributes;\n\n\t};\n\n\t// indicate when the program is ready to be used. if the KHR_parallel_shader_compile extension isn't supported,\n\t// flag the program as ready immediately. It may cause a stall when it's first used.\n\n\tlet programReady = ( parameters.rendererExtensionParallelShaderCompile === false );\n\n\tthis.isReady = function () {\n\n\t\tif ( programReady === false ) {\n\n\t\t\tprogramReady = gl.getProgramParameter( program, COMPLETION_STATUS_KHR );\n\n\t\t}\n\n\t\treturn programReady;\n\n\t};\n\n\t// free resource\n\n\tthis.destroy = function () {\n\n\t\tbindingStates.releaseStatesOfProgram( this );\n\n\t\tgl.deleteProgram( program );\n\t\tthis.program = undefined;\n\n\t};\n\n\t//\n\n\tthis.type = parameters.shaderType;\n\tthis.name = parameters.shaderName;\n\tthis.id = programIdCount ++;\n\tthis.cacheKey = cacheKey;\n\tthis.usedTimes = 1;\n\tthis.program = program;\n\tthis.vertexShader = glVertexShader;\n\tthis.fragmentShader = glFragmentShader;\n\n\treturn this;\n\n}\n\nlet _id$1 = 0;\n\nclass WebGLShaderCache {\n\n\tconstructor() {\n\n\t\tthis.shaderCache = new Map();\n\t\tthis.materialCache = new Map();\n\n\t}\n\n\tupdate( material ) {\n\n\t\tconst vertexShader = material.vertexShader;\n\t\tconst fragmentShader = material.fragmentShader;\n\n\t\tconst vertexShaderStage = this._getShaderStage( vertexShader );\n\t\tconst fragmentShaderStage = this._getShaderStage( fragmentShader );\n\n\t\tconst materialShaders = this._getShaderCacheForMaterial( material );\n\n\t\tif ( materialShaders.has( vertexShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( vertexShaderStage );\n\t\t\tvertexShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\tif ( materialShaders.has( fragmentShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( fragmentShaderStage );\n\t\t\tfragmentShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( material ) {\n\n\t\tconst materialShaders = this.materialCache.get( material );\n\n\t\tfor ( const shaderStage of materialShaders ) {\n\n\t\t\tshaderStage.usedTimes --;\n\n\t\t\tif ( shaderStage.usedTimes === 0 ) this.shaderCache.delete( shaderStage.code );\n\n\t\t}\n\n\t\tthis.materialCache.delete( material );\n\n\t\treturn this;\n\n\t}\n\n\tgetVertexShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.vertexShader ).id;\n\n\t}\n\n\tgetFragmentShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.fragmentShader ).id;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shaderCache.clear();\n\t\tthis.materialCache.clear();\n\n\t}\n\n\t_getShaderCacheForMaterial( material ) {\n\n\t\tconst cache = this.materialCache;\n\t\tlet set = cache.get( material );\n\n\t\tif ( set === undefined ) {\n\n\t\t\tset = new Set();\n\t\t\tcache.set( material, set );\n\n\t\t}\n\n\t\treturn set;\n\n\t}\n\n\t_getShaderStage( code ) {\n\n\t\tconst cache = this.shaderCache;\n\t\tlet stage = cache.get( code );\n\n\t\tif ( stage === undefined ) {\n\n\t\t\tstage = new WebGLShaderStage( code );\n\t\t\tcache.set( code, stage );\n\n\t\t}\n\n\t\treturn stage;\n\n\t}\n\n}\n\nclass WebGLShaderStage {\n\n\tconstructor( code ) {\n\n\t\tthis.id = _id$1 ++;\n\n\t\tthis.code = code;\n\t\tthis.usedTimes = 0;\n\n\t}\n\n}\n\nfunction WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {\n\n\tconst _programLayers = new Layers();\n\tconst _customShaders = new WebGLShaderCache();\n\tconst _activeChannels = new Set();\n\tconst programs = [];\n\n\tconst logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n\tconst SUPPORTS_VERTEX_TEXTURES = capabilities.vertexTextures;\n\n\tlet precision = capabilities.precision;\n\n\tconst shaderIDs = {\n\t\tMeshDepthMaterial: 'depth',\n\t\tMeshDistanceMaterial: 'distanceRGBA',\n\t\tMeshNormalMaterial: 'normal',\n\t\tMeshBasicMaterial: 'basic',\n\t\tMeshLambertMaterial: 'lambert',\n\t\tMeshPhongMaterial: 'phong',\n\t\tMeshToonMaterial: 'toon',\n\t\tMeshStandardMaterial: 'physical',\n\t\tMeshPhysicalMaterial: 'physical',\n\t\tMeshMatcapMaterial: 'matcap',\n\t\tLineBasicMaterial: 'basic',\n\t\tLineDashedMaterial: 'dashed',\n\t\tPointsMaterial: 'points',\n\t\tShadowMaterial: 'shadow',\n\t\tSpriteMaterial: 'sprite'\n\t};\n\n\tfunction getChannel( value ) {\n\n\t\t_activeChannels.add( value );\n\n\t\tif ( value === 0 ) return 'uv';\n\n\t\treturn `uv${ value }`;\n\n\t}\n\n\tfunction getParameters( material, lights, shadows, scene, object ) {\n\n\t\tconst fog = scene.fog;\n\t\tconst geometry = object.geometry;\n\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\n\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\tconst envMapCubeUVHeight = ( !! envMap ) && ( envMap.mapping === CubeUVReflectionMapping ) ? envMap.image.height : null;\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\n\t\t// heuristics to create shader parameters according to lights in the scene\n\t\t// (not to blow over maxLights budget)\n\n\t\tif ( material.precision !== null ) {\n\n\t\t\tprecision = capabilities.getMaxPrecision( material.precision );\n\n\t\t\tif ( precision !== material.precision ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tlet morphTextureStride = 0;\n\n\t\tif ( geometry.morphAttributes.position !== undefined ) morphTextureStride = 1;\n\t\tif ( geometry.morphAttributes.normal !== undefined ) morphTextureStride = 2;\n\t\tif ( geometry.morphAttributes.color !== undefined ) morphTextureStride = 3;\n\n\t\t//\n\n\t\tlet vertexShader, fragmentShader;\n\t\tlet customVertexShaderID, customFragmentShaderID;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\n\t\t\tvertexShader = shader.vertexShader;\n\t\t\tfragmentShader = shader.fragmentShader;\n\n\t\t} else {\n\n\t\t\tvertexShader = material.vertexShader;\n\t\t\tfragmentShader = material.fragmentShader;\n\n\t\t\t_customShaders.update( material );\n\n\t\t\tcustomVertexShaderID = _customShaders.getVertexShaderID( material );\n\t\t\tcustomFragmentShaderID = _customShaders.getFragmentShaderID( material );\n\n\t\t}\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst reverseDepthBuffer = renderer.state.buffers.depth.getReversed();\n\n\t\tconst IS_INSTANCEDMESH = object.isInstancedMesh === true;\n\t\tconst IS_BATCHEDMESH = object.isBatchedMesh === true;\n\n\t\tconst HAS_MAP = !! material.map;\n\t\tconst HAS_MATCAP = !! material.matcap;\n\t\tconst HAS_ENVMAP = !! envMap;\n\t\tconst HAS_AOMAP = !! material.aoMap;\n\t\tconst HAS_LIGHTMAP = !! material.lightMap;\n\t\tconst HAS_BUMPMAP = !! material.bumpMap;\n\t\tconst HAS_NORMALMAP = !! material.normalMap;\n\t\tconst HAS_DISPLACEMENTMAP = !! material.displacementMap;\n\t\tconst HAS_EMISSIVEMAP = !! material.emissiveMap;\n\n\t\tconst HAS_METALNESSMAP = !! material.metalnessMap;\n\t\tconst HAS_ROUGHNESSMAP = !! material.roughnessMap;\n\n\t\tconst HAS_ANISOTROPY = material.anisotropy > 0;\n\t\tconst HAS_CLEARCOAT = material.clearcoat > 0;\n\t\tconst HAS_DISPERSION = material.dispersion > 0;\n\t\tconst HAS_IRIDESCENCE = material.iridescence > 0;\n\t\tconst HAS_SHEEN = material.sheen > 0;\n\t\tconst HAS_TRANSMISSION = material.transmission > 0;\n\n\t\tconst HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap;\n\n\t\tconst HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap;\n\t\tconst HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap;\n\t\tconst HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap;\n\n\t\tconst HAS_IRIDESCENCEMAP = HAS_IRIDESCENCE && !! material.iridescenceMap;\n\t\tconst HAS_IRIDESCENCE_THICKNESSMAP = HAS_IRIDESCENCE && !! material.iridescenceThicknessMap;\n\n\t\tconst HAS_SHEEN_COLORMAP = HAS_SHEEN && !! material.sheenColorMap;\n\t\tconst HAS_SHEEN_ROUGHNESSMAP = HAS_SHEEN && !! material.sheenRoughnessMap;\n\n\t\tconst HAS_SPECULARMAP = !! material.specularMap;\n\t\tconst HAS_SPECULAR_COLORMAP = !! material.specularColorMap;\n\t\tconst HAS_SPECULAR_INTENSITYMAP = !! material.specularIntensityMap;\n\n\t\tconst HAS_TRANSMISSIONMAP = HAS_TRANSMISSION && !! material.transmissionMap;\n\t\tconst HAS_THICKNESSMAP = HAS_TRANSMISSION && !! material.thicknessMap;\n\n\t\tconst HAS_GRADIENTMAP = !! material.gradientMap;\n\n\t\tconst HAS_ALPHAMAP = !! material.alphaMap;\n\n\t\tconst HAS_ALPHATEST = material.alphaTest > 0;\n\n\t\tconst HAS_ALPHAHASH = !! material.alphaHash;\n\n\t\tconst HAS_EXTENSIONS = !! material.extensions;\n\n\t\tlet toneMapping = NoToneMapping;\n\n\t\tif ( material.toneMapped ) {\n\n\t\t\tif ( currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\t\t\ttoneMapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst parameters = {\n\n\t\t\tshaderID: shaderID,\n\t\t\tshaderType: material.type,\n\t\t\tshaderName: material.name,\n\n\t\t\tvertexShader: vertexShader,\n\t\t\tfragmentShader: fragmentShader,\n\t\t\tdefines: material.defines,\n\n\t\t\tcustomVertexShaderID: customVertexShaderID,\n\t\t\tcustomFragmentShaderID: customFragmentShaderID,\n\n\t\t\tisRawShaderMaterial: material.isRawShaderMaterial === true,\n\t\t\tglslVersion: material.glslVersion,\n\n\t\t\tprecision: precision,\n\n\t\t\tbatching: IS_BATCHEDMESH,\n\t\t\tbatchingColor: IS_BATCHEDMESH && object._colorsTexture !== null,\n\t\t\tinstancing: IS_INSTANCEDMESH,\n\t\t\tinstancingColor: IS_INSTANCEDMESH && object.instanceColor !== null,\n\t\t\tinstancingMorph: IS_INSTANCEDMESH && object.morphTexture !== null,\n\n\t\t\tsupportsVertexTextures: SUPPORTS_VERTEX_TEXTURES,\n\t\t\toutputColorSpace: ( currentRenderTarget === null ) ? renderer.outputColorSpace : ( currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace ),\n\t\t\talphaToCoverage: !! material.alphaToCoverage,\n\n\t\t\tmap: HAS_MAP,\n\t\t\tmatcap: HAS_MATCAP,\n\t\t\tenvMap: HAS_ENVMAP,\n\t\t\tenvMapMode: HAS_ENVMAP && envMap.mapping,\n\t\t\tenvMapCubeUVHeight: envMapCubeUVHeight,\n\t\t\taoMap: HAS_AOMAP,\n\t\t\tlightMap: HAS_LIGHTMAP,\n\t\t\tbumpMap: HAS_BUMPMAP,\n\t\t\tnormalMap: HAS_NORMALMAP,\n\t\t\tdisplacementMap: SUPPORTS_VERTEX_TEXTURES && HAS_DISPLACEMENTMAP,\n\t\t\temissiveMap: HAS_EMISSIVEMAP,\n\n\t\t\tnormalMapObjectSpace: HAS_NORMALMAP && material.normalMapType === ObjectSpaceNormalMap,\n\t\t\tnormalMapTangentSpace: HAS_NORMALMAP && material.normalMapType === TangentSpaceNormalMap,\n\n\t\t\tmetalnessMap: HAS_METALNESSMAP,\n\t\t\troughnessMap: HAS_ROUGHNESSMAP,\n\n\t\t\tanisotropy: HAS_ANISOTROPY,\n\t\t\tanisotropyMap: HAS_ANISOTROPYMAP,\n\n\t\t\tclearcoat: HAS_CLEARCOAT,\n\t\t\tclearcoatMap: HAS_CLEARCOATMAP,\n\t\t\tclearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP,\n\t\t\tclearcoatRoughnessMap: HAS_CLEARCOAT_ROUGHNESSMAP,\n\n\t\t\tdispersion: HAS_DISPERSION,\n\n\t\t\tiridescence: HAS_IRIDESCENCE,\n\t\t\tiridescenceMap: HAS_IRIDESCENCEMAP,\n\t\t\tiridescenceThicknessMap: HAS_IRIDESCENCE_THICKNESSMAP,\n\n\t\t\tsheen: HAS_SHEEN,\n\t\t\tsheenColorMap: HAS_SHEEN_COLORMAP,\n\t\t\tsheenRoughnessMap: HAS_SHEEN_ROUGHNESSMAP,\n\n\t\t\tspecularMap: HAS_SPECULARMAP,\n\t\t\tspecularColorMap: HAS_SPECULAR_COLORMAP,\n\t\t\tspecularIntensityMap: HAS_SPECULAR_INTENSITYMAP,\n\n\t\t\ttransmission: HAS_TRANSMISSION,\n\t\t\ttransmissionMap: HAS_TRANSMISSIONMAP,\n\t\t\tthicknessMap: HAS_THICKNESSMAP,\n\n\t\t\tgradientMap: HAS_GRADIENTMAP,\n\n\t\t\topaque: material.transparent === false && material.blending === NormalBlending && material.alphaToCoverage === false,\n\n\t\t\talphaMap: HAS_ALPHAMAP,\n\t\t\talphaTest: HAS_ALPHATEST,\n\t\t\talphaHash: HAS_ALPHAHASH,\n\n\t\t\tcombine: material.combine,\n\n\t\t\t//\n\n\t\t\tmapUv: HAS_MAP && getChannel( material.map.channel ),\n\t\t\taoMapUv: HAS_AOMAP && getChannel( material.aoMap.channel ),\n\t\t\tlightMapUv: HAS_LIGHTMAP && getChannel( material.lightMap.channel ),\n\t\t\tbumpMapUv: HAS_BUMPMAP && getChannel( material.bumpMap.channel ),\n\t\t\tnormalMapUv: HAS_NORMALMAP && getChannel( material.normalMap.channel ),\n\t\t\tdisplacementMapUv: HAS_DISPLACEMENTMAP && getChannel( material.displacementMap.channel ),\n\t\t\temissiveMapUv: HAS_EMISSIVEMAP && getChannel( material.emissiveMap.channel ),\n\n\t\t\tmetalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ),\n\t\t\troughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ),\n\n\t\t\tanisotropyMapUv: HAS_ANISOTROPYMAP && getChannel( material.anisotropyMap.channel ),\n\n\t\t\tclearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ),\n\t\t\tclearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ),\n\t\t\tclearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ),\n\n\t\t\tiridescenceMapUv: HAS_IRIDESCENCEMAP && getChannel( material.iridescenceMap.channel ),\n\t\t\tiridescenceThicknessMapUv: HAS_IRIDESCENCE_THICKNESSMAP && getChannel( material.iridescenceThicknessMap.channel ),\n\n\t\t\tsheenColorMapUv: HAS_SHEEN_COLORMAP && getChannel( material.sheenColorMap.channel ),\n\t\t\tsheenRoughnessMapUv: HAS_SHEEN_ROUGHNESSMAP && getChannel( material.sheenRoughnessMap.channel ),\n\n\t\t\tspecularMapUv: HAS_SPECULARMAP && getChannel( material.specularMap.channel ),\n\t\t\tspecularColorMapUv: HAS_SPECULAR_COLORMAP && getChannel( material.specularColorMap.channel ),\n\t\t\tspecularIntensityMapUv: HAS_SPECULAR_INTENSITYMAP && getChannel( material.specularIntensityMap.channel ),\n\n\t\t\ttransmissionMapUv: HAS_TRANSMISSIONMAP && getChannel( material.transmissionMap.channel ),\n\t\t\tthicknessMapUv: HAS_THICKNESSMAP && getChannel( material.thicknessMap.channel ),\n\n\t\t\talphaMapUv: HAS_ALPHAMAP && getChannel( material.alphaMap.channel ),\n\n\t\t\t//\n\n\t\t\tvertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP || HAS_ANISOTROPY ),\n\t\t\tvertexColors: material.vertexColors,\n\t\t\tvertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4,\n\n\t\t\tpointsUvs: object.isPoints === true && !! geometry.attributes.uv && ( HAS_MAP || HAS_ALPHAMAP ),\n\n\t\t\tfog: !! fog,\n\t\t\tuseFog: material.fog === true,\n\t\t\tfogExp2: ( !! fog && fog.isFogExp2 ),\n\n\t\t\tflatShading: material.flatShading === true,\n\n\t\t\tsizeAttenuation: material.sizeAttenuation === true,\n\t\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\t\t\treverseDepthBuffer: reverseDepthBuffer,\n\n\t\t\tskinning: object.isSkinnedMesh === true,\n\n\t\t\tmorphTargets: geometry.morphAttributes.position !== undefined,\n\t\t\tmorphNormals: geometry.morphAttributes.normal !== undefined,\n\t\t\tmorphColors: geometry.morphAttributes.color !== undefined,\n\t\t\tmorphTargetsCount: morphTargetsCount,\n\t\t\tmorphTextureStride: morphTextureStride,\n\n\t\t\tnumDirLights: lights.directional.length,\n\t\t\tnumPointLights: lights.point.length,\n\t\t\tnumSpotLights: lights.spot.length,\n\t\t\tnumSpotLightMaps: lights.spotLightMap.length,\n\t\t\tnumRectAreaLights: lights.rectArea.length,\n\t\t\tnumHemiLights: lights.hemi.length,\n\n\t\t\tnumDirLightShadows: lights.directionalShadowMap.length,\n\t\t\tnumPointLightShadows: lights.pointShadowMap.length,\n\t\t\tnumSpotLightShadows: lights.spotShadowMap.length,\n\t\t\tnumSpotLightShadowsWithMaps: lights.numSpotLightShadowsWithMaps,\n\n\t\t\tnumLightProbes: lights.numLightProbes,\n\n\t\t\tnumClippingPlanes: clipping.numPlanes,\n\t\t\tnumClipIntersection: clipping.numIntersection,\n\n\t\t\tdithering: material.dithering,\n\n\t\t\tshadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n\t\t\tshadowMapType: renderer.shadowMap.type,\n\n\t\t\ttoneMapping: toneMapping,\n\n\t\t\tdecodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( ColorManagement.getTransfer( material.map.colorSpace ) === SRGBTransfer ),\n\t\t\tdecodeVideoTextureEmissive: HAS_EMISSIVEMAP && ( material.emissiveMap.isVideoTexture === true ) && ( ColorManagement.getTransfer( material.emissiveMap.colorSpace ) === SRGBTransfer ),\n\n\t\t\tpremultipliedAlpha: material.premultipliedAlpha,\n\n\t\t\tdoubleSided: material.side === DoubleSide,\n\t\t\tflipSided: material.side === BackSide,\n\n\t\t\tuseDepthPacking: material.depthPacking >= 0,\n\t\t\tdepthPacking: material.depthPacking || 0,\n\n\t\t\tindex0AttributeName: material.index0AttributeName,\n\n\t\t\textensionClipCullDistance: HAS_EXTENSIONS && material.extensions.clipCullDistance === true && extensions.has( 'WEBGL_clip_cull_distance' ),\n\t\t\textensionMultiDraw: ( HAS_EXTENSIONS && material.extensions.multiDraw === true || IS_BATCHEDMESH ) && extensions.has( 'WEBGL_multi_draw' ),\n\n\t\t\trendererExtensionParallelShaderCompile: extensions.has( 'KHR_parallel_shader_compile' ),\n\n\t\t\tcustomProgramCacheKey: material.customProgramCacheKey()\n\n\t\t};\n\n\t\t// the usage of getChannel() determines the active texture channels for this shader\n\n\t\tparameters.vertexUv1s = _activeChannels.has( 1 );\n\t\tparameters.vertexUv2s = _activeChannels.has( 2 );\n\t\tparameters.vertexUv3s = _activeChannels.has( 3 );\n\n\t\t_activeChannels.clear();\n\n\t\treturn parameters;\n\n\t}\n\n\tfunction getProgramCacheKey( parameters ) {\n\n\t\tconst array = [];\n\n\t\tif ( parameters.shaderID ) {\n\n\t\t\tarray.push( parameters.shaderID );\n\n\t\t} else {\n\n\t\t\tarray.push( parameters.customVertexShaderID );\n\t\t\tarray.push( parameters.customFragmentShaderID );\n\n\t\t}\n\n\t\tif ( parameters.defines !== undefined ) {\n\n\t\t\tfor ( const name in parameters.defines ) {\n\n\t\t\t\tarray.push( name );\n\t\t\t\tarray.push( parameters.defines[ name ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( parameters.isRawShaderMaterial === false ) {\n\n\t\t\tgetProgramCacheKeyParameters( array, parameters );\n\t\t\tgetProgramCacheKeyBooleans( array, parameters );\n\t\t\tarray.push( renderer.outputColorSpace );\n\n\t\t}\n\n\t\tarray.push( parameters.customProgramCacheKey );\n\n\t\treturn array.join();\n\n\t}\n\n\tfunction getProgramCacheKeyParameters( array, parameters ) {\n\n\t\tarray.push( parameters.precision );\n\t\tarray.push( parameters.outputColorSpace );\n\t\tarray.push( parameters.envMapMode );\n\t\tarray.push( parameters.envMapCubeUVHeight );\n\t\tarray.push( parameters.mapUv );\n\t\tarray.push( parameters.alphaMapUv );\n\t\tarray.push( parameters.lightMapUv );\n\t\tarray.push( parameters.aoMapUv );\n\t\tarray.push( parameters.bumpMapUv );\n\t\tarray.push( parameters.normalMapUv );\n\t\tarray.push( parameters.displacementMapUv );\n\t\tarray.push( parameters.emissiveMapUv );\n\t\tarray.push( parameters.metalnessMapUv );\n\t\tarray.push( parameters.roughnessMapUv );\n\t\tarray.push( parameters.anisotropyMapUv );\n\t\tarray.push( parameters.clearcoatMapUv );\n\t\tarray.push( parameters.clearcoatNormalMapUv );\n\t\tarray.push( parameters.clearcoatRoughnessMapUv );\n\t\tarray.push( parameters.iridescenceMapUv );\n\t\tarray.push( parameters.iridescenceThicknessMapUv );\n\t\tarray.push( parameters.sheenColorMapUv );\n\t\tarray.push( parameters.sheenRoughnessMapUv );\n\t\tarray.push( parameters.specularMapUv );\n\t\tarray.push( parameters.specularColorMapUv );\n\t\tarray.push( parameters.specularIntensityMapUv );\n\t\tarray.push( parameters.transmissionMapUv );\n\t\tarray.push( parameters.thicknessMapUv );\n\t\tarray.push( parameters.combine );\n\t\tarray.push( parameters.fogExp2 );\n\t\tarray.push( parameters.sizeAttenuation );\n\t\tarray.push( parameters.morphTargetsCount );\n\t\tarray.push( parameters.morphAttributeCount );\n\t\tarray.push( parameters.numDirLights );\n\t\tarray.push( parameters.numPointLights );\n\t\tarray.push( parameters.numSpotLights );\n\t\tarray.push( parameters.numSpotLightMaps );\n\t\tarray.push( parameters.numHemiLights );\n\t\tarray.push( parameters.numRectAreaLights );\n\t\tarray.push( parameters.numDirLightShadows );\n\t\tarray.push( parameters.numPointLightShadows );\n\t\tarray.push( parameters.numSpotLightShadows );\n\t\tarray.push( parameters.numSpotLightShadowsWithMaps );\n\t\tarray.push( parameters.numLightProbes );\n\t\tarray.push( parameters.shadowMapType );\n\t\tarray.push( parameters.toneMapping );\n\t\tarray.push( parameters.numClippingPlanes );\n\t\tarray.push( parameters.numClipIntersection );\n\t\tarray.push( parameters.depthPacking );\n\n\t}\n\n\tfunction getProgramCacheKeyBooleans( array, parameters ) {\n\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.supportsVertexTextures )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.instancing )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.instancingColor )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.instancingMorph )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.matcap )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.envMap )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.normalMapObjectSpace )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.normalMapTangentSpace )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.clearcoat )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.iridescence )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.alphaTest )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.vertexColors )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.vertexAlphas )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.vertexUv1s )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.vertexUv2s )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.vertexUv3s )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.vertexTangents )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.anisotropy )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.alphaHash )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.batching )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.dispersion )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.batchingColor )\n\t\t\t_programLayers.enable( 21 );\n\n\t\tarray.push( _programLayers.mask );\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.fog )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.useFog )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.flatShading )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.logarithmicDepthBuffer )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.reverseDepthBuffer )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.skinning )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.morphTargets )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.morphNormals )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.morphColors )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.premultipliedAlpha )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.shadowMapEnabled )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.doubleSided )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.flipSided )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.useDepthPacking )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.dithering )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.transmission )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.sheen )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.opaque )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.pointsUvs )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.decodeVideoTexture )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.decodeVideoTextureEmissive )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.alphaToCoverage )\n\t\t\t_programLayers.enable( 21 );\n\n\t\tarray.push( _programLayers.mask );\n\n\t}\n\n\tfunction getUniforms( material ) {\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\t\tlet uniforms;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\t\t\tuniforms = UniformsUtils.clone( shader.uniforms );\n\n\t\t} else {\n\n\t\t\tuniforms = material.uniforms;\n\n\t\t}\n\n\t\treturn uniforms;\n\n\t}\n\n\tfunction acquireProgram( parameters, cacheKey ) {\n\n\t\tlet program;\n\n\t\t// Check if code has been already compiled\n\t\tfor ( let p = 0, pl = programs.length; p < pl; p ++ ) {\n\n\t\t\tconst preexistingProgram = programs[ p ];\n\n\t\t\tif ( preexistingProgram.cacheKey === cacheKey ) {\n\n\t\t\t\tprogram = preexistingProgram;\n\t\t\t\t++ program.usedTimes;\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( program === undefined ) {\n\n\t\t\tprogram = new WebGLProgram( renderer, cacheKey, parameters, bindingStates );\n\t\t\tprograms.push( program );\n\n\t\t}\n\n\t\treturn program;\n\n\t}\n\n\tfunction releaseProgram( program ) {\n\n\t\tif ( -- program.usedTimes === 0 ) {\n\n\t\t\t// Remove from unordered set\n\t\t\tconst i = programs.indexOf( program );\n\t\t\tprograms[ i ] = programs[ programs.length - 1 ];\n\t\t\tprograms.pop();\n\n\t\t\t// Free WebGL resources\n\t\t\tprogram.destroy();\n\n\t\t}\n\n\t}\n\n\tfunction releaseShaderCache( material ) {\n\n\t\t_customShaders.remove( material );\n\n\t}\n\n\tfunction dispose() {\n\n\t\t_customShaders.dispose();\n\n\t}\n\n\treturn {\n\t\tgetParameters: getParameters,\n\t\tgetProgramCacheKey: getProgramCacheKey,\n\t\tgetUniforms: getUniforms,\n\t\tacquireProgram: acquireProgram,\n\t\treleaseProgram: releaseProgram,\n\t\treleaseShaderCache: releaseShaderCache,\n\t\t// Exposed for resource monitoring & error feedback via renderer.info:\n\t\tprograms: programs,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLProperties() {\n\n\tlet properties = new WeakMap();\n\n\tfunction has( object ) {\n\n\t\treturn properties.has( object );\n\n\t}\n\n\tfunction get( object ) {\n\n\t\tlet map = properties.get( object );\n\n\t\tif ( map === undefined ) {\n\n\t\t\tmap = {};\n\t\t\tproperties.set( object, map );\n\n\t\t}\n\n\t\treturn map;\n\n\t}\n\n\tfunction remove( object ) {\n\n\t\tproperties.delete( object );\n\n\t}\n\n\tfunction update( object, key, value ) {\n\n\t\tproperties.get( object )[ key ] = value;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tproperties = new WeakMap();\n\n\t}\n\n\treturn {\n\t\thas: has,\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction painterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.material.id !== b.material.id ) {\n\n\t\treturn a.material.id - b.material.id;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn a.z - b.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\nfunction reversePainterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn b.z - a.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\n\nfunction WebGLRenderList() {\n\n\tconst renderItems = [];\n\tlet renderItemsIndex = 0;\n\n\tconst opaque = [];\n\tconst transmissive = [];\n\tconst transparent = [];\n\n\tfunction init() {\n\n\t\trenderItemsIndex = 0;\n\n\t\topaque.length = 0;\n\t\ttransmissive.length = 0;\n\t\ttransparent.length = 0;\n\n\t}\n\n\tfunction getNextRenderItem( object, geometry, material, groupOrder, z, group ) {\n\n\t\tlet renderItem = renderItems[ renderItemsIndex ];\n\n\t\tif ( renderItem === undefined ) {\n\n\t\t\trenderItem = {\n\t\t\t\tid: object.id,\n\t\t\t\tobject: object,\n\t\t\t\tgeometry: geometry,\n\t\t\t\tmaterial: material,\n\t\t\t\tgroupOrder: groupOrder,\n\t\t\t\trenderOrder: object.renderOrder,\n\t\t\t\tz: z,\n\t\t\t\tgroup: group\n\t\t\t};\n\n\t\t\trenderItems[ renderItemsIndex ] = renderItem;\n\n\t\t} else {\n\n\t\t\trenderItem.id = object.id;\n\t\t\trenderItem.object = object;\n\t\t\trenderItem.geometry = geometry;\n\t\t\trenderItem.material = material;\n\t\t\trenderItem.groupOrder = groupOrder;\n\t\t\trenderItem.renderOrder = object.renderOrder;\n\t\t\trenderItem.z = z;\n\t\t\trenderItem.group = group;\n\n\t\t}\n\n\t\trenderItemsIndex ++;\n\n\t\treturn renderItem;\n\n\t}\n\n\tfunction push( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.push( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.push( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.push( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction unshift( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.unshift( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.unshift( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.unshift( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction sort( customOpaqueSort, customTransparentSort ) {\n\n\t\tif ( opaque.length > 1 ) opaque.sort( customOpaqueSort || painterSortStable );\n\t\tif ( transmissive.length > 1 ) transmissive.sort( customTransparentSort || reversePainterSortStable );\n\t\tif ( transparent.length > 1 ) transparent.sort( customTransparentSort || reversePainterSortStable );\n\n\t}\n\n\tfunction finish() {\n\n\t\t// Clear references from inactive renderItems in the list\n\n\t\tfor ( let i = renderItemsIndex, il = renderItems.length; i < il; i ++ ) {\n\n\t\t\tconst renderItem = renderItems[ i ];\n\n\t\t\tif ( renderItem.id === null ) break;\n\n\t\t\trenderItem.id = null;\n\t\t\trenderItem.object = null;\n\t\t\trenderItem.geometry = null;\n\t\t\trenderItem.material = null;\n\t\t\trenderItem.group = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\topaque: opaque,\n\t\ttransmissive: transmissive,\n\t\ttransparent: transparent,\n\n\t\tinit: init,\n\t\tpush: push,\n\t\tunshift: unshift,\n\t\tfinish: finish,\n\n\t\tsort: sort\n\t};\n\n}\n\nfunction WebGLRenderLists() {\n\n\tlet lists = new WeakMap();\n\n\tfunction get( scene, renderCallDepth ) {\n\n\t\tconst listArray = lists.get( scene );\n\t\tlet list;\n\n\t\tif ( listArray === undefined ) {\n\n\t\t\tlist = new WebGLRenderList();\n\t\t\tlists.set( scene, [ list ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= listArray.length ) {\n\n\t\t\t\tlist = new WebGLRenderList();\n\t\t\t\tlistArray.push( list );\n\n\t\t\t} else {\n\n\t\t\t\tlist = listArray[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn list;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tlists = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction UniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tconeCos: 0,\n\t\t\t\t\t\tpenumbraCos: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'HemisphereLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tskyColor: new Color(),\n\t\t\t\t\t\tgroundColor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'RectAreaLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\thalfWidth: new Vector3(),\n\t\t\t\t\t\thalfHeight: new Vector3()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\nfunction ShadowUniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2(),\n\t\t\t\t\t\tshadowCameraNear: 1,\n\t\t\t\t\t\tshadowCameraFar: 1000\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\t// TODO (abelnation): set RectAreaLight shadow uniforms\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\n\n\nlet nextVersion = 0;\n\nfunction shadowCastingAndTexturingLightsFirst( lightA, lightB ) {\n\n\treturn ( lightB.castShadow ? 2 : 0 ) - ( lightA.castShadow ? 2 : 0 ) + ( lightB.map ? 1 : 0 ) - ( lightA.map ? 1 : 0 );\n\n}\n\nfunction WebGLLights( extensions ) {\n\n\tconst cache = new UniformsCache();\n\n\tconst shadowCache = ShadowUniformsCache();\n\n\tconst state = {\n\n\t\tversion: 0,\n\n\t\thash: {\n\t\t\tdirectionalLength: - 1,\n\t\t\tpointLength: - 1,\n\t\t\tspotLength: - 1,\n\t\t\trectAreaLength: - 1,\n\t\t\themiLength: - 1,\n\n\t\t\tnumDirectionalShadows: - 1,\n\t\t\tnumPointShadows: - 1,\n\t\t\tnumSpotShadows: - 1,\n\t\t\tnumSpotMaps: - 1,\n\n\t\t\tnumLightProbes: - 1\n\t\t},\n\n\t\tambient: [ 0, 0, 0 ],\n\t\tprobe: [],\n\t\tdirectional: [],\n\t\tdirectionalShadow: [],\n\t\tdirectionalShadowMap: [],\n\t\tdirectionalShadowMatrix: [],\n\t\tspot: [],\n\t\tspotLightMap: [],\n\t\tspotShadow: [],\n\t\tspotShadowMap: [],\n\t\tspotLightMatrix: [],\n\t\trectArea: [],\n\t\trectAreaLTC1: null,\n\t\trectAreaLTC2: null,\n\t\tpoint: [],\n\t\tpointShadow: [],\n\t\tpointShadowMap: [],\n\t\tpointShadowMatrix: [],\n\t\themi: [],\n\t\tnumSpotLightShadowsWithMaps: 0,\n\t\tnumLightProbes: 0\n\n\t};\n\n\tfor ( let i = 0; i < 9; i ++ ) state.probe.push( new Vector3() );\n\n\tconst vector3 = new Vector3();\n\tconst matrix4 = new Matrix4();\n\tconst matrix42 = new Matrix4();\n\n\tfunction setup( lights ) {\n\n\t\tlet r = 0, g = 0, b = 0;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) state.probe[ i ].set( 0, 0, 0 );\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tlet numDirectionalShadows = 0;\n\t\tlet numPointShadows = 0;\n\t\tlet numSpotShadows = 0;\n\t\tlet numSpotMaps = 0;\n\t\tlet numSpotShadowsWithMaps = 0;\n\n\t\tlet numLightProbes = 0;\n\n\t\t// ordering : [shadow casting + map texturing, map texturing, shadow casting, none ]\n\t\tlights.sort( shadowCastingAndTexturingLightsFirst );\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tconst color = light.color;\n\t\t\tconst intensity = light.intensity;\n\t\t\tconst distance = light.distance;\n\n\t\t\tconst shadowMap = ( light.shadow && light.shadow.map ) ? light.shadow.map.texture : null;\n\n\t\t\tif ( light.isAmbientLight ) {\n\n\t\t\t\tr += color.r * intensity;\n\t\t\t\tg += color.g * intensity;\n\t\t\t\tb += color.b * intensity;\n\n\t\t\t} else if ( light.isLightProbe ) {\n\n\t\t\t\tfor ( let j = 0; j < 9; j ++ ) {\n\n\t\t\t\t\tstate.probe[ j ].addScaledVector( light.sh.coefficients[ j ], intensity );\n\n\t\t\t\t}\n\n\t\t\t\tnumLightProbes ++;\n\n\t\t\t} else if ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity );\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.directionalShadow[ directionalLength ] = shadowUniforms;\n\t\t\t\t\tstate.directionalShadowMap[ directionalLength ] = shadowMap;\n\t\t\t\t\tstate.directionalShadowMatrix[ directionalLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumDirectionalShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.directional[ directionalLength ] = uniforms;\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\t\t\t\tuniforms.distance = distance;\n\n\t\t\t\tuniforms.coneCos = Math.cos( light.angle );\n\t\t\t\tuniforms.penumbraCos = Math.cos( light.angle * ( 1 - light.penumbra ) );\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tstate.spot[ spotLength ] = uniforms;\n\n\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\tif ( light.map ) {\n\n\t\t\t\t\tstate.spotLightMap[ numSpotMaps ] = light.map;\n\t\t\t\t\tnumSpotMaps ++;\n\n\t\t\t\t\t// make sure the lightMatrix is up to date\n\t\t\t\t\t// TODO : do it if required only\n\t\t\t\t\tshadow.updateMatrices( light );\n\n\t\t\t\t\tif ( light.castShadow ) numSpotShadowsWithMaps ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.spotLightMatrix[ spotLength ] = shadow.matrix;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.spotShadow[ spotLength ] = shadowUniforms;\n\t\t\t\t\tstate.spotShadowMap[ spotLength ] = shadowMap;\n\n\t\t\t\t\tnumSpotShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tstate.rectArea[ rectAreaLength ] = uniforms;\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity );\n\t\t\t\tuniforms.distance = light.distance;\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\t\t\t\t\tshadowUniforms.shadowCameraNear = shadow.camera.near;\n\t\t\t\t\tshadowUniforms.shadowCameraFar = shadow.camera.far;\n\n\t\t\t\t\tstate.pointShadow[ pointLength ] = shadowUniforms;\n\t\t\t\t\tstate.pointShadowMap[ pointLength ] = shadowMap;\n\t\t\t\t\tstate.pointShadowMatrix[ pointLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumPointShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.point[ pointLength ] = uniforms;\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.skyColor.copy( light.color ).multiplyScalar( intensity );\n\t\t\t\tuniforms.groundColor.copy( light.groundColor ).multiplyScalar( intensity );\n\n\t\t\t\tstate.hemi[ hemiLength ] = uniforms;\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( rectAreaLength > 0 ) {\n\n\t\t\tif ( extensions.has( 'OES_texture_float_linear' ) === true ) {\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n\n\t\t\t} else {\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.ambient[ 0 ] = r;\n\t\tstate.ambient[ 1 ] = g;\n\t\tstate.ambient[ 2 ] = b;\n\n\t\tconst hash = state.hash;\n\n\t\tif ( hash.directionalLength !== directionalLength ||\n\t\t\thash.pointLength !== pointLength ||\n\t\t\thash.spotLength !== spotLength ||\n\t\t\thash.rectAreaLength !== rectAreaLength ||\n\t\t\thash.hemiLength !== hemiLength ||\n\t\t\thash.numDirectionalShadows !== numDirectionalShadows ||\n\t\t\thash.numPointShadows !== numPointShadows ||\n\t\t\thash.numSpotShadows !== numSpotShadows ||\n\t\t\thash.numSpotMaps !== numSpotMaps ||\n\t\t\thash.numLightProbes !== numLightProbes ) {\n\n\t\t\tstate.directional.length = directionalLength;\n\t\t\tstate.spot.length = spotLength;\n\t\t\tstate.rectArea.length = rectAreaLength;\n\t\t\tstate.point.length = pointLength;\n\t\t\tstate.hemi.length = hemiLength;\n\n\t\t\tstate.directionalShadow.length = numDirectionalShadows;\n\t\t\tstate.directionalShadowMap.length = numDirectionalShadows;\n\t\t\tstate.pointShadow.length = numPointShadows;\n\t\t\tstate.pointShadowMap.length = numPointShadows;\n\t\t\tstate.spotShadow.length = numSpotShadows;\n\t\t\tstate.spotShadowMap.length = numSpotShadows;\n\t\t\tstate.directionalShadowMatrix.length = numDirectionalShadows;\n\t\t\tstate.pointShadowMatrix.length = numPointShadows;\n\t\t\tstate.spotLightMatrix.length = numSpotShadows + numSpotMaps - numSpotShadowsWithMaps;\n\t\t\tstate.spotLightMap.length = numSpotMaps;\n\t\t\tstate.numSpotLightShadowsWithMaps = numSpotShadowsWithMaps;\n\t\t\tstate.numLightProbes = numLightProbes;\n\n\t\t\thash.directionalLength = directionalLength;\n\t\t\thash.pointLength = pointLength;\n\t\t\thash.spotLength = spotLength;\n\t\t\thash.rectAreaLength = rectAreaLength;\n\t\t\thash.hemiLength = hemiLength;\n\n\t\t\thash.numDirectionalShadows = numDirectionalShadows;\n\t\t\thash.numPointShadows = numPointShadows;\n\t\t\thash.numSpotShadows = numSpotShadows;\n\t\t\thash.numSpotMaps = numSpotMaps;\n\n\t\t\thash.numLightProbes = numLightProbes;\n\n\t\t\tstate.version = nextVersion ++;\n\n\t\t}\n\n\t}\n\n\tfunction setupView( lights, camera ) {\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tconst viewMatrix = camera.matrixWorldInverse;\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tif ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = state.directional[ directionalLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = state.spot[ spotLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = state.rectArea[ rectAreaLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\t// extract local rotation of light to derive width/height half vectors\n\t\t\t\tmatrix42.identity();\n\t\t\t\tmatrix4.copy( light.matrixWorld );\n\t\t\t\tmatrix4.premultiply( viewMatrix );\n\t\t\t\tmatrix42.extractRotation( matrix4 );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tuniforms.halfWidth.applyMatrix4( matrix42 );\n\t\t\t\tuniforms.halfHeight.applyMatrix4( matrix42 );\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = state.point[ pointLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = state.hemi[ hemiLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tsetup: setup,\n\t\tsetupView: setupView,\n\t\tstate: state\n\t};\n\n}\n\nfunction WebGLRenderState( extensions ) {\n\n\tconst lights = new WebGLLights( extensions );\n\n\tconst lightsArray = [];\n\tconst shadowsArray = [];\n\n\tfunction init( camera ) {\n\n\t\tstate.camera = camera;\n\n\t\tlightsArray.length = 0;\n\t\tshadowsArray.length = 0;\n\n\t}\n\n\tfunction pushLight( light ) {\n\n\t\tlightsArray.push( light );\n\n\t}\n\n\tfunction pushShadow( shadowLight ) {\n\n\t\tshadowsArray.push( shadowLight );\n\n\t}\n\n\tfunction setupLights() {\n\n\t\tlights.setup( lightsArray );\n\n\t}\n\n\tfunction setupLightsView( camera ) {\n\n\t\tlights.setupView( lightsArray, camera );\n\n\t}\n\n\tconst state = {\n\t\tlightsArray: lightsArray,\n\t\tshadowsArray: shadowsArray,\n\n\t\tcamera: null,\n\n\t\tlights: lights,\n\n\t\ttransmissionRenderTarget: {}\n\t};\n\n\treturn {\n\t\tinit: init,\n\t\tstate: state,\n\t\tsetupLights: setupLights,\n\t\tsetupLightsView: setupLightsView,\n\n\t\tpushLight: pushLight,\n\t\tpushShadow: pushShadow\n\t};\n\n}\n\nfunction WebGLRenderStates( extensions ) {\n\n\tlet renderStates = new WeakMap();\n\n\tfunction get( scene, renderCallDepth = 0 ) {\n\n\t\tconst renderStateArray = renderStates.get( scene );\n\t\tlet renderState;\n\n\t\tif ( renderStateArray === undefined ) {\n\n\t\t\trenderState = new WebGLRenderState( extensions );\n\t\t\trenderStates.set( scene, [ renderState ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= renderStateArray.length ) {\n\n\t\t\t\trenderState = new WebGLRenderState( extensions );\n\t\t\t\trenderStateArray.push( renderState );\n\n\t\t\t} else {\n\n\t\t\t\trenderState = renderStateArray[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn renderState;\n\n\t}\n\n\tfunction dispose() {\n\n\t\trenderStates = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nclass MeshDepthMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshDepthMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshDepthMaterial = true;\n\n\t\tthis.depthPacking = BasicDepthPacking;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.depthPacking = source.depthPacking;\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshDistanceMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshDistanceMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshDistanceMaterial = true;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst vertex = \"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";\n\nconst fragment = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include \\nvoid main() {\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";\n\nfunction WebGLShadowMap( renderer, objects, capabilities ) {\n\n\tlet _frustum = new Frustum();\n\n\tconst _shadowMapSize = new Vector2(),\n\t\t_viewportSize = new Vector2(),\n\n\t\t_viewport = new Vector4(),\n\n\t\t_depthMaterial = new MeshDepthMaterial( { depthPacking: RGBADepthPacking } ),\n\t\t_distanceMaterial = new MeshDistanceMaterial(),\n\n\t\t_materialCache = {},\n\n\t\t_maxTextureSize = capabilities.maxTextureSize;\n\n\tconst shadowSide = { [ FrontSide ]: BackSide, [ BackSide ]: FrontSide, [ DoubleSide ]: DoubleSide };\n\n\tconst shadowMaterialVertical = new ShaderMaterial( {\n\t\tdefines: {\n\t\t\tVSM_SAMPLES: 8\n\t\t},\n\t\tuniforms: {\n\t\t\tshadow_pass: { value: null },\n\t\t\tresolution: { value: new Vector2() },\n\t\t\tradius: { value: 4.0 }\n\t\t},\n\n\t\tvertexShader: vertex,\n\t\tfragmentShader: fragment\n\n\t} );\n\n\tconst shadowMaterialHorizontal = shadowMaterialVertical.clone();\n\tshadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n\n\tconst fullScreenTri = new BufferGeometry();\n\tfullScreenTri.setAttribute(\n\t\t'position',\n\t\tnew BufferAttribute(\n\t\t\tnew Float32Array( [ - 1, - 1, 0.5, 3, - 1, 0.5, - 1, 3, 0.5 ] ),\n\t\t\t3\n\t\t)\n\t);\n\n\tconst fullScreenMesh = new Mesh( fullScreenTri, shadowMaterialVertical );\n\n\tconst scope = this;\n\n\tthis.enabled = false;\n\n\tthis.autoUpdate = true;\n\tthis.needsUpdate = false;\n\n\tthis.type = PCFShadowMap;\n\tlet _previousType = this.type;\n\n\tthis.render = function ( lights, scene, camera ) {\n\n\t\tif ( scope.enabled === false ) return;\n\t\tif ( scope.autoUpdate === false && scope.needsUpdate === false ) return;\n\n\t\tif ( lights.length === 0 ) return;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst activeCubeFace = renderer.getActiveCubeFace();\n\t\tconst activeMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst _state = renderer.state;\n\n\t\t// Set GL state for depth map.\n\t\t_state.setBlending( NoBlending );\n\t\t_state.buffers.color.setClear( 1, 1, 1, 1 );\n\t\t_state.buffers.depth.setTest( true );\n\t\t_state.setScissorTest( false );\n\n\t\t// check for shadow map type changes\n\n\t\tconst toVSM = ( _previousType !== VSMShadowMap && this.type === VSMShadowMap );\n\t\tconst fromVSM = ( _previousType === VSMShadowMap && this.type !== VSMShadowMap );\n\n\t\t// render depth map\n\n\t\tfor ( let i = 0, il = lights.length; i < il; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\t\t\tconst shadow = light.shadow;\n\n\t\t\tif ( shadow === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( shadow.autoUpdate === false && shadow.needsUpdate === false ) continue;\n\n\t\t\t_shadowMapSize.copy( shadow.mapSize );\n\n\t\t\tconst shadowFrameExtents = shadow.getFrameExtents();\n\n\t\t\t_shadowMapSize.multiply( shadowFrameExtents );\n\n\t\t\t_viewportSize.copy( shadow.mapSize );\n\n\t\t\tif ( _shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\tif ( _shadowMapSize.x > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.x = Math.floor( _maxTextureSize / shadowFrameExtents.x );\n\t\t\t\t\t_shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n\t\t\t\t\tshadow.mapSize.x = _viewportSize.x;\n\n\t\t\t\t}\n\n\t\t\t\tif ( _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.y = Math.floor( _maxTextureSize / shadowFrameExtents.y );\n\t\t\t\t\t_shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n\t\t\t\t\tshadow.mapSize.y = _viewportSize.y;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( shadow.map === null || toVSM === true || fromVSM === true ) {\n\n\t\t\t\tconst pars = ( this.type !== VSMShadowMap ) ? { minFilter: NearestFilter, magFilter: NearestFilter } : {};\n\n\t\t\t\tif ( shadow.map !== null ) {\n\n\t\t\t\t\tshadow.map.dispose();\n\n\t\t\t\t}\n\n\t\t\t\tshadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );\n\t\t\t\tshadow.map.texture.name = light.name + '.shadowMap';\n\n\t\t\t\tshadow.camera.updateProjectionMatrix();\n\n\t\t\t}\n\n\t\t\trenderer.setRenderTarget( shadow.map );\n\t\t\trenderer.clear();\n\n\t\t\tconst viewportCount = shadow.getViewportCount();\n\n\t\t\tfor ( let vp = 0; vp < viewportCount; vp ++ ) {\n\n\t\t\t\tconst viewport = shadow.getViewport( vp );\n\n\t\t\t\t_viewport.set(\n\t\t\t\t\t_viewportSize.x * viewport.x,\n\t\t\t\t\t_viewportSize.y * viewport.y,\n\t\t\t\t\t_viewportSize.x * viewport.z,\n\t\t\t\t\t_viewportSize.y * viewport.w\n\t\t\t\t);\n\n\t\t\t\t_state.viewport( _viewport );\n\n\t\t\t\tshadow.updateMatrices( light, vp );\n\n\t\t\t\t_frustum = shadow.getFrustum();\n\n\t\t\t\trenderObject( scene, camera, shadow.camera, light, this.type );\n\n\t\t\t}\n\n\t\t\t// do blur pass for VSM\n\n\t\t\tif ( shadow.isPointLightShadow !== true && this.type === VSMShadowMap ) {\n\n\t\t\t\tVSMPass( shadow, camera );\n\n\t\t\t}\n\n\t\t\tshadow.needsUpdate = false;\n\n\t\t}\n\n\t\t_previousType = this.type;\n\n\t\tscope.needsUpdate = false;\n\n\t\trenderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipmapLevel );\n\n\t};\n\n\tfunction VSMPass( shadow, camera ) {\n\n\t\tconst geometry = objects.update( fullScreenMesh );\n\n\t\tif ( shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples ) {\n\n\t\t\tshadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n\t\t\tshadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n\n\t\t\tshadowMaterialVertical.needsUpdate = true;\n\t\t\tshadowMaterialHorizontal.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( shadow.mapPass === null ) {\n\n\t\t\tshadow.mapPass = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y );\n\n\t\t}\n\n\t\t// vertical pass\n\n\t\tshadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n\t\tshadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialVertical.uniforms.radius.value = shadow.radius;\n\t\trenderer.setRenderTarget( shadow.mapPass );\n\t\trenderer.clear();\n\t\trenderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );\n\n\t\t// horizontal pass\n\n\t\tshadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n\t\tshadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n\t\trenderer.setRenderTarget( shadow.map );\n\t\trenderer.clear();\n\t\trenderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );\n\n\t}\n\n\tfunction getDepthMaterial( object, material, light, type ) {\n\n\t\tlet result = null;\n\n\t\tconst customMaterial = ( light.isPointLight === true ) ? object.customDistanceMaterial : object.customDepthMaterial;\n\n\t\tif ( customMaterial !== undefined ) {\n\n\t\t\tresult = customMaterial;\n\n\t\t} else {\n\n\t\t\tresult = ( light.isPointLight === true ) ? _distanceMaterial : _depthMaterial;\n\n\t\t\tif ( ( renderer.localClippingEnabled && material.clipShadows === true && Array.isArray( material.clippingPlanes ) && material.clippingPlanes.length !== 0 ) ||\n\t\t\t\t( material.displacementMap && material.displacementScale !== 0 ) ||\n\t\t\t\t( material.alphaMap && material.alphaTest > 0 ) ||\n\t\t\t\t( material.map && material.alphaTest > 0 ) ) {\n\n\t\t\t\t// in this case we need a unique material instance reflecting the\n\t\t\t\t// appropriate state\n\n\t\t\t\tconst keyA = result.uuid, keyB = material.uuid;\n\n\t\t\t\tlet materialsForVariant = _materialCache[ keyA ];\n\n\t\t\t\tif ( materialsForVariant === undefined ) {\n\n\t\t\t\t\tmaterialsForVariant = {};\n\t\t\t\t\t_materialCache[ keyA ] = materialsForVariant;\n\n\t\t\t\t}\n\n\t\t\t\tlet cachedMaterial = materialsForVariant[ keyB ];\n\n\t\t\t\tif ( cachedMaterial === undefined ) {\n\n\t\t\t\t\tcachedMaterial = result.clone();\n\t\t\t\t\tmaterialsForVariant[ keyB ] = cachedMaterial;\n\t\t\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\t\t}\n\n\t\t\t\tresult = cachedMaterial;\n\n\t\t\t}\n\n\t\t}\n\n\t\tresult.visible = material.visible;\n\t\tresult.wireframe = material.wireframe;\n\n\t\tif ( type === VSMShadowMap ) {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : material.side;\n\n\t\t} else {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : shadowSide[ material.side ];\n\n\t\t}\n\n\t\tresult.alphaMap = material.alphaMap;\n\t\tresult.alphaTest = material.alphaTest;\n\t\tresult.map = material.map;\n\n\t\tresult.clipShadows = material.clipShadows;\n\t\tresult.clippingPlanes = material.clippingPlanes;\n\t\tresult.clipIntersection = material.clipIntersection;\n\n\t\tresult.displacementMap = material.displacementMap;\n\t\tresult.displacementScale = material.displacementScale;\n\t\tresult.displacementBias = material.displacementBias;\n\n\t\tresult.wireframeLinewidth = material.wireframeLinewidth;\n\t\tresult.linewidth = material.linewidth;\n\n\t\tif ( light.isPointLight === true && result.isMeshDistanceMaterial === true ) {\n\n\t\t\tconst materialProperties = renderer.properties.get( result );\n\t\t\tmaterialProperties.light = light;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tfunction renderObject( object, camera, shadowCamera, light, type ) {\n\n\t\tif ( object.visible === false ) return;\n\n\t\tconst visible = object.layers.test( camera.layers );\n\n\t\tif ( visible && ( object.isMesh || object.isLine || object.isPoints ) ) {\n\n\t\t\tif ( ( object.castShadow || ( object.receiveShadow && type === VSMShadowMap ) ) && ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) ) {\n\n\t\t\t\tobject.modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld );\n\n\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\tfor ( let k = 0, kl = groups.length; k < kl; k ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ k ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, groupMaterial, light, type );\n\n\t\t\t\t\t\t\tobject.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );\n\n\t\t\t\t\t\t\trenderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group );\n\n\t\t\t\t\t\t\tobject.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, material, light, type );\n\n\t\t\t\t\tobject.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );\n\n\t\t\t\t\trenderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null );\n\n\t\t\t\t\tobject.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\trenderObject( children[ i ], camera, shadowCamera, light, type );\n\n\t\t}\n\n\t}\n\n\tfunction onMaterialDispose( event ) {\n\n\t\tconst material = event.target;\n\n\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\t// make sure to remove the unique distance/depth materials used for shadow map rendering\n\n\t\tfor ( const id in _materialCache ) {\n\n\t\t\tconst cache = _materialCache[ id ];\n\n\t\t\tconst uuid = event.target.uuid;\n\n\t\t\tif ( uuid in cache ) {\n\n\t\t\t\tconst shadowMaterial = cache[ uuid ];\n\t\t\t\tshadowMaterial.dispose();\n\t\t\t\tdelete cache[ uuid ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nconst reversedFuncs = {\n\t[ NeverDepth ]: AlwaysDepth,\n\t[ LessDepth ]: GreaterDepth,\n\t[ EqualDepth ]: NotEqualDepth,\n\t[ LessEqualDepth ]: GreaterEqualDepth,\n\n\t[ AlwaysDepth ]: NeverDepth,\n\t[ GreaterDepth ]: LessDepth,\n\t[ NotEqualDepth ]: EqualDepth,\n\t[ GreaterEqualDepth ]: LessEqualDepth,\n};\n\nfunction WebGLState( gl, extensions ) {\n\n\tfunction ColorBuffer() {\n\n\t\tlet locked = false;\n\n\t\tconst color = new Vector4();\n\t\tlet currentColorMask = null;\n\t\tconst currentColorClear = new Vector4( 0, 0, 0, 0 );\n\n\t\treturn {\n\n\t\t\tsetMask: function ( colorMask ) {\n\n\t\t\t\tif ( currentColorMask !== colorMask && ! locked ) {\n\n\t\t\t\t\tgl.colorMask( colorMask, colorMask, colorMask, colorMask );\n\t\t\t\t\tcurrentColorMask = colorMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( r, g, b, a, premultipliedAlpha ) {\n\n\t\t\t\tif ( premultipliedAlpha === true ) {\n\n\t\t\t\t\tr *= a; g *= a; b *= a;\n\n\t\t\t\t}\n\n\t\t\t\tcolor.set( r, g, b, a );\n\n\t\t\t\tif ( currentColorClear.equals( color ) === false ) {\n\n\t\t\t\t\tgl.clearColor( r, g, b, a );\n\t\t\t\t\tcurrentColorClear.copy( color );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentColorMask = null;\n\t\t\t\tcurrentColorClear.set( - 1, 0, 0, 0 ); // set to invalid state\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction DepthBuffer() {\n\n\t\tlet locked = false;\n\t\tlet reversed = false;\n\n\t\tlet currentDepthMask = null;\n\t\tlet currentDepthFunc = null;\n\t\tlet currentDepthClear = null;\n\n\t\treturn {\n\n\t\t\tsetReversed: function ( value ) {\n\n\t\t\t\tif ( reversed !== value ) {\n\n\t\t\t\t\tconst ext = extensions.get( 'EXT_clip_control' );\n\n\t\t\t\t\tif ( reversed ) {\n\n\t\t\t\t\t\text.clipControlEXT( ext.LOWER_LEFT_EXT, ext.ZERO_TO_ONE_EXT );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\text.clipControlEXT( ext.LOWER_LEFT_EXT, ext.NEGATIVE_ONE_TO_ONE_EXT );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst oldDepth = currentDepthClear;\n\t\t\t\t\tcurrentDepthClear = null;\n\t\t\t\t\tthis.setClear( oldDepth );\n\n\t\t\t\t}\n\n\t\t\t\treversed = value;\n\n\t\t\t},\n\n\t\t\tgetReversed: function () {\n\n\t\t\t\treturn reversed;\n\n\t\t\t},\n\n\t\t\tsetTest: function ( depthTest ) {\n\n\t\t\t\tif ( depthTest ) {\n\n\t\t\t\t\tenable( gl.DEPTH_TEST );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdisable( gl.DEPTH_TEST );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( depthMask ) {\n\n\t\t\t\tif ( currentDepthMask !== depthMask && ! locked ) {\n\n\t\t\t\t\tgl.depthMask( depthMask );\n\t\t\t\t\tcurrentDepthMask = depthMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( depthFunc ) {\n\n\t\t\t\tif ( reversed ) depthFunc = reversedFuncs[ depthFunc ];\n\n\t\t\t\tif ( currentDepthFunc !== depthFunc ) {\n\n\t\t\t\t\tswitch ( depthFunc ) {\n\n\t\t\t\t\t\tcase NeverDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.NEVER );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AlwaysDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.ALWAYS );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase LessDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LESS );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase LessEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase EqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.EQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase GreaterEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.GEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase GreaterDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.GREATER );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase NotEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.NOTEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LEQUAL );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentDepthFunc = depthFunc;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( depth ) {\n\n\t\t\t\tif ( currentDepthClear !== depth ) {\n\n\t\t\t\t\tif ( reversed ) {\n\n\t\t\t\t\t\tdepth = 1 - depth;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tgl.clearDepth( depth );\n\t\t\t\t\tcurrentDepthClear = depth;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentDepthMask = null;\n\t\t\t\tcurrentDepthFunc = null;\n\t\t\t\tcurrentDepthClear = null;\n\t\t\t\treversed = false;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction StencilBuffer() {\n\n\t\tlet locked = false;\n\n\t\tlet currentStencilMask = null;\n\t\tlet currentStencilFunc = null;\n\t\tlet currentStencilRef = null;\n\t\tlet currentStencilFuncMask = null;\n\t\tlet currentStencilFail = null;\n\t\tlet currentStencilZFail = null;\n\t\tlet currentStencilZPass = null;\n\t\tlet currentStencilClear = null;\n\n\t\treturn {\n\n\t\t\tsetTest: function ( stencilTest ) {\n\n\t\t\t\tif ( ! locked ) {\n\n\t\t\t\t\tif ( stencilTest ) {\n\n\t\t\t\t\t\tenable( gl.STENCIL_TEST );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdisable( gl.STENCIL_TEST );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( stencilMask ) {\n\n\t\t\t\tif ( currentStencilMask !== stencilMask && ! locked ) {\n\n\t\t\t\t\tgl.stencilMask( stencilMask );\n\t\t\t\t\tcurrentStencilMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( stencilFunc, stencilRef, stencilMask ) {\n\n\t\t\t\tif ( currentStencilFunc !== stencilFunc ||\n\t\t\t\t currentStencilRef !== stencilRef ||\n\t\t\t\t currentStencilFuncMask !== stencilMask ) {\n\n\t\t\t\t\tgl.stencilFunc( stencilFunc, stencilRef, stencilMask );\n\n\t\t\t\t\tcurrentStencilFunc = stencilFunc;\n\t\t\t\t\tcurrentStencilRef = stencilRef;\n\t\t\t\t\tcurrentStencilFuncMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetOp: function ( stencilFail, stencilZFail, stencilZPass ) {\n\n\t\t\t\tif ( currentStencilFail !== stencilFail ||\n\t\t\t\t currentStencilZFail !== stencilZFail ||\n\t\t\t\t currentStencilZPass !== stencilZPass ) {\n\n\t\t\t\t\tgl.stencilOp( stencilFail, stencilZFail, stencilZPass );\n\n\t\t\t\t\tcurrentStencilFail = stencilFail;\n\t\t\t\t\tcurrentStencilZFail = stencilZFail;\n\t\t\t\t\tcurrentStencilZPass = stencilZPass;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( stencil ) {\n\n\t\t\t\tif ( currentStencilClear !== stencil ) {\n\n\t\t\t\t\tgl.clearStencil( stencil );\n\t\t\t\t\tcurrentStencilClear = stencil;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentStencilMask = null;\n\t\t\t\tcurrentStencilFunc = null;\n\t\t\t\tcurrentStencilRef = null;\n\t\t\t\tcurrentStencilFuncMask = null;\n\t\t\t\tcurrentStencilFail = null;\n\t\t\t\tcurrentStencilZFail = null;\n\t\t\t\tcurrentStencilZPass = null;\n\t\t\t\tcurrentStencilClear = null;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t//\n\n\tconst colorBuffer = new ColorBuffer();\n\tconst depthBuffer = new DepthBuffer();\n\tconst stencilBuffer = new StencilBuffer();\n\n\tconst uboBindings = new WeakMap();\n\tconst uboProgramMap = new WeakMap();\n\n\tlet enabledCapabilities = {};\n\n\tlet currentBoundFramebuffers = {};\n\tlet currentDrawbuffers = new WeakMap();\n\tlet defaultDrawbuffers = [];\n\n\tlet currentProgram = null;\n\n\tlet currentBlendingEnabled = false;\n\tlet currentBlending = null;\n\tlet currentBlendEquation = null;\n\tlet currentBlendSrc = null;\n\tlet currentBlendDst = null;\n\tlet currentBlendEquationAlpha = null;\n\tlet currentBlendSrcAlpha = null;\n\tlet currentBlendDstAlpha = null;\n\tlet currentBlendColor = new Color( 0, 0, 0 );\n\tlet currentBlendAlpha = 0;\n\tlet currentPremultipledAlpha = false;\n\n\tlet currentFlipSided = null;\n\tlet currentCullFace = null;\n\n\tlet currentLineWidth = null;\n\n\tlet currentPolygonOffsetFactor = null;\n\tlet currentPolygonOffsetUnits = null;\n\n\tconst maxTextures = gl.getParameter( gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS );\n\n\tlet lineWidthAvailable = false;\n\tlet version = 0;\n\tconst glVersion = gl.getParameter( gl.VERSION );\n\n\tif ( glVersion.indexOf( 'WebGL' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^WebGL (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 1.0 );\n\n\t} else if ( glVersion.indexOf( 'OpenGL ES' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^OpenGL ES (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 2.0 );\n\n\t}\n\n\tlet currentTextureSlot = null;\n\tlet currentBoundTextures = {};\n\n\tconst scissorParam = gl.getParameter( gl.SCISSOR_BOX );\n\tconst viewportParam = gl.getParameter( gl.VIEWPORT );\n\n\tconst currentScissor = new Vector4().fromArray( scissorParam );\n\tconst currentViewport = new Vector4().fromArray( viewportParam );\n\n\tfunction createTexture( type, target, count, dimensions ) {\n\n\t\tconst data = new Uint8Array( 4 ); // 4 is required to match default unpack alignment of 4.\n\t\tconst texture = gl.createTexture();\n\n\t\tgl.bindTexture( type, texture );\n\t\tgl.texParameteri( type, gl.TEXTURE_MIN_FILTER, gl.NEAREST );\n\t\tgl.texParameteri( type, gl.TEXTURE_MAG_FILTER, gl.NEAREST );\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tif ( type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t\tgl.texImage3D( target, 0, gl.RGBA, 1, 1, dimensions, 0, gl.RGBA, gl.UNSIGNED_BYTE, data );\n\n\t\t\t} else {\n\n\t\t\t\tgl.texImage2D( target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tconst emptyTextures = {};\n\temptyTextures[ gl.TEXTURE_2D ] = createTexture( gl.TEXTURE_2D, gl.TEXTURE_2D, 1 );\n\temptyTextures[ gl.TEXTURE_CUBE_MAP ] = createTexture( gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6 );\n\temptyTextures[ gl.TEXTURE_2D_ARRAY ] = createTexture( gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1 );\n\temptyTextures[ gl.TEXTURE_3D ] = createTexture( gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1 );\n\n\t// init\n\n\tcolorBuffer.setClear( 0, 0, 0, 1 );\n\tdepthBuffer.setClear( 1 );\n\tstencilBuffer.setClear( 0 );\n\n\tenable( gl.DEPTH_TEST );\n\tdepthBuffer.setFunc( LessEqualDepth );\n\n\tsetFlipSided( false );\n\tsetCullFace( CullFaceBack );\n\tenable( gl.CULL_FACE );\n\n\tsetBlending( NoBlending );\n\n\t//\n\n\tfunction enable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== true ) {\n\n\t\t\tgl.enable( id );\n\t\t\tenabledCapabilities[ id ] = true;\n\n\t\t}\n\n\t}\n\n\tfunction disable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== false ) {\n\n\t\t\tgl.disable( id );\n\t\t\tenabledCapabilities[ id ] = false;\n\n\t\t}\n\n\t}\n\n\tfunction bindFramebuffer( target, framebuffer ) {\n\n\t\tif ( currentBoundFramebuffers[ target ] !== framebuffer ) {\n\n\t\t\tgl.bindFramebuffer( target, framebuffer );\n\n\t\t\tcurrentBoundFramebuffers[ target ] = framebuffer;\n\n\t\t\t// gl.DRAW_FRAMEBUFFER is equivalent to gl.FRAMEBUFFER\n\n\t\t\tif ( target === gl.DRAW_FRAMEBUFFER ) {\n\n\t\t\t\tcurrentBoundFramebuffers[ gl.FRAMEBUFFER ] = framebuffer;\n\n\t\t\t}\n\n\t\t\tif ( target === gl.FRAMEBUFFER ) {\n\n\t\t\t\tcurrentBoundFramebuffers[ gl.DRAW_FRAMEBUFFER ] = framebuffer;\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction drawBuffers( renderTarget, framebuffer ) {\n\n\t\tlet drawBuffers = defaultDrawbuffers;\n\n\t\tlet needsUpdate = false;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tdrawBuffers = currentDrawbuffers.get( framebuffer );\n\n\t\t\tif ( drawBuffers === undefined ) {\n\n\t\t\t\tdrawBuffers = [];\n\t\t\t\tcurrentDrawbuffers.set( framebuffer, drawBuffers );\n\n\t\t\t}\n\n\t\t\tconst textures = renderTarget.textures;\n\n\t\t\tif ( drawBuffers.length !== textures.length || drawBuffers[ 0 ] !== gl.COLOR_ATTACHMENT0 ) {\n\n\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\tdrawBuffers[ i ] = gl.COLOR_ATTACHMENT0 + i;\n\n\t\t\t\t}\n\n\t\t\t\tdrawBuffers.length = textures.length;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( drawBuffers[ 0 ] !== gl.BACK ) {\n\n\t\t\t\tdrawBuffers[ 0 ] = gl.BACK;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tgl.drawBuffers( drawBuffers );\n\n\t\t}\n\n\t}\n\n\tfunction useProgram( program ) {\n\n\t\tif ( currentProgram !== program ) {\n\n\t\t\tgl.useProgram( program );\n\n\t\t\tcurrentProgram = program;\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tconst equationToGL = {\n\t\t[ AddEquation ]: gl.FUNC_ADD,\n\t\t[ SubtractEquation ]: gl.FUNC_SUBTRACT,\n\t\t[ ReverseSubtractEquation ]: gl.FUNC_REVERSE_SUBTRACT\n\t};\n\n\tequationToGL[ MinEquation ] = gl.MIN;\n\tequationToGL[ MaxEquation ] = gl.MAX;\n\n\tconst factorToGL = {\n\t\t[ ZeroFactor ]: gl.ZERO,\n\t\t[ OneFactor ]: gl.ONE,\n\t\t[ SrcColorFactor ]: gl.SRC_COLOR,\n\t\t[ SrcAlphaFactor ]: gl.SRC_ALPHA,\n\t\t[ SrcAlphaSaturateFactor ]: gl.SRC_ALPHA_SATURATE,\n\t\t[ DstColorFactor ]: gl.DST_COLOR,\n\t\t[ DstAlphaFactor ]: gl.DST_ALPHA,\n\t\t[ OneMinusSrcColorFactor ]: gl.ONE_MINUS_SRC_COLOR,\n\t\t[ OneMinusSrcAlphaFactor ]: gl.ONE_MINUS_SRC_ALPHA,\n\t\t[ OneMinusDstColorFactor ]: gl.ONE_MINUS_DST_COLOR,\n\t\t[ OneMinusDstAlphaFactor ]: gl.ONE_MINUS_DST_ALPHA,\n\t\t[ ConstantColorFactor ]: gl.CONSTANT_COLOR,\n\t\t[ OneMinusConstantColorFactor ]: gl.ONE_MINUS_CONSTANT_COLOR,\n\t\t[ ConstantAlphaFactor ]: gl.CONSTANT_ALPHA,\n\t\t[ OneMinusConstantAlphaFactor ]: gl.ONE_MINUS_CONSTANT_ALPHA\n\t};\n\n\tfunction setBlending( blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, blendColor, blendAlpha, premultipliedAlpha ) {\n\n\t\tif ( blending === NoBlending ) {\n\n\t\t\tif ( currentBlendingEnabled === true ) {\n\n\t\t\t\tdisable( gl.BLEND );\n\t\t\t\tcurrentBlendingEnabled = false;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( currentBlendingEnabled === false ) {\n\n\t\t\tenable( gl.BLEND );\n\t\t\tcurrentBlendingEnabled = true;\n\n\t\t}\n\n\t\tif ( blending !== CustomBlending ) {\n\n\t\t\tif ( blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha ) {\n\n\t\t\t\tif ( currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation ) {\n\n\t\t\t\t\tgl.blendEquation( gl.FUNC_ADD );\n\n\t\t\t\t\tcurrentBlendEquation = AddEquation;\n\t\t\t\t\tcurrentBlendEquationAlpha = AddEquation;\n\n\t\t\t\t}\n\n\t\t\t\tif ( premultipliedAlpha ) {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.ONE, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.ZERO, gl.SRC_COLOR );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tcurrentBlendSrc = null;\n\t\t\t\tcurrentBlendDst = null;\n\t\t\t\tcurrentBlendSrcAlpha = null;\n\t\t\t\tcurrentBlendDstAlpha = null;\n\t\t\t\tcurrentBlendColor.set( 0, 0, 0 );\n\t\t\t\tcurrentBlendAlpha = 0;\n\n\t\t\t\tcurrentBlending = blending;\n\t\t\t\tcurrentPremultipledAlpha = premultipliedAlpha;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// custom blending\n\n\t\tblendEquationAlpha = blendEquationAlpha || blendEquation;\n\t\tblendSrcAlpha = blendSrcAlpha || blendSrc;\n\t\tblendDstAlpha = blendDstAlpha || blendDst;\n\n\t\tif ( blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha ) {\n\n\t\t\tgl.blendEquationSeparate( equationToGL[ blendEquation ], equationToGL[ blendEquationAlpha ] );\n\n\t\t\tcurrentBlendEquation = blendEquation;\n\t\t\tcurrentBlendEquationAlpha = blendEquationAlpha;\n\n\t\t}\n\n\t\tif ( blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha ) {\n\n\t\t\tgl.blendFuncSeparate( factorToGL[ blendSrc ], factorToGL[ blendDst ], factorToGL[ blendSrcAlpha ], factorToGL[ blendDstAlpha ] );\n\n\t\t\tcurrentBlendSrc = blendSrc;\n\t\t\tcurrentBlendDst = blendDst;\n\t\t\tcurrentBlendSrcAlpha = blendSrcAlpha;\n\t\t\tcurrentBlendDstAlpha = blendDstAlpha;\n\n\t\t}\n\n\t\tif ( blendColor.equals( currentBlendColor ) === false || blendAlpha !== currentBlendAlpha ) {\n\n\t\t\tgl.blendColor( blendColor.r, blendColor.g, blendColor.b, blendAlpha );\n\n\t\t\tcurrentBlendColor.copy( blendColor );\n\t\t\tcurrentBlendAlpha = blendAlpha;\n\n\t\t}\n\n\t\tcurrentBlending = blending;\n\t\tcurrentPremultipledAlpha = false;\n\n\t}\n\n\tfunction setMaterial( material, frontFaceCW ) {\n\n\t\tmaterial.side === DoubleSide\n\t\t\t? disable( gl.CULL_FACE )\n\t\t\t: enable( gl.CULL_FACE );\n\n\t\tlet flipSided = ( material.side === BackSide );\n\t\tif ( frontFaceCW ) flipSided = ! flipSided;\n\n\t\tsetFlipSided( flipSided );\n\n\t\t( material.blending === NormalBlending && material.transparent === false )\n\t\t\t? setBlending( NoBlending )\n\t\t\t: setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.blendColor, material.blendAlpha, material.premultipliedAlpha );\n\n\t\tdepthBuffer.setFunc( material.depthFunc );\n\t\tdepthBuffer.setTest( material.depthTest );\n\t\tdepthBuffer.setMask( material.depthWrite );\n\t\tcolorBuffer.setMask( material.colorWrite );\n\n\t\tconst stencilWrite = material.stencilWrite;\n\t\tstencilBuffer.setTest( stencilWrite );\n\t\tif ( stencilWrite ) {\n\n\t\t\tstencilBuffer.setMask( material.stencilWriteMask );\n\t\t\tstencilBuffer.setFunc( material.stencilFunc, material.stencilRef, material.stencilFuncMask );\n\t\t\tstencilBuffer.setOp( material.stencilFail, material.stencilZFail, material.stencilZPass );\n\n\t\t}\n\n\t\tsetPolygonOffset( material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits );\n\n\t\tmaterial.alphaToCoverage === true\n\t\t\t? enable( gl.SAMPLE_ALPHA_TO_COVERAGE )\n\t\t\t: disable( gl.SAMPLE_ALPHA_TO_COVERAGE );\n\n\t}\n\n\t//\n\n\tfunction setFlipSided( flipSided ) {\n\n\t\tif ( currentFlipSided !== flipSided ) {\n\n\t\t\tif ( flipSided ) {\n\n\t\t\t\tgl.frontFace( gl.CW );\n\n\t\t\t} else {\n\n\t\t\t\tgl.frontFace( gl.CCW );\n\n\t\t\t}\n\n\t\t\tcurrentFlipSided = flipSided;\n\n\t\t}\n\n\t}\n\n\tfunction setCullFace( cullFace ) {\n\n\t\tif ( cullFace !== CullFaceNone ) {\n\n\t\t\tenable( gl.CULL_FACE );\n\n\t\t\tif ( cullFace !== currentCullFace ) {\n\n\t\t\t\tif ( cullFace === CullFaceBack ) {\n\n\t\t\t\t\tgl.cullFace( gl.BACK );\n\n\t\t\t\t} else if ( cullFace === CullFaceFront ) {\n\n\t\t\t\t\tgl.cullFace( gl.FRONT );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgl.cullFace( gl.FRONT_AND_BACK );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( gl.CULL_FACE );\n\n\t\t}\n\n\t\tcurrentCullFace = cullFace;\n\n\t}\n\n\tfunction setLineWidth( width ) {\n\n\t\tif ( width !== currentLineWidth ) {\n\n\t\t\tif ( lineWidthAvailable ) gl.lineWidth( width );\n\n\t\t\tcurrentLineWidth = width;\n\n\t\t}\n\n\t}\n\n\tfunction setPolygonOffset( polygonOffset, factor, units ) {\n\n\t\tif ( polygonOffset ) {\n\n\t\t\tenable( gl.POLYGON_OFFSET_FILL );\n\n\t\t\tif ( currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units ) {\n\n\t\t\t\tgl.polygonOffset( factor, units );\n\n\t\t\t\tcurrentPolygonOffsetFactor = factor;\n\t\t\t\tcurrentPolygonOffsetUnits = units;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( gl.POLYGON_OFFSET_FILL );\n\n\t\t}\n\n\t}\n\n\tfunction setScissorTest( scissorTest ) {\n\n\t\tif ( scissorTest ) {\n\n\t\t\tenable( gl.SCISSOR_TEST );\n\n\t\t} else {\n\n\t\t\tdisable( gl.SCISSOR_TEST );\n\n\t\t}\n\n\t}\n\n\t// texture\n\n\tfunction activeTexture( webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) webglSlot = gl.TEXTURE0 + maxTextures - 1;\n\n\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\tgl.activeTexture( webglSlot );\n\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t}\n\n\t}\n\n\tfunction bindTexture( webglType, webglTexture, webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) {\n\n\t\t\tif ( currentTextureSlot === null ) {\n\n\t\t\t\twebglSlot = gl.TEXTURE0 + maxTextures - 1;\n\n\t\t\t} else {\n\n\t\t\t\twebglSlot = currentTextureSlot;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet boundTexture = currentBoundTextures[ webglSlot ];\n\n\t\tif ( boundTexture === undefined ) {\n\n\t\t\tboundTexture = { type: undefined, texture: undefined };\n\t\t\tcurrentBoundTextures[ webglSlot ] = boundTexture;\n\n\t\t}\n\n\t\tif ( boundTexture.type !== webglType || boundTexture.texture !== webglTexture ) {\n\n\t\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\t\tgl.activeTexture( webglSlot );\n\t\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t\t}\n\n\t\t\tgl.bindTexture( webglType, webglTexture || emptyTextures[ webglType ] );\n\n\t\t\tboundTexture.type = webglType;\n\t\t\tboundTexture.texture = webglTexture;\n\n\t\t}\n\n\t}\n\n\tfunction unbindTexture() {\n\n\t\tconst boundTexture = currentBoundTextures[ currentTextureSlot ];\n\n\t\tif ( boundTexture !== undefined && boundTexture.type !== undefined ) {\n\n\t\t\tgl.bindTexture( boundTexture.type, null );\n\n\t\t\tboundTexture.type = undefined;\n\t\t\tboundTexture.texture = undefined;\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction scissor( scissor ) {\n\n\t\tif ( currentScissor.equals( scissor ) === false ) {\n\n\t\t\tgl.scissor( scissor.x, scissor.y, scissor.z, scissor.w );\n\t\t\tcurrentScissor.copy( scissor );\n\n\t\t}\n\n\t}\n\n\tfunction viewport( viewport ) {\n\n\t\tif ( currentViewport.equals( viewport ) === false ) {\n\n\t\t\tgl.viewport( viewport.x, viewport.y, viewport.z, viewport.w );\n\t\t\tcurrentViewport.copy( viewport );\n\n\t\t}\n\n\t}\n\n\tfunction updateUBOMapping( uniformsGroup, program ) {\n\n\t\tlet mapping = uboProgramMap.get( program );\n\n\t\tif ( mapping === undefined ) {\n\n\t\t\tmapping = new WeakMap();\n\n\t\t\tuboProgramMap.set( program, mapping );\n\n\t\t}\n\n\t\tlet blockIndex = mapping.get( uniformsGroup );\n\n\t\tif ( blockIndex === undefined ) {\n\n\t\t\tblockIndex = gl.getUniformBlockIndex( program, uniformsGroup.name );\n\n\t\t\tmapping.set( uniformsGroup, blockIndex );\n\n\t\t}\n\n\t}\n\n\tfunction uniformBlockBinding( uniformsGroup, program ) {\n\n\t\tconst mapping = uboProgramMap.get( program );\n\t\tconst blockIndex = mapping.get( uniformsGroup );\n\n\t\tif ( uboBindings.get( program ) !== blockIndex ) {\n\n\t\t\t// bind shader specific block index to global block point\n\t\t\tgl.uniformBlockBinding( program, blockIndex, uniformsGroup.__bindingPointIndex );\n\n\t\t\tuboBindings.set( program, blockIndex );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction reset() {\n\n\t\t// reset state\n\n\t\tgl.disable( gl.BLEND );\n\t\tgl.disable( gl.CULL_FACE );\n\t\tgl.disable( gl.DEPTH_TEST );\n\t\tgl.disable( gl.POLYGON_OFFSET_FILL );\n\t\tgl.disable( gl.SCISSOR_TEST );\n\t\tgl.disable( gl.STENCIL_TEST );\n\t\tgl.disable( gl.SAMPLE_ALPHA_TO_COVERAGE );\n\n\t\tgl.blendEquation( gl.FUNC_ADD );\n\t\tgl.blendFunc( gl.ONE, gl.ZERO );\n\t\tgl.blendFuncSeparate( gl.ONE, gl.ZERO, gl.ONE, gl.ZERO );\n\t\tgl.blendColor( 0, 0, 0, 0 );\n\n\t\tgl.colorMask( true, true, true, true );\n\t\tgl.clearColor( 0, 0, 0, 0 );\n\n\t\tgl.depthMask( true );\n\t\tgl.depthFunc( gl.LESS );\n\n\t\tdepthBuffer.setReversed( false );\n\n\t\tgl.clearDepth( 1 );\n\n\t\tgl.stencilMask( 0xffffffff );\n\t\tgl.stencilFunc( gl.ALWAYS, 0, 0xffffffff );\n\t\tgl.stencilOp( gl.KEEP, gl.KEEP, gl.KEEP );\n\t\tgl.clearStencil( 0 );\n\n\t\tgl.cullFace( gl.BACK );\n\t\tgl.frontFace( gl.CCW );\n\n\t\tgl.polygonOffset( 0, 0 );\n\n\t\tgl.activeTexture( gl.TEXTURE0 );\n\n\t\tgl.bindFramebuffer( gl.FRAMEBUFFER, null );\n\t\tgl.bindFramebuffer( gl.DRAW_FRAMEBUFFER, null );\n\t\tgl.bindFramebuffer( gl.READ_FRAMEBUFFER, null );\n\n\t\tgl.useProgram( null );\n\n\t\tgl.lineWidth( 1 );\n\n\t\tgl.scissor( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tgl.viewport( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\t// reset internals\n\n\t\tenabledCapabilities = {};\n\n\t\tcurrentTextureSlot = null;\n\t\tcurrentBoundTextures = {};\n\n\t\tcurrentBoundFramebuffers = {};\n\t\tcurrentDrawbuffers = new WeakMap();\n\t\tdefaultDrawbuffers = [];\n\n\t\tcurrentProgram = null;\n\n\t\tcurrentBlendingEnabled = false;\n\t\tcurrentBlending = null;\n\t\tcurrentBlendEquation = null;\n\t\tcurrentBlendSrc = null;\n\t\tcurrentBlendDst = null;\n\t\tcurrentBlendEquationAlpha = null;\n\t\tcurrentBlendSrcAlpha = null;\n\t\tcurrentBlendDstAlpha = null;\n\t\tcurrentBlendColor = new Color( 0, 0, 0 );\n\t\tcurrentBlendAlpha = 0;\n\t\tcurrentPremultipledAlpha = false;\n\n\t\tcurrentFlipSided = null;\n\t\tcurrentCullFace = null;\n\n\t\tcurrentLineWidth = null;\n\n\t\tcurrentPolygonOffsetFactor = null;\n\t\tcurrentPolygonOffsetUnits = null;\n\n\t\tcurrentScissor.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tcurrentViewport.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\tcolorBuffer.reset();\n\t\tdepthBuffer.reset();\n\t\tstencilBuffer.reset();\n\n\t}\n\n\treturn {\n\n\t\tbuffers: {\n\t\t\tcolor: colorBuffer,\n\t\t\tdepth: depthBuffer,\n\t\t\tstencil: stencilBuffer\n\t\t},\n\n\t\tenable: enable,\n\t\tdisable: disable,\n\n\t\tbindFramebuffer: bindFramebuffer,\n\t\tdrawBuffers: drawBuffers,\n\n\t\tuseProgram: useProgram,\n\n\t\tsetBlending: setBlending,\n\t\tsetMaterial: setMaterial,\n\n\t\tsetFlipSided: setFlipSided,\n\t\tsetCullFace: setCullFace,\n\n\t\tsetLineWidth: setLineWidth,\n\t\tsetPolygonOffset: setPolygonOffset,\n\n\t\tsetScissorTest: setScissorTest,\n\n\t\tactiveTexture: activeTexture,\n\t\tbindTexture: bindTexture,\n\t\tunbindTexture: unbindTexture,\n\t\tcompressedTexImage2D: compressedTexImage2D,\n\t\tcompressedTexImage3D: compressedTexImage3D,\n\t\ttexImage2D: texImage2D,\n\t\ttexImage3D: texImage3D,\n\n\t\tupdateUBOMapping: updateUBOMapping,\n\t\tuniformBlockBinding: uniformBlockBinding,\n\n\t\ttexStorage2D: texStorage2D,\n\t\ttexStorage3D: texStorage3D,\n\t\ttexSubImage2D: texSubImage2D,\n\t\ttexSubImage3D: texSubImage3D,\n\t\tcompressedTexSubImage2D: compressedTexSubImage2D,\n\t\tcompressedTexSubImage3D: compressedTexSubImage3D,\n\n\t\tscissor: scissor,\n\t\tviewport: viewport,\n\n\t\treset: reset\n\n\t};\n\n}\n\nfunction contain( texture, aspect ) {\n\n\tconst imageAspect = ( texture.image && texture.image.width ) ? texture.image.width / texture.image.height : 1;\n\n\tif ( imageAspect > aspect ) {\n\n\t\ttexture.repeat.x = 1;\n\t\ttexture.repeat.y = imageAspect / aspect;\n\n\t\ttexture.offset.x = 0;\n\t\ttexture.offset.y = ( 1 - texture.repeat.y ) / 2;\n\n\t} else {\n\n\t\ttexture.repeat.x = aspect / imageAspect;\n\t\ttexture.repeat.y = 1;\n\n\t\ttexture.offset.x = ( 1 - texture.repeat.x ) / 2;\n\t\ttexture.offset.y = 0;\n\n\t}\n\n\treturn texture;\n\n}\n\nfunction cover( texture, aspect ) {\n\n\tconst imageAspect = ( texture.image && texture.image.width ) ? texture.image.width / texture.image.height : 1;\n\n\tif ( imageAspect > aspect ) {\n\n\t\ttexture.repeat.x = aspect / imageAspect;\n\t\ttexture.repeat.y = 1;\n\n\t\ttexture.offset.x = ( 1 - texture.repeat.x ) / 2;\n\t\ttexture.offset.y = 0;\n\n\t} else {\n\n\t\ttexture.repeat.x = 1;\n\t\ttexture.repeat.y = imageAspect / aspect;\n\n\t\ttexture.offset.x = 0;\n\t\ttexture.offset.y = ( 1 - texture.repeat.y ) / 2;\n\n\t}\n\n\treturn texture;\n\n}\n\nfunction fill( texture ) {\n\n\ttexture.repeat.x = 1;\n\ttexture.repeat.y = 1;\n\n\ttexture.offset.x = 0;\n\ttexture.offset.y = 0;\n\n\treturn texture;\n\n}\n\n\n\n/**\n * Given the width, height, format, and type of a texture. Determines how many\n * bytes must be used to represent the texture.\n */\nfunction getByteLength( width, height, format, type ) {\n\n\tconst typeByteLength = getTextureTypeByteLength( type );\n\n\tswitch ( format ) {\n\n\t\t// https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml\n\t\tcase AlphaFormat:\n\t\t\treturn width * height;\n\t\tcase LuminanceFormat:\n\t\t\treturn width * height;\n\t\tcase LuminanceAlphaFormat:\n\t\t\treturn width * height * 2;\n\t\tcase RedFormat:\n\t\t\treturn ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RedIntegerFormat:\n\t\t\treturn ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGFormat:\n\t\t\treturn ( ( width * height * 2 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGIntegerFormat:\n\t\t\treturn ( ( width * height * 2 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBFormat:\n\t\t\treturn ( ( width * height * 3 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBAFormat:\n\t\t\treturn ( ( width * height * 4 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBAIntegerFormat:\n\t\t\treturn ( ( width * height * 4 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc_srgb/\n\t\tcase RGB_S3TC_DXT1_Format:\n\t\tcase RGBA_S3TC_DXT1_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 8;\n\t\tcase RGBA_S3TC_DXT3_Format:\n\t\tcase RGBA_S3TC_DXT5_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_pvrtc/\n\t\tcase RGB_PVRTC_2BPPV1_Format:\n\t\tcase RGBA_PVRTC_2BPPV1_Format:\n\t\t\treturn ( Math.max( width, 16 ) * Math.max( height, 8 ) ) / 4;\n\t\tcase RGB_PVRTC_4BPPV1_Format:\n\t\tcase RGBA_PVRTC_4BPPV1_Format:\n\t\t\treturn ( Math.max( width, 8 ) * Math.max( height, 8 ) ) / 2;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc/\n\t\tcase RGB_ETC1_Format:\n\t\tcase RGB_ETC2_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 8;\n\t\tcase RGBA_ETC2_EAC_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_astc/\n\t\tcase RGBA_ASTC_4x4_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\t\tcase RGBA_ASTC_5x4_Format:\n\t\t\treturn Math.floor( ( width + 4 ) / 5 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\t\tcase RGBA_ASTC_5x5_Format:\n\t\t\treturn Math.floor( ( width + 4 ) / 5 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_6x5_Format:\n\t\t\treturn Math.floor( ( width + 5 ) / 6 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_6x6_Format:\n\t\t\treturn Math.floor( ( width + 5 ) / 6 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_8x5_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_8x6_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_8x8_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 7 ) / 8 ) * 16;\n\t\tcase RGBA_ASTC_10x5_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_10x6_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_10x8_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 7 ) / 8 ) * 16;\n\t\tcase RGBA_ASTC_10x10_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 9 ) / 10 ) * 16;\n\t\tcase RGBA_ASTC_12x10_Format:\n\t\t\treturn Math.floor( ( width + 11 ) / 12 ) * Math.floor( ( height + 9 ) / 10 ) * 16;\n\t\tcase RGBA_ASTC_12x12_Format:\n\t\t\treturn Math.floor( ( width + 11 ) / 12 ) * Math.floor( ( height + 11 ) / 12 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/EXT_texture_compression_bptc/\n\t\tcase RGBA_BPTC_Format:\n\t\tcase RGB_BPTC_SIGNED_Format:\n\t\tcase RGB_BPTC_UNSIGNED_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/EXT_texture_compression_rgtc/\n\t\tcase RED_RGTC1_Format:\n\t\tcase SIGNED_RED_RGTC1_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 8;\n\t\tcase RED_GREEN_RGTC2_Format:\n\t\tcase SIGNED_RED_GREEN_RGTC2_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 16;\n\n\t}\n\n\tthrow new Error(\n\t\t`Unable to determine texture byte length for ${format} format.`,\n\t);\n\n}\n\nfunction getTextureTypeByteLength( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase UnsignedByteType:\n\t\tcase ByteType:\n\t\t\treturn { byteLength: 1, components: 1 };\n\t\tcase UnsignedShortType:\n\t\tcase ShortType:\n\t\tcase HalfFloatType:\n\t\t\treturn { byteLength: 2, components: 1 };\n\t\tcase UnsignedShort4444Type:\n\t\tcase UnsignedShort5551Type:\n\t\t\treturn { byteLength: 2, components: 4 };\n\t\tcase UnsignedIntType:\n\t\tcase IntType:\n\t\tcase FloatType:\n\t\t\treturn { byteLength: 4, components: 1 };\n\t\tcase UnsignedInt5999Type:\n\t\t\treturn { byteLength: 4, components: 3 };\n\n\t}\n\n\tthrow new Error( `Unknown texture type ${type}.` );\n\n}\n\nconst TextureUtils = {\n\tcontain,\n\tcover,\n\tfill,\n\tgetByteLength\n};\n\nfunction WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info ) {\n\n\tconst multisampledRTTExt = extensions.has( 'WEBGL_multisampled_render_to_texture' ) ? extensions.get( 'WEBGL_multisampled_render_to_texture' ) : null;\n\tconst supportsInvalidateFramebuffer = typeof navigator === 'undefined' ? false : /OculusBrowser/g.test( navigator.userAgent );\n\n\tconst _imageDimensions = new Vector2();\n\tconst _videoTextures = new WeakMap();\n\tlet _canvas;\n\n\tconst _sources = new WeakMap(); // maps WebglTexture objects to instances of Source\n\n\t// cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas,\n\t// also OffscreenCanvas.getContext(\"webgl\"), but not OffscreenCanvas.getContext(\"2d\")!\n\t// Some implementations may only implement OffscreenCanvas partially (e.g. lacking 2d).\n\n\tlet useOffscreenCanvas = false;\n\n\ttry {\n\n\t\tuseOffscreenCanvas = typeof OffscreenCanvas !== 'undefined'\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\t&& ( new OffscreenCanvas( 1, 1 ).getContext( '2d' ) ) !== null;\n\n\t} catch ( err ) {\n\n\t\t// Ignore any errors\n\n\t}\n\n\tfunction createCanvas( width, height ) {\n\n\t\t// Use OffscreenCanvas when available. Specially needed in web workers\n\n\t\treturn useOffscreenCanvas ?\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\tnew OffscreenCanvas( width, height ) : createElementNS( 'canvas' );\n\n\t}\n\n\tfunction resizeImage( image, needsNewCanvas, maxSize ) {\n\n\t\tlet scale = 1;\n\n\t\tconst dimensions = getDimensions( image );\n\n\t\t// handle case if texture exceeds max size\n\n\t\tif ( dimensions.width > maxSize || dimensions.height > maxSize ) {\n\n\t\t\tscale = maxSize / Math.max( dimensions.width, dimensions.height );\n\n\t\t}\n\n\t\t// only perform resize if necessary\n\n\t\tif ( scale < 1 ) {\n\n\t\t\t// only perform resize for certain image types\n\n\t\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ||\n\t\t\t\t( typeof VideoFrame !== 'undefined' && image instanceof VideoFrame ) ) {\n\n\t\t\t\tconst width = Math.floor( scale * dimensions.width );\n\t\t\t\tconst height = Math.floor( scale * dimensions.height );\n\n\t\t\t\tif ( _canvas === undefined ) _canvas = createCanvas( width, height );\n\n\t\t\t\t// cube textures can't reuse the same canvas\n\n\t\t\t\tconst canvas = needsNewCanvas ? createCanvas( width, height ) : _canvas;\n\n\t\t\t\tcanvas.width = width;\n\t\t\t\tcanvas.height = height;\n\n\t\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\t\tcontext.drawImage( image, 0, 0, width, height );\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture has been resized from (' + dimensions.width + 'x' + dimensions.height + ') to (' + width + 'x' + height + ').' );\n\n\t\t\t\treturn canvas;\n\n\t\t\t} else {\n\n\t\t\t\tif ( 'data' in image ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Image in DataTexture is too big (' + dimensions.width + 'x' + dimensions.height + ').' );\n\n\t\t\t\t}\n\n\t\t\t\treturn image;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction textureNeedsGenerateMipmaps( texture ) {\n\n\t\treturn texture.generateMipmaps;\n\n\t}\n\n\tfunction generateMipmap( target ) {\n\n\t\t_gl.generateMipmap( target );\n\n\t}\n\n\tfunction getTargetType( texture ) {\n\n\t\tif ( texture.isWebGLCubeRenderTarget ) return _gl.TEXTURE_CUBE_MAP;\n\t\tif ( texture.isWebGL3DRenderTarget ) return _gl.TEXTURE_3D;\n\t\tif ( texture.isWebGLArrayRenderTarget || texture.isCompressedArrayTexture ) return _gl.TEXTURE_2D_ARRAY;\n\t\treturn _gl.TEXTURE_2D;\n\n\t}\n\n\tfunction getInternalFormat( internalFormatName, glFormat, glType, colorSpace, forceLinearTransfer = false ) {\n\n\t\tif ( internalFormatName !== null ) {\n\n\t\t\tif ( _gl[ internalFormatName ] !== undefined ) return _gl[ internalFormatName ];\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \\'' + internalFormatName + '\\'' );\n\n\t\t}\n\n\t\tlet internalFormat = glFormat;\n\n\t\tif ( glFormat === _gl.RED ) {\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.R32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.R16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RED_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.R16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.R32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.R8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.R16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.R32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RG ) {\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.RG32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RG16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RG8;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RG_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RG8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RG16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RG32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RG8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RG16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RG32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGB_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RGB8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RGB16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RGB32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RGB8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RGB16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RGB32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGBA_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RGBA8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RGBA16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RGBA32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RGBA8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RGBA16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RGBA32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGB ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_INT_5_9_9_9_REV ) internalFormat = _gl.RGB9_E5;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGBA ) {\n\n\t\t\tconst transfer = forceLinearTransfer ? LinearTransfer : ColorManagement.getTransfer( colorSpace );\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.RGBA32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGBA16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = ( transfer === SRGBTransfer ) ? _gl.SRGB8_ALPHA8 : _gl.RGBA8;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT_4_4_4_4 ) internalFormat = _gl.RGBA4;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT_5_5_5_1 ) internalFormat = _gl.RGB5_A1;\n\n\t\t}\n\n\t\tif ( internalFormat === _gl.R16F || internalFormat === _gl.R32F ||\n\t\t\tinternalFormat === _gl.RG16F || internalFormat === _gl.RG32F ||\n\t\t\tinternalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F ) {\n\n\t\t\textensions.get( 'EXT_color_buffer_float' );\n\n\t\t}\n\n\t\treturn internalFormat;\n\n\t}\n\n\tfunction getInternalDepthFormat( useStencil, depthType ) {\n\n\t\tlet glInternalFormat;\n\t\tif ( useStencil ) {\n\n\t\t\tif ( depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH24_STENCIL8;\n\n\t\t\t} else if ( depthType === FloatType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH32F_STENCIL8;\n\n\t\t\t} else if ( depthType === UnsignedShortType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH24_STENCIL8;\n\t\t\t\tconsole.warn( 'DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.' );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT24;\n\n\t\t\t} else if ( depthType === FloatType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT32F;\n\n\t\t\t} else if ( depthType === UnsignedShortType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT16;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn glInternalFormat;\n\n\t}\n\n\tfunction getMipLevels( texture, image ) {\n\n\t\tif ( textureNeedsGenerateMipmaps( texture ) === true || ( texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) ) {\n\n\t\t\treturn Math.log2( Math.max( image.width, image.height ) ) + 1;\n\n\t\t} else if ( texture.mipmaps !== undefined && texture.mipmaps.length > 0 ) {\n\n\t\t\t// user-defined mipmaps\n\n\t\t\treturn texture.mipmaps.length;\n\n\t\t} else if ( texture.isCompressedTexture && Array.isArray( texture.image ) ) {\n\n\t\t\treturn image.mipmaps.length;\n\n\t\t} else {\n\n\t\t\t// texture without mipmaps (only base level)\n\n\t\t\treturn 1;\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tdeallocateTexture( texture );\n\n\t\tif ( texture.isVideoTexture ) {\n\n\t\t\t_videoTextures.delete( texture );\n\n\t\t}\n\n\t}\n\n\tfunction onRenderTargetDispose( event ) {\n\n\t\tconst renderTarget = event.target;\n\n\t\trenderTarget.removeEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tdeallocateRenderTarget( renderTarget );\n\n\t}\n\n\t//\n\n\tfunction deallocateTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( textureProperties.__webglInit === undefined ) return;\n\n\t\t// check if it's necessary to remove the WebGLTexture object\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures ) {\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\t\t\twebglTexture.usedTimes --;\n\n\t\t\t// the WebGLTexture object is not used anymore, remove it\n\n\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\tdeleteTexture( texture );\n\n\t\t\t}\n\n\t\t\t// remove the weak map entry if no WebGLTexture uses the source anymore\n\n\t\t\tif ( Object.keys( webglTextures ).length === 0 ) {\n\n\t\t\t\t_sources.delete( source );\n\n\t\t\t}\n\n\t\t}\n\n\t\tproperties.remove( texture );\n\n\t}\n\n\tfunction deleteTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\t\t_gl.deleteTexture( textureProperties.__webglTexture );\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\t\tdelete webglTextures[ textureProperties.__cacheKey ];\n\n\t\tinfo.memory.textures --;\n\n\t}\n\n\tfunction deallocateRenderTarget( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( renderTarget.depthTexture ) {\n\n\t\t\trenderTarget.depthTexture.dispose();\n\n\t\t\tproperties.remove( renderTarget.depthTexture );\n\n\t\t}\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( Array.isArray( renderTargetProperties.__webglFramebuffer[ i ] ) ) {\n\n\t\t\t\t\tfor ( let level = 0; level < renderTargetProperties.__webglFramebuffer[ i ].length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ][ level ] );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( Array.isArray( renderTargetProperties.__webglFramebuffer ) ) {\n\n\t\t\t\tfor ( let level = 0; level < renderTargetProperties.__webglFramebuffer.length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ level ] );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );\n\n\t\t\t}\n\n\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer );\n\t\t\tif ( renderTargetProperties.__webglMultisampledFramebuffer ) _gl.deleteFramebuffer( renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer ) {\n\n\t\t\t\tfor ( let i = 0; i < renderTargetProperties.__webglColorRenderbuffer.length; i ++ ) {\n\n\t\t\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer[ i ] ) _gl.deleteRenderbuffer( renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( renderTargetProperties.__webglDepthRenderbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthRenderbuffer );\n\n\t\t}\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\tif ( attachmentProperties.__webglTexture ) {\n\n\t\t\t\t_gl.deleteTexture( attachmentProperties.__webglTexture );\n\n\t\t\t\tinfo.memory.textures --;\n\n\t\t\t}\n\n\t\t\tproperties.remove( textures[ i ] );\n\n\t\t}\n\n\t\tproperties.remove( renderTarget );\n\n\t}\n\n\t//\n\n\tlet textureUnits = 0;\n\n\tfunction resetTextureUnits() {\n\n\t\ttextureUnits = 0;\n\n\t}\n\n\tfunction allocateTextureUnit() {\n\n\t\tconst textureUnit = textureUnits;\n\n\t\tif ( textureUnit >= capabilities.maxTextures ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures );\n\n\t\t}\n\n\t\ttextureUnits += 1;\n\n\t\treturn textureUnit;\n\n\t}\n\n\tfunction getTextureCacheKey( texture ) {\n\n\t\tconst array = [];\n\n\t\tarray.push( texture.wrapS );\n\t\tarray.push( texture.wrapT );\n\t\tarray.push( texture.wrapR || 0 );\n\t\tarray.push( texture.magFilter );\n\t\tarray.push( texture.minFilter );\n\t\tarray.push( texture.anisotropy );\n\t\tarray.push( texture.internalFormat );\n\t\tarray.push( texture.format );\n\t\tarray.push( texture.type );\n\t\tarray.push( texture.generateMipmaps );\n\t\tarray.push( texture.premultiplyAlpha );\n\t\tarray.push( texture.flipY );\n\t\tarray.push( texture.unpackAlignment );\n\t\tarray.push( texture.colorSpace );\n\n\t\treturn array.join();\n\n\t}\n\n\t//\n\n\tfunction setTexture2D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.isVideoTexture ) updateVideoTexture( texture );\n\n\t\tif ( texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tconst image = texture.image;\n\n\t\t\tif ( image === null ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but no image data found.' );\n\n\t\t\t} else if ( image.complete === false ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but image is incomplete' );\n\n\t\t\t} else {\n\n\t\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTexture2DArray( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTexture3D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_3D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTextureCube( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadCubeTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tconst wrappingToGL = {\n\t\t[ RepeatWrapping ]: _gl.REPEAT,\n\t\t[ ClampToEdgeWrapping ]: _gl.CLAMP_TO_EDGE,\n\t\t[ MirroredRepeatWrapping ]: _gl.MIRRORED_REPEAT\n\t};\n\n\tconst filterToGL = {\n\t\t[ NearestFilter ]: _gl.NEAREST,\n\t\t[ NearestMipmapNearestFilter ]: _gl.NEAREST_MIPMAP_NEAREST,\n\t\t[ NearestMipmapLinearFilter ]: _gl.NEAREST_MIPMAP_LINEAR,\n\n\t\t[ LinearFilter ]: _gl.LINEAR,\n\t\t[ LinearMipmapNearestFilter ]: _gl.LINEAR_MIPMAP_NEAREST,\n\t\t[ LinearMipmapLinearFilter ]: _gl.LINEAR_MIPMAP_LINEAR\n\t};\n\n\tconst compareToGL = {\n\t\t[ NeverCompare ]: _gl.NEVER,\n\t\t[ AlwaysCompare ]: _gl.ALWAYS,\n\t\t[ LessCompare ]: _gl.LESS,\n\t\t[ LessEqualCompare ]: _gl.LEQUAL,\n\t\t[ EqualCompare ]: _gl.EQUAL,\n\t\t[ GreaterEqualCompare ]: _gl.GEQUAL,\n\t\t[ GreaterCompare ]: _gl.GREATER,\n\t\t[ NotEqualCompare ]: _gl.NOTEQUAL\n\t};\n\n\tfunction setTextureParameters( textureType, texture ) {\n\n\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false &&\n\t\t\t( texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter ||\n\t\t\ttexture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter ) ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );\n\n\t\t}\n\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[ texture.wrapS ] );\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[ texture.wrapT ] );\n\n\t\tif ( textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[ texture.wrapR ] );\n\n\t\t}\n\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[ texture.magFilter ] );\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[ texture.minFilter ] );\n\n\t\tif ( texture.compareFunction ) {\n\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_COMPARE_MODE, _gl.COMPARE_REF_TO_TEXTURE );\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_COMPARE_FUNC, compareToGL[ texture.compareFunction ] );\n\n\t\t}\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tif ( texture.magFilter === NearestFilter ) return;\n\t\t\tif ( texture.minFilter !== NearestMipmapLinearFilter && texture.minFilter !== LinearMipmapLinearFilter ) return;\n\t\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false ) return; // verify extension\n\n\t\t\tif ( texture.anisotropy > 1 || properties.get( texture ).__currentAnisotropy ) {\n\n\t\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\t\t\t\t_gl.texParameterf( textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min( texture.anisotropy, capabilities.getMaxAnisotropy() ) );\n\t\t\t\tproperties.get( texture ).__currentAnisotropy = texture.anisotropy;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction initTexture( textureProperties, texture ) {\n\n\t\tlet forceUpload = false;\n\n\t\tif ( textureProperties.__webglInit === undefined ) {\n\n\t\t\ttextureProperties.__webglInit = true;\n\n\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t}\n\n\t\t// create Source <-> WebGLTextures mapping if necessary\n\n\t\tconst source = texture.source;\n\t\tlet webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures === undefined ) {\n\n\t\t\twebglTextures = {};\n\t\t\t_sources.set( source, webglTextures );\n\n\t\t}\n\n\t\t// check if there is already a WebGLTexture object for the given texture parameters\n\n\t\tconst textureCacheKey = getTextureCacheKey( texture );\n\n\t\tif ( textureCacheKey !== textureProperties.__cacheKey ) {\n\n\t\t\t// if not, create a new instance of WebGLTexture\n\n\t\t\tif ( webglTextures[ textureCacheKey ] === undefined ) {\n\n\t\t\t\t// create new entry\n\n\t\t\t\twebglTextures[ textureCacheKey ] = {\n\t\t\t\t\ttexture: _gl.createTexture(),\n\t\t\t\t\tusedTimes: 0\n\t\t\t\t};\n\n\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t// when a new instance of WebGLTexture was created, a texture upload is required\n\t\t\t\t// even if the image contents are identical\n\n\t\t\t\tforceUpload = true;\n\n\t\t\t}\n\n\t\t\twebglTextures[ textureCacheKey ].usedTimes ++;\n\n\t\t\t// every time the texture cache key changes, it's necessary to check if an instance of\n\t\t\t// WebGLTexture can be deleted in order to avoid a memory leak.\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\n\t\t\tif ( webglTexture !== undefined ) {\n\n\t\t\t\twebglTextures[ textureProperties.__cacheKey ].usedTimes --;\n\n\t\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\t\tdeleteTexture( texture );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// store references to cache key and WebGLTexture object\n\n\t\t\ttextureProperties.__cacheKey = textureCacheKey;\n\t\t\ttextureProperties.__webglTexture = webglTextures[ textureCacheKey ].texture;\n\n\t\t}\n\n\t\treturn forceUpload;\n\n\t}\n\n\tfunction uploadTexture( textureProperties, texture, slot ) {\n\n\t\tlet textureType = _gl.TEXTURE_2D;\n\n\t\tif ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) textureType = _gl.TEXTURE_2D_ARRAY;\n\t\tif ( texture.isData3DTexture ) textureType = _gl.TEXTURE_3D;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.bindTexture( textureType, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t\tconst sourceProperties = properties.get( source );\n\n\t\tif ( source.version !== sourceProperties.__version || forceUpload === true ) {\n\n\t\t\tstate.activeTexture( _gl.TEXTURE0 + slot );\n\n\t\t\tconst workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace );\n\t\t\tconst texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace );\n\t\t\tconst unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion );\n\n\t\t\tlet image = resizeImage( texture.image, false, capabilities.maxTextureSize );\n\t\t\timage = verifyColorSpace( texture, image );\n\n\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\n\t\t\tconst glType = utils.convert( texture.type );\n\t\t\tlet glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace, texture.isVideoTexture );\n\n\t\t\tsetTextureParameters( textureType, texture );\n\n\t\t\tlet mipmap;\n\t\t\tconst mipmaps = texture.mipmaps;\n\n\t\t\tconst useTexStorage = ( texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( sourceProperties.__version === undefined ) || ( forceUpload === true );\n\t\t\tconst dataReady = source.dataReady;\n\t\t\tconst levels = getMipLevels( texture, image );\n\n\t\t\tif ( texture.isDepthTexture ) {\n\n\t\t\t\tglInternalFormat = getInternalDepthFormat( texture.format === DepthStencilFormat, texture.type );\n\n\t\t\t\t//\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, 1, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataTexture ) {\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, 0, 0, 0, image.width, image.height, glFormat, glType, image.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isCompressedTexture ) {\n\n\t\t\t\tif ( texture.isCompressedArrayTexture ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tif ( texture.layerUpdates.size > 0 ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst layerByteLength = getByteLength( mipmap.width, mipmap.height, texture.format, texture.type );\n\n\t\t\t\t\t\t\t\t\t\t\tfor ( const layerIndex of texture.layerUpdates ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst layerData = mipmap.data.subarray(\n\t\t\t\t\t\t\t\t\t\t\t\t\tlayerIndex * layerByteLength / mipmap.data.BYTES_PER_ELEMENT,\n\t\t\t\t\t\t\t\t\t\t\t\t\t( layerIndex + 1 ) * layerByteLength / mipmap.data.BYTES_PER_ELEMENT\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, layerIndex, mipmap.width, mipmap.height, 1, glFormat, layerData );\n\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\ttexture.clearLayerUpdates();\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage3D( _gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, mipmap.data, 0, 0 );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataArrayTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\tif ( texture.layerUpdates.size > 0 ) {\n\n\t\t\t\t\t\t\tconst layerByteLength = getByteLength( image.width, image.height, texture.format, texture.type );\n\n\t\t\t\t\t\t\tfor ( const layerIndex of texture.layerUpdates ) {\n\n\t\t\t\t\t\t\t\tconst layerData = image.data.subarray(\n\t\t\t\t\t\t\t\t\tlayerIndex * layerByteLength / image.data.BYTES_PER_ELEMENT,\n\t\t\t\t\t\t\t\t\t( layerIndex + 1 ) * layerByteLength / image.data.BYTES_PER_ELEMENT\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, 0, 0, 0, layerIndex, image.width, image.height, 1, glFormat, glType, layerData );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttexture.clearLayerUpdates();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isData3DTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_3D, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_3D, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isFramebufferTexture ) {\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tlet width = image.width, height = image.height;\n\n\t\t\t\t\t\tfor ( let i = 0; i < levels; i ++ ) {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, width, height, 0, glFormat, glType, null );\n\n\t\t\t\t\t\t\twidth >>= 1;\n\t\t\t\t\t\t\theight >>= 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// regular Texture (image, video, canvas)\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tconst dimensions = getDimensions( mipmaps[ 0 ] );\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tconst dimensions = getDimensions( image );\n\n\t\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, 0, 0, 0, glFormat, glType, image );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( textureType );\n\n\t\t\t}\n\n\t\t\tsourceProperties.__version = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\tfunction uploadCubeTexture( textureProperties, texture, slot ) {\n\n\t\tif ( texture.image.length !== 6 ) return;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t\tconst sourceProperties = properties.get( source );\n\n\t\tif ( source.version !== sourceProperties.__version || forceUpload === true ) {\n\n\t\t\tstate.activeTexture( _gl.TEXTURE0 + slot );\n\n\t\t\tconst workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace );\n\t\t\tconst texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace );\n\t\t\tconst unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion );\n\n\t\t\tconst isCompressed = ( texture.isCompressedTexture || texture.image[ 0 ].isCompressedTexture );\n\t\t\tconst isDataTexture = ( texture.image[ 0 ] && texture.image[ 0 ].isDataTexture );\n\n\t\t\tconst cubeImage = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( ! isCompressed && ! isDataTexture ) {\n\n\t\t\t\t\tcubeImage[ i ] = resizeImage( texture.image[ i ], true, capabilities.maxCubemapSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tcubeImage[ i ] = isDataTexture ? texture.image[ i ].image : texture.image[ i ];\n\n\t\t\t\t}\n\n\t\t\t\tcubeImage[ i ] = verifyColorSpace( texture, cubeImage[ i ] );\n\n\t\t\t}\n\n\t\t\tconst image = cubeImage[ 0 ],\n\t\t\t\tglFormat = utils.convert( texture.format, texture.colorSpace ),\n\t\t\t\tglType = utils.convert( texture.type ),\n\t\t\t\tglInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\n\t\t\tconst useTexStorage = ( texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( sourceProperties.__version === undefined ) || ( forceUpload === true );\n\t\t\tconst dataReady = source.dataReady;\n\t\t\tlet levels = getMipLevels( texture, image );\n\n\t\t\tsetTextureParameters( _gl.TEXTURE_CUBE_MAP, texture );\n\n\t\t\tlet mipmaps;\n\n\t\t\tif ( isCompressed ) {\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tmipmaps = cubeImage[ i ].mipmaps;\n\n\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tmipmaps = texture.mipmaps;\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t// TODO: Uniformly handle mipmap definitions\n\t\t\t\t\t// Normal textures and compressed cube textures define base level + mips with their mipmap array\n\t\t\t\t\t// Uncompressed cube textures use their mipmap array only for mips (no base level)\n\n\t\t\t\t\tif ( mipmaps.length > 0 ) levels ++;\n\n\t\t\t\t\tconst dimensions = getDimensions( cubeImage[ 0 ] );\n\n\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tif ( isDataTexture ) {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, cubeImage[ i ].width, cubeImage[ i ].height, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\t\t\t\t\t\t\tconst mipmapImage = mipmap.image[ i ].image;\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\t// We assume images for cube map have the same size.\n\t\t\t\tgenerateMipmap( _gl.TEXTURE_CUBE_MAP );\n\n\t\t\t}\n\n\t\t\tsourceProperties.__version = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\t// Render targets\n\n\t// Setup storage for target texture and bind it to correct framebuffer\n\tfunction setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget, level ) {\n\n\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\tconst glType = utils.convert( texture.type );\n\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\ttextureProperties.__renderTarget = renderTarget;\n\n\t\tif ( ! renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\tconst width = Math.max( 1, renderTarget.width >> level );\n\t\t\tconst height = Math.max( 1, renderTarget.height >> level );\n\n\t\t\tif ( textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t\tstate.texImage3D( textureTarget, level, glInternalFormat, width, height, renderTarget.depth, 0, glFormat, glType, null );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage2D( textureTarget, level, glInternalFormat, width, height, 0, glFormat, glType, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, attachment, textureTarget, textureProperties.__webglTexture, 0, getRenderTargetSamples( renderTarget ) );\n\n\t\t} else if ( textureTarget === _gl.TEXTURE_2D || ( textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z ) ) { // see #24753\n\n\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, textureProperties.__webglTexture, level );\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t}\n\n\t// Setup storage for internal depth/stencil buffers and bind to correct framebuffer\n\tfunction setupRenderBufferStorage( renderbuffer, renderTarget, isMultisample ) {\n\n\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t// retrieve the depth attachment types\n\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\tconst depthType = depthTexture && depthTexture.isDepthTexture ? depthTexture.type : null;\n\t\t\tconst glInternalFormat = getInternalDepthFormat( renderTarget.stencilBuffer, depthType );\n\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\n\t\t\t// set up the attachment\n\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\tconst isUseMultisampledRTT = useMultisampledRTT( renderTarget );\n\t\t\tif ( isUseMultisampledRTT ) {\n\n\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else if ( isMultisample ) {\n\n\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( _gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t} else {\n\n\t\t\tconst textures = renderTarget.textures;\n\n\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\tconst texture = textures[ i ];\n\n\t\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\t\tif ( isMultisample && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else if ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.renderbufferStorage( _gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, null );\n\n\t}\n\n\t// Setup resources for a Depth Texture for a FBO (needs an extension)\n\tfunction setupDepthTexture( framebuffer, renderTarget ) {\n\n\t\tconst isCube = ( renderTarget && renderTarget.isWebGLCubeRenderTarget );\n\t\tif ( isCube ) throw new Error( 'Depth Texture with cube render targets is not supported' );\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\tif ( ! ( renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture ) ) {\n\n\t\t\tthrow new Error( 'renderTarget.depthTexture must be an instance of THREE.DepthTexture' );\n\n\t\t}\n\n\t\tconst textureProperties = properties.get( renderTarget.depthTexture );\n\t\ttextureProperties.__renderTarget = renderTarget;\n\n\t\t// upload an empty depth texture with framebuffer size\n\t\tif ( ! textureProperties.__webglTexture ||\n\t\t\t\trenderTarget.depthTexture.image.width !== renderTarget.width ||\n\t\t\t\trenderTarget.depthTexture.image.height !== renderTarget.height ) {\n\n\t\t\trenderTarget.depthTexture.image.width = renderTarget.width;\n\t\t\trenderTarget.depthTexture.image.height = renderTarget.height;\n\t\t\trenderTarget.depthTexture.needsUpdate = true;\n\n\t\t}\n\n\t\tsetTexture2D( renderTarget.depthTexture, 0 );\n\n\t\tconst webglDepthTexture = textureProperties.__webglTexture;\n\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\tif ( renderTarget.depthTexture.format === DepthFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else if ( renderTarget.depthTexture.format === DepthStencilFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Unknown depthTexture format' );\n\n\t\t}\n\n\t}\n\n\t// Setup GL resources for a non-texture depth buffer\n\tfunction setupDepthRenderbuffer( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\n\t\t// if the bound depth texture has changed\n\t\tif ( renderTargetProperties.__boundDepthTexture !== renderTarget.depthTexture ) {\n\n\t\t\t// fire the dispose event to get rid of stored state associated with the previously bound depth buffer\n\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\tif ( renderTargetProperties.__depthDisposeCallback ) {\n\n\t\t\t\trenderTargetProperties.__depthDisposeCallback();\n\n\t\t\t}\n\n\t\t\t// set up dispose listeners to track when the currently attached buffer is implicitly unbound\n\t\t\tif ( depthTexture ) {\n\n\t\t\t\tconst disposeEvent = () => {\n\n\t\t\t\t\tdelete renderTargetProperties.__boundDepthTexture;\n\t\t\t\t\tdelete renderTargetProperties.__depthDisposeCallback;\n\t\t\t\t\tdepthTexture.removeEventListener( 'dispose', disposeEvent );\n\n\t\t\t\t};\n\n\t\t\t\tdepthTexture.addEventListener( 'dispose', disposeEvent );\n\t\t\t\trenderTargetProperties.__depthDisposeCallback = disposeEvent;\n\n\t\t\t}\n\n\t\t\trenderTargetProperties.__boundDepthTexture = depthTexture;\n\n\t\t}\n\n\t\tif ( renderTarget.depthTexture && ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\tif ( isCube ) throw new Error( 'target.depthTexture not supported in Cube render targets' );\n\n\t\t\tsetupDepthTexture( renderTargetProperties.__webglFramebuffer, renderTarget );\n\n\t\t} else {\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\trenderTargetProperties.__webglDepthbuffer = [];\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[ i ] );\n\n\t\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer[ i ] === undefined ) {\n\n\t\t\t\t\t\trenderTargetProperties.__webglDepthbuffer[ i ] = _gl.createRenderbuffer();\n\t\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer[ i ], renderTarget, false );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// attach buffer if it's been created already\n\t\t\t\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\t\t\tconst renderbuffer = renderTargetProperties.__webglDepthbuffer[ i ];\n\t\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer === undefined ) {\n\n\t\t\t\t\trenderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer, renderTarget, false );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// attach buffer if it's been created already\n\t\t\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\t\tconst renderbuffer = renderTargetProperties.__webglDepthbuffer;\n\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t}\n\n\t// rebind framebuffer with external textures\n\tfunction rebindTextures( renderTarget, colorTexture, depthTexture ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( colorTexture !== undefined ) {\n\n\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, 0 );\n\n\t\t}\n\n\t\tif ( depthTexture !== undefined ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\t// Set up GL resources for the render target\n\tfunction setupRenderTarget( renderTarget ) {\n\n\t\tconst texture = renderTarget.texture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\trenderTarget.addEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\t\tconst isMultipleRenderTargets = ( textures.length > 1 );\n\n\t\tif ( ! isMultipleRenderTargets ) {\n\n\t\t\tif ( textureProperties.__webglTexture === undefined ) {\n\n\t\t\t\ttextureProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t}\n\n\t\t\ttextureProperties.__version = texture.version;\n\t\t\tinfo.memory.textures ++;\n\n\t\t}\n\n\t\t// Setup framebuffer\n\n\t\tif ( isCube ) {\n\n\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = [];\n\n\t\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ][ level ] = _gl.createFramebuffer();\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ level ] = _gl.createFramebuffer();\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n\n\t\t\t}\n\n\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\t\t\tif ( attachmentProperties.__webglTexture === undefined ) {\n\n\t\t\t\t\t\tattachmentProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( ( renderTarget.samples > 0 ) && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\trenderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n\t\t\t\trenderTargetProperties.__webglColorRenderbuffer = [];\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\tconst texture = textures[ i ];\n\t\t\t\t\trenderTargetProperties.__webglColorRenderbuffer[ i ] = _gl.createRenderbuffer();\n\n\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace, renderTarget.isXRRenderTarget === true );\n\t\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, null );\n\n\t\t\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\trenderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true );\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Setup color buffer\n\n\t\tif ( isCube ) {\n\n\t\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( _gl.TEXTURE_CUBE_MAP, texture );\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ][ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, level );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( _gl.TEXTURE_CUBE_MAP );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else if ( isMultipleRenderTargets ) {\n\n\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\tconst attachment = textures[ i ];\n\t\t\t\tconst attachmentProperties = properties.get( attachment );\n\n\t\t\t\tstate.bindTexture( _gl.TEXTURE_2D, attachmentProperties.__webglTexture );\n\t\t\t\tsetTextureParameters( _gl.TEXTURE_2D, attachment );\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, 0 );\n\n\t\t\t\tif ( textureNeedsGenerateMipmaps( attachment ) ) {\n\n\t\t\t\t\tgenerateMipmap( _gl.TEXTURE_2D );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else {\n\n\t\t\tlet glTextureType = _gl.TEXTURE_2D;\n\n\t\t\tif ( renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget ) {\n\n\t\t\t\tglTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;\n\n\t\t\t}\n\n\t\t\tstate.bindTexture( glTextureType, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( glTextureType, texture );\n\n\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, level );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, 0 );\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( glTextureType );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t}\n\n\t\t// Setup depth and stencil buffers\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\tfunction updateRenderTargetMipmap( renderTarget ) {\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst texture = textures[ i ];\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tconst targetType = getTargetType( renderTarget );\n\t\t\t\tconst webglTexture = properties.get( texture ).__webglTexture;\n\n\t\t\t\tstate.bindTexture( targetType, webglTexture );\n\t\t\t\tgenerateMipmap( targetType );\n\t\t\t\tstate.unbindTexture();\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tconst invalidationArrayRead = [];\n\tconst invalidationArrayDraw = [];\n\n\tfunction updateMultisampleRenderTarget( renderTarget ) {\n\n\t\tif ( renderTarget.samples > 0 ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\tconst textures = renderTarget.textures;\n\t\t\t\tconst width = renderTarget.width;\n\t\t\t\tconst height = renderTarget.height;\n\t\t\t\tlet mask = _gl.COLOR_BUFFER_BIT;\n\t\t\t\tconst depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\t\tconst isMultipleRenderTargets = ( textures.length > 1 );\n\n\t\t\t\t// If MRT we need to remove FBO attachments\n\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, null );\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, null, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\tif ( renderTarget.resolveDepthBuffer ) {\n\n\t\t\t\t\t\tif ( renderTarget.depthBuffer ) mask |= _gl.DEPTH_BUFFER_BIT;\n\n\t\t\t\t\t\t// resolving stencil is slow with a D3D backend. disable it for all transmission render targets (see #27799)\n\n\t\t\t\t\t\tif ( renderTarget.stencilBuffer && renderTarget.resolveStencilBuffer ) mask |= _gl.STENCIL_BUFFER_BIT;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\t\tconst webglTexture = properties.get( textures[ i ] ).__webglTexture;\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, webglTexture, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_gl.blitFramebuffer( 0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST );\n\n\t\t\t\t\tif ( supportsInvalidateFramebuffer === true ) {\n\n\t\t\t\t\t\tinvalidationArrayRead.length = 0;\n\t\t\t\t\t\tinvalidationArrayDraw.length = 0;\n\n\t\t\t\t\t\tinvalidationArrayRead.push( _gl.COLOR_ATTACHMENT0 + i );\n\n\t\t\t\t\t\tif ( renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false ) {\n\n\t\t\t\t\t\t\tinvalidationArrayRead.push( depthStyle );\n\t\t\t\t\t\t\tinvalidationArrayDraw.push( depthStyle );\n\n\t\t\t\t\t\t\t_gl.invalidateFramebuffer( _gl.DRAW_FRAMEBUFFER, invalidationArrayDraw );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_gl.invalidateFramebuffer( _gl.READ_FRAMEBUFFER, invalidationArrayRead );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, null );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, null );\n\n\t\t\t\t// If MRT since pre-blit we removed the FBO we need to reconstruct the attachments\n\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\t\tconst webglTexture = properties.get( textures[ i ] ).__webglTexture;\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, webglTexture, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\t} else {\n\n\t\t\t\tif ( renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false && supportsInvalidateFramebuffer ) {\n\n\t\t\t\t\tconst depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\n\t\t\t\t\t_gl.invalidateFramebuffer( _gl.DRAW_FRAMEBUFFER, [ depthStyle ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction getRenderTargetSamples( renderTarget ) {\n\n\t\treturn Math.min( capabilities.maxSamples, renderTarget.samples );\n\n\t}\n\n\tfunction useMultisampledRTT( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\treturn renderTarget.samples > 0 && extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true && renderTargetProperties.__useRenderToTexture !== false;\n\n\t}\n\n\tfunction updateVideoTexture( texture ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\t// Check the last frame we updated the VideoTexture\n\n\t\tif ( _videoTextures.get( texture ) !== frame ) {\n\n\t\t\t_videoTextures.set( texture, frame );\n\t\t\ttexture.update();\n\n\t\t}\n\n\t}\n\n\tfunction verifyColorSpace( texture, image ) {\n\n\t\tconst colorSpace = texture.colorSpace;\n\t\tconst format = texture.format;\n\t\tconst type = texture.type;\n\n\t\tif ( texture.isCompressedTexture === true || texture.isVideoTexture === true ) return image;\n\n\t\tif ( colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace ) {\n\n\t\t\t// sRGB\n\n\t\t\tif ( ColorManagement.getTransfer( colorSpace ) === SRGBTransfer ) {\n\n\t\t\t\t// in WebGL 2 uncompressed textures can only be sRGB encoded if they have the RGBA8 format\n\n\t\t\t\tif ( format !== RGBAFormat || type !== UnsignedByteType ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.WebGLTextures: Unsupported texture color space:', colorSpace );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction getDimensions( image ) {\n\n\t\tif ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) {\n\n\t\t\t// if intrinsic data are not available, fallback to width/height\n\n\t\t\t_imageDimensions.width = image.naturalWidth || image.width;\n\t\t\t_imageDimensions.height = image.naturalHeight || image.height;\n\n\t\t} else if ( typeof VideoFrame !== 'undefined' && image instanceof VideoFrame ) {\n\n\t\t\t_imageDimensions.width = image.displayWidth;\n\t\t\t_imageDimensions.height = image.displayHeight;\n\n\t\t} else {\n\n\t\t\t_imageDimensions.width = image.width;\n\t\t\t_imageDimensions.height = image.height;\n\n\t\t}\n\n\t\treturn _imageDimensions;\n\n\t}\n\n\t//\n\n\tthis.allocateTextureUnit = allocateTextureUnit;\n\tthis.resetTextureUnits = resetTextureUnits;\n\n\tthis.setTexture2D = setTexture2D;\n\tthis.setTexture2DArray = setTexture2DArray;\n\tthis.setTexture3D = setTexture3D;\n\tthis.setTextureCube = setTextureCube;\n\tthis.rebindTextures = rebindTextures;\n\tthis.setupRenderTarget = setupRenderTarget;\n\tthis.updateRenderTargetMipmap = updateRenderTargetMipmap;\n\tthis.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n\tthis.setupDepthRenderbuffer = setupDepthRenderbuffer;\n\tthis.setupFrameBufferTexture = setupFrameBufferTexture;\n\tthis.useMultisampledRTT = useMultisampledRTT;\n\n}\n\nfunction WebGLUtils( gl, extensions ) {\n\n\tfunction convert( p, colorSpace = NoColorSpace ) {\n\n\t\tlet extension;\n\n\t\tconst transfer = ColorManagement.getTransfer( colorSpace );\n\n\t\tif ( p === UnsignedByteType ) return gl.UNSIGNED_BYTE;\n\t\tif ( p === UnsignedShort4444Type ) return gl.UNSIGNED_SHORT_4_4_4_4;\n\t\tif ( p === UnsignedShort5551Type ) return gl.UNSIGNED_SHORT_5_5_5_1;\n\t\tif ( p === UnsignedInt5999Type ) return gl.UNSIGNED_INT_5_9_9_9_REV;\n\n\t\tif ( p === ByteType ) return gl.BYTE;\n\t\tif ( p === ShortType ) return gl.SHORT;\n\t\tif ( p === UnsignedShortType ) return gl.UNSIGNED_SHORT;\n\t\tif ( p === IntType ) return gl.INT;\n\t\tif ( p === UnsignedIntType ) return gl.UNSIGNED_INT;\n\t\tif ( p === FloatType ) return gl.FLOAT;\n\t\tif ( p === HalfFloatType ) return gl.HALF_FLOAT;\n\n\t\tif ( p === AlphaFormat ) return gl.ALPHA;\n\t\tif ( p === RGBFormat ) return gl.RGB;\n\t\tif ( p === RGBAFormat ) return gl.RGBA;\n\t\tif ( p === LuminanceFormat ) return gl.LUMINANCE;\n\t\tif ( p === LuminanceAlphaFormat ) return gl.LUMINANCE_ALPHA;\n\t\tif ( p === DepthFormat ) return gl.DEPTH_COMPONENT;\n\t\tif ( p === DepthStencilFormat ) return gl.DEPTH_STENCIL;\n\n\t\t// WebGL2 formats.\n\n\t\tif ( p === RedFormat ) return gl.RED;\n\t\tif ( p === RedIntegerFormat ) return gl.RED_INTEGER;\n\t\tif ( p === RGFormat ) return gl.RG;\n\t\tif ( p === RGIntegerFormat ) return gl.RG_INTEGER;\n\t\tif ( p === RGBAIntegerFormat ) return gl.RGBA_INTEGER;\n\n\t\t// S3TC\n\n\t\tif ( p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format ) {\n\n\t\t\tif ( transfer === SRGBTransfer ) {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc_srgb' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// PVRTC\n\n\t\tif ( p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_pvrtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGB_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ETC\n\n\t\tif ( p === RGB_ETC1_Format || p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_etc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_ETC1_Format || p === RGB_ETC2_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n\t\t\t\tif ( p === RGBA_ETC2_EAC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ASTC\n\n\t\tif ( p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format ||\n\t\t\tp === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format ||\n\t\t\tp === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format ||\n\t\t\tp === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format ||\n\t\t\tp === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_astc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_ASTC_4x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x12_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// BPTC\n\n\t\tif ( p === RGBA_BPTC_Format || p === RGB_BPTC_SIGNED_Format || p === RGB_BPTC_UNSIGNED_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_bptc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n\t\t\t\tif ( p === RGB_BPTC_SIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;\n\t\t\t\tif ( p === RGB_BPTC_UNSIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// RGTC\n\n\t\tif ( p === RED_RGTC1_Format || p === SIGNED_RED_RGTC1_Format || p === RED_GREEN_RGTC2_Format || p === SIGNED_RED_GREEN_RGTC2_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_rgtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return extension.COMPRESSED_RED_RGTC1_EXT;\n\t\t\t\tif ( p === SIGNED_RED_RGTC1_Format ) return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;\n\t\t\t\tif ( p === RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;\n\t\t\t\tif ( p === SIGNED_RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( p === UnsignedInt248Type ) return gl.UNSIGNED_INT_24_8;\n\n\t\t// if \"p\" can't be resolved, assume the user defines a WebGL constant as a string (fallback/workaround for packed RGB formats)\n\n\t\treturn ( gl[ p ] !== undefined ) ? gl[ p ] : null;\n\n\t}\n\n\treturn { convert: convert };\n\n}\n\nclass ArrayCamera extends PerspectiveCamera {\n\n\tconstructor( array = [] ) {\n\n\t\tsuper();\n\n\t\tthis.isArrayCamera = true;\n\n\t\tthis.cameras = array;\n\n\t}\n\n}\n\nclass Group extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isGroup = true;\n\n\t\tthis.type = 'Group';\n\n\t}\n\n}\n\nconst _moveEvent = { type: 'move' };\n\nclass WebXRController {\n\n\tconstructor() {\n\n\t\tthis._targetRay = null;\n\t\tthis._grip = null;\n\t\tthis._hand = null;\n\n\t}\n\n\tgetHandSpace() {\n\n\t\tif ( this._hand === null ) {\n\n\t\t\tthis._hand = new Group();\n\t\t\tthis._hand.matrixAutoUpdate = false;\n\t\t\tthis._hand.visible = false;\n\n\t\t\tthis._hand.joints = {};\n\t\t\tthis._hand.inputState = { pinching: false };\n\n\t\t}\n\n\t\treturn this._hand;\n\n\t}\n\n\tgetTargetRaySpace() {\n\n\t\tif ( this._targetRay === null ) {\n\n\t\t\tthis._targetRay = new Group();\n\t\t\tthis._targetRay.matrixAutoUpdate = false;\n\t\t\tthis._targetRay.visible = false;\n\t\t\tthis._targetRay.hasLinearVelocity = false;\n\t\t\tthis._targetRay.linearVelocity = new Vector3();\n\t\t\tthis._targetRay.hasAngularVelocity = false;\n\t\t\tthis._targetRay.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._targetRay;\n\n\t}\n\n\tgetGripSpace() {\n\n\t\tif ( this._grip === null ) {\n\n\t\t\tthis._grip = new Group();\n\t\t\tthis._grip.matrixAutoUpdate = false;\n\t\t\tthis._grip.visible = false;\n\t\t\tthis._grip.hasLinearVelocity = false;\n\t\t\tthis._grip.linearVelocity = new Vector3();\n\t\t\tthis._grip.hasAngularVelocity = false;\n\t\t\tthis._grip.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._grip;\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.dispatchEvent( event );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tconnect( inputSource ) {\n\n\t\tif ( inputSource && inputSource.hand ) {\n\n\t\t\tconst hand = this._hand;\n\n\t\t\tif ( hand ) {\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Initialize hand with joints when connected\n\t\t\t\t\tthis._getHandJoint( hand, inputjoint );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.dispatchEvent( { type: 'connected', data: inputSource } );\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect( inputSource ) {\n\n\t\tthis.dispatchEvent( { type: 'disconnected', data: inputSource } );\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.visible = false;\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.visible = false;\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.visible = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tupdate( inputSource, frame, referenceSpace ) {\n\n\t\tlet inputPose = null;\n\t\tlet gripPose = null;\n\t\tlet handPose = null;\n\n\t\tconst targetRay = this._targetRay;\n\t\tconst grip = this._grip;\n\t\tconst hand = this._hand;\n\n\t\tif ( inputSource && frame.session.visibilityState !== 'visible-blurred' ) {\n\n\t\t\tif ( hand && inputSource.hand ) {\n\n\t\t\t\thandPose = true;\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Update the joints groups with the XRJoint poses\n\t\t\t\t\tconst jointPose = frame.getJointPose( inputjoint, referenceSpace );\n\n\t\t\t\t\t// The transform of this joint will be updated with the joint pose on each frame\n\t\t\t\t\tconst joint = this._getHandJoint( hand, inputjoint );\n\n\t\t\t\t\tif ( jointPose !== null ) {\n\n\t\t\t\t\t\tjoint.matrix.fromArray( jointPose.transform.matrix );\n\t\t\t\t\t\tjoint.matrix.decompose( joint.position, joint.rotation, joint.scale );\n\t\t\t\t\t\tjoint.matrixWorldNeedsUpdate = true;\n\t\t\t\t\t\tjoint.jointRadius = jointPose.radius;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tjoint.visible = jointPose !== null;\n\n\t\t\t\t}\n\n\t\t\t\t// Custom events\n\n\t\t\t\t// Check pinchz\n\t\t\t\tconst indexTip = hand.joints[ 'index-finger-tip' ];\n\t\t\t\tconst thumbTip = hand.joints[ 'thumb-tip' ];\n\t\t\t\tconst distance = indexTip.position.distanceTo( thumbTip.position );\n\n\t\t\t\tconst distanceToPinch = 0.02;\n\t\t\t\tconst threshold = 0.005;\n\n\t\t\t\tif ( hand.inputState.pinching && distance > distanceToPinch + threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = false;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchend',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t} else if ( ! hand.inputState.pinching && distance <= distanceToPinch - threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = true;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchstart',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( grip !== null && inputSource.gripSpace ) {\n\n\t\t\t\t\tgripPose = frame.getPose( inputSource.gripSpace, referenceSpace );\n\n\t\t\t\t\tif ( gripPose !== null ) {\n\n\t\t\t\t\t\tgrip.matrix.fromArray( gripPose.transform.matrix );\n\t\t\t\t\t\tgrip.matrix.decompose( grip.position, grip.rotation, grip.scale );\n\t\t\t\t\t\tgrip.matrixWorldNeedsUpdate = true;\n\n\t\t\t\t\t\tif ( gripPose.linearVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = true;\n\t\t\t\t\t\t\tgrip.linearVelocity.copy( gripPose.linearVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( gripPose.angularVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = true;\n\t\t\t\t\t\t\tgrip.angularVelocity.copy( gripPose.angularVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( targetRay !== null ) {\n\n\t\t\t\tinputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );\n\n\t\t\t\t// Some runtimes (namely Vive Cosmos with Vive OpenXR Runtime) have only grip space and ray space is equal to it\n\t\t\t\tif ( inputPose === null && gripPose !== null ) {\n\n\t\t\t\t\tinputPose = gripPose;\n\n\t\t\t\t}\n\n\t\t\t\tif ( inputPose !== null ) {\n\n\t\t\t\t\ttargetRay.matrix.fromArray( inputPose.transform.matrix );\n\t\t\t\t\ttargetRay.matrix.decompose( targetRay.position, targetRay.rotation, targetRay.scale );\n\t\t\t\t\ttargetRay.matrixWorldNeedsUpdate = true;\n\n\t\t\t\t\tif ( inputPose.linearVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = true;\n\t\t\t\t\t\ttargetRay.linearVelocity.copy( inputPose.linearVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( inputPose.angularVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = true;\n\t\t\t\t\t\ttargetRay.angularVelocity.copy( inputPose.angularVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.dispatchEvent( _moveEvent );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t}\n\n\t\tif ( targetRay !== null ) {\n\n\t\t\ttargetRay.visible = ( inputPose !== null );\n\n\t\t}\n\n\t\tif ( grip !== null ) {\n\n\t\t\tgrip.visible = ( gripPose !== null );\n\n\t\t}\n\n\t\tif ( hand !== null ) {\n\n\t\t\thand.visible = ( handPose !== null );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// private method\n\n\t_getHandJoint( hand, inputjoint ) {\n\n\t\tif ( hand.joints[ inputjoint.jointName ] === undefined ) {\n\n\t\t\tconst joint = new Group();\n\t\t\tjoint.matrixAutoUpdate = false;\n\t\t\tjoint.visible = false;\n\t\t\thand.joints[ inputjoint.jointName ] = joint;\n\n\t\t\thand.add( joint );\n\n\t\t}\n\n\t\treturn hand.joints[ inputjoint.jointName ];\n\n\t}\n\n}\n\nconst _occlusion_vertex = `\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}`;\n\nconst _occlusion_fragment = `\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}`;\n\nclass WebXRDepthSensing {\n\n\tconstructor() {\n\n\t\tthis.texture = null;\n\t\tthis.mesh = null;\n\n\t\tthis.depthNear = 0;\n\t\tthis.depthFar = 0;\n\n\t}\n\n\tinit( renderer, depthData, renderState ) {\n\n\t\tif ( this.texture === null ) {\n\n\t\t\tconst texture = new Texture();\n\n\t\t\tconst texProps = renderer.properties.get( texture );\n\t\t\ttexProps.__webglTexture = depthData.texture;\n\n\t\t\tif ( ( depthData.depthNear != renderState.depthNear ) || ( depthData.depthFar != renderState.depthFar ) ) {\n\n\t\t\t\tthis.depthNear = depthData.depthNear;\n\t\t\t\tthis.depthFar = depthData.depthFar;\n\n\t\t\t}\n\n\t\t\tthis.texture = texture;\n\n\t\t}\n\n\t}\n\n\tgetMesh( cameraXR ) {\n\n\t\tif ( this.texture !== null ) {\n\n\t\t\tif ( this.mesh === null ) {\n\n\t\t\t\tconst viewport = cameraXR.cameras[ 0 ].viewport;\n\t\t\t\tconst material = new ShaderMaterial( {\n\t\t\t\t\tvertexShader: _occlusion_vertex,\n\t\t\t\t\tfragmentShader: _occlusion_fragment,\n\t\t\t\t\tuniforms: {\n\t\t\t\t\t\tdepthColor: { value: this.texture },\n\t\t\t\t\t\tdepthWidth: { value: viewport.z },\n\t\t\t\t\t\tdepthHeight: { value: viewport.w }\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tthis.mesh = new Mesh( new PlaneGeometry( 20, 20 ), material );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this.mesh;\n\n\t}\n\n\treset() {\n\n\t\tthis.texture = null;\n\t\tthis.mesh = null;\n\n\t}\n\n\tgetDepthTexture() {\n\n\t\treturn this.texture;\n\n\t}\n\n}\n\nclass WebXRManager extends EventDispatcher {\n\n\tconstructor( renderer, gl ) {\n\n\t\tsuper();\n\n\t\tconst scope = this;\n\n\t\tlet session = null;\n\n\t\tlet framebufferScaleFactor = 1.0;\n\n\t\tlet referenceSpace = null;\n\t\tlet referenceSpaceType = 'local-floor';\n\t\t// Set default foveation to maximum.\n\t\tlet foveation = 1.0;\n\t\tlet customReferenceSpace = null;\n\n\t\tlet pose = null;\n\t\tlet glBinding = null;\n\t\tlet glProjLayer = null;\n\t\tlet glBaseLayer = null;\n\t\tlet xrFrame = null;\n\n\t\tconst depthSensing = new WebXRDepthSensing();\n\t\tconst attributes = gl.getContextAttributes();\n\n\t\tlet initialRenderTarget = null;\n\t\tlet newRenderTarget = null;\n\n\t\tconst controllers = [];\n\t\tconst controllerInputSources = [];\n\n\t\tconst currentSize = new Vector2();\n\t\tlet currentPixelRatio = null;\n\n\t\t//\n\n\t\tconst cameraL = new PerspectiveCamera();\n\t\tcameraL.viewport = new Vector4();\n\n\t\tconst cameraR = new PerspectiveCamera();\n\t\tcameraR.viewport = new Vector4();\n\n\t\tconst cameras = [ cameraL, cameraR ];\n\n\t\tconst cameraXR = new ArrayCamera();\n\n\t\tlet _currentDepthNear = null;\n\t\tlet _currentDepthFar = null;\n\n\t\t//\n\n\t\tthis.cameraAutoUpdate = true;\n\t\tthis.enabled = false;\n\n\t\tthis.isPresenting = false;\n\n\t\tthis.getController = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getTargetRaySpace();\n\n\t\t};\n\n\t\tthis.getControllerGrip = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getGripSpace();\n\n\t\t};\n\n\t\tthis.getHand = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getHandSpace();\n\n\t\t};\n\n\t\t//\n\n\t\tfunction onSessionEvent( event ) {\n\n\t\t\tconst controllerIndex = controllerInputSources.indexOf( event.inputSource );\n\n\t\t\tif ( controllerIndex === - 1 ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst controller = controllers[ controllerIndex ];\n\n\t\t\tif ( controller !== undefined ) {\n\n\t\t\t\tcontroller.update( event.inputSource, event.frame, customReferenceSpace || referenceSpace );\n\t\t\t\tcontroller.dispatchEvent( { type: event.type, data: event.inputSource } );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onSessionEnd() {\n\n\t\t\tsession.removeEventListener( 'select', onSessionEvent );\n\t\t\tsession.removeEventListener( 'selectstart', onSessionEvent );\n\t\t\tsession.removeEventListener( 'selectend', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeeze', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeezestart', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeezeend', onSessionEvent );\n\t\t\tsession.removeEventListener( 'end', onSessionEnd );\n\t\t\tsession.removeEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst inputSource = controllerInputSources[ i ];\n\n\t\t\t\tif ( inputSource === null ) continue;\n\n\t\t\t\tcontrollerInputSources[ i ] = null;\n\n\t\t\t\tcontrollers[ i ].disconnect( inputSource );\n\n\t\t\t}\n\n\t\t\t_currentDepthNear = null;\n\t\t\t_currentDepthFar = null;\n\n\t\t\tdepthSensing.reset();\n\n\t\t\t// restore framebuffer/rendering state\n\n\t\t\trenderer.setRenderTarget( initialRenderTarget );\n\n\t\t\tglBaseLayer = null;\n\t\t\tglProjLayer = null;\n\t\t\tglBinding = null;\n\t\t\tsession = null;\n\t\t\tnewRenderTarget = null;\n\n\t\t\t//\n\n\t\t\tanimation.stop();\n\n\t\t\tscope.isPresenting = false;\n\n\t\t\trenderer.setPixelRatio( currentPixelRatio );\n\t\t\trenderer.setSize( currentSize.width, currentSize.height, false );\n\n\t\t\tscope.dispatchEvent( { type: 'sessionend' } );\n\n\t\t}\n\n\t\tthis.setFramebufferScaleFactor = function ( value ) {\n\n\t\t\tframebufferScaleFactor = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change framebuffer scale while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setReferenceSpaceType = function ( value ) {\n\n\t\t\treferenceSpaceType = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change reference space type while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getReferenceSpace = function () {\n\n\t\t\treturn customReferenceSpace || referenceSpace;\n\n\t\t};\n\n\t\tthis.setReferenceSpace = function ( space ) {\n\n\t\t\tcustomReferenceSpace = space;\n\n\t\t};\n\n\t\tthis.getBaseLayer = function () {\n\n\t\t\treturn glProjLayer !== null ? glProjLayer : glBaseLayer;\n\n\t\t};\n\n\t\tthis.getBinding = function () {\n\n\t\t\treturn glBinding;\n\n\t\t};\n\n\t\tthis.getFrame = function () {\n\n\t\t\treturn xrFrame;\n\n\t\t};\n\n\t\tthis.getSession = function () {\n\n\t\t\treturn session;\n\n\t\t};\n\n\t\tthis.setSession = async function ( value ) {\n\n\t\t\tsession = value;\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\tinitialRenderTarget = renderer.getRenderTarget();\n\n\t\t\t\tsession.addEventListener( 'select', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectstart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeeze', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezestart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezeend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'end', onSessionEnd );\n\t\t\t\tsession.addEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\t\tif ( attributes.xrCompatible !== true ) {\n\n\t\t\t\t\tawait gl.makeXRCompatible();\n\n\t\t\t\t}\n\n\t\t\t\tcurrentPixelRatio = renderer.getPixelRatio();\n\t\t\t\trenderer.getSize( currentSize );\n\n\t\t\t\tif ( session.renderState.layers === undefined ) {\n\n\t\t\t\t\tconst layerInit = {\n\t\t\t\t\t\tantialias: attributes.antialias,\n\t\t\t\t\t\talpha: true,\n\t\t\t\t\t\tdepth: attributes.depth,\n\t\t\t\t\t\tstencil: attributes.stencil,\n\t\t\t\t\t\tframebufferScaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBaseLayer = new XRWebGLLayer( session, gl, layerInit );\n\n\t\t\t\t\tsession.updateRenderState( { baseLayer: glBaseLayer } );\n\n\t\t\t\t\trenderer.setPixelRatio( 1 );\n\t\t\t\t\trenderer.setSize( glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, false );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglBaseLayer.framebufferWidth,\n\t\t\t\t\t\tglBaseLayer.framebufferHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tcolorSpace: renderer.outputColorSpace,\n\t\t\t\t\t\t\tstencilBuffer: attributes.stencil\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\tlet depthFormat = null;\n\t\t\t\t\tlet depthType = null;\n\t\t\t\t\tlet glDepthFormat = null;\n\n\t\t\t\t\tif ( attributes.depth ) {\n\n\t\t\t\t\t\tglDepthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\n\t\t\t\t\t\tdepthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat;\n\t\t\t\t\t\tdepthType = attributes.stencil ? UnsignedInt248Type : UnsignedIntType;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst projectionlayerInit = {\n\t\t\t\t\t\tcolorFormat: gl.RGBA8,\n\t\t\t\t\t\tdepthFormat: glDepthFormat,\n\t\t\t\t\t\tscaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBinding = new XRWebGLBinding( session, gl );\n\n\t\t\t\t\tglProjLayer = glBinding.createProjectionLayer( projectionlayerInit );\n\n\t\t\t\t\tsession.updateRenderState( { layers: [ glProjLayer ] } );\n\n\t\t\t\t\trenderer.setPixelRatio( 1 );\n\t\t\t\t\trenderer.setSize( glProjLayer.textureWidth, glProjLayer.textureHeight, false );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglProjLayer.textureWidth,\n\t\t\t\t\t\tglProjLayer.textureHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tdepthTexture: new DepthTexture( glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, undefined, undefined, undefined, undefined, undefined, undefined, depthFormat ),\n\t\t\t\t\t\t\tstencilBuffer: attributes.stencil,\n\t\t\t\t\t\t\tcolorSpace: renderer.outputColorSpace,\n\t\t\t\t\t\t\tsamples: attributes.antialias ? 4 : 0,\n\t\t\t\t\t\t\tresolveDepthBuffer: ( glProjLayer.ignoreDepthValues === false )\n\t\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tnewRenderTarget.isXRRenderTarget = true; // TODO Remove this when possible, see #23278\n\n\t\t\t\tthis.setFoveation( foveation );\n\n\t\t\t\tcustomReferenceSpace = null;\n\t\t\t\treferenceSpace = await session.requestReferenceSpace( referenceSpaceType );\n\n\t\t\t\tanimation.setContext( session );\n\t\t\t\tanimation.start();\n\n\t\t\t\tscope.isPresenting = true;\n\n\t\t\t\tscope.dispatchEvent( { type: 'sessionstart' } );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getEnvironmentBlendMode = function () {\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\treturn session.environmentBlendMode;\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getDepthTexture = function () {\n\n\t\t\treturn depthSensing.getDepthTexture();\n\n\t\t};\n\n\t\tfunction onInputSourcesChange( event ) {\n\n\t\t\t// Notify disconnected\n\n\t\t\tfor ( let i = 0; i < event.removed.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.removed[ i ];\n\t\t\t\tconst index = controllerInputSources.indexOf( inputSource );\n\n\t\t\t\tif ( index >= 0 ) {\n\n\t\t\t\t\tcontrollerInputSources[ index ] = null;\n\t\t\t\t\tcontrollers[ index ].disconnect( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Notify connected\n\n\t\t\tfor ( let i = 0; i < event.added.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.added[ i ];\n\n\t\t\t\tlet controllerIndex = controllerInputSources.indexOf( inputSource );\n\n\t\t\t\tif ( controllerIndex === - 1 ) {\n\n\t\t\t\t\t// Assign input source a controller that currently has no input source\n\n\t\t\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\t\t\tif ( i >= controllerInputSources.length ) {\n\n\t\t\t\t\t\t\tcontrollerInputSources.push( inputSource );\n\t\t\t\t\t\t\tcontrollerIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t} else if ( controllerInputSources[ i ] === null ) {\n\n\t\t\t\t\t\t\tcontrollerInputSources[ i ] = inputSource;\n\t\t\t\t\t\t\tcontrollerIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// If all controllers do currently receive input we ignore new ones\n\n\t\t\t\t\tif ( controllerIndex === - 1 ) break;\n\n\t\t\t\t}\n\n\t\t\t\tconst controller = controllers[ controllerIndex ];\n\n\t\t\t\tif ( controller ) {\n\n\t\t\t\t\tcontroller.connect( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst cameraLPos = new Vector3();\n\t\tconst cameraRPos = new Vector3();\n\n\t\t/**\n\t\t * Assumes 2 cameras that are parallel and share an X-axis, and that\n\t\t * the cameras' projection and world matrices have already been set.\n\t\t * And that near and far planes are identical for both cameras.\n\t\t * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765\n\t\t */\n\t\tfunction setProjectionFromUnion( camera, cameraL, cameraR ) {\n\n\t\t\tcameraLPos.setFromMatrixPosition( cameraL.matrixWorld );\n\t\t\tcameraRPos.setFromMatrixPosition( cameraR.matrixWorld );\n\n\t\t\tconst ipd = cameraLPos.distanceTo( cameraRPos );\n\n\t\t\tconst projL = cameraL.projectionMatrix.elements;\n\t\t\tconst projR = cameraR.projectionMatrix.elements;\n\n\t\t\t// VR systems will have identical far and near planes, and\n\t\t\t// most likely identical top and bottom frustum extents.\n\t\t\t// Use the left camera for these values.\n\t\t\tconst near = projL[ 14 ] / ( projL[ 10 ] - 1 );\n\t\t\tconst far = projL[ 14 ] / ( projL[ 10 ] + 1 );\n\t\t\tconst topFov = ( projL[ 9 ] + 1 ) / projL[ 5 ];\n\t\t\tconst bottomFov = ( projL[ 9 ] - 1 ) / projL[ 5 ];\n\n\t\t\tconst leftFov = ( projL[ 8 ] - 1 ) / projL[ 0 ];\n\t\t\tconst rightFov = ( projR[ 8 ] + 1 ) / projR[ 0 ];\n\t\t\tconst left = near * leftFov;\n\t\t\tconst right = near * rightFov;\n\n\t\t\t// Calculate the new camera's position offset from the\n\t\t\t// left camera. xOffset should be roughly half `ipd`.\n\t\t\tconst zOffset = ipd / ( - leftFov + rightFov );\n\t\t\tconst xOffset = zOffset * - leftFov;\n\n\t\t\t// TODO: Better way to apply this offset?\n\t\t\tcameraL.matrixWorld.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.translateX( xOffset );\n\t\t\tcamera.translateZ( zOffset );\n\t\t\tcamera.matrixWorld.compose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t\t// Check if the projection uses an infinite far plane.\n\t\t\tif ( projL[ 10 ] === - 1.0 ) {\n\n\t\t\t\t// Use the projection matrix from the left eye.\n\t\t\t\t// The camera offset is sufficient to include the view volumes\n\t\t\t\t// of both eyes (assuming symmetric projections).\n\t\t\t\tcamera.projectionMatrix.copy( cameraL.projectionMatrix );\n\t\t\t\tcamera.projectionMatrixInverse.copy( cameraL.projectionMatrixInverse );\n\n\t\t\t} else {\n\n\t\t\t\t// Find the union of the frustum values of the cameras and scale\n\t\t\t\t// the values so that the near plane's position does not change in world space,\n\t\t\t\t// although must now be relative to the new union camera.\n\t\t\t\tconst near2 = near + zOffset;\n\t\t\t\tconst far2 = far + zOffset;\n\t\t\t\tconst left2 = left - xOffset;\n\t\t\t\tconst right2 = right + ( ipd - xOffset );\n\t\t\t\tconst top2 = topFov * far / far2 * near2;\n\t\t\t\tconst bottom2 = bottomFov * far / far2 * near2;\n\n\t\t\t\tcamera.projectionMatrix.makePerspective( left2, right2, top2, bottom2, near2, far2 );\n\t\t\t\tcamera.projectionMatrixInverse.copy( camera.projectionMatrix ).invert();\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction updateCamera( camera, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrixWorld.copy( camera.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrixWorld.multiplyMatrices( parent.matrixWorld, camera.matrix );\n\n\t\t\t}\n\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t}\n\n\t\tthis.updateCamera = function ( camera ) {\n\n\t\t\tif ( session === null ) return;\n\n\t\t\tlet depthNear = camera.near;\n\t\t\tlet depthFar = camera.far;\n\n\t\t\tif ( depthSensing.texture !== null ) {\n\n\t\t\t\tif ( depthSensing.depthNear > 0 ) depthNear = depthSensing.depthNear;\n\t\t\t\tif ( depthSensing.depthFar > 0 ) depthFar = depthSensing.depthFar;\n\n\t\t\t}\n\n\t\t\tcameraXR.near = cameraR.near = cameraL.near = depthNear;\n\t\t\tcameraXR.far = cameraR.far = cameraL.far = depthFar;\n\n\t\t\tif ( _currentDepthNear !== cameraXR.near || _currentDepthFar !== cameraXR.far ) {\n\n\t\t\t\t// Note that the new renderState won't apply until the next frame. See #18320\n\n\t\t\t\tsession.updateRenderState( {\n\t\t\t\t\tdepthNear: cameraXR.near,\n\t\t\t\t\tdepthFar: cameraXR.far\n\t\t\t\t} );\n\n\t\t\t\t_currentDepthNear = cameraXR.near;\n\t\t\t\t_currentDepthFar = cameraXR.far;\n\n\t\t\t}\n\n\t\t\tcameraL.layers.mask = camera.layers.mask | 0b010;\n\t\t\tcameraR.layers.mask = camera.layers.mask | 0b100;\n\t\t\tcameraXR.layers.mask = cameraL.layers.mask | cameraR.layers.mask;\n\n\t\t\tconst parent = camera.parent;\n\t\t\tconst cameras = cameraXR.cameras;\n\n\t\t\tupdateCamera( cameraXR, parent );\n\n\t\t\tfor ( let i = 0; i < cameras.length; i ++ ) {\n\n\t\t\t\tupdateCamera( cameras[ i ], parent );\n\n\t\t\t}\n\n\t\t\t// update projection matrix for proper view frustum culling\n\n\t\t\tif ( cameras.length === 2 ) {\n\n\t\t\t\tsetProjectionFromUnion( cameraXR, cameraL, cameraR );\n\n\t\t\t} else {\n\n\t\t\t\t// assume single camera setup (AR)\n\n\t\t\t\tcameraXR.projectionMatrix.copy( cameraL.projectionMatrix );\n\n\t\t\t}\n\n\t\t\t// update user camera and its children\n\n\t\t\tupdateUserCamera( camera, cameraXR, parent );\n\n\t\t};\n\n\t\tfunction updateUserCamera( camera, cameraXR, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrix.copy( cameraXR.matrixWorld );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrix.copy( parent.matrixWorld );\n\t\t\t\tcamera.matrix.invert();\n\t\t\t\tcamera.matrix.multiply( cameraXR.matrixWorld );\n\n\t\t\t}\n\n\t\t\tcamera.matrix.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.updateMatrixWorld( true );\n\n\t\t\tcamera.projectionMatrix.copy( cameraXR.projectionMatrix );\n\t\t\tcamera.projectionMatrixInverse.copy( cameraXR.projectionMatrixInverse );\n\n\t\t\tif ( camera.isPerspectiveCamera ) {\n\n\t\t\t\tcamera.fov = RAD2DEG * 2 * Math.atan( 1 / camera.projectionMatrix.elements[ 5 ] );\n\t\t\t\tcamera.zoom = 1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.getCamera = function () {\n\n\t\t\treturn cameraXR;\n\n\t\t};\n\n\t\tthis.getFoveation = function () {\n\n\t\t\tif ( glProjLayer === null && glBaseLayer === null ) {\n\n\t\t\t\treturn undefined;\n\n\t\t\t}\n\n\t\t\treturn foveation;\n\n\t\t};\n\n\t\tthis.setFoveation = function ( value ) {\n\n\t\t\t// 0 = no foveation = full resolution\n\t\t\t// 1 = maximum foveation = the edges render at lower resolution\n\n\t\t\tfoveation = value;\n\n\t\t\tif ( glProjLayer !== null ) {\n\n\t\t\t\tglProjLayer.fixedFoveation = value;\n\n\t\t\t}\n\n\t\t\tif ( glBaseLayer !== null && glBaseLayer.fixedFoveation !== undefined ) {\n\n\t\t\t\tglBaseLayer.fixedFoveation = value;\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.hasDepthSensing = function () {\n\n\t\t\treturn depthSensing.texture !== null;\n\n\t\t};\n\n\t\tthis.getDepthSensingMesh = function () {\n\n\t\t\treturn depthSensing.getMesh( cameraXR );\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time, frame ) {\n\n\t\t\tpose = frame.getViewerPose( customReferenceSpace || referenceSpace );\n\t\t\txrFrame = frame;\n\n\t\t\tif ( pose !== null ) {\n\n\t\t\t\tconst views = pose.views;\n\n\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\trenderer.setRenderTargetFramebuffer( newRenderTarget, glBaseLayer.framebuffer );\n\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t\tlet cameraXRNeedsUpdate = false;\n\n\t\t\t\t// check if it's necessary to rebuild cameraXR's camera list\n\n\t\t\t\tif ( views.length !== cameraXR.cameras.length ) {\n\n\t\t\t\t\tcameraXR.cameras.length = 0;\n\t\t\t\t\tcameraXRNeedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < views.length; i ++ ) {\n\n\t\t\t\t\tconst view = views[ i ];\n\n\t\t\t\t\tlet viewport = null;\n\n\t\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\t\tviewport = glBaseLayer.getViewport( view );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst glSubImage = glBinding.getViewSubImage( glProjLayer, view );\n\t\t\t\t\t\tviewport = glSubImage.viewport;\n\n\t\t\t\t\t\t// For side-by-side projection, we only produce a single texture for both eyes.\n\t\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\t\trenderer.setRenderTargetTextures(\n\t\t\t\t\t\t\t\tnewRenderTarget,\n\t\t\t\t\t\t\t\tglSubImage.colorTexture,\n\t\t\t\t\t\t\t\tglProjLayer.ignoreDepthValues ? undefined : glSubImage.depthStencilTexture );\n\n\t\t\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlet camera = cameras[ i ];\n\n\t\t\t\t\tif ( camera === undefined ) {\n\n\t\t\t\t\t\tcamera = new PerspectiveCamera();\n\t\t\t\t\t\tcamera.layers.enable( i );\n\t\t\t\t\t\tcamera.viewport = new Vector4();\n\t\t\t\t\t\tcameras[ i ] = camera;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcamera.matrix.fromArray( view.transform.matrix );\n\t\t\t\t\tcamera.matrix.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\t\t\tcamera.projectionMatrix.fromArray( view.projectionMatrix );\n\t\t\t\t\tcamera.projectionMatrixInverse.copy( camera.projectionMatrix ).invert();\n\t\t\t\t\tcamera.viewport.set( viewport.x, viewport.y, viewport.width, viewport.height );\n\n\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\tcameraXR.matrix.copy( camera.matrix );\n\t\t\t\t\t\tcameraXR.matrix.decompose( cameraXR.position, cameraXR.quaternion, cameraXR.scale );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( cameraXRNeedsUpdate === true ) {\n\n\t\t\t\t\t\tcameraXR.cameras.push( camera );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t//\n\n\t\t\t\tconst enabledFeatures = session.enabledFeatures;\n\n\t\t\t\tif ( enabledFeatures && enabledFeatures.includes( 'depth-sensing' ) ) {\n\n\t\t\t\t\tconst depthData = glBinding.getDepthInformation( views[ 0 ] );\n\n\t\t\t\t\tif ( depthData && depthData.isValid && depthData.texture ) {\n\n\t\t\t\t\t\tdepthSensing.init( renderer, depthData, session.renderState );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst inputSource = controllerInputSources[ i ];\n\t\t\t\tconst controller = controllers[ i ];\n\n\t\t\t\tif ( inputSource !== null && controller !== undefined ) {\n\n\t\t\t\t\tcontroller.update( inputSource, frame, customReferenceSpace || referenceSpace );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time, frame );\n\n\t\t\tif ( frame.detectedPlanes ) {\n\n\t\t\t\tscope.dispatchEvent( { type: 'planesdetected', data: frame } );\n\n\t\t\t}\n\n\t\t\txrFrame = null;\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\n\t\t};\n\n\t\tthis.dispose = function () {};\n\n\t}\n\n}\n\nconst _e1 = /*@__PURE__*/ new Euler();\nconst _m1 = /*@__PURE__*/ new Matrix4();\n\nfunction WebGLMaterials( renderer, properties ) {\n\n\tfunction refreshTransformUniform( map, uniform ) {\n\n\t\tif ( map.matrixAutoUpdate === true ) {\n\n\t\t\tmap.updateMatrix();\n\n\t\t}\n\n\t\tuniform.value.copy( map.matrix );\n\n\t}\n\n\tfunction refreshFogUniforms( uniforms, fog ) {\n\n\t\tfog.color.getRGB( uniforms.fogColor.value, getUnlitUniformColorSpace( renderer ) );\n\n\t\tif ( fog.isFog ) {\n\n\t\t\tuniforms.fogNear.value = fog.near;\n\t\t\tuniforms.fogFar.value = fog.far;\n\n\t\t} else if ( fog.isFogExp2 ) {\n\n\t\t\tuniforms.fogDensity.value = fog.density;\n\n\t\t}\n\n\t}\n\n\tfunction refreshMaterialUniforms( uniforms, material, pixelRatio, height, transmissionRenderTarget ) {\n\n\t\tif ( material.isMeshBasicMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshLambertMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshToonMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsToon( uniforms, material );\n\n\t\t} else if ( material.isMeshPhongMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsPhong( uniforms, material );\n\n\t\t} else if ( material.isMeshStandardMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsStandard( uniforms, material );\n\n\t\t\tif ( material.isMeshPhysicalMaterial ) {\n\n\t\t\t\trefreshUniformsPhysical( uniforms, material, transmissionRenderTarget );\n\n\t\t\t}\n\n\t\t} else if ( material.isMeshMatcapMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsMatcap( uniforms, material );\n\n\t\t} else if ( material.isMeshDepthMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshDistanceMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsDistance( uniforms, material );\n\n\t\t} else if ( material.isMeshNormalMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isLineBasicMaterial ) {\n\n\t\t\trefreshUniformsLine( uniforms, material );\n\n\t\t\tif ( material.isLineDashedMaterial ) {\n\n\t\t\t\trefreshUniformsDash( uniforms, material );\n\n\t\t\t}\n\n\t\t} else if ( material.isPointsMaterial ) {\n\n\t\t\trefreshUniformsPoints( uniforms, material, pixelRatio, height );\n\n\t\t} else if ( material.isSpriteMaterial ) {\n\n\t\t\trefreshUniformsSprites( uniforms, material );\n\n\t\t} else if ( material.isShadowMaterial ) {\n\n\t\t\tuniforms.color.value.copy( material.color );\n\t\t\tuniforms.opacity.value = material.opacity;\n\n\t\t} else if ( material.isShaderMaterial ) {\n\n\t\t\tmaterial.uniformsNeedUpdate = false; // #15581\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsCommon( uniforms, material ) {\n\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.color ) {\n\n\t\t\tuniforms.diffuse.value.copy( material.color );\n\n\t\t}\n\n\t\tif ( material.emissive ) {\n\n\t\t\tuniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );\n\n\t\t}\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\n\t\t\trefreshTransformUniform( material.bumpMap, uniforms.bumpMapTransform );\n\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\n\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\tuniforms.bumpScale.value *= - 1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\n\t\t\trefreshTransformUniform( material.normalMap, uniforms.normalMapTransform );\n\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\n\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\tuniforms.normalScale.value.negate();\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\n\t\t\trefreshTransformUniform( material.displacementMap, uniforms.displacementMapTransform );\n\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t\tif ( material.emissiveMap ) {\n\n\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\n\n\t\t\trefreshTransformUniform( material.emissiveMap, uniforms.emissiveMapTransform );\n\n\t\t}\n\n\t\tif ( material.specularMap ) {\n\n\t\t\tuniforms.specularMap.value = material.specularMap;\n\n\t\t\trefreshTransformUniform( material.specularMap, uniforms.specularMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tconst envMap = materialProperties.envMap;\n\t\tconst envMapRotation = materialProperties.envMapRotation;\n\n\t\tif ( envMap ) {\n\n\t\t\tuniforms.envMap.value = envMap;\n\n\t\t\t_e1.copy( envMapRotation );\n\n\t\t\t// accommodate left-handed frame\n\t\t\t_e1.x *= - 1; _e1.y *= - 1; _e1.z *= - 1;\n\n\t\t\tif ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) {\n\n\t\t\t\t// environment maps which are not cube render targets or PMREMs follow a different convention\n\t\t\t\t_e1.y *= - 1;\n\t\t\t\t_e1.z *= - 1;\n\n\t\t\t}\n\n\t\t\tuniforms.envMapRotation.value.setFromMatrix4( _m1.makeRotationFromEuler( _e1 ) );\n\n\t\t\tuniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\tuniforms.reflectivity.value = material.reflectivity;\n\t\t\tuniforms.ior.value = material.ior;\n\t\t\tuniforms.refractionRatio.value = material.refractionRatio;\n\n\t\t}\n\n\t\tif ( material.lightMap ) {\n\n\t\t\tuniforms.lightMap.value = material.lightMap;\n\t\t\tuniforms.lightMapIntensity.value = material.lightMapIntensity;\n\n\t\t\trefreshTransformUniform( material.lightMap, uniforms.lightMapTransform );\n\n\t\t}\n\n\t\tif ( material.aoMap ) {\n\n\t\t\tuniforms.aoMap.value = material.aoMap;\n\t\t\tuniforms.aoMapIntensity.value = material.aoMapIntensity;\n\n\t\t\trefreshTransformUniform( material.aoMap, uniforms.aoMapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsLine( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDash( uniforms, material ) {\n\n\t\tuniforms.dashSize.value = material.dashSize;\n\t\tuniforms.totalSize.value = material.dashSize + material.gapSize;\n\t\tuniforms.scale.value = material.scale;\n\n\t}\n\n\tfunction refreshUniformsPoints( uniforms, material, pixelRatio, height ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.size.value = material.size * pixelRatio;\n\t\tuniforms.scale.value = height * 0.5;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.uvTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsSprites( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.rotation.value = material.rotation;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhong( uniforms, material ) {\n\n\t\tuniforms.specular.value.copy( material.specular );\n\t\tuniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )\n\n\t}\n\n\tfunction refreshUniformsToon( uniforms, material ) {\n\n\t\tif ( material.gradientMap ) {\n\n\t\t\tuniforms.gradientMap.value = material.gradientMap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsStandard( uniforms, material ) {\n\n\t\tuniforms.metalness.value = material.metalness;\n\n\t\tif ( material.metalnessMap ) {\n\n\t\t\tuniforms.metalnessMap.value = material.metalnessMap;\n\n\t\t\trefreshTransformUniform( material.metalnessMap, uniforms.metalnessMapTransform );\n\n\t\t}\n\n\t\tuniforms.roughness.value = material.roughness;\n\n\t\tif ( material.roughnessMap ) {\n\n\t\t\tuniforms.roughnessMap.value = material.roughnessMap;\n\n\t\t\trefreshTransformUniform( material.roughnessMap, uniforms.roughnessMapTransform );\n\n\t\t}\n\n\t\tif ( material.envMap ) {\n\n\t\t\t//uniforms.envMap.value = material.envMap; // part of uniforms common\n\n\t\t\tuniforms.envMapIntensity.value = material.envMapIntensity;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhysical( uniforms, material, transmissionRenderTarget ) {\n\n\t\tuniforms.ior.value = material.ior; // also part of uniforms common\n\n\t\tif ( material.sheen > 0 ) {\n\n\t\t\tuniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar( material.sheen );\n\n\t\t\tuniforms.sheenRoughness.value = material.sheenRoughness;\n\n\t\t\tif ( material.sheenColorMap ) {\n\n\t\t\t\tuniforms.sheenColorMap.value = material.sheenColorMap;\n\n\t\t\t\trefreshTransformUniform( material.sheenColorMap, uniforms.sheenColorMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.sheenRoughnessMap ) {\n\n\t\t\t\tuniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n\n\t\t\t\trefreshTransformUniform( material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.clearcoat > 0 ) {\n\n\t\t\tuniforms.clearcoat.value = material.clearcoat;\n\t\t\tuniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n\n\t\t\tif ( material.clearcoatMap ) {\n\n\t\t\t\tuniforms.clearcoatMap.value = material.clearcoatMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatMap, uniforms.clearcoatMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatRoughnessMap ) {\n\n\t\t\t\tuniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatNormalMap ) {\n\n\t\t\t\tuniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform );\n\n\t\t\t\tuniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );\n\n\t\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\t\tuniforms.clearcoatNormalScale.value.negate();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.dispersion > 0 ) {\n\n\t\t\tuniforms.dispersion.value = material.dispersion;\n\n\t\t}\n\n\t\tif ( material.iridescence > 0 ) {\n\n\t\t\tuniforms.iridescence.value = material.iridescence;\n\t\t\tuniforms.iridescenceIOR.value = material.iridescenceIOR;\n\t\t\tuniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[ 0 ];\n\t\t\tuniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[ 1 ];\n\n\t\t\tif ( material.iridescenceMap ) {\n\n\t\t\t\tuniforms.iridescenceMap.value = material.iridescenceMap;\n\n\t\t\t\trefreshTransformUniform( material.iridescenceMap, uniforms.iridescenceMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.iridescenceThicknessMap ) {\n\n\t\t\t\tuniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;\n\n\t\t\t\trefreshTransformUniform( material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.transmission > 0 ) {\n\n\t\t\tuniforms.transmission.value = material.transmission;\n\t\t\tuniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n\t\t\tuniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );\n\n\t\t\tif ( material.transmissionMap ) {\n\n\t\t\t\tuniforms.transmissionMap.value = material.transmissionMap;\n\n\t\t\t\trefreshTransformUniform( material.transmissionMap, uniforms.transmissionMapTransform );\n\n\t\t\t}\n\n\t\t\tuniforms.thickness.value = material.thickness;\n\n\t\t\tif ( material.thicknessMap ) {\n\n\t\t\t\tuniforms.thicknessMap.value = material.thicknessMap;\n\n\t\t\t\trefreshTransformUniform( material.thicknessMap, uniforms.thicknessMapTransform );\n\n\t\t\t}\n\n\t\t\tuniforms.attenuationDistance.value = material.attenuationDistance;\n\t\t\tuniforms.attenuationColor.value.copy( material.attenuationColor );\n\n\t\t}\n\n\t\tif ( material.anisotropy > 0 ) {\n\n\t\t\tuniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) );\n\n\t\t\tif ( material.anisotropyMap ) {\n\n\t\t\t\tuniforms.anisotropyMap.value = material.anisotropyMap;\n\n\t\t\t\trefreshTransformUniform( material.anisotropyMap, uniforms.anisotropyMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tuniforms.specularIntensity.value = material.specularIntensity;\n\t\tuniforms.specularColor.value.copy( material.specularColor );\n\n\t\tif ( material.specularColorMap ) {\n\n\t\t\tuniforms.specularColorMap.value = material.specularColorMap;\n\n\t\t\trefreshTransformUniform( material.specularColorMap, uniforms.specularColorMapTransform );\n\n\t\t}\n\n\t\tif ( material.specularIntensityMap ) {\n\n\t\t\tuniforms.specularIntensityMap.value = material.specularIntensityMap;\n\n\t\t\trefreshTransformUniform( material.specularIntensityMap, uniforms.specularIntensityMapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsMatcap( uniforms, material ) {\n\n\t\tif ( material.matcap ) {\n\n\t\t\tuniforms.matcap.value = material.matcap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDistance( uniforms, material ) {\n\n\t\tconst light = properties.get( material ).light;\n\n\t\tuniforms.referencePosition.value.setFromMatrixPosition( light.matrixWorld );\n\t\tuniforms.nearDistance.value = light.shadow.camera.near;\n\t\tuniforms.farDistance.value = light.shadow.camera.far;\n\n\t}\n\n\treturn {\n\t\trefreshFogUniforms: refreshFogUniforms,\n\t\trefreshMaterialUniforms: refreshMaterialUniforms\n\t};\n\n}\n\nfunction WebGLUniformsGroups( gl, info, capabilities, state ) {\n\n\tlet buffers = {};\n\tlet updateList = {};\n\tlet allocatedBindingPoints = [];\n\n\tconst maxBindingPoints = gl.getParameter( gl.MAX_UNIFORM_BUFFER_BINDINGS ); // binding points are global whereas block indices are per shader program\n\n\tfunction bind( uniformsGroup, program ) {\n\n\t\tconst webglProgram = program.program;\n\t\tstate.uniformBlockBinding( uniformsGroup, webglProgram );\n\n\t}\n\n\tfunction update( uniformsGroup, program ) {\n\n\t\tlet buffer = buffers[ uniformsGroup.id ];\n\n\t\tif ( buffer === undefined ) {\n\n\t\t\tprepareUniformsGroup( uniformsGroup );\n\n\t\t\tbuffer = createBuffer( uniformsGroup );\n\t\t\tbuffers[ uniformsGroup.id ] = buffer;\n\n\t\t\tuniformsGroup.addEventListener( 'dispose', onUniformsGroupsDispose );\n\n\t\t}\n\n\t\t// ensure to update the binding points/block indices mapping for this program\n\n\t\tconst webglProgram = program.program;\n\t\tstate.updateUBOMapping( uniformsGroup, webglProgram );\n\n\t\t// update UBO once per frame\n\n\t\tconst frame = info.render.frame;\n\n\t\tif ( updateList[ uniformsGroup.id ] !== frame ) {\n\n\t\t\tupdateBufferData( uniformsGroup );\n\n\t\t\tupdateList[ uniformsGroup.id ] = frame;\n\n\t\t}\n\n\t}\n\n\tfunction createBuffer( uniformsGroup ) {\n\n\t\t// the setup of an UBO is independent of a particular shader program but global\n\n\t\tconst bindingPointIndex = allocateBindingPointIndex();\n\t\tuniformsGroup.__bindingPointIndex = bindingPointIndex;\n\n\t\tconst buffer = gl.createBuffer();\n\t\tconst size = uniformsGroup.__size;\n\t\tconst usage = uniformsGroup.usage;\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, buffer );\n\t\tgl.bufferData( gl.UNIFORM_BUFFER, size, usage );\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, null );\n\t\tgl.bindBufferBase( gl.UNIFORM_BUFFER, bindingPointIndex, buffer );\n\n\t\treturn buffer;\n\n\t}\n\n\tfunction allocateBindingPointIndex() {\n\n\t\tfor ( let i = 0; i < maxBindingPoints; i ++ ) {\n\n\t\t\tif ( allocatedBindingPoints.indexOf( i ) === - 1 ) {\n\n\t\t\t\tallocatedBindingPoints.push( i );\n\t\t\t\treturn i;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconsole.error( 'THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.' );\n\n\t\treturn 0;\n\n\t}\n\n\tfunction updateBufferData( uniformsGroup ) {\n\n\t\tconst buffer = buffers[ uniformsGroup.id ];\n\t\tconst uniforms = uniformsGroup.uniforms;\n\t\tconst cache = uniformsGroup.__cache;\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, buffer );\n\n\t\tfor ( let i = 0, il = uniforms.length; i < il; i ++ ) {\n\n\t\t\tconst uniformArray = Array.isArray( uniforms[ i ] ) ? uniforms[ i ] : [ uniforms[ i ] ];\n\n\t\t\tfor ( let j = 0, jl = uniformArray.length; j < jl; j ++ ) {\n\n\t\t\t\tconst uniform = uniformArray[ j ];\n\n\t\t\t\tif ( hasUniformChanged( uniform, i, j, cache ) === true ) {\n\n\t\t\t\t\tconst offset = uniform.__offset;\n\n\t\t\t\t\tconst values = Array.isArray( uniform.value ) ? uniform.value : [ uniform.value ];\n\n\t\t\t\t\tlet arrayOffset = 0;\n\n\t\t\t\t\tfor ( let k = 0; k < values.length; k ++ ) {\n\n\t\t\t\t\t\tconst value = values[ k ];\n\n\t\t\t\t\t\tconst info = getUniformSize( value );\n\n\t\t\t\t\t\t// TODO add integer and struct support\n\t\t\t\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\t\t\t\tuniform.__data[ 0 ] = value;\n\t\t\t\t\t\t\tgl.bufferSubData( gl.UNIFORM_BUFFER, offset + arrayOffset, uniform.__data );\n\n\t\t\t\t\t\t} else if ( value.isMatrix3 ) {\n\n\t\t\t\t\t\t\t// manually converting 3x3 to 3x4\n\n\t\t\t\t\t\t\tuniform.__data[ 0 ] = value.elements[ 0 ];\n\t\t\t\t\t\t\tuniform.__data[ 1 ] = value.elements[ 1 ];\n\t\t\t\t\t\t\tuniform.__data[ 2 ] = value.elements[ 2 ];\n\t\t\t\t\t\t\tuniform.__data[ 3 ] = 0;\n\t\t\t\t\t\t\tuniform.__data[ 4 ] = value.elements[ 3 ];\n\t\t\t\t\t\t\tuniform.__data[ 5 ] = value.elements[ 4 ];\n\t\t\t\t\t\t\tuniform.__data[ 6 ] = value.elements[ 5 ];\n\t\t\t\t\t\t\tuniform.__data[ 7 ] = 0;\n\t\t\t\t\t\t\tuniform.__data[ 8 ] = value.elements[ 6 ];\n\t\t\t\t\t\t\tuniform.__data[ 9 ] = value.elements[ 7 ];\n\t\t\t\t\t\t\tuniform.__data[ 10 ] = value.elements[ 8 ];\n\t\t\t\t\t\t\tuniform.__data[ 11 ] = 0;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tvalue.toArray( uniform.__data, arrayOffset );\n\n\t\t\t\t\t\t\tarrayOffset += info.storage / Float32Array.BYTES_PER_ELEMENT;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tgl.bufferSubData( gl.UNIFORM_BUFFER, offset, uniform.__data );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, null );\n\n\t}\n\n\tfunction hasUniformChanged( uniform, index, indexArray, cache ) {\n\n\t\tconst value = uniform.value;\n\t\tconst indexString = index + '_' + indexArray;\n\n\t\tif ( cache[ indexString ] === undefined ) {\n\n\t\t\t// cache entry does not exist so far\n\n\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\tcache[ indexString ] = value;\n\n\t\t\t} else {\n\n\t\t\t\tcache[ indexString ] = value.clone();\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t} else {\n\n\t\t\tconst cachedObject = cache[ indexString ];\n\n\t\t\t// compare current value with cached entry\n\n\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\tif ( cachedObject !== value ) {\n\n\t\t\t\t\tcache[ indexString ] = value;\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( cachedObject.equals( value ) === false ) {\n\n\t\t\t\t\tcachedObject.copy( value );\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction prepareUniformsGroup( uniformsGroup ) {\n\n\t\t// determine total buffer size according to the STD140 layout\n\t\t// Hint: STD140 is the only supported layout in WebGL 2\n\n\t\tconst uniforms = uniformsGroup.uniforms;\n\n\t\tlet offset = 0; // global buffer offset in bytes\n\t\tconst chunkSize = 16; // size of a chunk in bytes\n\n\t\tfor ( let i = 0, l = uniforms.length; i < l; i ++ ) {\n\n\t\t\tconst uniformArray = Array.isArray( uniforms[ i ] ) ? uniforms[ i ] : [ uniforms[ i ] ];\n\n\t\t\tfor ( let j = 0, jl = uniformArray.length; j < jl; j ++ ) {\n\n\t\t\t\tconst uniform = uniformArray[ j ];\n\n\t\t\t\tconst values = Array.isArray( uniform.value ) ? uniform.value : [ uniform.value ];\n\n\t\t\t\tfor ( let k = 0, kl = values.length; k < kl; k ++ ) {\n\n\t\t\t\t\tconst value = values[ k ];\n\n\t\t\t\t\tconst info = getUniformSize( value );\n\n\t\t\t\t\tconst chunkOffset = offset % chunkSize; // offset in the current chunk\n\t\t\t\t\tconst chunkPadding = chunkOffset % info.boundary; // required padding to match boundary\n\t\t\t\t\tconst chunkStart = chunkOffset + chunkPadding; // the start position in the current chunk for the data\n\n\t\t\t\t\toffset += chunkPadding;\n\n\t\t\t\t\t// Check for chunk overflow\n\t\t\t\t\tif ( chunkStart !== 0 && ( chunkSize - chunkStart ) < info.storage ) {\n\n\t\t\t\t\t\t// Add padding and adjust offset\n\t\t\t\t\t\toffset += ( chunkSize - chunkStart );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the following two properties will be used for partial buffer updates\n\t\t\t\t\tuniform.__data = new Float32Array( info.storage / Float32Array.BYTES_PER_ELEMENT );\n\t\t\t\t\tuniform.__offset = offset;\n\n\t\t\t\t\t// Update the global offset\n\t\t\t\t\toffset += info.storage;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ensure correct final padding\n\n\t\tconst chunkOffset = offset % chunkSize;\n\n\t\tif ( chunkOffset > 0 ) offset += ( chunkSize - chunkOffset );\n\n\t\t//\n\n\t\tuniformsGroup.__size = offset;\n\t\tuniformsGroup.__cache = {};\n\n\t\treturn this;\n\n\t}\n\n\tfunction getUniformSize( value ) {\n\n\t\tconst info = {\n\t\t\tboundary: 0, // bytes\n\t\t\tstorage: 0 // bytes\n\t\t};\n\n\t\t// determine sizes according to STD140\n\n\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t// float/int/bool\n\n\t\t\tinfo.boundary = 4;\n\t\t\tinfo.storage = 4;\n\n\t\t} else if ( value.isVector2 ) {\n\n\t\t\t// vec2\n\n\t\t\tinfo.boundary = 8;\n\t\t\tinfo.storage = 8;\n\n\t\t} else if ( value.isVector3 || value.isColor ) {\n\n\t\t\t// vec3\n\n\t\t\tinfo.boundary = 16;\n\t\t\tinfo.storage = 12; // evil: vec3 must start on a 16-byte boundary but it only consumes 12 bytes\n\n\t\t} else if ( value.isVector4 ) {\n\n\t\t\t// vec4\n\n\t\t\tinfo.boundary = 16;\n\t\t\tinfo.storage = 16;\n\n\t\t} else if ( value.isMatrix3 ) {\n\n\t\t\t// mat3 (in STD140 a 3x3 matrix is represented as 3x4)\n\n\t\t\tinfo.boundary = 48;\n\t\t\tinfo.storage = 48;\n\n\t\t} else if ( value.isMatrix4 ) {\n\n\t\t\t// mat4\n\n\t\t\tinfo.boundary = 64;\n\t\t\tinfo.storage = 64;\n\n\t\t} else if ( value.isTexture ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.' );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Unsupported uniform value type.', value );\n\n\t\t}\n\n\t\treturn info;\n\n\t}\n\n\tfunction onUniformsGroupsDispose( event ) {\n\n\t\tconst uniformsGroup = event.target;\n\n\t\tuniformsGroup.removeEventListener( 'dispose', onUniformsGroupsDispose );\n\n\t\tconst index = allocatedBindingPoints.indexOf( uniformsGroup.__bindingPointIndex );\n\t\tallocatedBindingPoints.splice( index, 1 );\n\n\t\tgl.deleteBuffer( buffers[ uniformsGroup.id ] );\n\n\t\tdelete buffers[ uniformsGroup.id ];\n\t\tdelete updateList[ uniformsGroup.id ];\n\n\t}\n\n\tfunction dispose() {\n\n\t\tfor ( const id in buffers ) {\n\n\t\t\tgl.deleteBuffer( buffers[ id ] );\n\n\t\t}\n\n\t\tallocatedBindingPoints = [];\n\t\tbuffers = {};\n\t\tupdateList = {};\n\n\t}\n\n\treturn {\n\n\t\tbind: bind,\n\t\tupdate: update,\n\n\t\tdispose: dispose\n\n\t};\n\n}\n\nclass WebGLRenderer {\n\n\tconstructor( parameters = {} ) {\n\n\t\tconst {\n\t\t\tcanvas = createCanvasElement(),\n\t\t\tcontext = null,\n\t\t\tdepth = true,\n\t\t\tstencil = false,\n\t\t\talpha = false,\n\t\t\tantialias = false,\n\t\t\tpremultipliedAlpha = true,\n\t\t\tpreserveDrawingBuffer = false,\n\t\t\tpowerPreference = 'default',\n\t\t\tfailIfMajorPerformanceCaveat = false,\n\t\t\treverseDepthBuffer = false,\n\t\t} = parameters;\n\n\t\tthis.isWebGLRenderer = true;\n\n\t\tlet _alpha;\n\n\t\tif ( context !== null ) {\n\n\t\t\tif ( typeof WebGLRenderingContext !== 'undefined' && context instanceof WebGLRenderingContext ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLRenderer: WebGL 1 is not supported since r163.' );\n\n\t\t\t}\n\n\t\t\t_alpha = context.getContextAttributes().alpha;\n\n\t\t} else {\n\n\t\t\t_alpha = alpha;\n\n\t\t}\n\n\t\tconst uintClearColor = new Uint32Array( 4 );\n\t\tconst intClearColor = new Int32Array( 4 );\n\n\t\tlet currentRenderList = null;\n\t\tlet currentRenderState = null;\n\n\t\t// render() can be called from within a callback triggered by another render.\n\t\t// We track this so that the nested render call gets its list and state isolated from the parent render call.\n\n\t\tconst renderListStack = [];\n\t\tconst renderStateStack = [];\n\n\t\t// public properties\n\n\t\tthis.domElement = canvas;\n\n\t\t// Debug configuration container\n\t\tthis.debug = {\n\n\t\t\t/**\n\t\t\t * Enables error checking and reporting when shader programs are being compiled\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tcheckShaderErrors: true,\n\t\t\t/**\n\t\t\t * Callback for custom error reporting.\n\t\t\t * @type {?Function}\n\t\t\t */\n\t\t\tonShaderError: null\n\t\t};\n\n\t\t// clearing\n\n\t\tthis.autoClear = true;\n\t\tthis.autoClearColor = true;\n\t\tthis.autoClearDepth = true;\n\t\tthis.autoClearStencil = true;\n\n\t\t// scene graph\n\n\t\tthis.sortObjects = true;\n\n\t\t// user-defined clipping\n\n\t\tthis.clippingPlanes = [];\n\t\tthis.localClippingEnabled = false;\n\n\t\t// physically based shading\n\n\t\tthis._outputColorSpace = SRGBColorSpace;\n\n\t\t// tone mapping\n\n\t\tthis.toneMapping = NoToneMapping;\n\t\tthis.toneMappingExposure = 1.0;\n\n\t\t// internal properties\n\n\t\tconst _this = this;\n\n\t\tlet _isContextLost = false;\n\n\t\t// internal state cache\n\n\t\tlet _currentActiveCubeFace = 0;\n\t\tlet _currentActiveMipmapLevel = 0;\n\t\tlet _currentRenderTarget = null;\n\t\tlet _currentMaterialId = - 1;\n\n\t\tlet _currentCamera = null;\n\n\t\tconst _currentViewport = new Vector4();\n\t\tconst _currentScissor = new Vector4();\n\t\tlet _currentScissorTest = null;\n\n\t\tconst _currentClearColor = new Color( 0x000000 );\n\t\tlet _currentClearAlpha = 0;\n\n\t\t//\n\n\t\tlet _width = canvas.width;\n\t\tlet _height = canvas.height;\n\n\t\tlet _pixelRatio = 1;\n\t\tlet _opaqueSort = null;\n\t\tlet _transparentSort = null;\n\n\t\tconst _viewport = new Vector4( 0, 0, _width, _height );\n\t\tconst _scissor = new Vector4( 0, 0, _width, _height );\n\t\tlet _scissorTest = false;\n\n\t\t// frustum\n\n\t\tconst _frustum = new Frustum();\n\n\t\t// clipping\n\n\t\tlet _clippingEnabled = false;\n\t\tlet _localClippingEnabled = false;\n\n\t\t// camera matrices cache\n\n\t\tconst _currentProjectionMatrix = new Matrix4();\n\t\tconst _projScreenMatrix = new Matrix4();\n\n\t\tconst _vector3 = new Vector3();\n\n\t\tconst _vector4 = new Vector4();\n\n\t\tconst _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };\n\n\t\tlet _renderBackground = false;\n\n\t\tfunction getTargetPixelRatio() {\n\n\t\t\treturn _currentRenderTarget === null ? _pixelRatio : 1;\n\n\t\t}\n\n\t\t// initialize\n\n\t\tlet _gl = context;\n\n\t\tfunction getContext( contextName, contextAttributes ) {\n\n\t\t\treturn canvas.getContext( contextName, contextAttributes );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\tconst contextAttributes = {\n\t\t\t\talpha: true,\n\t\t\t\tdepth,\n\t\t\t\tstencil,\n\t\t\t\tantialias,\n\t\t\t\tpremultipliedAlpha,\n\t\t\t\tpreserveDrawingBuffer,\n\t\t\t\tpowerPreference,\n\t\t\t\tfailIfMajorPerformanceCaveat,\n\t\t\t};\n\n\t\t\t// OffscreenCanvas does not have setAttribute, see #22811\n\t\t\tif ( 'setAttribute' in canvas ) canvas.setAttribute( 'data-engine', `three.js r${REVISION}` );\n\n\t\t\t// event listeners must be registered before WebGL context is created, see #12753\n\t\t\tcanvas.addEventListener( 'webglcontextlost', onContextLost, false );\n\t\t\tcanvas.addEventListener( 'webglcontextrestored', onContextRestore, false );\n\t\t\tcanvas.addEventListener( 'webglcontextcreationerror', onContextCreationError, false );\n\n\t\t\tif ( _gl === null ) {\n\n\t\t\t\tconst contextName = 'webgl2';\n\n\t\t\t\t_gl = getContext( contextName, contextAttributes );\n\n\t\t\t\tif ( _gl === null ) {\n\n\t\t\t\t\tif ( getContext( contextName ) ) {\n\n\t\t\t\t\t\tthrow new Error( 'Error creating WebGL context with your selected attributes.' );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthrow new Error( 'Error creating WebGL context.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: ' + error.message );\n\t\t\tthrow error;\n\n\t\t}\n\n\t\tlet extensions, capabilities, state, info;\n\t\tlet properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n\t\tlet programCache, materials, renderLists, renderStates, clipping, shadowMap;\n\n\t\tlet background, morphtargets, bufferRenderer, indexedBufferRenderer;\n\n\t\tlet utils, bindingStates, uniformsGroups;\n\n\t\tfunction initGLContext() {\n\n\t\t\textensions = new WebGLExtensions( _gl );\n\t\t\textensions.init();\n\n\t\t\tutils = new WebGLUtils( _gl, extensions );\n\n\t\t\tcapabilities = new WebGLCapabilities( _gl, extensions, parameters, utils );\n\n\t\t\tstate = new WebGLState( _gl, extensions );\n\n\t\t\tif ( capabilities.reverseDepthBuffer && reverseDepthBuffer ) {\n\n\t\t\t\tstate.buffers.depth.setReversed( true );\n\n\t\t\t}\n\n\t\t\tinfo = new WebGLInfo( _gl );\n\t\t\tproperties = new WebGLProperties();\n\t\t\ttextures = new WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info );\n\t\t\tcubemaps = new WebGLCubeMaps( _this );\n\t\t\tcubeuvmaps = new WebGLCubeUVMaps( _this );\n\t\t\tattributes = new WebGLAttributes( _gl );\n\t\t\tbindingStates = new WebGLBindingStates( _gl, attributes );\n\t\t\tgeometries = new WebGLGeometries( _gl, attributes, info, bindingStates );\n\t\t\tobjects = new WebGLObjects( _gl, geometries, attributes, info );\n\t\t\tmorphtargets = new WebGLMorphtargets( _gl, capabilities, textures );\n\t\t\tclipping = new WebGLClipping( properties );\n\t\t\tprogramCache = new WebGLPrograms( _this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping );\n\t\t\tmaterials = new WebGLMaterials( _this, properties );\n\t\t\trenderLists = new WebGLRenderLists();\n\t\t\trenderStates = new WebGLRenderStates( extensions );\n\t\t\tbackground = new WebGLBackground( _this, cubemaps, cubeuvmaps, state, objects, _alpha, premultipliedAlpha );\n\t\t\tshadowMap = new WebGLShadowMap( _this, objects, capabilities );\n\t\t\tuniformsGroups = new WebGLUniformsGroups( _gl, info, capabilities, state );\n\n\t\t\tbufferRenderer = new WebGLBufferRenderer( _gl, extensions, info );\n\t\t\tindexedBufferRenderer = new WebGLIndexedBufferRenderer( _gl, extensions, info );\n\n\t\t\tinfo.programs = programCache.programs;\n\n\t\t\t_this.capabilities = capabilities;\n\t\t\t_this.extensions = extensions;\n\t\t\t_this.properties = properties;\n\t\t\t_this.renderLists = renderLists;\n\t\t\t_this.shadowMap = shadowMap;\n\t\t\t_this.state = state;\n\t\t\t_this.info = info;\n\n\t\t}\n\n\t\tinitGLContext();\n\n\t\t// xr\n\n\t\tconst xr = new WebXRManager( _this, _gl );\n\n\t\tthis.xr = xr;\n\n\t\t// API\n\n\t\tthis.getContext = function () {\n\n\t\t\treturn _gl;\n\n\t\t};\n\n\t\tthis.getContextAttributes = function () {\n\n\t\t\treturn _gl.getContextAttributes();\n\n\t\t};\n\n\t\tthis.forceContextLoss = function () {\n\n\t\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\t\tif ( extension ) extension.loseContext();\n\n\t\t};\n\n\t\tthis.forceContextRestore = function () {\n\n\t\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\t\tif ( extension ) extension.restoreContext();\n\n\t\t};\n\n\t\tthis.getPixelRatio = function () {\n\n\t\t\treturn _pixelRatio;\n\n\t\t};\n\n\t\tthis.setPixelRatio = function ( value ) {\n\n\t\t\tif ( value === undefined ) return;\n\n\t\t\t_pixelRatio = value;\n\n\t\t\tthis.setSize( _width, _height, false );\n\n\t\t};\n\n\t\tthis.getSize = function ( target ) {\n\n\t\t\treturn target.set( _width, _height );\n\n\t\t};\n\n\t\tthis.setSize = function ( width, height, updateStyle = true ) {\n\n\t\t\tif ( xr.isPresenting ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t_width = width;\n\t\t\t_height = height;\n\n\t\t\tcanvas.width = Math.floor( width * _pixelRatio );\n\t\t\tcanvas.height = Math.floor( height * _pixelRatio );\n\n\t\t\tif ( updateStyle === true ) {\n\n\t\t\t\tcanvas.style.width = width + 'px';\n\t\t\t\tcanvas.style.height = height + 'px';\n\n\t\t\t}\n\n\t\t\tthis.setViewport( 0, 0, width, height );\n\n\t\t};\n\n\t\tthis.getDrawingBufferSize = function ( target ) {\n\n\t\t\treturn target.set( _width * _pixelRatio, _height * _pixelRatio ).floor();\n\n\t\t};\n\n\t\tthis.setDrawingBufferSize = function ( width, height, pixelRatio ) {\n\n\t\t\t_width = width;\n\t\t\t_height = height;\n\n\t\t\t_pixelRatio = pixelRatio;\n\n\t\t\tcanvas.width = Math.floor( width * pixelRatio );\n\t\t\tcanvas.height = Math.floor( height * pixelRatio );\n\n\t\t\tthis.setViewport( 0, 0, width, height );\n\n\t\t};\n\n\t\tthis.getCurrentViewport = function ( target ) {\n\n\t\t\treturn target.copy( _currentViewport );\n\n\t\t};\n\n\t\tthis.getViewport = function ( target ) {\n\n\t\t\treturn target.copy( _viewport );\n\n\t\t};\n\n\t\tthis.setViewport = function ( x, y, width, height ) {\n\n\t\t\tif ( x.isVector4 ) {\n\n\t\t\t\t_viewport.set( x.x, x.y, x.z, x.w );\n\n\t\t\t} else {\n\n\t\t\t\t_viewport.set( x, y, width, height );\n\n\t\t\t}\n\n\t\t\tstate.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).round() );\n\n\t\t};\n\n\t\tthis.getScissor = function ( target ) {\n\n\t\t\treturn target.copy( _scissor );\n\n\t\t};\n\n\t\tthis.setScissor = function ( x, y, width, height ) {\n\n\t\t\tif ( x.isVector4 ) {\n\n\t\t\t\t_scissor.set( x.x, x.y, x.z, x.w );\n\n\t\t\t} else {\n\n\t\t\t\t_scissor.set( x, y, width, height );\n\n\t\t\t}\n\n\t\t\tstate.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).round() );\n\n\t\t};\n\n\t\tthis.getScissorTest = function () {\n\n\t\t\treturn _scissorTest;\n\n\t\t};\n\n\t\tthis.setScissorTest = function ( boolean ) {\n\n\t\t\tstate.setScissorTest( _scissorTest = boolean );\n\n\t\t};\n\n\t\tthis.setOpaqueSort = function ( method ) {\n\n\t\t\t_opaqueSort = method;\n\n\t\t};\n\n\t\tthis.setTransparentSort = function ( method ) {\n\n\t\t\t_transparentSort = method;\n\n\t\t};\n\n\t\t// Clearing\n\n\t\tthis.getClearColor = function ( target ) {\n\n\t\t\treturn target.copy( background.getClearColor() );\n\n\t\t};\n\n\t\tthis.setClearColor = function () {\n\n\t\t\tbackground.setClearColor.apply( background, arguments );\n\n\t\t};\n\n\t\tthis.getClearAlpha = function () {\n\n\t\t\treturn background.getClearAlpha();\n\n\t\t};\n\n\t\tthis.setClearAlpha = function () {\n\n\t\t\tbackground.setClearAlpha.apply( background, arguments );\n\n\t\t};\n\n\t\tthis.clear = function ( color = true, depth = true, stencil = true ) {\n\n\t\t\tlet bits = 0;\n\n\t\t\tif ( color ) {\n\n\t\t\t\t// check if we're trying to clear an integer target\n\t\t\t\tlet isIntegerFormat = false;\n\t\t\t\tif ( _currentRenderTarget !== null ) {\n\n\t\t\t\t\tconst targetFormat = _currentRenderTarget.texture.format;\n\t\t\t\t\tisIntegerFormat = targetFormat === RGBAIntegerFormat ||\n\t\t\t\t\t\ttargetFormat === RGIntegerFormat ||\n\t\t\t\t\t\ttargetFormat === RedIntegerFormat;\n\n\t\t\t\t}\n\n\t\t\t\t// use the appropriate clear functions to clear the target if it's a signed\n\t\t\t\t// or unsigned integer target\n\t\t\t\tif ( isIntegerFormat ) {\n\n\t\t\t\t\tconst targetType = _currentRenderTarget.texture.type;\n\t\t\t\t\tconst isUnsignedType = targetType === UnsignedByteType ||\n\t\t\t\t\t\ttargetType === UnsignedIntType ||\n\t\t\t\t\t\ttargetType === UnsignedShortType ||\n\t\t\t\t\t\ttargetType === UnsignedInt248Type ||\n\t\t\t\t\t\ttargetType === UnsignedShort4444Type ||\n\t\t\t\t\t\ttargetType === UnsignedShort5551Type;\n\n\t\t\t\t\tconst clearColor = background.getClearColor();\n\t\t\t\t\tconst a = background.getClearAlpha();\n\t\t\t\t\tconst r = clearColor.r;\n\t\t\t\t\tconst g = clearColor.g;\n\t\t\t\t\tconst b = clearColor.b;\n\n\t\t\t\t\tif ( isUnsignedType ) {\n\n\t\t\t\t\t\tuintClearColor[ 0 ] = r;\n\t\t\t\t\t\tuintClearColor[ 1 ] = g;\n\t\t\t\t\t\tuintClearColor[ 2 ] = b;\n\t\t\t\t\t\tuintClearColor[ 3 ] = a;\n\t\t\t\t\t\t_gl.clearBufferuiv( _gl.COLOR, 0, uintClearColor );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tintClearColor[ 0 ] = r;\n\t\t\t\t\t\tintClearColor[ 1 ] = g;\n\t\t\t\t\t\tintClearColor[ 2 ] = b;\n\t\t\t\t\t\tintClearColor[ 3 ] = a;\n\t\t\t\t\t\t_gl.clearBufferiv( _gl.COLOR, 0, intClearColor );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbits |= _gl.COLOR_BUFFER_BIT;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( depth ) {\n\n\t\t\t\tbits |= _gl.DEPTH_BUFFER_BIT;\n\n\t\t\t}\n\n\t\t\tif ( stencil ) {\n\n\t\t\t\tbits |= _gl.STENCIL_BUFFER_BIT;\n\t\t\t\tthis.state.buffers.stencil.setMask( 0xffffffff );\n\n\t\t\t}\n\n\t\t\t_gl.clear( bits );\n\n\t\t};\n\n\t\tthis.clearColor = function () {\n\n\t\t\tthis.clear( true, false, false );\n\n\t\t};\n\n\t\tthis.clearDepth = function () {\n\n\t\t\tthis.clear( false, true, false );\n\n\t\t};\n\n\t\tthis.clearStencil = function () {\n\n\t\t\tthis.clear( false, false, true );\n\n\t\t};\n\n\t\t//\n\n\t\tthis.dispose = function () {\n\n\t\t\tcanvas.removeEventListener( 'webglcontextlost', onContextLost, false );\n\t\t\tcanvas.removeEventListener( 'webglcontextrestored', onContextRestore, false );\n\t\t\tcanvas.removeEventListener( 'webglcontextcreationerror', onContextCreationError, false );\n\n\t\t\trenderLists.dispose();\n\t\t\trenderStates.dispose();\n\t\t\tproperties.dispose();\n\t\t\tcubemaps.dispose();\n\t\t\tcubeuvmaps.dispose();\n\t\t\tobjects.dispose();\n\t\t\tbindingStates.dispose();\n\t\t\tuniformsGroups.dispose();\n\t\t\tprogramCache.dispose();\n\n\t\t\txr.dispose();\n\n\t\t\txr.removeEventListener( 'sessionstart', onXRSessionStart );\n\t\t\txr.removeEventListener( 'sessionend', onXRSessionEnd );\n\n\t\t\tanimation.stop();\n\n\t\t};\n\n\t\t// Events\n\n\t\tfunction onContextLost( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconsole.log( 'THREE.WebGLRenderer: Context Lost.' );\n\n\t\t\t_isContextLost = true;\n\n\t\t}\n\n\t\tfunction onContextRestore( /* event */ ) {\n\n\t\t\tconsole.log( 'THREE.WebGLRenderer: Context Restored.' );\n\n\t\t\t_isContextLost = false;\n\n\t\t\tconst infoAutoReset = info.autoReset;\n\t\t\tconst shadowMapEnabled = shadowMap.enabled;\n\t\t\tconst shadowMapAutoUpdate = shadowMap.autoUpdate;\n\t\t\tconst shadowMapNeedsUpdate = shadowMap.needsUpdate;\n\t\t\tconst shadowMapType = shadowMap.type;\n\n\t\t\tinitGLContext();\n\n\t\t\tinfo.autoReset = infoAutoReset;\n\t\t\tshadowMap.enabled = shadowMapEnabled;\n\t\t\tshadowMap.autoUpdate = shadowMapAutoUpdate;\n\t\t\tshadowMap.needsUpdate = shadowMapNeedsUpdate;\n\t\t\tshadowMap.type = shadowMapType;\n\n\t\t}\n\n\t\tfunction onContextCreationError( event ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: A WebGL context could not be created. Reason: ', event.statusMessage );\n\n\t\t}\n\n\t\tfunction onMaterialDispose( event ) {\n\n\t\t\tconst material = event.target;\n\n\t\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\t\tdeallocateMaterial( material );\n\n\t\t}\n\n\t\t// Buffer deallocation\n\n\t\tfunction deallocateMaterial( material ) {\n\n\t\t\treleaseMaterialProgramReferences( material );\n\n\t\t\tproperties.remove( material );\n\n\t\t}\n\n\n\t\tfunction releaseMaterialProgramReferences( material ) {\n\n\t\t\tconst programs = properties.get( material ).programs;\n\n\t\t\tif ( programs !== undefined ) {\n\n\t\t\t\tprograms.forEach( function ( program ) {\n\n\t\t\t\t\tprogramCache.releaseProgram( program );\n\n\t\t\t\t} );\n\n\t\t\t\tif ( material.isShaderMaterial ) {\n\n\t\t\t\t\tprogramCache.releaseShaderCache( material );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Buffer rendering\n\n\t\tthis.renderBufferDirect = function ( camera, scene, geometry, material, object, group ) {\n\n\t\t\tif ( scene === null ) scene = _emptyScene; // renderBufferDirect second parameter used to be fog (could be null)\n\n\t\t\tconst frontFaceCW = ( object.isMesh && object.matrixWorld.determinant() < 0 );\n\n\t\t\tconst program = setProgram( camera, scene, geometry, material, object );\n\n\t\t\tstate.setMaterial( material, frontFaceCW );\n\n\t\t\t//\n\n\t\t\tlet index = geometry.index;\n\t\t\tlet rangeFactor = 1;\n\n\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\tindex = geometries.getWireframeAttribute( geometry );\n\n\t\t\t\tif ( index === undefined ) return;\n\n\t\t\t\trangeFactor = 2;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tconst drawRange = geometry.drawRange;\n\t\t\tconst position = geometry.attributes.position;\n\n\t\t\tlet drawStart = drawRange.start * rangeFactor;\n\t\t\tlet drawEnd = ( drawRange.start + drawRange.count ) * rangeFactor;\n\n\t\t\tif ( group !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, group.start * rangeFactor );\n\t\t\t\tdrawEnd = Math.min( drawEnd, ( group.start + group.count ) * rangeFactor );\n\n\t\t\t}\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, 0 );\n\t\t\t\tdrawEnd = Math.min( drawEnd, index.count );\n\n\t\t\t} else if ( position !== undefined && position !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, 0 );\n\t\t\t\tdrawEnd = Math.min( drawEnd, position.count );\n\n\t\t\t}\n\n\t\t\tconst drawCount = drawEnd - drawStart;\n\n\t\t\tif ( drawCount < 0 || drawCount === Infinity ) return;\n\n\t\t\t//\n\n\t\t\tbindingStates.setup( object, material, program, geometry, index );\n\n\t\t\tlet attribute;\n\t\t\tlet renderer = bufferRenderer;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tattribute = attributes.get( index );\n\n\t\t\t\trenderer = indexedBufferRenderer;\n\t\t\t\trenderer.setIndex( attribute );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( object.isMesh ) {\n\n\t\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\t\tstate.setLineWidth( material.wireframeLinewidth * getTargetPixelRatio() );\n\t\t\t\t\trenderer.setMode( _gl.LINES );\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderer.setMode( _gl.TRIANGLES );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isLine ) {\n\n\t\t\t\tlet lineWidth = material.linewidth;\n\n\t\t\t\tif ( lineWidth === undefined ) lineWidth = 1; // Not using Line*Material\n\n\t\t\t\tstate.setLineWidth( lineWidth * getTargetPixelRatio() );\n\n\t\t\t\tif ( object.isLineSegments ) {\n\n\t\t\t\t\trenderer.setMode( _gl.LINES );\n\n\t\t\t\t} else if ( object.isLineLoop ) {\n\n\t\t\t\t\trenderer.setMode( _gl.LINE_LOOP );\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderer.setMode( _gl.LINE_STRIP );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isPoints ) {\n\n\t\t\t\trenderer.setMode( _gl.POINTS );\n\n\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\trenderer.setMode( _gl.TRIANGLES );\n\n\t\t\t}\n\n\t\t\tif ( object.isBatchedMesh ) {\n\n\t\t\t\tif ( object._multiDrawInstances !== null ) {\n\n\t\t\t\t\trenderer.renderMultiDrawInstances( object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount, object._multiDrawInstances );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( ! extensions.get( 'WEBGL_multi_draw' ) ) {\n\n\t\t\t\t\t\tconst starts = object._multiDrawStarts;\n\t\t\t\t\t\tconst counts = object._multiDrawCounts;\n\t\t\t\t\t\tconst drawCount = object._multiDrawCount;\n\t\t\t\t\t\tconst bytesPerElement = index ? attributes.get( index ).bytesPerElement : 1;\n\t\t\t\t\t\tconst uniforms = properties.get( material ).currentProgram.getUniforms();\n\t\t\t\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\t\t\t\tuniforms.setValue( _gl, '_gl_DrawID', i );\n\t\t\t\t\t\t\trenderer.render( starts[ i ] / bytesPerElement, counts[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\trenderer.renderMultiDraw( object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isInstancedMesh ) {\n\n\t\t\t\trenderer.renderInstances( drawStart, drawCount, object.count );\n\n\t\t\t} else if ( geometry.isInstancedBufferGeometry ) {\n\n\t\t\t\tconst maxInstanceCount = geometry._maxInstanceCount !== undefined ? geometry._maxInstanceCount : Infinity;\n\t\t\t\tconst instanceCount = Math.min( geometry.instanceCount, maxInstanceCount );\n\n\t\t\t\trenderer.renderInstances( drawStart, drawCount, instanceCount );\n\n\t\t\t} else {\n\n\t\t\t\trenderer.render( drawStart, drawCount );\n\n\t\t\t}\n\n\t\t};\n\n\t\t// Compile\n\n\t\tfunction prepareMaterial( material, scene, object ) {\n\n\t\t\tif ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {\n\n\t\t\t\tmaterial.side = BackSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\tmaterial.side = FrontSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\tmaterial.side = DoubleSide;\n\n\t\t\t} else {\n\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.compile = function ( scene, camera, targetScene = null ) {\n\n\t\t\tif ( targetScene === null ) targetScene = scene;\n\n\t\t\tcurrentRenderState = renderStates.get( targetScene );\n\t\t\tcurrentRenderState.init( camera );\n\n\t\t\trenderStateStack.push( currentRenderState );\n\n\t\t\t// gather lights from both the target scene and the new object that will be added to the scene.\n\n\t\t\ttargetScene.traverseVisible( function ( object ) {\n\n\t\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tif ( scene !== targetScene ) {\n\n\t\t\t\tscene.traverseVisible( function ( object ) {\n\n\t\t\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tcurrentRenderState.setupLights();\n\n\t\t\t// Only initialize materials in the new scene, not the targetScene.\n\n\t\t\tconst materials = new Set();\n\n\t\t\tscene.traverse( function ( object ) {\n\n\t\t\t\tif ( ! ( object.isMesh || object.isPoints || object.isLine || object.isSprite ) ) {\n\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( material ) {\n\n\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\tfor ( let i = 0; i < material.length; i ++ ) {\n\n\t\t\t\t\t\t\tconst material2 = material[ i ];\n\n\t\t\t\t\t\t\tprepareMaterial( material2, targetScene, object );\n\t\t\t\t\t\t\tmaterials.add( material2 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tprepareMaterial( material, targetScene, object );\n\t\t\t\t\t\tmaterials.add( material );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\trenderStateStack.pop();\n\t\t\tcurrentRenderState = null;\n\n\t\t\treturn materials;\n\n\t\t};\n\n\t\t// compileAsync\n\n\t\tthis.compileAsync = function ( scene, camera, targetScene = null ) {\n\n\t\t\tconst materials = this.compile( scene, camera, targetScene );\n\n\t\t\t// Wait for all the materials in the new object to indicate that they're\n\t\t\t// ready to be used before resolving the promise.\n\n\t\t\treturn new Promise( ( resolve ) => {\n\n\t\t\t\tfunction checkMaterialsReady() {\n\n\t\t\t\t\tmaterials.forEach( function ( material ) {\n\n\t\t\t\t\t\tconst materialProperties = properties.get( material );\n\t\t\t\t\t\tconst program = materialProperties.currentProgram;\n\n\t\t\t\t\t\tif ( program.isReady() ) {\n\n\t\t\t\t\t\t\t// remove any programs that report they're ready to use from the list\n\t\t\t\t\t\t\tmaterials.delete( material );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\t// once the list of compiling materials is empty, call the callback\n\n\t\t\t\t\tif ( materials.size === 0 ) {\n\n\t\t\t\t\t\tresolve( scene );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// if some materials are still not ready, wait a bit and check again\n\n\t\t\t\t\tsetTimeout( checkMaterialsReady, 10 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( extensions.get( 'KHR_parallel_shader_compile' ) !== null ) {\n\n\t\t\t\t\t// If we can check the compilation status of the materials without\n\t\t\t\t\t// blocking then do so right away.\n\n\t\t\t\t\tcheckMaterialsReady();\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Otherwise start by waiting a bit to give the materials we just\n\t\t\t\t\t// initialized a chance to finish.\n\n\t\t\t\t\tsetTimeout( checkMaterialsReady, 10 );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time ) {\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time );\n\n\t\t}\n\n\t\tfunction onXRSessionStart() {\n\n\t\t\tanimation.stop();\n\n\t\t}\n\n\t\tfunction onXRSessionEnd() {\n\n\t\t\tanimation.start();\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tif ( typeof self !== 'undefined' ) animation.setContext( self );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\t\t\txr.setAnimationLoop( callback );\n\n\t\t\t( callback === null ) ? animation.stop() : animation.start();\n\n\t\t};\n\n\t\txr.addEventListener( 'sessionstart', onXRSessionStart );\n\t\txr.addEventListener( 'sessionend', onXRSessionEnd );\n\n\t\t// Rendering\n\n\t\tthis.render = function ( scene, camera ) {\n\n\t\t\tif ( camera !== undefined && camera.isCamera !== true ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tif ( _isContextLost === true ) return;\n\n\t\t\t// update scene graph\n\n\t\t\tif ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();\n\n\t\t\t// update camera matrices and frustum\n\n\t\t\tif ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();\n\n\t\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\t\tif ( xr.cameraAutoUpdate === true ) xr.updateCamera( camera );\n\n\t\t\t\tcamera = xr.getCamera(); // use XR camera for rendering\n\n\t\t\t}\n\n\t\t\t//\n\t\t\tif ( scene.isScene === true ) scene.onBeforeRender( _this, scene, camera, _currentRenderTarget );\n\n\t\t\tcurrentRenderState = renderStates.get( scene, renderStateStack.length );\n\t\t\tcurrentRenderState.init( camera );\n\n\t\t\trenderStateStack.push( currentRenderState );\n\n\t\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\t\t_frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t\t\t_localClippingEnabled = this.localClippingEnabled;\n\t\t\t_clippingEnabled = clipping.init( this.clippingPlanes, _localClippingEnabled );\n\n\t\t\tcurrentRenderList = renderLists.get( scene, renderListStack.length );\n\t\t\tcurrentRenderList.init();\n\n\t\t\trenderListStack.push( currentRenderList );\n\n\t\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\t\tconst depthSensingMesh = _this.xr.getDepthSensingMesh();\n\n\t\t\t\tif ( depthSensingMesh !== null ) {\n\n\t\t\t\t\tprojectObject( depthSensingMesh, camera, - Infinity, _this.sortObjects );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tprojectObject( scene, camera, 0, _this.sortObjects );\n\n\t\t\tcurrentRenderList.finish();\n\n\t\t\tif ( _this.sortObjects === true ) {\n\n\t\t\t\tcurrentRenderList.sort( _opaqueSort, _transparentSort );\n\n\t\t\t}\n\n\t\t\t_renderBackground = xr.enabled === false || xr.isPresenting === false || xr.hasDepthSensing() === false;\n\t\t\tif ( _renderBackground ) {\n\n\t\t\t\tbackground.addToRenderList( currentRenderList, scene );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tthis.info.render.frame ++;\n\n\t\t\tif ( _clippingEnabled === true ) clipping.beginShadows();\n\n\t\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\t\tshadowMap.render( shadowsArray, scene, camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.endShadows();\n\n\t\t\t//\n\n\t\t\tif ( this.info.autoReset === true ) this.info.reset();\n\n\t\t\t// render scene\n\n\t\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\n\t\t\tcurrentRenderState.setupLights();\n\n\t\t\tif ( camera.isArrayCamera ) {\n\n\t\t\t\tconst cameras = camera.cameras;\n\n\t\t\t\tif ( transmissiveObjects.length > 0 ) {\n\n\t\t\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\t\t\trenderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\t\trenderScene( currentRenderList, scene, camera2, camera2.viewport );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( transmissiveObjects.length > 0 ) renderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera );\n\n\t\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t\trenderScene( currentRenderList, scene, camera );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( _currentRenderTarget !== null ) {\n\n\t\t\t\t// resolve multisample renderbuffers to a single-sample texture if necessary\n\n\t\t\t\ttextures.updateMultisampleRenderTarget( _currentRenderTarget );\n\n\t\t\t\t// Generate mipmap if we're using any kind of mipmap filtering\n\n\t\t\t\ttextures.updateRenderTargetMipmap( _currentRenderTarget );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( scene.isScene === true ) scene.onAfterRender( _this, scene, camera );\n\n\t\t\t// _gl.finish();\n\n\t\t\tbindingStates.resetDefaultState();\n\t\t\t_currentMaterialId = - 1;\n\t\t\t_currentCamera = null;\n\n\t\t\trenderStateStack.pop();\n\n\t\t\tif ( renderStateStack.length > 0 ) {\n\n\t\t\t\tcurrentRenderState = renderStateStack[ renderStateStack.length - 1 ];\n\n\t\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, currentRenderState.state.camera );\n\n\t\t\t} else {\n\n\t\t\t\tcurrentRenderState = null;\n\n\t\t\t}\n\n\t\t\trenderListStack.pop();\n\n\t\t\tif ( renderListStack.length > 0 ) {\n\n\t\t\t\tcurrentRenderList = renderListStack[ renderListStack.length - 1 ];\n\n\t\t\t} else {\n\n\t\t\t\tcurrentRenderList = null;\n\n\t\t\t}\n\n\t\t};\n\n\t\tfunction projectObject( object, camera, groupOrder, sortObjects ) {\n\n\t\t\tif ( object.visible === false ) return;\n\n\t\t\tconst visible = object.layers.test( camera.layers );\n\n\t\t\tif ( visible ) {\n\n\t\t\t\tif ( object.isGroup ) {\n\n\t\t\t\t\tgroupOrder = object.renderOrder;\n\n\t\t\t\t} else if ( object.isLOD ) {\n\n\t\t\t\t\tif ( object.autoUpdate === true ) object.update( camera );\n\n\t\t\t\t} else if ( object.isLight ) {\n\n\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {\n\n\t\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t\t_vector4.setFromMatrixPosition( object.matrixWorld )\n\t\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\t\tif ( material.visible ) {\n\n\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector4.z, null );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( object.isMesh || object.isLine || object.isPoints ) {\n\n\t\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {\n\n\t\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\t\t\t\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\t\t\t\t\t\t\t\t_vector4.copy( object.boundingSphere.center );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\t\t\t\t\t\t\t\t_vector4.copy( geometry.boundingSphere.center );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_vector4\n\t\t\t\t\t\t\t\t.applyMatrix4( object.matrixWorld )\n\t\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, groupMaterial, groupOrder, _vector4.z, group );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector4.z, null );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst children = object.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tprojectObject( children[ i ], camera, groupOrder, sortObjects );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction renderScene( currentRenderList, scene, camera, viewport ) {\n\n\t\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\t\t\tconst transparentObjects = currentRenderList.transparent;\n\n\t\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, camera );\n\n\t\t\tif ( viewport ) state.viewport( _currentViewport.copy( viewport ) );\n\n\t\t\tif ( opaqueObjects.length > 0 ) renderObjects( opaqueObjects, scene, camera );\n\t\t\tif ( transmissiveObjects.length > 0 ) renderObjects( transmissiveObjects, scene, camera );\n\t\t\tif ( transparentObjects.length > 0 ) renderObjects( transparentObjects, scene, camera );\n\n\t\t\t// Ensure depth buffer writing is enabled so it can be cleared on next render\n\n\t\t\tstate.buffers.depth.setTest( true );\n\t\t\tstate.buffers.depth.setMask( true );\n\t\t\tstate.buffers.color.setMask( true );\n\n\t\t\tstate.setPolygonOffset( false );\n\n\t\t}\n\n\t\tfunction renderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera ) {\n\n\t\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\t\tif ( overrideMaterial !== null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tif ( currentRenderState.state.transmissionRenderTarget[ camera.id ] === undefined ) {\n\n\t\t\t\tcurrentRenderState.state.transmissionRenderTarget[ camera.id ] = new WebGLRenderTarget( 1, 1, {\n\t\t\t\t\tgenerateMipmaps: true,\n\t\t\t\t\ttype: ( extensions.has( 'EXT_color_buffer_half_float' ) || extensions.has( 'EXT_color_buffer_float' ) ) ? HalfFloatType : UnsignedByteType,\n\t\t\t\t\tminFilter: LinearMipmapLinearFilter,\n\t\t\t\t\tsamples: 4,\n\t\t\t\t\tstencilBuffer: stencil,\n\t\t\t\t\tresolveDepthBuffer: false,\n\t\t\t\t\tresolveStencilBuffer: false,\n\t\t\t\t\tcolorSpace: ColorManagement.workingColorSpace,\n\t\t\t\t} );\n\n\t\t\t\t// debug\n\n\t\t\t\t/*\n\t\t\t\tconst geometry = new PlaneGeometry();\n\t\t\t\tconst material = new MeshBasicMaterial( { map: _transmissionRenderTarget.texture } );\n\n\t\t\t\tconst mesh = new Mesh( geometry, material );\n\t\t\t\tscene.add( mesh );\n\t\t\t\t*/\n\n\t\t\t}\n\n\t\t\tconst transmissionRenderTarget = currentRenderState.state.transmissionRenderTarget[ camera.id ];\n\n\t\t\tconst activeViewport = camera.viewport || _currentViewport;\n\t\t\ttransmissionRenderTarget.setSize( activeViewport.z, activeViewport.w );\n\n\t\t\t//\n\n\t\t\tconst currentRenderTarget = _this.getRenderTarget();\n\t\t\t_this.setRenderTarget( transmissionRenderTarget );\n\n\t\t\t_this.getClearColor( _currentClearColor );\n\t\t\t_currentClearAlpha = _this.getClearAlpha();\n\t\t\tif ( _currentClearAlpha < 1 ) _this.setClearColor( 0xffffff, 0.5 );\n\n\t\t\t_this.clear();\n\n\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t// Turn off the features which can affect the frag color for opaque objects pass.\n\t\t\t// Otherwise they are applied twice in opaque objects pass and transmission objects pass.\n\t\t\tconst currentToneMapping = _this.toneMapping;\n\t\t\t_this.toneMapping = NoToneMapping;\n\n\t\t\t// Remove viewport from camera to avoid nested render calls resetting viewport to it (e.g Reflector).\n\t\t\t// Transmission render pass requires viewport to match the transmissionRenderTarget.\n\t\t\tconst currentCameraViewport = camera.viewport;\n\t\t\tif ( camera.viewport !== undefined ) camera.viewport = undefined;\n\n\t\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, camera );\n\n\t\t\trenderObjects( opaqueObjects, scene, camera );\n\n\t\t\ttextures.updateMultisampleRenderTarget( transmissionRenderTarget );\n\t\t\ttextures.updateRenderTargetMipmap( transmissionRenderTarget );\n\n\t\t\tif ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === false ) { // see #28131\n\n\t\t\t\tlet renderTargetNeedsUpdate = false;\n\n\t\t\t\tfor ( let i = 0, l = transmissiveObjects.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst renderItem = transmissiveObjects[ i ];\n\n\t\t\t\t\tconst object = renderItem.object;\n\t\t\t\t\tconst geometry = renderItem.geometry;\n\t\t\t\t\tconst material = renderItem.material;\n\t\t\t\t\tconst group = renderItem.group;\n\n\t\t\t\t\tif ( material.side === DoubleSide && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\t\tconst currentSide = material.side;\n\n\t\t\t\t\t\tmaterial.side = BackSide;\n\t\t\t\t\t\tmaterial.needsUpdate = true;\n\n\t\t\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t\t\t\tmaterial.side = currentSide;\n\t\t\t\t\t\tmaterial.needsUpdate = true;\n\n\t\t\t\t\t\trenderTargetNeedsUpdate = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( renderTargetNeedsUpdate === true ) {\n\n\t\t\t\t\ttextures.updateMultisampleRenderTarget( transmissionRenderTarget );\n\t\t\t\t\ttextures.updateRenderTargetMipmap( transmissionRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_this.setRenderTarget( currentRenderTarget );\n\n\t\t\t_this.setClearColor( _currentClearColor, _currentClearAlpha );\n\n\t\t\tif ( currentCameraViewport !== undefined ) camera.viewport = currentCameraViewport;\n\n\t\t\t_this.toneMapping = currentToneMapping;\n\n\t\t}\n\n\t\tfunction renderObjects( renderList, scene, camera ) {\n\n\t\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\t\tfor ( let i = 0, l = renderList.length; i < l; i ++ ) {\n\n\t\t\t\tconst renderItem = renderList[ i ];\n\n\t\t\t\tconst object = renderItem.object;\n\t\t\t\tconst geometry = renderItem.geometry;\n\t\t\t\tconst material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n\t\t\t\tconst group = renderItem.group;\n\n\t\t\t\tif ( object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction renderObject( object, scene, camera, geometry, material, group ) {\n\n\t\t\tobject.onBeforeRender( _this, scene, camera, geometry, material, group );\n\n\t\t\tobject.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );\n\t\t\tobject.normalMatrix.getNormalMatrix( object.modelViewMatrix );\n\n\t\t\tmaterial.onBeforeRender( _this, scene, camera, geometry, object, group );\n\n\t\t\tif ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {\n\n\t\t\t\tmaterial.side = BackSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t\tmaterial.side = FrontSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t\tmaterial.side = DoubleSide;\n\n\t\t\t} else {\n\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t}\n\n\t\t\tobject.onAfterRender( _this, scene, camera, geometry, material, group );\n\n\t\t}\n\n\t\tfunction getProgram( material, scene, object ) {\n\n\t\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\t\tconst materialProperties = properties.get( material );\n\n\t\t\tconst lights = currentRenderState.state.lights;\n\t\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\t\tconst lightsStateVersion = lights.state.version;\n\n\t\t\tconst parameters = programCache.getParameters( material, lights.state, shadowsArray, scene, object );\n\t\t\tconst programCacheKey = programCache.getProgramCacheKey( parameters );\n\n\t\t\tlet programs = materialProperties.programs;\n\n\t\t\t// always update environment and fog - changing these trigger an getProgram call, but it's possible that the program doesn't change\n\n\t\t\tmaterialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\t\tmaterialProperties.fog = scene.fog;\n\t\t\tmaterialProperties.envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || materialProperties.environment );\n\t\t\tmaterialProperties.envMapRotation = ( materialProperties.environment !== null && material.envMap === null ) ? scene.environmentRotation : material.envMapRotation;\n\n\t\t\tif ( programs === undefined ) {\n\n\t\t\t\t// new material\n\n\t\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\t\tprograms = new Map();\n\t\t\t\tmaterialProperties.programs = programs;\n\n\t\t\t}\n\n\t\t\tlet program = programs.get( programCacheKey );\n\n\t\t\tif ( program !== undefined ) {\n\n\t\t\t\t// early out if program and light state is identical\n\n\t\t\t\tif ( materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion ) {\n\n\t\t\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t\t\treturn program;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tparameters.uniforms = programCache.getUniforms( material );\n\n\t\t\t\tmaterial.onBeforeCompile( parameters, _this );\n\n\t\t\t\tprogram = programCache.acquireProgram( parameters, programCacheKey );\n\t\t\t\tprograms.set( programCacheKey, program );\n\n\t\t\t\tmaterialProperties.uniforms = parameters.uniforms;\n\n\t\t\t}\n\n\t\t\tconst uniforms = materialProperties.uniforms;\n\n\t\t\tif ( ( ! material.isShaderMaterial && ! material.isRawShaderMaterial ) || material.clipping === true ) {\n\n\t\t\t\tuniforms.clippingPlanes = clipping.uniform;\n\n\t\t\t}\n\n\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t// store the light setup it was created for\n\n\t\t\tmaterialProperties.needsLights = materialNeedsLights( material );\n\t\t\tmaterialProperties.lightsStateVersion = lightsStateVersion;\n\n\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t// wire up the material to this renderer's lighting state\n\n\t\t\t\tuniforms.ambientLightColor.value = lights.state.ambient;\n\t\t\t\tuniforms.lightProbe.value = lights.state.probe;\n\t\t\t\tuniforms.directionalLights.value = lights.state.directional;\n\t\t\t\tuniforms.directionalLightShadows.value = lights.state.directionalShadow;\n\t\t\t\tuniforms.spotLights.value = lights.state.spot;\n\t\t\t\tuniforms.spotLightShadows.value = lights.state.spotShadow;\n\t\t\t\tuniforms.rectAreaLights.value = lights.state.rectArea;\n\t\t\t\tuniforms.ltc_1.value = lights.state.rectAreaLTC1;\n\t\t\t\tuniforms.ltc_2.value = lights.state.rectAreaLTC2;\n\t\t\t\tuniforms.pointLights.value = lights.state.point;\n\t\t\t\tuniforms.pointLightShadows.value = lights.state.pointShadow;\n\t\t\t\tuniforms.hemisphereLights.value = lights.state.hemi;\n\n\t\t\t\tuniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n\t\t\t\tuniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n\t\t\t\tuniforms.spotShadowMap.value = lights.state.spotShadowMap;\n\t\t\t\tuniforms.spotLightMatrix.value = lights.state.spotLightMatrix;\n\t\t\t\tuniforms.spotLightMap.value = lights.state.spotLightMap;\n\t\t\t\tuniforms.pointShadowMap.value = lights.state.pointShadowMap;\n\t\t\t\tuniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\n\t\t\t\t// TODO (abelnation): add area lights shadow info to uniforms\n\n\t\t\t}\n\n\t\t\tmaterialProperties.currentProgram = program;\n\t\t\tmaterialProperties.uniformsList = null;\n\n\t\t\treturn program;\n\n\t\t}\n\n\t\tfunction getUniformList( materialProperties ) {\n\n\t\t\tif ( materialProperties.uniformsList === null ) {\n\n\t\t\t\tconst progUniforms = materialProperties.currentProgram.getUniforms();\n\t\t\t\tmaterialProperties.uniformsList = WebGLUniforms.seqWithValue( progUniforms.seq, materialProperties.uniforms );\n\n\t\t\t}\n\n\t\t\treturn materialProperties.uniformsList;\n\n\t\t}\n\n\t\tfunction updateCommonMaterialProperties( material, parameters ) {\n\n\t\t\tconst materialProperties = properties.get( material );\n\n\t\t\tmaterialProperties.outputColorSpace = parameters.outputColorSpace;\n\t\t\tmaterialProperties.batching = parameters.batching;\n\t\t\tmaterialProperties.batchingColor = parameters.batchingColor;\n\t\t\tmaterialProperties.instancing = parameters.instancing;\n\t\t\tmaterialProperties.instancingColor = parameters.instancingColor;\n\t\t\tmaterialProperties.instancingMorph = parameters.instancingMorph;\n\t\t\tmaterialProperties.skinning = parameters.skinning;\n\t\t\tmaterialProperties.morphTargets = parameters.morphTargets;\n\t\t\tmaterialProperties.morphNormals = parameters.morphNormals;\n\t\t\tmaterialProperties.morphColors = parameters.morphColors;\n\t\t\tmaterialProperties.morphTargetsCount = parameters.morphTargetsCount;\n\t\t\tmaterialProperties.numClippingPlanes = parameters.numClippingPlanes;\n\t\t\tmaterialProperties.numIntersection = parameters.numClipIntersection;\n\t\t\tmaterialProperties.vertexAlphas = parameters.vertexAlphas;\n\t\t\tmaterialProperties.vertexTangents = parameters.vertexTangents;\n\t\t\tmaterialProperties.toneMapping = parameters.toneMapping;\n\n\t\t}\n\n\t\tfunction setProgram( camera, scene, geometry, material, object ) {\n\n\t\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\t\ttextures.resetTextureUnits();\n\n\t\t\tconst fog = scene.fog;\n\t\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\t\tconst colorSpace = ( _currentRenderTarget === null ) ? _this.outputColorSpace : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace );\n\t\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\t\tconst vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n\t\t\tconst vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 );\n\t\t\tconst morphTargets = !! geometry.morphAttributes.position;\n\t\t\tconst morphNormals = !! geometry.morphAttributes.normal;\n\t\t\tconst morphColors = !! geometry.morphAttributes.color;\n\n\t\t\tlet toneMapping = NoToneMapping;\n\n\t\t\tif ( material.toneMapped ) {\n\n\t\t\t\tif ( _currentRenderTarget === null || _currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\t\t\t\ttoneMapping = _this.toneMapping;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\t\tconst materialProperties = properties.get( material );\n\t\t\tconst lights = currentRenderState.state.lights;\n\n\t\t\tif ( _clippingEnabled === true ) {\n\n\t\t\t\tif ( _localClippingEnabled === true || camera !== _currentCamera ) {\n\n\t\t\t\t\tconst useCache =\n\t\t\t\t\t\tcamera === _currentCamera &&\n\t\t\t\t\t\tmaterial.id === _currentMaterialId;\n\n\t\t\t\t\t// we might want to call this function with some ClippingGroup\n\t\t\t\t\t// object instead of the material, once it becomes feasible\n\t\t\t\t\t// (#8465, #8379)\n\t\t\t\t\tclipping.setState( material, camera, useCache );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet needsProgramChange = false;\n\n\t\t\tif ( material.version === materialProperties.__version ) {\n\n\t\t\t\tif ( materialProperties.needsLights && ( materialProperties.lightsStateVersion !== lights.state.version ) ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.outputColorSpace !== colorSpace ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batching === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isBatchedMesh && materialProperties.batching === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batchingColor === true && object.colorTexture === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batchingColor === false && object.colorTexture !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancing === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isInstancedMesh && materialProperties.instancing === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isSkinnedMesh && materialProperties.skinning === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isSkinnedMesh && materialProperties.skinning === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingMorph === true && object.morphTexture === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingMorph === false && object.morphTexture !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.envMap !== envMap ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( material.fog === true && materialProperties.fog !== fog ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.numClippingPlanes !== undefined &&\n\t\t\t\t\t( materialProperties.numClippingPlanes !== clipping.numPlanes ||\n\t\t\t\t\tmaterialProperties.numIntersection !== clipping.numIntersection ) ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.vertexAlphas !== vertexAlphas ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.vertexTangents !== vertexTangents ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphTargets !== morphTargets ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphNormals !== morphNormals ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphColors !== morphColors ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.toneMapping !== toneMapping ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphTargetsCount !== morphTargetsCount ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tneedsProgramChange = true;\n\t\t\t\tmaterialProperties.__version = material.version;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet program = materialProperties.currentProgram;\n\n\t\t\tif ( needsProgramChange === true ) {\n\n\t\t\t\tprogram = getProgram( material, scene, object );\n\n\t\t\t}\n\n\t\t\tlet refreshProgram = false;\n\t\t\tlet refreshMaterial = false;\n\t\t\tlet refreshLights = false;\n\n\t\t\tconst p_uniforms = program.getUniforms(),\n\t\t\t\tm_uniforms = materialProperties.uniforms;\n\n\t\t\tif ( state.useProgram( program.program ) ) {\n\n\t\t\t\trefreshProgram = true;\n\t\t\t\trefreshMaterial = true;\n\t\t\t\trefreshLights = true;\n\n\t\t\t}\n\n\t\t\tif ( material.id !== _currentMaterialId ) {\n\n\t\t\t\t_currentMaterialId = material.id;\n\n\t\t\t\trefreshMaterial = true;\n\n\t\t\t}\n\n\t\t\tif ( refreshProgram || _currentCamera !== camera ) {\n\n\t\t\t\t// common camera uniforms\n\n\t\t\t\tconst reverseDepthBuffer = state.buffers.depth.getReversed();\n\n\t\t\t\tif ( reverseDepthBuffer ) {\n\n\t\t\t\t\t_currentProjectionMatrix.copy( camera.projectionMatrix );\n\n\t\t\t\t\ttoNormalizedProjectionMatrix( _currentProjectionMatrix );\n\t\t\t\t\ttoReversedProjectionMatrix( _currentProjectionMatrix );\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'projectionMatrix', _currentProjectionMatrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );\n\n\t\t\t\t}\n\n\t\t\t\tp_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );\n\n\t\t\t\tconst uCamPos = p_uniforms.map.cameraPosition;\n\n\t\t\t\tif ( uCamPos !== undefined ) {\n\n\t\t\t\t\tuCamPos.setValue( _gl, _vector3.setFromMatrixPosition( camera.matrixWorld ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( capabilities.logarithmicDepthBuffer ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'logDepthBufFC',\n\t\t\t\t\t\t2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) );\n\n\t\t\t\t}\n\n\t\t\t\t// consider moving isOrthographic to UniformLib and WebGLMaterials, see https://github.com/mrdoob/three.js/pull/26467#issuecomment-1645185067\n\n\t\t\t\tif ( material.isMeshPhongMaterial ||\n\t\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\t\tmaterial.isMeshLambertMaterial ||\n\t\t\t\t\tmaterial.isMeshBasicMaterial ||\n\t\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\t\tmaterial.isShaderMaterial ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'isOrthographic', camera.isOrthographicCamera === true );\n\n\t\t\t\t}\n\n\t\t\t\tif ( _currentCamera !== camera ) {\n\n\t\t\t\t\t_currentCamera = camera;\n\n\t\t\t\t\t// lighting uniforms depend on the camera so enforce an update\n\t\t\t\t\t// now, in case this material supports lights - or later, when\n\t\t\t\t\t// the next material that does gets activated:\n\n\t\t\t\t\trefreshMaterial = true;\t\t// set to true on material change\n\t\t\t\t\trefreshLights = true;\t\t// remains set until update done\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// skinning and morph target uniforms must be set even if material didn't change\n\t\t\t// auto-setting of texture unit for bone and morph texture must go before other textures\n\t\t\t// otherwise textures used for skinning and morphing can take over texture units reserved for other material textures\n\n\t\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrix' );\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrixInverse' );\n\n\t\t\t\tconst skeleton = object.skeleton;\n\n\t\t\t\tif ( skeleton ) {\n\n\t\t\t\t\tif ( skeleton.boneTexture === null ) skeleton.computeBoneTexture();\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'boneTexture', skeleton.boneTexture, textures );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( object.isBatchedMesh ) {\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingTexture' );\n\t\t\t\tp_uniforms.setValue( _gl, 'batchingTexture', object._matricesTexture, textures );\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingIdTexture' );\n\t\t\t\tp_uniforms.setValue( _gl, 'batchingIdTexture', object._indirectTexture, textures );\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingColorTexture' );\n\t\t\t\tif ( object._colorsTexture !== null ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'batchingColorTexture', object._colorsTexture, textures );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\t\tif ( morphAttributes.position !== undefined || morphAttributes.normal !== undefined || ( morphAttributes.color !== undefined ) ) {\n\n\t\t\t\tmorphtargets.update( object, geometry, program );\n\n\t\t\t}\n\n\t\t\tif ( refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow ) {\n\n\t\t\t\tmaterialProperties.receiveShadow = object.receiveShadow;\n\t\t\t\tp_uniforms.setValue( _gl, 'receiveShadow', object.receiveShadow );\n\n\t\t\t}\n\n\t\t\t// https://github.com/mrdoob/three.js/pull/24467#issuecomment-1209031512\n\n\t\t\tif ( material.isMeshGouraudMaterial && material.envMap !== null ) {\n\n\t\t\t\tm_uniforms.envMap.value = envMap;\n\n\t\t\t\tm_uniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\t}\n\n\t\t\tif ( material.isMeshStandardMaterial && material.envMap === null && scene.environment !== null ) {\n\n\t\t\t\tm_uniforms.envMapIntensity.value = scene.environmentIntensity;\n\n\t\t\t}\n\n\t\t\tif ( refreshMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'toneMappingExposure', _this.toneMappingExposure );\n\n\t\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t\t// the current material requires lighting info\n\n\t\t\t\t\t// note: all lighting uniforms are always set correctly\n\t\t\t\t\t// they simply reference the renderer's state for their\n\t\t\t\t\t// values\n\t\t\t\t\t//\n\t\t\t\t\t// use the current material's .needsUpdate flags to set\n\t\t\t\t\t// the GL state when required\n\n\t\t\t\t\tmarkUniformsLightsNeedsUpdate( m_uniforms, refreshLights );\n\n\t\t\t\t}\n\n\t\t\t\t// refresh uniforms common to several materials\n\n\t\t\t\tif ( fog && material.fog === true ) {\n\n\t\t\t\t\tmaterials.refreshFogUniforms( m_uniforms, fog );\n\n\t\t\t\t}\n\n\t\t\t\tmaterials.refreshMaterialUniforms( m_uniforms, material, _pixelRatio, _height, currentRenderState.state.transmissionRenderTarget[ camera.id ] );\n\n\t\t\t\tWebGLUniforms.upload( _gl, getUniformList( materialProperties ), m_uniforms, textures );\n\n\t\t\t}\n\n\t\t\tif ( material.isShaderMaterial && material.uniformsNeedUpdate === true ) {\n\n\t\t\t\tWebGLUniforms.upload( _gl, getUniformList( materialProperties ), m_uniforms, textures );\n\t\t\t\tmaterial.uniformsNeedUpdate = false;\n\n\t\t\t}\n\n\t\t\tif ( material.isSpriteMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'center', object.center );\n\n\t\t\t}\n\n\t\t\t// common matrices\n\n\t\t\tp_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );\n\t\t\tp_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );\n\t\t\tp_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );\n\n\t\t\t// UBOs\n\n\t\t\tif ( material.isShaderMaterial || material.isRawShaderMaterial ) {\n\n\t\t\t\tconst groups = material.uniformsGroups;\n\n\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\n\t\t\t\t\tuniformsGroups.update( group, program );\n\t\t\t\t\tuniformsGroups.bind( group, program );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn program;\n\n\t\t}\n\n\t\t// If uniforms are marked as clean, they don't need to be loaded to the GPU.\n\n\t\tfunction markUniformsLightsNeedsUpdate( uniforms, value ) {\n\n\t\t\tuniforms.ambientLightColor.needsUpdate = value;\n\t\t\tuniforms.lightProbe.needsUpdate = value;\n\n\t\t\tuniforms.directionalLights.needsUpdate = value;\n\t\t\tuniforms.directionalLightShadows.needsUpdate = value;\n\t\t\tuniforms.pointLights.needsUpdate = value;\n\t\t\tuniforms.pointLightShadows.needsUpdate = value;\n\t\t\tuniforms.spotLights.needsUpdate = value;\n\t\t\tuniforms.spotLightShadows.needsUpdate = value;\n\t\t\tuniforms.rectAreaLights.needsUpdate = value;\n\t\t\tuniforms.hemisphereLights.needsUpdate = value;\n\n\t\t}\n\n\t\tfunction materialNeedsLights( material ) {\n\n\t\t\treturn material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial || material.isShadowMaterial ||\n\t\t\t\t( material.isShaderMaterial && material.lights === true );\n\n\t\t}\n\n\t\tthis.getActiveCubeFace = function () {\n\n\t\t\treturn _currentActiveCubeFace;\n\n\t\t};\n\n\t\tthis.getActiveMipmapLevel = function () {\n\n\t\t\treturn _currentActiveMipmapLevel;\n\n\t\t};\n\n\t\tthis.getRenderTarget = function () {\n\n\t\t\treturn _currentRenderTarget;\n\n\t\t};\n\n\t\tthis.setRenderTargetTextures = function ( renderTarget, colorTexture, depthTexture ) {\n\n\t\t\tproperties.get( renderTarget.texture ).__webglTexture = colorTexture;\n\t\t\tproperties.get( renderTarget.depthTexture ).__webglTexture = depthTexture;\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\trenderTargetProperties.__hasExternalTextures = true;\n\n\t\t\trenderTargetProperties.__autoAllocateDepthBuffer = depthTexture === undefined;\n\n\t\t\tif ( ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\t\t// The multisample_render_to_texture extension doesn't work properly if there\n\t\t\t\t// are midframe flushes and an external depth buffer. Disable use of the extension.\n\t\t\t\tif ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided' );\n\t\t\t\t\trenderTargetProperties.__useRenderToTexture = false;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setRenderTargetFramebuffer = function ( renderTarget, defaultFramebuffer ) {\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\trenderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n\t\t\trenderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === undefined;\n\n\t\t};\n\n\t\tthis.setRenderTarget = function ( renderTarget, activeCubeFace = 0, activeMipmapLevel = 0 ) {\n\n\t\t\t_currentRenderTarget = renderTarget;\n\t\t\t_currentActiveCubeFace = activeCubeFace;\n\t\t\t_currentActiveMipmapLevel = activeMipmapLevel;\n\n\t\t\tlet useDefaultFramebuffer = true;\n\t\t\tlet framebuffer = null;\n\t\t\tlet isCube = false;\n\t\t\tlet isRenderTarget3D = false;\n\n\t\t\tif ( renderTarget ) {\n\n\t\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\t\t\tif ( renderTargetProperties.__useDefaultFramebuffer !== undefined ) {\n\n\t\t\t\t\t// We need to make sure to rebind the framebuffer.\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\t\t\t\t\tuseDefaultFramebuffer = false;\n\n\t\t\t\t} else if ( renderTargetProperties.__webglFramebuffer === undefined ) {\n\n\t\t\t\t\ttextures.setupRenderTarget( renderTarget );\n\n\t\t\t\t} else if ( renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\t\t\t// Color and depth texture must be rebound in order for the swapchain to update.\n\t\t\t\t\ttextures.rebindTextures( renderTarget, properties.get( renderTarget.texture ).__webglTexture, properties.get( renderTarget.depthTexture ).__webglTexture );\n\n\t\t\t\t} else if ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\t// check if the depth texture is already bound to the frame buffer and that it's been initialized\n\t\t\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\t\t\tif ( renderTargetProperties.__boundDepthTexture !== depthTexture ) {\n\n\t\t\t\t\t\t// check if the depth texture is compatible\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdepthTexture !== null &&\n\t\t\t\t\t\t\tproperties.has( depthTexture ) &&\n\t\t\t\t\t\t\t( renderTarget.width !== depthTexture.image.width || renderTarget.height !== depthTexture.image.height )\n\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\tthrow new Error( 'WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Swap the depth buffer to the currently attached one\n\t\t\t\t\t\ttextures.setupDepthRenderbuffer( renderTarget );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tconst texture = renderTarget.texture;\n\n\t\t\t\tif ( texture.isData3DTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {\n\n\t\t\t\t\tisRenderTarget3D = true;\n\n\t\t\t\t}\n\n\t\t\t\tconst __webglFramebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\t\t\tif ( Array.isArray( __webglFramebuffer[ activeCubeFace ] ) ) {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ][ activeMipmapLevel ];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ];\n\n\t\t\t\t\t}\n\n\t\t\t\t\tisCube = true;\n\n\t\t\t\t} else if ( ( renderTarget.samples > 0 ) && textures.useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t\tframebuffer = properties.get( renderTarget ).__webglMultisampledFramebuffer;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( Array.isArray( __webglFramebuffer ) ) {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeMipmapLevel ];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t_currentViewport.copy( renderTarget.viewport );\n\t\t\t\t_currentScissor.copy( renderTarget.scissor );\n\t\t\t\t_currentScissorTest = renderTarget.scissorTest;\n\n\t\t\t} else {\n\n\t\t\t\t_currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t\t_currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t\t_currentScissorTest = _scissorTest;\n\n\t\t\t}\n\n\t\t\tconst framebufferBound = state.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\tif ( framebufferBound && useDefaultFramebuffer ) {\n\n\t\t\t\tstate.drawBuffers( renderTarget, framebuffer );\n\n\t\t\t}\n\n\t\t\tstate.viewport( _currentViewport );\n\t\t\tstate.scissor( _currentScissor );\n\t\t\tstate.setScissorTest( _currentScissorTest );\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel );\n\n\t\t\t} else if ( isRenderTarget3D ) {\n\n\t\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t\tconst layer = activeCubeFace || 0;\n\t\t\t\t_gl.framebufferTextureLayer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureProperties.__webglTexture, activeMipmapLevel || 0, layer );\n\n\t\t\t}\n\n\t\t\t_currentMaterialId = - 1; // reset current material to ensure correct uniform bindings\n\n\t\t};\n\n\t\tthis.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t\t}\n\n\t\t\tif ( framebuffer ) {\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\ttry {\n\n\t\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\t\tif ( ! capabilities.textureFormatReadable( textureFormat ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.' );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! capabilities.textureTypeReadable( textureType ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\n\t\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), buffer );\n\n\t\t\t\t\t}\n\n\t\t\t\t} finally {\n\n\t\t\t\t\t// restore framebuffer of current render target if necessary\n\n\t\t\t\t\tconst framebuffer = ( _currentRenderTarget !== null ) ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.readRenderTargetPixelsAsync = async function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\n\t\t\t}\n\n\t\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t\t}\n\n\t\t\tif ( framebuffer ) {\n\n\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\tif ( ! capabilities.textureFormatReadable( textureFormat ) ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.' );\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! capabilities.textureTypeReadable( textureType ) ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\n\t\t\t\t}\n\n\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t// set the active frame buffer to the one we want to read\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\t\tconst glBuffer = _gl.createBuffer();\n\t\t\t\t\t_gl.bindBuffer( _gl.PIXEL_PACK_BUFFER, glBuffer );\n\t\t\t\t\t_gl.bufferData( _gl.PIXEL_PACK_BUFFER, buffer.byteLength, _gl.STREAM_READ );\n\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), 0 );\n\n\t\t\t\t\t// reset the frame buffer to the currently set buffer before waiting\n\t\t\t\t\tconst currFramebuffer = _currentRenderTarget !== null ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, currFramebuffer );\n\n\t\t\t\t\t// check if the commands have finished every 8 ms\n\t\t\t\t\tconst sync = _gl.fenceSync( _gl.SYNC_GPU_COMMANDS_COMPLETE, 0 );\n\n\t\t\t\t\t_gl.flush();\n\n\t\t\t\t\tawait probeAsync( _gl, sync, 4 );\n\n\t\t\t\t\t// read the data and delete the buffer\n\t\t\t\t\t_gl.bindBuffer( _gl.PIXEL_PACK_BUFFER, glBuffer );\n\t\t\t\t\t_gl.getBufferSubData( _gl.PIXEL_PACK_BUFFER, 0, buffer );\n\t\t\t\t\t_gl.deleteBuffer( glBuffer );\n\t\t\t\t\t_gl.deleteSync( sync );\n\n\t\t\t\t\treturn buffer;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.copyFramebufferToTexture = function ( texture, position = null, level = 0 ) {\n\n\t\t\t// support previous signature with position first\n\t\t\tif ( texture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\twarnOnce( 'WebGLRenderer: copyFramebufferToTexture function signature has changed.' );\n\n\t\t\t\tposition = arguments[ 0 ] || null;\n\t\t\t\ttexture = arguments[ 1 ];\n\n\t\t\t}\n\n\t\t\tconst levelScale = Math.pow( 2, - level );\n\t\t\tconst width = Math.floor( texture.image.width * levelScale );\n\t\t\tconst height = Math.floor( texture.image.height * levelScale );\n\n\t\t\tconst x = position !== null ? position.x : 0;\n\t\t\tconst y = position !== null ? position.y : 0;\n\n\t\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t\t_gl.copyTexSubImage2D( _gl.TEXTURE_2D, level, 0, 0, x, y, width, height );\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.copyTextureToTexture = function ( srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0 ) {\n\n\t\t\t// support previous signature with dstPosition first\n\t\t\tif ( srcTexture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture function signature has changed.' );\n\n\t\t\t\tdstPosition = arguments[ 0 ] || null;\n\t\t\t\tsrcTexture = arguments[ 1 ];\n\t\t\t\tdstTexture = arguments[ 2 ];\n\t\t\t\tlevel = arguments[ 3 ] || 0;\n\t\t\t\tsrcRegion = null;\n\n\t\t\t}\n\n\t\t\t// gather the necessary dimensions to copy\n\t\t\tlet width, height, depth, minX, minY, minZ;\n\t\t\tlet dstX, dstY, dstZ;\n\t\t\tconst image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[ level ] : srcTexture.image;\n\t\t\tif ( srcRegion !== null ) {\n\n\t\t\t\twidth = srcRegion.max.x - srcRegion.min.x;\n\t\t\t\theight = srcRegion.max.y - srcRegion.min.y;\n\t\t\t\tdepth = srcRegion.isBox3 ? srcRegion.max.z - srcRegion.min.z : 1;\n\t\t\t\tminX = srcRegion.min.x;\n\t\t\t\tminY = srcRegion.min.y;\n\t\t\t\tminZ = srcRegion.isBox3 ? srcRegion.min.z : 0;\n\n\t\t\t} else {\n\n\t\t\t\twidth = image.width;\n\t\t\t\theight = image.height;\n\t\t\t\tdepth = image.depth || 1;\n\t\t\t\tminX = 0;\n\t\t\t\tminY = 0;\n\t\t\t\tminZ = 0;\n\n\t\t\t}\n\n\t\t\tif ( dstPosition !== null ) {\n\n\t\t\t\tdstX = dstPosition.x;\n\t\t\t\tdstY = dstPosition.y;\n\t\t\t\tdstZ = dstPosition.z;\n\n\t\t\t} else {\n\n\t\t\t\tdstX = 0;\n\t\t\t\tdstY = 0;\n\t\t\t\tdstZ = 0;\n\n\t\t\t}\n\n\t\t\t// Set up the destination target\n\t\t\tconst glFormat = utils.convert( dstTexture.format );\n\t\t\tconst glType = utils.convert( dstTexture.type );\n\t\t\tlet glTarget;\n\n\t\t\tif ( dstTexture.isData3DTexture ) {\n\n\t\t\t\ttextures.setTexture3D( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_3D;\n\n\t\t\t} else if ( dstTexture.isDataArrayTexture || dstTexture.isCompressedArrayTexture ) {\n\n\t\t\t\ttextures.setTexture2DArray( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_2D_ARRAY;\n\n\t\t\t} else {\n\n\t\t\t\ttextures.setTexture2D( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_2D;\n\n\t\t\t}\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment );\n\n\t\t\t// used for copying data from cpu\n\t\t\tconst currentUnpackRowLen = _gl.getParameter( _gl.UNPACK_ROW_LENGTH );\n\t\t\tconst currentUnpackImageHeight = _gl.getParameter( _gl.UNPACK_IMAGE_HEIGHT );\n\t\t\tconst currentUnpackSkipPixels = _gl.getParameter( _gl.UNPACK_SKIP_PIXELS );\n\t\t\tconst currentUnpackSkipRows = _gl.getParameter( _gl.UNPACK_SKIP_ROWS );\n\t\t\tconst currentUnpackSkipImages = _gl.getParameter( _gl.UNPACK_SKIP_IMAGES );\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, image.width );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, image.height );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, minX );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, minY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, minZ );\n\n\t\t\t// set up the src texture\n\t\t\tconst isSrc3D = srcTexture.isDataArrayTexture || srcTexture.isData3DTexture;\n\t\t\tconst isDst3D = dstTexture.isDataArrayTexture || dstTexture.isData3DTexture;\n\t\t\tif ( srcTexture.isRenderTargetTexture || srcTexture.isDepthTexture ) {\n\n\t\t\t\tconst srcTextureProperties = properties.get( srcTexture );\n\t\t\t\tconst dstTextureProperties = properties.get( dstTexture );\n\t\t\t\tconst srcRenderTargetProperties = properties.get( srcTextureProperties.__renderTarget );\n\t\t\t\tconst dstRenderTargetProperties = properties.get( dstTextureProperties.__renderTarget );\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, srcRenderTargetProperties.__webglFramebuffer );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, dstRenderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < depth; i ++ ) {\n\n\t\t\t\t\t// if the source or destination are a 3d target then a layer needs to be bound\n\t\t\t\t\tif ( isSrc3D ) {\n\n\t\t\t\t\t\t_gl.framebufferTextureLayer( _gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, properties.get( srcTexture ).__webglTexture, level, minZ + i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( srcTexture.isDepthTexture ) {\n\n\t\t\t\t\t\tif ( isDst3D ) {\n\n\t\t\t\t\t\t\t_gl.framebufferTextureLayer( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, properties.get( dstTexture ).__webglTexture, level, dstZ + i );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_gl.blitFramebuffer( minX, minY, width, height, dstX, dstY, width, height, _gl.DEPTH_BUFFER_BIT, _gl.NEAREST );\n\n\t\t\t\t\t} else if ( isDst3D ) {\n\n\t\t\t\t\t\t_gl.copyTexSubImage3D( glTarget, level, dstX, dstY, dstZ + i, minX, minY, width, height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.copyTexSubImage2D( glTarget, level, dstX, dstY, dstZ + i, minX, minY, width, height );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, null );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, null );\n\n\t\t\t} else {\n\n\t\t\t\tif ( isDst3D ) {\n\n\t\t\t\t\t// copy data into the 3d texture\n\t\t\t\t\tif ( srcTexture.isDataTexture || srcTexture.isData3DTexture ) {\n\n\t\t\t\t\t\t_gl.texSubImage3D( glTarget, level, dstX, dstY, dstZ, width, height, depth, glFormat, glType, image.data );\n\n\t\t\t\t\t} else if ( dstTexture.isCompressedArrayTexture ) {\n\n\t\t\t\t\t\t_gl.compressedTexSubImage3D( glTarget, level, dstX, dstY, dstZ, width, height, depth, glFormat, image.data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.texSubImage3D( glTarget, level, dstX, dstY, dstZ, width, height, depth, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// copy data into the 2d texture\n\t\t\t\t\tif ( srcTexture.isDataTexture ) {\n\n\t\t\t\t\t\t_gl.texSubImage2D( _gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image.data );\n\n\t\t\t\t\t} else if ( srcTexture.isCompressedTexture ) {\n\n\t\t\t\t\t\t_gl.compressedTexSubImage2D( _gl.TEXTURE_2D, level, dstX, dstY, image.width, image.height, glFormat, image.data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_gl.texSubImage2D( _gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// reset values\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, currentUnpackRowLen );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages );\n\n\t\t\t// Generate mipmaps only when copying level 0\n\t\t\tif ( level === 0 && dstTexture.generateMipmaps ) {\n\n\t\t\t\t_gl.generateMipmap( glTarget );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.copyTextureToTexture3D = function ( srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0 ) {\n\n\t\t\t// support previous signature with source box first\n\t\t\tif ( srcTexture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture3D function signature has changed.' );\n\n\t\t\t\tsrcRegion = arguments[ 0 ] || null;\n\t\t\t\tdstPosition = arguments[ 1 ] || null;\n\t\t\t\tsrcTexture = arguments[ 2 ];\n\t\t\t\tdstTexture = arguments[ 3 ];\n\t\t\t\tlevel = arguments[ 4 ] || 0;\n\n\t\t\t}\n\n\t\t\t// @deprecated, r170\n\t\t\twarnOnce( 'WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use \"copyTextureToTexture\" instead.' );\n\n\t\t\treturn this.copyTextureToTexture( srcTexture, dstTexture, srcRegion, dstPosition, level );\n\n\t\t};\n\n\t\tthis.initRenderTarget = function ( target ) {\n\n\t\t\tif ( properties.get( target ).__webglFramebuffer === undefined ) {\n\n\t\t\t\ttextures.setupRenderTarget( target );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.initTexture = function ( texture ) {\n\n\t\t\tif ( texture.isCubeTexture ) {\n\n\t\t\t\ttextures.setTextureCube( texture, 0 );\n\n\t\t\t} else if ( texture.isData3DTexture ) {\n\n\t\t\t\ttextures.setTexture3D( texture, 0 );\n\n\t\t\t} else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {\n\n\t\t\t\ttextures.setTexture2DArray( texture, 0 );\n\n\t\t\t} else {\n\n\t\t\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.resetState = function () {\n\n\t\t\t_currentActiveCubeFace = 0;\n\t\t\t_currentActiveMipmapLevel = 0;\n\t\t\t_currentRenderTarget = null;\n\n\t\t\tstate.reset();\n\t\t\tbindingStates.reset();\n\n\t\t};\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tget coordinateSystem() {\n\n\t\treturn WebGLCoordinateSystem;\n\n\t}\n\n\tget outputColorSpace() {\n\n\t\treturn this._outputColorSpace;\n\n\t}\n\n\tset outputColorSpace( colorSpace ) {\n\n\t\tthis._outputColorSpace = colorSpace;\n\n\t\tconst gl = this.getContext();\n\t\tgl.drawingBufferColorspace = ColorManagement._getDrawingBufferColorSpace( colorSpace );\n\t\tgl.unpackColorSpace = ColorManagement._getUnpackColorSpace();\n\n\t}\n\n}\n\nclass FogExp2 {\n\n\tconstructor( color, density = 0.00025 ) {\n\n\t\tthis.isFogExp2 = true;\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\t\tthis.density = density;\n\n\t}\n\n\tclone() {\n\n\t\treturn new FogExp2( this.color, this.density );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'FogExp2',\n\t\t\tname: this.name,\n\t\t\tcolor: this.color.getHex(),\n\t\t\tdensity: this.density\n\t\t};\n\n\t}\n\n}\n\nclass Fog {\n\n\tconstructor( color, near = 1, far = 1000 ) {\n\n\t\tthis.isFog = true;\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Fog( this.color, this.near, this.far );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'Fog',\n\t\t\tname: this.name,\n\t\t\tcolor: this.color.getHex(),\n\t\t\tnear: this.near,\n\t\t\tfar: this.far\n\t\t};\n\n\t}\n\n}\n\nclass Scene extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isScene = true;\n\n\t\tthis.type = 'Scene';\n\n\t\tthis.background = null;\n\t\tthis.environment = null;\n\t\tthis.fog = null;\n\n\t\tthis.backgroundBlurriness = 0;\n\t\tthis.backgroundIntensity = 1;\n\t\tthis.backgroundRotation = new Euler();\n\n\t\tthis.environmentIntensity = 1;\n\t\tthis.environmentRotation = new Euler();\n\n\t\tthis.overrideMaterial = null;\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.background !== null ) this.background = source.background.clone();\n\t\tif ( source.environment !== null ) this.environment = source.environment.clone();\n\t\tif ( source.fog !== null ) this.fog = source.fog.clone();\n\n\t\tthis.backgroundBlurriness = source.backgroundBlurriness;\n\t\tthis.backgroundIntensity = source.backgroundIntensity;\n\t\tthis.backgroundRotation.copy( source.backgroundRotation );\n\n\t\tthis.environmentIntensity = source.environmentIntensity;\n\t\tthis.environmentRotation.copy( source.environmentRotation );\n\n\t\tif ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone();\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.fog !== null ) data.object.fog = this.fog.toJSON();\n\n\t\tif ( this.backgroundBlurriness > 0 ) data.object.backgroundBlurriness = this.backgroundBlurriness;\n\t\tif ( this.backgroundIntensity !== 1 ) data.object.backgroundIntensity = this.backgroundIntensity;\n\t\tdata.object.backgroundRotation = this.backgroundRotation.toArray();\n\n\t\tif ( this.environmentIntensity !== 1 ) data.object.environmentIntensity = this.environmentIntensity;\n\t\tdata.object.environmentRotation = this.environmentRotation.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InterleavedBuffer {\n\n\tconstructor( array, stride ) {\n\n\t\tthis.isInterleavedBuffer = true;\n\n\t\tthis.array = array;\n\t\tthis.stride = stride;\n\t\tthis.count = array !== undefined ? array.length / stride : 0;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRanges = [];\n\n\t\tthis.version = 0;\n\n\t\tthis.uuid = generateUUID();\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.count = source.count;\n\t\tthis.stride = source.stride;\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.stride;\n\t\tindex2 *= attribute.stride;\n\n\t\tfor ( let i = 0, l = this.stride; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = this.array.slice( 0 ).buffer;\n\n\t\t}\n\n\t\tconst array = new this.array.constructor( data.arrayBuffers[ this.array.buffer._uuid ] );\n\n\t\tconst ib = new this.constructor( array, this.stride );\n\t\tib.setUsage( this.usage );\n\n\t\treturn ib;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\t// generate UUID for array buffer if necessary\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = Array.from( new Uint32Array( this.array.buffer ) );\n\n\t\t}\n\n\t\t//\n\n\t\treturn {\n\t\t\tuuid: this.uuid,\n\t\t\tbuffer: this.array.buffer._uuid,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tstride: this.stride\n\t\t};\n\n\t}\n\n}\n\nconst _vector$6 = /*@__PURE__*/ new Vector3();\n\nclass InterleavedBufferAttribute {\n\n\tconstructor( interleavedBuffer, itemSize, offset, normalized = false ) {\n\n\t\tthis.isInterleavedBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.data = interleavedBuffer;\n\t\tthis.itemSize = itemSize;\n\t\tthis.offset = offset;\n\n\t\tthis.normalized = normalized;\n\n\t}\n\n\tget count() {\n\n\t\treturn this.data.count;\n\n\t}\n\n\tget array() {\n\n\t\treturn this.data.array;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tthis.data.needsUpdate = value;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.data.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.data.stride + this.offset + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.data.array[ index * this.data.stride + this.offset ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.data.array[ index * this.data.stride + this.offset + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.data.array[ index * this.data.stride + this.offset + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.data.array[ index * this.data.stride + this.offset + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\t\tthis.data.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( new this.array.constructor( array ), this.itemSize, this.normalized );\n\n\t\t} else {\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.clone( data );\n\n\t\t\t}\n\n\t\t\treturn new InterleavedBufferAttribute( data.interleavedBuffers[ this.data.uuid ], this.itemSize, this.offset, this.normalized );\n\n\t\t}\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// de-interleave data and save it as an ordinary buffer attribute for now\n\n\t\t\treturn {\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\ttype: this.array.constructor.name,\n\t\t\t\tarray: array,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t} else {\n\n\t\t\t// save as true interleaved attribute\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.toJSON( data );\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisInterleavedBufferAttribute: true,\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\tdata: this.data.uuid,\n\t\t\t\toffset: this.offset,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t}\n\n\t}\n\n}\n\nclass SpriteMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'SpriteMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isSpriteMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.rotation = 0;\n\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.transparent = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nlet _geometry;\n\nconst _intersectPoint = /*@__PURE__*/ new Vector3();\nconst _worldScale = /*@__PURE__*/ new Vector3();\nconst _mvPosition = /*@__PURE__*/ new Vector3();\n\nconst _alignedPosition = /*@__PURE__*/ new Vector2();\nconst _rotatedPosition = /*@__PURE__*/ new Vector2();\nconst _viewWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _vA = /*@__PURE__*/ new Vector3();\nconst _vB = /*@__PURE__*/ new Vector3();\nconst _vC = /*@__PURE__*/ new Vector3();\n\nconst _uvA = /*@__PURE__*/ new Vector2();\nconst _uvB = /*@__PURE__*/ new Vector2();\nconst _uvC = /*@__PURE__*/ new Vector2();\n\nclass Sprite extends Object3D {\n\n\tconstructor( material = new SpriteMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isSprite = true;\n\n\t\tthis.type = 'Sprite';\n\n\t\tif ( _geometry === undefined ) {\n\n\t\t\t_geometry = new BufferGeometry();\n\n\t\t\tconst float32Array = new Float32Array( [\n\t\t\t\t- 0.5, - 0.5, 0, 0, 0,\n\t\t\t\t0.5, - 0.5, 0, 1, 0,\n\t\t\t\t0.5, 0.5, 0, 1, 1,\n\t\t\t\t- 0.5, 0.5, 0, 0, 1\n\t\t\t] );\n\n\t\t\tconst interleavedBuffer = new InterleavedBuffer( float32Array, 5 );\n\n\t\t\t_geometry.setIndex( [ 0, 1, 2,\t0, 2, 3 ] );\n\t\t\t_geometry.setAttribute( 'position', new InterleavedBufferAttribute( interleavedBuffer, 3, 0, false ) );\n\t\t\t_geometry.setAttribute( 'uv', new InterleavedBufferAttribute( interleavedBuffer, 2, 3, false ) );\n\n\t\t}\n\n\t\tthis.geometry = _geometry;\n\t\tthis.material = material;\n\n\t\tthis.center = new Vector2( 0.5, 0.5 );\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tif ( raycaster.camera === null ) {\n\n\t\t\tconsole.error( 'THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.' );\n\n\t\t}\n\n\t\t_worldScale.setFromMatrixScale( this.matrixWorld );\n\n\t\t_viewWorldMatrix.copy( raycaster.camera.matrixWorld );\n\t\tthis.modelViewMatrix.multiplyMatrices( raycaster.camera.matrixWorldInverse, this.matrixWorld );\n\n\t\t_mvPosition.setFromMatrixPosition( this.modelViewMatrix );\n\n\t\tif ( raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false ) {\n\n\t\t\t_worldScale.multiplyScalar( - _mvPosition.z );\n\n\t\t}\n\n\t\tconst rotation = this.material.rotation;\n\t\tlet sin, cos;\n\n\t\tif ( rotation !== 0 ) {\n\n\t\t\tcos = Math.cos( rotation );\n\t\t\tsin = Math.sin( rotation );\n\n\t\t}\n\n\t\tconst center = this.center;\n\n\t\ttransformVertex( _vA.set( - 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vB.set( 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vC.set( 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\n\t\t_uvA.set( 0, 0 );\n\t\t_uvB.set( 1, 0 );\n\t\t_uvC.set( 1, 1 );\n\n\t\t// check first triangle\n\t\tlet intersect = raycaster.ray.intersectTriangle( _vA, _vB, _vC, false, _intersectPoint );\n\n\t\tif ( intersect === null ) {\n\n\t\t\t// check second triangle\n\t\t\ttransformVertex( _vB.set( - 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\t\t_uvB.set( 0, 1 );\n\n\t\t\tintersect = raycaster.ray.intersectTriangle( _vA, _vC, _vB, false, _intersectPoint );\n\t\t\tif ( intersect === null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( _intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tpoint: _intersectPoint.clone(),\n\t\t\tuv: Triangle.getInterpolation( _intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2() ),\n\t\t\tface: null,\n\t\t\tobject: this\n\n\t\t} );\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.center !== undefined ) this.center.copy( source.center );\n\n\t\tthis.material = source.material;\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction transformVertex( vertexPosition, mvPosition, center, scale, sin, cos ) {\n\n\t// compute position in camera space\n\t_alignedPosition.subVectors( vertexPosition, center ).addScalar( 0.5 ).multiply( scale );\n\n\t// to check if rotation is not zero\n\tif ( sin !== undefined ) {\n\n\t\t_rotatedPosition.x = ( cos * _alignedPosition.x ) - ( sin * _alignedPosition.y );\n\t\t_rotatedPosition.y = ( sin * _alignedPosition.x ) + ( cos * _alignedPosition.y );\n\n\t} else {\n\n\t\t_rotatedPosition.copy( _alignedPosition );\n\n\t}\n\n\n\tvertexPosition.copy( mvPosition );\n\tvertexPosition.x += _rotatedPosition.x;\n\tvertexPosition.y += _rotatedPosition.y;\n\n\t// transform to world space\n\tvertexPosition.applyMatrix4( _viewWorldMatrix );\n\n}\n\nconst _v1$2 = /*@__PURE__*/ new Vector3();\nconst _v2$1 = /*@__PURE__*/ new Vector3();\n\nclass LOD extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis._currentLevel = 0;\n\n\t\tthis.type = 'LOD';\n\n\t\tObject.defineProperties( this, {\n\t\t\tlevels: {\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: []\n\t\t\t},\n\t\t\tisLOD: {\n\t\t\t\tvalue: true,\n\t\t\t}\n\t\t} );\n\n\t\tthis.autoUpdate = true;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tconst levels = source.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tthis.addLevel( level.object.clone(), level.distance, level.hysteresis );\n\n\t\t}\n\n\t\tthis.autoUpdate = source.autoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\taddLevel( object, distance = 0, hysteresis = 0 ) {\n\n\t\tdistance = Math.abs( distance );\n\n\t\tconst levels = this.levels;\n\n\t\tlet l;\n\n\t\tfor ( l = 0; l < levels.length; l ++ ) {\n\n\t\t\tif ( distance < levels[ l ].distance ) {\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlevels.splice( l, 0, { distance: distance, hysteresis: hysteresis, object: object } );\n\n\t\tthis.add( object );\n\n\t\treturn this;\n\n\t}\n\n\tremoveLevel( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0; i < levels.length; i ++ ) {\n\n\t\t\tif ( levels[ i ].distance === distance ) {\n\n\t\t\t\tconst removedElements = levels.splice( i, 1 );\n\t\t\t\tthis.remove( removedElements[ 0 ].object );\n\n\t\t\t\treturn true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tgetCurrentLevel() {\n\n\t\treturn this._currentLevel;\n\n\t}\n\n\n\n\tgetObjectForDistance( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tlet levelDistance = levels[ i ].distance;\n\n\t\t\t\tif ( levels[ i ].object.visible ) {\n\n\t\t\t\t\tlevelDistance -= levelDistance * levels[ i ].hysteresis;\n\n\t\t\t\t}\n\n\t\t\t\tif ( distance < levelDistance ) {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn levels[ i - 1 ].object;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = raycaster.ray.origin.distanceTo( _v1$2 );\n\n\t\t\tthis.getObjectForDistance( distance ).raycast( raycaster, intersects );\n\n\t\t}\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 1 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( camera.matrixWorld );\n\t\t\t_v2$1.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = _v1$2.distanceTo( _v2$1 ) / camera.zoom;\n\n\t\t\tlevels[ 0 ].object.visible = true;\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tlet levelDistance = levels[ i ].distance;\n\n\t\t\t\tif ( levels[ i ].object.visible ) {\n\n\t\t\t\t\tlevelDistance -= levelDistance * levels[ i ].hysteresis;\n\n\t\t\t\t}\n\n\t\t\t\tif ( distance >= levelDistance ) {\n\n\t\t\t\t\tlevels[ i - 1 ].object.visible = false;\n\t\t\t\t\tlevels[ i ].object.visible = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._currentLevel = i - 1;\n\n\t\t\tfor ( ; i < l; i ++ ) {\n\n\t\t\t\tlevels[ i ].object.visible = false;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.autoUpdate === false ) data.object.autoUpdate = false;\n\n\t\tdata.object.levels = [];\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tdata.object.levels.push( {\n\t\t\t\tobject: level.object.uuid,\n\t\t\t\tdistance: level.distance,\n\t\t\t\thysteresis: level.hysteresis\n\t\t\t} );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst _basePosition = /*@__PURE__*/ new Vector3();\n\nconst _skinIndex = /*@__PURE__*/ new Vector4();\nconst _skinWeight = /*@__PURE__*/ new Vector4();\n\nconst _vector3 = /*@__PURE__*/ new Vector3();\nconst _matrix4 = /*@__PURE__*/ new Matrix4();\nconst _vertex = /*@__PURE__*/ new Vector3();\n\nconst _sphere$4 = /*@__PURE__*/ new Sphere();\nconst _inverseMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _ray$2 = /*@__PURE__*/ new Ray();\n\nclass SkinnedMesh extends Mesh {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isSkinnedMesh = true;\n\n\t\tthis.type = 'SkinnedMesh';\n\n\t\tthis.bindMode = AttachedBindMode;\n\t\tthis.bindMatrix = new Matrix4();\n\t\tthis.bindMatrixInverse = new Matrix4();\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tthis.boundingBox.makeEmpty();\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\tthis.getVertexPosition( i, _vertex );\n\t\t\tthis.boundingBox.expandByPoint( _vertex );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tthis.boundingSphere.makeEmpty();\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\tthis.getVertexPosition( i, _vertex );\n\t\t\tthis.boundingSphere.expandByPoint( _vertex );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.bindMode = source.bindMode;\n\t\tthis.bindMatrix.copy( source.bindMatrix );\n\t\tthis.bindMatrixInverse.copy( source.bindMatrixInverse );\n\n\t\tthis.skeleton = source.skeleton;\n\n\t\tif ( source.boundingBox !== null ) this.boundingBox = source.boundingBox.clone();\n\t\tif ( source.boundingSphere !== null ) this.boundingSphere = source.boundingSphere.clone();\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( this.boundingSphere === null ) this.computeBoundingSphere();\n\n\t\t_sphere$4.copy( this.boundingSphere );\n\t\t_sphere$4.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$4 ) === false ) return;\n\n\t\t// convert ray to local space of skinned mesh\n\n\t\t_inverseMatrix$2.copy( matrixWorld ).invert();\n\t\t_ray$2.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$2 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tif ( _ray$2.intersectsBox( this.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$2 );\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tsuper.getVertexPosition( index, target );\n\n\t\tthis.applyBoneTransform( index, target );\n\n\t\treturn target;\n\n\t}\n\n\tbind( skeleton, bindMatrix ) {\n\n\t\tthis.skeleton = skeleton;\n\n\t\tif ( bindMatrix === undefined ) {\n\n\t\t\tthis.updateMatrixWorld( true );\n\n\t\t\tthis.skeleton.calculateInverses();\n\n\t\t\tbindMatrix = this.matrixWorld;\n\n\t\t}\n\n\t\tthis.bindMatrix.copy( bindMatrix );\n\t\tthis.bindMatrixInverse.copy( bindMatrix ).invert();\n\n\t}\n\n\tpose() {\n\n\t\tthis.skeleton.pose();\n\n\t}\n\n\tnormalizeSkinWeights() {\n\n\t\tconst vector = new Vector4();\n\n\t\tconst skinWeight = this.geometry.attributes.skinWeight;\n\n\t\tfor ( let i = 0, l = skinWeight.count; i < l; i ++ ) {\n\n\t\t\tvector.fromBufferAttribute( skinWeight, i );\n\n\t\t\tconst scale = 1.0 / vector.manhattanLength();\n\n\t\t\tif ( scale !== Infinity ) {\n\n\t\t\t\tvector.multiplyScalar( scale );\n\n\t\t\t} else {\n\n\t\t\t\tvector.set( 1, 0, 0, 0 ); // do something reasonable\n\n\t\t\t}\n\n\t\t\tskinWeight.setXYZW( i, vector.x, vector.y, vector.z, vector.w );\n\n\t\t}\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.bindMode === AttachedBindMode ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.matrixWorld ).invert();\n\n\t\t} else if ( this.bindMode === DetachedBindMode ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.bindMatrix ).invert();\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode );\n\n\t\t}\n\n\t}\n\n\tapplyBoneTransform( index, vector ) {\n\n\t\tconst skeleton = this.skeleton;\n\t\tconst geometry = this.geometry;\n\n\t\t_skinIndex.fromBufferAttribute( geometry.attributes.skinIndex, index );\n\t\t_skinWeight.fromBufferAttribute( geometry.attributes.skinWeight, index );\n\n\t\t_basePosition.copy( vector ).applyMatrix4( this.bindMatrix );\n\n\t\tvector.set( 0, 0, 0 );\n\n\t\tfor ( let i = 0; i < 4; i ++ ) {\n\n\t\t\tconst weight = _skinWeight.getComponent( i );\n\n\t\t\tif ( weight !== 0 ) {\n\n\t\t\t\tconst boneIndex = _skinIndex.getComponent( i );\n\n\t\t\t\t_matrix4.multiplyMatrices( skeleton.bones[ boneIndex ].matrixWorld, skeleton.boneInverses[ boneIndex ] );\n\n\t\t\t\tvector.addScaledVector( _vector3.copy( _basePosition ).applyMatrix4( _matrix4 ), weight );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn vector.applyMatrix4( this.bindMatrixInverse );\n\n\t}\n\n}\n\nclass Bone extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBone = true;\n\n\t\tthis.type = 'Bone';\n\n\t}\n\n}\n\nclass DataTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, colorSpace ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isDataTexture = true;\n\n\t\tthis.image = { data: data, width: width, height: height };\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nconst _offsetMatrix = /*@__PURE__*/ new Matrix4();\nconst _identityMatrix = /*@__PURE__*/ new Matrix4();\n\nclass Skeleton {\n\n\tconstructor( bones = [], boneInverses = [] ) {\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.bones = bones.slice( 0 );\n\t\tthis.boneInverses = boneInverses;\n\t\tthis.boneMatrices = null;\n\n\t\tthis.boneTexture = null;\n\n\t\tthis.init();\n\n\t}\n\n\tinit() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tthis.boneMatrices = new Float32Array( bones.length * 16 );\n\n\t\t// calculate inverse bone matrices if necessary\n\n\t\tif ( boneInverses.length === 0 ) {\n\n\t\t\tthis.calculateInverses();\n\n\t\t} else {\n\n\t\t\t// handle special case\n\n\t\t\tif ( bones.length !== boneInverses.length ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.' );\n\n\t\t\t\tthis.boneInverses = [];\n\n\t\t\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\t\t\tthis.boneInverses.push( new Matrix4() );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcalculateInverses() {\n\n\t\tthis.boneInverses.length = 0;\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst inverse = new Matrix4();\n\n\t\t\tif ( this.bones[ i ] ) {\n\n\t\t\t\tinverse.copy( this.bones[ i ].matrixWorld ).invert();\n\n\t\t\t}\n\n\t\t\tthis.boneInverses.push( inverse );\n\n\t\t}\n\n\t}\n\n\tpose() {\n\n\t\t// recover the bind-time world matrices\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tbone.matrixWorld.copy( this.boneInverses[ i ] ).invert();\n\n\t\t\t}\n\n\t\t}\n\n\t\t// compute the local matrices, positions, rotations and scales\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t\tbone.matrix.copy( bone.parent.matrixWorld ).invert();\n\t\t\t\t\tbone.matrix.multiply( bone.matrixWorld );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbone.matrix.copy( bone.matrixWorld );\n\n\t\t\t\t}\n\n\t\t\t\tbone.matrix.decompose( bone.position, bone.quaternion, bone.scale );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdate() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\t\tconst boneMatrices = this.boneMatrices;\n\t\tconst boneTexture = this.boneTexture;\n\n\t\t// flatten bone matrices to array\n\n\t\tfor ( let i = 0, il = bones.length; i < il; i ++ ) {\n\n\t\t\t// compute the offset between the current and the original transform\n\n\t\t\tconst matrix = bones[ i ] ? bones[ i ].matrixWorld : _identityMatrix;\n\n\t\t\t_offsetMatrix.multiplyMatrices( matrix, boneInverses[ i ] );\n\t\t\t_offsetMatrix.toArray( boneMatrices, i * 16 );\n\n\t\t}\n\n\t\tif ( boneTexture !== null ) {\n\n\t\t\tboneTexture.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new Skeleton( this.bones, this.boneInverses );\n\n\t}\n\n\tcomputeBoneTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this.bones.length * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = Math.ceil( size / 4 ) * 4;\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst boneMatrices = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tboneMatrices.set( this.boneMatrices ); // copy current values\n\n\t\tconst boneTexture = new DataTexture( boneMatrices, size, size, RGBAFormat, FloatType );\n\t\tboneTexture.needsUpdate = true;\n\n\t\tthis.boneMatrices = boneMatrices;\n\t\tthis.boneTexture = boneTexture;\n\n\t\treturn this;\n\n\t}\n\n\tgetBoneByName( name ) {\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone.name === name ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tdispose( ) {\n\n\t\tif ( this.boneTexture !== null ) {\n\n\t\t\tthis.boneTexture.dispose();\n\n\t\t\tthis.boneTexture = null;\n\n\t\t}\n\n\t}\n\n\tfromJSON( json, bones ) {\n\n\t\tthis.uuid = json.uuid;\n\n\t\tfor ( let i = 0, l = json.bones.length; i < l; i ++ ) {\n\n\t\t\tconst uuid = json.bones[ i ];\n\t\t\tlet bone = bones[ uuid ];\n\n\t\t\tif ( bone === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: No bone found with UUID:', uuid );\n\t\t\t\tbone = new Bone();\n\n\t\t\t}\n\n\t\t\tthis.bones.push( bone );\n\t\t\tthis.boneInverses.push( new Matrix4().fromArray( json.boneInverses[ i ] ) );\n\n\t\t}\n\n\t\tthis.init();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Skeleton',\n\t\t\t\tgenerator: 'Skeleton.toJSON'\n\t\t\t},\n\t\t\tbones: [],\n\t\t\tboneInverses: []\n\t\t};\n\n\t\tdata.uuid = this.uuid;\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tfor ( let i = 0, l = bones.length; i < l; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\t\t\tdata.bones.push( bone.uuid );\n\n\t\t\tconst boneInverse = boneInverses[ i ];\n\t\t\tdata.boneInverses.push( boneInverse.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InstancedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, itemSize, normalized );\n\n\t\tthis.isInstancedBufferAttribute = true;\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.meshPerAttribute = this.meshPerAttribute;\n\n\t\tdata.isInstancedBufferAttribute = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst _instanceLocalMatrix = /*@__PURE__*/ new Matrix4();\nconst _instanceWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _instanceIntersects = [];\n\nconst _box3 = /*@__PURE__*/ new Box3();\nconst _identity = /*@__PURE__*/ new Matrix4();\nconst _mesh$1 = /*@__PURE__*/ new Mesh();\nconst _sphere$3 = /*@__PURE__*/ new Sphere();\n\nclass InstancedMesh extends Mesh {\n\n\tconstructor( geometry, material, count ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isInstancedMesh = true;\n\n\t\tthis.instanceMatrix = new InstancedBufferAttribute( new Float32Array( count * 16 ), 16 );\n\t\tthis.instanceColor = null;\n\t\tthis.morphTexture = null;\n\n\t\tthis.count = count;\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.setMatrixAt( i, _identity );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst count = this.count;\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\tgeometry.computeBoundingBox();\n\n\t\t}\n\n\t\tthis.boundingBox.makeEmpty();\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.getMatrixAt( i, _instanceLocalMatrix );\n\n\t\t\t_box3.copy( geometry.boundingBox ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingBox.union( _box3 );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst count = this.count;\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tif ( geometry.boundingSphere === null ) {\n\n\t\t\tgeometry.computeBoundingSphere();\n\n\t\t}\n\n\t\tthis.boundingSphere.makeEmpty();\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.getMatrixAt( i, _instanceLocalMatrix );\n\n\t\t\t_sphere$3.copy( geometry.boundingSphere ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingSphere.union( _sphere$3 );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.instanceMatrix.copy( source.instanceMatrix );\n\n\t\tif ( source.morphTexture !== null ) this.morphTexture = source.morphTexture.clone();\n\t\tif ( source.instanceColor !== null ) this.instanceColor = source.instanceColor.clone();\n\n\t\tthis.count = source.count;\n\n\t\tif ( source.boundingBox !== null ) this.boundingBox = source.boundingBox.clone();\n\t\tif ( source.boundingSphere !== null ) this.boundingSphere = source.boundingSphere.clone();\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( index, color ) {\n\n\t\tcolor.fromArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tgetMatrixAt( index, matrix ) {\n\n\t\tmatrix.fromArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tgetMorphAt( index, object ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tconst array = this.morphTexture.source.data.data;\n\n\t\tconst len = objectInfluences.length + 1; // All influences + the baseInfluenceSum\n\n\t\tconst dataIndex = index * len + 1; // Skip the baseInfluenceSum at the beginning\n\n\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\tobjectInfluences[ i ] = array[ dataIndex + i ];\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst raycastTimes = this.count;\n\n\t\t_mesh$1.geometry = this.geometry;\n\t\t_mesh$1.material = this.material;\n\n\t\tif ( _mesh$1.material === undefined ) return;\n\n\t\t// test with bounding sphere first\n\n\t\tif ( this.boundingSphere === null ) this.computeBoundingSphere();\n\n\t\t_sphere$3.copy( this.boundingSphere );\n\t\t_sphere$3.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$3 ) === false ) return;\n\n\t\t// now test each instance\n\n\t\tfor ( let instanceId = 0; instanceId < raycastTimes; instanceId ++ ) {\n\n\t\t\t// calculate the world matrix for each instance\n\n\t\t\tthis.getMatrixAt( instanceId, _instanceLocalMatrix );\n\n\t\t\t_instanceWorldMatrix.multiplyMatrices( matrixWorld, _instanceLocalMatrix );\n\n\t\t\t// the mesh represents this single instance\n\n\t\t\t_mesh$1.matrixWorld = _instanceWorldMatrix;\n\n\t\t\t_mesh$1.raycast( raycaster, _instanceIntersects );\n\n\t\t\t// process the result of raycast\n\n\t\t\tfor ( let i = 0, l = _instanceIntersects.length; i < l; i ++ ) {\n\n\t\t\t\tconst intersect = _instanceIntersects[ i ];\n\t\t\t\tintersect.instanceId = instanceId;\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_instanceIntersects.length = 0;\n\n\t\t}\n\n\t}\n\n\tsetColorAt( index, color ) {\n\n\t\tif ( this.instanceColor === null ) {\n\n\t\t\tthis.instanceColor = new InstancedBufferAttribute( new Float32Array( this.instanceMatrix.count * 3 ).fill( 1 ), 3 );\n\n\t\t}\n\n\t\tcolor.toArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tsetMatrixAt( index, matrix ) {\n\n\t\tmatrix.toArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tsetMorphAt( index, object ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tconst len = objectInfluences.length + 1; // morphBaseInfluence + all influences\n\n\t\tif ( this.morphTexture === null ) {\n\n\t\t\tthis.morphTexture = new DataTexture( new Float32Array( len * this.count ), len, this.count, RedFormat, FloatType );\n\n\t\t}\n\n\t\tconst array = this.morphTexture.source.data.data;\n\n\t\tlet morphInfluencesSum = 0;\n\n\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t}\n\n\t\tconst morphBaseInfluence = this.geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\t\tconst dataIndex = len * index;\n\n\t\tarray[ dataIndex ] = morphBaseInfluence;\n\n\t\tarray.set( objectInfluences, dataIndex + 1 );\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t\tif ( this.morphTexture !== null ) {\n\n\t\t\tthis.morphTexture.dispose();\n\t\t\tthis.morphTexture = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction ascIdSort( a, b ) {\n\n\treturn a - b;\n\n}\n\nfunction sortOpaque( a, b ) {\n\n\treturn a.z - b.z;\n\n}\n\nfunction sortTransparent( a, b ) {\n\n\treturn b.z - a.z;\n\n}\n\nclass MultiDrawRenderList {\n\n\tconstructor() {\n\n\t\tthis.index = 0;\n\t\tthis.pool = [];\n\t\tthis.list = [];\n\n\t}\n\n\tpush( start, count, z, index ) {\n\n\t\tconst pool = this.pool;\n\t\tconst list = this.list;\n\t\tif ( this.index >= pool.length ) {\n\n\t\t\tpool.push( {\n\n\t\t\t\tstart: - 1,\n\t\t\t\tcount: - 1,\n\t\t\t\tz: - 1,\n\t\t\t\tindex: - 1,\n\n\t\t\t} );\n\n\t\t}\n\n\t\tconst item = pool[ this.index ];\n\t\tlist.push( item );\n\t\tthis.index ++;\n\n\t\titem.start = start;\n\t\titem.count = count;\n\t\titem.z = z;\n\t\titem.index = index;\n\n\t}\n\n\treset() {\n\n\t\tthis.list.length = 0;\n\t\tthis.index = 0;\n\n\t}\n\n}\n\nconst _matrix$1 = /*@__PURE__*/ new Matrix4();\nconst _whiteColor = /*@__PURE__*/ new Color( 1, 1, 1 );\nconst _frustum = /*@__PURE__*/ new Frustum();\nconst _box$1 = /*@__PURE__*/ new Box3();\nconst _sphere$2 = /*@__PURE__*/ new Sphere();\nconst _vector$5 = /*@__PURE__*/ new Vector3();\nconst _forward = /*@__PURE__*/ new Vector3();\nconst _temp = /*@__PURE__*/ new Vector3();\nconst _renderList = /*@__PURE__*/ new MultiDrawRenderList();\nconst _mesh = /*@__PURE__*/ new Mesh();\nconst _batchIntersects = [];\n\n// copies data from attribute \"src\" into \"target\" starting at \"targetOffset\"\nfunction copyAttributeData( src, target, targetOffset = 0 ) {\n\n\tconst itemSize = target.itemSize;\n\tif ( src.isInterleavedBufferAttribute || src.array.constructor !== target.array.constructor ) {\n\n\t\t// use the component getters and setters if the array data cannot\n\t\t// be copied directly\n\t\tconst vertexCount = src.count;\n\t\tfor ( let i = 0; i < vertexCount; i ++ ) {\n\n\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\ttarget.setComponent( i + targetOffset, c, src.getComponent( i, c ) );\n\n\t\t\t}\n\n\t\t}\n\n\t} else {\n\n\t\t// faster copy approach using typed array set function\n\t\ttarget.array.set( src.array, targetOffset * itemSize );\n\n\t}\n\n\ttarget.needsUpdate = true;\n\n}\n\n// safely copies array contents to a potentially smaller array\nfunction copyArrayContents( src, target ) {\n\n\tif ( src.constructor !== target.constructor ) {\n\n\t\t// if arrays are of a different type (eg due to index size increasing) then data must be per-element copied\n\t\tconst len = Math.min( src.length, target.length );\n\t\tfor ( let i = 0; i < len; i ++ ) {\n\n\t\t\ttarget[ i ] = src[ i ];\n\n\t\t}\n\n\t} else {\n\n\t\t// if the arrays use the same data layout we can use a fast block copy\n\t\tconst len = Math.min( src.length, target.length );\n\t\ttarget.set( new src.constructor( src.buffer, 0, len ) );\n\n\t}\n\n}\n\nclass BatchedMesh extends Mesh {\n\n\tget maxInstanceCount() {\n\n\t\treturn this._maxInstanceCount;\n\n\t}\n\n\tget instanceCount() {\n\n\t\treturn this._instanceInfo.length - this._availableInstanceIds.length;\n\n\t}\n\n\tget unusedVertexCount() {\n\n\t\treturn this._maxVertexCount - this._nextVertexStart;\n\n\t}\n\n\tget unusedIndexCount() {\n\n\t\treturn this._maxIndexCount - this._nextIndexStart;\n\n\t}\n\n\tconstructor( maxInstanceCount, maxVertexCount, maxIndexCount = maxVertexCount * 2, material ) {\n\n\t\tsuper( new BufferGeometry(), material );\n\n\t\tthis.isBatchedMesh = true;\n\t\tthis.perObjectFrustumCulled = true;\n\t\tthis.sortObjects = true;\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\t\tthis.customSort = null;\n\n\t\t// stores visible, active, and geometry id per instance and reserved buffer ranges for geometries\n\t\tthis._instanceInfo = [];\n\t\tthis._geometryInfo = [];\n\n\t\t// instance, geometry ids that have been set as inactive, and are available to be overwritten\n\t\tthis._availableInstanceIds = [];\n\t\tthis._availableGeometryIds = [];\n\n\t\t// used to track where the next point is that geometry should be inserted\n\t\tthis._nextIndexStart = 0;\n\t\tthis._nextVertexStart = 0;\n\t\tthis._geometryCount = 0;\n\n\t\t// flags\n\t\tthis._visibilityChanged = true;\n\t\tthis._geometryInitialized = false;\n\n\t\t// cached user options\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\t// buffers for multi draw\n\t\tthis._multiDrawCounts = new Int32Array( maxInstanceCount );\n\t\tthis._multiDrawStarts = new Int32Array( maxInstanceCount );\n\t\tthis._multiDrawCount = 0;\n\t\tthis._multiDrawInstances = null;\n\n\t\t// Local matrix per geometry by using data texture\n\t\tthis._matricesTexture = null;\n\t\tthis._indirectTexture = null;\n\t\tthis._colorsTexture = null;\n\n\t\tthis._initMatricesTexture();\n\t\tthis._initIndirectTexture();\n\n\t}\n\n\t_initMatricesTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 matrices * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 matrices * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 matrices * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 matrices * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = Math.ceil( size / 4 ) * 4;\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst matricesArray = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tconst matricesTexture = new DataTexture( matricesArray, size, size, RGBAFormat, FloatType );\n\n\t\tthis._matricesTexture = matricesTexture;\n\n\t}\n\n\t_initIndirectTexture() {\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount );\n\t\tsize = Math.ceil( size );\n\n\t\tconst indirectArray = new Uint32Array( size * size );\n\t\tconst indirectTexture = new DataTexture( indirectArray, size, size, RedIntegerFormat, UnsignedIntType );\n\n\t\tthis._indirectTexture = indirectTexture;\n\n\t}\n\n\t_initColorsTexture() {\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount );\n\t\tsize = Math.ceil( size );\n\n\t\t// 4 floats per RGBA pixel initialized to white\n\t\tconst colorsArray = new Float32Array( size * size * 4 ).fill( 1 );\n\t\tconst colorsTexture = new DataTexture( colorsArray, size, size, RGBAFormat, FloatType );\n\t\tcolorsTexture.colorSpace = ColorManagement.workingColorSpace;\n\n\t\tthis._colorsTexture = colorsTexture;\n\n\t}\n\n\t_initializeGeometry( reference ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst maxVertexCount = this._maxVertexCount;\n\t\tconst maxIndexCount = this._maxIndexCount;\n\t\tif ( this._geometryInitialized === false ) {\n\n\t\t\tfor ( const attributeName in reference.attributes ) {\n\n\t\t\t\tconst srcAttribute = reference.getAttribute( attributeName );\n\t\t\t\tconst { array, itemSize, normalized } = srcAttribute;\n\n\t\t\t\tconst dstArray = new array.constructor( maxVertexCount * itemSize );\n\t\t\t\tconst dstAttribute = new BufferAttribute( dstArray, itemSize, normalized );\n\n\t\t\t\tgeometry.setAttribute( attributeName, dstAttribute );\n\n\t\t\t}\n\n\t\t\tif ( reference.getIndex() !== null ) {\n\n\t\t\t\t// Reserve last u16 index for primitive restart.\n\t\t\t\tconst indexArray = maxVertexCount > 65535\n\t\t\t\t\t? new Uint32Array( maxIndexCount )\n\t\t\t\t\t: new Uint16Array( maxIndexCount );\n\n\t\t\t\tgeometry.setIndex( new BufferAttribute( indexArray, 1 ) );\n\n\t\t\t}\n\n\t\t\tthis._geometryInitialized = true;\n\n\t\t}\n\n\t}\n\n\t// Make sure the geometry is compatible with the existing combined geometry attributes\n\t_validateGeometry( geometry ) {\n\n\t\t// check to ensure the geometries are using consistent attributes and indices\n\t\tconst batchGeometry = this.geometry;\n\t\tif ( Boolean( geometry.getIndex() ) !== Boolean( batchGeometry.getIndex() ) ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: All geometries must consistently have \"index\".' );\n\n\t\t}\n\n\t\tfor ( const attributeName in batchGeometry.attributes ) {\n\n\t\t\tif ( ! geometry.hasAttribute( attributeName ) ) {\n\n\t\t\t\tthrow new Error( `BatchedMesh: Added geometry missing \"${ attributeName }\". All geometries must have consistent attributes.` );\n\n\t\t\t}\n\n\t\t\tconst srcAttribute = geometry.getAttribute( attributeName );\n\t\t\tconst dstAttribute = batchGeometry.getAttribute( attributeName );\n\t\t\tif ( srcAttribute.itemSize !== dstAttribute.itemSize || srcAttribute.normalized !== dstAttribute.normalized ) {\n\n\t\t\t\tthrow new Error( 'BatchedMesh: All attributes must have a consistent itemSize and normalized value.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tsetCustomSort( func ) {\n\n\t\tthis.customSort = func;\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst boundingBox = this.boundingBox;\n\t\tconst instanceInfo = this._instanceInfo;\n\n\t\tboundingBox.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\tthis.getBoundingBoxAt( geometryId, _box$1 ).applyMatrix4( _matrix$1 );\n\t\t\tboundingBox.union( _box$1 );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\t\tconst instanceInfo = this._instanceInfo;\n\n\t\tboundingSphere.makeEmpty();\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\t\t\tboundingSphere.union( _sphere$2 );\n\n\t\t}\n\n\t}\n\n\taddInstance( geometryId ) {\n\n\t\tconst atCapacity = this._instanceInfo.length >= this.maxInstanceCount;\n\n\t\t// ensure we're not over geometry\n\t\tif ( atCapacity && this._availableInstanceIds.length === 0 ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Maximum item count reached.' );\n\n\t\t}\n\n\t\tconst instanceInfo = {\n\t\t\tvisible: true,\n\t\t\tactive: true,\n\t\t\tgeometryIndex: geometryId,\n\t\t};\n\n\t\tlet drawId = null;\n\n\t\t// Prioritize using previously freed instance ids\n\t\tif ( this._availableInstanceIds.length > 0 ) {\n\n\t\t\tthis._availableInstanceIds.sort( ascIdSort );\n\n\t\t\tdrawId = this._availableInstanceIds.shift();\n\t\t\tthis._instanceInfo[ drawId ] = instanceInfo;\n\n\t\t} else {\n\n\t\t\tdrawId = this._instanceInfo.length;\n\t\t\tthis._instanceInfo.push( instanceInfo );\n\n\t\t}\n\n\t\tconst matricesTexture = this._matricesTexture;\n\t\t_matrix$1.identity().toArray( matricesTexture.image.data, drawId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\tconst colorsTexture = this._colorsTexture;\n\t\tif ( colorsTexture ) {\n\n\t\t\t_whiteColor.toArray( colorsTexture.image.data, drawId * 4 );\n\t\t\tcolorsTexture.needsUpdate = true;\n\n\t\t}\n\n\t\tthis._visibilityChanged = true;\n\t\treturn drawId;\n\n\t}\n\n\taddGeometry( geometry, reservedVertexCount = - 1, reservedIndexCount = - 1 ) {\n\n\t\tthis._initializeGeometry( geometry );\n\n\t\tthis._validateGeometry( geometry );\n\n\t\tconst geometryInfo = {\n\t\t\t// geometry information\n\t\t\tvertexStart: - 1,\n\t\t\tvertexCount: - 1,\n\t\t\treservedVertexCount: - 1,\n\n\t\t\tindexStart: - 1,\n\t\t\tindexCount: - 1,\n\t\t\treservedIndexCount: - 1,\n\n\t\t\t// draw range information\n\t\t\tstart: - 1,\n\t\t\tcount: - 1,\n\n\t\t\t// state\n\t\t\tboundingBox: null,\n\t\t\tboundingSphere: null,\n\t\t\tactive: true,\n\t\t};\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tgeometryInfo.vertexStart = this._nextVertexStart;\n\t\tgeometryInfo.reservedVertexCount = reservedVertexCount === - 1 ? geometry.getAttribute( 'position' ).count : reservedVertexCount;\n\n\t\tconst index = geometry.getIndex();\n\t\tconst hasIndex = index !== null;\n\t\tif ( hasIndex ) {\n\n\t\t\tgeometryInfo.indexStart = this._nextIndexStart;\n\t\t\tgeometryInfo.reservedIndexCount = reservedIndexCount === - 1 ? index.count : reservedIndexCount;\n\n\t\t}\n\n\t\tif (\n\t\t\tgeometryInfo.indexStart !== - 1 &&\n\t\t\tgeometryInfo.indexStart + geometryInfo.reservedIndexCount > this._maxIndexCount ||\n\t\t\tgeometryInfo.vertexStart + geometryInfo.reservedVertexCount > this._maxVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Reserved space request exceeds the maximum buffer size.' );\n\n\t\t}\n\n\t\t// update id\n\t\tlet geometryId;\n\t\tif ( this._availableGeometryIds.length > 0 ) {\n\n\t\t\tthis._availableGeometryIds.sort( ascIdSort );\n\n\t\t\tgeometryId = this._availableGeometryIds.shift();\n\t\t\tgeometryInfoList[ geometryId ] = geometryInfo;\n\n\n\t\t} else {\n\n\t\t\tgeometryId = this._geometryCount;\n\t\t\tthis._geometryCount ++;\n\t\t\tgeometryInfoList.push( geometryInfo );\n\n\t\t}\n\n\t\t// update the geometry\n\t\tthis.setGeometryAt( geometryId, geometry );\n\n\t\t// increment the next geometry position\n\t\tthis._nextIndexStart = geometryInfo.indexStart + geometryInfo.reservedIndexCount;\n\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\treturn geometryId;\n\n\t}\n\n\tsetGeometryAt( geometryId, geometry ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Maximum geometry count reached.' );\n\n\t\t}\n\n\t\tthis._validateGeometry( geometry );\n\n\t\tconst batchGeometry = this.geometry;\n\t\tconst hasIndex = batchGeometry.getIndex() !== null;\n\t\tconst dstIndex = batchGeometry.getIndex();\n\t\tconst srcIndex = geometry.getIndex();\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif (\n\t\t\thasIndex &&\n\t\t\tsrcIndex.count > geometryInfo.reservedIndexCount ||\n\t\t\tgeometry.attributes.position.count > geometryInfo.reservedVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Reserved space not large enough for provided geometry.' );\n\n\t\t}\n\n\t\t// copy geometry buffer data over\n\t\tconst vertexStart = geometryInfo.vertexStart;\n\t\tconst reservedVertexCount = geometryInfo.reservedVertexCount;\n\t\tgeometryInfo.vertexCount = geometry.getAttribute( 'position' ).count;\n\n\t\tfor ( const attributeName in batchGeometry.attributes ) {\n\n\t\t\t// copy attribute data\n\t\t\tconst srcAttribute = geometry.getAttribute( attributeName );\n\t\t\tconst dstAttribute = batchGeometry.getAttribute( attributeName );\n\t\t\tcopyAttributeData( srcAttribute, dstAttribute, vertexStart );\n\n\t\t\t// fill the rest in with zeroes\n\t\t\tconst itemSize = srcAttribute.itemSize;\n\t\t\tfor ( let i = srcAttribute.count, l = reservedVertexCount; i < l; i ++ ) {\n\n\t\t\t\tconst index = vertexStart + i;\n\t\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\t\tdstAttribute.setComponent( index, c, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tdstAttribute.needsUpdate = true;\n\t\t\tdstAttribute.addUpdateRange( vertexStart * itemSize, reservedVertexCount * itemSize );\n\n\t\t}\n\n\t\t// copy index\n\t\tif ( hasIndex ) {\n\n\t\t\tconst indexStart = geometryInfo.indexStart;\n\t\t\tconst reservedIndexCount = geometryInfo.reservedIndexCount;\n\t\t\tgeometryInfo.indexCount = geometry.getIndex().count;\n\n\t\t\t// copy index data over\n\t\t\tfor ( let i = 0; i < srcIndex.count; i ++ ) {\n\n\t\t\t\tdstIndex.setX( indexStart + i, vertexStart + srcIndex.getX( i ) );\n\n\t\t\t}\n\n\t\t\t// fill the rest in with zeroes\n\t\t\tfor ( let i = srcIndex.count, l = reservedIndexCount; i < l; i ++ ) {\n\n\t\t\t\tdstIndex.setX( indexStart + i, vertexStart );\n\n\t\t\t}\n\n\t\t\tdstIndex.needsUpdate = true;\n\t\t\tdstIndex.addUpdateRange( indexStart, geometryInfo.reservedIndexCount );\n\n\t\t}\n\n\t\t// update the draw range\n\t\tgeometryInfo.start = hasIndex ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\t\tgeometryInfo.count = hasIndex ? geometryInfo.indexCount : geometryInfo.vertexCount;\n\n\t\t// store the bounding boxes\n\t\tgeometryInfo.boundingBox = null;\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tgeometryInfo.boundingBox = geometry.boundingBox.clone();\n\n\t\t}\n\n\t\tgeometryInfo.boundingSphere = null;\n\t\tif ( geometry.boundingSphere !== null ) {\n\n\t\t\tgeometryInfo.boundingSphere = geometry.boundingSphere.clone();\n\n\t\t}\n\n\t\tthis._visibilityChanged = true;\n\t\treturn geometryId;\n\n\t}\n\n\tdeleteGeometry( geometryId ) {\n\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t// delete any instances associated with this geometry\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( instanceInfo[ i ].geometryIndex === geometryId ) {\n\n\t\t\t\tthis.deleteInstance( i );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometryInfoList[ geometryId ].active = false;\n\t\tthis._availableGeometryIds.push( geometryId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteInstance( instanceId ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tinstanceInfo[ instanceId ].active = false;\n\t\tthis._availableInstanceIds.push( instanceId );\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\toptimize() {\n\n\t\t// track the next indices to copy data to\n\t\tlet nextVertexStart = 0;\n\t\tlet nextIndexStart = 0;\n\n\t\t// Iterate over all geometry ranges in order sorted from earliest in the geometry buffer to latest\n\t\t// in the geometry buffer. Because draw range objects can be reused there is no guarantee of their order.\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst indices = geometryInfoList\n\t\t\t.map( ( e, i ) => i )\n\t\t\t.sort( ( a, b ) => {\n\n\t\t\t\treturn geometryInfoList[ a ].vertexStart - geometryInfoList[ b ].vertexStart;\n\n\t\t\t} );\n\n\t\tconst geometry = this.geometry;\n\t\tfor ( let i = 0, l = geometryInfoList.length; i < l; i ++ ) {\n\n\t\t\t// if a geometry range is inactive then don't copy anything\n\t\t\tconst index = indices[ i ];\n\t\t\tconst geometryInfo = geometryInfoList[ index ];\n\t\t\tif ( geometryInfo.active === false ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// if a geometry contains an index buffer then shift it, as well\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\tif ( geometryInfo.indexStart !== nextIndexStart ) {\n\n\t\t\t\t\tconst { indexStart, vertexStart, reservedIndexCount } = geometryInfo;\n\t\t\t\t\tconst index = geometry.index;\n\t\t\t\t\tconst array = index.array;\n\n\t\t\t\t\t// shift the index pointers based on how the vertex data will shift\n\t\t\t\t\t// adjusting the index must happen first so the original vertex start value is available\n\t\t\t\t\tconst elementDelta = nextVertexStart - vertexStart;\n\t\t\t\t\tfor ( let j = indexStart; j < indexStart + reservedIndexCount; j ++ ) {\n\n\t\t\t\t\t\tarray[ j ] = array[ j ] + elementDelta;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tindex.array.copyWithin( nextIndexStart, indexStart, indexStart + reservedIndexCount );\n\t\t\t\t\tindex.addUpdateRange( nextIndexStart, reservedIndexCount );\n\n\t\t\t\t\tgeometryInfo.indexStart = nextIndexStart;\n\n\t\t\t\t}\n\n\t\t\t\tnextIndexStart += geometryInfo.reservedIndexCount;\n\n\t\t\t}\n\n\t\t\t// if a geometry needs to be moved then copy attribute data to overwrite unused space\n\t\t\tif ( geometryInfo.vertexStart !== nextVertexStart ) {\n\n\t\t\t\tconst { vertexStart, reservedVertexCount } = geometryInfo;\n\t\t\t\tconst attributes = geometry.attributes;\n\t\t\t\tfor ( const key in attributes ) {\n\n\t\t\t\t\tconst attribute = attributes[ key ];\n\t\t\t\t\tconst { array, itemSize } = attribute;\n\t\t\t\t\tarray.copyWithin( nextVertexStart * itemSize, vertexStart * itemSize, ( vertexStart + reservedVertexCount ) * itemSize );\n\t\t\t\t\tattribute.addUpdateRange( nextVertexStart * itemSize, reservedVertexCount * itemSize );\n\n\t\t\t\t}\n\n\t\t\t\tgeometryInfo.vertexStart = nextVertexStart;\n\n\t\t\t}\n\n\t\t\tnextVertexStart += geometryInfo.reservedVertexCount;\n\t\t\tgeometryInfo.start = geometry.index ? geometryInfo.indexStart : geometryInfo.vertexStart;\n\n\t\t\t// step the next geometry points to the shifted position\n\t\t\tthis._nextIndexStart = geometry.index ? geometryInfo.indexStart + geometryInfo.reservedIndexCount : 0;\n\t\t\tthis._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// get bounding box and compute it if it doesn't exist\n\tgetBoundingBoxAt( geometryId, target ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// compute bounding box\n\t\tconst geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingBox === null ) {\n\n\t\t\tconst box = new Box3();\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.count; i < l; i ++ ) {\n\n\t\t\t\tlet iv = i;\n\t\t\t\tif ( index ) {\n\n\t\t\t\t\tiv = index.getX( iv );\n\n\t\t\t\t}\n\n\t\t\t\tbox.expandByPoint( _vector$5.fromBufferAttribute( position, iv ) );\n\n\t\t\t}\n\n\t\t\tgeometryInfo.boundingBox = box;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingBox );\n\t\treturn target;\n\n\t}\n\n\t// get bounding sphere and compute it if it doesn't exist\n\tgetBoundingSphereAt( geometryId, target ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// compute bounding sphere\n\t\tconst geometry = this.geometry;\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\tif ( geometryInfo.boundingSphere === null ) {\n\n\t\t\tconst sphere = new Sphere();\n\t\t\tthis.getBoundingBoxAt( geometryId, _box$1 );\n\t\t\t_box$1.getCenter( sphere.center );\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\n\t\t\tlet maxRadiusSq = 0;\n\t\t\tfor ( let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.count; i < l; i ++ ) {\n\n\t\t\t\tlet iv = i;\n\t\t\t\tif ( index ) {\n\n\t\t\t\t\tiv = index.getX( iv );\n\n\t\t\t\t}\n\n\t\t\t\t_vector$5.fromBufferAttribute( position, iv );\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, sphere.center.distanceToSquared( _vector$5 ) );\n\n\t\t\t}\n\n\t\t\tsphere.radius = Math.sqrt( maxRadiusSq );\n\t\t\tgeometryInfo.boundingSphere = sphere;\n\n\t\t}\n\n\t\ttarget.copy( geometryInfo.boundingSphere );\n\t\treturn target;\n\n\t}\n\n\tsetMatrixAt( instanceId, matrix ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst matricesArray = this._matricesTexture.image.data;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tmatrix.toArray( matricesArray, instanceId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetMatrixAt( instanceId, matrix ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst matricesArray = this._matricesTexture.image.data;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn matrix.fromArray( matricesArray, instanceId * 16 );\n\n\t}\n\n\tsetColorAt( instanceId, color ) {\n\n\t\tif ( this._colorsTexture === null ) {\n\n\t\t\tthis._initColorsTexture();\n\n\t\t}\n\n\t\tconst colorsTexture = this._colorsTexture;\n\t\tconst colorsArray = this._colorsTexture.image.data;\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tcolor.toArray( colorsArray, instanceId * 4 );\n\t\tcolorsTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( instanceId, color ) {\n\n\t\tconst colorsArray = this._colorsTexture.image.data;\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn color.fromArray( colorsArray, instanceId * 4 );\n\n\t}\n\n\tsetVisibleAt( instanceId, value ) {\n\n\t\t// if the geometry is out of range, not active, or visibility state\n\t\t// does not change then return early\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif (\n\t\t\tinstanceId >= instanceInfo.length ||\n\t\t\tinstanceInfo[ instanceId ].active === false ||\n\t\t\tinstanceInfo[ instanceId ].visible === value\n\t\t) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tinstanceInfo[ instanceId ].visible = value;\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetVisibleAt( instanceId ) {\n\n\t\t// return early if the geometry is out of range or not active\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn instanceInfo[ instanceId ].visible;\n\n\t}\n\n\tsetGeometryIdAt( instanceId, geometryId ) {\n\n\t\t// return early if the geometry is out of range or not active\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// check if the provided geometryId is within the valid range\n\t\tif ( geometryId >= geometryInfoList.length || geometryInfoList[ geometryId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tinstanceInfo[ instanceId ].geometryIndex = geometryId;\n\n\t\treturn this;\n\n\t}\n\n\tgetGeometryIdAt( instanceId ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tif ( instanceId >= instanceInfo.length || instanceInfo[ instanceId ].active === false ) {\n\n\t\t\treturn - 1;\n\n\t\t}\n\n\t\treturn instanceInfo[ instanceId ].geometryIndex;\n\n\t}\n\n\tgetGeometryRangeAt( geometryId, target = {} ) {\n\n\t\tif ( geometryId < 0 || geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst geometryInfo = this._geometryInfo[ geometryId ];\n\t\ttarget.vertexStart = geometryInfo.vertexStart;\n\t\ttarget.vertexCount = geometryInfo.vertexCount;\n\t\ttarget.reservedVertexCount = geometryInfo.reservedVertexCount;\n\n\t\ttarget.indexStart = geometryInfo.indexStart;\n\t\ttarget.indexCount = geometryInfo.indexCount;\n\t\ttarget.reservedIndexCount = geometryInfo.reservedIndexCount;\n\n\t\ttarget.start = geometryInfo.start;\n\t\ttarget.count = geometryInfo.count;\n\n\t\treturn target;\n\n\t}\n\n\tsetInstanceCount( maxInstanceCount ) {\n\n\t\t// shrink the available instances as much as possible\n\t\tconst availableInstanceIds = this._availableInstanceIds;\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tavailableInstanceIds.sort( ascIdSort );\n\t\twhile ( availableInstanceIds[ availableInstanceIds.length - 1 ] === instanceInfo.length ) {\n\n\t\t\tinstanceInfo.pop();\n\t\t\tavailableInstanceIds.pop();\n\n\t\t}\n\n\t\t// throw an error if it can't be shrunk to the desired size\n\t\tif ( maxInstanceCount < instanceInfo.length ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Instance ids outside the range ${ maxInstanceCount } are being used. Cannot shrink instance count.` );\n\n\t\t}\n\n\t\t// copy the multi draw counts\n\t\tconst multiDrawCounts = new Int32Array( maxInstanceCount );\n\t\tconst multiDrawStarts = new Int32Array( maxInstanceCount );\n\t\tcopyArrayContents( this._multiDrawCounts, multiDrawCounts );\n\t\tcopyArrayContents( this._multiDrawStarts, multiDrawStarts );\n\n\t\tthis._multiDrawCounts = multiDrawCounts;\n\t\tthis._multiDrawStarts = multiDrawStarts;\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\n\t\t// update texture data for instance sampling\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst colorsTexture = this._colorsTexture;\n\n\t\tindirectTexture.dispose();\n\t\tthis._initIndirectTexture();\n\t\tcopyArrayContents( indirectTexture.image.data, this._indirectTexture.image.data );\n\n\t\tmatricesTexture.dispose();\n\t\tthis._initMatricesTexture();\n\t\tcopyArrayContents( matricesTexture.image.data, this._matricesTexture.image.data );\n\n\t\tif ( colorsTexture ) {\n\n\t\t\tcolorsTexture.dispose();\n\t\t\tthis._initColorsTexture();\n\t\t\tcopyArrayContents( colorsTexture.image.data, this._colorsTexture.image.data );\n\n\t\t}\n\n\t}\n\n\tsetGeometrySize( maxVertexCount, maxIndexCount ) {\n\n\t\t// Check if we can shrink to the requested vertex attribute size\n\t\tconst validRanges = [ ...this._geometryInfo ].filter( info => info.active );\n\t\tconst requiredVertexLength = Math.max( ...validRanges.map( range => range.vertexStart + range.reservedVertexCount ) );\n\t\tif ( requiredVertexLength > maxVertexCount ) {\n\n\t\t\tthrow new Error( `BatchedMesh: Geometry vertex values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t}\n\n\t\t// Check if we can shrink to the requested index attribute size\n\t\tif ( this.geometry.index ) {\n\n\t\t\tconst requiredIndexLength = Math.max( ...validRanges.map( range => range.indexStart + range.reservedIndexCount ) );\n\t\t\tif ( requiredIndexLength > maxIndexCount ) {\n\n\t\t\t\tthrow new Error( `BatchedMesh: Geometry index values are being used outside the range ${ maxIndexCount }. Cannot shrink further.` );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\t// dispose of the previous geometry\n\t\tconst oldGeometry = this.geometry;\n\t\toldGeometry.dispose();\n\n\t\t// recreate the geometry needed based on the previous variant\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\tif ( this._geometryInitialized ) {\n\n\t\t\tthis._geometryInitialized = false;\n\t\t\tthis.geometry = new BufferGeometry();\n\t\t\tthis._initializeGeometry( oldGeometry );\n\n\t\t}\n\n\t\t// copy data from the previous geometry\n\t\tconst geometry = this.geometry;\n\t\tif ( oldGeometry.index ) {\n\n\t\t\tcopyArrayContents( oldGeometry.index.array, geometry.index.array );\n\n\t\t}\n\n\t\tfor ( const key in oldGeometry.attributes ) {\n\n\t\t\tcopyArrayContents( oldGeometry.attributes[ key ].array, geometry.attributes[ key ].array );\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst batchGeometry = this.geometry;\n\n\t\t// iterate over each geometry\n\t\t_mesh.material = this.material;\n\t\t_mesh.geometry.index = batchGeometry.index;\n\t\t_mesh.geometry.attributes = batchGeometry.attributes;\n\t\tif ( _mesh.geometry.boundingBox === null ) {\n\n\t\t\t_mesh.geometry.boundingBox = new Box3();\n\n\t\t}\n\n\t\tif ( _mesh.geometry.boundingSphere === null ) {\n\n\t\t\t_mesh.geometry.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( ! instanceInfo[ i ].visible || ! instanceInfo[ i ].active ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t_mesh.geometry.setDrawRange( geometryInfo.start, geometryInfo.count );\n\n\t\t\t// get the intersects\n\t\t\tthis.getMatrixAt( i, _mesh.matrixWorld ).premultiply( matrixWorld );\n\t\t\tthis.getBoundingBoxAt( geometryId, _mesh.geometry.boundingBox );\n\t\t\tthis.getBoundingSphereAt( geometryId, _mesh.geometry.boundingSphere );\n\t\t\t_mesh.raycast( raycaster, _batchIntersects );\n\n\t\t\t// add batch id to the intersects\n\t\t\tfor ( let j = 0, l = _batchIntersects.length; j < l; j ++ ) {\n\n\t\t\t\tconst intersect = _batchIntersects[ j ];\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersect.batchId = i;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_batchIntersects.length = 0;\n\n\t\t}\n\n\t\t_mesh.material = null;\n\t\t_mesh.geometry.index = null;\n\t\t_mesh.geometry.attributes = {};\n\t\t_mesh.geometry.setDrawRange( 0, Infinity );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.geometry = source.geometry.clone();\n\t\tthis.perObjectFrustumCulled = source.perObjectFrustumCulled;\n\t\tthis.sortObjects = source.sortObjects;\n\t\tthis.boundingBox = source.boundingBox !== null ? source.boundingBox.clone() : null;\n\t\tthis.boundingSphere = source.boundingSphere !== null ? source.boundingSphere.clone() : null;\n\n\t\tthis._geometryInfo = source._geometryInfo.map( info => ( {\n\t\t\t...info,\n\n\t\t\tboundingBox: info.boundingBox !== null ? info.boundingBox.clone() : null,\n\t\t\tboundingSphere: info.boundingSphere !== null ? info.boundingSphere.clone() : null,\n\t\t} ) );\n\t\tthis._instanceInfo = source._instanceInfo.map( info => ( { ...info } ) );\n\n\t\tthis._maxInstanceCount = source._maxInstanceCount;\n\t\tthis._maxVertexCount = source._maxVertexCount;\n\t\tthis._maxIndexCount = source._maxIndexCount;\n\n\t\tthis._geometryInitialized = source._geometryInitialized;\n\t\tthis._geometryCount = source._geometryCount;\n\t\tthis._multiDrawCounts = source._multiDrawCounts.slice();\n\t\tthis._multiDrawStarts = source._multiDrawStarts.slice();\n\n\t\tthis._matricesTexture = source._matricesTexture.clone();\n\t\tthis._matricesTexture.image.data = this._matricesTexture.image.data.slice();\n\n\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\tthis._colorsTexture = source._colorsTexture.clone();\n\t\t\tthis._colorsTexture.image.data = this._colorsTexture.image.data.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\t// Assuming the geometry is not shared with other meshes\n\t\tthis.geometry.dispose();\n\n\t\tthis._matricesTexture.dispose();\n\t\tthis._matricesTexture = null;\n\n\t\tthis._indirectTexture.dispose();\n\t\tthis._indirectTexture = null;\n\n\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\tthis._colorsTexture.dispose();\n\t\t\tthis._colorsTexture = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tonBeforeRender( renderer, scene, camera, geometry, material/*, _group*/ ) {\n\n\t\t// if visibility has not changed and frustum culling and object sorting is not required\n\t\t// then skip iterating over all items\n\t\tif ( ! this._visibilityChanged && ! this.perObjectFrustumCulled && ! this.sortObjects ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// the indexed version of the multi draw function requires specifying the start\n\t\t// offset in bytes.\n\t\tconst index = geometry.getIndex();\n\t\tconst bytesPerElement = index === null ? 1 : index.array.BYTES_PER_ELEMENT;\n\n\t\tconst instanceInfo = this._instanceInfo;\n\t\tconst multiDrawStarts = this._multiDrawStarts;\n\t\tconst multiDrawCounts = this._multiDrawCounts;\n\t\tconst geometryInfoList = this._geometryInfo;\n\t\tconst perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst indirectArray = indirectTexture.image.data;\n\n\t\t// prepare the frustum in the local frame\n\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t_matrix$1\n\t\t\t\t.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse )\n\t\t\t\t.multiply( this.matrixWorld );\n\t\t\t_frustum.setFromProjectionMatrix(\n\t\t\t\t_matrix$1,\n\t\t\t\trenderer.coordinateSystem\n\t\t\t);\n\n\t\t}\n\n\t\tlet multiDrawCount = 0;\n\t\tif ( this.sortObjects ) {\n\n\t\t\t// get the camera position in the local frame\n\t\t\t_matrix$1.copy( this.matrixWorld ).invert();\n\t\t\t_vector$5.setFromMatrixPosition( camera.matrixWorld ).applyMatrix4( _matrix$1 );\n\t\t\t_forward.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld ).transformDirection( _matrix$1 );\n\n\t\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\n\t\t\t\t\t// get the bounds in world space\n\t\t\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\n\t\t\t\t\t// determine whether the batched geometry is within the frustum\n\t\t\t\t\tlet culled = false;\n\t\t\t\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t\t\t\tculled = ! _frustum.intersectsSphere( _sphere$2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\t// get the distance from camera used for sorting\n\t\t\t\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tconst z = _temp.subVectors( _sphere$2.center, _vector$5 ).dot( _forward );\n\t\t\t\t\t\t_renderList.push( geometryInfo.start, geometryInfo.count, z, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Sort the draw ranges and prep for rendering\n\t\t\tconst list = _renderList.list;\n\t\t\tconst customSort = this.customSort;\n\t\t\tif ( customSort === null ) {\n\n\t\t\t\tlist.sort( material.transparent ? sortTransparent : sortOpaque );\n\n\t\t\t} else {\n\n\t\t\t\tcustomSort.call( this, list, camera );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = list.length; i < l; i ++ ) {\n\n\t\t\t\tconst item = list[ i ];\n\t\t\t\tmultiDrawStarts[ multiDrawCount ] = item.start * bytesPerElement;\n\t\t\t\tmultiDrawCounts[ multiDrawCount ] = item.count;\n\t\t\t\tindirectArray[ multiDrawCount ] = item.index;\n\t\t\t\tmultiDrawCount ++;\n\n\t\t\t}\n\n\t\t\t_renderList.reset();\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( instanceInfo[ i ].visible && instanceInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = instanceInfo[ i ].geometryIndex;\n\n\t\t\t\t\t// determine whether the batched geometry is within the frustum\n\t\t\t\t\tlet culled = false;\n\t\t\t\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t\t\t\t// get the bounds in world space\n\t\t\t\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\t\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\t\t\t\t\t\tculled = ! _frustum.intersectsSphere( _sphere$2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\tconst geometryInfo = geometryInfoList[ geometryId ];\n\t\t\t\t\t\tmultiDrawStarts[ multiDrawCount ] = geometryInfo.start * bytesPerElement;\n\t\t\t\t\t\tmultiDrawCounts[ multiDrawCount ] = geometryInfo.count;\n\t\t\t\t\t\tindirectArray[ multiDrawCount ] = i;\n\t\t\t\t\t\tmultiDrawCount ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tindirectTexture.needsUpdate = true;\n\t\tthis._multiDrawCount = multiDrawCount;\n\t\tthis._visibilityChanged = false;\n\n\t}\n\n\tonBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial/* , group */ ) {\n\n\t\tthis.onBeforeRender( renderer, null, shadowCamera, geometry, depthMaterial );\n\n\t}\n\n}\n\nclass LineBasicMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'LineBasicMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isLineBasicMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.linewidth = 1;\n\t\tthis.linecap = 'round';\n\t\tthis.linejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.linewidth = source.linewidth;\n\t\tthis.linecap = source.linecap;\n\t\tthis.linejoin = source.linejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vStart = /*@__PURE__*/ new Vector3();\nconst _vEnd = /*@__PURE__*/ new Vector3();\n\nconst _inverseMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _ray$1 = /*@__PURE__*/ new Ray();\nconst _sphere$1 = /*@__PURE__*/ new Sphere();\n\nconst _intersectPointOnRay = /*@__PURE__*/ new Vector3();\nconst _intersectPointOnSegment = /*@__PURE__*/ new Vector3();\n\nclass Line extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isLine = true;\n\n\t\tthis.type = 'Line';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [ 0 ];\n\n\t\t\tfor ( let i = 1, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t_vStart.fromBufferAttribute( positionAttribute, i - 1 );\n\t\t\t\t_vEnd.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\tlineDistances[ i ] = lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i ] += _vStart.distanceTo( _vEnd );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Line.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$1.copy( geometry.boundingSphere );\n\t\t_sphere$1.applyMatrix4( matrixWorld );\n\t\t_sphere$1.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$1 ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix$1.copy( matrixWorld ).invert();\n\t\t_ray$1.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$1 );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst step = this.isLineSegments ? 2 : 1;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst a = index.getX( i );\n\t\t\t\tconst b = index.getX( i + 1 );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst a = index.getX( end - 1 );\n\t\t\t\tconst b = index.getX( start );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1 );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {\n\n\tconst positionAttribute = object.geometry.attributes.position;\n\n\t_vStart.fromBufferAttribute( positionAttribute, a );\n\t_vEnd.fromBufferAttribute( positionAttribute, b );\n\n\tconst distSq = ray.distanceSqToSegment( _vStart, _vEnd, _intersectPointOnRay, _intersectPointOnSegment );\n\n\tif ( distSq > thresholdSq ) return;\n\n\t_intersectPointOnRay.applyMatrix4( object.matrixWorld ); // Move back to world space for distance calculation\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectPointOnRay );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\treturn {\n\n\t\tdistance: distance,\n\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t// point: raycaster.ray.at( distance ),\n\t\tpoint: _intersectPointOnSegment.clone().applyMatrix4( object.matrixWorld ),\n\t\tindex: a,\n\t\tface: null,\n\t\tfaceIndex: null,\n\t\tbarycoord: null,\n\t\tobject: object\n\n\t};\n\n}\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\nclass LineSegments extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isLineSegments = true;\n\n\t\tthis.type = 'LineSegments';\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [];\n\n\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i += 2 ) {\n\n\t\t\t\t_start.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t_end.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\tlineDistances[ i ] = ( i === 0 ) ? 0 : lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i + 1 ] = lineDistances[ i ] + _start.distanceTo( _end );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineLoop extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isLineLoop = true;\n\n\t\tthis.type = 'LineLoop';\n\n\t}\n\n}\n\nclass PointsMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'PointsMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isPointsMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.size = 1;\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.size = source.size;\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _inverseMatrix = /*@__PURE__*/ new Matrix4();\nconst _ray = /*@__PURE__*/ new Ray();\nconst _sphere = /*@__PURE__*/ new Sphere();\nconst _position$2 = /*@__PURE__*/ new Vector3();\n\nclass Points extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new PointsMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isPoints = true;\n\n\t\tthis.type = 'Points';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Points.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere.copy( geometry.boundingSphere );\n\t\t_sphere.applyMatrix4( matrixWorld );\n\t\t_sphere.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix.copy( matrixWorld ).invert();\n\t\t_ray.copy( raycaster.ray ).applyMatrix4( _inverseMatrix );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, il = end; i < il; i ++ ) {\n\n\t\t\t\tconst a = index.getX( i );\n\n\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, a );\n\n\t\t\t\ttestPoint( _position$2, a, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end; i < l; i ++ ) {\n\n\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\ttestPoint( _position$2, i, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction testPoint( point, index, localThresholdSq, matrixWorld, raycaster, intersects, object ) {\n\n\tconst rayPointDistanceSq = _ray.distanceSqToPoint( point );\n\n\tif ( rayPointDistanceSq < localThresholdSq ) {\n\n\t\tconst intersectPoint = new Vector3();\n\n\t\t_ray.closestPointToPoint( point, intersectPoint );\n\t\tintersectPoint.applyMatrix4( matrixWorld );\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tdistanceToRay: Math.sqrt( rayPointDistanceSq ),\n\t\t\tpoint: intersectPoint,\n\t\t\tindex: index,\n\t\t\tface: null,\n\t\t\tfaceIndex: null,\n\t\t\tbarycoord: null,\n\t\t\tobject: object\n\n\t\t} );\n\n\t}\n\n}\n\nclass VideoTexture extends Texture {\n\n\tconstructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isVideoTexture = true;\n\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : LinearFilter;\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tconst scope = this;\n\n\t\tfunction updateVideo() {\n\n\t\t\tscope.needsUpdate = true;\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t\tif ( 'requestVideoFrameCallback' in video ) {\n\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.image ).copy( this );\n\n\t}\n\n\tupdate() {\n\n\t\tconst video = this.image;\n\t\tconst hasVideoFrameCallback = 'requestVideoFrameCallback' in video;\n\n\t\tif ( hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA ) {\n\n\t\t\tthis.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n}\n\nclass FramebufferTexture extends Texture {\n\n\tconstructor( width, height ) {\n\n\t\tsuper( { width, height } );\n\n\t\tthis.isFramebufferTexture = true;\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\nclass CompressedTexture extends Texture {\n\n\tconstructor( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCompressedTexture = true;\n\n\t\tthis.image = { width: width, height: height };\n\t\tthis.mipmaps = mipmaps;\n\n\t\t// no flipping for cube textures\n\t\t// (also flipping doesn't work for compressed textures )\n\n\t\tthis.flipY = false;\n\n\t\t// can't generate mipmaps for compressed textures\n\t\t// mips must be embedded in DDS files\n\n\t\tthis.generateMipmaps = false;\n\n\t}\n\n}\n\nclass CompressedArrayTexture extends CompressedTexture {\n\n\tconstructor( mipmaps, width, height, depth, format, type ) {\n\n\t\tsuper( mipmaps, width, height, format, type );\n\n\t\tthis.isCompressedArrayTexture = true;\n\t\tthis.image.depth = depth;\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\nclass CompressedCubeTexture extends CompressedTexture {\n\n\tconstructor( images, format, type ) {\n\n\t\tsuper( undefined, images[ 0 ].width, images[ 0 ].height, format, type, CubeReflectionMapping );\n\n\t\tthis.isCompressedCubeTexture = true;\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.image = images;\n\n\t}\n\n}\n\nclass CanvasTexture extends Texture {\n\n\tconstructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isCanvasTexture = true;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\n/**\n * Extensible curve object.\n *\n * Some common of curve methods:\n * .getPoint( t, optionalTarget ), .getTangent( t, optionalTarget )\n * .getPointAt( u, optionalTarget ), .getTangentAt( u, optionalTarget )\n * .getPoints(), .getSpacedPoints()\n * .getLength()\n * .updateArcLengths()\n *\n * This following curves inherit from THREE.Curve:\n *\n * -- 2D curves --\n * THREE.ArcCurve\n * THREE.CubicBezierCurve\n * THREE.EllipseCurve\n * THREE.LineCurve\n * THREE.QuadraticBezierCurve\n * THREE.SplineCurve\n *\n * -- 3D curves --\n * THREE.CatmullRomCurve3\n * THREE.CubicBezierCurve3\n * THREE.LineCurve3\n * THREE.QuadraticBezierCurve3\n *\n * A series of curves can be represented as a THREE.CurvePath.\n *\n **/\n\nclass Curve {\n\n\tconstructor() {\n\n\t\tthis.type = 'Curve';\n\n\t\tthis.arcLengthDivisions = 200;\n\n\t}\n\n\t// Virtual base class method to overwrite and implement in subclasses\n\t//\t- t [0 .. 1]\n\n\tgetPoint( /* t, optionalTarget */ ) {\n\n\t\tconsole.warn( 'THREE.Curve: .getPoint() not implemented.' );\n\t\treturn null;\n\n\t}\n\n\t// Get point at relative position in curve according to arc length\n\t// - u [0 .. 1]\n\n\tgetPointAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getPoint( t, optionalTarget );\n\n\t}\n\n\t// Get sequence of points using getPoint( t )\n\n\tgetPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPoint( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get sequence of points using getPointAt( u )\n\n\tgetSpacedPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPointAt( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get total curve arc length\n\n\tgetLength() {\n\n\t\tconst lengths = this.getLengths();\n\t\treturn lengths[ lengths.length - 1 ];\n\n\t}\n\n\t// Get list of cumulative segment lengths\n\n\tgetLengths( divisions = this.arcLengthDivisions ) {\n\n\t\tif ( this.cacheArcLengths &&\n\t\t\t( this.cacheArcLengths.length === divisions + 1 ) &&\n\t\t\t! this.needsUpdate ) {\n\n\t\t\treturn this.cacheArcLengths;\n\n\t\t}\n\n\t\tthis.needsUpdate = false;\n\n\t\tconst cache = [];\n\t\tlet current, last = this.getPoint( 0 );\n\t\tlet sum = 0;\n\n\t\tcache.push( 0 );\n\n\t\tfor ( let p = 1; p <= divisions; p ++ ) {\n\n\t\t\tcurrent = this.getPoint( p / divisions );\n\t\t\tsum += current.distanceTo( last );\n\t\t\tcache.push( sum );\n\t\t\tlast = current;\n\n\t\t}\n\n\t\tthis.cacheArcLengths = cache;\n\n\t\treturn cache; // { sums: cache, sum: sum }; Sum is in the last element.\n\n\t}\n\n\tupdateArcLengths() {\n\n\t\tthis.needsUpdate = true;\n\t\tthis.getLengths();\n\n\t}\n\n\t// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n\n\tgetUtoTmapping( u, distance ) {\n\n\t\tconst arcLengths = this.getLengths();\n\n\t\tlet i = 0;\n\t\tconst il = arcLengths.length;\n\n\t\tlet targetArcLength; // The targeted u distance value to get\n\n\t\tif ( distance ) {\n\n\t\t\ttargetArcLength = distance;\n\n\t\t} else {\n\n\t\t\ttargetArcLength = u * arcLengths[ il - 1 ];\n\n\t\t}\n\n\t\t// binary search for the index with largest value smaller than target u distance\n\n\t\tlet low = 0, high = il - 1, comparison;\n\n\t\twhile ( low <= high ) {\n\n\t\t\ti = Math.floor( low + ( high - low ) / 2 ); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\n\n\t\t\tcomparison = arcLengths[ i ] - targetArcLength;\n\n\t\t\tif ( comparison < 0 ) {\n\n\t\t\t\tlow = i + 1;\n\n\t\t\t} else if ( comparison > 0 ) {\n\n\t\t\t\thigh = i - 1;\n\n\t\t\t} else {\n\n\t\t\t\thigh = i;\n\t\t\t\tbreak;\n\n\t\t\t\t// DONE\n\n\t\t\t}\n\n\t\t}\n\n\t\ti = high;\n\n\t\tif ( arcLengths[ i ] === targetArcLength ) {\n\n\t\t\treturn i / ( il - 1 );\n\n\t\t}\n\n\t\t// we could get finer grain at lengths, or use simple interpolation between two points\n\n\t\tconst lengthBefore = arcLengths[ i ];\n\t\tconst lengthAfter = arcLengths[ i + 1 ];\n\n\t\tconst segmentLength = lengthAfter - lengthBefore;\n\n\t\t// determine where we are between the 'before' and 'after' points\n\n\t\tconst segmentFraction = ( targetArcLength - lengthBefore ) / segmentLength;\n\n\t\t// add that fractional amount to t\n\n\t\tconst t = ( i + segmentFraction ) / ( il - 1 );\n\n\t\treturn t;\n\n\t}\n\n\t// Returns a unit vector tangent at t\n\t// In case any sub curve does not implement its tangent derivation,\n\t// 2 points a small delta apart will be used to find its gradient\n\t// which seems to give a reasonable approximation\n\n\tgetTangent( t, optionalTarget ) {\n\n\t\tconst delta = 0.0001;\n\t\tlet t1 = t - delta;\n\t\tlet t2 = t + delta;\n\n\t\t// Capping in case of danger\n\n\t\tif ( t1 < 0 ) t1 = 0;\n\t\tif ( t2 > 1 ) t2 = 1;\n\n\t\tconst pt1 = this.getPoint( t1 );\n\t\tconst pt2 = this.getPoint( t2 );\n\n\t\tconst tangent = optionalTarget || ( ( pt1.isVector2 ) ? new Vector2() : new Vector3() );\n\n\t\ttangent.copy( pt2 ).sub( pt1 ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getTangent( t, optionalTarget );\n\n\t}\n\n\tcomputeFrenetFrames( segments, closed ) {\n\n\t\t// see http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n\n\t\tconst normal = new Vector3();\n\n\t\tconst tangents = [];\n\t\tconst normals = [];\n\t\tconst binormals = [];\n\n\t\tconst vec = new Vector3();\n\t\tconst mat = new Matrix4();\n\n\t\t// compute the tangent vectors for each segment on the curve\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst u = i / segments;\n\n\t\t\ttangents[ i ] = this.getTangentAt( u, new Vector3() );\n\n\t\t}\n\n\t\t// select an initial normal vector perpendicular to the first tangent vector,\n\t\t// and in the direction of the minimum tangent xyz component\n\n\t\tnormals[ 0 ] = new Vector3();\n\t\tbinormals[ 0 ] = new Vector3();\n\t\tlet min = Number.MAX_VALUE;\n\t\tconst tx = Math.abs( tangents[ 0 ].x );\n\t\tconst ty = Math.abs( tangents[ 0 ].y );\n\t\tconst tz = Math.abs( tangents[ 0 ].z );\n\n\t\tif ( tx <= min ) {\n\n\t\t\tmin = tx;\n\t\t\tnormal.set( 1, 0, 0 );\n\n\t\t}\n\n\t\tif ( ty <= min ) {\n\n\t\t\tmin = ty;\n\t\t\tnormal.set( 0, 1, 0 );\n\n\t\t}\n\n\t\tif ( tz <= min ) {\n\n\t\t\tnormal.set( 0, 0, 1 );\n\n\t\t}\n\n\t\tvec.crossVectors( tangents[ 0 ], normal ).normalize();\n\n\t\tnormals[ 0 ].crossVectors( tangents[ 0 ], vec );\n\t\tbinormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] );\n\n\n\t\t// compute the slowly-varying normal and binormal vectors for each segment on the curve\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tnormals[ i ] = normals[ i - 1 ].clone();\n\n\t\t\tbinormals[ i ] = binormals[ i - 1 ].clone();\n\n\t\t\tvec.crossVectors( tangents[ i - 1 ], tangents[ i ] );\n\n\t\t\tif ( vec.length() > Number.EPSILON ) {\n\n\t\t\t\tvec.normalize();\n\n\t\t\t\tconst theta = Math.acos( clamp( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors\n\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) );\n\n\t\t\t}\n\n\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t}\n\n\t\t// if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\n\n\t\tif ( closed === true ) {\n\n\t\t\tlet theta = Math.acos( clamp( normals[ 0 ].dot( normals[ segments ] ), - 1, 1 ) );\n\t\t\ttheta /= segments;\n\n\t\t\tif ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ segments ] ) ) > 0 ) {\n\n\t\t\t\ttheta = - theta;\n\n\t\t\t}\n\n\t\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\t\t// twist a little...\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) );\n\t\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttangents: tangents,\n\t\t\tnormals: normals,\n\t\t\tbinormals: binormals\n\t\t};\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.arcLengthDivisions = source.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Curve',\n\t\t\t\tgenerator: 'Curve.toJSON'\n\t\t\t}\n\t\t};\n\n\t\tdata.arcLengthDivisions = this.arcLengthDivisions;\n\t\tdata.type = this.type;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.arcLengthDivisions = json.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass EllipseCurve extends Curve {\n\n\tconstructor( aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.isEllipseCurve = true;\n\n\t\tthis.type = 'EllipseCurve';\n\n\t\tthis.aX = aX;\n\t\tthis.aY = aY;\n\n\t\tthis.xRadius = xRadius;\n\t\tthis.yRadius = yRadius;\n\n\t\tthis.aStartAngle = aStartAngle;\n\t\tthis.aEndAngle = aEndAngle;\n\n\t\tthis.aClockwise = aClockwise;\n\n\t\tthis.aRotation = aRotation;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst twoPi = Math.PI * 2;\n\t\tlet deltaAngle = this.aEndAngle - this.aStartAngle;\n\t\tconst samePoints = Math.abs( deltaAngle ) < Number.EPSILON;\n\n\t\t// ensures that deltaAngle is 0 .. 2 PI\n\t\twhile ( deltaAngle < 0 ) deltaAngle += twoPi;\n\t\twhile ( deltaAngle > twoPi ) deltaAngle -= twoPi;\n\n\t\tif ( deltaAngle < Number.EPSILON ) {\n\n\t\t\tif ( samePoints ) {\n\n\t\t\t\tdeltaAngle = 0;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.aClockwise === true && ! samePoints ) {\n\n\t\t\tif ( deltaAngle === twoPi ) {\n\n\t\t\t\tdeltaAngle = - twoPi;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = deltaAngle - twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst angle = this.aStartAngle + t * deltaAngle;\n\t\tlet x = this.aX + this.xRadius * Math.cos( angle );\n\t\tlet y = this.aY + this.yRadius * Math.sin( angle );\n\n\t\tif ( this.aRotation !== 0 ) {\n\n\t\t\tconst cos = Math.cos( this.aRotation );\n\t\t\tconst sin = Math.sin( this.aRotation );\n\n\t\t\tconst tx = x - this.aX;\n\t\t\tconst ty = y - this.aY;\n\n\t\t\t// Rotate the point about the center of the ellipse.\n\t\t\tx = tx * cos - ty * sin + this.aX;\n\t\t\ty = tx * sin + ty * cos + this.aY;\n\n\t\t}\n\n\t\treturn point.set( x, y );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.aX = source.aX;\n\t\tthis.aY = source.aY;\n\n\t\tthis.xRadius = source.xRadius;\n\t\tthis.yRadius = source.yRadius;\n\n\t\tthis.aStartAngle = source.aStartAngle;\n\t\tthis.aEndAngle = source.aEndAngle;\n\n\t\tthis.aClockwise = source.aClockwise;\n\n\t\tthis.aRotation = source.aRotation;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.aX = this.aX;\n\t\tdata.aY = this.aY;\n\n\t\tdata.xRadius = this.xRadius;\n\t\tdata.yRadius = this.yRadius;\n\n\t\tdata.aStartAngle = this.aStartAngle;\n\t\tdata.aEndAngle = this.aEndAngle;\n\n\t\tdata.aClockwise = this.aClockwise;\n\n\t\tdata.aRotation = this.aRotation;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.aX = json.aX;\n\t\tthis.aY = json.aY;\n\n\t\tthis.xRadius = json.xRadius;\n\t\tthis.yRadius = json.yRadius;\n\n\t\tthis.aStartAngle = json.aStartAngle;\n\t\tthis.aEndAngle = json.aEndAngle;\n\n\t\tthis.aClockwise = json.aClockwise;\n\n\t\tthis.aRotation = json.aRotation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass ArcCurve extends EllipseCurve {\n\n\tconstructor( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tsuper( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\tthis.isArcCurve = true;\n\n\t\tthis.type = 'ArcCurve';\n\n\t}\n\n}\n\n/**\n * Centripetal CatmullRom Curve - which is useful for avoiding\n * cusps and self-intersections in non-uniform catmull rom curves.\n * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n *\n * curve.type accepts centripetal(default), chordal and catmullrom\n * curve.tension is used for catmullrom which defaults to 0.5\n */\n\n\n/*\nBased on an optimized c++ solution in\n - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n - http://ideone.com/NoEbVM\n\nThis CubicPoly class could be used for reusing some variables and calculations,\nbut for three.js curve use, it could be possible inlined and flatten into a single function call\nwhich can be placed in CurveUtils.\n*/\n\nfunction CubicPoly() {\n\n\tlet c0 = 0, c1 = 0, c2 = 0, c3 = 0;\n\n\t/*\n\t * Compute coefficients for a cubic polynomial\n\t * p(s) = c0 + c1*s + c2*s^2 + c3*s^3\n\t * such that\n\t * p(0) = x0, p(1) = x1\n\t * and\n\t * p'(0) = t0, p'(1) = t1.\n\t */\n\tfunction init( x0, x1, t0, t1 ) {\n\n\t\tc0 = x0;\n\t\tc1 = t0;\n\t\tc2 = - 3 * x0 + 3 * x1 - 2 * t0 - t1;\n\t\tc3 = 2 * x0 - 2 * x1 + t0 + t1;\n\n\t}\n\n\treturn {\n\n\t\tinitCatmullRom: function ( x0, x1, x2, x3, tension ) {\n\n\t\t\tinit( x1, x2, tension * ( x2 - x0 ), tension * ( x3 - x1 ) );\n\n\t\t},\n\n\t\tinitNonuniformCatmullRom: function ( x0, x1, x2, x3, dt0, dt1, dt2 ) {\n\n\t\t\t// compute tangents when parameterized in [t1,t2]\n\t\t\tlet t1 = ( x1 - x0 ) / dt0 - ( x2 - x0 ) / ( dt0 + dt1 ) + ( x2 - x1 ) / dt1;\n\t\t\tlet t2 = ( x2 - x1 ) / dt1 - ( x3 - x1 ) / ( dt1 + dt2 ) + ( x3 - x2 ) / dt2;\n\n\t\t\t// rescale tangents for parametrization in [0,1]\n\t\t\tt1 *= dt1;\n\t\t\tt2 *= dt1;\n\n\t\t\tinit( x1, x2, t1, t2 );\n\n\t\t},\n\n\t\tcalc: function ( t ) {\n\n\t\t\tconst t2 = t * t;\n\t\t\tconst t3 = t2 * t;\n\t\t\treturn c0 + c1 * t + c2 * t2 + c3 * t3;\n\n\t\t}\n\n\t};\n\n}\n\n//\n\nconst tmp = /*@__PURE__*/ new Vector3();\nconst px = /*@__PURE__*/ new CubicPoly();\nconst py = /*@__PURE__*/ new CubicPoly();\nconst pz = /*@__PURE__*/ new CubicPoly();\n\nclass CatmullRomCurve3 extends Curve {\n\n\tconstructor( points = [], closed = false, curveType = 'centripetal', tension = 0.5 ) {\n\n\t\tsuper();\n\n\t\tthis.isCatmullRomCurve3 = true;\n\n\t\tthis.type = 'CatmullRomCurve3';\n\n\t\tthis.points = points;\n\t\tthis.closed = closed;\n\t\tthis.curveType = curveType;\n\t\tthis.tension = tension;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst l = points.length;\n\n\t\tconst p = ( l - ( this.closed ? 0 : 1 ) ) * t;\n\t\tlet intPoint = Math.floor( p );\n\t\tlet weight = p - intPoint;\n\n\t\tif ( this.closed ) {\n\n\t\t\tintPoint += intPoint > 0 ? 0 : ( Math.floor( Math.abs( intPoint ) / l ) + 1 ) * l;\n\n\t\t} else if ( weight === 0 && intPoint === l - 1 ) {\n\n\t\t\tintPoint = l - 2;\n\t\t\tweight = 1;\n\n\t\t}\n\n\t\tlet p0, p3; // 4 points (p1 & p2 defined below)\n\n\t\tif ( this.closed || intPoint > 0 ) {\n\n\t\t\tp0 = points[ ( intPoint - 1 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate first point\n\t\t\ttmp.subVectors( points[ 0 ], points[ 1 ] ).add( points[ 0 ] );\n\t\t\tp0 = tmp;\n\n\t\t}\n\n\t\tconst p1 = points[ intPoint % l ];\n\t\tconst p2 = points[ ( intPoint + 1 ) % l ];\n\n\t\tif ( this.closed || intPoint + 2 < l ) {\n\n\t\t\tp3 = points[ ( intPoint + 2 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate last point\n\t\t\ttmp.subVectors( points[ l - 1 ], points[ l - 2 ] ).add( points[ l - 1 ] );\n\t\t\tp3 = tmp;\n\n\t\t}\n\n\t\tif ( this.curveType === 'centripetal' || this.curveType === 'chordal' ) {\n\n\t\t\t// init Centripetal / Chordal Catmull-Rom\n\t\t\tconst pow = this.curveType === 'chordal' ? 0.5 : 0.25;\n\t\t\tlet dt0 = Math.pow( p0.distanceToSquared( p1 ), pow );\n\t\t\tlet dt1 = Math.pow( p1.distanceToSquared( p2 ), pow );\n\t\t\tlet dt2 = Math.pow( p2.distanceToSquared( p3 ), pow );\n\n\t\t\t// safety check for repeated points\n\t\t\tif ( dt1 < 1e-4 ) dt1 = 1.0;\n\t\t\tif ( dt0 < 1e-4 ) dt0 = dt1;\n\t\t\tif ( dt2 < 1e-4 ) dt2 = dt1;\n\n\t\t\tpx.initNonuniformCatmullRom( p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2 );\n\t\t\tpy.initNonuniformCatmullRom( p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2 );\n\t\t\tpz.initNonuniformCatmullRom( p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2 );\n\n\t\t} else if ( this.curveType === 'catmullrom' ) {\n\n\t\t\tpx.initCatmullRom( p0.x, p1.x, p2.x, p3.x, this.tension );\n\t\t\tpy.initCatmullRom( p0.y, p1.y, p2.y, p3.y, this.tension );\n\t\t\tpz.initCatmullRom( p0.z, p1.z, p2.z, p3.z, this.tension );\n\n\t\t}\n\n\t\tpoint.set(\n\t\t\tpx.calc( weight ),\n\t\t\tpy.calc( weight ),\n\t\t\tpz.calc( weight )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\tthis.closed = source.closed;\n\t\tthis.curveType = source.curveType;\n\t\tthis.tension = source.tension;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\tdata.closed = this.closed;\n\t\tdata.curveType = this.curveType;\n\t\tdata.tension = this.tension;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector3().fromArray( point ) );\n\n\t\t}\n\n\t\tthis.closed = json.closed;\n\t\tthis.curveType = json.curveType;\n\t\tthis.tension = json.tension;\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Bezier Curves formulas obtained from\n * https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n */\n\nfunction CatmullRom( t, p0, p1, p2, p3 ) {\n\n\tconst v0 = ( p2 - p0 ) * 0.5;\n\tconst v1 = ( p3 - p1 ) * 0.5;\n\tconst t2 = t * t;\n\tconst t3 = t * t2;\n\treturn ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;\n\n}\n\n//\n\nfunction QuadraticBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * p;\n\n}\n\nfunction QuadraticBezierP1( t, p ) {\n\n\treturn 2 * ( 1 - t ) * t * p;\n\n}\n\nfunction QuadraticBezierP2( t, p ) {\n\n\treturn t * t * p;\n\n}\n\nfunction QuadraticBezier( t, p0, p1, p2 ) {\n\n\treturn QuadraticBezierP0( t, p0 ) + QuadraticBezierP1( t, p1 ) +\n\t\tQuadraticBezierP2( t, p2 );\n\n}\n\n//\n\nfunction CubicBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * k * p;\n\n}\n\nfunction CubicBezierP1( t, p ) {\n\n\tconst k = 1 - t;\n\treturn 3 * k * k * t * p;\n\n}\n\nfunction CubicBezierP2( t, p ) {\n\n\treturn 3 * ( 1 - t ) * t * t * p;\n\n}\n\nfunction CubicBezierP3( t, p ) {\n\n\treturn t * t * t * p;\n\n}\n\nfunction CubicBezier( t, p0, p1, p2, p3 ) {\n\n\treturn CubicBezierP0( t, p0 ) + CubicBezierP1( t, p1 ) + CubicBezierP2( t, p2 ) +\n\t\tCubicBezierP3( t, p3 );\n\n}\n\nclass CubicBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isCubicBezierCurve = true;\n\n\t\tthis.type = 'CubicBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass CubicBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isCubicBezierCurve3 = true;\n\n\t\tthis.type = 'CubicBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y ),\n\t\t\tCubicBezier( t, v0.z, v1.z, v2.z, v3.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineCurve extends Curve {\n\n\tconstructor( v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isLineCurve = true;\n\n\t\tthis.type = 'LineCurve';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector2() ) {\n\n\t\treturn optionalTarget.subVectors( this.v2, this.v1 ).normalize();\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\treturn this.getTangent( u, optionalTarget );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineCurve3 extends Curve {\n\n\tconstructor( v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isLineCurve3 = true;\n\n\t\tthis.type = 'LineCurve3';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector3() ) {\n\n\t\treturn optionalTarget.subVectors( this.v2, this.v1 ).normalize();\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\treturn this.getTangent( u, optionalTarget );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isQuadraticBezierCurve = true;\n\n\t\tthis.type = 'QuadraticBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isQuadraticBezierCurve3 = true;\n\n\t\tthis.type = 'QuadraticBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y ),\n\t\t\tQuadraticBezier( t, v0.z, v1.z, v2.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass SplineCurve extends Curve {\n\n\tconstructor( points = [] ) {\n\n\t\tsuper();\n\n\t\tthis.isSplineCurve = true;\n\n\t\tthis.type = 'SplineCurve';\n\n\t\tthis.points = points;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst p = ( points.length - 1 ) * t;\n\n\t\tconst intPoint = Math.floor( p );\n\t\tconst weight = p - intPoint;\n\n\t\tconst p0 = points[ intPoint === 0 ? intPoint : intPoint - 1 ];\n\t\tconst p1 = points[ intPoint ];\n\t\tconst p2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ];\n\t\tconst p3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ];\n\n\t\tpoint.set(\n\t\t\tCatmullRom( weight, p0.x, p1.x, p2.x, p3.x ),\n\t\t\tCatmullRom( weight, p0.y, p1.y, p2.y, p3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector2().fromArray( point ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nvar Curves = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tArcCurve: ArcCurve,\n\tCatmullRomCurve3: CatmullRomCurve3,\n\tCubicBezierCurve: CubicBezierCurve,\n\tCubicBezierCurve3: CubicBezierCurve3,\n\tEllipseCurve: EllipseCurve,\n\tLineCurve: LineCurve,\n\tLineCurve3: LineCurve3,\n\tQuadraticBezierCurve: QuadraticBezierCurve,\n\tQuadraticBezierCurve3: QuadraticBezierCurve3,\n\tSplineCurve: SplineCurve\n});\n\n/**************************************************************\n *\tCurved Path - a curve path is simply a array of connected\n * curves, but retains the api of a curve\n **************************************************************/\n\nclass CurvePath extends Curve {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'CurvePath';\n\n\t\tthis.curves = [];\n\t\tthis.autoClose = false; // Automatically closes the path\n\n\t}\n\n\tadd( curve ) {\n\n\t\tthis.curves.push( curve );\n\n\t}\n\n\tclosePath() {\n\n\t\t// Add a line curve if start and end of lines are not connected\n\t\tconst startPoint = this.curves[ 0 ].getPoint( 0 );\n\t\tconst endPoint = this.curves[ this.curves.length - 1 ].getPoint( 1 );\n\n\t\tif ( ! startPoint.equals( endPoint ) ) {\n\n\t\t\tconst lineType = ( startPoint.isVector2 === true ) ? 'LineCurve' : 'LineCurve3';\n\t\t\tthis.curves.push( new Curves[ lineType ]( endPoint, startPoint ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// To get accurate point with reference to\n\t// entire path distance at time t,\n\t// following has to be done:\n\n\t// 1. Length of each sub path have to be known\n\t// 2. Locate and identify type of curve\n\t// 3. Get t for the curve\n\t// 4. Return curve.getPointAt(t')\n\n\tgetPoint( t, optionalTarget ) {\n\n\t\tconst d = t * this.getLength();\n\t\tconst curveLengths = this.getCurveLengths();\n\t\tlet i = 0;\n\n\t\t// To think about boundaries points.\n\n\t\twhile ( i < curveLengths.length ) {\n\n\t\t\tif ( curveLengths[ i ] >= d ) {\n\n\t\t\t\tconst diff = curveLengths[ i ] - d;\n\t\t\t\tconst curve = this.curves[ i ];\n\n\t\t\t\tconst segmentLength = curve.getLength();\n\t\t\t\tconst u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n\n\t\t\t\treturn curve.getPointAt( u, optionalTarget );\n\n\t\t\t}\n\n\t\t\ti ++;\n\n\t\t}\n\n\t\treturn null;\n\n\t\t// loop where sum != 0, sum > d , sum+1 1 && ! points[ points.length - 1 ].equals( points[ 0 ] ) ) {\n\n\t\t\tpoints.push( points[ 0 ] );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = source.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = source.curves[ i ];\n\n\t\t\tthis.curves.push( curve.clone() );\n\n\t\t}\n\n\t\tthis.autoClose = source.autoClose;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.autoClose = this.autoClose;\n\t\tdata.curves = [];\n\n\t\tfor ( let i = 0, l = this.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = this.curves[ i ];\n\t\t\tdata.curves.push( curve.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.autoClose = json.autoClose;\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = json.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = json.curves[ i ];\n\t\t\tthis.curves.push( new Curves[ curve.type ]().fromJSON( curve ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Path extends CurvePath {\n\n\tconstructor( points ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Path';\n\n\t\tthis.currentPoint = new Vector2();\n\n\t\tif ( points ) {\n\n\t\t\tthis.setFromPoints( points );\n\n\t\t}\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.moveTo( points[ 0 ].x, points[ 0 ].y );\n\n\t\tfor ( let i = 1, l = points.length; i < l; i ++ ) {\n\n\t\t\tthis.lineTo( points[ i ].x, points[ i ].y );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPoint.set( x, y ); // TODO consider referencing vectors instead of copying?\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tconst curve = new LineCurve( this.currentPoint.clone(), new Vector2( x, y ) );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tconst curve = new QuadraticBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCPx, aCPy ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tconst curve = new CubicBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCP1x, aCP1y ),\n\t\t\tnew Vector2( aCP2x, aCP2y ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts /*Array of Vector*/ ) {\n\n\t\tconst npts = [ this.currentPoint.clone() ].concat( pts );\n\n\t\tconst curve = new SplineCurve( npts );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.copy( pts[ pts.length - 1 ] );\n\n\t\treturn this;\n\n\t}\n\n\tarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absarc( aX + x0, aY + y0, aRadius,\n\t\t\taStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tabsarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tthis.absellipse( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absellipse( aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\treturn this;\n\n\t}\n\n\tabsellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst curve = new EllipseCurve( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\tif ( this.curves.length > 0 ) {\n\n\t\t\t// if a previous curve is present, attempt to join\n\t\t\tconst firstPoint = curve.getPoint( 0 );\n\n\t\t\tif ( ! firstPoint.equals( this.currentPoint ) ) {\n\n\t\t\t\tthis.lineTo( firstPoint.x, firstPoint.y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.curves.push( curve );\n\n\t\tconst lastPoint = curve.getPoint( 1 );\n\t\tthis.currentPoint.copy( lastPoint );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.currentPoint.copy( source.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.currentPoint = this.currentPoint.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.currentPoint.fromArray( json.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LatheGeometry extends BufferGeometry {\n\n\tconstructor( points = [ new Vector2( 0, - 0.5 ), new Vector2( 0.5, 0 ), new Vector2( 0, 0.5 ) ], segments = 12, phiStart = 0, phiLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LatheGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpoints: points,\n\t\t\tsegments: segments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength\n\t\t};\n\n\t\tsegments = Math.floor( segments );\n\n\t\t// clamp phiLength so it's in range of [ 0, 2PI ]\n\n\t\tphiLength = clamp( phiLength, 0, Math.PI * 2 );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst uvs = [];\n\t\tconst initNormals = [];\n\t\tconst normals = [];\n\n\t\t// helper variables\n\n\t\tconst inverseSegments = 1.0 / segments;\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tconst normal = new Vector3();\n\t\tconst curNormal = new Vector3();\n\t\tconst prevNormal = new Vector3();\n\t\tlet dx = 0;\n\t\tlet dy = 0;\n\n\t\t// pre-compute normals for initial \"meridian\"\n\n\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\tswitch ( j ) {\n\n\t\t\t\tcase 0:\t\t\t\t// special handling for 1st vertex on path\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tprevNormal.copy( normal );\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ( points.length - 1 ):\t// special handling for last Vertex on path\n\n\t\t\t\t\tinitNormals.push( prevNormal.x, prevNormal.y, prevNormal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\t\t\t// default handling for all vertices in between\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tcurNormal.copy( normal );\n\n\t\t\t\t\tnormal.x += prevNormal.x;\n\t\t\t\t\tnormal.y += prevNormal.y;\n\t\t\t\t\tnormal.z += prevNormal.z;\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tprevNormal.copy( curNormal );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate vertices, uvs and normals\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst phi = phiStart + i * inverseSegments * phiLength;\n\n\t\t\tconst sin = Math.sin( phi );\n\t\t\tconst cos = Math.cos( phi );\n\n\t\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = points[ j ].x * sin;\n\t\t\t\tvertex.y = points[ j ].y;\n\t\t\t\tvertex.z = points[ j ].x * cos;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = i / segments;\n\t\t\t\tuv.y = j / ( points.length - 1 );\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// normal\n\n\t\t\t\tconst x = initNormals[ 3 * j + 0 ] * sin;\n\t\t\t\tconst y = initNormals[ 3 * j + 1 ];\n\t\t\t\tconst z = initNormals[ 3 * j + 0 ] * cos;\n\n\t\t\t\tnormals.push( x, y, z );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 0; i < segments; i ++ ) {\n\n\t\t\tfor ( let j = 0; j < ( points.length - 1 ); j ++ ) {\n\n\t\t\t\tconst base = j + i * points.length;\n\n\t\t\t\tconst a = base;\n\t\t\t\tconst b = base + points.length;\n\t\t\t\tconst c = base + points.length + 1;\n\t\t\t\tconst d = base + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( c, d, b );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new LatheGeometry( data.points, data.segments, data.phiStart, data.phiLength );\n\n\t}\n\n}\n\nclass CapsuleGeometry extends LatheGeometry {\n\n\tconstructor( radius = 1, length = 1, capSegments = 4, radialSegments = 8 ) {\n\n\t\tconst path = new Path();\n\t\tpath.absarc( 0, - length / 2, radius, Math.PI * 1.5, 0 );\n\t\tpath.absarc( 0, length / 2, radius, 0, Math.PI * 0.5 );\n\n\t\tsuper( path.getPoints( capSegments ), radialSegments );\n\n\t\tthis.type = 'CapsuleGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tlength: length,\n\t\t\tcapSegments: capSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CapsuleGeometry( data.radius, data.length, data.capSegments, data.radialSegments );\n\n\t}\n\n}\n\nclass CircleGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, segments = 32, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CircleGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tsegments: segments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tsegments = Math.max( 3, segments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// center point\n\n\t\tvertices.push( 0, 0, 0 );\n\t\tnormals.push( 0, 0, 1 );\n\t\tuvs.push( 0.5, 0.5 );\n\n\t\tfor ( let s = 0, i = 3; s <= segments; s ++, i += 3 ) {\n\n\t\t\tconst segment = thetaStart + s / segments * thetaLength;\n\n\t\t\t// vertex\n\n\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t// normal\n\n\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t// uvs\n\n\t\t\tuv.x = ( vertices[ i ] / radius + 1 ) / 2;\n\t\t\tuv.y = ( vertices[ i + 1 ] / radius + 1 ) / 2;\n\n\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tindices.push( i, i + 1, 0 );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CircleGeometry( data.radius, data.segments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass CylinderGeometry extends BufferGeometry {\n\n\tconstructor( radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CylinderGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradiusTop: radiusTop,\n\t\t\tradiusBottom: radiusBottom,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tconst scope = this;\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet index = 0;\n\t\tconst indexArray = [];\n\t\tconst halfHeight = height / 2;\n\t\tlet groupStart = 0;\n\n\t\t// generate geometry\n\n\t\tgenerateTorso();\n\n\t\tif ( openEnded === false ) {\n\n\t\t\tif ( radiusTop > 0 ) generateCap( true );\n\t\t\tif ( radiusBottom > 0 ) generateCap( false );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction generateTorso() {\n\n\t\t\tconst normal = new Vector3();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\t// this will be used to calculate the normal\n\t\t\tconst slope = ( radiusBottom - radiusTop ) / height;\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let y = 0; y <= heightSegments; y ++ ) {\n\n\t\t\t\tconst indexRow = [];\n\n\t\t\t\tconst v = y / heightSegments;\n\n\t\t\t\t// calculate the radius of the current row\n\n\t\t\t\tconst radius = v * ( radiusBottom - radiusTop ) + radiusTop;\n\n\t\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\t\tconst u = x / radialSegments;\n\n\t\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\t\tconst sinTheta = Math.sin( theta );\n\t\t\t\t\tconst cosTheta = Math.cos( theta );\n\n\t\t\t\t\t// vertex\n\n\t\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\t\tvertex.y = - v * height + halfHeight;\n\t\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t\t// normal\n\n\t\t\t\t\tnormal.set( sinTheta, slope, cosTheta ).normalize();\n\t\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\t// uv\n\n\t\t\t\t\tuvs.push( u, 1 - v );\n\n\t\t\t\t\t// save index of vertex in respective row\n\n\t\t\t\t\tindexRow.push( index ++ );\n\n\t\t\t\t}\n\n\t\t\t\t// now save vertices of the row in our index array\n\n\t\t\t\tindexArray.push( indexRow );\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tfor ( let y = 0; y < heightSegments; y ++ ) {\n\n\t\t\t\t\t// we use the index array to access the correct indices\n\n\t\t\t\t\tconst a = indexArray[ y ][ x ];\n\t\t\t\t\tconst b = indexArray[ y + 1 ][ x ];\n\t\t\t\t\tconst c = indexArray[ y + 1 ][ x + 1 ];\n\t\t\t\t\tconst d = indexArray[ y ][ x + 1 ];\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tif ( radiusTop > 0 || y !== 0 ) {\n\n\t\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( radiusBottom > 0 || y !== heightSegments - 1 ) {\n\n\t\t\t\t\t\tindices.push( b, c, d );\n\t\t\t\t\t\tgroupCount += 3;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, 0 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t\tfunction generateCap( top ) {\n\n\t\t\t// save the index of the first center vertex\n\t\t\tconst centerIndexStart = index;\n\n\t\t\tconst uv = new Vector2();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst radius = ( top === true ) ? radiusTop : radiusBottom;\n\t\t\tconst sign = ( top === true ) ? 1 : - 1;\n\n\t\t\t// first we generate the center vertex data of the cap.\n\t\t\t// because the geometry needs one set of uvs per face,\n\t\t\t// we must generate a center vertex per face/segment\n\n\t\t\tfor ( let x = 1; x <= radialSegments; x ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertices.push( 0, halfHeight * sign, 0 );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( 0.5, 0.5 );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// save the index of the last center vertex\n\t\t\tconst centerIndexEnd = index;\n\n\t\t\t// now we generate the surrounding vertices, normals and uvs\n\n\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\tconst u = x / radialSegments;\n\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\tconst cosTheta = Math.cos( theta );\n\t\t\t\tconst sinTheta = Math.sin( theta );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\tvertex.y = halfHeight * sign;\n\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( cosTheta * 0.5 ) + 0.5;\n\t\t\t\tuv.y = ( sinTheta * 0.5 * sign ) + 0.5;\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tconst c = centerIndexStart + x;\n\t\t\t\tconst i = centerIndexEnd + x;\n\n\t\t\t\tif ( top === true ) {\n\n\t\t\t\t\t// face top\n\n\t\t\t\t\tindices.push( i, i + 1, c );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// face bottom\n\n\t\t\t\t\tindices.push( i + 1, i, c );\n\n\t\t\t\t}\n\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, top === true ? 1 : 2 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CylinderGeometry( data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ConeGeometry extends CylinderGeometry {\n\n\tconstructor( radius = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper( 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength );\n\n\t\tthis.type = 'ConeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new ConeGeometry( data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass PolyhedronGeometry extends BufferGeometry {\n\n\tconstructor( vertices = [], indices = [], radius = 1, detail = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PolyhedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tvertices: vertices,\n\t\t\tindices: indices,\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t\t// default buffer data\n\n\t\tconst vertexBuffer = [];\n\t\tconst uvBuffer = [];\n\n\t\t// the subdivision creates the vertex buffer data\n\n\t\tsubdivide( detail );\n\n\t\t// all vertices should lie on a conceptual sphere with a given radius\n\n\t\tapplyRadius( radius );\n\n\t\t// finally, create the uv data\n\n\t\tgenerateUVs();\n\n\t\t// build non-indexed geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertexBuffer, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( vertexBuffer.slice(), 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvBuffer, 2 ) );\n\n\t\tif ( detail === 0 ) {\n\n\t\t\tthis.computeVertexNormals(); // flat normals\n\n\t\t} else {\n\n\t\t\tthis.normalizeNormals(); // smooth normals\n\n\t\t}\n\n\t\t// helper functions\n\n\t\tfunction subdivide( detail ) {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\t// iterate over all faces and apply a subdivision with the given detail value\n\n\t\t\tfor ( let i = 0; i < indices.length; i += 3 ) {\n\n\t\t\t\t// get the vertices of the face\n\n\t\t\t\tgetVertexByIndex( indices[ i + 0 ], a );\n\t\t\t\tgetVertexByIndex( indices[ i + 1 ], b );\n\t\t\t\tgetVertexByIndex( indices[ i + 2 ], c );\n\n\t\t\t\t// perform subdivision\n\n\t\t\t\tsubdivideFace( a, b, c, detail );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction subdivideFace( a, b, c, detail ) {\n\n\t\t\tconst cols = detail + 1;\n\n\t\t\t// we use this multidimensional array as a data structure for creating the subdivision\n\n\t\t\tconst v = [];\n\n\t\t\t// construct all of the vertices for this subdivision\n\n\t\t\tfor ( let i = 0; i <= cols; i ++ ) {\n\n\t\t\t\tv[ i ] = [];\n\n\t\t\t\tconst aj = a.clone().lerp( c, i / cols );\n\t\t\t\tconst bj = b.clone().lerp( c, i / cols );\n\n\t\t\t\tconst rows = cols - i;\n\n\t\t\t\tfor ( let j = 0; j <= rows; j ++ ) {\n\n\t\t\t\t\tif ( j === 0 && i === cols ) {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj.clone().lerp( bj, j / rows );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// construct all of the faces\n\n\t\t\tfor ( let i = 0; i < cols; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j < 2 * ( cols - i ) - 1; j ++ ) {\n\n\t\t\t\t\tconst k = Math.floor( j / 2 );\n\n\t\t\t\t\tif ( j % 2 === 0 ) {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\t\t\t\t\t\tpushVertex( v[ i ][ k ] );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction applyRadius( radius ) {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\t// iterate over the entire buffer and apply the radius to each vertex\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tvertex.normalize().multiplyScalar( radius );\n\n\t\t\t\tvertexBuffer[ i + 0 ] = vertex.x;\n\t\t\t\tvertexBuffer[ i + 1 ] = vertex.y;\n\t\t\t\tvertexBuffer[ i + 2 ] = vertex.z;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tconst u = azimuth( vertex ) / 2 / Math.PI + 0.5;\n\t\t\t\tconst v = inclination( vertex ) / Math.PI + 0.5;\n\t\t\t\tuvBuffer.push( u, 1 - v );\n\n\t\t\t}\n\n\t\t\tcorrectUVs();\n\n\t\t\tcorrectSeam();\n\n\t\t}\n\n\t\tfunction correctSeam() {\n\n\t\t\t// handle case when face straddles the seam, see #3269\n\n\t\t\tfor ( let i = 0; i < uvBuffer.length; i += 6 ) {\n\n\t\t\t\t// uv data of a single face\n\n\t\t\t\tconst x0 = uvBuffer[ i + 0 ];\n\t\t\t\tconst x1 = uvBuffer[ i + 2 ];\n\t\t\t\tconst x2 = uvBuffer[ i + 4 ];\n\n\t\t\t\tconst max = Math.max( x0, x1, x2 );\n\t\t\t\tconst min = Math.min( x0, x1, x2 );\n\n\t\t\t\t// 0.9 is somewhat arbitrary\n\n\t\t\t\tif ( max > 0.9 && min < 0.1 ) {\n\n\t\t\t\t\tif ( x0 < 0.2 ) uvBuffer[ i + 0 ] += 1;\n\t\t\t\t\tif ( x1 < 0.2 ) uvBuffer[ i + 2 ] += 1;\n\t\t\t\t\tif ( x2 < 0.2 ) uvBuffer[ i + 4 ] += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction pushVertex( vertex ) {\n\n\t\t\tvertexBuffer.push( vertex.x, vertex.y, vertex.z );\n\n\t\t}\n\n\t\tfunction getVertexByIndex( index, vertex ) {\n\n\t\t\tconst stride = index * 3;\n\n\t\t\tvertex.x = vertices[ stride + 0 ];\n\t\t\tvertex.y = vertices[ stride + 1 ];\n\t\t\tvertex.z = vertices[ stride + 2 ];\n\n\t\t}\n\n\t\tfunction correctUVs() {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\tconst centroid = new Vector3();\n\n\t\t\tconst uvA = new Vector2();\n\t\t\tconst uvB = new Vector2();\n\t\t\tconst uvC = new Vector2();\n\n\t\t\tfor ( let i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6 ) {\n\n\t\t\t\ta.set( vertexBuffer[ i + 0 ], vertexBuffer[ i + 1 ], vertexBuffer[ i + 2 ] );\n\t\t\t\tb.set( vertexBuffer[ i + 3 ], vertexBuffer[ i + 4 ], vertexBuffer[ i + 5 ] );\n\t\t\t\tc.set( vertexBuffer[ i + 6 ], vertexBuffer[ i + 7 ], vertexBuffer[ i + 8 ] );\n\n\t\t\t\tuvA.set( uvBuffer[ j + 0 ], uvBuffer[ j + 1 ] );\n\t\t\t\tuvB.set( uvBuffer[ j + 2 ], uvBuffer[ j + 3 ] );\n\t\t\t\tuvC.set( uvBuffer[ j + 4 ], uvBuffer[ j + 5 ] );\n\n\t\t\t\tcentroid.copy( a ).add( b ).add( c ).divideScalar( 3 );\n\n\t\t\t\tconst azi = azimuth( centroid );\n\n\t\t\t\tcorrectUV( uvA, j + 0, a, azi );\n\t\t\t\tcorrectUV( uvB, j + 2, b, azi );\n\t\t\t\tcorrectUV( uvC, j + 4, c, azi );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction correctUV( uv, stride, vector, azimuth ) {\n\n\t\t\tif ( ( azimuth < 0 ) && ( uv.x === 1 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = uv.x - 1;\n\n\t\t\t}\n\n\t\t\tif ( ( vector.x === 0 ) && ( vector.z === 0 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = azimuth / 2 / Math.PI + 0.5;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Angle around the Y axis, counter-clockwise when looking from above.\n\n\t\tfunction azimuth( vector ) {\n\n\t\t\treturn Math.atan2( vector.z, - vector.x );\n\n\t\t}\n\n\n\t\t// Angle above the XZ plane.\n\n\t\tfunction inclination( vector ) {\n\n\t\t\treturn Math.atan2( - vector.y, Math.sqrt( ( vector.x * vector.x ) + ( vector.z * vector.z ) ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PolyhedronGeometry( data.vertices, data.indices, data.radius, data.details );\n\n\t}\n\n}\n\nclass DodecahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\t\tconst r = 1 / t;\n\n\t\tconst vertices = [\n\n\t\t\t// (±1, ±1, ±1)\n\t\t\t- 1, - 1, - 1,\t- 1, - 1, 1,\n\t\t\t- 1, 1, - 1, - 1, 1, 1,\n\t\t\t1, - 1, - 1, 1, - 1, 1,\n\t\t\t1, 1, - 1, 1, 1, 1,\n\n\t\t\t// (0, ±1/φ, ±φ)\n\t\t\t0, - r, - t, 0, - r, t,\n\t\t\t0, r, - t, 0, r, t,\n\n\t\t\t// (±1/φ, ±φ, 0)\n\t\t\t- r, - t, 0, - r, t, 0,\n\t\t\tr, - t, 0, r, t, 0,\n\n\t\t\t// (±φ, 0, ±1/φ)\n\t\t\t- t, 0, - r, t, 0, - r,\n\t\t\t- t, 0, r, t, 0, r\n\t\t];\n\n\t\tconst indices = [\n\t\t\t3, 11, 7, \t3, 7, 15, \t3, 15, 13,\n\t\t\t7, 19, 17, \t7, 17, 6, \t7, 6, 15,\n\t\t\t17, 4, 8, \t17, 8, 10, \t17, 10, 6,\n\t\t\t8, 0, 16, \t8, 16, 2, \t8, 2, 10,\n\t\t\t0, 12, 1, \t0, 1, 18, \t0, 18, 16,\n\t\t\t6, 10, 2, \t6, 2, 13, \t6, 13, 15,\n\t\t\t2, 16, 18, \t2, 18, 3, \t2, 3, 13,\n\t\t\t18, 1, 9, \t18, 9, 11, \t18, 11, 3,\n\t\t\t4, 14, 12, \t4, 12, 0, \t4, 0, 8,\n\t\t\t11, 9, 5, \t11, 5, 19, \t11, 19, 7,\n\t\t\t19, 5, 14, \t19, 14, 4, \t19, 4, 17,\n\t\t\t1, 12, 14, \t1, 14, 5, \t1, 5, 9\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'DodecahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new DodecahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nconst _v0 = /*@__PURE__*/ new Vector3();\nconst _v1$1 = /*@__PURE__*/ new Vector3();\nconst _normal = /*@__PURE__*/ new Vector3();\nconst _triangle = /*@__PURE__*/ new Triangle();\n\nclass EdgesGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null, thresholdAngle = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'EdgesGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry,\n\t\t\tthresholdAngle: thresholdAngle\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\tconst precisionPoints = 4;\n\t\t\tconst precision = Math.pow( 10, precisionPoints );\n\t\t\tconst thresholdDot = Math.cos( DEG2RAD * thresholdAngle );\n\n\t\t\tconst indexAttr = geometry.getIndex();\n\t\t\tconst positionAttr = geometry.getAttribute( 'position' );\n\t\t\tconst indexCount = indexAttr ? indexAttr.count : positionAttr.count;\n\n\t\t\tconst indexArr = [ 0, 0, 0 ];\n\t\t\tconst vertKeys = [ 'a', 'b', 'c' ];\n\t\t\tconst hashes = new Array( 3 );\n\n\t\t\tconst edgeData = {};\n\t\t\tconst vertices = [];\n\t\t\tfor ( let i = 0; i < indexCount; i += 3 ) {\n\n\t\t\t\tif ( indexAttr ) {\n\n\t\t\t\t\tindexArr[ 0 ] = indexAttr.getX( i );\n\t\t\t\t\tindexArr[ 1 ] = indexAttr.getX( i + 1 );\n\t\t\t\t\tindexArr[ 2 ] = indexAttr.getX( i + 2 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindexArr[ 0 ] = i;\n\t\t\t\t\tindexArr[ 1 ] = i + 1;\n\t\t\t\t\tindexArr[ 2 ] = i + 2;\n\n\t\t\t\t}\n\n\t\t\t\tconst { a, b, c } = _triangle;\n\t\t\t\ta.fromBufferAttribute( positionAttr, indexArr[ 0 ] );\n\t\t\t\tb.fromBufferAttribute( positionAttr, indexArr[ 1 ] );\n\t\t\t\tc.fromBufferAttribute( positionAttr, indexArr[ 2 ] );\n\t\t\t\t_triangle.getNormal( _normal );\n\n\t\t\t\t// create hashes for the edge from the vertices\n\t\t\t\thashes[ 0 ] = `${ Math.round( a.x * precision ) },${ Math.round( a.y * precision ) },${ Math.round( a.z * precision ) }`;\n\t\t\t\thashes[ 1 ] = `${ Math.round( b.x * precision ) },${ Math.round( b.y * precision ) },${ Math.round( b.z * precision ) }`;\n\t\t\t\thashes[ 2 ] = `${ Math.round( c.x * precision ) },${ Math.round( c.y * precision ) },${ Math.round( c.z * precision ) }`;\n\n\t\t\t\t// skip degenerate triangles\n\t\t\t\tif ( hashes[ 0 ] === hashes[ 1 ] || hashes[ 1 ] === hashes[ 2 ] || hashes[ 2 ] === hashes[ 0 ] ) {\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\t// iterate over every edge\n\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t// get the first and next vertex making up the edge\n\t\t\t\t\tconst jNext = ( j + 1 ) % 3;\n\t\t\t\t\tconst vecHash0 = hashes[ j ];\n\t\t\t\t\tconst vecHash1 = hashes[ jNext ];\n\t\t\t\t\tconst v0 = _triangle[ vertKeys[ j ] ];\n\t\t\t\t\tconst v1 = _triangle[ vertKeys[ jNext ] ];\n\n\t\t\t\t\tconst hash = `${ vecHash0 }_${ vecHash1 }`;\n\t\t\t\t\tconst reverseHash = `${ vecHash1 }_${ vecHash0 }`;\n\n\t\t\t\t\tif ( reverseHash in edgeData && edgeData[ reverseHash ] ) {\n\n\t\t\t\t\t\t// if we found a sibling edge add it into the vertex array if\n\t\t\t\t\t\t// it meets the angle threshold and delete the edge from the map.\n\t\t\t\t\t\tif ( _normal.dot( edgeData[ reverseHash ].normal ) <= thresholdDot ) {\n\n\t\t\t\t\t\t\tvertices.push( v0.x, v0.y, v0.z );\n\t\t\t\t\t\t\tvertices.push( v1.x, v1.y, v1.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tedgeData[ reverseHash ] = null;\n\n\t\t\t\t\t} else if ( ! ( hash in edgeData ) ) {\n\n\t\t\t\t\t\t// if we've already got an edge here then skip adding a new one\n\t\t\t\t\t\tedgeData[ hash ] = {\n\n\t\t\t\t\t\t\tindex0: indexArr[ j ],\n\t\t\t\t\t\t\tindex1: indexArr[ jNext ],\n\t\t\t\t\t\t\tnormal: _normal.clone(),\n\n\t\t\t\t\t\t};\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// iterate over all remaining, unmatched edges and add them to the vertex array\n\t\t\tfor ( const key in edgeData ) {\n\n\t\t\t\tif ( edgeData[ key ] ) {\n\n\t\t\t\t\tconst { index0, index1 } = edgeData[ key ];\n\t\t\t\t\t_v0.fromBufferAttribute( positionAttr, index0 );\n\t\t\t\t\t_v1$1.fromBufferAttribute( positionAttr, index1 );\n\n\t\t\t\t\tvertices.push( _v0.x, _v0.y, _v0.z );\n\t\t\t\t\tvertices.push( _v1$1.x, _v1$1.y, _v1$1.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Shape extends Path {\n\n\tconstructor( points ) {\n\n\t\tsuper( points );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.type = 'Shape';\n\n\t\tthis.holes = [];\n\n\t}\n\n\tgetPointsHoles( divisions ) {\n\n\t\tconst holesPts = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tholesPts[ i ] = this.holes[ i ].getPoints( divisions );\n\n\t\t}\n\n\t\treturn holesPts;\n\n\t}\n\n\t// get points of shape and holes (keypoints based on segments parameter)\n\n\textractPoints( divisions ) {\n\n\t\treturn {\n\n\t\t\tshape: this.getPoints( divisions ),\n\t\t\tholes: this.getPointsHoles( divisions )\n\n\t\t};\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = source.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = source.holes[ i ];\n\n\t\t\tthis.holes.push( hole.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.holes = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = this.holes[ i ];\n\t\t\tdata.holes.push( hole.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.uuid = json.uuid;\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = json.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = json.holes[ i ];\n\t\t\tthis.holes.push( new Path().fromJSON( hole ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Port from https://github.com/mapbox/earcut (v2.2.4)\n */\n\nconst Earcut = {\n\n\ttriangulate: function ( data, holeIndices, dim = 2 ) {\n\n\t\tconst hasHoles = holeIndices && holeIndices.length;\n\t\tconst outerLen = hasHoles ? holeIndices[ 0 ] * dim : data.length;\n\t\tlet outerNode = linkedList( data, 0, outerLen, dim, true );\n\t\tconst triangles = [];\n\n\t\tif ( ! outerNode || outerNode.next === outerNode.prev ) return triangles;\n\n\t\tlet minX, minY, maxX, maxY, x, y, invSize;\n\n\t\tif ( hasHoles ) outerNode = eliminateHoles( data, holeIndices, outerNode, dim );\n\n\t\t// if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n\t\tif ( data.length > 80 * dim ) {\n\n\t\t\tminX = maxX = data[ 0 ];\n\t\t\tminY = maxY = data[ 1 ];\n\n\t\t\tfor ( let i = dim; i < outerLen; i += dim ) {\n\n\t\t\t\tx = data[ i ];\n\t\t\t\ty = data[ i + 1 ];\n\t\t\t\tif ( x < minX ) minX = x;\n\t\t\t\tif ( y < minY ) minY = y;\n\t\t\t\tif ( x > maxX ) maxX = x;\n\t\t\t\tif ( y > maxY ) maxY = y;\n\n\t\t\t}\n\n\t\t\t// minX, minY and invSize are later used to transform coords into integers for z-order calculation\n\t\t\tinvSize = Math.max( maxX - minX, maxY - minY );\n\t\t\tinvSize = invSize !== 0 ? 32767 / invSize : 0;\n\n\t\t}\n\n\t\tearcutLinked( outerNode, triangles, dim, minX, minY, invSize, 0 );\n\n\t\treturn triangles;\n\n\t}\n\n};\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList( data, start, end, dim, clockwise ) {\n\n\tlet i, last;\n\n\tif ( clockwise === ( signedArea( data, start, end, dim ) > 0 ) ) {\n\n\t\tfor ( i = start; i < end; i += dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t} else {\n\n\t\tfor ( i = end - dim; i >= start; i -= dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t}\n\n\tif ( last && equals( last, last.next ) ) {\n\n\t\tremoveNode( last );\n\t\tlast = last.next;\n\n\t}\n\n\treturn last;\n\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints( start, end ) {\n\n\tif ( ! start ) return start;\n\tif ( ! end ) end = start;\n\n\tlet p = start,\n\t\tagain;\n\tdo {\n\n\t\tagain = false;\n\n\t\tif ( ! p.steiner && ( equals( p, p.next ) || area( p.prev, p, p.next ) === 0 ) ) {\n\n\t\t\tremoveNode( p );\n\t\t\tp = end = p.prev;\n\t\t\tif ( p === p.next ) break;\n\t\t\tagain = true;\n\n\t\t} else {\n\n\t\t\tp = p.next;\n\n\t\t}\n\n\t} while ( again || p !== end );\n\n\treturn end;\n\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked( ear, triangles, dim, minX, minY, invSize, pass ) {\n\n\tif ( ! ear ) return;\n\n\t// interlink polygon nodes in z-order\n\tif ( ! pass && invSize ) indexCurve( ear, minX, minY, invSize );\n\n\tlet stop = ear,\n\t\tprev, next;\n\n\t// iterate through ears, slicing them one by one\n\twhile ( ear.prev !== ear.next ) {\n\n\t\tprev = ear.prev;\n\t\tnext = ear.next;\n\n\t\tif ( invSize ? isEarHashed( ear, minX, minY, invSize ) : isEar( ear ) ) {\n\n\t\t\t// cut off the triangle\n\t\t\ttriangles.push( prev.i / dim | 0 );\n\t\t\ttriangles.push( ear.i / dim | 0 );\n\t\t\ttriangles.push( next.i / dim | 0 );\n\n\t\t\tremoveNode( ear );\n\n\t\t\t// skipping the next vertex leads to less sliver triangles\n\t\t\tear = next.next;\n\t\t\tstop = next.next;\n\n\t\t\tcontinue;\n\n\t\t}\n\n\t\tear = next;\n\n\t\t// if we looped through the whole remaining polygon and can't find any more ears\n\t\tif ( ear === stop ) {\n\n\t\t\t// try filtering points and slicing again\n\t\t\tif ( ! pass ) {\n\n\t\t\t\tearcutLinked( filterPoints( ear ), triangles, dim, minX, minY, invSize, 1 );\n\n\t\t\t\t// if this didn't work, try curing all small self-intersections locally\n\n\t\t\t} else if ( pass === 1 ) {\n\n\t\t\t\tear = cureLocalIntersections( filterPoints( ear ), triangles, dim );\n\t\t\t\tearcutLinked( ear, triangles, dim, minX, minY, invSize, 2 );\n\n\t\t\t\t// as a last resort, try splitting the remaining polygon into two\n\n\t\t\t} else if ( pass === 2 ) {\n\n\t\t\t\tsplitEarcut( ear, triangles, dim, minX, minY, invSize );\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar( ear ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\t// now make sure we don't have other points inside the potential ear\n\tconst ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst x0 = ax < bx ? ( ax < cx ? ax : cx ) : ( bx < cx ? bx : cx ),\n\t\ty0 = ay < by ? ( ay < cy ? ay : cy ) : ( by < cy ? by : cy ),\n\t\tx1 = ax > bx ? ( ax > cx ? ax : cx ) : ( bx > cx ? bx : cx ),\n\t\ty1 = ay > by ? ( ay > cy ? ay : cy ) : ( by > cy ? by : cy );\n\n\tlet p = c.next;\n\twhile ( p !== a ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.next;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction isEarHashed( ear, minX, minY, invSize ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\tconst ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst x0 = ax < bx ? ( ax < cx ? ax : cx ) : ( bx < cx ? bx : cx ),\n\t\ty0 = ay < by ? ( ay < cy ? ay : cy ) : ( by < cy ? by : cy ),\n\t\tx1 = ax > bx ? ( ax > cx ? ax : cx ) : ( bx > cx ? bx : cx ),\n\t\ty1 = ay > by ? ( ay > cy ? ay : cy ) : ( by > cy ? by : cy );\n\n\t// z-order range for the current triangle bbox;\n\tconst minZ = zOrder( x0, y0, minX, minY, invSize ),\n\t\tmaxZ = zOrder( x1, y1, minX, minY, invSize );\n\n\tlet p = ear.prevZ,\n\t\tn = ear.nextZ;\n\n\t// look for points inside the triangle in both directions\n\twhile ( p && p.z >= minZ && n && n.z <= maxZ ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) && area( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t\tif ( n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, n.x, n.y ) && area( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\t// look for remaining points in decreasing z-order\n\twhile ( p && p.z >= minZ ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) && area( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t}\n\n\t// look for remaining points in increasing z-order\n\twhile ( n && n.z <= maxZ ) {\n\n\t\tif ( n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, n.x, n.y ) && area( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\treturn true;\n\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections( start, triangles, dim ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tconst a = p.prev,\n\t\t\tb = p.next.next;\n\n\t\tif ( ! equals( a, b ) && intersects( a, p, p.next, b ) && locallyInside( a, b ) && locallyInside( b, a ) ) {\n\n\t\t\ttriangles.push( a.i / dim | 0 );\n\t\t\ttriangles.push( p.i / dim | 0 );\n\t\t\ttriangles.push( b.i / dim | 0 );\n\n\t\t\t// remove two nodes involved\n\t\t\tremoveNode( p );\n\t\t\tremoveNode( p.next );\n\n\t\t\tp = start = b;\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn filterPoints( p );\n\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut( start, triangles, dim, minX, minY, invSize ) {\n\n\t// look for a valid diagonal that divides the polygon into two\n\tlet a = start;\n\tdo {\n\n\t\tlet b = a.next.next;\n\t\twhile ( b !== a.prev ) {\n\n\t\t\tif ( a.i !== b.i && isValidDiagonal( a, b ) ) {\n\n\t\t\t\t// split the polygon in two by the diagonal\n\t\t\t\tlet c = splitPolygon( a, b );\n\n\t\t\t\t// filter colinear points around the cuts\n\t\t\t\ta = filterPoints( a, a.next );\n\t\t\t\tc = filterPoints( c, c.next );\n\n\t\t\t\t// run earcut on each half\n\t\t\t\tearcutLinked( a, triangles, dim, minX, minY, invSize, 0 );\n\t\t\t\tearcutLinked( c, triangles, dim, minX, minY, invSize, 0 );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tb = b.next;\n\n\t\t}\n\n\t\ta = a.next;\n\n\t} while ( a !== start );\n\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles( data, holeIndices, outerNode, dim ) {\n\n\tconst queue = [];\n\tlet i, len, start, end, list;\n\n\tfor ( i = 0, len = holeIndices.length; i < len; i ++ ) {\n\n\t\tstart = holeIndices[ i ] * dim;\n\t\tend = i < len - 1 ? holeIndices[ i + 1 ] * dim : data.length;\n\t\tlist = linkedList( data, start, end, dim, false );\n\t\tif ( list === list.next ) list.steiner = true;\n\t\tqueue.push( getLeftmost( list ) );\n\n\t}\n\n\tqueue.sort( compareX );\n\n\t// process holes from left to right\n\tfor ( i = 0; i < queue.length; i ++ ) {\n\n\t\touterNode = eliminateHole( queue[ i ], outerNode );\n\n\t}\n\n\treturn outerNode;\n\n}\n\nfunction compareX( a, b ) {\n\n\treturn a.x - b.x;\n\n}\n\n// find a bridge between vertices that connects hole with an outer ring and link it\nfunction eliminateHole( hole, outerNode ) {\n\n\tconst bridge = findHoleBridge( hole, outerNode );\n\tif ( ! bridge ) {\n\n\t\treturn outerNode;\n\n\t}\n\n\tconst bridgeReverse = splitPolygon( bridge, hole );\n\n\t// filter collinear points around the cuts\n\tfilterPoints( bridgeReverse, bridgeReverse.next );\n\treturn filterPoints( bridge, bridge.next );\n\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge( hole, outerNode ) {\n\n\tlet p = outerNode,\n\t\tqx = - Infinity,\n\t\tm;\n\n\tconst hx = hole.x, hy = hole.y;\n\n\t// find a segment intersected by a ray from the hole's leftmost point to the left;\n\t// segment's endpoint with lesser x will be potential connection point\n\tdo {\n\n\t\tif ( hy <= p.y && hy >= p.next.y && p.next.y !== p.y ) {\n\n\t\t\tconst x = p.x + ( hy - p.y ) * ( p.next.x - p.x ) / ( p.next.y - p.y );\n\t\t\tif ( x <= hx && x > qx ) {\n\n\t\t\t\tqx = x;\n\t\t\t\tm = p.x < p.next.x ? p : p.next;\n\t\t\t\tif ( x === hx ) return m; // hole touches outer segment; pick leftmost endpoint\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== outerNode );\n\n\tif ( ! m ) return null;\n\n\t// look for points inside the triangle of hole point, segment intersection and endpoint;\n\t// if there are no points found, we have a valid connection;\n\t// otherwise choose the point of the minimum angle with the ray as connection point\n\n\tconst stop = m,\n\t\tmx = m.x,\n\t\tmy = m.y;\n\tlet tanMin = Infinity, tan;\n\n\tp = m;\n\n\tdo {\n\n\t\tif ( hx >= p.x && p.x >= mx && hx !== p.x &&\n\t\t\t\tpointInTriangle( hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y ) ) {\n\n\t\t\ttan = Math.abs( hy - p.y ) / ( hx - p.x ); // tangential\n\n\t\t\tif ( locallyInside( p, hole ) && ( tan < tanMin || ( tan === tanMin && ( p.x > m.x || ( p.x === m.x && sectorContainsSector( m, p ) ) ) ) ) ) {\n\n\t\t\t\tm = p;\n\t\t\t\ttanMin = tan;\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== stop );\n\n\treturn m;\n\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector( m, p ) {\n\n\treturn area( m.prev, m, p.prev ) < 0 && area( p.next, m, m.next ) < 0;\n\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve( start, minX, minY, invSize ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tif ( p.z === 0 ) p.z = zOrder( p.x, p.y, minX, minY, invSize );\n\t\tp.prevZ = p.prev;\n\t\tp.nextZ = p.next;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\tp.prevZ.nextZ = null;\n\tp.prevZ = null;\n\n\tsortLinked( p );\n\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked( list ) {\n\n\tlet i, p, q, e, tail, numMerges, pSize, qSize,\n\t\tinSize = 1;\n\n\tdo {\n\n\t\tp = list;\n\t\tlist = null;\n\t\ttail = null;\n\t\tnumMerges = 0;\n\n\t\twhile ( p ) {\n\n\t\t\tnumMerges ++;\n\t\t\tq = p;\n\t\t\tpSize = 0;\n\t\t\tfor ( i = 0; i < inSize; i ++ ) {\n\n\t\t\t\tpSize ++;\n\t\t\t\tq = q.nextZ;\n\t\t\t\tif ( ! q ) break;\n\n\t\t\t}\n\n\t\t\tqSize = inSize;\n\n\t\t\twhile ( pSize > 0 || ( qSize > 0 && q ) ) {\n\n\t\t\t\tif ( pSize !== 0 && ( qSize === 0 || ! q || p.z <= q.z ) ) {\n\n\t\t\t\t\te = p;\n\t\t\t\t\tp = p.nextZ;\n\t\t\t\t\tpSize --;\n\n\t\t\t\t} else {\n\n\t\t\t\t\te = q;\n\t\t\t\t\tq = q.nextZ;\n\t\t\t\t\tqSize --;\n\n\t\t\t\t}\n\n\t\t\t\tif ( tail ) tail.nextZ = e;\n\t\t\t\telse list = e;\n\n\t\t\t\te.prevZ = tail;\n\t\t\t\ttail = e;\n\n\t\t\t}\n\n\t\t\tp = q;\n\n\t\t}\n\n\t\ttail.nextZ = null;\n\t\tinSize *= 2;\n\n\t} while ( numMerges > 1 );\n\n\treturn list;\n\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder( x, y, minX, minY, invSize ) {\n\n\t// coords are transformed into non-negative 15-bit integer range\n\tx = ( x - minX ) * invSize | 0;\n\ty = ( y - minY ) * invSize | 0;\n\n\tx = ( x | ( x << 8 ) ) & 0x00FF00FF;\n\tx = ( x | ( x << 4 ) ) & 0x0F0F0F0F;\n\tx = ( x | ( x << 2 ) ) & 0x33333333;\n\tx = ( x | ( x << 1 ) ) & 0x55555555;\n\n\ty = ( y | ( y << 8 ) ) & 0x00FF00FF;\n\ty = ( y | ( y << 4 ) ) & 0x0F0F0F0F;\n\ty = ( y | ( y << 2 ) ) & 0x33333333;\n\ty = ( y | ( y << 1 ) ) & 0x55555555;\n\n\treturn x | ( y << 1 );\n\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost( start ) {\n\n\tlet p = start,\n\t\tleftmost = start;\n\tdo {\n\n\t\tif ( p.x < leftmost.x || ( p.x === leftmost.x && p.y < leftmost.y ) ) leftmost = p;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn leftmost;\n\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle( ax, ay, bx, by, cx, cy, px, py ) {\n\n\treturn ( cx - px ) * ( ay - py ) >= ( ax - px ) * ( cy - py ) &&\n ( ax - px ) * ( by - py ) >= ( bx - px ) * ( ay - py ) &&\n ( bx - px ) * ( cy - py ) >= ( cx - px ) * ( by - py );\n\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal( a, b ) {\n\n\treturn a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && // dones't intersect other edges\n ( locallyInside( a, b ) && locallyInside( b, a ) && middleInside( a, b ) && // locally visible\n ( area( a.prev, a, b.prev ) || area( a, b.prev, b ) ) || // does not create opposite-facing sectors\n equals( a, b ) && area( a.prev, a, a.next ) > 0 && area( b.prev, b, b.next ) > 0 ); // special zero-length case\n\n}\n\n// signed area of a triangle\nfunction area( p, q, r ) {\n\n\treturn ( q.y - p.y ) * ( r.x - q.x ) - ( q.x - p.x ) * ( r.y - q.y );\n\n}\n\n// check if two points are equal\nfunction equals( p1, p2 ) {\n\n\treturn p1.x === p2.x && p1.y === p2.y;\n\n}\n\n// check if two segments intersect\nfunction intersects( p1, q1, p2, q2 ) {\n\n\tconst o1 = sign( area( p1, q1, p2 ) );\n\tconst o2 = sign( area( p1, q1, q2 ) );\n\tconst o3 = sign( area( p2, q2, p1 ) );\n\tconst o4 = sign( area( p2, q2, q1 ) );\n\n\tif ( o1 !== o2 && o3 !== o4 ) return true; // general case\n\n\tif ( o1 === 0 && onSegment( p1, p2, q1 ) ) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n\tif ( o2 === 0 && onSegment( p1, q2, q1 ) ) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n\tif ( o3 === 0 && onSegment( p2, p1, q2 ) ) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n\tif ( o4 === 0 && onSegment( p2, q1, q2 ) ) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n\treturn false;\n\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment( p, q, r ) {\n\n\treturn q.x <= Math.max( p.x, r.x ) && q.x >= Math.min( p.x, r.x ) && q.y <= Math.max( p.y, r.y ) && q.y >= Math.min( p.y, r.y );\n\n}\n\nfunction sign( num ) {\n\n\treturn num > 0 ? 1 : num < 0 ? - 1 : 0;\n\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon( a, b ) {\n\n\tlet p = a;\n\tdo {\n\n\t\tif ( p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n\t\t\tintersects( p, p.next, a, b ) ) return true;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn false;\n\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside( a, b ) {\n\n\treturn area( a.prev, a, a.next ) < 0 ?\n\t\tarea( a, b, a.next ) >= 0 && area( a, a.prev, b ) >= 0 :\n\t\tarea( a, b, a.prev ) < 0 || area( a, a.next, b ) < 0;\n\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside( a, b ) {\n\n\tlet p = a,\n\t\tinside = false;\n\tconst px = ( a.x + b.x ) / 2,\n\t\tpy = ( a.y + b.y ) / 2;\n\tdo {\n\n\t\tif ( ( ( p.y > py ) !== ( p.next.y > py ) ) && p.next.y !== p.y &&\n\t\t\t( px < ( p.next.x - p.x ) * ( py - p.y ) / ( p.next.y - p.y ) + p.x ) )\n\t\t\tinside = ! inside;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn inside;\n\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon( a, b ) {\n\n\tconst a2 = new Node( a.i, a.x, a.y ),\n\t\tb2 = new Node( b.i, b.x, b.y ),\n\t\tan = a.next,\n\t\tbp = b.prev;\n\n\ta.next = b;\n\tb.prev = a;\n\n\ta2.next = an;\n\tan.prev = a2;\n\n\tb2.next = a2;\n\ta2.prev = b2;\n\n\tbp.next = b2;\n\tb2.prev = bp;\n\n\treturn b2;\n\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode( i, x, y, last ) {\n\n\tconst p = new Node( i, x, y );\n\n\tif ( ! last ) {\n\n\t\tp.prev = p;\n\t\tp.next = p;\n\n\t} else {\n\n\t\tp.next = last.next;\n\t\tp.prev = last;\n\t\tlast.next.prev = p;\n\t\tlast.next = p;\n\n\t}\n\n\treturn p;\n\n}\n\nfunction removeNode( p ) {\n\n\tp.next.prev = p.prev;\n\tp.prev.next = p.next;\n\n\tif ( p.prevZ ) p.prevZ.nextZ = p.nextZ;\n\tif ( p.nextZ ) p.nextZ.prevZ = p.prevZ;\n\n}\n\nfunction Node( i, x, y ) {\n\n\t// vertex index in coordinates array\n\tthis.i = i;\n\n\t// vertex coordinates\n\tthis.x = x;\n\tthis.y = y;\n\n\t// previous and next vertex nodes in a polygon ring\n\tthis.prev = null;\n\tthis.next = null;\n\n\t// z-order curve value\n\tthis.z = 0;\n\n\t// previous and next nodes in z-order\n\tthis.prevZ = null;\n\tthis.nextZ = null;\n\n\t// indicates whether this is a steiner point\n\tthis.steiner = false;\n\n}\n\nfunction signedArea( data, start, end, dim ) {\n\n\tlet sum = 0;\n\tfor ( let i = start, j = end - dim; i < end; i += dim ) {\n\n\t\tsum += ( data[ j ] - data[ i ] ) * ( data[ i + 1 ] + data[ j + 1 ] );\n\t\tj = i;\n\n\t}\n\n\treturn sum;\n\n}\n\nclass ShapeUtils {\n\n\t// calculate area of the contour polygon\n\n\tstatic area( contour ) {\n\n\t\tconst n = contour.length;\n\t\tlet a = 0.0;\n\n\t\tfor ( let p = n - 1, q = 0; q < n; p = q ++ ) {\n\n\t\t\ta += contour[ p ].x * contour[ q ].y - contour[ q ].x * contour[ p ].y;\n\n\t\t}\n\n\t\treturn a * 0.5;\n\n\t}\n\n\tstatic isClockWise( pts ) {\n\n\t\treturn ShapeUtils.area( pts ) < 0;\n\n\t}\n\n\tstatic triangulateShape( contour, holes ) {\n\n\t\tconst vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ]\n\t\tconst holeIndices = []; // array of hole indices\n\t\tconst faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ]\n\n\t\tremoveDupEndPts( contour );\n\t\taddContour( vertices, contour );\n\n\t\t//\n\n\t\tlet holeIndex = contour.length;\n\n\t\tholes.forEach( removeDupEndPts );\n\n\t\tfor ( let i = 0; i < holes.length; i ++ ) {\n\n\t\t\tholeIndices.push( holeIndex );\n\t\t\tholeIndex += holes[ i ].length;\n\t\t\taddContour( vertices, holes[ i ] );\n\n\t\t}\n\n\t\t//\n\n\t\tconst triangles = Earcut.triangulate( vertices, holeIndices );\n\n\t\t//\n\n\t\tfor ( let i = 0; i < triangles.length; i += 3 ) {\n\n\t\t\tfaces.push( triangles.slice( i, i + 3 ) );\n\n\t\t}\n\n\t\treturn faces;\n\n\t}\n\n}\n\nfunction removeDupEndPts( points ) {\n\n\tconst l = points.length;\n\n\tif ( l > 2 && points[ l - 1 ].equals( points[ 0 ] ) ) {\n\n\t\tpoints.pop();\n\n\t}\n\n}\n\nfunction addContour( vertices, contour ) {\n\n\tfor ( let i = 0; i < contour.length; i ++ ) {\n\n\t\tvertices.push( contour[ i ].x );\n\t\tvertices.push( contour[ i ].y );\n\n\t}\n\n}\n\n/**\n * Creates extruded geometry from a path shape.\n *\n * parameters = {\n *\n * curveSegments: , // number of points on the curves\n * steps: , // number of points for z-side extrusions / used for subdividing segments of extrude spline too\n * depth: , // Depth to extrude the shape\n *\n * bevelEnabled: , // turn on bevel\n * bevelThickness: , // how deep into the original shape bevel goes\n * bevelSize: , // how far from shape outline (including bevelOffset) is bevel\n * bevelOffset: , // how far from shape outline does bevel start\n * bevelSegments: , // number of bevel layers\n *\n * extrudePath: // curve to extrude shape along\n *\n * UVGenerator: // object that provides UV generator functions\n *\n * }\n */\n\n\nclass ExtrudeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0.5, 0.5 ), new Vector2( - 0.5, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ExtrudeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\toptions: options\n\t\t};\n\n\t\tshapes = Array.isArray( shapes ) ? shapes : [ shapes ];\n\n\t\tconst scope = this;\n\n\t\tconst verticesArray = [];\n\t\tconst uvArray = [];\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\t\t\taddShape( shape );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( verticesArray, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvArray, 2 ) );\n\n\t\tthis.computeVertexNormals();\n\n\t\t// functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst placeholder = [];\n\n\t\t\t// options\n\n\t\t\tconst curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\n\t\t\tconst steps = options.steps !== undefined ? options.steps : 1;\n\t\t\tconst depth = options.depth !== undefined ? options.depth : 1;\n\n\t\t\tlet bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\n\t\t\tlet bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 0.2;\n\t\t\tlet bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 0.1;\n\t\t\tlet bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n\t\t\tlet bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n\n\t\t\tconst extrudePath = options.extrudePath;\n\n\t\t\tconst uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator;\n\n\t\t\t//\n\n\t\t\tlet extrudePts, extrudeByPath = false;\n\t\t\tlet splineTube, binormal, normal, position2;\n\n\t\t\tif ( extrudePath ) {\n\n\t\t\t\textrudePts = extrudePath.getSpacedPoints( steps );\n\n\t\t\t\textrudeByPath = true;\n\t\t\t\tbevelEnabled = false; // bevels not supported for path extrusion\n\n\t\t\t\t// SETUP TNB variables\n\n\t\t\t\t// TODO1 - have a .isClosed in spline?\n\n\t\t\t\tsplineTube = extrudePath.computeFrenetFrames( steps, false );\n\n\t\t\t\t// console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);\n\n\t\t\t\tbinormal = new Vector3();\n\t\t\t\tnormal = new Vector3();\n\t\t\t\tposition2 = new Vector3();\n\n\t\t\t}\n\n\t\t\t// Safeguards if bevels are not enabled\n\n\t\t\tif ( ! bevelEnabled ) {\n\n\t\t\t\tbevelSegments = 0;\n\t\t\t\tbevelThickness = 0;\n\t\t\t\tbevelSize = 0;\n\t\t\t\tbevelOffset = 0;\n\n\t\t\t}\n\n\t\t\t// Variables initialization\n\n\t\t\tconst shapePoints = shape.extractPoints( curveSegments );\n\n\t\t\tlet vertices = shapePoints.shape;\n\t\t\tconst holes = shapePoints.holes;\n\n\t\t\tconst reverse = ! ShapeUtils.isClockWise( vertices );\n\n\t\t\tif ( reverse ) {\n\n\t\t\t\tvertices = vertices.reverse();\n\n\t\t\t\t// Maybe we should also check if holes are in the opposite direction, just to be safe ...\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\t\tif ( ShapeUtils.isClockWise( ahole ) ) {\n\n\t\t\t\t\t\tholes[ h ] = ahole.reverse();\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( vertices, holes );\n\n\t\t\t/* Vertices */\n\n\t\t\tconst contour = vertices; // vertices has all points but contour has only points of circumference\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\tvertices = vertices.concat( ahole );\n\n\t\t\t}\n\n\n\t\t\tfunction scalePt2( pt, vec, size ) {\n\n\t\t\t\tif ( ! vec ) console.error( 'THREE.ExtrudeGeometry: vec does not exist' );\n\n\t\t\t\treturn pt.clone().addScaledVector( vec, size );\n\n\t\t\t}\n\n\t\t\tconst vlen = vertices.length, flen = faces.length;\n\n\n\t\t\t// Find directions for point movement\n\n\n\t\t\tfunction getBevelVec( inPt, inPrev, inNext ) {\n\n\t\t\t\t// computes for inPt the corresponding point inPt' on a new contour\n\t\t\t\t// shifted by 1 unit (length of normalized vector) to the left\n\t\t\t\t// if we walk along contour clockwise, this new contour is outside the old one\n\t\t\t\t//\n\t\t\t\t// inPt' is the intersection of the two lines parallel to the two\n\t\t\t\t// adjacent edges of inPt at a distance of 1 unit on the left side.\n\n\t\t\t\tlet v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt\n\n\t\t\t\t// good reading for geometry algorithms (here: line-line intersection)\n\t\t\t\t// http://geomalgorithms.com/a05-_intersect-1.html\n\n\t\t\t\tconst v_prev_x = inPt.x - inPrev.x,\n\t\t\t\t\tv_prev_y = inPt.y - inPrev.y;\n\t\t\t\tconst v_next_x = inNext.x - inPt.x,\n\t\t\t\t\tv_next_y = inNext.y - inPt.y;\n\n\t\t\t\tconst v_prev_lensq = ( v_prev_x * v_prev_x + v_prev_y * v_prev_y );\n\n\t\t\t\t// check for collinear edges\n\t\t\t\tconst collinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\tif ( Math.abs( collinear0 ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not collinear\n\n\t\t\t\t\t// length of vectors for normalizing\n\n\t\t\t\t\tconst v_prev_len = Math.sqrt( v_prev_lensq );\n\t\t\t\t\tconst v_next_len = Math.sqrt( v_next_x * v_next_x + v_next_y * v_next_y );\n\n\t\t\t\t\t// shift adjacent points by unit vectors to the left\n\n\t\t\t\t\tconst ptPrevShift_x = ( inPrev.x - v_prev_y / v_prev_len );\n\t\t\t\t\tconst ptPrevShift_y = ( inPrev.y + v_prev_x / v_prev_len );\n\n\t\t\t\t\tconst ptNextShift_x = ( inNext.x - v_next_y / v_next_len );\n\t\t\t\t\tconst ptNextShift_y = ( inNext.y + v_next_x / v_next_len );\n\n\t\t\t\t\t// scaling factor for v_prev to intersection point\n\n\t\t\t\t\tconst sf = ( ( ptNextShift_x - ptPrevShift_x ) * v_next_y -\n\t\t\t\t\t\t\t( ptNextShift_y - ptPrevShift_y ) * v_next_x ) /\n\t\t\t\t\t\t( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\t\t// vector from inPt to intersection point\n\n\t\t\t\t\tv_trans_x = ( ptPrevShift_x + v_prev_x * sf - inPt.x );\n\t\t\t\t\tv_trans_y = ( ptPrevShift_y + v_prev_y * sf - inPt.y );\n\n\t\t\t\t\t// Don't normalize!, otherwise sharp corners become ugly\n\t\t\t\t\t// but prevent crazy spikes\n\t\t\t\t\tconst v_trans_lensq = ( v_trans_x * v_trans_x + v_trans_y * v_trans_y );\n\t\t\t\t\tif ( v_trans_lensq <= 2 ) {\n\n\t\t\t\t\t\treturn new Vector2( v_trans_x, v_trans_y );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_trans_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// handle special case of collinear edges\n\n\t\t\t\t\tlet direction_eq = false; // assumes: opposite\n\n\t\t\t\t\tif ( v_prev_x > Number.EPSILON ) {\n\n\t\t\t\t\t\tif ( v_next_x > Number.EPSILON ) {\n\n\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( v_prev_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\tif ( v_next_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( Math.sign( v_prev_y ) === Math.sign( v_next_y ) ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( direction_eq ) {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight sequence\");\n\t\t\t\t\t\tv_trans_x = - v_prev_y;\n\t\t\t\t\t\tv_trans_y = v_prev_x;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight spike\");\n\t\t\t\t\t\tv_trans_x = v_prev_x;\n\t\t\t\t\t\tv_trans_y = v_prev_y;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\treturn new Vector2( v_trans_x / shrink_by, v_trans_y / shrink_by );\n\n\t\t\t}\n\n\n\t\t\tconst contourMovements = [];\n\n\t\t\tfor ( let i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t// console.log('i,j,k', i, j , k)\n\n\t\t\t\tcontourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] );\n\n\t\t\t}\n\n\t\t\tconst holesMovements = [];\n\t\t\tlet oneHoleMovements, verticesMovements = contourMovements.concat();\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\toneHoleMovements = [];\n\n\t\t\t\tfor ( let i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t\toneHoleMovements[ i ] = getBevelVec( ahole[ i ], ahole[ j ], ahole[ k ] );\n\n\t\t\t\t}\n\n\t\t\t\tholesMovements.push( oneHoleMovements );\n\t\t\t\tverticesMovements = verticesMovements.concat( oneHoleMovements );\n\n\t\t\t}\n\n\n\t\t\t// Loop bevelSegments, 1 for the front, 1 for the back\n\n\t\t\tfor ( let b = 0; b < bevelSegments; b ++ ) {\n\n\t\t\t\t//for ( b = bevelSegments; b > 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\n\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst bs = bevelSize + bevelOffset;\n\n\t\t\t// Back facing vertices\n\n\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\tv( vert.x, vert.y, 0 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x );\n\n\t\t\t\t\tnormal.copy( splineTube.normals[ 0 ] ).multiplyScalar( vert.x );\n\t\t\t\t\tbinormal.copy( splineTube.binormals[ 0 ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\tposition2.copy( extrudePts[ 0 ] ).add( normal ).add( binormal );\n\n\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Add stepped vertices...\n\t\t\t// Including front facing vertices\n\n\t\t\tfor ( let s = 1; s <= steps; s ++ ) {\n\n\t\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\tv( vert.x, vert.y, depth / steps * s );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x );\n\n\t\t\t\t\t\tnormal.copy( splineTube.normals[ s ] ).multiplyScalar( vert.x );\n\t\t\t\t\t\tbinormal.copy( splineTube.binormals[ s ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\t\tposition2.copy( extrudePts[ s ] ).add( normal ).add( binormal );\n\n\t\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\t// Add bevel segments planes\n\n\t\t\t//for ( b = 1; b <= bevelSegments; b ++ ) {\n\t\t\tfor ( let b = bevelSegments - 1; b >= 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y + extrudePts[ steps - 1 ].y, extrudePts[ steps - 1 ].x + z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* Faces */\n\n\t\t\t// Top and bottom faces\n\n\t\t\tbuildLidFaces();\n\n\t\t\t// Sides faces\n\n\t\t\tbuildSideFaces();\n\n\n\t\t\t///// Internal functions\n\n\t\t\tfunction buildLidFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\n\t\t\t\tif ( bevelEnabled ) {\n\n\t\t\t\t\tlet layer = 0; // steps + 1\n\t\t\t\t\tlet offset = vlen * layer;\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ] + offset, face[ 1 ] + offset, face[ 0 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlayer = steps + bevelSegments * 2;\n\t\t\t\t\toffset = vlen * layer;\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + offset, face[ 1 ] + offset, face[ 2 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ], face[ 1 ], face[ 0 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + vlen * steps, face[ 1 ] + vlen * steps, face[ 2 ] + vlen * steps );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 0 );\n\n\t\t\t}\n\n\t\t\t// Create faces for the z-sides of the shape\n\n\t\t\tfunction buildSideFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\t\t\t\tlet layeroffset = 0;\n\t\t\t\tsidewalls( contour, layeroffset );\n\t\t\t\tlayeroffset += contour.length;\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\tsidewalls( ahole, layeroffset );\n\n\t\t\t\t\t//, true\n\t\t\t\t\tlayeroffset += ahole.length;\n\n\t\t\t\t}\n\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 1 );\n\n\n\t\t\t}\n\n\t\t\tfunction sidewalls( contour, layeroffset ) {\n\n\t\t\t\tlet i = contour.length;\n\n\t\t\t\twhile ( -- i >= 0 ) {\n\n\t\t\t\t\tconst j = i;\n\t\t\t\t\tlet k = i - 1;\n\t\t\t\t\tif ( k < 0 ) k = contour.length - 1;\n\n\t\t\t\t\t//console.log('b', i,j, i-1, k,vertices.length);\n\n\t\t\t\t\tfor ( let s = 0, sl = ( steps + bevelSegments * 2 ); s < sl; s ++ ) {\n\n\t\t\t\t\t\tconst slen1 = vlen * s;\n\t\t\t\t\t\tconst slen2 = vlen * ( s + 1 );\n\n\t\t\t\t\t\tconst a = layeroffset + j + slen1,\n\t\t\t\t\t\t\tb = layeroffset + k + slen1,\n\t\t\t\t\t\t\tc = layeroffset + k + slen2,\n\t\t\t\t\t\t\td = layeroffset + j + slen2;\n\n\t\t\t\t\t\tf4( a, b, c, d );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tfunction v( x, y, z ) {\n\n\t\t\t\tplaceholder.push( x );\n\t\t\t\tplaceholder.push( y );\n\t\t\t\tplaceholder.push( z );\n\n\t\t\t}\n\n\n\t\t\tfunction f3( a, b, c ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateTopUV( scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\n\t\t\t}\n\n\t\t\tfunction f4( a, b, c, d ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( d );\n\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\t\t\t\taddVertex( d );\n\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateSideWallUV( scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t}\n\n\t\t\tfunction addVertex( index ) {\n\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 0 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 1 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 2 ] );\n\n\t\t\t}\n\n\n\t\t\tfunction addUV( vector2 ) {\n\n\t\t\t\tuvArray.push( vector2.x );\n\t\t\t\tuvArray.push( vector2.y );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\t\tconst options = this.parameters.options;\n\n\t\treturn toJSON$1( shapes, options, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\tconst extrudePath = data.options.extrudePath;\n\n\t\tif ( extrudePath !== undefined ) {\n\n\t\t\tdata.options.extrudePath = new Curves[ extrudePath.type ]().fromJSON( extrudePath );\n\n\t\t}\n\n\t\treturn new ExtrudeGeometry( geometryShapes, data.options );\n\n\t}\n\n}\n\nconst WorldUVGenerator = {\n\n\tgenerateTopUV: function ( geometry, vertices, indexA, indexB, indexC ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\n\t\treturn [\n\t\t\tnew Vector2( a_x, a_y ),\n\t\t\tnew Vector2( b_x, b_y ),\n\t\t\tnew Vector2( c_x, c_y )\n\t\t];\n\n\t},\n\n\tgenerateSideWallUV: function ( geometry, vertices, indexA, indexB, indexC, indexD ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst a_z = vertices[ indexA * 3 + 2 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst b_z = vertices[ indexB * 3 + 2 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\t\tconst c_z = vertices[ indexC * 3 + 2 ];\n\t\tconst d_x = vertices[ indexD * 3 ];\n\t\tconst d_y = vertices[ indexD * 3 + 1 ];\n\t\tconst d_z = vertices[ indexD * 3 + 2 ];\n\n\t\tif ( Math.abs( a_y - b_y ) < Math.abs( a_x - b_x ) ) {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_x, 1 - a_z ),\n\t\t\t\tnew Vector2( b_x, 1 - b_z ),\n\t\t\t\tnew Vector2( c_x, 1 - c_z ),\n\t\t\t\tnew Vector2( d_x, 1 - d_z )\n\t\t\t];\n\n\t\t} else {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_y, 1 - a_z ),\n\t\t\t\tnew Vector2( b_y, 1 - b_z ),\n\t\t\t\tnew Vector2( c_y, 1 - c_z ),\n\t\t\t\tnew Vector2( d_y, 1 - d_z )\n\t\t\t];\n\n\t\t}\n\n\t}\n\n};\n\nfunction toJSON$1( shapes, options, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\tdata.options = Object.assign( {}, options );\n\n\tif ( options.extrudePath !== undefined ) data.options.extrudePath = options.extrudePath.toJSON();\n\n\treturn data;\n\n}\n\nclass IcosahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\n\t\tconst vertices = [\n\t\t\t- 1, t, 0, \t1, t, 0, \t- 1, - t, 0, \t1, - t, 0,\n\t\t\t0, - 1, t, \t0, 1, t,\t0, - 1, - t, \t0, 1, - t,\n\t\t\tt, 0, - 1, \tt, 0, 1, \t- t, 0, - 1, \t- t, 0, 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 11, 5, \t0, 5, 1, \t0, 1, 7, \t0, 7, 10, \t0, 10, 11,\n\t\t\t1, 5, 9, \t5, 11, 4,\t11, 10, 2,\t10, 7, 6,\t7, 1, 8,\n\t\t\t3, 9, 4, \t3, 4, 2,\t3, 2, 6,\t3, 6, 8,\t3, 8, 9,\n\t\t\t4, 9, 5, \t2, 4, 11,\t6, 2, 10,\t8, 6, 7,\t9, 8, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'IcosahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new IcosahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass OctahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 0, 0, \t- 1, 0, 0,\t0, 1, 0,\n\t\t\t0, - 1, 0, \t0, 0, 1,\t0, 0, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 2, 4,\t0, 4, 3,\t0, 3, 5,\n\t\t\t0, 5, 2,\t1, 2, 5,\t1, 5, 3,\n\t\t\t1, 3, 4,\t1, 4, 2\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'OctahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new OctahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass RingGeometry extends BufferGeometry {\n\n\tconstructor( innerRadius = 0.5, outerRadius = 1, thetaSegments = 32, phiSegments = 1, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'RingGeometry';\n\n\t\tthis.parameters = {\n\t\t\tinnerRadius: innerRadius,\n\t\t\touterRadius: outerRadius,\n\t\t\tthetaSegments: thetaSegments,\n\t\t\tphiSegments: phiSegments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tthetaSegments = Math.max( 3, thetaSegments );\n\t\tphiSegments = Math.max( 1, phiSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// some helper variables\n\n\t\tlet radius = innerRadius;\n\t\tconst radiusStep = ( ( outerRadius - innerRadius ) / phiSegments );\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= phiSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= thetaSegments; i ++ ) {\n\n\t\t\t\t// values are generate from the inside of the ring to the outside\n\n\t\t\t\tconst segment = thetaStart + i / thetaSegments * thetaLength;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( vertex.x / outerRadius + 1 ) / 2;\n\t\t\t\tuv.y = ( vertex.y / outerRadius + 1 ) / 2;\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t}\n\n\t\t\t// increase the radius for next row of vertices\n\n\t\t\tradius += radiusStep;\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let j = 0; j < phiSegments; j ++ ) {\n\n\t\t\tconst thetaSegmentLevel = j * ( thetaSegments + 1 );\n\n\t\t\tfor ( let i = 0; i < thetaSegments; i ++ ) {\n\n\t\t\t\tconst segment = i + thetaSegmentLevel;\n\n\t\t\t\tconst a = segment;\n\t\t\t\tconst b = segment + thetaSegments + 1;\n\t\t\t\tconst c = segment + thetaSegments + 2;\n\t\t\t\tconst d = segment + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new RingGeometry( data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ShapeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), curveSegments = 12 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ShapeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\tcurveSegments: curveSegments\n\t\t};\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet groupStart = 0;\n\t\tlet groupCount = 0;\n\n\t\t// allow single and array values for \"shapes\" parameter\n\n\t\tif ( Array.isArray( shapes ) === false ) {\n\n\t\t\taddShape( shapes );\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0; i < shapes.length; i ++ ) {\n\n\t\t\t\taddShape( shapes[ i ] );\n\n\t\t\t\tthis.addGroup( groupStart, groupCount, i ); // enables MultiMaterial support\n\n\t\t\t\tgroupStart += groupCount;\n\t\t\t\tgroupCount = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\n\t\t// helper functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst indexOffset = vertices.length / 3;\n\t\t\tconst points = shape.extractPoints( curveSegments );\n\n\t\t\tlet shapeVertices = points.shape;\n\t\t\tconst shapeHoles = points.holes;\n\n\t\t\t// check direction of vertices\n\n\t\t\tif ( ShapeUtils.isClockWise( shapeVertices ) === false ) {\n\n\t\t\t\tshapeVertices = shapeVertices.reverse();\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\n\t\t\t\tif ( ShapeUtils.isClockWise( shapeHole ) === true ) {\n\n\t\t\t\t\tshapeHoles[ i ] = shapeHole.reverse();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( shapeVertices, shapeHoles );\n\n\t\t\t// join vertices of inner and outer paths to a single array\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\t\t\t\tshapeVertices = shapeVertices.concat( shapeHole );\n\n\t\t\t}\n\n\t\t\t// vertices, normals, uvs\n\n\t\t\tfor ( let i = 0, l = shapeVertices.length; i < l; i ++ ) {\n\n\t\t\t\tconst vertex = shapeVertices[ i ];\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, 0 );\n\t\t\t\tnormals.push( 0, 0, 1 );\n\t\t\t\tuvs.push( vertex.x, vertex.y ); // world uvs\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\tfor ( let i = 0, l = faces.length; i < l; i ++ ) {\n\n\t\t\t\tconst face = faces[ i ];\n\n\t\t\t\tconst a = face[ 0 ] + indexOffset;\n\t\t\t\tconst b = face[ 1 ] + indexOffset;\n\t\t\t\tconst c = face[ 2 ] + indexOffset;\n\n\t\t\t\tindices.push( a, b, c );\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\n\t\treturn toJSON( shapes, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\treturn new ShapeGeometry( geometryShapes, data.curveSegments );\n\n\t}\n\n}\n\nfunction toJSON( shapes, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\treturn data;\n\n}\n\nclass SphereGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, widthSegments = 32, heightSegments = 16, phiStart = 0, phiLength = Math.PI * 2, thetaStart = 0, thetaLength = Math.PI ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'SphereGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\twidthSegments = Math.max( 3, Math.floor( widthSegments ) );\n\t\theightSegments = Math.max( 2, Math.floor( heightSegments ) );\n\n\t\tconst thetaEnd = Math.min( thetaStart + thetaLength, Math.PI );\n\n\t\tlet index = 0;\n\t\tconst grid = [];\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let iy = 0; iy <= heightSegments; iy ++ ) {\n\n\t\t\tconst verticesRow = [];\n\n\t\t\tconst v = iy / heightSegments;\n\n\t\t\t// special case for the poles\n\n\t\t\tlet uOffset = 0;\n\n\t\t\tif ( iy === 0 && thetaStart === 0 ) {\n\n\t\t\t\tuOffset = 0.5 / widthSegments;\n\n\t\t\t} else if ( iy === heightSegments && thetaEnd === Math.PI ) {\n\n\t\t\t\tuOffset = - 0.5 / widthSegments;\n\n\t\t\t}\n\n\t\t\tfor ( let ix = 0; ix <= widthSegments; ix ++ ) {\n\n\t\t\t\tconst u = ix / widthSegments;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = - radius * Math.cos( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\t\t\t\tvertex.y = radius * Math.cos( thetaStart + v * thetaLength );\n\t\t\t\tvertex.z = radius * Math.sin( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.copy( vertex ).normalize();\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( u + uOffset, 1 - v );\n\n\t\t\t\tverticesRow.push( index ++ );\n\n\t\t\t}\n\n\t\t\tgrid.push( verticesRow );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let iy = 0; iy < heightSegments; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < widthSegments; ix ++ ) {\n\n\t\t\t\tconst a = grid[ iy ][ ix + 1 ];\n\t\t\t\tconst b = grid[ iy ][ ix ];\n\t\t\t\tconst c = grid[ iy + 1 ][ ix ];\n\t\t\t\tconst d = grid[ iy + 1 ][ ix + 1 ];\n\n\t\t\t\tif ( iy !== 0 || thetaStart > 0 ) indices.push( a, b, d );\n\t\t\t\tif ( iy !== heightSegments - 1 || thetaEnd < Math.PI ) indices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new SphereGeometry( data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass TetrahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 1, 1, \t- 1, - 1, 1, \t- 1, 1, - 1, \t1, - 1, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t2, 1, 0, \t0, 3, 2,\t1, 3, 0,\t2, 3, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'TetrahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TetrahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass TorusGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, radialSegments = 12, tubularSegments = 48, arc = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TorusGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\tradialSegments: radialSegments,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tarc: arc\n\t\t};\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\ttubularSegments = Math.floor( tubularSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst center = new Vector3();\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tconst u = i / tubularSegments * arc;\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = ( radius + tube * Math.cos( v ) ) * Math.cos( u );\n\t\t\t\tvertex.y = ( radius + tube * Math.cos( v ) ) * Math.sin( u );\n\t\t\t\tvertex.z = tube * Math.sin( v );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tcenter.x = radius * Math.cos( u );\n\t\t\t\tcenter.y = radius * Math.sin( u );\n\t\t\t\tnormal.subVectors( vertex, center ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= tubularSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( tubularSegments + 1 ) * j + i - 1;\n\t\t\t\tconst b = ( tubularSegments + 1 ) * ( j - 1 ) + i - 1;\n\t\t\t\tconst c = ( tubularSegments + 1 ) * ( j - 1 ) + i;\n\t\t\t\tconst d = ( tubularSegments + 1 ) * j + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusGeometry( data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc );\n\n\t}\n\n}\n\nclass TorusKnotGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, tubularSegments = 64, radialSegments = 8, p = 2, q = 3 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TorusKnotGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t\tp: p,\n\t\t\tq: q\n\t\t};\n\n\t\ttubularSegments = Math.floor( tubularSegments );\n\t\tradialSegments = Math.floor( radialSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\tconst P1 = new Vector3();\n\t\tconst P2 = new Vector3();\n\n\t\tconst B = new Vector3();\n\t\tconst T = new Vector3();\n\t\tconst N = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let i = 0; i <= tubularSegments; ++ i ) {\n\n\t\t\t// the radian \"u\" is used to calculate the position on the torus curve of the current tubular segment\n\n\t\t\tconst u = i / tubularSegments * p * Math.PI * 2;\n\n\t\t\t// now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead.\n\t\t\t// these points are used to create a special \"coordinate space\", which is necessary to calculate the correct vertex positions\n\n\t\t\tcalculatePositionOnCurve( u, p, q, radius, P1 );\n\t\t\tcalculatePositionOnCurve( u + 0.01, p, q, radius, P2 );\n\n\t\t\t// calculate orthonormal basis\n\n\t\t\tT.subVectors( P2, P1 );\n\t\t\tN.addVectors( P2, P1 );\n\t\t\tB.crossVectors( T, N );\n\t\t\tN.crossVectors( B, T );\n\n\t\t\t// normalize B, N. T can be ignored, we don't use it\n\n\t\t\tB.normalize();\n\t\t\tN.normalize();\n\n\t\t\tfor ( let j = 0; j <= radialSegments; ++ j ) {\n\n\t\t\t\t// now calculate the vertices. they are nothing more than an extrusion of the torus curve.\n\t\t\t\t// because we extrude a shape in the xy-plane, there is no need to calculate a z-value.\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\t\t\t\tconst cx = - tube * Math.cos( v );\n\t\t\t\tconst cy = tube * Math.sin( v );\n\n\t\t\t\t// now calculate the final vertex position.\n\t\t\t\t// first we orient the extrusion with our basis vectors, then we add it to the current position on the curve\n\n\t\t\t\tvertex.x = P1.x + ( cx * N.x + cy * B.x );\n\t\t\t\tvertex.y = P1.y + ( cx * N.y + cy * B.y );\n\t\t\t\tvertex.z = P1.z + ( cx * N.z + cy * B.z );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal)\n\n\t\t\t\tnormal.subVectors( vertex, P1 ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// this function calculates the current position on the torus curve\n\n\t\tfunction calculatePositionOnCurve( u, p, q, radius, position ) {\n\n\t\t\tconst cu = Math.cos( u );\n\t\t\tconst su = Math.sin( u );\n\t\t\tconst quOverP = q / p * u;\n\t\t\tconst cs = Math.cos( quOverP );\n\n\t\t\tposition.x = radius * ( 2 + cs ) * 0.5 * cu;\n\t\t\tposition.y = radius * ( 2 + cs ) * su * 0.5;\n\t\t\tposition.z = radius * Math.sin( quOverP ) * 0.5;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusKnotGeometry( data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q );\n\n\t}\n\n}\n\nclass TubeGeometry extends BufferGeometry {\n\n\tconstructor( path = new QuadraticBezierCurve3( new Vector3( - 1, - 1, 0 ), new Vector3( - 1, 1, 0 ), new Vector3( 1, 1, 0 ) ), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TubeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpath: path,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradius: radius,\n\t\t\tradialSegments: radialSegments,\n\t\t\tclosed: closed\n\t\t};\n\n\t\tconst frames = path.computeFrenetFrames( tubularSegments, closed );\n\n\t\t// expose internals\n\n\t\tthis.tangents = frames.tangents;\n\t\tthis.normals = frames.normals;\n\t\tthis.binormals = frames.binormals;\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tlet P = new Vector3();\n\n\t\t// buffer\n\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\n\t\t// create buffer data\n\n\t\tgenerateBufferData();\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// functions\n\n\t\tfunction generateBufferData() {\n\n\t\t\tfor ( let i = 0; i < tubularSegments; i ++ ) {\n\n\t\t\t\tgenerateSegment( i );\n\n\t\t\t}\n\n\t\t\t// if the geometry is not closed, generate the last row of vertices and normals\n\t\t\t// at the regular position on the given path\n\t\t\t//\n\t\t\t// if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n\n\t\t\tgenerateSegment( ( closed === false ) ? tubularSegments : 0 );\n\n\t\t\t// uvs are generated in a separate function.\n\t\t\t// this makes it easy compute correct values for closed geometries\n\n\t\t\tgenerateUVs();\n\n\t\t\t// finally create faces\n\n\t\t\tgenerateIndices();\n\n\t\t}\n\n\t\tfunction generateSegment( i ) {\n\n\t\t\t// we use getPointAt to sample evenly distributed points from the given path\n\n\t\t\tP = path.getPointAt( i / tubularSegments, P );\n\n\t\t\t// retrieve corresponding normal and binormal\n\n\t\t\tconst N = frames.normals[ i ];\n\t\t\tconst B = frames.binormals[ i ];\n\n\t\t\t// generate normals and vertices for the current segment\n\n\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\tconst sin = Math.sin( v );\n\t\t\t\tconst cos = - Math.cos( v );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.x = ( cos * N.x + sin * B.x );\n\t\t\t\tnormal.y = ( cos * N.y + sin * B.y );\n\t\t\t\tnormal.z = ( cos * N.z + sin * B.z );\n\t\t\t\tnormal.normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = P.x + radius * normal.x;\n\t\t\t\tvertex.y = P.y + radius * normal.y;\n\t\t\t\tvertex.z = P.z + radius * normal.z;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateIndices() {\n\n\t\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\t\tuv.x = i / tubularSegments;\n\t\t\t\t\tuv.y = j / radialSegments;\n\n\t\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.path = this.parameters.path.toJSON();\n\n\t\treturn data;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\t// This only works for built-in curves (e.g. CatmullRomCurve3).\n\t\t// User defined curves or instances of CurvePath will not be deserialized.\n\t\treturn new TubeGeometry(\n\t\t\tnew Curves[ data.path.type ]().fromJSON( data.path ),\n\t\t\tdata.tubularSegments,\n\t\t\tdata.radius,\n\t\t\tdata.radialSegments,\n\t\t\tdata.closed\n\t\t);\n\n\t}\n\n}\n\nclass WireframeGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'WireframeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\t// buffer\n\n\t\t\tconst vertices = [];\n\t\t\tconst edges = new Set();\n\n\t\t\t// helper variables\n\n\t\t\tconst start = new Vector3();\n\t\t\tconst end = new Vector3();\n\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\t// indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\t\t\t\tconst indices = geometry.index;\n\t\t\t\tlet groups = geometry.groups;\n\n\t\t\t\tif ( groups.length === 0 ) {\n\n\t\t\t\t\tgroups = [ { start: 0, count: indices.count, materialIndex: 0 } ];\n\n\t\t\t\t}\n\n\t\t\t\t// create a data structure that contains all edges without duplicates\n\n\t\t\t\tfor ( let o = 0, ol = groups.length; o < ol; ++ o ) {\n\n\t\t\t\t\tconst group = groups[ o ];\n\n\t\t\t\t\tconst groupStart = group.start;\n\t\t\t\t\tconst groupCount = group.count;\n\n\t\t\t\t\tfor ( let i = groupStart, l = ( groupStart + groupCount ); i < l; i += 3 ) {\n\n\t\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t\tconst index1 = indices.getX( i + j );\n\t\t\t\t\t\t\tconst index2 = indices.getX( i + ( j + 1 ) % 3 );\n\n\t\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\n\t\t\t\tfor ( let i = 0, l = ( position.count / 3 ); i < l; i ++ ) {\n\n\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t// three edges per triangle, an edge is represented as (index1, index2)\n\t\t\t\t\t\t// e.g. the first triangle has the following edges: (0,1),(1,2),(2,0)\n\n\t\t\t\t\t\tconst index1 = 3 * i + j;\n\t\t\t\t\t\tconst index2 = 3 * i + ( ( j + 1 ) % 3 );\n\n\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// build geometry\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction isUniqueEdge( start, end, edges ) {\n\n\tconst hash1 = `${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`;\n\tconst hash2 = `${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`; // coincident edge\n\n\tif ( edges.has( hash1 ) === true || edges.has( hash2 ) === true ) {\n\n\t\treturn false;\n\n\t} else {\n\n\t\tedges.add( hash1 );\n\t\tedges.add( hash2 );\n\t\treturn true;\n\n\t}\n\n}\n\nvar Geometries = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBoxGeometry: BoxGeometry,\n\tCapsuleGeometry: CapsuleGeometry,\n\tCircleGeometry: CircleGeometry,\n\tConeGeometry: ConeGeometry,\n\tCylinderGeometry: CylinderGeometry,\n\tDodecahedronGeometry: DodecahedronGeometry,\n\tEdgesGeometry: EdgesGeometry,\n\tExtrudeGeometry: ExtrudeGeometry,\n\tIcosahedronGeometry: IcosahedronGeometry,\n\tLatheGeometry: LatheGeometry,\n\tOctahedronGeometry: OctahedronGeometry,\n\tPlaneGeometry: PlaneGeometry,\n\tPolyhedronGeometry: PolyhedronGeometry,\n\tRingGeometry: RingGeometry,\n\tShapeGeometry: ShapeGeometry,\n\tSphereGeometry: SphereGeometry,\n\tTetrahedronGeometry: TetrahedronGeometry,\n\tTorusGeometry: TorusGeometry,\n\tTorusKnotGeometry: TorusKnotGeometry,\n\tTubeGeometry: TubeGeometry,\n\tWireframeGeometry: WireframeGeometry\n});\n\nclass ShadowMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'ShadowMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShadowMaterial = true;\n\n\t\tthis.color = new Color( 0x000000 );\n\t\tthis.transparent = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass RawShaderMaterial extends ShaderMaterial {\n\n\tstatic get type() {\n\n\t\treturn 'RawShaderMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper( parameters );\n\n\t\tthis.isRawShaderMaterial = true;\n\n\t}\n\n}\n\nclass MeshStandardMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshStandardMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshStandardMaterial = true;\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.roughness = 1.0;\n\t\tthis.metalness = 0.0;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.roughnessMap = null;\n\n\t\tthis.metalnessMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.envMapIntensity = 1.0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.color.copy( source.color );\n\t\tthis.roughness = source.roughness;\n\t\tthis.metalness = source.metalness;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.roughnessMap = source.roughnessMap;\n\n\t\tthis.metalnessMap = source.metalnessMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.envMapIntensity = source.envMapIntensity;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshPhysicalMaterial extends MeshStandardMaterial {\n\n\tstatic get type() {\n\n\t\treturn 'MeshPhysicalMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshPhysicalMaterial = true;\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.anisotropyRotation = 0;\n\t\tthis.anisotropyMap = null;\n\n\t\tthis.clearcoatMap = null;\n\t\tthis.clearcoatRoughness = 0.0;\n\t\tthis.clearcoatRoughnessMap = null;\n\t\tthis.clearcoatNormalScale = new Vector2( 1, 1 );\n\t\tthis.clearcoatNormalMap = null;\n\n\t\tthis.ior = 1.5;\n\n\t\tObject.defineProperty( this, 'reflectivity', {\n\t\t\tget: function () {\n\n\t\t\t\treturn ( clamp( 2.5 * ( this.ior - 1 ) / ( this.ior + 1 ), 0, 1 ) );\n\n\t\t\t},\n\t\t\tset: function ( reflectivity ) {\n\n\t\t\t\tthis.ior = ( 1 + 0.4 * reflectivity ) / ( 1 - 0.4 * reflectivity );\n\n\t\t\t}\n\t\t} );\n\n\t\tthis.iridescenceMap = null;\n\t\tthis.iridescenceIOR = 1.3;\n\t\tthis.iridescenceThicknessRange = [ 100, 400 ];\n\t\tthis.iridescenceThicknessMap = null;\n\n\t\tthis.sheenColor = new Color( 0x000000 );\n\t\tthis.sheenColorMap = null;\n\t\tthis.sheenRoughness = 1.0;\n\t\tthis.sheenRoughnessMap = null;\n\n\t\tthis.transmissionMap = null;\n\n\t\tthis.thickness = 0;\n\t\tthis.thicknessMap = null;\n\t\tthis.attenuationDistance = Infinity;\n\t\tthis.attenuationColor = new Color( 1, 1, 1 );\n\n\t\tthis.specularIntensity = 1.0;\n\t\tthis.specularIntensityMap = null;\n\t\tthis.specularColor = new Color( 1, 1, 1 );\n\t\tthis.specularColorMap = null;\n\n\t\tthis._anisotropy = 0;\n\t\tthis._clearcoat = 0;\n\t\tthis._dispersion = 0;\n\t\tthis._iridescence = 0;\n\t\tthis._sheen = 0.0;\n\t\tthis._transmission = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tget anisotropy() {\n\n\t\treturn this._anisotropy;\n\n\t}\n\n\tset anisotropy( value ) {\n\n\t\tif ( this._anisotropy > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._anisotropy = value;\n\n\t}\n\n\tget clearcoat() {\n\n\t\treturn this._clearcoat;\n\n\t}\n\n\tset clearcoat( value ) {\n\n\t\tif ( this._clearcoat > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._clearcoat = value;\n\n\t}\n\n\tget iridescence() {\n\n\t\treturn this._iridescence;\n\n\t}\n\n\tset iridescence( value ) {\n\n\t\tif ( this._iridescence > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._iridescence = value;\n\n\t}\n\n\tget dispersion() {\n\n\t\treturn this._dispersion;\n\n\t}\n\n\tset dispersion( value ) {\n\n\t\tif ( this._dispersion > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._dispersion = value;\n\n\t}\n\n\tget sheen() {\n\n\t\treturn this._sheen;\n\n\t}\n\n\tset sheen( value ) {\n\n\t\tif ( this._sheen > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._sheen = value;\n\n\t}\n\n\tget transmission() {\n\n\t\treturn this._transmission;\n\n\t}\n\n\tset transmission( value ) {\n\n\t\tif ( this._transmission > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._transmission = value;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.anisotropy = source.anisotropy;\n\t\tthis.anisotropyRotation = source.anisotropyRotation;\n\t\tthis.anisotropyMap = source.anisotropyMap;\n\n\t\tthis.clearcoat = source.clearcoat;\n\t\tthis.clearcoatMap = source.clearcoatMap;\n\t\tthis.clearcoatRoughness = source.clearcoatRoughness;\n\t\tthis.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n\t\tthis.clearcoatNormalMap = source.clearcoatNormalMap;\n\t\tthis.clearcoatNormalScale.copy( source.clearcoatNormalScale );\n\n\t\tthis.dispersion = source.dispersion;\n\t\tthis.ior = source.ior;\n\n\t\tthis.iridescence = source.iridescence;\n\t\tthis.iridescenceMap = source.iridescenceMap;\n\t\tthis.iridescenceIOR = source.iridescenceIOR;\n\t\tthis.iridescenceThicknessRange = [ ...source.iridescenceThicknessRange ];\n\t\tthis.iridescenceThicknessMap = source.iridescenceThicknessMap;\n\n\t\tthis.sheen = source.sheen;\n\t\tthis.sheenColor.copy( source.sheenColor );\n\t\tthis.sheenColorMap = source.sheenColorMap;\n\t\tthis.sheenRoughness = source.sheenRoughness;\n\t\tthis.sheenRoughnessMap = source.sheenRoughnessMap;\n\n\t\tthis.transmission = source.transmission;\n\t\tthis.transmissionMap = source.transmissionMap;\n\n\t\tthis.thickness = source.thickness;\n\t\tthis.thicknessMap = source.thicknessMap;\n\t\tthis.attenuationDistance = source.attenuationDistance;\n\t\tthis.attenuationColor.copy( source.attenuationColor );\n\n\t\tthis.specularIntensity = source.specularIntensity;\n\t\tthis.specularIntensityMap = source.specularIntensityMap;\n\t\tthis.specularColor.copy( source.specularColor );\n\t\tthis.specularColorMap = source.specularColorMap;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshPhongMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshPhongMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshPhongMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.specular = new Color( 0x111111 );\n\t\tthis.shininess = 30;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.specular.copy( source.specular );\n\t\tthis.shininess = source.shininess;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshToonMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshToonMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshToonMaterial = true;\n\n\t\tthis.defines = { 'TOON': '' };\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\t\tthis.gradientMap = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\t\tthis.gradientMap = source.gradientMap;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshNormalMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshNormalMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshNormalMaterial = true;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshLambertMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshLambertMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshLambertMaterial = true;\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshMatcapMaterial extends Material {\n\n\tstatic get type() {\n\n\t\treturn 'MeshMatcapMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshMatcapMaterial = true;\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.matcap = null;\n\n\t\tthis.map = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.matcap = source.matcap;\n\n\t\tthis.map = source.map;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineDashedMaterial extends LineBasicMaterial {\n\n\tstatic get type() {\n\n\t\treturn 'LineDashedMaterial';\n\n\t}\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isLineDashedMaterial = true;\n\n\t\tthis.scale = 1;\n\t\tthis.dashSize = 3;\n\t\tthis.gapSize = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.scale = source.scale;\n\t\tthis.dashSize = source.dashSize;\n\t\tthis.gapSize = source.gapSize;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// converts an array to a specific type\nfunction convertArray( array, type, forceClone ) {\n\n\tif ( ! array || // let 'undefined' and 'null' pass\n\t\t! forceClone && array.constructor === type ) return array;\n\n\tif ( typeof type.BYTES_PER_ELEMENT === 'number' ) {\n\n\t\treturn new type( array ); // create typed array\n\n\t}\n\n\treturn Array.prototype.slice.call( array ); // create Array\n\n}\n\nfunction isTypedArray( object ) {\n\n\treturn ArrayBuffer.isView( object ) &&\n\t\t! ( object instanceof DataView );\n\n}\n\n// returns an array by which times and values can be sorted\nfunction getKeyframeOrder( times ) {\n\n\tfunction compareTime( i, j ) {\n\n\t\treturn times[ i ] - times[ j ];\n\n\t}\n\n\tconst n = times.length;\n\tconst result = new Array( n );\n\tfor ( let i = 0; i !== n; ++ i ) result[ i ] = i;\n\n\tresult.sort( compareTime );\n\n\treturn result;\n\n}\n\n// uses the array previously returned by 'getKeyframeOrder' to sort data\nfunction sortedArray( values, stride, order ) {\n\n\tconst nValues = values.length;\n\tconst result = new values.constructor( nValues );\n\n\tfor ( let i = 0, dstOffset = 0; dstOffset !== nValues; ++ i ) {\n\n\t\tconst srcOffset = order[ i ] * stride;\n\n\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\tresult[ dstOffset ++ ] = values[ srcOffset + j ];\n\n\t\t}\n\n\t}\n\n\treturn result;\n\n}\n\n// function for parsing AOS keyframe formats\nfunction flattenJSON( jsonKeys, times, values, valuePropertyName ) {\n\n\tlet i = 1, key = jsonKeys[ 0 ];\n\n\twhile ( key !== undefined && key[ valuePropertyName ] === undefined ) {\n\n\t\tkey = jsonKeys[ i ++ ];\n\n\t}\n\n\tif ( key === undefined ) return; // no data\n\n\tlet value = key[ valuePropertyName ];\n\tif ( value === undefined ) return; // no data\n\n\tif ( Array.isArray( value ) ) {\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalues.push.apply( values, value ); // push all elements\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t} else if ( value.toArray !== undefined ) {\n\n\t\t// ...assume THREE.Math-ish\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalue.toArray( values, values.length );\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t} else {\n\n\t\t// otherwise push as-is\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalues.push( value );\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t}\n\n}\n\nfunction subclip( sourceClip, name, startFrame, endFrame, fps = 30 ) {\n\n\tconst clip = sourceClip.clone();\n\n\tclip.name = name;\n\n\tconst tracks = [];\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tconst track = clip.tracks[ i ];\n\t\tconst valueSize = track.getValueSize();\n\n\t\tconst times = [];\n\t\tconst values = [];\n\n\t\tfor ( let j = 0; j < track.times.length; ++ j ) {\n\n\t\t\tconst frame = track.times[ j ] * fps;\n\n\t\t\tif ( frame < startFrame || frame >= endFrame ) continue;\n\n\t\t\ttimes.push( track.times[ j ] );\n\n\t\t\tfor ( let k = 0; k < valueSize; ++ k ) {\n\n\t\t\t\tvalues.push( track.values[ j * valueSize + k ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( times.length === 0 ) continue;\n\n\t\ttrack.times = convertArray( times, track.times.constructor );\n\t\ttrack.values = convertArray( values, track.values.constructor );\n\n\t\ttracks.push( track );\n\n\t}\n\n\tclip.tracks = tracks;\n\n\t// find minimum .times value across all tracks in the trimmed clip\n\n\tlet minStartTime = Infinity;\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tif ( minStartTime > clip.tracks[ i ].times[ 0 ] ) {\n\n\t\t\tminStartTime = clip.tracks[ i ].times[ 0 ];\n\n\t\t}\n\n\t}\n\n\t// shift all tracks such that clip begins at t=0\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tclip.tracks[ i ].shift( - 1 * minStartTime );\n\n\t}\n\n\tclip.resetDuration();\n\n\treturn clip;\n\n}\n\nfunction makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {\n\n\tif ( fps <= 0 ) fps = 30;\n\n\tconst numTracks = referenceClip.tracks.length;\n\tconst referenceTime = referenceFrame / fps;\n\n\t// Make each track's values relative to the values at the reference frame\n\tfor ( let i = 0; i < numTracks; ++ i ) {\n\n\t\tconst referenceTrack = referenceClip.tracks[ i ];\n\t\tconst referenceTrackType = referenceTrack.ValueTypeName;\n\n\t\t// Skip this track if it's non-numeric\n\t\tif ( referenceTrackType === 'bool' || referenceTrackType === 'string' ) continue;\n\n\t\t// Find the track in the target clip whose name and type matches the reference track\n\t\tconst targetTrack = targetClip.tracks.find( function ( track ) {\n\n\t\t\treturn track.name === referenceTrack.name\n\t\t\t\t&& track.ValueTypeName === referenceTrackType;\n\n\t\t} );\n\n\t\tif ( targetTrack === undefined ) continue;\n\n\t\tlet referenceOffset = 0;\n\t\tconst referenceValueSize = referenceTrack.getValueSize();\n\n\t\tif ( referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\treferenceOffset = referenceValueSize / 3;\n\n\t\t}\n\n\t\tlet targetOffset = 0;\n\t\tconst targetValueSize = targetTrack.getValueSize();\n\n\t\tif ( targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\ttargetOffset = targetValueSize / 3;\n\n\t\t}\n\n\t\tconst lastIndex = referenceTrack.times.length - 1;\n\t\tlet referenceValue;\n\n\t\t// Find the value to subtract out of the track\n\t\tif ( referenceTime <= referenceTrack.times[ 0 ] ) {\n\n\t\t\t// Reference frame is earlier than the first keyframe, so just use the first keyframe\n\t\t\tconst startIndex = referenceOffset;\n\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\treferenceValue = referenceTrack.values.slice( startIndex, endIndex );\n\n\t\t} else if ( referenceTime >= referenceTrack.times[ lastIndex ] ) {\n\n\t\t\t// Reference frame is after the last keyframe, so just use the last keyframe\n\t\t\tconst startIndex = lastIndex * referenceValueSize + referenceOffset;\n\t\t\tconst endIndex = startIndex + referenceValueSize - referenceOffset;\n\t\t\treferenceValue = referenceTrack.values.slice( startIndex, endIndex );\n\n\t\t} else {\n\n\t\t\t// Interpolate to the reference value\n\t\t\tconst interpolant = referenceTrack.createInterpolant();\n\t\t\tconst startIndex = referenceOffset;\n\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\tinterpolant.evaluate( referenceTime );\n\t\t\treferenceValue = interpolant.resultBuffer.slice( startIndex, endIndex );\n\n\t\t}\n\n\t\t// Conjugate the quaternion\n\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\tconst referenceQuat = new Quaternion().fromArray( referenceValue ).normalize().conjugate();\n\t\t\treferenceQuat.toArray( referenceValue );\n\n\t\t}\n\n\t\t// Subtract the reference value from all of the track values\n\n\t\tconst numTimes = targetTrack.times.length;\n\t\tfor ( let j = 0; j < numTimes; ++ j ) {\n\n\t\t\tconst valueStart = j * targetValueSize + targetOffset;\n\n\t\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\t\t// Multiply the conjugate for quaternion track types\n\t\t\t\tQuaternion.multiplyQuaternionsFlat(\n\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\tvalueStart,\n\t\t\t\t\treferenceValue,\n\t\t\t\t\t0,\n\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\tvalueStart\n\t\t\t\t);\n\n\t\t\t} else {\n\n\t\t\t\tconst valueEnd = targetValueSize - targetOffset * 2;\n\n\t\t\t\t// Subtract each value for all other numeric track types\n\t\t\t\tfor ( let k = 0; k < valueEnd; ++ k ) {\n\n\t\t\t\t\ttargetTrack.values[ valueStart + k ] -= referenceValue[ k ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttargetClip.blendMode = AdditiveAnimationBlendMode;\n\n\treturn targetClip;\n\n}\n\nconst AnimationUtils = {\n\tconvertArray: convertArray,\n\tisTypedArray: isTypedArray,\n\tgetKeyframeOrder: getKeyframeOrder,\n\tsortedArray: sortedArray,\n\tflattenJSON: flattenJSON,\n\tsubclip: subclip,\n\tmakeClipAdditive: makeClipAdditive\n};\n\n/**\n * Abstract base class of interpolants over parametric samples.\n *\n * The parameter domain is one dimensional, typically the time or a path\n * along a curve defined by the data.\n *\n * The sample values can have any dimensionality and derived classes may\n * apply special interpretations to the data.\n *\n * This class provides the interval seek in a Template Method, deferring\n * the actual interpolation to derived classes.\n *\n * Time complexity is O(1) for linear access crossing at most two points\n * and O(log N) for random access, where N is the number of positions.\n *\n * References:\n *\n * \t\thttp://www.oodesign.com/template-method-pattern.html\n *\n */\n\nclass Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tthis.parameterPositions = parameterPositions;\n\t\tthis._cachedIndex = 0;\n\n\t\tthis.resultBuffer = resultBuffer !== undefined ?\n\t\t\tresultBuffer : new sampleValues.constructor( sampleSize );\n\t\tthis.sampleValues = sampleValues;\n\t\tthis.valueSize = sampleSize;\n\n\t\tthis.settings = null;\n\t\tthis.DefaultSettings_ = {};\n\n\t}\n\n\tevaluate( t ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet i1 = this._cachedIndex,\n\t\t\tt1 = pp[ i1 ],\n\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\tvalidate_interval: {\n\n\t\t\tseek: {\n\n\t\t\t\tlet right;\n\n\t\t\t\tlinear_scan: {\n\n\t\t\t\t\t//- See http://jsperf.com/comparison-to-undefined/3\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\n\t\t\t\t\t//- \t\t\t\tif ( t >= t1 || t1 === undefined ) {\n\t\t\t\t\tforward_scan: if ( ! ( t < t1 ) ) {\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 + 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\t\t\t\tif ( t < t0 ) break forward_scan;\n\n\t\t\t\t\t\t\t\t// after end\n\n\t\t\t\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\t\t\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt0 = t1;\n\t\t\t\t\t\t\tt1 = pp[ ++ i1 ];\n\n\t\t\t\t\t\t\tif ( t < t1 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the right side of the index\n\t\t\t\t\t\tright = pp.length;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\t\t\t\t\tif ( t < t0 || t0 === undefined ) {\n\t\t\t\t\tif ( ! ( t >= t0 ) ) {\n\n\t\t\t\t\t\t// looping?\n\n\t\t\t\t\t\tconst t1global = pp[ 1 ];\n\n\t\t\t\t\t\tif ( t < t1global ) {\n\n\t\t\t\t\t\t\ti1 = 2; // + 1, using the scan for the details\n\t\t\t\t\t\t\tt0 = t1global;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// linear reverse scan\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 - 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\t\t\t\t// before start\n\n\t\t\t\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\t\t\t\treturn this.copySampleValue_( 0 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt1 = t0;\n\t\t\t\t\t\t\tt0 = pp[ -- i1 - 1 ];\n\n\t\t\t\t\t\t\tif ( t >= t0 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the left side of the index\n\t\t\t\t\t\tright = i1;\n\t\t\t\t\t\ti1 = 0;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the interval is valid\n\n\t\t\t\t\tbreak validate_interval;\n\n\t\t\t\t} // linear scan\n\n\t\t\t\t// binary search\n\n\t\t\t\twhile ( i1 < right ) {\n\n\t\t\t\t\tconst mid = ( i1 + right ) >>> 1;\n\n\t\t\t\t\tif ( t < pp[ mid ] ) {\n\n\t\t\t\t\t\tright = mid;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ti1 = mid + 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tt1 = pp[ i1 ];\n\t\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\t\t\t// check boundary cases, again\n\n\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\treturn this.copySampleValue_( 0 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t\t\t\t}\n\n\t\t\t} // seek\n\n\t\t\tthis._cachedIndex = i1;\n\n\t\t\tthis.intervalChanged_( i1, t0, t1 );\n\n\t\t} // validate_interval\n\n\t\treturn this.interpolate_( i1, t0, t, t1 );\n\n\t}\n\n\tgetSettings_() {\n\n\t\treturn this.settings || this.DefaultSettings_;\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// copies a sample value to the result buffer\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = index * stride;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\t// Template methods for derived classes:\n\n\tinterpolate_( /* i1, t0, t, t1 */ ) {\n\n\t\tthrow new Error( 'call to abstract method' );\n\t\t// implementations shall return this.resultBuffer\n\n\t}\n\n\tintervalChanged_( /* i1, t0, t1 */ ) {\n\n\t\t// empty\n\n\t}\n\n}\n\n/**\n * Fast and simple cubic spline interpolant.\n *\n * It was derived from a Hermitian construction setting the first derivative\n * at each sample position to the linear slope between neighboring positions\n * over their parameter interval.\n */\n\nclass CubicInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t\tthis._weightPrev = - 0;\n\t\tthis._offsetPrev = - 0;\n\t\tthis._weightNext = - 0;\n\t\tthis._offsetNext = - 0;\n\n\t\tthis.DefaultSettings_ = {\n\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\n\t\t};\n\n\t}\n\n\tintervalChanged_( i1, t0, t1 ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet iPrev = i1 - 2,\n\t\t\tiNext = i1 + 1,\n\n\t\t\ttPrev = pp[ iPrev ],\n\t\t\ttNext = pp[ iNext ];\n\n\t\tif ( tPrev === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingStart ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(t0) = 0\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = 2 * t0 - t1;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiPrev = pp.length - 2;\n\t\t\t\t\ttPrev = t0 + pp[ iPrev ] - pp[ iPrev + 1 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(t0) = 0 a.k.a. Natural Spline\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = t1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tNext === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingEnd ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(tN) = 0\n\t\t\t\t\tiNext = i1;\n\t\t\t\t\ttNext = 2 * t1 - t0;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiNext = 1;\n\t\t\t\t\ttNext = t1 + pp[ 1 ] - pp[ 0 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(tN) = 0, a.k.a. Natural Spline\n\t\t\t\t\tiNext = i1 - 1;\n\t\t\t\t\ttNext = t0;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst halfDt = ( t1 - t0 ) * 0.5,\n\t\t\tstride = this.valueSize;\n\n\t\tthis._weightPrev = halfDt / ( t0 - tPrev );\n\t\tthis._weightNext = halfDt / ( tNext - t1 );\n\t\tthis._offsetPrev = iPrev * stride;\n\t\tthis._offsetNext = iNext * stride;\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\to1 = i1 * stride,\t\to0 = o1 - stride,\n\t\t\toP = this._offsetPrev, \toN = this._offsetNext,\n\t\t\twP = this._weightPrev,\twN = this._weightNext,\n\n\t\t\tp = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tpp = p * p,\n\t\t\tppp = pp * p;\n\n\t\t// evaluate polynomials\n\n\t\tconst sP = - wP * ppp + 2 * wP * pp - wP * p;\n\t\tconst s0 = ( 1 + wP ) * ppp + ( - 1.5 - 2 * wP ) * pp + ( - 0.5 + wP ) * p + 1;\n\t\tconst s1 = ( - 1 - wN ) * ppp + ( 1.5 + wN ) * pp + 0.5 * p;\n\t\tconst sN = wN * ppp - wN * pp;\n\n\t\t// combine data linearly\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tsP * values[ oP + i ] +\n\t\t\t\t\ts0 * values[ o0 + i ] +\n\t\t\t\t\ts1 * values[ o1 + i ] +\n\t\t\t\t\tsN * values[ oN + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nclass LinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\toffset1 = i1 * stride,\n\t\t\toffset0 = offset1 - stride,\n\n\t\t\tweight1 = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tweight0 = 1 - weight1;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tvalues[ offset0 + i ] * weight0 +\n\t\t\t\t\tvalues[ offset1 + i ] * weight1;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n *\n * Interpolant that evaluates to the sample value at the position preceding\n * the parameter.\n */\n\nclass DiscreteInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1 /*, t0, t, t1 */ ) {\n\n\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t}\n\n}\n\nclass KeyframeTrack {\n\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tif ( name === undefined ) throw new Error( 'THREE.KeyframeTrack: track name is undefined' );\n\t\tif ( times === undefined || times.length === 0 ) throw new Error( 'THREE.KeyframeTrack: no keyframes in track named ' + name );\n\n\t\tthis.name = name;\n\n\t\tthis.times = convertArray( times, this.TimeBufferType );\n\t\tthis.values = convertArray( values, this.ValueBufferType );\n\n\t\tthis.setInterpolation( interpolation || this.DefaultInterpolation );\n\n\t}\n\n\t// Serialization (in static context, because of constructor invocation\n\t// and automatic invocation of .toJSON):\n\n\tstatic toJSON( track ) {\n\n\t\tconst trackType = track.constructor;\n\n\t\tlet json;\n\n\t\t// derived classes can define a static toJSON method\n\t\tif ( trackType.toJSON !== this.toJSON ) {\n\n\t\t\tjson = trackType.toJSON( track );\n\n\t\t} else {\n\n\t\t\t// by default, we assume the data can be serialized as-is\n\t\t\tjson = {\n\n\t\t\t\t'name': track.name,\n\t\t\t\t'times': convertArray( track.times, Array ),\n\t\t\t\t'values': convertArray( track.values, Array )\n\n\t\t\t};\n\n\t\t\tconst interpolation = track.getInterpolation();\n\n\t\t\tif ( interpolation !== track.DefaultInterpolation ) {\n\n\t\t\t\tjson.interpolation = interpolation;\n\n\t\t\t}\n\n\t\t}\n\n\t\tjson.type = track.ValueTypeName; // mandatory\n\n\t\treturn json;\n\n\t}\n\n\tInterpolantFactoryMethodDiscrete( result ) {\n\n\t\treturn new DiscreteInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new LinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodSmooth( result ) {\n\n\t\treturn new CubicInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tsetInterpolation( interpolation ) {\n\n\t\tlet factoryMethod;\n\n\t\tswitch ( interpolation ) {\n\n\t\t\tcase InterpolateDiscrete:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodDiscrete;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateLinear:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodLinear;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateSmooth:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodSmooth;\n\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( factoryMethod === undefined ) {\n\n\t\t\tconst message = 'unsupported interpolation for ' +\n\t\t\t\tthis.ValueTypeName + ' keyframe track named ' + this.name;\n\n\t\t\tif ( this.createInterpolant === undefined ) {\n\n\t\t\t\t// fall back to default, unless the default itself is messed up\n\t\t\t\tif ( interpolation !== this.DefaultInterpolation ) {\n\n\t\t\t\t\tthis.setInterpolation( this.DefaultInterpolation );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( message ); // fatal, in this case\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconsole.warn( 'THREE.KeyframeTrack:', message );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis.createInterpolant = factoryMethod;\n\n\t\treturn this;\n\n\t}\n\n\tgetInterpolation() {\n\n\t\tswitch ( this.createInterpolant ) {\n\n\t\t\tcase this.InterpolantFactoryMethodDiscrete:\n\n\t\t\t\treturn InterpolateDiscrete;\n\n\t\t\tcase this.InterpolantFactoryMethodLinear:\n\n\t\t\t\treturn InterpolateLinear;\n\n\t\t\tcase this.InterpolantFactoryMethodSmooth:\n\n\t\t\t\treturn InterpolateSmooth;\n\n\t\t}\n\n\t}\n\n\tgetValueSize() {\n\n\t\treturn this.values.length / this.times.length;\n\n\t}\n\n\t// move all keyframes either forwards or backwards in time\n\tshift( timeOffset ) {\n\n\t\tif ( timeOffset !== 0.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] += timeOffset;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n\tscale( timeScale ) {\n\n\t\tif ( timeScale !== 1.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] *= timeScale;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n\t// IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n\ttrim( startTime, endTime ) {\n\n\t\tconst times = this.times,\n\t\t\tnKeys = times.length;\n\n\t\tlet from = 0,\n\t\t\tto = nKeys - 1;\n\n\t\twhile ( from !== nKeys && times[ from ] < startTime ) {\n\n\t\t\t++ from;\n\n\t\t}\n\n\t\twhile ( to !== - 1 && times[ to ] > endTime ) {\n\n\t\t\t-- to;\n\n\t\t}\n\n\t\t++ to; // inclusive -> exclusive bound\n\n\t\tif ( from !== 0 || to !== nKeys ) {\n\n\t\t\t// empty tracks are forbidden, so keep at least one keyframe\n\t\t\tif ( from >= to ) {\n\n\t\t\t\tto = Math.max( to, 1 );\n\t\t\t\tfrom = to - 1;\n\n\t\t\t}\n\n\t\t\tconst stride = this.getValueSize();\n\t\t\tthis.times = times.slice( from, to );\n\t\t\tthis.values = this.values.slice( from * stride, to * stride );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tconst valueSize = this.getValueSize();\n\t\tif ( valueSize - Math.floor( valueSize ) !== 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Invalid value size in track.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tconst times = this.times,\n\t\t\tvalues = this.values,\n\n\t\t\tnKeys = times.length;\n\n\t\tif ( nKeys === 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Track is empty.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tlet prevTime = null;\n\n\t\tfor ( let i = 0; i !== nKeys; i ++ ) {\n\n\t\t\tconst currTime = times[ i ];\n\n\t\t\tif ( typeof currTime === 'number' && isNaN( currTime ) ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( prevTime !== null && prevTime > currTime ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tprevTime = currTime;\n\n\t\t}\n\n\t\tif ( values !== undefined ) {\n\n\t\t\tif ( isTypedArray( values ) ) {\n\n\t\t\t\tfor ( let i = 0, n = values.length; i !== n; ++ i ) {\n\n\t\t\t\t\tconst value = values[ i ];\n\n\t\t\t\t\tif ( isNaN( value ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Value is not a valid number.', this, i, value );\n\t\t\t\t\t\tvalid = false;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\t// removes equivalent sequential keys as common in morph target sequences\n\t// (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n\toptimize() {\n\n\t\t// times or values may be shared with other tracks, so overwriting is unsafe\n\t\tconst times = this.times.slice(),\n\t\t\tvalues = this.values.slice(),\n\t\t\tstride = this.getValueSize(),\n\n\t\t\tsmoothInterpolation = this.getInterpolation() === InterpolateSmooth,\n\n\t\t\tlastIndex = times.length - 1;\n\n\t\tlet writeIndex = 1;\n\n\t\tfor ( let i = 1; i < lastIndex; ++ i ) {\n\n\t\t\tlet keep = false;\n\n\t\t\tconst time = times[ i ];\n\t\t\tconst timeNext = times[ i + 1 ];\n\n\t\t\t// remove adjacent keyframes scheduled at the same time\n\n\t\t\tif ( time !== timeNext && ( i !== 1 || time !== times[ 0 ] ) ) {\n\n\t\t\t\tif ( ! smoothInterpolation ) {\n\n\t\t\t\t\t// remove unnecessary keyframes same as their neighbors\n\n\t\t\t\t\tconst offset = i * stride,\n\t\t\t\t\t\toffsetP = offset - stride,\n\t\t\t\t\t\toffsetN = offset + stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tconst value = values[ offset + j ];\n\n\t\t\t\t\t\tif ( value !== values[ offsetP + j ] ||\n\t\t\t\t\t\t\tvalue !== values[ offsetN + j ] ) {\n\n\t\t\t\t\t\t\tkeep = true;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tkeep = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// in-place compaction\n\n\t\t\tif ( keep ) {\n\n\t\t\t\tif ( i !== writeIndex ) {\n\n\t\t\t\t\ttimes[ writeIndex ] = times[ i ];\n\n\t\t\t\t\tconst readOffset = i * stride,\n\t\t\t\t\t\twriteOffset = writeIndex * stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t++ writeIndex;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// flush last keyframe (compaction looks ahead)\n\n\t\tif ( lastIndex > 0 ) {\n\n\t\t\ttimes[ writeIndex ] = times[ lastIndex ];\n\n\t\t\tfor ( let readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++ j ) {\n\n\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t}\n\n\t\t\t++ writeIndex;\n\n\t\t}\n\n\t\tif ( writeIndex !== times.length ) {\n\n\t\t\tthis.times = times.slice( 0, writeIndex );\n\t\t\tthis.values = values.slice( 0, writeIndex * stride );\n\n\t\t} else {\n\n\t\t\tthis.times = times;\n\t\t\tthis.values = values;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst times = this.times.slice();\n\t\tconst values = this.values.slice();\n\n\t\tconst TypedKeyframeTrack = this.constructor;\n\t\tconst track = new TypedKeyframeTrack( this.name, times, values );\n\n\t\t// Interpolant argument to constructor is not saved, so copy the factory method directly.\n\t\ttrack.createInterpolant = this.createInterpolant;\n\n\t\treturn track;\n\n\t}\n\n}\n\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\n\n/**\n * A Track of Boolean keyframe values.\n */\nclass BooleanKeyframeTrack extends KeyframeTrack {\n\n\t// No interpolation parameter because only InterpolateDiscrete is valid.\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\nBooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of keyframe values that represent color.\n */\nclass ColorKeyframeTrack extends KeyframeTrack {}\n\nColorKeyframeTrack.prototype.ValueTypeName = 'color';\n\n/**\n * A Track of numeric keyframe values.\n */\nclass NumberKeyframeTrack extends KeyframeTrack {}\n\nNumberKeyframeTrack.prototype.ValueTypeName = 'number';\n\n/**\n * Spherical linear unit quaternion interpolant.\n */\n\nclass QuaternionLinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\talpha = ( t - t0 ) / ( t1 - t0 );\n\n\t\tlet offset = i1 * stride;\n\n\t\tfor ( let end = offset + stride; offset !== end; offset += 4 ) {\n\n\t\t\tQuaternion.slerpFlat( result, 0, values, offset - stride, values, offset, alpha );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n * A Track of quaternion keyframe values.\n */\nclass QuaternionKeyframeTrack extends KeyframeTrack {\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new QuaternionLinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n}\n\nQuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';\n// ValueBufferType is inherited\n// DefaultInterpolation is inherited;\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track that interpolates Strings\n */\nclass StringKeyframeTrack extends KeyframeTrack {\n\n\t// No interpolation parameter because only InterpolateDiscrete is valid.\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\nStringKeyframeTrack.prototype.ValueTypeName = 'string';\nStringKeyframeTrack.prototype.ValueBufferType = Array;\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of vectored keyframe values.\n */\nclass VectorKeyframeTrack extends KeyframeTrack {}\n\nVectorKeyframeTrack.prototype.ValueTypeName = 'vector';\n\nclass AnimationClip {\n\n\tconstructor( name = '', duration = - 1, tracks = [], blendMode = NormalAnimationBlendMode ) {\n\n\t\tthis.name = name;\n\t\tthis.tracks = tracks;\n\t\tthis.duration = duration;\n\t\tthis.blendMode = blendMode;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// this means it should figure out its duration by scanning the tracks\n\t\tif ( this.duration < 0 ) {\n\n\t\t\tthis.resetDuration();\n\n\t\t}\n\n\t}\n\n\n\tstatic parse( json ) {\n\n\t\tconst tracks = [],\n\t\t\tjsonTracks = json.tracks,\n\t\t\tframeTime = 1.0 / ( json.fps || 1.0 );\n\n\t\tfor ( let i = 0, n = jsonTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( parseKeyframeTrack( jsonTracks[ i ] ).scale( frameTime ) );\n\n\t\t}\n\n\t\tconst clip = new this( json.name, json.duration, tracks, json.blendMode );\n\t\tclip.uuid = json.uuid;\n\n\t\treturn clip;\n\n\t}\n\n\tstatic toJSON( clip ) {\n\n\t\tconst tracks = [],\n\t\t\tclipTracks = clip.tracks;\n\n\t\tconst json = {\n\n\t\t\t'name': clip.name,\n\t\t\t'duration': clip.duration,\n\t\t\t'tracks': tracks,\n\t\t\t'uuid': clip.uuid,\n\t\t\t'blendMode': clip.blendMode\n\n\t\t};\n\n\t\tfor ( let i = 0, n = clipTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( KeyframeTrack.toJSON( clipTracks[ i ] ) );\n\n\t\t}\n\n\t\treturn json;\n\n\t}\n\n\tstatic CreateFromMorphTargetSequence( name, morphTargetSequence, fps, noLoop ) {\n\n\t\tconst numMorphTargets = morphTargetSequence.length;\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < numMorphTargets; i ++ ) {\n\n\t\t\tlet times = [];\n\t\t\tlet values = [];\n\n\t\t\ttimes.push(\n\t\t\t\t( i + numMorphTargets - 1 ) % numMorphTargets,\n\t\t\t\ti,\n\t\t\t\t( i + 1 ) % numMorphTargets );\n\n\t\t\tvalues.push( 0, 1, 0 );\n\n\t\t\tconst order = getKeyframeOrder( times );\n\t\t\ttimes = sortedArray( times, 1, order );\n\t\t\tvalues = sortedArray( values, 1, order );\n\n\t\t\t// if there is a key at the first frame, duplicate it as the\n\t\t\t// last frame as well for perfect loop.\n\t\t\tif ( ! noLoop && times[ 0 ] === 0 ) {\n\n\t\t\t\ttimes.push( numMorphTargets );\n\t\t\t\tvalues.push( values[ 0 ] );\n\n\t\t\t}\n\n\t\t\ttracks.push(\n\t\t\t\tnew NumberKeyframeTrack(\n\t\t\t\t\t'.morphTargetInfluences[' + morphTargetSequence[ i ].name + ']',\n\t\t\t\t\ttimes, values\n\t\t\t\t).scale( 1.0 / fps ) );\n\n\t\t}\n\n\t\treturn new this( name, - 1, tracks );\n\n\t}\n\n\tstatic findByName( objectOrClipArray, name ) {\n\n\t\tlet clipArray = objectOrClipArray;\n\n\t\tif ( ! Array.isArray( objectOrClipArray ) ) {\n\n\t\t\tconst o = objectOrClipArray;\n\t\t\tclipArray = o.geometry && o.geometry.animations || o.animations;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < clipArray.length; i ++ ) {\n\n\t\t\tif ( clipArray[ i ].name === name ) {\n\n\t\t\t\treturn clipArray[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tstatic CreateClipsFromMorphTargetSequences( morphTargets, fps, noLoop ) {\n\n\t\tconst animationToMorphTargets = {};\n\n\t\t// tested with https://regex101.com/ on trick sequences\n\t\t// such flamingo_flyA_003, flamingo_run1_003, crdeath0059\n\t\tconst pattern = /^([\\w-]*?)([\\d]+)$/;\n\n\t\t// sort morph target names into animation groups based\n\t\t// patterns like Walk_001, Walk_002, Run_001, Run_002\n\t\tfor ( let i = 0, il = morphTargets.length; i < il; i ++ ) {\n\n\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\tconst parts = morphTarget.name.match( pattern );\n\n\t\t\tif ( parts && parts.length > 1 ) {\n\n\t\t\t\tconst name = parts[ 1 ];\n\n\t\t\t\tlet animationMorphTargets = animationToMorphTargets[ name ];\n\n\t\t\t\tif ( ! animationMorphTargets ) {\n\n\t\t\t\t\tanimationToMorphTargets[ name ] = animationMorphTargets = [];\n\n\t\t\t\t}\n\n\t\t\t\tanimationMorphTargets.push( morphTarget );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst clips = [];\n\n\t\tfor ( const name in animationToMorphTargets ) {\n\n\t\t\tclips.push( this.CreateFromMorphTargetSequence( name, animationToMorphTargets[ name ], fps, noLoop ) );\n\n\t\t}\n\n\t\treturn clips;\n\n\t}\n\n\t// parse the animation.hierarchy format\n\tstatic parseAnimation( animation, bones ) {\n\n\t\tif ( ! animation ) {\n\n\t\t\tconsole.error( 'THREE.AnimationClip: No animation in JSONLoader data.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst addNonemptyTrack = function ( trackType, trackName, animationKeys, propertyName, destTracks ) {\n\n\t\t\t// only return track if there are actually keys.\n\t\t\tif ( animationKeys.length !== 0 ) {\n\n\t\t\t\tconst times = [];\n\t\t\t\tconst values = [];\n\n\t\t\t\tflattenJSON( animationKeys, times, values, propertyName );\n\n\t\t\t\t// empty keys are filtered out, so check again\n\t\t\t\tif ( times.length !== 0 ) {\n\n\t\t\t\t\tdestTracks.push( new trackType( trackName, times, values ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tconst tracks = [];\n\n\t\tconst clipName = animation.name || 'default';\n\t\tconst fps = animation.fps || 30;\n\t\tconst blendMode = animation.blendMode;\n\n\t\t// automatic length determination in AnimationClip.\n\t\tlet duration = animation.length || - 1;\n\n\t\tconst hierarchyTracks = animation.hierarchy || [];\n\n\t\tfor ( let h = 0; h < hierarchyTracks.length; h ++ ) {\n\n\t\t\tconst animationKeys = hierarchyTracks[ h ].keys;\n\n\t\t\t// skip empty tracks\n\t\t\tif ( ! animationKeys || animationKeys.length === 0 ) continue;\n\n\t\t\t// process morph targets\n\t\t\tif ( animationKeys[ 0 ].morphTargets ) {\n\n\t\t\t\t// figure out all morph targets used in this track\n\t\t\t\tconst morphTargetNames = {};\n\n\t\t\t\tlet k;\n\n\t\t\t\tfor ( k = 0; k < animationKeys.length; k ++ ) {\n\n\t\t\t\t\tif ( animationKeys[ k ].morphTargets ) {\n\n\t\t\t\t\t\tfor ( let m = 0; m < animationKeys[ k ].morphTargets.length; m ++ ) {\n\n\t\t\t\t\t\t\tmorphTargetNames[ animationKeys[ k ].morphTargets[ m ] ] = - 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// create a track for each morph target with all zero\n\t\t\t\t// morphTargetInfluences except for the keys in which\n\t\t\t\t// the morphTarget is named.\n\t\t\t\tfor ( const morphTargetName in morphTargetNames ) {\n\n\t\t\t\t\tconst times = [];\n\t\t\t\t\tconst values = [];\n\n\t\t\t\t\tfor ( let m = 0; m !== animationKeys[ k ].morphTargets.length; ++ m ) {\n\n\t\t\t\t\t\tconst animationKey = animationKeys[ k ];\n\n\t\t\t\t\t\ttimes.push( animationKey.time );\n\t\t\t\t\t\tvalues.push( ( animationKey.morphTarget === morphTargetName ) ? 1 : 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttracks.push( new NumberKeyframeTrack( '.morphTargetInfluence[' + morphTargetName + ']', times, values ) );\n\n\t\t\t\t}\n\n\t\t\t\tduration = morphTargetNames.length * fps;\n\n\t\t\t} else {\n\n\t\t\t\t// ...assume skeletal animation\n\n\t\t\t\tconst boneName = '.bones[' + bones[ h ].name + ']';\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.position',\n\t\t\t\t\tanimationKeys, 'pos', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tQuaternionKeyframeTrack, boneName + '.quaternion',\n\t\t\t\t\tanimationKeys, 'rot', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.scale',\n\t\t\t\t\tanimationKeys, 'scl', tracks );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tracks.length === 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst clip = new this( clipName, duration, tracks, blendMode );\n\n\t\treturn clip;\n\n\t}\n\n\tresetDuration() {\n\n\t\tconst tracks = this.tracks;\n\t\tlet duration = 0;\n\n\t\tfor ( let i = 0, n = tracks.length; i !== n; ++ i ) {\n\n\t\t\tconst track = this.tracks[ i ];\n\n\t\t\tduration = Math.max( duration, track.times[ track.times.length - 1 ] );\n\n\t\t}\n\n\t\tthis.duration = duration;\n\n\t\treturn this;\n\n\t}\n\n\ttrim() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].trim( 0, this.duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tvalid = valid && this.tracks[ i ].validate();\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\toptimize() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].optimize();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\ttracks.push( this.tracks[ i ].clone() );\n\n\t\t}\n\n\t\treturn new this.constructor( this.name, this.duration, tracks, this.blendMode );\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.constructor.toJSON( this );\n\n\t}\n\n}\n\nfunction getTrackTypeForValueTypeName( typeName ) {\n\n\tswitch ( typeName.toLowerCase() ) {\n\n\t\tcase 'scalar':\n\t\tcase 'double':\n\t\tcase 'float':\n\t\tcase 'number':\n\t\tcase 'integer':\n\n\t\t\treturn NumberKeyframeTrack;\n\n\t\tcase 'vector':\n\t\tcase 'vector2':\n\t\tcase 'vector3':\n\t\tcase 'vector4':\n\n\t\t\treturn VectorKeyframeTrack;\n\n\t\tcase 'color':\n\n\t\t\treturn ColorKeyframeTrack;\n\n\t\tcase 'quaternion':\n\n\t\t\treturn QuaternionKeyframeTrack;\n\n\t\tcase 'bool':\n\t\tcase 'boolean':\n\n\t\t\treturn BooleanKeyframeTrack;\n\n\t\tcase 'string':\n\n\t\t\treturn StringKeyframeTrack;\n\n\t}\n\n\tthrow new Error( 'THREE.KeyframeTrack: Unsupported typeName: ' + typeName );\n\n}\n\nfunction parseKeyframeTrack( json ) {\n\n\tif ( json.type === undefined ) {\n\n\t\tthrow new Error( 'THREE.KeyframeTrack: track type undefined, can not parse' );\n\n\t}\n\n\tconst trackType = getTrackTypeForValueTypeName( json.type );\n\n\tif ( json.times === undefined ) {\n\n\t\tconst times = [], values = [];\n\n\t\tflattenJSON( json.keys, times, values, 'value' );\n\n\t\tjson.times = times;\n\t\tjson.values = values;\n\n\t}\n\n\t// derived classes can define a static parse method\n\tif ( trackType.parse !== undefined ) {\n\n\t\treturn trackType.parse( json );\n\n\t} else {\n\n\t\t// by default, we assume a constructor compatible with the base\n\t\treturn new trackType( json.name, json.times, json.values, json.interpolation );\n\n\t}\n\n}\n\nconst Cache = {\n\n\tenabled: false,\n\n\tfiles: {},\n\n\tadd: function ( key, file ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Adding key:', key );\n\n\t\tthis.files[ key ] = file;\n\n\t},\n\n\tget: function ( key ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Checking key:', key );\n\n\t\treturn this.files[ key ];\n\n\t},\n\n\tremove: function ( key ) {\n\n\t\tdelete this.files[ key ];\n\n\t},\n\n\tclear: function () {\n\n\t\tthis.files = {};\n\n\t}\n\n};\n\nclass LoadingManager {\n\n\tconstructor( onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet isLoading = false;\n\t\tlet itemsLoaded = 0;\n\t\tlet itemsTotal = 0;\n\t\tlet urlModifier = undefined;\n\t\tconst handlers = [];\n\n\t\t// Refer to #5689 for the reason why we don't set .onStart\n\t\t// in the constructor\n\n\t\tthis.onStart = undefined;\n\t\tthis.onLoad = onLoad;\n\t\tthis.onProgress = onProgress;\n\t\tthis.onError = onError;\n\n\t\tthis.itemStart = function ( url ) {\n\n\t\t\titemsTotal ++;\n\n\t\t\tif ( isLoading === false ) {\n\n\t\t\t\tif ( scope.onStart !== undefined ) {\n\n\t\t\t\t\tscope.onStart( url, itemsLoaded, itemsTotal );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tisLoading = true;\n\n\t\t};\n\n\t\tthis.itemEnd = function ( url ) {\n\n\t\t\titemsLoaded ++;\n\n\t\t\tif ( scope.onProgress !== undefined ) {\n\n\t\t\t\tscope.onProgress( url, itemsLoaded, itemsTotal );\n\n\t\t\t}\n\n\t\t\tif ( itemsLoaded === itemsTotal ) {\n\n\t\t\t\tisLoading = false;\n\n\t\t\t\tif ( scope.onLoad !== undefined ) {\n\n\t\t\t\t\tscope.onLoad();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.itemError = function ( url ) {\n\n\t\t\tif ( scope.onError !== undefined ) {\n\n\t\t\t\tscope.onError( url );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.resolveURL = function ( url ) {\n\n\t\t\tif ( urlModifier ) {\n\n\t\t\t\treturn urlModifier( url );\n\n\t\t\t}\n\n\t\t\treturn url;\n\n\t\t};\n\n\t\tthis.setURLModifier = function ( transform ) {\n\n\t\t\turlModifier = transform;\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.addHandler = function ( regex, loader ) {\n\n\t\t\thandlers.push( regex, loader );\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.removeHandler = function ( regex ) {\n\n\t\t\tconst index = handlers.indexOf( regex );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\thandlers.splice( index, 2 );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.getHandler = function ( file ) {\n\n\t\t\tfor ( let i = 0, l = handlers.length; i < l; i += 2 ) {\n\n\t\t\t\tconst regex = handlers[ i ];\n\t\t\t\tconst loader = handlers[ i + 1 ];\n\n\t\t\t\tif ( regex.global ) regex.lastIndex = 0; // see #17920\n\n\t\t\t\tif ( regex.test( file ) ) {\n\n\t\t\t\t\treturn loader;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn null;\n\n\t\t};\n\n\t}\n\n}\n\nconst DefaultLoadingManager = /*@__PURE__*/ new LoadingManager();\n\nclass Loader {\n\n\tconstructor( manager ) {\n\n\t\tthis.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;\n\n\t\tthis.crossOrigin = 'anonymous';\n\t\tthis.withCredentials = false;\n\t\tthis.path = '';\n\t\tthis.resourcePath = '';\n\t\tthis.requestHeader = {};\n\n\t}\n\n\tload( /* url, onLoad, onProgress, onError */ ) {}\n\n\tloadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.load( url, resolve, onProgress, reject );\n\n\t\t} );\n\n\t}\n\n\tparse( /* data */ ) {}\n\n\tsetCrossOrigin( crossOrigin ) {\n\n\t\tthis.crossOrigin = crossOrigin;\n\t\treturn this;\n\n\t}\n\n\tsetWithCredentials( value ) {\n\n\t\tthis.withCredentials = value;\n\t\treturn this;\n\n\t}\n\n\tsetPath( path ) {\n\n\t\tthis.path = path;\n\t\treturn this;\n\n\t}\n\n\tsetResourcePath( resourcePath ) {\n\n\t\tthis.resourcePath = resourcePath;\n\t\treturn this;\n\n\t}\n\n\tsetRequestHeader( requestHeader ) {\n\n\t\tthis.requestHeader = requestHeader;\n\t\treturn this;\n\n\t}\n\n}\n\nLoader.DEFAULT_MATERIAL_NAME = '__DEFAULT';\n\nconst loading = {};\n\nclass HttpError extends Error {\n\n\tconstructor( message, response ) {\n\n\t\tsuper( message );\n\t\tthis.response = response;\n\n\t}\n\n}\n\nclass FileLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tthis.manager.itemStart( url );\n\n\t\t\tsetTimeout( () => {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\t// Check if request is duplicate\n\n\t\tif ( loading[ url ] !== undefined ) {\n\n\t\t\tloading[ url ].push( {\n\n\t\t\t\tonLoad: onLoad,\n\t\t\t\tonProgress: onProgress,\n\t\t\t\tonError: onError\n\n\t\t\t} );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// Initialise array for duplicate requests\n\t\tloading[ url ] = [];\n\n\t\tloading[ url ].push( {\n\t\t\tonLoad: onLoad,\n\t\t\tonProgress: onProgress,\n\t\t\tonError: onError,\n\t\t} );\n\n\t\t// create request\n\t\tconst req = new Request( url, {\n\t\t\theaders: new Headers( this.requestHeader ),\n\t\t\tcredentials: this.withCredentials ? 'include' : 'same-origin',\n\t\t\t// An abort controller could be added within a future PR\n\t\t} );\n\n\t\t// record states ( avoid data race )\n\t\tconst mimeType = this.mimeType;\n\t\tconst responseType = this.responseType;\n\n\t\t// start the fetch\n\t\tfetch( req )\n\t\t\t.then( response => {\n\n\t\t\t\tif ( response.status === 200 || response.status === 0 ) {\n\n\t\t\t\t\t// Some browsers return HTTP Status 0 when using non-http protocol\n\t\t\t\t\t// e.g. 'file://' or 'data://'. Handle as success.\n\n\t\t\t\t\tif ( response.status === 0 ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.FileLoader: HTTP Status 0 received.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Workaround: Checking if response.body === undefined for Alipay browser #23548\n\n\t\t\t\t\tif ( typeof ReadableStream === 'undefined' || response.body === undefined || response.body.getReader === undefined ) {\n\n\t\t\t\t\t\treturn response;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\t\tconst reader = response.body.getReader();\n\n\t\t\t\t\t// Nginx needs X-File-Size check\n\t\t\t\t\t// https://serverfault.com/questions/482875/why-does-nginx-remove-content-length-header-for-chunked-content\n\t\t\t\t\tconst contentLength = response.headers.get( 'X-File-Size' ) || response.headers.get( 'Content-Length' );\n\t\t\t\t\tconst total = contentLength ? parseInt( contentLength ) : 0;\n\t\t\t\t\tconst lengthComputable = total !== 0;\n\t\t\t\t\tlet loaded = 0;\n\n\t\t\t\t\t// periodically read data into the new stream tracking while download progress\n\t\t\t\t\tconst stream = new ReadableStream( {\n\t\t\t\t\t\tstart( controller ) {\n\n\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\tfunction readData() {\n\n\t\t\t\t\t\t\t\treader.read().then( ( { done, value } ) => {\n\n\t\t\t\t\t\t\t\t\tif ( done ) {\n\n\t\t\t\t\t\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\tloaded += value.byteLength;\n\n\t\t\t\t\t\t\t\t\t\tconst event = new ProgressEvent( 'progress', { lengthComputable, loaded, total } );\n\t\t\t\t\t\t\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\t\t\t\t\t\t\tif ( callback.onProgress ) callback.onProgress( event );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tcontroller.enqueue( value );\n\t\t\t\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t}, ( e ) => {\n\n\t\t\t\t\t\t\t\t\tcontroller.error( e );\n\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn new Response( stream );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new HttpError( `fetch for \"${response.url}\" responded with ${response.status}: ${response.statusText}`, response );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( response => {\n\n\t\t\t\tswitch ( responseType ) {\n\n\t\t\t\t\tcase 'arraybuffer':\n\n\t\t\t\t\t\treturn response.arrayBuffer();\n\n\t\t\t\t\tcase 'blob':\n\n\t\t\t\t\t\treturn response.blob();\n\n\t\t\t\t\tcase 'document':\n\n\t\t\t\t\t\treturn response.text()\n\t\t\t\t\t\t\t.then( text => {\n\n\t\t\t\t\t\t\t\tconst parser = new DOMParser();\n\t\t\t\t\t\t\t\treturn parser.parseFromString( text, mimeType );\n\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\tcase 'json':\n\n\t\t\t\t\t\treturn response.json();\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( mimeType === undefined ) {\n\n\t\t\t\t\t\t\treturn response.text();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// sniff encoding\n\t\t\t\t\t\t\tconst re = /charset=\"?([^;\"\\s]*)\"?/i;\n\t\t\t\t\t\t\tconst exec = re.exec( mimeType );\n\t\t\t\t\t\t\tconst label = exec && exec[ 1 ] ? exec[ 1 ].toLowerCase() : undefined;\n\t\t\t\t\t\t\tconst decoder = new TextDecoder( label );\n\t\t\t\t\t\t\treturn response.arrayBuffer().then( ab => decoder.decode( ab ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( data => {\n\n\t\t\t\t// Add to cache only on HTTP success, so that we do not cache\n\t\t\t\t// error response bodies as proper responses to requests.\n\t\t\t\tCache.add( url, data );\n\n\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onLoad ) callback.onLoad( data );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.catch( err => {\n\n\t\t\t\t// Abort errors and other errors are handled the same\n\n\t\t\t\tconst callbacks = loading[ url ];\n\n\t\t\t\tif ( callbacks === undefined ) {\n\n\t\t\t\t\t// When onLoad was called and url was deleted in `loading`\n\t\t\t\t\tthis.manager.itemError( url );\n\t\t\t\t\tthrow err;\n\n\t\t\t\t}\n\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onError ) callback.onError( err );\n\n\t\t\t\t}\n\n\t\t\t\tthis.manager.itemError( url );\n\n\t\t\t} )\n\t\t\t.finally( () => {\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\tthis.manager.itemStart( url );\n\n\t}\n\n\tsetResponseType( value ) {\n\n\t\tthis.responseType = value;\n\t\treturn this;\n\n\t}\n\n\tsetMimeType( value ) {\n\n\t\tthis.mimeType = value;\n\t\treturn this;\n\n\t}\n\n}\n\nclass AnimationLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst animations = [];\n\n\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\tconst clip = AnimationClip.parse( json[ i ] );\n\n\t\t\tanimations.push( clip );\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to block based textures loader (dds, pvr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass CompressedTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst images = [];\n\n\t\tconst texture = new CompressedTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( url[ i ], function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\timages[ i ] = {\n\t\t\t\t\twidth: texDatas.width,\n\t\t\t\t\theight: texDatas.height,\n\t\t\t\t\tformat: texDatas.format,\n\t\t\t\t\tmipmaps: texDatas.mipmaps\n\t\t\t\t};\n\n\t\t\t\tloaded += 1;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\tif ( texDatas.mipmapCount === 1 ) texture.minFilter = LinearFilter;\n\n\t\t\t\t\ttexture.image = images;\n\t\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\tif ( Array.isArray( url ) ) {\n\n\t\t\tfor ( let i = 0, il = url.length; i < il; ++ i ) {\n\n\t\t\t\tloadTexture( i );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// compressed cubemap texture stored in a single DDS file\n\n\t\t\tloader.load( url, function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\tif ( texDatas.isCubemap ) {\n\n\t\t\t\t\tconst faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n\n\t\t\t\t\tfor ( let f = 0; f < faces; f ++ ) {\n\n\t\t\t\t\t\timages[ f ] = { mipmaps: [] };\n\n\t\t\t\t\t\tfor ( let i = 0; i < texDatas.mipmapCount; i ++ ) {\n\n\t\t\t\t\t\t\timages[ f ].mipmaps.push( texDatas.mipmaps[ f * texDatas.mipmapCount + i ] );\n\t\t\t\t\t\t\timages[ f ].format = texDatas.format;\n\t\t\t\t\t\t\timages[ f ].width = texDatas.width;\n\t\t\t\t\t\t\timages[ f ].height = texDatas.height;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.image = images;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ttexture.image.width = texDatas.width;\n\t\t\t\t\ttexture.image.height = texDatas.height;\n\t\t\t\t\ttexture.mipmaps = texDatas.mipmaps;\n\n\t\t\t\t}\n\n\t\t\t\tif ( texDatas.mipmapCount === 1 ) {\n\n\t\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t\t}\n\n\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass ImageLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst image = createElementNS( 'img' );\n\n\t\tfunction onImageLoad() {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tCache.add( url, this );\n\n\t\t\tif ( onLoad ) onLoad( this );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction onImageError( event ) {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tif ( onError ) onError( event );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction removeEventListeners() {\n\n\t\t\timage.removeEventListener( 'load', onImageLoad, false );\n\t\t\timage.removeEventListener( 'error', onImageError, false );\n\n\t\t}\n\n\t\timage.addEventListener( 'load', onImageLoad, false );\n\t\timage.addEventListener( 'error', onImageError, false );\n\n\t\tif ( url.slice( 0, 5 ) !== 'data:' ) {\n\n\t\t\tif ( this.crossOrigin !== undefined ) image.crossOrigin = this.crossOrigin;\n\n\t\t}\n\n\t\tscope.manager.itemStart( url );\n\n\t\timage.src = url;\n\n\t\treturn image;\n\n\t}\n\n}\n\nclass CubeTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( urls, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new CubeTexture();\n\t\ttexture.colorSpace = SRGBColorSpace;\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( urls[ i ], function ( image ) {\n\n\t\t\t\ttexture.images[ i ] = image;\n\n\t\t\t\tloaded ++;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, undefined, onError );\n\n\t\t}\n\n\t\tfor ( let i = 0; i < urls.length; ++ i ) {\n\n\t\t\tloadTexture( i );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass DataTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst texture = new DataTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setPath( this.path );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\tlet texData;\n\n\t\t\ttry {\n\n\t\t\t\ttexData = scope.parse( buffer );\n\n\t\t\t} catch ( error ) {\n\n\t\t\t\tif ( onError !== undefined ) {\n\n\t\t\t\t\tonError( error );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( error );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( texData.image !== undefined ) {\n\n\t\t\t\ttexture.image = texData.image;\n\n\t\t\t} else if ( texData.data !== undefined ) {\n\n\t\t\t\ttexture.image.width = texData.width;\n\t\t\t\ttexture.image.height = texData.height;\n\t\t\t\ttexture.image.data = texData.data;\n\n\t\t\t}\n\n\t\t\ttexture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping;\n\t\t\ttexture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping;\n\n\t\t\ttexture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter;\n\t\t\ttexture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter;\n\n\t\t\ttexture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\n\n\t\t\tif ( texData.colorSpace !== undefined ) {\n\n\t\t\t\ttexture.colorSpace = texData.colorSpace;\n\n\t\t\t}\n\n\t\t\tif ( texData.flipY !== undefined ) {\n\n\t\t\t\ttexture.flipY = texData.flipY;\n\n\t\t\t}\n\n\t\t\tif ( texData.format !== undefined ) {\n\n\t\t\t\ttexture.format = texData.format;\n\n\t\t\t}\n\n\t\t\tif ( texData.type !== undefined ) {\n\n\t\t\t\ttexture.type = texData.type;\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmaps !== undefined ) {\n\n\t\t\t\ttexture.mipmaps = texData.mipmaps;\n\t\t\t\ttexture.minFilter = LinearMipmapLinearFilter; // presumably...\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmapCount === 1 ) {\n\n\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t}\n\n\t\t\tif ( texData.generateMipmaps !== undefined ) {\n\n\t\t\t\ttexture.generateMipmaps = texData.generateMipmaps;\n\n\t\t\t}\n\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad ) onLoad( texture, texData );\n\n\t\t}, onProgress, onError );\n\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass TextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new Texture();\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tloader.load( url, function ( image ) {\n\n\t\t\ttexture.image = image;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad !== undefined ) {\n\n\t\t\t\tonLoad( texture );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass Light extends Object3D {\n\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.isLight = true;\n\n\t\tthis.type = 'Light';\n\n\t\tthis.color = new Color( color );\n\t\tthis.intensity = intensity;\n\n\t}\n\n\tdispose() {\n\n\t\t// Empty here in base class; some subclasses override.\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.intensity = source.intensity;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.color = this.color.getHex();\n\t\tdata.object.intensity = this.intensity;\n\n\t\tif ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex();\n\n\t\tif ( this.distance !== undefined ) data.object.distance = this.distance;\n\t\tif ( this.angle !== undefined ) data.object.angle = this.angle;\n\t\tif ( this.decay !== undefined ) data.object.decay = this.decay;\n\t\tif ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra;\n\n\t\tif ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON();\n\t\tif ( this.target !== undefined ) data.object.target = this.target.uuid;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass HemisphereLight extends Light {\n\n\tconstructor( skyColor, groundColor, intensity ) {\n\n\t\tsuper( skyColor, intensity );\n\n\t\tthis.isHemisphereLight = true;\n\n\t\tthis.type = 'HemisphereLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.groundColor = new Color( groundColor );\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.groundColor.copy( source.groundColor );\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _projScreenMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld$1 = /*@__PURE__*/ new Vector3();\nconst _lookTarget$1 = /*@__PURE__*/ new Vector3();\n\nclass LightShadow {\n\n\tconstructor( camera ) {\n\n\t\tthis.camera = camera;\n\n\t\tthis.intensity = 1;\n\n\t\tthis.bias = 0;\n\t\tthis.normalBias = 0;\n\t\tthis.radius = 1;\n\t\tthis.blurSamples = 8;\n\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\tthis.map = null;\n\t\tthis.mapPass = null;\n\t\tthis.matrix = new Matrix4();\n\n\t\tthis.autoUpdate = true;\n\t\tthis.needsUpdate = false;\n\n\t\tthis._frustum = new Frustum();\n\t\tthis._frameExtents = new Vector2( 1, 1 );\n\n\t\tthis._viewportCount = 1;\n\n\t\tthis._viewports = [\n\n\t\t\tnew Vector4( 0, 0, 1, 1 )\n\n\t\t];\n\n\t}\n\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst shadowCamera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\t_lightPositionWorld$1.setFromMatrixPosition( light.matrixWorld );\n\t\tshadowCamera.position.copy( _lightPositionWorld$1 );\n\n\t\t_lookTarget$1.setFromMatrixPosition( light.target.matrixWorld );\n\t\tshadowCamera.lookAt( _lookTarget$1 );\n\t\tshadowCamera.updateMatrixWorld();\n\n\t\t_projScreenMatrix$1.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix$1 );\n\n\t\tshadowMatrix.set(\n\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t);\n\n\t\tshadowMatrix.multiply( _projScreenMatrix$1 );\n\n\t}\n\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\tdispose() {\n\n\t\tif ( this.map ) {\n\n\t\t\tthis.map.dispose();\n\n\t\t}\n\n\t\tif ( this.mapPass ) {\n\n\t\t\tthis.mapPass.dispose();\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.camera = source.camera.clone();\n\n\t\tthis.intensity = source.intensity;\n\n\t\tthis.bias = source.bias;\n\t\tthis.radius = source.radius;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst object = {};\n\n\t\tif ( this.intensity !== 1 ) object.intensity = this.intensity;\n\t\tif ( this.bias !== 0 ) object.bias = this.bias;\n\t\tif ( this.normalBias !== 0 ) object.normalBias = this.normalBias;\n\t\tif ( this.radius !== 1 ) object.radius = this.radius;\n\t\tif ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray();\n\n\t\tobject.camera = this.camera.toJSON( false ).object;\n\t\tdelete object.camera.matrix;\n\n\t\treturn object;\n\n\t}\n\n}\n\nclass SpotLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 50, 1, 0.5, 500 ) );\n\n\t\tthis.isSpotLightShadow = true;\n\n\t\tthis.focus = 1;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst camera = this.camera;\n\n\t\tconst fov = RAD2DEG * 2 * light.angle * this.focus;\n\t\tconst aspect = this.mapSize.width / this.mapSize.height;\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( fov !== camera.fov || aspect !== camera.aspect || far !== camera.far ) {\n\n\t\t\tcamera.fov = fov;\n\t\t\tcamera.aspect = aspect;\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\tsuper.updateMatrices( light );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.focus = source.focus;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass SpotLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isSpotLight = true;\n\n\t\tthis.type = 'SpotLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.distance = distance;\n\t\tthis.angle = angle;\n\t\tthis.penumbra = penumbra;\n\t\tthis.decay = decay;\n\n\t\tthis.map = null;\n\n\t\tthis.shadow = new SpotLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// by convention for a spotlight, luminous power (lm) = π * luminous intensity (cd)\n\t\treturn this.intensity * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / Math.PI;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.distance = source.distance;\n\t\tthis.angle = source.angle;\n\t\tthis.penumbra = source.penumbra;\n\t\tthis.decay = source.decay;\n\n\t\tthis.target = source.target.clone();\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass PointLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\tthis.isPointLightShadow = true;\n\n\t\tthis._frameExtents = new Vector2( 4, 2 );\n\n\t\tthis._viewportCount = 6;\n\n\t\tthis._viewports = [\n\t\t\t// These viewports map a cube-map onto a 2D texture with the\n\t\t\t// following orientation:\n\t\t\t//\n\t\t\t// xzXZ\n\t\t\t// y Y\n\t\t\t//\n\t\t\t// X - Positive x direction\n\t\t\t// x - Negative x direction\n\t\t\t// Y - Positive y direction\n\t\t\t// y - Negative y direction\n\t\t\t// Z - Positive z direction\n\t\t\t// z - Negative z direction\n\n\t\t\t// positive X\n\t\t\tnew Vector4( 2, 1, 1, 1 ),\n\t\t\t// negative X\n\t\t\tnew Vector4( 0, 1, 1, 1 ),\n\t\t\t// positive Z\n\t\t\tnew Vector4( 3, 1, 1, 1 ),\n\t\t\t// negative Z\n\t\t\tnew Vector4( 1, 1, 1, 1 ),\n\t\t\t// positive Y\n\t\t\tnew Vector4( 3, 0, 1, 1 ),\n\t\t\t// negative Y\n\t\t\tnew Vector4( 1, 0, 1, 1 )\n\t\t];\n\n\t\tthis._cubeDirections = [\n\t\t\tnew Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ),\n\t\t\tnew Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 )\n\t\t];\n\n\t\tthis._cubeUps = [\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ),\tnew Vector3( 0, 0, - 1 )\n\t\t];\n\n\t}\n\n\tupdateMatrices( light, viewportIndex = 0 ) {\n\n\t\tconst camera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( far !== camera.far ) {\n\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tcamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.copy( camera.position );\n\t\t_lookTarget.add( this._cubeDirections[ viewportIndex ] );\n\t\tcamera.up.copy( this._cubeUps[ viewportIndex ] );\n\t\tcamera.lookAt( _lookTarget );\n\t\tcamera.updateMatrixWorld();\n\n\t\tshadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t}\n\n}\n\nclass PointLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isPointLight = true;\n\n\t\tthis.type = 'PointLight';\n\n\t\tthis.distance = distance;\n\t\tthis.decay = decay;\n\n\t\tthis.shadow = new PointLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// for an isotropic light source, luminous power (lm) = 4 π luminous intensity (cd)\n\t\treturn this.intensity * 4 * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( 4 * Math.PI );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.distance = source.distance;\n\t\tthis.decay = source.decay;\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass DirectionalLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new OrthographicCamera( - 5, 5, 5, - 5, 0.5, 500 ) );\n\n\t\tthis.isDirectionalLightShadow = true;\n\n\t}\n\n}\n\nclass DirectionalLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isDirectionalLight = true;\n\n\t\tthis.type = 'DirectionalLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.shadow = new DirectionalLightShadow();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.target = source.target.clone();\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass AmbientLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isAmbientLight = true;\n\n\t\tthis.type = 'AmbientLight';\n\n\t}\n\n}\n\nclass RectAreaLight extends Light {\n\n\tconstructor( color, intensity, width = 10, height = 10 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isRectAreaLight = true;\n\n\t\tthis.type = 'RectAreaLight';\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in nits)\n\t\treturn this.intensity * this.width * this.height * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in nits) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( this.width * this.height * Math.PI );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.width = this.width;\n\t\tdata.object.height = this.height;\n\n\t\treturn data;\n\n\t}\n\n}\n\n/**\n * Primary reference:\n * https://graphics.stanford.edu/papers/envmap/envmap.pdf\n *\n * Secondary reference:\n * https://www.ppsloan.org/publications/StupidSH36.pdf\n */\n\n// 3-band SH defined by 9 coefficients\n\nclass SphericalHarmonics3 {\n\n\tconstructor() {\n\n\t\tthis.isSphericalHarmonics3 = true;\n\n\t\tthis.coefficients = [];\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients.push( new Vector3() );\n\n\t\t}\n\n\t}\n\n\tset( coefficients ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].copy( coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tzero() {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].set( 0, 0, 0 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// get the radiance in the direction of the normal\n\t// target is a Vector3\n\tgetAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.282095 );\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 0.488603 * y );\n\t\ttarget.addScaledVector( coeff[ 2 ], 0.488603 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 0.488603 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 1.092548 * ( x * y ) );\n\t\ttarget.addScaledVector( coeff[ 5 ], 1.092548 * ( y * z ) );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );\n\t\ttarget.addScaledVector( coeff[ 7 ], 1.092548 * ( x * z ) );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );\n\n\t\treturn target;\n\n\t}\n\n\t// get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n\t// target is a Vector3\n\t// https://graphics.stanford.edu/papers/envmap/envmap.pdf\n\tgetIrradianceAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.886227 ); // π * 0.282095\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603\n\t\ttarget.addScaledVector( coeff[ 2 ], 2.0 * 0.511664 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 2.0 * 0.511664 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548\n\t\ttarget.addScaledVector( coeff[ 5 ], 2.0 * 0.429043 * y * z );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3\n\t\ttarget.addScaledVector( coeff[ 7 ], 2.0 * 0.429043 * x * z );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274\n\n\t\treturn target;\n\n\t}\n\n\tadd( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].add( sh.coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\taddScaledSH( sh, s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].addScaledVector( sh.coefficients[ i ], s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tscale( s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].multiplyScalar( s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tlerp( sh, alpha ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].lerp( sh.coefficients[ i ], alpha );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( ! this.coefficients[ i ].equals( sh.coefficients[ i ] ) ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcopy( sh ) {\n\n\t\treturn this.set( sh.coefficients );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].fromArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].toArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn array;\n\n\t}\n\n\t// evaluate the basis functions\n\t// shBasis is an Array[ 9 ]\n\tstatic getBasisAt( normal, shBasis ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\t// band 0\n\t\tshBasis[ 0 ] = 0.282095;\n\n\t\t// band 1\n\t\tshBasis[ 1 ] = 0.488603 * y;\n\t\tshBasis[ 2 ] = 0.488603 * z;\n\t\tshBasis[ 3 ] = 0.488603 * x;\n\n\t\t// band 2\n\t\tshBasis[ 4 ] = 1.092548 * x * y;\n\t\tshBasis[ 5 ] = 1.092548 * y * z;\n\t\tshBasis[ 6 ] = 0.315392 * ( 3 * z * z - 1 );\n\t\tshBasis[ 7 ] = 1.092548 * x * z;\n\t\tshBasis[ 8 ] = 0.546274 * ( x * x - y * y );\n\n\t}\n\n}\n\nclass LightProbe extends Light {\n\n\tconstructor( sh = new SphericalHarmonics3(), intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tthis.isLightProbe = true;\n\n\t\tthis.sh = sh;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.sh.copy( source.sh );\n\n\t\treturn this;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON();\n\t\tthis.sh.fromArray( json.sh );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.sh = this.sh.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass MaterialLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\t\tthis.textures = {};\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst textures = this.textures;\n\n\t\tfunction getTexture( name ) {\n\n\t\t\tif ( textures[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.MaterialLoader: Undefined texture', name );\n\n\t\t\t}\n\n\t\t\treturn textures[ name ];\n\n\t\t}\n\n\t\tconst material = this.createMaterialFromType( json.type );\n\n\t\tif ( json.uuid !== undefined ) material.uuid = json.uuid;\n\t\tif ( json.name !== undefined ) material.name = json.name;\n\t\tif ( json.color !== undefined && material.color !== undefined ) material.color.setHex( json.color );\n\t\tif ( json.roughness !== undefined ) material.roughness = json.roughness;\n\t\tif ( json.metalness !== undefined ) material.metalness = json.metalness;\n\t\tif ( json.sheen !== undefined ) material.sheen = json.sheen;\n\t\tif ( json.sheenColor !== undefined ) material.sheenColor = new Color().setHex( json.sheenColor );\n\t\tif ( json.sheenRoughness !== undefined ) material.sheenRoughness = json.sheenRoughness;\n\t\tif ( json.emissive !== undefined && material.emissive !== undefined ) material.emissive.setHex( json.emissive );\n\t\tif ( json.specular !== undefined && material.specular !== undefined ) material.specular.setHex( json.specular );\n\t\tif ( json.specularIntensity !== undefined ) material.specularIntensity = json.specularIntensity;\n\t\tif ( json.specularColor !== undefined && material.specularColor !== undefined ) material.specularColor.setHex( json.specularColor );\n\t\tif ( json.shininess !== undefined ) material.shininess = json.shininess;\n\t\tif ( json.clearcoat !== undefined ) material.clearcoat = json.clearcoat;\n\t\tif ( json.clearcoatRoughness !== undefined ) material.clearcoatRoughness = json.clearcoatRoughness;\n\t\tif ( json.dispersion !== undefined ) material.dispersion = json.dispersion;\n\t\tif ( json.iridescence !== undefined ) material.iridescence = json.iridescence;\n\t\tif ( json.iridescenceIOR !== undefined ) material.iridescenceIOR = json.iridescenceIOR;\n\t\tif ( json.iridescenceThicknessRange !== undefined ) material.iridescenceThicknessRange = json.iridescenceThicknessRange;\n\t\tif ( json.transmission !== undefined ) material.transmission = json.transmission;\n\t\tif ( json.thickness !== undefined ) material.thickness = json.thickness;\n\t\tif ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance;\n\t\tif ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor );\n\t\tif ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy;\n\t\tif ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation;\n\t\tif ( json.fog !== undefined ) material.fog = json.fog;\n\t\tif ( json.flatShading !== undefined ) material.flatShading = json.flatShading;\n\t\tif ( json.blending !== undefined ) material.blending = json.blending;\n\t\tif ( json.combine !== undefined ) material.combine = json.combine;\n\t\tif ( json.side !== undefined ) material.side = json.side;\n\t\tif ( json.shadowSide !== undefined ) material.shadowSide = json.shadowSide;\n\t\tif ( json.opacity !== undefined ) material.opacity = json.opacity;\n\t\tif ( json.transparent !== undefined ) material.transparent = json.transparent;\n\t\tif ( json.alphaTest !== undefined ) material.alphaTest = json.alphaTest;\n\t\tif ( json.alphaHash !== undefined ) material.alphaHash = json.alphaHash;\n\t\tif ( json.depthFunc !== undefined ) material.depthFunc = json.depthFunc;\n\t\tif ( json.depthTest !== undefined ) material.depthTest = json.depthTest;\n\t\tif ( json.depthWrite !== undefined ) material.depthWrite = json.depthWrite;\n\t\tif ( json.colorWrite !== undefined ) material.colorWrite = json.colorWrite;\n\t\tif ( json.blendSrc !== undefined ) material.blendSrc = json.blendSrc;\n\t\tif ( json.blendDst !== undefined ) material.blendDst = json.blendDst;\n\t\tif ( json.blendEquation !== undefined ) material.blendEquation = json.blendEquation;\n\t\tif ( json.blendSrcAlpha !== undefined ) material.blendSrcAlpha = json.blendSrcAlpha;\n\t\tif ( json.blendDstAlpha !== undefined ) material.blendDstAlpha = json.blendDstAlpha;\n\t\tif ( json.blendEquationAlpha !== undefined ) material.blendEquationAlpha = json.blendEquationAlpha;\n\t\tif ( json.blendColor !== undefined && material.blendColor !== undefined ) material.blendColor.setHex( json.blendColor );\n\t\tif ( json.blendAlpha !== undefined ) material.blendAlpha = json.blendAlpha;\n\t\tif ( json.stencilWriteMask !== undefined ) material.stencilWriteMask = json.stencilWriteMask;\n\t\tif ( json.stencilFunc !== undefined ) material.stencilFunc = json.stencilFunc;\n\t\tif ( json.stencilRef !== undefined ) material.stencilRef = json.stencilRef;\n\t\tif ( json.stencilFuncMask !== undefined ) material.stencilFuncMask = json.stencilFuncMask;\n\t\tif ( json.stencilFail !== undefined ) material.stencilFail = json.stencilFail;\n\t\tif ( json.stencilZFail !== undefined ) material.stencilZFail = json.stencilZFail;\n\t\tif ( json.stencilZPass !== undefined ) material.stencilZPass = json.stencilZPass;\n\t\tif ( json.stencilWrite !== undefined ) material.stencilWrite = json.stencilWrite;\n\n\t\tif ( json.wireframe !== undefined ) material.wireframe = json.wireframe;\n\t\tif ( json.wireframeLinewidth !== undefined ) material.wireframeLinewidth = json.wireframeLinewidth;\n\t\tif ( json.wireframeLinecap !== undefined ) material.wireframeLinecap = json.wireframeLinecap;\n\t\tif ( json.wireframeLinejoin !== undefined ) material.wireframeLinejoin = json.wireframeLinejoin;\n\n\t\tif ( json.rotation !== undefined ) material.rotation = json.rotation;\n\n\t\tif ( json.linewidth !== undefined ) material.linewidth = json.linewidth;\n\t\tif ( json.dashSize !== undefined ) material.dashSize = json.dashSize;\n\t\tif ( json.gapSize !== undefined ) material.gapSize = json.gapSize;\n\t\tif ( json.scale !== undefined ) material.scale = json.scale;\n\n\t\tif ( json.polygonOffset !== undefined ) material.polygonOffset = json.polygonOffset;\n\t\tif ( json.polygonOffsetFactor !== undefined ) material.polygonOffsetFactor = json.polygonOffsetFactor;\n\t\tif ( json.polygonOffsetUnits !== undefined ) material.polygonOffsetUnits = json.polygonOffsetUnits;\n\n\t\tif ( json.dithering !== undefined ) material.dithering = json.dithering;\n\n\t\tif ( json.alphaToCoverage !== undefined ) material.alphaToCoverage = json.alphaToCoverage;\n\t\tif ( json.premultipliedAlpha !== undefined ) material.premultipliedAlpha = json.premultipliedAlpha;\n\t\tif ( json.forceSinglePass !== undefined ) material.forceSinglePass = json.forceSinglePass;\n\n\t\tif ( json.visible !== undefined ) material.visible = json.visible;\n\n\t\tif ( json.toneMapped !== undefined ) material.toneMapped = json.toneMapped;\n\n\t\tif ( json.userData !== undefined ) material.userData = json.userData;\n\n\t\tif ( json.vertexColors !== undefined ) {\n\n\t\t\tif ( typeof json.vertexColors === 'number' ) {\n\n\t\t\t\tmaterial.vertexColors = ( json.vertexColors > 0 ) ? true : false;\n\n\t\t\t} else {\n\n\t\t\t\tmaterial.vertexColors = json.vertexColors;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Shader Material\n\n\t\tif ( json.uniforms !== undefined ) {\n\n\t\t\tfor ( const name in json.uniforms ) {\n\n\t\t\t\tconst uniform = json.uniforms[ name ];\n\n\t\t\t\tmaterial.uniforms[ name ] = {};\n\n\t\t\t\tswitch ( uniform.type ) {\n\n\t\t\t\t\tcase 't':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = getTexture( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'c':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Color().setHex( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v2':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector2().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = uniform.value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json.defines !== undefined ) material.defines = json.defines;\n\t\tif ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;\n\t\tif ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;\n\t\tif ( json.glslVersion !== undefined ) material.glslVersion = json.glslVersion;\n\n\t\tif ( json.extensions !== undefined ) {\n\n\t\t\tfor ( const key in json.extensions ) {\n\n\t\t\t\tmaterial.extensions[ key ] = json.extensions[ key ];\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json.lights !== undefined ) material.lights = json.lights;\n\t\tif ( json.clipping !== undefined ) material.clipping = json.clipping;\n\n\t\t// for PointsMaterial\n\n\t\tif ( json.size !== undefined ) material.size = json.size;\n\t\tif ( json.sizeAttenuation !== undefined ) material.sizeAttenuation = json.sizeAttenuation;\n\n\t\t// maps\n\n\t\tif ( json.map !== undefined ) material.map = getTexture( json.map );\n\t\tif ( json.matcap !== undefined ) material.matcap = getTexture( json.matcap );\n\n\t\tif ( json.alphaMap !== undefined ) material.alphaMap = getTexture( json.alphaMap );\n\n\t\tif ( json.bumpMap !== undefined ) material.bumpMap = getTexture( json.bumpMap );\n\t\tif ( json.bumpScale !== undefined ) material.bumpScale = json.bumpScale;\n\n\t\tif ( json.normalMap !== undefined ) material.normalMap = getTexture( json.normalMap );\n\t\tif ( json.normalMapType !== undefined ) material.normalMapType = json.normalMapType;\n\t\tif ( json.normalScale !== undefined ) {\n\n\t\t\tlet normalScale = json.normalScale;\n\n\t\t\tif ( Array.isArray( normalScale ) === false ) {\n\n\t\t\t\t// Blender exporter used to export a scalar. See #7459\n\n\t\t\t\tnormalScale = [ normalScale, normalScale ];\n\n\t\t\t}\n\n\t\t\tmaterial.normalScale = new Vector2().fromArray( normalScale );\n\n\t\t}\n\n\t\tif ( json.displacementMap !== undefined ) material.displacementMap = getTexture( json.displacementMap );\n\t\tif ( json.displacementScale !== undefined ) material.displacementScale = json.displacementScale;\n\t\tif ( json.displacementBias !== undefined ) material.displacementBias = json.displacementBias;\n\n\t\tif ( json.roughnessMap !== undefined ) material.roughnessMap = getTexture( json.roughnessMap );\n\t\tif ( json.metalnessMap !== undefined ) material.metalnessMap = getTexture( json.metalnessMap );\n\n\t\tif ( json.emissiveMap !== undefined ) material.emissiveMap = getTexture( json.emissiveMap );\n\t\tif ( json.emissiveIntensity !== undefined ) material.emissiveIntensity = json.emissiveIntensity;\n\n\t\tif ( json.specularMap !== undefined ) material.specularMap = getTexture( json.specularMap );\n\t\tif ( json.specularIntensityMap !== undefined ) material.specularIntensityMap = getTexture( json.specularIntensityMap );\n\t\tif ( json.specularColorMap !== undefined ) material.specularColorMap = getTexture( json.specularColorMap );\n\n\t\tif ( json.envMap !== undefined ) material.envMap = getTexture( json.envMap );\n\t\tif ( json.envMapRotation !== undefined ) material.envMapRotation.fromArray( json.envMapRotation );\n\t\tif ( json.envMapIntensity !== undefined ) material.envMapIntensity = json.envMapIntensity;\n\n\t\tif ( json.reflectivity !== undefined ) material.reflectivity = json.reflectivity;\n\t\tif ( json.refractionRatio !== undefined ) material.refractionRatio = json.refractionRatio;\n\n\t\tif ( json.lightMap !== undefined ) material.lightMap = getTexture( json.lightMap );\n\t\tif ( json.lightMapIntensity !== undefined ) material.lightMapIntensity = json.lightMapIntensity;\n\n\t\tif ( json.aoMap !== undefined ) material.aoMap = getTexture( json.aoMap );\n\t\tif ( json.aoMapIntensity !== undefined ) material.aoMapIntensity = json.aoMapIntensity;\n\n\t\tif ( json.gradientMap !== undefined ) material.gradientMap = getTexture( json.gradientMap );\n\n\t\tif ( json.clearcoatMap !== undefined ) material.clearcoatMap = getTexture( json.clearcoatMap );\n\t\tif ( json.clearcoatRoughnessMap !== undefined ) material.clearcoatRoughnessMap = getTexture( json.clearcoatRoughnessMap );\n\t\tif ( json.clearcoatNormalMap !== undefined ) material.clearcoatNormalMap = getTexture( json.clearcoatNormalMap );\n\t\tif ( json.clearcoatNormalScale !== undefined ) material.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );\n\n\t\tif ( json.iridescenceMap !== undefined ) material.iridescenceMap = getTexture( json.iridescenceMap );\n\t\tif ( json.iridescenceThicknessMap !== undefined ) material.iridescenceThicknessMap = getTexture( json.iridescenceThicknessMap );\n\n\t\tif ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap );\n\t\tif ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap );\n\n\t\tif ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap );\n\n\t\tif ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap );\n\t\tif ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap );\n\n\t\treturn material;\n\n\t}\n\n\tsetTextures( value ) {\n\n\t\tthis.textures = value;\n\t\treturn this;\n\n\t}\n\n\tcreateMaterialFromType( type ) {\n\n\t\treturn MaterialLoader.createMaterialFromType( type );\n\n\t}\n\n\tstatic createMaterialFromType( type ) {\n\n\t\tconst materialLib = {\n\t\t\tShadowMaterial,\n\t\t\tSpriteMaterial,\n\t\t\tRawShaderMaterial,\n\t\t\tShaderMaterial,\n\t\t\tPointsMaterial,\n\t\t\tMeshPhysicalMaterial,\n\t\t\tMeshStandardMaterial,\n\t\t\tMeshPhongMaterial,\n\t\t\tMeshToonMaterial,\n\t\t\tMeshNormalMaterial,\n\t\t\tMeshLambertMaterial,\n\t\t\tMeshDepthMaterial,\n\t\t\tMeshDistanceMaterial,\n\t\t\tMeshBasicMaterial,\n\t\t\tMeshMatcapMaterial,\n\t\t\tLineDashedMaterial,\n\t\t\tLineBasicMaterial,\n\t\t\tMaterial\n\t\t};\n\n\t\treturn new materialLib[ type ]();\n\n\t}\n\n}\n\nclass LoaderUtils {\n\n\tstatic decodeText( array ) { // @deprecated, r165\n\n\t\tconsole.warn( 'THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead.' );\n\n\t\tif ( typeof TextDecoder !== 'undefined' ) {\n\n\t\t\treturn new TextDecoder().decode( array );\n\n\t\t}\n\n\t\t// Avoid the String.fromCharCode.apply(null, array) shortcut, which\n\t\t// throws a \"maximum call stack size exceeded\" error for large arrays.\n\n\t\tlet s = '';\n\n\t\tfor ( let i = 0, il = array.length; i < il; i ++ ) {\n\n\t\t\t// Implicitly assumes little-endian.\n\t\t\ts += String.fromCharCode( array[ i ] );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\t// merges multi-byte utf-8 characters.\n\n\t\t\treturn decodeURIComponent( escape( s ) );\n\n\t\t} catch ( e ) { // see #16358\n\n\t\t\treturn s;\n\n\t\t}\n\n\t}\n\n\tstatic extractUrlBase( url ) {\n\n\t\tconst index = url.lastIndexOf( '/' );\n\n\t\tif ( index === - 1 ) return './';\n\n\t\treturn url.slice( 0, index + 1 );\n\n\t}\n\n\tstatic resolveURL( url, path ) {\n\n\t\t// Invalid URL\n\t\tif ( typeof url !== 'string' || url === '' ) return '';\n\n\t\t// Host Relative URL\n\t\tif ( /^https?:\\/\\//i.test( path ) && /^\\//.test( url ) ) {\n\n\t\t\tpath = path.replace( /(^https?:\\/\\/[^\\/]+).*/i, '$1' );\n\n\t\t}\n\n\t\t// Absolute URL http://,https://,//\n\t\tif ( /^(https?:)?\\/\\//i.test( url ) ) return url;\n\n\t\t// Data URI\n\t\tif ( /^data:.*,.*$/i.test( url ) ) return url;\n\n\t\t// Blob URL\n\t\tif ( /^blob:.*$/i.test( url ) ) return url;\n\n\t\t// Relative URL\n\t\treturn path + url;\n\n\t}\n\n}\n\nclass InstancedBufferGeometry extends BufferGeometry {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isInstancedBufferGeometry = true;\n\n\t\tthis.type = 'InstancedBufferGeometry';\n\t\tthis.instanceCount = Infinity;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.instanceCount = source.instanceCount;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.instanceCount = this.instanceCount;\n\n\t\tdata.isInstancedBufferGeometry = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass BufferGeometryLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst interleavedBufferMap = {};\n\t\tconst arrayBufferMap = {};\n\n\t\tfunction getInterleavedBuffer( json, uuid ) {\n\n\t\t\tif ( interleavedBufferMap[ uuid ] !== undefined ) return interleavedBufferMap[ uuid ];\n\n\t\t\tconst interleavedBuffers = json.interleavedBuffers;\n\t\t\tconst interleavedBuffer = interleavedBuffers[ uuid ];\n\n\t\t\tconst buffer = getArrayBuffer( json, interleavedBuffer.buffer );\n\n\t\t\tconst array = getTypedArray( interleavedBuffer.type, buffer );\n\t\t\tconst ib = new InterleavedBuffer( array, interleavedBuffer.stride );\n\t\t\tib.uuid = interleavedBuffer.uuid;\n\n\t\t\tinterleavedBufferMap[ uuid ] = ib;\n\n\t\t\treturn ib;\n\n\t\t}\n\n\t\tfunction getArrayBuffer( json, uuid ) {\n\n\t\t\tif ( arrayBufferMap[ uuid ] !== undefined ) return arrayBufferMap[ uuid ];\n\n\t\t\tconst arrayBuffers = json.arrayBuffers;\n\t\t\tconst arrayBuffer = arrayBuffers[ uuid ];\n\n\t\t\tconst ab = new Uint32Array( arrayBuffer ).buffer;\n\n\t\t\tarrayBufferMap[ uuid ] = ab;\n\n\t\t\treturn ab;\n\n\t\t}\n\n\t\tconst geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\n\n\t\tconst index = json.data.index;\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst typedArray = getTypedArray( index.type, index.array );\n\t\t\tgeometry.setIndex( new BufferAttribute( typedArray, 1 ) );\n\n\t\t}\n\n\t\tconst attributes = json.data.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\t\t\tlet bufferAttribute;\n\n\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t} else {\n\n\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\tconst bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\n\t\t\t\tbufferAttribute = new bufferAttributeConstr( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t}\n\n\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\tif ( attribute.usage !== undefined ) bufferAttribute.setUsage( attribute.usage );\n\n\t\t\tgeometry.setAttribute( key, bufferAttribute );\n\n\t\t}\n\n\t\tconst morphAttributes = json.data.morphAttributes;\n\n\t\tif ( morphAttributes ) {\n\n\t\t\tfor ( const key in morphAttributes ) {\n\n\t\t\t\tconst attributeArray = morphAttributes[ key ];\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst attribute = attributeArray[ i ];\n\t\t\t\t\tlet bufferAttribute;\n\n\t\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\t\t\tbufferAttribute = new BufferAttribute( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\t\t\tarray.push( bufferAttribute );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.morphAttributes[ key ] = array;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst morphTargetsRelative = json.data.morphTargetsRelative;\n\n\t\tif ( morphTargetsRelative ) {\n\n\t\t\tgeometry.morphTargetsRelative = true;\n\n\t\t}\n\n\t\tconst groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n\n\t\tif ( groups !== undefined ) {\n\n\t\t\tfor ( let i = 0, n = groups.length; i !== n; ++ i ) {\n\n\t\t\t\tconst group = groups[ i ];\n\n\t\t\t\tgeometry.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst boundingSphere = json.data.boundingSphere;\n\n\t\tif ( boundingSphere !== undefined ) {\n\n\t\t\tconst center = new Vector3();\n\n\t\t\tif ( boundingSphere.center !== undefined ) {\n\n\t\t\t\tcenter.fromArray( boundingSphere.center );\n\n\t\t\t}\n\n\t\t\tgeometry.boundingSphere = new Sphere( center, boundingSphere.radius );\n\n\t\t}\n\n\t\tif ( json.name ) geometry.name = json.name;\n\t\tif ( json.userData ) geometry.userData = json.userData;\n\n\t\treturn geometry;\n\n\t}\n\n}\n\nclass ObjectLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\tlet json = null;\n\n\t\t\ttry {\n\n\t\t\t\tjson = JSON.parse( text );\n\n\t\t\t} catch ( error ) {\n\n\t\t\t\tif ( onError !== undefined ) onError( error );\n\n\t\t\t\tconsole.error( 'THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message );\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst metadata = json.metadata;\n\n\t\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\t\tif ( onError !== undefined ) onError( new Error( 'THREE.ObjectLoader: Can\\'t load ' + url ) );\n\n\t\t\t\tconsole.error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tscope.parse( json, onLoad );\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tasync loadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tconst text = await loader.loadAsync( url, onProgress );\n\n\t\tconst json = JSON.parse( text );\n\n\t\tconst metadata = json.metadata;\n\n\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\tthrow new Error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\n\t\t}\n\n\t\treturn await scope.parseAsync( json );\n\n\t}\n\n\tparse( json, onLoad ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = this.parseImages( json.images, function () {\n\n\t\t\tif ( onLoad !== undefined ) onLoad( object );\n\n\t\t} );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\t\tthis.bindLightTargets( object );\n\n\t\t//\n\n\t\tif ( onLoad !== undefined ) {\n\n\t\t\tlet hasImages = false;\n\n\t\t\tfor ( const uuid in images ) {\n\n\t\t\t\tif ( images[ uuid ].data instanceof HTMLImageElement ) {\n\n\t\t\t\t\thasImages = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( hasImages === false ) onLoad( object );\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tasync parseAsync( json ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = await this.parseImagesAsync( json.images );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\t\tthis.bindLightTargets( object );\n\n\t\treturn object;\n\n\t}\n\n\tparseShapes( json ) {\n\n\t\tconst shapes = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst shape = new Shape().fromJSON( json[ i ] );\n\n\t\t\t\tshapes[ shape.uuid ] = shape;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn shapes;\n\n\t}\n\n\tparseSkeletons( json, object ) {\n\n\t\tconst skeletons = {};\n\t\tconst bones = {};\n\n\t\t// generate bone lookup table\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isBone ) bones[ child.uuid ] = child;\n\n\t\t} );\n\n\t\t// create skeletons\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst skeleton = new Skeleton().fromJSON( json[ i ], bones );\n\n\t\t\t\tskeletons[ skeleton.uuid ] = skeleton;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn skeletons;\n\n\t}\n\n\tparseGeometries( json, shapes ) {\n\n\t\tconst geometries = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst bufferGeometryLoader = new BufferGeometryLoader();\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tlet geometry;\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tswitch ( data.type ) {\n\n\t\t\t\t\tcase 'BufferGeometry':\n\t\t\t\t\tcase 'InstancedBufferGeometry':\n\n\t\t\t\t\t\tgeometry = bufferGeometryLoader.parse( data );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( data.type in Geometries ) {\n\n\t\t\t\t\t\t\tgeometry = Geometries[ data.type ].fromJSON( data, shapes );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconsole.warn( `THREE.ObjectLoader: Unsupported geometry type \"${ data.type }\"` );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) geometry.name = data.name;\n\t\t\t\tif ( data.userData !== undefined ) geometry.userData = data.userData;\n\n\t\t\t\tgeometries[ data.uuid ] = geometry;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn geometries;\n\n\t}\n\n\tparseMaterials( json, textures ) {\n\n\t\tconst cache = {}; // MultiMaterial\n\t\tconst materials = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst loader = new MaterialLoader();\n\t\t\tloader.setTextures( textures );\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( cache[ data.uuid ] === undefined ) {\n\n\t\t\t\t\tcache[ data.uuid ] = loader.parse( data );\n\n\t\t\t\t}\n\n\t\t\t\tmaterials[ data.uuid ] = cache[ data.uuid ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn materials;\n\n\t}\n\n\tparseAnimations( json ) {\n\n\t\tconst animations = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tconst clip = AnimationClip.parse( data );\n\n\t\t\t\tanimations[ clip.uuid ] = clip;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n\tparseImages( json, onLoad ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tfunction loadImage( url ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\treturn loader.load( url, function () {\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, undefined, function () {\n\n\t\t\t\tscope.manager.itemError( url );\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\t}\n\n\t\tfunction deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn loadImage( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tconst manager = new LoadingManager( onLoad );\n\n\t\t\tloader = new ImageLoader( manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\tconst imageArray = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timageArray.push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\timages[ image.uuid ] = new Source( imageArray );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = deserializeImage( image.url );\n\t\t\t\t\timages[ image.uuid ] = new Source( deserializedImage );\n\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tasync parseImagesAsync( json ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tasync function deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn await loader.loadAsync( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tloader = new ImageLoader( this.manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\tconst imageArray = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = await deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timageArray.push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\timages[ image.uuid ] = new Source( imageArray );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = await deserializeImage( image.url );\n\t\t\t\t\timages[ image.uuid ] = new Source( deserializedImage );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tparseTextures( json, images ) {\n\n\t\tfunction parseConstant( value, type ) {\n\n\t\t\tif ( typeof value === 'number' ) return value;\n\n\t\t\tconsole.warn( 'THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value );\n\n\t\t\treturn type[ value ];\n\n\t\t}\n\n\t\tconst textures = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( data.image === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No \"image\" specified for', data.uuid );\n\n\t\t\t\t}\n\n\t\t\t\tif ( images[ data.image ] === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined image', data.image );\n\n\t\t\t\t}\n\n\t\t\t\tconst source = images[ data.image ];\n\t\t\t\tconst image = source.data;\n\n\t\t\t\tlet texture;\n\n\t\t\t\tif ( Array.isArray( image ) ) {\n\n\t\t\t\t\ttexture = new CubeTexture();\n\n\t\t\t\t\tif ( image.length === 6 ) texture.needsUpdate = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( image && image.data ) {\n\n\t\t\t\t\t\ttexture = new DataTexture();\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttexture = new Texture();\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( image ) texture.needsUpdate = true; // textures can have undefined image data\n\n\t\t\t\t}\n\n\t\t\t\ttexture.source = source;\n\n\t\t\t\ttexture.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) texture.name = data.name;\n\n\t\t\t\tif ( data.mapping !== undefined ) texture.mapping = parseConstant( data.mapping, TEXTURE_MAPPING );\n\t\t\t\tif ( data.channel !== undefined ) texture.channel = data.channel;\n\n\t\t\t\tif ( data.offset !== undefined ) texture.offset.fromArray( data.offset );\n\t\t\t\tif ( data.repeat !== undefined ) texture.repeat.fromArray( data.repeat );\n\t\t\t\tif ( data.center !== undefined ) texture.center.fromArray( data.center );\n\t\t\t\tif ( data.rotation !== undefined ) texture.rotation = data.rotation;\n\n\t\t\t\tif ( data.wrap !== undefined ) {\n\n\t\t\t\t\ttexture.wrapS = parseConstant( data.wrap[ 0 ], TEXTURE_WRAPPING );\n\t\t\t\t\ttexture.wrapT = parseConstant( data.wrap[ 1 ], TEXTURE_WRAPPING );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.format !== undefined ) texture.format = data.format;\n\t\t\t\tif ( data.internalFormat !== undefined ) texture.internalFormat = data.internalFormat;\n\t\t\t\tif ( data.type !== undefined ) texture.type = data.type;\n\t\t\t\tif ( data.colorSpace !== undefined ) texture.colorSpace = data.colorSpace;\n\n\t\t\t\tif ( data.minFilter !== undefined ) texture.minFilter = parseConstant( data.minFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.magFilter !== undefined ) texture.magFilter = parseConstant( data.magFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.anisotropy !== undefined ) texture.anisotropy = data.anisotropy;\n\n\t\t\t\tif ( data.flipY !== undefined ) texture.flipY = data.flipY;\n\n\t\t\t\tif ( data.generateMipmaps !== undefined ) texture.generateMipmaps = data.generateMipmaps;\n\t\t\t\tif ( data.premultiplyAlpha !== undefined ) texture.premultiplyAlpha = data.premultiplyAlpha;\n\t\t\t\tif ( data.unpackAlignment !== undefined ) texture.unpackAlignment = data.unpackAlignment;\n\t\t\t\tif ( data.compareFunction !== undefined ) texture.compareFunction = data.compareFunction;\n\n\t\t\t\tif ( data.userData !== undefined ) texture.userData = data.userData;\n\n\t\t\t\ttextures[ data.uuid ] = texture;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn textures;\n\n\t}\n\n\tparseObject( data, geometries, materials, textures, animations ) {\n\n\t\tlet object;\n\n\t\tfunction getGeometry( name ) {\n\n\t\t\tif ( geometries[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined geometry', name );\n\n\t\t\t}\n\n\t\t\treturn geometries[ name ];\n\n\t\t}\n\n\t\tfunction getMaterial( name ) {\n\n\t\t\tif ( name === undefined ) return undefined;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, l = name.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst uuid = name[ i ];\n\n\t\t\t\t\tif ( materials[ uuid ] === undefined ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', uuid );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tarray.push( materials[ uuid ] );\n\n\t\t\t\t}\n\n\t\t\t\treturn array;\n\n\t\t\t}\n\n\t\t\tif ( materials[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', name );\n\n\t\t\t}\n\n\t\t\treturn materials[ name ];\n\n\t\t}\n\n\t\tfunction getTexture( uuid ) {\n\n\t\t\tif ( textures[ uuid ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined texture', uuid );\n\n\t\t\t}\n\n\t\t\treturn textures[ uuid ];\n\n\t\t}\n\n\t\tlet geometry, material;\n\n\t\tswitch ( data.type ) {\n\n\t\t\tcase 'Scene':\n\n\t\t\t\tobject = new Scene();\n\n\t\t\t\tif ( data.background !== undefined ) {\n\n\t\t\t\t\tif ( Number.isInteger( data.background ) ) {\n\n\t\t\t\t\t\tobject.background = new Color( data.background );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tobject.background = getTexture( data.background );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.environment !== undefined ) {\n\n\t\t\t\t\tobject.environment = getTexture( data.environment );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.fog !== undefined ) {\n\n\t\t\t\t\tif ( data.fog.type === 'Fog' ) {\n\n\t\t\t\t\t\tobject.fog = new Fog( data.fog.color, data.fog.near, data.fog.far );\n\n\t\t\t\t\t} else if ( data.fog.type === 'FogExp2' ) {\n\n\t\t\t\t\t\tobject.fog = new FogExp2( data.fog.color, data.fog.density );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( data.fog.name !== '' ) {\n\n\t\t\t\t\t\tobject.fog.name = data.fog.name;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.backgroundBlurriness !== undefined ) object.backgroundBlurriness = data.backgroundBlurriness;\n\t\t\t\tif ( data.backgroundIntensity !== undefined ) object.backgroundIntensity = data.backgroundIntensity;\n\t\t\t\tif ( data.backgroundRotation !== undefined ) object.backgroundRotation.fromArray( data.backgroundRotation );\n\n\t\t\t\tif ( data.environmentIntensity !== undefined ) object.environmentIntensity = data.environmentIntensity;\n\t\t\t\tif ( data.environmentRotation !== undefined ) object.environmentRotation.fromArray( data.environmentRotation );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PerspectiveCamera':\n\n\t\t\t\tobject = new PerspectiveCamera( data.fov, data.aspect, data.near, data.far );\n\n\t\t\t\tif ( data.focus !== undefined ) object.focus = data.focus;\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.filmGauge !== undefined ) object.filmGauge = data.filmGauge;\n\t\t\t\tif ( data.filmOffset !== undefined ) object.filmOffset = data.filmOffset;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'OrthographicCamera':\n\n\t\t\t\tobject = new OrthographicCamera( data.left, data.right, data.top, data.bottom, data.near, data.far );\n\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'AmbientLight':\n\n\t\t\t\tobject = new AmbientLight( data.color, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'DirectionalLight':\n\n\t\t\t\tobject = new DirectionalLight( data.color, data.intensity );\n\t\t\t\tobject.target = data.target || '';\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointLight':\n\n\t\t\t\tobject = new PointLight( data.color, data.intensity, data.distance, data.decay );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'RectAreaLight':\n\n\t\t\t\tobject = new RectAreaLight( data.color, data.intensity, data.width, data.height );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SpotLight':\n\n\t\t\t\tobject = new SpotLight( data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay );\n\t\t\t\tobject.target = data.target || '';\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'HemisphereLight':\n\n\t\t\t\tobject = new HemisphereLight( data.color, data.groundColor, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LightProbe':\n\n\t\t\t\tobject = new LightProbe().fromJSON( data );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SkinnedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t \tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new SkinnedMesh( geometry, material );\n\n\t\t\t\tif ( data.bindMode !== undefined ) object.bindMode = data.bindMode;\n\t\t\t\tif ( data.bindMatrix !== undefined ) object.bindMatrix.fromArray( data.bindMatrix );\n\t\t\t\tif ( data.skeleton !== undefined ) object.skeleton = data.skeleton;\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Mesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new Mesh( geometry, material );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'InstancedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\t\t\t\tconst count = data.count;\n\t\t\t\tconst instanceMatrix = data.instanceMatrix;\n\t\t\t\tconst instanceColor = data.instanceColor;\n\n\t\t\t\tobject = new InstancedMesh( geometry, material, count );\n\t\t\t\tobject.instanceMatrix = new InstancedBufferAttribute( new Float32Array( instanceMatrix.array ), 16 );\n\t\t\t\tif ( instanceColor !== undefined ) object.instanceColor = new InstancedBufferAttribute( new Float32Array( instanceColor.array ), instanceColor.itemSize );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'BatchedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new BatchedMesh( data.maxInstanceCount, data.maxVertexCount, data.maxIndexCount, material );\n\t\t\t\tobject.geometry = geometry;\n\t\t\t\tobject.perObjectFrustumCulled = data.perObjectFrustumCulled;\n\t\t\t\tobject.sortObjects = data.sortObjects;\n\n\t\t\t\tobject._drawRanges = data.drawRanges;\n\t\t\t\tobject._reservedRanges = data.reservedRanges;\n\n\t\t\t\tobject._visibility = data.visibility;\n\t\t\t\tobject._active = data.active;\n\t\t\t\tobject._bounds = data.bounds.map( bound => {\n\n\t\t\t\t\tconst box = new Box3();\n\t\t\t\t\tbox.min.fromArray( bound.boxMin );\n\t\t\t\t\tbox.max.fromArray( bound.boxMax );\n\n\t\t\t\t\tconst sphere = new Sphere();\n\t\t\t\t\tsphere.radius = bound.sphereRadius;\n\t\t\t\t\tsphere.center.fromArray( bound.sphereCenter );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\t\t\tbox: box,\n\n\t\t\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\t\t\tsphere: sphere\n\t\t\t\t\t};\n\n\t\t\t\t} );\n\n\t\t\t\tobject._maxInstanceCount = data.maxInstanceCount;\n\t\t\t\tobject._maxVertexCount = data.maxVertexCount;\n\t\t\t\tobject._maxIndexCount = data.maxIndexCount;\n\n\t\t\t\tobject._geometryInitialized = data.geometryInitialized;\n\t\t\t\tobject._geometryCount = data.geometryCount;\n\n\t\t\t\tobject._matricesTexture = getTexture( data.matricesTexture.uuid );\n\t\t\t\tif ( data.colorsTexture !== undefined ) object._colorsTexture = getTexture( data.colorsTexture.uuid );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LOD':\n\n\t\t\t\tobject = new LOD();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Line':\n\n\t\t\t\tobject = new Line( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineLoop':\n\n\t\t\t\tobject = new LineLoop( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineSegments':\n\n\t\t\t\tobject = new LineSegments( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointCloud':\n\t\t\tcase 'Points':\n\n\t\t\t\tobject = new Points( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Sprite':\n\n\t\t\t\tobject = new Sprite( getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Group':\n\n\t\t\t\tobject = new Group();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Bone':\n\n\t\t\t\tobject = new Bone();\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tobject = new Object3D();\n\n\t\t}\n\n\t\tobject.uuid = data.uuid;\n\n\t\tif ( data.name !== undefined ) object.name = data.name;\n\n\t\tif ( data.matrix !== undefined ) {\n\n\t\t\tobject.matrix.fromArray( data.matrix );\n\n\t\t\tif ( data.matrixAutoUpdate !== undefined ) object.matrixAutoUpdate = data.matrixAutoUpdate;\n\t\t\tif ( object.matrixAutoUpdate ) object.matrix.decompose( object.position, object.quaternion, object.scale );\n\n\t\t} else {\n\n\t\t\tif ( data.position !== undefined ) object.position.fromArray( data.position );\n\t\t\tif ( data.rotation !== undefined ) object.rotation.fromArray( data.rotation );\n\t\t\tif ( data.quaternion !== undefined ) object.quaternion.fromArray( data.quaternion );\n\t\t\tif ( data.scale !== undefined ) object.scale.fromArray( data.scale );\n\n\t\t}\n\n\t\tif ( data.up !== undefined ) object.up.fromArray( data.up );\n\n\t\tif ( data.castShadow !== undefined ) object.castShadow = data.castShadow;\n\t\tif ( data.receiveShadow !== undefined ) object.receiveShadow = data.receiveShadow;\n\n\t\tif ( data.shadow ) {\n\n\t\t\tif ( data.shadow.intensity !== undefined ) object.shadow.intensity = data.shadow.intensity;\n\t\t\tif ( data.shadow.bias !== undefined ) object.shadow.bias = data.shadow.bias;\n\t\t\tif ( data.shadow.normalBias !== undefined ) object.shadow.normalBias = data.shadow.normalBias;\n\t\t\tif ( data.shadow.radius !== undefined ) object.shadow.radius = data.shadow.radius;\n\t\t\tif ( data.shadow.mapSize !== undefined ) object.shadow.mapSize.fromArray( data.shadow.mapSize );\n\t\t\tif ( data.shadow.camera !== undefined ) object.shadow.camera = this.parseObject( data.shadow.camera );\n\n\t\t}\n\n\t\tif ( data.visible !== undefined ) object.visible = data.visible;\n\t\tif ( data.frustumCulled !== undefined ) object.frustumCulled = data.frustumCulled;\n\t\tif ( data.renderOrder !== undefined ) object.renderOrder = data.renderOrder;\n\t\tif ( data.userData !== undefined ) object.userData = data.userData;\n\t\tif ( data.layers !== undefined ) object.layers.mask = data.layers;\n\n\t\tif ( data.children !== undefined ) {\n\n\t\t\tconst children = data.children;\n\n\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\tobject.add( this.parseObject( children[ i ], geometries, materials, textures, animations ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.animations !== undefined ) {\n\n\t\t\tconst objectAnimations = data.animations;\n\n\t\t\tfor ( let i = 0; i < objectAnimations.length; i ++ ) {\n\n\t\t\t\tconst uuid = objectAnimations[ i ];\n\n\t\t\t\tobject.animations.push( animations[ uuid ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.type === 'LOD' ) {\n\n\t\t\tif ( data.autoUpdate !== undefined ) object.autoUpdate = data.autoUpdate;\n\n\t\t\tconst levels = data.levels;\n\n\t\t\tfor ( let l = 0; l < levels.length; l ++ ) {\n\n\t\t\t\tconst level = levels[ l ];\n\t\t\t\tconst child = object.getObjectByProperty( 'uuid', level.object );\n\n\t\t\t\tif ( child !== undefined ) {\n\n\t\t\t\t\tobject.addLevel( child, level.distance, level.hysteresis );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tbindSkeletons( object, skeletons ) {\n\n\t\tif ( Object.keys( skeletons ).length === 0 ) return;\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isSkinnedMesh === true && child.skeleton !== undefined ) {\n\n\t\t\t\tconst skeleton = skeletons[ child.skeleton ];\n\n\t\t\t\tif ( skeleton === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tchild.bind( skeleton, child.bindMatrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\tbindLightTargets( object ) {\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isDirectionalLight || child.isSpotLight ) {\n\n\t\t\t\tconst uuid = child.target;\n\n\t\t\t\tconst target = object.getObjectByProperty( 'uuid', uuid );\n\n\t\t\t\tif ( target !== undefined ) {\n\n\t\t\t\t\tchild.target = target;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tchild.target = new Object3D();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n}\n\nconst TEXTURE_MAPPING = {\n\tUVMapping: UVMapping,\n\tCubeReflectionMapping: CubeReflectionMapping,\n\tCubeRefractionMapping: CubeRefractionMapping,\n\tEquirectangularReflectionMapping: EquirectangularReflectionMapping,\n\tEquirectangularRefractionMapping: EquirectangularRefractionMapping,\n\tCubeUVReflectionMapping: CubeUVReflectionMapping\n};\n\nconst TEXTURE_WRAPPING = {\n\tRepeatWrapping: RepeatWrapping,\n\tClampToEdgeWrapping: ClampToEdgeWrapping,\n\tMirroredRepeatWrapping: MirroredRepeatWrapping\n};\n\nconst TEXTURE_FILTER = {\n\tNearestFilter: NearestFilter,\n\tNearestMipmapNearestFilter: NearestMipmapNearestFilter,\n\tNearestMipmapLinearFilter: NearestMipmapLinearFilter,\n\tLinearFilter: LinearFilter,\n\tLinearMipmapNearestFilter: LinearMipmapNearestFilter,\n\tLinearMipmapLinearFilter: LinearMipmapLinearFilter\n};\n\nclass ImageBitmapLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.isImageBitmapLoader = true;\n\n\t\tif ( typeof createImageBitmap === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: createImageBitmap() not supported.' );\n\n\t\t}\n\n\t\tif ( typeof fetch === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: fetch() not supported.' );\n\n\t\t}\n\n\t\tthis.options = { premultiplyAlpha: 'none' };\n\n\t}\n\n\tsetOptions( options ) {\n\n\t\tthis.options = options;\n\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\t// If cached is a promise, wait for it to resolve\n\t\t\tif ( cached.then ) {\n\n\t\t\t\tcached.then( imageBitmap => {\n\n\t\t\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t} ).catch( e => {\n\n\t\t\t\t\tif ( onError ) onError( e );\n\n\t\t\t\t} );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t// If cached is not a promise (i.e., it's already an imageBitmap)\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst fetchOptions = {};\n\t\tfetchOptions.credentials = ( this.crossOrigin === 'anonymous' ) ? 'same-origin' : 'include';\n\t\tfetchOptions.headers = this.requestHeader;\n\n\t\tconst promise = fetch( url, fetchOptions ).then( function ( res ) {\n\n\t\t\treturn res.blob();\n\n\t\t} ).then( function ( blob ) {\n\n\t\t\treturn createImageBitmap( blob, Object.assign( scope.options, { colorSpaceConversion: 'none' } ) );\n\n\t\t} ).then( function ( imageBitmap ) {\n\n\t\t\tCache.add( url, imageBitmap );\n\n\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t\treturn imageBitmap;\n\n\t\t} ).catch( function ( e ) {\n\n\t\t\tif ( onError ) onError( e );\n\n\t\t\tCache.remove( url );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t} );\n\n\t\tCache.add( url, promise );\n\t\tscope.manager.itemStart( url );\n\n\t}\n\n}\n\nlet _context;\n\nclass AudioContext {\n\n\tstatic getContext() {\n\n\t\tif ( _context === undefined ) {\n\n\t\t\t_context = new ( window.AudioContext || window.webkitAudioContext )();\n\n\t\t}\n\n\t\treturn _context;\n\n\t}\n\n\tstatic setContext( value ) {\n\n\t\t_context = value;\n\n\t}\n\n}\n\nclass AudioLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\ttry {\n\n\t\t\t\t// Create a copy of the buffer. The `decodeAudioData` method\n\t\t\t\t// detaches the buffer when complete, preventing reuse.\n\t\t\t\tconst bufferCopy = buffer.slice( 0 );\n\n\t\t\t\tconst context = AudioContext.getContext();\n\t\t\t\tcontext.decodeAudioData( bufferCopy, function ( audioBuffer ) {\n\n\t\t\t\t\tonLoad( audioBuffer );\n\n\t\t\t\t} ).catch( handleError );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\thandleError( e );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\tfunction handleError( e ) {\n\n\t\t\tif ( onError ) {\n\n\t\t\t\tonError( e );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( e );\n\n\t\t\t}\n\n\t\t\tscope.manager.itemError( url );\n\n\t\t}\n\n\t}\n\n}\n\nconst _eyeRight = /*@__PURE__*/ new Matrix4();\nconst _eyeLeft = /*@__PURE__*/ new Matrix4();\nconst _projectionMatrix = /*@__PURE__*/ new Matrix4();\n\nclass StereoCamera {\n\n\tconstructor() {\n\n\t\tthis.type = 'StereoCamera';\n\n\t\tthis.aspect = 1;\n\n\t\tthis.eyeSep = 0.064;\n\n\t\tthis.cameraL = new PerspectiveCamera();\n\t\tthis.cameraL.layers.enable( 1 );\n\t\tthis.cameraL.matrixAutoUpdate = false;\n\n\t\tthis.cameraR = new PerspectiveCamera();\n\t\tthis.cameraR.layers.enable( 2 );\n\t\tthis.cameraR.matrixAutoUpdate = false;\n\n\t\tthis._cache = {\n\t\t\tfocus: null,\n\t\t\tfov: null,\n\t\t\taspect: null,\n\t\t\tnear: null,\n\t\t\tfar: null,\n\t\t\tzoom: null,\n\t\t\teyeSep: null\n\t\t};\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst cache = this._cache;\n\n\t\tconst needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov ||\n\t\t\tcache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near ||\n\t\t\tcache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tcache.focus = camera.focus;\n\t\t\tcache.fov = camera.fov;\n\t\t\tcache.aspect = camera.aspect * this.aspect;\n\t\t\tcache.near = camera.near;\n\t\t\tcache.far = camera.far;\n\t\t\tcache.zoom = camera.zoom;\n\t\t\tcache.eyeSep = this.eyeSep;\n\n\t\t\t// Off-axis stereoscopic effect based on\n\t\t\t// http://paulbourke.net/stereographics/stereorender/\n\n\t\t\t_projectionMatrix.copy( camera.projectionMatrix );\n\t\t\tconst eyeSepHalf = cache.eyeSep / 2;\n\t\t\tconst eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n\t\t\tconst ymax = ( cache.near * Math.tan( DEG2RAD * cache.fov * 0.5 ) ) / cache.zoom;\n\t\t\tlet xmin, xmax;\n\n\t\t\t// translate xOffset\n\n\t\t\t_eyeLeft.elements[ 12 ] = - eyeSepHalf;\n\t\t\t_eyeRight.elements[ 12 ] = eyeSepHalf;\n\n\t\t\t// for left eye\n\n\t\t\txmin = - ymax * cache.aspect + eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect + eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraL.projectionMatrix.copy( _projectionMatrix );\n\n\t\t\t// for right eye\n\n\t\t\txmin = - ymax * cache.aspect - eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect - eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraR.projectionMatrix.copy( _projectionMatrix );\n\n\t\t}\n\n\t\tthis.cameraL.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeLeft );\n\t\tthis.cameraR.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeRight );\n\n\t}\n\n}\n\nclass Clock {\n\n\tconstructor( autoStart = true ) {\n\n\t\tthis.autoStart = autoStart;\n\n\t\tthis.startTime = 0;\n\t\tthis.oldTime = 0;\n\t\tthis.elapsedTime = 0;\n\n\t\tthis.running = false;\n\n\t}\n\n\tstart() {\n\n\t\tthis.startTime = now();\n\n\t\tthis.oldTime = this.startTime;\n\t\tthis.elapsedTime = 0;\n\t\tthis.running = true;\n\n\t}\n\n\tstop() {\n\n\t\tthis.getElapsedTime();\n\t\tthis.running = false;\n\t\tthis.autoStart = false;\n\n\t}\n\n\tgetElapsedTime() {\n\n\t\tthis.getDelta();\n\t\treturn this.elapsedTime;\n\n\t}\n\n\tgetDelta() {\n\n\t\tlet diff = 0;\n\n\t\tif ( this.autoStart && ! this.running ) {\n\n\t\t\tthis.start();\n\t\t\treturn 0;\n\n\t\t}\n\n\t\tif ( this.running ) {\n\n\t\t\tconst newTime = now();\n\n\t\t\tdiff = ( newTime - this.oldTime ) / 1000;\n\t\t\tthis.oldTime = newTime;\n\n\t\t\tthis.elapsedTime += diff;\n\n\t\t}\n\n\t\treturn diff;\n\n\t}\n\n}\n\nfunction now() {\n\n\treturn performance.now();\n\n}\n\nconst _position$1 = /*@__PURE__*/ new Vector3();\nconst _quaternion$1 = /*@__PURE__*/ new Quaternion();\nconst _scale$1 = /*@__PURE__*/ new Vector3();\nconst _orientation$1 = /*@__PURE__*/ new Vector3();\n\nclass AudioListener extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'AudioListener';\n\n\t\tthis.context = AudioContext.getContext();\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( this.context.destination );\n\n\t\tthis.filter = null;\n\n\t\tthis.timeDelta = 0;\n\n\t\t// private\n\n\t\tthis._clock = new Clock();\n\n\t}\n\n\tgetInput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tremoveFilter() {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\t\t\tthis.gain.connect( this.context.destination );\n\t\t\tthis.filter = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.filter;\n\n\t}\n\n\tsetFilter( value ) {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\n\t\t} else {\n\n\t\t\tthis.gain.disconnect( this.context.destination );\n\n\t\t}\n\n\t\tthis.filter = value;\n\t\tthis.gain.connect( this.filter );\n\t\tthis.filter.connect( this.context.destination );\n\n\t\treturn this;\n\n\t}\n\n\tgetMasterVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetMasterVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tconst listener = this.context.listener;\n\t\tconst up = this.up;\n\n\t\tthis.timeDelta = this._clock.getDelta();\n\n\t\tthis.matrixWorld.decompose( _position$1, _quaternion$1, _scale$1 );\n\n\t\t_orientation$1.set( 0, 0, - 1 ).applyQuaternion( _quaternion$1 );\n\n\t\tif ( listener.positionX ) {\n\n\t\t\t// code path for Chrome (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.timeDelta;\n\n\t\t\tlistener.positionX.linearRampToValueAtTime( _position$1.x, endTime );\n\t\t\tlistener.positionY.linearRampToValueAtTime( _position$1.y, endTime );\n\t\t\tlistener.positionZ.linearRampToValueAtTime( _position$1.z, endTime );\n\t\t\tlistener.forwardX.linearRampToValueAtTime( _orientation$1.x, endTime );\n\t\t\tlistener.forwardY.linearRampToValueAtTime( _orientation$1.y, endTime );\n\t\t\tlistener.forwardZ.linearRampToValueAtTime( _orientation$1.z, endTime );\n\t\t\tlistener.upX.linearRampToValueAtTime( up.x, endTime );\n\t\t\tlistener.upY.linearRampToValueAtTime( up.y, endTime );\n\t\t\tlistener.upZ.linearRampToValueAtTime( up.z, endTime );\n\n\t\t} else {\n\n\t\t\tlistener.setPosition( _position$1.x, _position$1.y, _position$1.z );\n\t\t\tlistener.setOrientation( _orientation$1.x, _orientation$1.y, _orientation$1.z, up.x, up.y, up.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass Audio extends Object3D {\n\n\tconstructor( listener ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Audio';\n\n\t\tthis.listener = listener;\n\t\tthis.context = listener.context;\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( listener.getInput() );\n\n\t\tthis.autoplay = false;\n\n\t\tthis.buffer = null;\n\t\tthis.detune = 0;\n\t\tthis.loop = false;\n\t\tthis.loopStart = 0;\n\t\tthis.loopEnd = 0;\n\t\tthis.offset = 0;\n\t\tthis.duration = undefined;\n\t\tthis.playbackRate = 1;\n\t\tthis.isPlaying = false;\n\t\tthis.hasPlaybackControl = true;\n\t\tthis.source = null;\n\t\tthis.sourceType = 'empty';\n\n\t\tthis._startedAt = 0;\n\t\tthis._progress = 0;\n\t\tthis._connected = false;\n\n\t\tthis.filters = [];\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tsetNodeSource( audioNode ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'audioNode';\n\t\tthis.source = audioNode;\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaElementSource( mediaElement ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaNode';\n\t\tthis.source = this.context.createMediaElementSource( mediaElement );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaStreamSource( mediaStream ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaStreamNode';\n\t\tthis.source = this.context.createMediaStreamSource( mediaStream );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetBuffer( audioBuffer ) {\n\n\t\tthis.buffer = audioBuffer;\n\t\tthis.sourceType = 'buffer';\n\n\t\tif ( this.autoplay ) this.play();\n\n\t\treturn this;\n\n\t}\n\n\tplay( delay = 0 ) {\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: Audio is already playing.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._startedAt = this.context.currentTime + delay;\n\n\t\tconst source = this.context.createBufferSource();\n\t\tsource.buffer = this.buffer;\n\t\tsource.loop = this.loop;\n\t\tsource.loopStart = this.loopStart;\n\t\tsource.loopEnd = this.loopEnd;\n\t\tsource.onended = this.onEnded.bind( this );\n\t\tsource.start( this._startedAt, this._progress + this.offset, this.duration );\n\n\t\tthis.isPlaying = true;\n\n\t\tthis.source = source;\n\n\t\tthis.setDetune( this.detune );\n\t\tthis.setPlaybackRate( this.playbackRate );\n\n\t\treturn this.connect();\n\n\t}\n\n\tpause() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\t// update current progress\n\n\t\t\tthis._progress += Math.max( this.context.currentTime - this._startedAt, 0 ) * this.playbackRate;\n\n\t\t\tif ( this.loop === true ) {\n\n\t\t\t\t// ensure _progress does not exceed duration with looped audios\n\n\t\t\t\tthis._progress = this._progress % ( this.duration || this.buffer.duration );\n\n\t\t\t}\n\n\t\t\tthis.source.stop();\n\t\t\tthis.source.onended = null;\n\n\t\t\tthis.isPlaying = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tstop( delay = 0 ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._progress = 0;\n\n\t\tif ( this.source !== null ) {\n\n\t\t\tthis.source.stop( this.context.currentTime + delay );\n\t\t\tthis.source.onended = null;\n\n\t\t}\n\n\t\tthis.isPlaying = false;\n\n\t\treturn this;\n\n\t}\n\n\tconnect() {\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.connect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].connect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].connect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.connect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = true;\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect() {\n\n\t\tif ( this._connected === false ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.disconnect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].disconnect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].disconnect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.disconnect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = false;\n\n\t\treturn this;\n\n\t}\n\n\tgetFilters() {\n\n\t\treturn this.filters;\n\n\t}\n\n\tsetFilters( value ) {\n\n\t\tif ( ! value ) value = [];\n\n\t\tif ( this._connected === true ) {\n\n\t\t\tthis.disconnect();\n\t\t\tthis.filters = value.slice();\n\t\t\tthis.connect();\n\n\t\t} else {\n\n\t\t\tthis.filters = value.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetDetune( value ) {\n\n\t\tthis.detune = value;\n\n\t\tif ( this.isPlaying === true && this.source.detune !== undefined ) {\n\n\t\t\tthis.source.detune.setTargetAtTime( this.detune, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetDetune() {\n\n\t\treturn this.detune;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.getFilters()[ 0 ];\n\n\t}\n\n\tsetFilter( filter ) {\n\n\t\treturn this.setFilters( filter ? [ filter ] : [] );\n\n\t}\n\n\tsetPlaybackRate( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.playbackRate = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.playbackRate.setTargetAtTime( this.playbackRate, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetPlaybackRate() {\n\n\t\treturn this.playbackRate;\n\n\t}\n\n\tonEnded() {\n\n\t\tthis.isPlaying = false;\n\n\t}\n\n\tgetLoop() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn this.loop;\n\n\t}\n\n\tsetLoop( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.loop = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.loop = this.loop;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopStart( value ) {\n\n\t\tthis.loopStart = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopEnd( value ) {\n\n\t\tthis.loopEnd = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _position = /*@__PURE__*/ new Vector3();\nconst _quaternion = /*@__PURE__*/ new Quaternion();\nconst _scale = /*@__PURE__*/ new Vector3();\nconst _orientation = /*@__PURE__*/ new Vector3();\n\nclass PositionalAudio extends Audio {\n\n\tconstructor( listener ) {\n\n\t\tsuper( listener );\n\n\t\tthis.panner = this.context.createPanner();\n\t\tthis.panner.panningModel = 'HRTF';\n\t\tthis.panner.connect( this.gain );\n\n\t}\n\n\tconnect() {\n\n\t\tsuper.connect();\n\n\t\tthis.panner.connect( this.gain );\n\n\t}\n\n\tdisconnect() {\n\n\t\tsuper.disconnect();\n\n\t\tthis.panner.disconnect( this.gain );\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.panner;\n\n\t}\n\n\tgetRefDistance() {\n\n\t\treturn this.panner.refDistance;\n\n\t}\n\n\tsetRefDistance( value ) {\n\n\t\tthis.panner.refDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetRolloffFactor() {\n\n\t\treturn this.panner.rolloffFactor;\n\n\t}\n\n\tsetRolloffFactor( value ) {\n\n\t\tthis.panner.rolloffFactor = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetDistanceModel() {\n\n\t\treturn this.panner.distanceModel;\n\n\t}\n\n\tsetDistanceModel( value ) {\n\n\t\tthis.panner.distanceModel = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxDistance() {\n\n\t\treturn this.panner.maxDistance;\n\n\t}\n\n\tsetMaxDistance( value ) {\n\n\t\tthis.panner.maxDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetDirectionalCone( coneInnerAngle, coneOuterAngle, coneOuterGain ) {\n\n\t\tthis.panner.coneInnerAngle = coneInnerAngle;\n\t\tthis.panner.coneOuterAngle = coneOuterAngle;\n\t\tthis.panner.coneOuterGain = coneOuterGain;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.hasPlaybackControl === true && this.isPlaying === false ) return;\n\n\t\tthis.matrixWorld.decompose( _position, _quaternion, _scale );\n\n\t\t_orientation.set( 0, 0, 1 ).applyQuaternion( _quaternion );\n\n\t\tconst panner = this.panner;\n\n\t\tif ( panner.positionX ) {\n\n\t\t\t// code path for Chrome and Firefox (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.listener.timeDelta;\n\n\t\t\tpanner.positionX.linearRampToValueAtTime( _position.x, endTime );\n\t\t\tpanner.positionY.linearRampToValueAtTime( _position.y, endTime );\n\t\t\tpanner.positionZ.linearRampToValueAtTime( _position.z, endTime );\n\t\t\tpanner.orientationX.linearRampToValueAtTime( _orientation.x, endTime );\n\t\t\tpanner.orientationY.linearRampToValueAtTime( _orientation.y, endTime );\n\t\t\tpanner.orientationZ.linearRampToValueAtTime( _orientation.z, endTime );\n\n\t\t} else {\n\n\t\t\tpanner.setPosition( _position.x, _position.y, _position.z );\n\t\t\tpanner.setOrientation( _orientation.x, _orientation.y, _orientation.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass AudioAnalyser {\n\n\tconstructor( audio, fftSize = 2048 ) {\n\n\t\tthis.analyser = audio.context.createAnalyser();\n\t\tthis.analyser.fftSize = fftSize;\n\n\t\tthis.data = new Uint8Array( this.analyser.frequencyBinCount );\n\n\t\taudio.getOutput().connect( this.analyser );\n\n\t}\n\n\n\tgetFrequencyData() {\n\n\t\tthis.analyser.getByteFrequencyData( this.data );\n\n\t\treturn this.data;\n\n\t}\n\n\tgetAverageFrequency() {\n\n\t\tlet value = 0;\n\t\tconst data = this.getFrequencyData();\n\n\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\tvalue += data[ i ];\n\n\t\t}\n\n\t\treturn value / data.length;\n\n\t}\n\n}\n\nclass PropertyMixer {\n\n\tconstructor( binding, typeName, valueSize ) {\n\n\t\tthis.binding = binding;\n\t\tthis.valueSize = valueSize;\n\n\t\tlet mixFunction,\n\t\t\tmixFunctionAdditive,\n\t\t\tsetIdentity;\n\n\t\t// buffer layout: [ incoming | accu0 | accu1 | orig | addAccu | (optional work) ]\n\t\t//\n\t\t// interpolators can use .buffer as their .result\n\t\t// the data then goes to 'incoming'\n\t\t//\n\t\t// 'accu0' and 'accu1' are used frame-interleaved for\n\t\t// the cumulative result and are compared to detect\n\t\t// changes\n\t\t//\n\t\t// 'orig' stores the original state of the property\n\t\t//\n\t\t// 'add' is used for additive cumulative results\n\t\t//\n\t\t// 'work' is optional and is only present for quaternion types. It is used\n\t\t// to store intermediate quaternion multiplication results\n\n\t\tswitch ( typeName ) {\n\n\t\t\tcase 'quaternion':\n\t\t\t\tmixFunction = this._slerp;\n\t\t\t\tmixFunctionAdditive = this._slerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityQuaternion;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 6 );\n\t\t\t\tthis._workIndex = 5;\n\t\t\t\tbreak;\n\n\t\t\tcase 'string':\n\t\t\tcase 'bool':\n\t\t\t\tmixFunction = this._select;\n\n\t\t\t\t// Use the regular mix function and for additive on these types,\n\t\t\t\t// additive is not relevant for non-numeric types\n\t\t\t\tmixFunctionAdditive = this._select;\n\n\t\t\t\tsetIdentity = this._setAdditiveIdentityOther;\n\n\t\t\t\tthis.buffer = new Array( valueSize * 5 );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tmixFunction = this._lerp;\n\t\t\t\tmixFunctionAdditive = this._lerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityNumeric;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 5 );\n\n\t\t}\n\n\t\tthis._mixBufferRegion = mixFunction;\n\t\tthis._mixBufferRegionAdditive = mixFunctionAdditive;\n\t\tthis._setIdentity = setIdentity;\n\t\tthis._origIndex = 3;\n\t\tthis._addIndex = 4;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tthis.useCount = 0;\n\t\tthis.referenceCount = 0;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'accu'\n\taccumulate( accuIndex, weight ) {\n\n\t\t// note: happily accumulating nothing when weight = 0, the caller knows\n\t\t// the weight and shouldn't have made the call in the first place\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = accuIndex * stride + stride;\n\n\t\tlet currentWeight = this.cumulativeWeight;\n\n\t\tif ( currentWeight === 0 ) {\n\n\t\t\t// accuN := incoming * weight\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ offset + i ] = buffer[ i ];\n\n\t\t\t}\n\n\t\t\tcurrentWeight = weight;\n\n\t\t} else {\n\n\t\t\t// accuN := accuN + incoming * weight\n\n\t\t\tcurrentWeight += weight;\n\t\t\tconst mix = weight / currentWeight;\n\t\t\tthis._mixBufferRegion( buffer, offset, 0, mix, stride );\n\n\t\t}\n\n\t\tthis.cumulativeWeight = currentWeight;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'add'\n\taccumulateAdditive( weight ) {\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = stride * this._addIndex;\n\n\t\tif ( this.cumulativeWeightAdditive === 0 ) {\n\n\t\t\t// add = identity\n\n\t\t\tthis._setIdentity();\n\n\t\t}\n\n\t\t// add := add + incoming * weight\n\n\t\tthis._mixBufferRegionAdditive( buffer, offset, 0, weight, stride );\n\t\tthis.cumulativeWeightAdditive += weight;\n\n\t}\n\n\t// apply the state of 'accu' to the binding when accus differ\n\tapply( accuIndex ) {\n\n\t\tconst stride = this.valueSize,\n\t\t\tbuffer = this.buffer,\n\t\t\toffset = accuIndex * stride + stride,\n\n\t\t\tweight = this.cumulativeWeight,\n\t\t\tweightAdditive = this.cumulativeWeightAdditive,\n\n\t\t\tbinding = this.binding;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tif ( weight < 1 ) {\n\n\t\t\t// accuN := accuN + original * ( 1 - cumulativeWeight )\n\n\t\t\tconst originalValueOffset = stride * this._origIndex;\n\n\t\t\tthis._mixBufferRegion(\n\t\t\t\tbuffer, offset, originalValueOffset, 1 - weight, stride );\n\n\t\t}\n\n\t\tif ( weightAdditive > 0 ) {\n\n\t\t\t// accuN := accuN + additive accuN\n\n\t\t\tthis._mixBufferRegionAdditive( buffer, offset, this._addIndex * stride, 1, stride );\n\n\t\t}\n\n\t\tfor ( let i = stride, e = stride + stride; i !== e; ++ i ) {\n\n\t\t\tif ( buffer[ i ] !== buffer[ i + stride ] ) {\n\n\t\t\t\t// value has changed -> update scene graph\n\n\t\t\t\tbinding.setValue( buffer, offset );\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remember the state of the bound property and copy it to both accus\n\tsaveOriginalState() {\n\n\t\tconst binding = this.binding;\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\n\t\t\toriginalValueOffset = stride * this._origIndex;\n\n\t\tbinding.getValue( buffer, originalValueOffset );\n\n\t\t// accu[0..1] := orig -- initially detect changes against the original\n\t\tfor ( let i = stride, e = originalValueOffset; i !== e; ++ i ) {\n\n\t\t\tbuffer[ i ] = buffer[ originalValueOffset + ( i % stride ) ];\n\n\t\t}\n\n\t\t// Add to identity for additive\n\t\tthis._setIdentity();\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t}\n\n\t// apply the state previously taken via 'saveOriginalState' to the binding\n\trestoreOriginalState() {\n\n\t\tconst originalValueOffset = this.valueSize * 3;\n\t\tthis.binding.setValue( this.buffer, originalValueOffset );\n\n\t}\n\n\t_setAdditiveIdentityNumeric() {\n\n\t\tconst startIndex = this._addIndex * this.valueSize;\n\t\tconst endIndex = startIndex + this.valueSize;\n\n\t\tfor ( let i = startIndex; i < endIndex; i ++ ) {\n\n\t\t\tthis.buffer[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\t_setAdditiveIdentityQuaternion() {\n\n\t\tthis._setAdditiveIdentityNumeric();\n\t\tthis.buffer[ this._addIndex * this.valueSize + 3 ] = 1;\n\n\t}\n\n\t_setAdditiveIdentityOther() {\n\n\t\tconst startIndex = this._origIndex * this.valueSize;\n\t\tconst targetIndex = this._addIndex * this.valueSize;\n\n\t\tfor ( let i = 0; i < this.valueSize; i ++ ) {\n\n\t\t\tthis.buffer[ targetIndex + i ] = this.buffer[ startIndex + i ];\n\n\t\t}\n\n\t}\n\n\n\t// mix functions\n\n\t_select( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tif ( t >= 0.5 ) {\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ dstOffset + i ] = buffer[ srcOffset + i ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_slerp( buffer, dstOffset, srcOffset, t ) {\n\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t );\n\n\t}\n\n\t_slerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst workOffset = this._workIndex * stride;\n\n\t\t// Store result in intermediate buffer offset\n\t\tQuaternion.multiplyQuaternionsFlat( buffer, workOffset, buffer, dstOffset, buffer, srcOffset );\n\n\t\t// Slerp to the intermediate result\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t );\n\n\t}\n\n\t_lerp( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst s = 1 - t;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] * s + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n\t_lerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n}\n\n// Characters [].:/ are reserved for track binding syntax.\nconst _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\nconst _reservedRe = new RegExp( '[' + _RESERVED_CHARS_RE + ']', 'g' );\n\n// Attempts to allow node names from any language. ES5's `\\w` regexp matches\n// only latin characters, and the unicode \\p{L} is not yet supported. So\n// instead, we exclude reserved characters and match everything else.\nconst _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\nconst _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace( '\\\\.', '' ) + ']';\n\n// Parent directories, delimited by '/' or ':'. Currently unused, but must\n// be matched to parse the rest of the track name.\nconst _directoryRe = /*@__PURE__*/ /((?:WC+[\\/:])*)/.source.replace( 'WC', _wordChar );\n\n// Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.\nconst _nodeRe = /*@__PURE__*/ /(WCOD+)?/.source.replace( 'WCOD', _wordCharOrDot );\n\n// Object on target node, and accessor. May not contain reserved\n// characters. Accessor may contain any character except closing bracket.\nconst _objectRe = /*@__PURE__*/ /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace( 'WC', _wordChar );\n\n// Property and accessor. May not contain reserved characters. Accessor may\n// contain any non-bracket characters.\nconst _propertyRe = /*@__PURE__*/ /\\.(WC+)(?:\\[(.+)\\])?/.source.replace( 'WC', _wordChar );\n\nconst _trackRe = new RegExp( ''\n\t+ '^'\n\t+ _directoryRe\n\t+ _nodeRe\n\t+ _objectRe\n\t+ _propertyRe\n\t+ '$'\n);\n\nconst _supportedObjectNames = [ 'material', 'materials', 'bones', 'map' ];\n\nclass Composite {\n\n\tconstructor( targetGroup, path, optionalParsedPath ) {\n\n\t\tconst parsedPath = optionalParsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis._targetGroup = targetGroup;\n\t\tthis._bindings = targetGroup.subscribe_( path, parsedPath );\n\n\t}\n\n\tgetValue( array, offset ) {\n\n\t\tthis.bind(); // bind all binding\n\n\t\tconst firstValidIndex = this._targetGroup.nCachedObjects_,\n\t\t\tbinding = this._bindings[ firstValidIndex ];\n\n\t\t// and only call .getValue on the first\n\t\tif ( binding !== undefined ) binding.getValue( array, offset );\n\n\t}\n\n\tsetValue( array, offset ) {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].setValue( array, offset );\n\n\t\t}\n\n\t}\n\n\tbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].bind();\n\n\t\t}\n\n\t}\n\n\tunbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].unbind();\n\n\t\t}\n\n\t}\n\n}\n\n// Note: This class uses a State pattern on a per-method basis:\n// 'bind' sets 'this.getValue' / 'setValue' and shadows the\n// prototype version of these methods with one that represents\n// the bound state. When the property is not found, the methods\n// become no-ops.\nclass PropertyBinding {\n\n\tconstructor( rootNode, path, parsedPath ) {\n\n\t\tthis.path = path;\n\t\tthis.parsedPath = parsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis.node = PropertyBinding.findNode( rootNode, this.parsedPath.nodeName );\n\n\t\tthis.rootNode = rootNode;\n\n\t\t// initial state of these methods that calls 'bind'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n\n\tstatic create( root, path, parsedPath ) {\n\n\t\tif ( ! ( root && root.isAnimationObjectGroup ) ) {\n\n\t\t\treturn new PropertyBinding( root, path, parsedPath );\n\n\t\t} else {\n\n\t\t\treturn new PropertyBinding.Composite( root, path, parsedPath );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Replaces spaces with underscores and removes unsupported characters from\n\t * node names, to ensure compatibility with parseTrackName().\n\t *\n\t * @param {string} name Node name to be sanitized.\n\t * @return {string}\n\t */\n\tstatic sanitizeNodeName( name ) {\n\n\t\treturn name.replace( /\\s/g, '_' ).replace( _reservedRe, '' );\n\n\t}\n\n\tstatic parseTrackName( trackName ) {\n\n\t\tconst matches = _trackRe.exec( trackName );\n\n\t\tif ( matches === null ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: Cannot parse trackName: ' + trackName );\n\n\t\t}\n\n\t\tconst results = {\n\t\t\t// directoryName: matches[ 1 ], // (tschw) currently unused\n\t\t\tnodeName: matches[ 2 ],\n\t\t\tobjectName: matches[ 3 ],\n\t\t\tobjectIndex: matches[ 4 ],\n\t\t\tpropertyName: matches[ 5 ], // required\n\t\t\tpropertyIndex: matches[ 6 ]\n\t\t};\n\n\t\tconst lastDot = results.nodeName && results.nodeName.lastIndexOf( '.' );\n\n\t\tif ( lastDot !== undefined && lastDot !== - 1 ) {\n\n\t\t\tconst objectName = results.nodeName.substring( lastDot + 1 );\n\n\t\t\t// Object names must be checked against an allowlist. Otherwise, there\n\t\t\t// is no way to parse 'foo.bar.baz': 'baz' must be a property, but\n\t\t\t// 'bar' could be the objectName, or part of a nodeName (which can\n\t\t\t// include '.' characters).\n\t\t\tif ( _supportedObjectNames.indexOf( objectName ) !== - 1 ) {\n\n\t\t\t\tresults.nodeName = results.nodeName.substring( 0, lastDot );\n\t\t\t\tresults.objectName = objectName;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( results.propertyName === null || results.propertyName.length === 0 ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: can not parse propertyName from trackName: ' + trackName );\n\n\t\t}\n\n\t\treturn results;\n\n\t}\n\n\tstatic findNode( root, nodeName ) {\n\n\t\tif ( nodeName === undefined || nodeName === '' || nodeName === '.' || nodeName === - 1 || nodeName === root.name || nodeName === root.uuid ) {\n\n\t\t\treturn root;\n\n\t\t}\n\n\t\t// search into skeleton bones.\n\t\tif ( root.skeleton ) {\n\n\t\t\tconst bone = root.skeleton.getBoneByName( nodeName );\n\n\t\t\tif ( bone !== undefined ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// search into node subtree.\n\t\tif ( root.children ) {\n\n\t\t\tconst searchNodeSubtree = function ( children ) {\n\n\t\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\t\tconst childNode = children[ i ];\n\n\t\t\t\t\tif ( childNode.name === nodeName || childNode.uuid === nodeName ) {\n\n\t\t\t\t\t\treturn childNode;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = searchNodeSubtree( childNode.children );\n\n\t\t\t\t\tif ( result ) return result;\n\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\n\t\t\t};\n\n\t\t\tconst subTreeNode = searchNodeSubtree( root.children );\n\n\t\t\tif ( subTreeNode ) {\n\n\t\t\t\treturn subTreeNode;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// these are used to \"bind\" a nonexistent property\n\t_getValue_unavailable() {}\n\t_setValue_unavailable() {}\n\n\t// Getters\n\n\t_getValue_direct( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.targetObject[ this.propertyName ];\n\n\t}\n\n\t_getValue_array( buffer, offset ) {\n\n\t\tconst source = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = source.length; i !== n; ++ i ) {\n\n\t\t\tbuffer[ offset ++ ] = source[ i ];\n\n\t\t}\n\n\t}\n\n\t_getValue_arrayElement( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.resolvedProperty[ this.propertyIndex ];\n\n\t}\n\n\t_getValue_toArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.toArray( buffer, offset );\n\n\t}\n\n\t// Direct\n\n\t_setValue_direct( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_direct_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_direct_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// EntireArray\n\n\t_setValue_array( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t}\n\n\t_setValue_array_setNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_array_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// ArrayElement\n\n\t_setValue_arrayElement( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_arrayElement_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_arrayElement_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// HasToFromArray\n\n\t_setValue_fromArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\n\t}\n\n\t_setValue_fromArray_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_fromArray_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t_getValue_unbound( targetArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.getValue( targetArray, offset );\n\n\t}\n\n\t_setValue_unbound( sourceArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.setValue( sourceArray, offset );\n\n\t}\n\n\t// create getter / setter pair for a property in the scene graph\n\tbind() {\n\n\t\tlet targetObject = this.node;\n\t\tconst parsedPath = this.parsedPath;\n\n\t\tconst objectName = parsedPath.objectName;\n\t\tconst propertyName = parsedPath.propertyName;\n\t\tlet propertyIndex = parsedPath.propertyIndex;\n\n\t\tif ( ! targetObject ) {\n\n\t\t\ttargetObject = PropertyBinding.findNode( this.rootNode, parsedPath.nodeName );\n\n\t\t\tthis.node = targetObject;\n\n\t\t}\n\n\t\t// set fail state so we can just 'return' on error\n\t\tthis.getValue = this._getValue_unavailable;\n\t\tthis.setValue = this._setValue_unavailable;\n\n\t\t// ensure there is a value node\n\t\tif ( ! targetObject ) {\n\n\t\t\tconsole.warn( 'THREE.PropertyBinding: No target node found for track: ' + this.path + '.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( objectName ) {\n\n\t\t\tlet objectIndex = parsedPath.objectIndex;\n\n\t\t\t// special cases were we need to reach deeper into the hierarchy to get the face materials....\n\t\t\tswitch ( objectName ) {\n\n\t\t\t\tcase 'materials':\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.materials ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.materials;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bones':\n\n\t\t\t\t\tif ( ! targetObject.skeleton ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// potential future optimization: skip this if propertyIndex is already an integer\n\t\t\t\t\t// and convert the integer string to a true integer.\n\n\t\t\t\t\ttargetObject = targetObject.skeleton.bones;\n\n\t\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\t\tfor ( let i = 0; i < targetObject.length; i ++ ) {\n\n\t\t\t\t\t\tif ( targetObject[ i ].name === objectIndex ) {\n\n\t\t\t\t\t\t\tobjectIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map':\n\n\t\t\t\t\tif ( 'map' in targetObject ) {\n\n\t\t\t\t\t\ttargetObject = targetObject.map;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.map ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.map;\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tif ( targetObject[ objectName ] === undefined ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to objectName of node undefined.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject[ objectName ];\n\n\t\t\t}\n\n\n\t\t\tif ( objectIndex !== undefined ) {\n\n\t\t\t\tif ( targetObject[ objectIndex ] === undefined ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\ttargetObject = targetObject[ objectIndex ];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// resolve property\n\t\tconst nodeProperty = targetObject[ propertyName ];\n\n\t\tif ( nodeProperty === undefined ) {\n\n\t\t\tconst nodeName = parsedPath.nodeName;\n\n\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to update property for track: ' + nodeName +\n\t\t\t\t'.' + propertyName + ' but it wasn\\'t found.', targetObject );\n\t\t\treturn;\n\n\t\t}\n\n\t\t// determine versioning scheme\n\t\tlet versioning = this.Versioning.None;\n\n\t\tthis.targetObject = targetObject;\n\n\t\tif ( targetObject.needsUpdate !== undefined ) { // material\n\n\t\t\tversioning = this.Versioning.NeedsUpdate;\n\n\t\t} else if ( targetObject.matrixWorldNeedsUpdate !== undefined ) { // node transform\n\n\t\t\tversioning = this.Versioning.MatrixWorldNeedsUpdate;\n\n\t\t}\n\n\t\t// determine how the property gets bound\n\t\tlet bindingType = this.BindingType.Direct;\n\n\t\tif ( propertyIndex !== undefined ) {\n\n\t\t\t// access a sub element of the property array (only primitives are supported right now)\n\n\t\t\tif ( propertyName === 'morphTargetInfluences' ) {\n\n\t\t\t\t// potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer.\n\n\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\tif ( ! targetObject.geometry ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! targetObject.geometry.morphAttributes ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( targetObject.morphTargetDictionary[ propertyIndex ] !== undefined ) {\n\n\t\t\t\t\tpropertyIndex = targetObject.morphTargetDictionary[ propertyIndex ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tbindingType = this.BindingType.ArrayElement;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\t\t\tthis.propertyIndex = propertyIndex;\n\n\t\t} else if ( nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined ) {\n\n\t\t\t// must use copy for Object3D.Euler/Quaternion\n\n\t\t\tbindingType = this.BindingType.HasFromToArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else if ( Array.isArray( nodeProperty ) ) {\n\n\t\t\tbindingType = this.BindingType.EntireArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else {\n\n\t\t\tthis.propertyName = propertyName;\n\n\t\t}\n\n\t\t// select getter / setter\n\t\tthis.getValue = this.GetterByBindingType[ bindingType ];\n\t\tthis.setValue = this.SetterByBindingTypeAndVersioning[ bindingType ][ versioning ];\n\n\t}\n\n\tunbind() {\n\n\t\tthis.node = null;\n\n\t\t// back to the prototype version of getValue / setValue\n\t\t// note: avoiding to mutate the shape of 'this' via 'delete'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n}\n\nPropertyBinding.Composite = Composite;\n\nPropertyBinding.prototype.BindingType = {\n\tDirect: 0,\n\tEntireArray: 1,\n\tArrayElement: 2,\n\tHasFromToArray: 3\n};\n\nPropertyBinding.prototype.Versioning = {\n\tNone: 0,\n\tNeedsUpdate: 1,\n\tMatrixWorldNeedsUpdate: 2\n};\n\nPropertyBinding.prototype.GetterByBindingType = [\n\n\tPropertyBinding.prototype._getValue_direct,\n\tPropertyBinding.prototype._getValue_array,\n\tPropertyBinding.prototype._getValue_arrayElement,\n\tPropertyBinding.prototype._getValue_toArray,\n\n];\n\nPropertyBinding.prototype.SetterByBindingTypeAndVersioning = [\n\n\t[\n\t\t// Direct\n\t\tPropertyBinding.prototype._setValue_direct,\n\t\tPropertyBinding.prototype._setValue_direct_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// EntireArray\n\n\t\tPropertyBinding.prototype._setValue_array,\n\t\tPropertyBinding.prototype._setValue_array_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// ArrayElement\n\t\tPropertyBinding.prototype._setValue_arrayElement,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// HasToFromArray\n\t\tPropertyBinding.prototype._setValue_fromArray,\n\t\tPropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate,\n\n\t]\n\n];\n\n/**\n *\n * A group of objects that receives a shared animation state.\n *\n * Usage:\n *\n * - Add objects you would otherwise pass as 'root' to the\n * constructor or the .clipAction method of AnimationMixer.\n *\n * - Instead pass this object as 'root'.\n *\n * - You can also add and remove objects later when the mixer\n * is running.\n *\n * Note:\n *\n * Objects of this class appear as one object to the mixer,\n * so cache control of the individual objects must be done\n * on the group.\n *\n * Limitation:\n *\n * - The animated properties must be compatible among the\n * all objects in the group.\n *\n * - A single property can either be controlled through a\n * target group or directly, but not both.\n */\n\nclass AnimationObjectGroup {\n\n\tconstructor() {\n\n\t\tthis.isAnimationObjectGroup = true;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// cached objects followed by the active ones\n\t\tthis._objects = Array.prototype.slice.call( arguments );\n\n\t\tthis.nCachedObjects_ = 0; // threshold\n\t\t// note: read by PropertyBinding.Composite\n\n\t\tconst indices = {};\n\t\tthis._indicesByUUID = indices; // for bookkeeping\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tindices[ arguments[ i ].uuid ] = i;\n\n\t\t}\n\n\t\tthis._paths = []; // inside: string\n\t\tthis._parsedPaths = []; // inside: { we don't care, here }\n\t\tthis._bindings = []; // inside: Array< PropertyBinding >\n\t\tthis._bindingsIndicesByPath = {}; // inside: indices in these arrays\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tobjects: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._objects.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn this.total - scope.nCachedObjects_;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tget bindingsPerObject() {\n\n\t\t\t\treturn scope._bindings.length;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tadd() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tpaths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet knownObject = undefined,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid;\n\t\t\tlet index = indicesByUUID[ uuid ];\n\n\t\t\tif ( index === undefined ) {\n\n\t\t\t\t// unknown object -> add it to the ACTIVE region\n\n\t\t\t\tindex = nObjects ++;\n\t\t\t\tindicesByUUID[ uuid ] = index;\n\t\t\t\tobjects.push( object );\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tbindings[ j ].push( new PropertyBinding( object, paths[ j ], parsedPaths[ j ] ) );\n\n\t\t\t\t}\n\n\t\t\t} else if ( index < nCachedObjects ) {\n\n\t\t\t\tknownObject = objects[ index ];\n\n\t\t\t\t// move existing object to the ACTIVE region\n\n\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ];\n\n\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = firstActiveIndex;\n\t\t\t\tobjects[ firstActiveIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ];\n\n\t\t\t\t\tlet binding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\n\t\t\t\t\tif ( binding === undefined ) {\n\n\t\t\t\t\t\t// since we do not bother to create new bindings\n\t\t\t\t\t\t// for objects that are cached, the binding may\n\t\t\t\t\t\t// or may not exist\n\n\t\t\t\t\t\tbinding = new PropertyBinding( object, paths[ j ], parsedPaths[ j ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t} else if ( objects[ index ] !== knownObject ) {\n\n\t\t\t\tconsole.error( 'THREE.AnimationObjectGroup: Different objects with the same UUID ' +\n\t\t\t\t\t'detected. Clean the caches or recreate your infrastructure when reloading scenes.' );\n\n\t\t\t} // else the object is already where we want it to be\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\tremove() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined && index >= nCachedObjects ) {\n\n\t\t\t\t// move existing object into the CACHED region\n\n\t\t\t\tconst lastCachedIndex = nCachedObjects ++,\n\t\t\t\t\tfirstActiveObject = objects[ lastCachedIndex ];\n\n\t\t\t\tindicesByUUID[ firstActiveObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = firstActiveObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = lastCachedIndex;\n\t\t\t\tobjects[ lastCachedIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tfirstActive = bindingsForPath[ lastCachedIndex ],\n\t\t\t\t\t\tbinding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = firstActive;\n\t\t\t\t\tbindingsForPath[ lastCachedIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// remove & forget\n\tuncache() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_,\n\t\t\tnObjects = objects.length;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined ) {\n\n\t\t\t\tdelete indicesByUUID[ uuid ];\n\n\t\t\t\tif ( index < nCachedObjects ) {\n\n\t\t\t\t\t// object is cached, shrink the CACHED region\n\n\t\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ],\n\t\t\t\t\t\tlastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\t// last cached object takes this object's place\n\t\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\t\t// last object goes to the activated slot and pop\n\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = firstActiveIndex;\n\t\t\t\t\tobjects[ firstActiveIndex ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ],\n\t\t\t\t\t\t\tlast = bindingsForPath[ lastIndex ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\t\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = last;\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// object is active, just swap with the last and pop\n\n\t\t\t\t\tconst lastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\tif ( lastIndex > 0 ) {\n\n\t\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = index;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tobjects[ index ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = bindingsForPath[ lastIndex ];\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} // cached or active\n\n\t\t\t} // if object is known\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// Internal interface used by befriended PropertyBinding.Composite:\n\n\tsubscribe_( path, parsedPath ) {\n\n\t\t// returns an array of bindings for the given path that is changed\n\t\t// according to the contained objects in the group\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath;\n\t\tlet index = indicesByPath[ path ];\n\t\tconst bindings = this._bindings;\n\n\t\tif ( index !== undefined ) return bindings[ index ];\n\n\t\tconst paths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tobjects = this._objects,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_,\n\t\t\tbindingsForPath = new Array( nObjects );\n\n\t\tindex = bindings.length;\n\n\t\tindicesByPath[ path ] = index;\n\n\t\tpaths.push( path );\n\t\tparsedPaths.push( parsedPath );\n\t\tbindings.push( bindingsForPath );\n\n\t\tfor ( let i = nCachedObjects, n = objects.length; i !== n; ++ i ) {\n\n\t\t\tconst object = objects[ i ];\n\t\t\tbindingsForPath[ i ] = new PropertyBinding( object, path, parsedPath );\n\n\t\t}\n\n\t\treturn bindingsForPath;\n\n\t}\n\n\tunsubscribe_( path ) {\n\n\t\t// tells the group to forget about a property path and no longer\n\t\t// update the array previously obtained with 'subscribe_'\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath,\n\t\t\tindex = indicesByPath[ path ];\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst paths = this._paths,\n\t\t\t\tparsedPaths = this._parsedPaths,\n\t\t\t\tbindings = this._bindings,\n\t\t\t\tlastBindingsIndex = bindings.length - 1,\n\t\t\t\tlastBindings = bindings[ lastBindingsIndex ],\n\t\t\t\tlastBindingsPath = path[ lastBindingsIndex ];\n\n\t\t\tindicesByPath[ lastBindingsPath ] = index;\n\n\t\t\tbindings[ index ] = lastBindings;\n\t\t\tbindings.pop();\n\n\t\t\tparsedPaths[ index ] = parsedPaths[ lastBindingsIndex ];\n\t\t\tparsedPaths.pop();\n\n\t\t\tpaths[ index ] = paths[ lastBindingsIndex ];\n\t\t\tpaths.pop();\n\n\t\t}\n\n\t}\n\n}\n\nclass AnimationAction {\n\n\tconstructor( mixer, clip, localRoot = null, blendMode = clip.blendMode ) {\n\n\t\tthis._mixer = mixer;\n\t\tthis._clip = clip;\n\t\tthis._localRoot = localRoot;\n\t\tthis.blendMode = blendMode;\n\n\t\tconst tracks = clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tinterpolants = new Array( nTracks );\n\n\t\tconst interpolantSettings = {\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\t\t};\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst interpolant = tracks[ i ].createInterpolant( null );\n\t\t\tinterpolants[ i ] = interpolant;\n\t\t\tinterpolant.settings = interpolantSettings;\n\n\t\t}\n\n\t\tthis._interpolantSettings = interpolantSettings;\n\n\t\tthis._interpolants = interpolants; // bound by the mixer\n\n\t\t// inside: PropertyMixer (managed by the mixer)\n\t\tthis._propertyBindings = new Array( nTracks );\n\n\t\tthis._cacheIndex = null; // for the memory manager\n\t\tthis._byClipCacheIndex = null; // for the memory manager\n\n\t\tthis._timeScaleInterpolant = null;\n\t\tthis._weightInterpolant = null;\n\n\t\tthis.loop = LoopRepeat;\n\t\tthis._loopCount = - 1;\n\n\t\t// global mixer time when the action is to be started\n\t\t// it's set back to 'null' upon start of the action\n\t\tthis._startTime = null;\n\n\t\t// scaled local time of the action\n\t\t// gets clamped or wrapped to 0..clip.duration according to loop\n\t\tthis.time = 0;\n\n\t\tthis.timeScale = 1;\n\t\tthis._effectiveTimeScale = 1;\n\n\t\tthis.weight = 1;\n\t\tthis._effectiveWeight = 1;\n\n\t\tthis.repetitions = Infinity; // no. of repetitions when looping\n\n\t\tthis.paused = false; // true -> zero effective time scale\n\t\tthis.enabled = true; // false -> zero effective weight\n\n\t\tthis.clampWhenFinished = false;// keep feeding the last frame?\n\n\t\tthis.zeroSlopeAtStart = true;// for smooth interpolation w/o separate\n\t\tthis.zeroSlopeAtEnd = true;// clips for start, loop and end\n\n\t}\n\n\t// State & Scheduling\n\n\tplay() {\n\n\t\tthis._mixer._activateAction( this );\n\n\t\treturn this;\n\n\t}\n\n\tstop() {\n\n\t\tthis._mixer._deactivateAction( this );\n\n\t\treturn this.reset();\n\n\t}\n\n\treset() {\n\n\t\tthis.paused = false;\n\t\tthis.enabled = true;\n\n\t\tthis.time = 0; // restart clip\n\t\tthis._loopCount = - 1;// forget previous loops\n\t\tthis._startTime = null;// forget scheduling\n\n\t\treturn this.stopFading().stopWarping();\n\n\t}\n\n\tisRunning() {\n\n\t\treturn this.enabled && ! this.paused && this.timeScale !== 0 &&\n\t\t\tthis._startTime === null && this._mixer._isActiveAction( this );\n\n\t}\n\n\t// return true when play has been called\n\tisScheduled() {\n\n\t\treturn this._mixer._isActiveAction( this );\n\n\t}\n\n\tstartAt( time ) {\n\n\t\tthis._startTime = time;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoop( mode, repetitions ) {\n\n\t\tthis.loop = mode;\n\t\tthis.repetitions = repetitions;\n\n\t\treturn this;\n\n\t}\n\n\t// Weight\n\n\t// set the weight stopping any scheduled fading\n\t// although .enabled = false yields an effective weight of zero, this\n\t// method does *not* change .enabled, because it would be confusing\n\tsetEffectiveWeight( weight ) {\n\n\t\tthis.weight = weight;\n\n\t\t// note: same logic as when updated at runtime\n\t\tthis._effectiveWeight = this.enabled ? weight : 0;\n\n\t\treturn this.stopFading();\n\n\t}\n\n\t// return the weight considering fading and .enabled\n\tgetEffectiveWeight() {\n\n\t\treturn this._effectiveWeight;\n\n\t}\n\n\tfadeIn( duration ) {\n\n\t\treturn this._scheduleFading( duration, 0, 1 );\n\n\t}\n\n\tfadeOut( duration ) {\n\n\t\treturn this._scheduleFading( duration, 1, 0 );\n\n\t}\n\n\tcrossFadeFrom( fadeOutAction, duration, warp ) {\n\n\t\tfadeOutAction.fadeOut( duration );\n\t\tthis.fadeIn( duration );\n\n\t\tif ( warp ) {\n\n\t\t\tconst fadeInDuration = this._clip.duration,\n\t\t\t\tfadeOutDuration = fadeOutAction._clip.duration,\n\n\t\t\t\tstartEndRatio = fadeOutDuration / fadeInDuration,\n\t\t\t\tendStartRatio = fadeInDuration / fadeOutDuration;\n\n\t\t\tfadeOutAction.warp( 1.0, startEndRatio, duration );\n\t\t\tthis.warp( endStartRatio, 1.0, duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcrossFadeTo( fadeInAction, duration, warp ) {\n\n\t\treturn fadeInAction.crossFadeFrom( this, duration, warp );\n\n\t}\n\n\tstopFading() {\n\n\t\tconst weightInterpolant = this._weightInterpolant;\n\n\t\tif ( weightInterpolant !== null ) {\n\n\t\t\tthis._weightInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( weightInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Time Scale Control\n\n\t// set the time scale stopping any scheduled warping\n\t// although .paused = true yields an effective time scale of zero, this\n\t// method does *not* change .paused, because it would be confusing\n\tsetEffectiveTimeScale( timeScale ) {\n\n\t\tthis.timeScale = timeScale;\n\t\tthis._effectiveTimeScale = this.paused ? 0 : timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\t// return the time scale considering warping and .paused\n\tgetEffectiveTimeScale() {\n\n\t\treturn this._effectiveTimeScale;\n\n\t}\n\n\tsetDuration( duration ) {\n\n\t\tthis.timeScale = this._clip.duration / duration;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\tsyncWith( action ) {\n\n\t\tthis.time = action.time;\n\t\tthis.timeScale = action.timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\thalt( duration ) {\n\n\t\treturn this.warp( this._effectiveTimeScale, 0, duration );\n\n\t}\n\n\twarp( startTimeScale, endTimeScale, duration ) {\n\n\t\tconst mixer = this._mixer,\n\t\t\tnow = mixer.time,\n\t\t\ttimeScale = this.timeScale;\n\n\t\tlet interpolant = this._timeScaleInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._timeScaleInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\ttimes[ 1 ] = now + duration;\n\n\t\tvalues[ 0 ] = startTimeScale / timeScale;\n\t\tvalues[ 1 ] = endTimeScale / timeScale;\n\n\t\treturn this;\n\n\t}\n\n\tstopWarping() {\n\n\t\tconst timeScaleInterpolant = this._timeScaleInterpolant;\n\n\t\tif ( timeScaleInterpolant !== null ) {\n\n\t\t\tthis._timeScaleInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( timeScaleInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Object Accessors\n\n\tgetMixer() {\n\n\t\treturn this._mixer;\n\n\t}\n\n\tgetClip() {\n\n\t\treturn this._clip;\n\n\t}\n\n\tgetRoot() {\n\n\t\treturn this._localRoot || this._mixer._root;\n\n\t}\n\n\t// Interna\n\n\t_update( time, deltaTime, timeDirection, accuIndex ) {\n\n\t\t// called by the mixer\n\n\t\tif ( ! this.enabled ) {\n\n\t\t\t// call ._updateWeight() to update ._effectiveWeight\n\n\t\t\tthis._updateWeight( time );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst startTime = this._startTime;\n\n\t\tif ( startTime !== null ) {\n\n\t\t\t// check for scheduled start of action\n\n\t\t\tconst timeRunning = ( time - startTime ) * timeDirection;\n\t\t\tif ( timeRunning < 0 || timeDirection === 0 ) {\n\n\t\t\t\tdeltaTime = 0;\n\n\t\t\t} else {\n\n\n\t\t\t\tthis._startTime = null; // unschedule\n\t\t\t\tdeltaTime = timeDirection * timeRunning;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// apply time scale and advance time\n\n\t\tdeltaTime *= this._updateTimeScale( time );\n\t\tconst clipTime = this._updateTime( deltaTime );\n\n\t\t// note: _updateTime may disable the action resulting in\n\t\t// an effective weight of 0\n\n\t\tconst weight = this._updateWeight( time );\n\n\t\tif ( weight > 0 ) {\n\n\t\t\tconst interpolants = this._interpolants;\n\t\t\tconst propertyMixers = this._propertyBindings;\n\n\t\t\tswitch ( this.blendMode ) {\n\n\t\t\t\tcase AdditiveAnimationBlendMode:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulateAdditive( weight );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase NormalAnimationBlendMode:\n\t\t\t\tdefault:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulate( accuIndex, weight );\n\n\t\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_updateWeight( time ) {\n\n\t\tlet weight = 0;\n\n\t\tif ( this.enabled ) {\n\n\t\t\tweight = this.weight;\n\t\t\tconst interpolant = this._weightInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\tweight *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopFading();\n\n\t\t\t\t\tif ( interpolantValue === 0 ) {\n\n\t\t\t\t\t\t// faded out, disable\n\t\t\t\t\t\tthis.enabled = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveWeight = weight;\n\t\treturn weight;\n\n\t}\n\n\t_updateTimeScale( time ) {\n\n\t\tlet timeScale = 0;\n\n\t\tif ( ! this.paused ) {\n\n\t\t\ttimeScale = this.timeScale;\n\n\t\t\tconst interpolant = this._timeScaleInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\ttimeScale *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopWarping();\n\n\t\t\t\t\tif ( timeScale === 0 ) {\n\n\t\t\t\t\t\t// motion has halted, pause\n\t\t\t\t\t\tthis.paused = true;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// warp done - apply final time scale\n\t\t\t\t\t\tthis.timeScale = timeScale;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveTimeScale = timeScale;\n\t\treturn timeScale;\n\n\t}\n\n\t_updateTime( deltaTime ) {\n\n\t\tconst duration = this._clip.duration;\n\t\tconst loop = this.loop;\n\n\t\tlet time = this.time + deltaTime;\n\t\tlet loopCount = this._loopCount;\n\n\t\tconst pingPong = ( loop === LoopPingPong );\n\n\t\tif ( deltaTime === 0 ) {\n\n\t\t\tif ( loopCount === - 1 ) return time;\n\n\t\t\treturn ( pingPong && ( loopCount & 1 ) === 1 ) ? duration - time : time;\n\n\t\t}\n\n\t\tif ( loop === LoopOnce ) {\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tthis._loopCount = 0;\n\t\t\t\tthis._setEndings( true, true, false );\n\n\t\t\t}\n\n\t\t\thandle_stop: {\n\n\t\t\t\tif ( time >= duration ) {\n\n\t\t\t\t\ttime = duration;\n\n\t\t\t\t} else if ( time < 0 ) {\n\n\t\t\t\t\ttime = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tbreak handle_stop;\n\n\t\t\t\t}\n\n\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\telse this.enabled = false;\n\n\t\t\t\tthis.time = time;\n\n\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\tdirection: deltaTime < 0 ? - 1 : 1\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t} else { // repetitive Repeat or PingPong\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tif ( deltaTime >= 0 ) {\n\n\t\t\t\t\tloopCount = 0;\n\n\t\t\t\t\tthis._setEndings( true, this.repetitions === 0, pingPong );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// when looping in reverse direction, the initial\n\t\t\t\t\t// transition through zero counts as a repetition,\n\t\t\t\t\t// so leave loopCount at -1\n\n\t\t\t\t\tthis._setEndings( this.repetitions === 0, true, pingPong );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( time >= duration || time < 0 ) {\n\n\t\t\t\t// wrap around\n\n\t\t\t\tconst loopDelta = Math.floor( time / duration ); // signed\n\t\t\t\ttime -= duration * loopDelta;\n\n\t\t\t\tloopCount += Math.abs( loopDelta );\n\n\t\t\t\tconst pending = this.repetitions - loopCount;\n\n\t\t\t\tif ( pending <= 0 ) {\n\n\t\t\t\t\t// have to stop (switch state, clamp time, fire event)\n\n\t\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\t\telse this.enabled = false;\n\n\t\t\t\t\ttime = deltaTime > 0 ? duration : 0;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\t\tdirection: deltaTime > 0 ? 1 : - 1\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// keep running\n\n\t\t\t\t\tif ( pending === 1 ) {\n\n\t\t\t\t\t\t// entering the last round\n\n\t\t\t\t\t\tconst atStart = deltaTime < 0;\n\t\t\t\t\t\tthis._setEndings( atStart, ! atStart, pingPong );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis._setEndings( false, false, pingPong );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._loopCount = loopCount;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'loop', action: this, loopDelta: loopDelta\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tthis.time = time;\n\n\t\t\t}\n\n\t\t\tif ( pingPong && ( loopCount & 1 ) === 1 ) {\n\n\t\t\t\t// invert time for the \"pong round\"\n\n\t\t\t\treturn duration - time;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn time;\n\n\t}\n\n\t_setEndings( atStart, atEnd, pingPong ) {\n\n\t\tconst settings = this._interpolantSettings;\n\n\t\tif ( pingPong ) {\n\n\t\t\tsettings.endingStart = ZeroSlopeEnding;\n\t\t\tsettings.endingEnd = ZeroSlopeEnding;\n\n\t\t} else {\n\n\t\t\t// assuming for LoopOnce atStart == atEnd == true\n\n\t\t\tif ( atStart ) {\n\n\t\t\t\tsettings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingStart = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t\tif ( atEnd ) {\n\n\t\t\t\tsettings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingEnd \t = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_scheduleFading( duration, weightNow, weightThen ) {\n\n\t\tconst mixer = this._mixer, now = mixer.time;\n\t\tlet interpolant = this._weightInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._weightInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\tvalues[ 0 ] = weightNow;\n\t\ttimes[ 1 ] = now + duration;\n\t\tvalues[ 1 ] = weightThen;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _controlInterpolantsResultBuffer = new Float32Array( 1 );\n\n\nclass AnimationMixer extends EventDispatcher {\n\n\tconstructor( root ) {\n\n\t\tsuper();\n\n\t\tthis._root = root;\n\t\tthis._initMemoryManager();\n\t\tthis._accuIndex = 0;\n\t\tthis.time = 0;\n\t\tthis.timeScale = 1.0;\n\n\t}\n\n\t_bindAction( action, prototypeAction ) {\n\n\t\tconst root = action._localRoot || this._root,\n\t\t\ttracks = action._clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tbindings = action._propertyBindings,\n\t\t\tinterpolants = action._interpolants,\n\t\t\trootUuid = root.uuid,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName;\n\n\t\tlet bindingsByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingsByName === undefined ) {\n\n\t\t\tbindingsByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingsByName;\n\n\t\t}\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst track = tracks[ i ],\n\t\t\t\ttrackName = track.name;\n\n\t\t\tlet binding = bindingsByName[ trackName ];\n\n\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t} else {\n\n\t\t\t\tbinding = bindings[ i ];\n\n\t\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t\t// existing binding, make sure the cache knows\n\n\t\t\t\t\tif ( binding._cacheIndex === null ) {\n\n\t\t\t\t\t\t++ binding.referenceCount;\n\t\t\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\tconst path = prototypeAction && prototypeAction.\n\t\t\t\t\t_propertyBindings[ i ].binding.parsedPath;\n\n\t\t\t\tbinding = new PropertyMixer(\n\t\t\t\t\tPropertyBinding.create( root, trackName, path ),\n\t\t\t\t\ttrack.ValueTypeName, track.getValueSize() );\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t}\n\n\t\t\tinterpolants[ i ].resultBuffer = binding.buffer;\n\n\t\t}\n\n\t}\n\n\t_activateAction( action ) {\n\n\t\tif ( ! this._isActiveAction( action ) ) {\n\n\t\t\tif ( action._cacheIndex === null ) {\n\n\t\t\t\t// this action has been forgotten by the cache, but the user\n\t\t\t\t// appears to be still using it -> rebind\n\n\t\t\t\tconst rootUuid = ( action._localRoot || this._root ).uuid,\n\t\t\t\t\tclipUuid = action._clip.uuid,\n\t\t\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\t\t\tthis._bindAction( action,\n\t\t\t\t\tactionsForClip && actionsForClip.knownActions[ 0 ] );\n\n\t\t\t\tthis._addInactiveAction( action, clipUuid, rootUuid );\n\n\t\t\t}\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// increment reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( binding.useCount ++ === 0 ) {\n\n\t\t\t\t\tthis._lendBinding( binding );\n\t\t\t\t\tbinding.saveOriginalState();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._lendAction( action );\n\n\t\t}\n\n\t}\n\n\t_deactivateAction( action ) {\n\n\t\tif ( this._isActiveAction( action ) ) {\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// decrement reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( -- binding.useCount === 0 ) {\n\n\t\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\t\tthis._takeBackBinding( binding );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._takeBackAction( action );\n\n\t\t}\n\n\t}\n\n\t// Memory manager\n\n\t_initMemoryManager() {\n\n\t\tthis._actions = []; // 'nActiveActions' followed by inactive ones\n\t\tthis._nActiveActions = 0;\n\n\t\tthis._actionsByClip = {};\n\t\t// inside:\n\t\t// {\n\t\t// \tknownActions: Array< AnimationAction > - used as prototypes\n\t\t// \tactionByRoot: AnimationAction - lookup\n\t\t// }\n\n\n\t\tthis._bindings = []; // 'nActiveBindings' followed by inactive ones\n\t\tthis._nActiveBindings = 0;\n\n\t\tthis._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer >\n\n\n\t\tthis._controlInterpolants = []; // same game as above\n\t\tthis._nActiveControlInterpolants = 0;\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tactions: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._actions.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveActions;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tbindings: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._bindings.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveBindings;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tcontrolInterpolants: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._controlInterpolants.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveControlInterpolants;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t// Memory management for AnimationAction objects\n\n\t_isActiveAction( action ) {\n\n\t\tconst index = action._cacheIndex;\n\t\treturn index !== null && index < this._nActiveActions;\n\n\t}\n\n\t_addInactiveAction( action, clipUuid, rootUuid ) {\n\n\t\tconst actions = this._actions,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tlet actionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip === undefined ) {\n\n\t\t\tactionsForClip = {\n\n\t\t\t\tknownActions: [ action ],\n\t\t\t\tactionByRoot: {}\n\n\t\t\t};\n\n\t\t\taction._byClipCacheIndex = 0;\n\n\t\t\tactionsByClip[ clipUuid ] = actionsForClip;\n\n\t\t} else {\n\n\t\t\tconst knownActions = actionsForClip.knownActions;\n\n\t\t\taction._byClipCacheIndex = knownActions.length;\n\t\t\tknownActions.push( action );\n\n\t\t}\n\n\t\taction._cacheIndex = actions.length;\n\t\tactions.push( action );\n\n\t\tactionsForClip.actionByRoot[ rootUuid ] = action;\n\n\t}\n\n\t_removeInactiveAction( action ) {\n\n\t\tconst actions = this._actions,\n\t\t\tlastInactiveAction = actions[ actions.length - 1 ],\n\t\t\tcacheIndex = action._cacheIndex;\n\n\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\tactions.pop();\n\n\t\taction._cacheIndex = null;\n\n\n\t\tconst clipUuid = action._clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ],\n\t\t\tknownActionsForClip = actionsForClip.knownActions,\n\n\t\t\tlastKnownAction =\n\t\t\t\tknownActionsForClip[ knownActionsForClip.length - 1 ],\n\n\t\t\tbyClipCacheIndex = action._byClipCacheIndex;\n\n\t\tlastKnownAction._byClipCacheIndex = byClipCacheIndex;\n\t\tknownActionsForClip[ byClipCacheIndex ] = lastKnownAction;\n\t\tknownActionsForClip.pop();\n\n\t\taction._byClipCacheIndex = null;\n\n\n\t\tconst actionByRoot = actionsForClip.actionByRoot,\n\t\t\trootUuid = ( action._localRoot || this._root ).uuid;\n\n\t\tdelete actionByRoot[ rootUuid ];\n\n\t\tif ( knownActionsForClip.length === 0 ) {\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t\tthis._removeInactiveBindingsForAction( action );\n\n\t}\n\n\t_removeInactiveBindingsForAction( action ) {\n\n\t\tconst bindings = action._propertyBindings;\n\n\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tconst binding = bindings[ i ];\n\n\t\t\tif ( -- binding.referenceCount === 0 ) {\n\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_lendAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions >| inactive actions ]\n\t\t// s a\n\t\t// <-swap->\n\t\t// a s\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveActions ++,\n\n\t\t\tfirstInactiveAction = actions[ lastActiveIndex ];\n\n\t\taction._cacheIndex = lastActiveIndex;\n\t\tactions[ lastActiveIndex ] = action;\n\n\t\tfirstInactiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = firstInactiveAction;\n\n\t}\n\n\t_takeBackAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions |< inactive actions ]\n\t\t// a s\n\t\t// <-swap->\n\t\t// s a\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveActions,\n\n\t\t\tlastActiveAction = actions[ firstInactiveIndex ];\n\n\t\taction._cacheIndex = firstInactiveIndex;\n\t\tactions[ firstInactiveIndex ] = action;\n\n\t\tlastActiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = lastActiveAction;\n\n\t}\n\n\t// Memory management for PropertyMixer objects\n\n\t_addInactiveBinding( binding, rootUuid, trackName ) {\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindings = this._bindings;\n\n\t\tlet bindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName === undefined ) {\n\n\t\t\tbindingByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingByName;\n\n\t\t}\n\n\t\tbindingByName[ trackName ] = binding;\n\n\t\tbinding._cacheIndex = bindings.length;\n\t\tbindings.push( binding );\n\n\t}\n\n\t_removeInactiveBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tpropBinding = binding.binding,\n\t\t\trootUuid = propBinding.rootNode.uuid,\n\t\t\ttrackName = propBinding.path,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ],\n\n\t\t\tlastInactiveBinding = bindings[ bindings.length - 1 ],\n\t\t\tcacheIndex = binding._cacheIndex;\n\n\t\tlastInactiveBinding._cacheIndex = cacheIndex;\n\t\tbindings[ cacheIndex ] = lastInactiveBinding;\n\t\tbindings.pop();\n\n\t\tdelete bindingByName[ trackName ];\n\n\t\tif ( Object.keys( bindingByName ).length === 0 ) {\n\n\t\t\tdelete bindingsByRoot[ rootUuid ];\n\n\t\t}\n\n\t}\n\n\t_lendBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveBindings ++,\n\n\t\t\tfirstInactiveBinding = bindings[ lastActiveIndex ];\n\n\t\tbinding._cacheIndex = lastActiveIndex;\n\t\tbindings[ lastActiveIndex ] = binding;\n\n\t\tfirstInactiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = firstInactiveBinding;\n\n\t}\n\n\t_takeBackBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveBindings,\n\n\t\t\tlastActiveBinding = bindings[ firstInactiveIndex ];\n\n\t\tbinding._cacheIndex = firstInactiveIndex;\n\t\tbindings[ firstInactiveIndex ] = binding;\n\n\t\tlastActiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = lastActiveBinding;\n\n\t}\n\n\n\t// Memory management of Interpolants for weight and time scale\n\n\t_lendControlInterpolant() {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tlastActiveIndex = this._nActiveControlInterpolants ++;\n\n\t\tlet interpolant = interpolants[ lastActiveIndex ];\n\n\t\tif ( interpolant === undefined ) {\n\n\t\t\tinterpolant = new LinearInterpolant(\n\t\t\t\tnew Float32Array( 2 ), new Float32Array( 2 ),\n\t\t\t\t1, _controlInterpolantsResultBuffer );\n\n\t\t\tinterpolant.__cacheIndex = lastActiveIndex;\n\t\t\tinterpolants[ lastActiveIndex ] = interpolant;\n\n\t\t}\n\n\t\treturn interpolant;\n\n\t}\n\n\t_takeBackControlInterpolant( interpolant ) {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tprevIndex = interpolant.__cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveControlInterpolants,\n\n\t\t\tlastActiveInterpolant = interpolants[ firstInactiveIndex ];\n\n\t\tinterpolant.__cacheIndex = firstInactiveIndex;\n\t\tinterpolants[ firstInactiveIndex ] = interpolant;\n\n\t\tlastActiveInterpolant.__cacheIndex = prevIndex;\n\t\tinterpolants[ prevIndex ] = lastActiveInterpolant;\n\n\t}\n\n\t// return an action for a clip optionally using a custom root target\n\t// object (this method allocates a lot of dynamic memory in case a\n\t// previously unknown clip/root combination is specified)\n\tclipAction( clip, optionalRoot, blendMode ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid;\n\n\t\tlet clipObject = typeof clip === 'string' ? AnimationClip.findByName( root, clip ) : clip;\n\n\t\tconst clipUuid = clipObject !== null ? clipObject.uuid : clip;\n\n\t\tconst actionsForClip = this._actionsByClip[ clipUuid ];\n\t\tlet prototypeAction = null;\n\n\t\tif ( blendMode === undefined ) {\n\n\t\t\tif ( clipObject !== null ) {\n\n\t\t\t\tblendMode = clipObject.blendMode;\n\n\t\t\t} else {\n\n\t\t\t\tblendMode = NormalAnimationBlendMode;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\tconst existingAction = actionsForClip.actionByRoot[ rootUuid ];\n\n\t\t\tif ( existingAction !== undefined && existingAction.blendMode === blendMode ) {\n\n\t\t\t\treturn existingAction;\n\n\t\t\t}\n\n\t\t\t// we know the clip, so we don't have to parse all\n\t\t\t// the bindings again but can just copy\n\t\t\tprototypeAction = actionsForClip.knownActions[ 0 ];\n\n\t\t\t// also, take the clip from the prototype action\n\t\t\tif ( clipObject === null )\n\t\t\t\tclipObject = prototypeAction._clip;\n\n\t\t}\n\n\t\t// clip must be known when specified via string\n\t\tif ( clipObject === null ) return null;\n\n\t\t// allocate all resources required to run it\n\t\tconst newAction = new AnimationAction( this, clipObject, optionalRoot, blendMode );\n\n\t\tthis._bindAction( newAction, prototypeAction );\n\n\t\t// and make the action known to the memory manager\n\t\tthis._addInactiveAction( newAction, clipUuid, rootUuid );\n\n\t\treturn newAction;\n\n\t}\n\n\t// get an existing action\n\texistingAction( clip, optionalRoot ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid,\n\n\t\t\tclipObject = typeof clip === 'string' ?\n\t\t\t\tAnimationClip.findByName( root, clip ) : clip,\n\n\t\t\tclipUuid = clipObject ? clipObject.uuid : clip,\n\n\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\treturn actionsForClip.actionByRoot[ rootUuid ] || null;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// deactivates all previously scheduled actions\n\tstopAllAction() {\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions;\n\n\t\tfor ( let i = nActions - 1; i >= 0; -- i ) {\n\n\t\t\tactions[ i ].stop();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// advance the time and update apply the animation\n\tupdate( deltaTime ) {\n\n\t\tdeltaTime *= this.timeScale;\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions,\n\n\t\t\ttime = this.time += deltaTime,\n\t\t\ttimeDirection = Math.sign( deltaTime ),\n\n\t\t\taccuIndex = this._accuIndex ^= 1;\n\n\t\t// run active actions\n\n\t\tfor ( let i = 0; i !== nActions; ++ i ) {\n\n\t\t\tconst action = actions[ i ];\n\n\t\t\taction._update( time, deltaTime, timeDirection, accuIndex );\n\n\t\t}\n\n\t\t// update scene graph\n\n\t\tconst bindings = this._bindings,\n\t\t\tnBindings = this._nActiveBindings;\n\n\t\tfor ( let i = 0; i !== nBindings; ++ i ) {\n\n\t\t\tbindings[ i ].apply( accuIndex );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Allows you to seek to a specific time in an animation.\n\tsetTime( timeInSeconds ) {\n\n\t\tthis.time = 0; // Zero out time attribute for AnimationMixer object;\n\t\tfor ( let i = 0; i < this._actions.length; i ++ ) {\n\n\t\t\tthis._actions[ i ].time = 0; // Zero out time attribute for all associated AnimationAction objects.\n\n\t\t}\n\n\t\treturn this.update( timeInSeconds ); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n\n\t}\n\n\t// return this mixer's root target object\n\tgetRoot() {\n\n\t\treturn this._root;\n\n\t}\n\n\t// free all resources specific to a particular clip\n\tuncacheClip( clip ) {\n\n\t\tconst actions = this._actions,\n\t\t\tclipUuid = clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\t// note: just calling _removeInactiveAction would mess up the\n\t\t\t// iteration state and also require updating the state we can\n\t\t\t// just throw away\n\n\t\t\tconst actionsToRemove = actionsForClip.knownActions;\n\n\t\t\tfor ( let i = 0, n = actionsToRemove.length; i !== n; ++ i ) {\n\n\t\t\t\tconst action = actionsToRemove[ i ];\n\n\t\t\t\tthis._deactivateAction( action );\n\n\t\t\t\tconst cacheIndex = action._cacheIndex,\n\t\t\t\t\tlastInactiveAction = actions[ actions.length - 1 ];\n\n\t\t\t\taction._cacheIndex = null;\n\t\t\t\taction._byClipCacheIndex = null;\n\n\t\t\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\t\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\t\t\tactions.pop();\n\n\t\t\t\tthis._removeInactiveBindingsForAction( action );\n\n\t\t\t}\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t}\n\n\t// free all resources specific to a particular root target object\n\tuncacheRoot( root ) {\n\n\t\tconst rootUuid = root.uuid,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tfor ( const clipUuid in actionsByClip ) {\n\n\t\t\tconst actionByRoot = actionsByClip[ clipUuid ].actionByRoot,\n\t\t\t\taction = actionByRoot[ rootUuid ];\n\n\t\t\tif ( action !== undefined ) {\n\n\t\t\t\tthis._deactivateAction( action );\n\t\t\t\tthis._removeInactiveAction( action );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName !== undefined ) {\n\n\t\t\tfor ( const trackName in bindingByName ) {\n\n\t\t\t\tconst binding = bindingByName[ trackName ];\n\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remove a targeted clip from the cache\n\tuncacheAction( clip, optionalRoot ) {\n\n\t\tconst action = this.existingAction( clip, optionalRoot );\n\n\t\tif ( action !== null ) {\n\n\t\t\tthis._deactivateAction( action );\n\t\t\tthis._removeInactiveAction( action );\n\n\t\t}\n\n\t}\n\n}\n\nclass Uniform {\n\n\tconstructor( value ) {\n\n\t\tthis.value = value;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Uniform( this.value.clone === undefined ? this.value : this.value.clone() );\n\n\t}\n\n}\n\nlet _id = 0;\n\nclass UniformsGroup extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isUniformsGroup = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id ++ } );\n\n\t\tthis.name = '';\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.uniforms = [];\n\n\t}\n\n\tadd( uniform ) {\n\n\t\tthis.uniforms.push( uniform );\n\n\t\treturn this;\n\n\t}\n\n\tremove( uniform ) {\n\n\t\tconst index = this.uniforms.indexOf( uniform );\n\n\t\tif ( index !== - 1 ) this.uniforms.splice( index, 1 );\n\n\t\treturn this;\n\n\t}\n\n\tsetName( name ) {\n\n\t\tthis.name = name;\n\n\t\treturn this;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.usage = source.usage;\n\n\t\tconst uniformsSource = source.uniforms;\n\n\t\tthis.uniforms.length = 0;\n\n\t\tfor ( let i = 0, l = uniformsSource.length; i < l; i ++ ) {\n\n\t\t\tconst uniforms = Array.isArray( uniformsSource[ i ] ) ? uniformsSource[ i ] : [ uniformsSource[ i ] ];\n\n\t\t\tfor ( let j = 0; j < uniforms.length; j ++ ) {\n\n\t\t\t\tthis.uniforms.push( uniforms[ j ].clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass InstancedInterleavedBuffer extends InterleavedBuffer {\n\n\tconstructor( array, stride, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, stride );\n\n\t\tthis.isInstancedInterleavedBuffer = true;\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tconst ib = super.clone( data );\n\n\t\tib.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn ib;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tconst json = super.toJSON( data );\n\n\t\tjson.isInstancedInterleavedBuffer = true;\n\t\tjson.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn json;\n\n\t}\n\n}\n\nclass GLBufferAttribute {\n\n\tconstructor( buffer, type, itemSize, elementSize, count ) {\n\n\t\tthis.isGLBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.buffer = buffer;\n\t\tthis.type = type;\n\t\tthis.itemSize = itemSize;\n\t\tthis.elementSize = elementSize;\n\t\tthis.count = count;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetBuffer( buffer ) {\n\n\t\tthis.buffer = buffer;\n\n\t\treturn this;\n\n\t}\n\n\tsetType( type, elementSize ) {\n\n\t\tthis.type = type;\n\t\tthis.elementSize = elementSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetItemSize( itemSize ) {\n\n\t\tthis.itemSize = itemSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetCount( count ) {\n\n\t\tthis.count = count;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _matrix = /*@__PURE__*/ new Matrix4();\n\nclass Raycaster {\n\n\tconstructor( origin, direction, near = 0, far = Infinity ) {\n\n\t\tthis.ray = new Ray( origin, direction );\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.camera = null;\n\t\tthis.layers = new Layers();\n\n\t\tthis.params = {\n\t\t\tMesh: {},\n\t\t\tLine: { threshold: 1 },\n\t\t\tLOD: {},\n\t\t\tPoints: { threshold: 1 },\n\t\t\tSprite: {}\n\t\t};\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.ray.set( origin, direction );\n\n\t}\n\n\tsetFromCamera( coords, camera ) {\n\n\t\tif ( camera.isPerspectiveCamera ) {\n\n\t\t\tthis.ray.origin.setFromMatrixPosition( camera.matrixWorld );\n\t\t\tthis.ray.direction.set( coords.x, coords.y, 0.5 ).unproject( camera ).sub( this.ray.origin ).normalize();\n\t\t\tthis.camera = camera;\n\n\t\t} else if ( camera.isOrthographicCamera ) {\n\n\t\t\tthis.ray.origin.set( coords.x, coords.y, ( camera.near + camera.far ) / ( camera.near - camera.far ) ).unproject( camera ); // set origin in plane of camera\n\t\t\tthis.ray.direction.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld );\n\t\t\tthis.camera = camera;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Raycaster: Unsupported camera type: ' + camera.type );\n\n\t\t}\n\n\t}\n\n\tsetFromXRController( controller ) {\n\n\t\t_matrix.identity().extractRotation( controller.matrixWorld );\n\n\t\tthis.ray.origin.setFromMatrixPosition( controller.matrixWorld );\n\t\tthis.ray.direction.set( 0, 0, - 1 ).applyMatrix4( _matrix );\n\n\t\treturn this;\n\n\t}\n\n\tintersectObject( object, recursive = true, intersects = [] ) {\n\n\t\tintersect( object, this, intersects, recursive );\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n\tintersectObjects( objects, recursive = true, intersects = [] ) {\n\n\t\tfor ( let i = 0, l = objects.length; i < l; i ++ ) {\n\n\t\t\tintersect( objects[ i ], this, intersects, recursive );\n\n\t\t}\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n}\n\nfunction ascSort( a, b ) {\n\n\treturn a.distance - b.distance;\n\n}\n\nfunction intersect( object, raycaster, intersects, recursive ) {\n\n\tlet propagate = true;\n\n\tif ( object.layers.test( raycaster.layers ) ) {\n\n\t\tconst result = object.raycast( raycaster, intersects );\n\n\t\tif ( result === false ) propagate = false;\n\n\t}\n\n\tif ( propagate === true && recursive === true ) {\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tintersect( children[ i ], raycaster, intersects, true );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system\n *\n * phi (the polar angle) is measured from the positive y-axis. The positive y-axis is up.\n * theta (the azimuthal angle) is measured from the positive z-axis.\n */\nclass Spherical {\n\n\tconstructor( radius = 1, phi = 0, theta = 0 ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi; // polar angle\n\t\tthis.theta = theta; // azimuthal angle\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, phi, theta ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi;\n\t\tthis.theta = theta;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.phi = other.phi;\n\t\tthis.theta = other.theta;\n\n\t\treturn this;\n\n\t}\n\n\t// restrict phi to be between EPS and PI-EPS\n\tmakeSafe() {\n\n\t\tconst EPS = 0.000001;\n\t\tthis.phi = Math.max( EPS, Math.min( Math.PI - EPS, this.phi ) );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + y * y + z * z );\n\n\t\tif ( this.radius === 0 ) {\n\n\t\t\tthis.theta = 0;\n\t\t\tthis.phi = 0;\n\n\t\t} else {\n\n\t\t\tthis.theta = Math.atan2( x, z );\n\t\t\tthis.phi = Math.acos( clamp( y / this.radius, - 1, 1 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system\n */\n\nclass Cylindrical {\n\n\tconstructor( radius = 1, theta = 0, y = 0 ) {\n\n\t\tthis.radius = radius; // distance from the origin to a point in the x-z plane\n\t\tthis.theta = theta; // counterclockwise angle in the x-z plane measured in radians from the positive z-axis\n\t\tthis.y = y; // height above the x-z plane\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, theta, y ) {\n\n\t\tthis.radius = radius;\n\t\tthis.theta = theta;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.theta = other.theta;\n\t\tthis.y = other.y;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + z * z );\n\t\tthis.theta = Math.atan2( x, z );\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix2 {\n\n\tconstructor( n11, n12, n21, n22 ) {\n\n\t\tMatrix2.prototype.isMatrix2 = true;\n\n\t\tthis.elements = [\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n21, n22 );\n\n\t\t}\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\t\t\t1, 0,\n\t\t\t0, 1,\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 4; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( n11, n12, n21, n22 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 2 ] = n12;\n\t\tte[ 1 ] = n21; te[ 3 ] = n22;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vector$4 = /*@__PURE__*/ new Vector2();\n\nclass Box2 {\n\n\tconstructor( min = new Vector2( + Infinity, + Infinity ), max = new Vector2( - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox2 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$4.copy( size ).multiplyScalar( 0.5 );\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = + Infinity;\n\t\tthis.max.x = this.max.y = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x >= this.min.x && point.x <= this.max.x &&\n\t\t\tpoint.y >= this.min.y && point.y <= this.max.y;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 4 splitting planes to rule out intersections\n\n\t\treturn box.max.x >= this.min.x && box.min.x <= this.max.x &&\n\t\t\tbox.max.y >= this.min.y && box.min.y <= this.max.y;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$4 ).distanceTo( point );\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _startP = /*@__PURE__*/ new Vector3();\nconst _startEnd = /*@__PURE__*/ new Vector3();\n\nclass Line3 {\n\n\tconstructor( start = new Vector3(), end = new Vector3() ) {\n\n\t\tthis.start = start;\n\t\tthis.end = end;\n\n\t}\n\n\tset( start, end ) {\n\n\t\tthis.start.copy( start );\n\t\tthis.end.copy( end );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( line ) {\n\n\t\tthis.start.copy( line.start );\n\t\tthis.end.copy( line.end );\n\n\t\treturn this;\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn target.addVectors( this.start, this.end ).multiplyScalar( 0.5 );\n\n\t}\n\n\tdelta( target ) {\n\n\t\treturn target.subVectors( this.end, this.start );\n\n\t}\n\n\tdistanceSq() {\n\n\t\treturn this.start.distanceToSquared( this.end );\n\n\t}\n\n\tdistance() {\n\n\t\treturn this.start.distanceTo( this.end );\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tclosestPointToPointParameter( point, clampToLine ) {\n\n\t\t_startP.subVectors( point, this.start );\n\t\t_startEnd.subVectors( this.end, this.start );\n\n\t\tconst startEnd2 = _startEnd.dot( _startEnd );\n\t\tconst startEnd_startP = _startEnd.dot( _startP );\n\n\t\tlet t = startEnd_startP / startEnd2;\n\n\t\tif ( clampToLine ) {\n\n\t\t\tt = clamp( t, 0, 1 );\n\n\t\t}\n\n\t\treturn t;\n\n\t}\n\n\tclosestPointToPoint( point, clampToLine, target ) {\n\n\t\tconst t = this.closestPointToPointParameter( point, clampToLine );\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.start.applyMatrix4( matrix );\n\t\tthis.end.applyMatrix4( matrix );\n\n\t\treturn this;\n\n\t}\n\n\tequals( line ) {\n\n\t\treturn line.start.equals( this.start ) && line.end.equals( this.end );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$3 = /*@__PURE__*/ new Vector3();\n\nclass SpotLightHelper extends Object3D {\n\n\tconstructor( light, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'SpotLightHelper';\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst positions = [\n\t\t\t0, 0, 0, \t0, 0, 1,\n\t\t\t0, 0, 0, \t1, 0, 1,\n\t\t\t0, 0, 0,\t- 1, 0, 1,\n\t\t\t0, 0, 0, \t0, 1, 1,\n\t\t\t0, 0, 0, \t0, - 1, 1\n\t\t];\n\n\t\tfor ( let i = 0, j = 1, l = 32; i < l; i ++, j ++ ) {\n\n\t\t\tconst p1 = ( i / l ) * Math.PI * 2;\n\t\t\tconst p2 = ( j / l ) * Math.PI * 2;\n\n\t\t\tpositions.push(\n\t\t\t\tMath.cos( p1 ), Math.sin( p1 ), 1,\n\t\t\t\tMath.cos( p2 ), Math.sin( p2 ), 1\n\t\t\t);\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.cone = new LineSegments( geometry, material );\n\t\tthis.add( this.cone );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t// update the local matrix based on the parent and light target transforms\n\t\tif ( this.parent ) {\n\n\t\t\tthis.parent.updateWorldMatrix( true );\n\n\t\t\tthis.matrix\n\t\t\t\t.copy( this.parent.matrixWorld )\n\t\t\t\t.invert()\n\t\t\t\t.multiply( this.light.matrixWorld );\n\n\t\t} else {\n\n\t\t\tthis.matrix.copy( this.light.matrixWorld );\n\n\t\t}\n\n\t\tthis.matrixWorld.copy( this.light.matrixWorld );\n\n\t\tconst coneLength = this.light.distance ? this.light.distance : 1000;\n\t\tconst coneWidth = coneLength * Math.tan( this.light.angle );\n\n\t\tthis.cone.scale.set( coneWidth, coneWidth, coneLength );\n\n\t\t_vector$3.setFromMatrixPosition( this.light.target.matrixWorld );\n\n\t\tthis.cone.lookAt( _vector$3 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.cone.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.cone.material.color.copy( this.light.color );\n\n\t\t}\n\n\t}\n\n}\n\nconst _vector$2 = /*@__PURE__*/ new Vector3();\nconst _boneMatrix = /*@__PURE__*/ new Matrix4();\nconst _matrixWorldInv = /*@__PURE__*/ new Matrix4();\n\n\nclass SkeletonHelper extends LineSegments {\n\n\tconstructor( object ) {\n\n\t\tconst bones = getBoneList( object );\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst color1 = new Color( 0, 0, 1 );\n\t\tconst color2 = new Color( 0, 1, 0 );\n\n\t\tfor ( let i = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tcolors.push( color1.r, color1.g, color1.b );\n\t\t\t\tcolors.push( color2.r, color2.g, color2.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isSkeletonHelper = true;\n\n\t\tthis.type = 'SkeletonHelper';\n\n\t\tthis.root = object;\n\t\tthis.bones = bones;\n\n\t\tthis.matrix = object.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst bones = this.bones;\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\t_matrixWorldInv.copy( this.root.matrixWorld ).invert();\n\n\t\tfor ( let i = 0, j = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.parent.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j + 1, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\tj += 2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n\nfunction getBoneList( object ) {\n\n\tconst boneList = [];\n\n\tif ( object.isBone === true ) {\n\n\t\tboneList.push( object );\n\n\t}\n\n\tfor ( let i = 0; i < object.children.length; i ++ ) {\n\n\t\tboneList.push.apply( boneList, getBoneList( object.children[ i ] ) );\n\n\t}\n\n\treturn boneList;\n\n}\n\nclass PointLightHelper extends Mesh {\n\n\tconstructor( light, sphereSize, color ) {\n\n\t\tconst geometry = new SphereGeometry( sphereSize, 4, 2 );\n\t\tconst material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.light = light;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'PointLightHelper';\n\n\t\tthis.matrix = this.light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\n\t\t/*\n\t// TODO: delete this comment?\n\tconst distanceGeometry = new THREE.IcosahedronGeometry( 1, 2 );\n\tconst distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } );\n\n\tthis.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial );\n\tthis.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial );\n\n\tconst d = light.distance;\n\n\tif ( d === 0.0 ) {\n\n\t\tthis.lightDistance.visible = false;\n\n\t} else {\n\n\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t}\n\n\tthis.add( this.lightDistance );\n\t*/\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\t/*\n\t\tconst d = this.light.distance;\n\n\t\tif ( d === 0.0 ) {\n\n\t\t\tthis.lightDistance.visible = false;\n\n\t\t} else {\n\n\t\t\tthis.lightDistance.visible = true;\n\t\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t\t}\n\t\t*/\n\n\t}\n\n}\n\nconst _vector$1 = /*@__PURE__*/ new Vector3();\nconst _color1 = /*@__PURE__*/ new Color();\nconst _color2 = /*@__PURE__*/ new Color();\n\nclass HemisphereLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'HemisphereLightHelper';\n\n\t\tconst geometry = new OctahedronGeometry( size );\n\t\tgeometry.rotateY( Math.PI * 0.5 );\n\n\t\tthis.material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\t\tif ( this.color === undefined ) this.material.vertexColors = true;\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\t\tconst colors = new Float32Array( position.count * 3 );\n\n\t\tgeometry.setAttribute( 'color', new BufferAttribute( colors, 3 ) );\n\n\t\tthis.add( new Mesh( geometry, this.material ) );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tconst mesh = this.children[ 0 ];\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tconst colors = mesh.geometry.getAttribute( 'color' );\n\n\t\t\t_color1.copy( this.light.color );\n\t\t\t_color2.copy( this.light.groundColor );\n\n\t\t\tfor ( let i = 0, l = colors.count; i < l; i ++ ) {\n\n\t\t\t\tconst color = ( i < ( l / 2 ) ) ? _color1 : _color2;\n\n\t\t\t\tcolors.setXYZ( i, color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t\tcolors.needsUpdate = true;\n\n\t\t}\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\n\t\tmesh.lookAt( _vector$1.setFromMatrixPosition( this.light.matrixWorld ).negate() );\n\n\t}\n\n}\n\nclass GridHelper extends LineSegments {\n\n\tconstructor( size = 10, divisions = 10, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst center = divisions / 2;\n\t\tconst step = size / divisions;\n\t\tconst halfSize = size / 2;\n\n\t\tconst vertices = [], colors = [];\n\n\t\tfor ( let i = 0, j = 0, k = - halfSize; i <= divisions; i ++, k += step ) {\n\n\t\t\tvertices.push( - halfSize, 0, k, halfSize, 0, k );\n\t\t\tvertices.push( k, 0, - halfSize, k, 0, halfSize );\n\n\t\t\tconst color = i === center ? color1 : color2;\n\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'GridHelper';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass PolarGridHelper extends LineSegments {\n\n\tconstructor( radius = 10, sectors = 16, rings = 8, divisions = 64, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\t// create the sectors\n\n\t\tif ( sectors > 1 ) {\n\n\t\t\tfor ( let i = 0; i < sectors; i ++ ) {\n\n\t\t\t\tconst v = ( i / sectors ) * ( Math.PI * 2 );\n\n\t\t\t\tconst x = Math.sin( v ) * radius;\n\t\t\t\tconst z = Math.cos( v ) * radius;\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( x, 0, z );\n\n\t\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// create the rings\n\n\t\tfor ( let i = 0; i < rings; i ++ ) {\n\n\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\tconst r = radius - ( radius / rings * i );\n\n\t\t\tfor ( let j = 0; j < divisions; j ++ ) {\n\n\t\t\t\t// first vertex\n\n\t\t\t\tlet v = ( j / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tlet x = Math.sin( v ) * r;\n\t\t\t\tlet z = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t\t// second vertex\n\n\t\t\t\tv = ( ( j + 1 ) / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tx = Math.sin( v ) * r;\n\t\t\t\tz = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'PolarGridHelper';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _v2 = /*@__PURE__*/ new Vector3();\nconst _v3 = /*@__PURE__*/ new Vector3();\n\nclass DirectionalLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'DirectionalLightHelper';\n\n\t\tif ( size === undefined ) size = 1;\n\n\t\tlet geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [\n\t\t\t- size, size, 0,\n\t\t\tsize, size, 0,\n\t\t\tsize, - size, 0,\n\t\t\t- size, - size, 0,\n\t\t\t- size, size, 0\n\t\t], 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.lightPlane = new Line( geometry, material );\n\t\tthis.add( this.lightPlane );\n\n\t\tgeometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) );\n\n\t\tthis.targetLine = new Line( geometry, material );\n\t\tthis.add( this.targetLine );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.lightPlane.geometry.dispose();\n\t\tthis.lightPlane.material.dispose();\n\t\tthis.targetLine.geometry.dispose();\n\t\tthis.targetLine.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t_v1.setFromMatrixPosition( this.light.matrixWorld );\n\t\t_v2.setFromMatrixPosition( this.light.target.matrixWorld );\n\t\t_v3.subVectors( _v2, _v1 );\n\n\t\tthis.lightPlane.lookAt( _v2 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.lightPlane.material.color.set( this.color );\n\t\t\tthis.targetLine.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.lightPlane.material.color.copy( this.light.color );\n\t\t\tthis.targetLine.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\tthis.targetLine.lookAt( _v2 );\n\t\tthis.targetLine.scale.z = _v3.length();\n\n\t}\n\n}\n\nconst _vector = /*@__PURE__*/ new Vector3();\nconst _camera = /*@__PURE__*/ new Camera();\n\n/**\n *\t- shows frustum, line of sight and up of the camera\n *\t- suitable for fast updates\n * \t- based on frustum visualization in lightgl.js shadowmap example\n *\t\thttps://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html\n */\n\nclass CameraHelper extends LineSegments {\n\n\tconstructor( camera ) {\n\n\t\tconst geometry = new BufferGeometry();\n\t\tconst material = new LineBasicMaterial( { color: 0xffffff, vertexColors: true, toneMapped: false } );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst pointMap = {};\n\n\t\t// near\n\n\t\taddLine( 'n1', 'n2' );\n\t\taddLine( 'n2', 'n4' );\n\t\taddLine( 'n4', 'n3' );\n\t\taddLine( 'n3', 'n1' );\n\n\t\t// far\n\n\t\taddLine( 'f1', 'f2' );\n\t\taddLine( 'f2', 'f4' );\n\t\taddLine( 'f4', 'f3' );\n\t\taddLine( 'f3', 'f1' );\n\n\t\t// sides\n\n\t\taddLine( 'n1', 'f1' );\n\t\taddLine( 'n2', 'f2' );\n\t\taddLine( 'n3', 'f3' );\n\t\taddLine( 'n4', 'f4' );\n\n\t\t// cone\n\n\t\taddLine( 'p', 'n1' );\n\t\taddLine( 'p', 'n2' );\n\t\taddLine( 'p', 'n3' );\n\t\taddLine( 'p', 'n4' );\n\n\t\t// up\n\n\t\taddLine( 'u1', 'u2' );\n\t\taddLine( 'u2', 'u3' );\n\t\taddLine( 'u3', 'u1' );\n\n\t\t// target\n\n\t\taddLine( 'c', 't' );\n\t\taddLine( 'p', 'c' );\n\n\t\t// cross\n\n\t\taddLine( 'cn1', 'cn2' );\n\t\taddLine( 'cn3', 'cn4' );\n\n\t\taddLine( 'cf1', 'cf2' );\n\t\taddLine( 'cf3', 'cf4' );\n\n\t\tfunction addLine( a, b ) {\n\n\t\t\taddPoint( a );\n\t\t\taddPoint( b );\n\n\t\t}\n\n\t\tfunction addPoint( id ) {\n\n\t\t\tvertices.push( 0, 0, 0 );\n\t\t\tcolors.push( 0, 0, 0 );\n\n\t\t\tif ( pointMap[ id ] === undefined ) {\n\n\t\t\t\tpointMap[ id ] = [];\n\n\t\t\t}\n\n\t\t\tpointMap[ id ].push( ( vertices.length / 3 ) - 1 );\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'CameraHelper';\n\n\t\tthis.camera = camera;\n\t\tif ( this.camera.updateProjectionMatrix ) this.camera.updateProjectionMatrix();\n\n\t\tthis.matrix = camera.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.pointMap = pointMap;\n\n\t\tthis.update();\n\n\t\t// colors\n\n\t\tconst colorFrustum = new Color( 0xffaa00 );\n\t\tconst colorCone = new Color( 0xff0000 );\n\t\tconst colorUp = new Color( 0x00aaff );\n\t\tconst colorTarget = new Color( 0xffffff );\n\t\tconst colorCross = new Color( 0x333333 );\n\n\t\tthis.setColors( colorFrustum, colorCone, colorUp, colorTarget, colorCross );\n\n\t}\n\n\tsetColors( frustum, cone, up, target, cross ) {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst colorAttribute = geometry.getAttribute( 'color' );\n\n\t\t// near\n\n\t\tcolorAttribute.setXYZ( 0, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 1, frustum.r, frustum.g, frustum.b ); // n1, n2\n\t\tcolorAttribute.setXYZ( 2, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 3, frustum.r, frustum.g, frustum.b ); // n2, n4\n\t\tcolorAttribute.setXYZ( 4, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 5, frustum.r, frustum.g, frustum.b ); // n4, n3\n\t\tcolorAttribute.setXYZ( 6, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 7, frustum.r, frustum.g, frustum.b ); // n3, n1\n\n\t\t// far\n\n\t\tcolorAttribute.setXYZ( 8, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 9, frustum.r, frustum.g, frustum.b ); // f1, f2\n\t\tcolorAttribute.setXYZ( 10, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 11, frustum.r, frustum.g, frustum.b ); // f2, f4\n\t\tcolorAttribute.setXYZ( 12, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 13, frustum.r, frustum.g, frustum.b ); // f4, f3\n\t\tcolorAttribute.setXYZ( 14, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 15, frustum.r, frustum.g, frustum.b ); // f3, f1\n\n\t\t// sides\n\n\t\tcolorAttribute.setXYZ( 16, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 17, frustum.r, frustum.g, frustum.b ); // n1, f1\n\t\tcolorAttribute.setXYZ( 18, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 19, frustum.r, frustum.g, frustum.b ); // n2, f2\n\t\tcolorAttribute.setXYZ( 20, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 21, frustum.r, frustum.g, frustum.b ); // n3, f3\n\t\tcolorAttribute.setXYZ( 22, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 23, frustum.r, frustum.g, frustum.b ); // n4, f4\n\n\t\t// cone\n\n\t\tcolorAttribute.setXYZ( 24, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 25, cone.r, cone.g, cone.b ); // p, n1\n\t\tcolorAttribute.setXYZ( 26, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 27, cone.r, cone.g, cone.b ); // p, n2\n\t\tcolorAttribute.setXYZ( 28, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 29, cone.r, cone.g, cone.b ); // p, n3\n\t\tcolorAttribute.setXYZ( 30, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 31, cone.r, cone.g, cone.b ); // p, n4\n\n\t\t// up\n\n\t\tcolorAttribute.setXYZ( 32, up.r, up.g, up.b ); colorAttribute.setXYZ( 33, up.r, up.g, up.b ); // u1, u2\n\t\tcolorAttribute.setXYZ( 34, up.r, up.g, up.b ); colorAttribute.setXYZ( 35, up.r, up.g, up.b ); // u2, u3\n\t\tcolorAttribute.setXYZ( 36, up.r, up.g, up.b ); colorAttribute.setXYZ( 37, up.r, up.g, up.b ); // u3, u1\n\n\t\t// target\n\n\t\tcolorAttribute.setXYZ( 38, target.r, target.g, target.b ); colorAttribute.setXYZ( 39, target.r, target.g, target.b ); // c, t\n\t\tcolorAttribute.setXYZ( 40, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 41, cross.r, cross.g, cross.b ); // p, c\n\n\t\t// cross\n\n\t\tcolorAttribute.setXYZ( 42, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 43, cross.r, cross.g, cross.b ); // cn1, cn2\n\t\tcolorAttribute.setXYZ( 44, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 45, cross.r, cross.g, cross.b ); // cn3, cn4\n\n\t\tcolorAttribute.setXYZ( 46, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 47, cross.r, cross.g, cross.b ); // cf1, cf2\n\t\tcolorAttribute.setXYZ( 48, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 49, cross.r, cross.g, cross.b ); // cf3, cf4\n\n\t\tcolorAttribute.needsUpdate = true;\n\n\t}\n\n\tupdate() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst pointMap = this.pointMap;\n\n\t\tconst w = 1, h = 1;\n\n\t\t// we need just camera projection matrix inverse\n\t\t// world matrix must be identity\n\n\t\t_camera.projectionMatrixInverse.copy( this.camera.projectionMatrixInverse );\n\n\t\t// center / target\n\n\t\tsetPoint( 'c', pointMap, geometry, _camera, 0, 0, - 1 );\n\t\tsetPoint( 't', pointMap, geometry, _camera, 0, 0, 1 );\n\n\t\t// near\n\n\t\tsetPoint( 'n1', pointMap, geometry, _camera, - w, - h, - 1 );\n\t\tsetPoint( 'n2', pointMap, geometry, _camera, w, - h, - 1 );\n\t\tsetPoint( 'n3', pointMap, geometry, _camera, - w, h, - 1 );\n\t\tsetPoint( 'n4', pointMap, geometry, _camera, w, h, - 1 );\n\n\t\t// far\n\n\t\tsetPoint( 'f1', pointMap, geometry, _camera, - w, - h, 1 );\n\t\tsetPoint( 'f2', pointMap, geometry, _camera, w, - h, 1 );\n\t\tsetPoint( 'f3', pointMap, geometry, _camera, - w, h, 1 );\n\t\tsetPoint( 'f4', pointMap, geometry, _camera, w, h, 1 );\n\n\t\t// up\n\n\t\tsetPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, - 1 );\n\t\tsetPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, - 1 );\n\t\tsetPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, - 1 );\n\n\t\t// cross\n\n\t\tsetPoint( 'cf1', pointMap, geometry, _camera, - w, 0, 1 );\n\t\tsetPoint( 'cf2', pointMap, geometry, _camera, w, 0, 1 );\n\t\tsetPoint( 'cf3', pointMap, geometry, _camera, 0, - h, 1 );\n\t\tsetPoint( 'cf4', pointMap, geometry, _camera, 0, h, 1 );\n\n\t\tsetPoint( 'cn1', pointMap, geometry, _camera, - w, 0, - 1 );\n\t\tsetPoint( 'cn2', pointMap, geometry, _camera, w, 0, - 1 );\n\t\tsetPoint( 'cn3', pointMap, geometry, _camera, 0, - h, - 1 );\n\t\tsetPoint( 'cn4', pointMap, geometry, _camera, 0, h, - 1 );\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n\nfunction setPoint( point, pointMap, geometry, camera, x, y, z ) {\n\n\t_vector.set( x, y, z ).unproject( camera );\n\n\tconst points = pointMap[ point ];\n\n\tif ( points !== undefined ) {\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tposition.setXYZ( points[ i ], _vector.x, _vector.y, _vector.z );\n\n\t\t}\n\n\t}\n\n}\n\nconst _box = /*@__PURE__*/ new Box3();\n\nclass BoxHelper extends LineSegments {\n\n\tconstructor( object, color = 0xffff00 ) {\n\n\t\tconst indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );\n\t\tconst positions = new Float32Array( 8 * 3 );\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\t\tgeometry.setAttribute( 'position', new BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.object = object;\n\t\tthis.type = 'BoxHelper';\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\t}\n\n\tupdate( object ) {\n\n\t\tif ( object !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.BoxHelper: .update() has no longer arguments.' );\n\n\t\t}\n\n\t\tif ( this.object !== undefined ) {\n\n\t\t\t_box.setFromObject( this.object );\n\n\t\t}\n\n\t\tif ( _box.isEmpty() ) return;\n\n\t\tconst min = _box.min;\n\t\tconst max = _box.max;\n\n\t\t/*\n\t\t\t5____4\n\t\t1/___0/|\n\t\t| 6__|_7\n\t\t2/___3/\n\n\t\t0: max.x, max.y, max.z\n\t\t1: min.x, max.y, max.z\n\t\t2: min.x, min.y, max.z\n\t\t3: max.x, min.y, max.z\n\t\t4: max.x, max.y, min.z\n\t\t5: min.x, max.y, min.z\n\t\t6: min.x, min.y, min.z\n\t\t7: max.x, min.y, min.z\n\t\t*/\n\n\t\tconst position = this.geometry.attributes.position;\n\t\tconst array = position.array;\n\n\t\tarray[ 0 ] = max.x; array[ 1 ] = max.y; array[ 2 ] = max.z;\n\t\tarray[ 3 ] = min.x; array[ 4 ] = max.y; array[ 5 ] = max.z;\n\t\tarray[ 6 ] = min.x; array[ 7 ] = min.y; array[ 8 ] = max.z;\n\t\tarray[ 9 ] = max.x; array[ 10 ] = min.y; array[ 11 ] = max.z;\n\t\tarray[ 12 ] = max.x; array[ 13 ] = max.y; array[ 14 ] = min.z;\n\t\tarray[ 15 ] = min.x; array[ 16 ] = max.y; array[ 17 ] = min.z;\n\t\tarray[ 18 ] = min.x; array[ 19 ] = min.y; array[ 20 ] = min.z;\n\t\tarray[ 21 ] = max.x; array[ 22 ] = min.y; array[ 23 ] = min.z;\n\n\t\tposition.needsUpdate = true;\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\t}\n\n\tsetFromObject( object ) {\n\n\t\tthis.object = object;\n\t\tthis.update();\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.object = source.object;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass Box3Helper extends LineSegments {\n\n\tconstructor( box, color = 0xffff00 ) {\n\n\t\tconst indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );\n\n\t\tconst positions = [ 1, 1, 1, - 1, 1, 1, - 1, - 1, 1, 1, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - 1, - 1, 1, - 1, - 1 ];\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.box = box;\n\n\t\tthis.type = 'Box3Helper';\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst box = this.box;\n\n\t\tif ( box.isEmpty() ) return;\n\n\t\tbox.getCenter( this.position );\n\n\t\tbox.getSize( this.scale );\n\n\t\tthis.scale.multiplyScalar( 0.5 );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass PlaneHelper extends Line {\n\n\tconstructor( plane, size = 1, hex = 0xffff00 ) {\n\n\t\tconst color = hex;\n\n\t\tconst positions = [ 1, - 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, - 1, 0, 1, 1, 0 ];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\t\tgeometry.computeBoundingSphere();\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.type = 'PlaneHelper';\n\n\t\tthis.plane = plane;\n\n\t\tthis.size = size;\n\n\t\tconst positions2 = [ 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, - 1, 0, 1, - 1, 0 ];\n\n\t\tconst geometry2 = new BufferGeometry();\n\t\tgeometry2.setAttribute( 'position', new Float32BufferAttribute( positions2, 3 ) );\n\t\tgeometry2.computeBoundingSphere();\n\n\t\tthis.add( new Mesh( geometry2, new MeshBasicMaterial( { color: color, opacity: 0.2, transparent: true, depthWrite: false, toneMapped: false } ) ) );\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tthis.position.set( 0, 0, 0 );\n\n\t\tthis.scale.set( 0.5 * this.size, 0.5 * this.size, 1 );\n\n\t\tthis.lookAt( this.plane.normal );\n\n\t\tthis.translateZ( - this.plane.constant );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n}\n\nconst _axis = /*@__PURE__*/ new Vector3();\nlet _lineGeometry, _coneGeometry;\n\nclass ArrowHelper extends Object3D {\n\n\t// dir is assumed to be normalized\n\n\tconstructor( dir = new Vector3( 0, 0, 1 ), origin = new Vector3( 0, 0, 0 ), length = 1, color = 0xffff00, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ArrowHelper';\n\n\t\tif ( _lineGeometry === undefined ) {\n\n\t\t\t_lineGeometry = new BufferGeometry();\n\t\t\t_lineGeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) );\n\n\t\t\t_coneGeometry = new CylinderGeometry( 0, 0.5, 1, 5, 1 );\n\t\t\t_coneGeometry.translate( 0, - 0.5, 0 );\n\n\t\t}\n\n\t\tthis.position.copy( origin );\n\n\t\tthis.line = new Line( _lineGeometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.line.matrixAutoUpdate = false;\n\t\tthis.add( this.line );\n\n\t\tthis.cone = new Mesh( _coneGeometry, new MeshBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.cone.matrixAutoUpdate = false;\n\t\tthis.add( this.cone );\n\n\t\tthis.setDirection( dir );\n\t\tthis.setLength( length, headLength, headWidth );\n\n\t}\n\n\tsetDirection( dir ) {\n\n\t\t// dir is assumed to be normalized\n\n\t\tif ( dir.y > 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 0, 0, 0, 1 );\n\n\t\t} else if ( dir.y < - 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 1, 0, 0, 0 );\n\n\t\t} else {\n\n\t\t\t_axis.set( dir.z, 0, - dir.x ).normalize();\n\n\t\t\tconst radians = Math.acos( dir.y );\n\n\t\t\tthis.quaternion.setFromAxisAngle( _axis, radians );\n\n\t\t}\n\n\t}\n\n\tsetLength( length, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tthis.line.scale.set( 1, Math.max( 0.0001, length - headLength ), 1 ); // see #17458\n\t\tthis.line.updateMatrix();\n\n\t\tthis.cone.scale.set( headWidth, headLength, headWidth );\n\t\tthis.cone.position.y = length;\n\t\tthis.cone.updateMatrix();\n\n\t}\n\n\tsetColor( color ) {\n\n\t\tthis.line.material.color.set( color );\n\t\tthis.cone.material.color.set( color );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tthis.line.copy( source.line );\n\t\tthis.cone.copy( source.cone );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.line.geometry.dispose();\n\t\tthis.line.material.dispose();\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n}\n\nclass AxesHelper extends LineSegments {\n\n\tconstructor( size = 1 ) {\n\n\t\tconst vertices = [\n\t\t\t0, 0, 0,\tsize, 0, 0,\n\t\t\t0, 0, 0,\t0, size, 0,\n\t\t\t0, 0, 0,\t0, 0, size\n\t\t];\n\n\t\tconst colors = [\n\t\t\t1, 0, 0,\t1, 0.6, 0,\n\t\t\t0, 1, 0,\t0.6, 1, 0,\n\t\t\t0, 0, 1,\t0, 0.6, 1\n\t\t];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'AxesHelper';\n\n\t}\n\n\tsetColors( xAxisColor, yAxisColor, zAxisColor ) {\n\n\t\tconst color = new Color();\n\t\tconst array = this.geometry.attributes.color.array;\n\n\t\tcolor.set( xAxisColor );\n\t\tcolor.toArray( array, 0 );\n\t\tcolor.toArray( array, 3 );\n\n\t\tcolor.set( yAxisColor );\n\t\tcolor.toArray( array, 6 );\n\t\tcolor.toArray( array, 9 );\n\n\t\tcolor.set( zAxisColor );\n\t\tcolor.toArray( array, 12 );\n\t\tcolor.toArray( array, 15 );\n\n\t\tthis.geometry.attributes.color.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass ShapePath {\n\n\tconstructor() {\n\n\t\tthis.type = 'ShapePath';\n\n\t\tthis.color = new Color();\n\n\t\tthis.subPaths = [];\n\t\tthis.currentPath = null;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPath = new Path();\n\t\tthis.subPaths.push( this.currentPath );\n\t\tthis.currentPath.moveTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tthis.currentPath.lineTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tthis.currentPath.quadraticCurveTo( aCPx, aCPy, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tthis.currentPath.bezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts ) {\n\n\t\tthis.currentPath.splineThru( pts );\n\n\t\treturn this;\n\n\t}\n\n\ttoShapes( isCCW ) {\n\n\t\tfunction toShapesNoHoles( inSubpaths ) {\n\n\t\t\tconst shapes = [];\n\n\t\t\tfor ( let i = 0, l = inSubpaths.length; i < l; i ++ ) {\n\n\t\t\t\tconst tmpPath = inSubpaths[ i ];\n\n\t\t\t\tconst tmpShape = new Shape();\n\t\t\t\ttmpShape.curves = tmpPath.curves;\n\n\t\t\t\tshapes.push( tmpShape );\n\n\t\t\t}\n\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tfunction isPointInsidePolygon( inPt, inPolygon ) {\n\n\t\t\tconst polyLen = inPolygon.length;\n\n\t\t\t// inPt on polygon contour => immediate success or\n\t\t\t// toggling of inside/outside at every single! intersection point of an edge\n\t\t\t// with the horizontal line through inPt, left of inPt\n\t\t\t// not counting lowerY endpoints of edges and whole edges on that line\n\t\t\tlet inside = false;\n\t\t\tfor ( let p = polyLen - 1, q = 0; q < polyLen; p = q ++ ) {\n\n\t\t\t\tlet edgeLowPt = inPolygon[ p ];\n\t\t\t\tlet edgeHighPt = inPolygon[ q ];\n\n\t\t\t\tlet edgeDx = edgeHighPt.x - edgeLowPt.x;\n\t\t\t\tlet edgeDy = edgeHighPt.y - edgeLowPt.y;\n\n\t\t\t\tif ( Math.abs( edgeDy ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not parallel\n\t\t\t\t\tif ( edgeDy < 0 ) {\n\n\t\t\t\t\t\tedgeLowPt = inPolygon[ q ]; edgeDx = - edgeDx;\n\t\t\t\t\t\tedgeHighPt = inPolygon[ p ]; edgeDy = - edgeDy;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( inPt.y < edgeLowPt.y ) || ( inPt.y > edgeHighPt.y ) ) \t\tcontinue;\n\n\t\t\t\t\tif ( inPt.y === edgeLowPt.y ) {\n\n\t\t\t\t\t\tif ( inPt.x === edgeLowPt.x )\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\t// continue;\t\t\t\t// no intersection or edgeLowPt => doesn't count !!!\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst perpEdge = edgeDy * ( inPt.x - edgeLowPt.x ) - edgeDx * ( inPt.y - edgeLowPt.y );\n\t\t\t\t\t\tif ( perpEdge === 0 )\t\t\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\tif ( perpEdge < 0 ) \t\t\t\tcontinue;\n\t\t\t\t\t\tinside = ! inside;\t\t// true intersection left of inPt\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// parallel or collinear\n\t\t\t\t\tif ( inPt.y !== edgeLowPt.y ) \t\tcontinue;\t\t\t// parallel\n\t\t\t\t\t// edge lies on the same horizontal line as inPt\n\t\t\t\t\tif ( ( ( edgeHighPt.x <= inPt.x ) && ( inPt.x <= edgeLowPt.x ) ) ||\n\t\t\t\t\t\t ( ( edgeLowPt.x <= inPt.x ) && ( inPt.x <= edgeHighPt.x ) ) )\t\treturn\ttrue;\t// inPt: Point on contour !\n\t\t\t\t\t// continue;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn\tinside;\n\n\t\t}\n\n\t\tconst isClockWise = ShapeUtils.isClockWise;\n\n\t\tconst subPaths = this.subPaths;\n\t\tif ( subPaths.length === 0 ) return [];\n\n\t\tlet solid, tmpPath, tmpShape;\n\t\tconst shapes = [];\n\n\t\tif ( subPaths.length === 1 ) {\n\n\t\t\ttmpPath = subPaths[ 0 ];\n\t\t\ttmpShape = new Shape();\n\t\t\ttmpShape.curves = tmpPath.curves;\n\t\t\tshapes.push( tmpShape );\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tlet holesFirst = ! isClockWise( subPaths[ 0 ].getPoints() );\n\t\tholesFirst = isCCW ? ! holesFirst : holesFirst;\n\n\t\t// console.log(\"Holes first\", holesFirst);\n\n\t\tconst betterShapeHoles = [];\n\t\tconst newShapes = [];\n\t\tlet newShapeHoles = [];\n\t\tlet mainIdx = 0;\n\t\tlet tmpPoints;\n\n\t\tnewShapes[ mainIdx ] = undefined;\n\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\tfor ( let i = 0, l = subPaths.length; i < l; i ++ ) {\n\n\t\t\ttmpPath = subPaths[ i ];\n\t\t\ttmpPoints = tmpPath.getPoints();\n\t\t\tsolid = isClockWise( tmpPoints );\n\t\t\tsolid = isCCW ? ! solid : solid;\n\n\t\t\tif ( solid ) {\n\n\t\t\t\tif ( ( ! holesFirst ) && ( newShapes[ mainIdx ] ) )\tmainIdx ++;\n\n\t\t\t\tnewShapes[ mainIdx ] = { s: new Shape(), p: tmpPoints };\n\t\t\t\tnewShapes[ mainIdx ].s.curves = tmpPath.curves;\n\n\t\t\t\tif ( holesFirst )\tmainIdx ++;\n\t\t\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\t\t\t//console.log('cw', i);\n\n\t\t\t} else {\n\n\t\t\t\tnewShapeHoles[ mainIdx ].push( { h: tmpPath, p: tmpPoints[ 0 ] } );\n\n\t\t\t\t//console.log('ccw', i);\n\n\t\t\t}\n\n\t\t}\n\n\t\t// only Holes? -> probably all Shapes with wrong orientation\n\t\tif ( ! newShapes[ 0 ] )\treturn\ttoShapesNoHoles( subPaths );\n\n\n\t\tif ( newShapes.length > 1 ) {\n\n\t\t\tlet ambiguous = false;\n\t\t\tlet toChange = 0;\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tbetterShapeHoles[ sIdx ] = [];\n\n\t\t\t}\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tconst sho = newShapeHoles[ sIdx ];\n\n\t\t\t\tfor ( let hIdx = 0; hIdx < sho.length; hIdx ++ ) {\n\n\t\t\t\t\tconst ho = sho[ hIdx ];\n\t\t\t\t\tlet hole_unassigned = true;\n\n\t\t\t\t\tfor ( let s2Idx = 0; s2Idx < newShapes.length; s2Idx ++ ) {\n\n\t\t\t\t\t\tif ( isPointInsidePolygon( ho.p, newShapes[ s2Idx ].p ) ) {\n\n\t\t\t\t\t\t\tif ( sIdx !== s2Idx )\ttoChange ++;\n\n\t\t\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\t\t\thole_unassigned = false;\n\t\t\t\t\t\t\t\tbetterShapeHoles[ s2Idx ].push( ho );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tambiguous = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\tbetterShapeHoles[ sIdx ].push( ho );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( toChange > 0 && ambiguous === false ) {\n\n\t\t\t\tnewShapeHoles = betterShapeHoles;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet tmpHoles;\n\n\t\tfor ( let i = 0, il = newShapes.length; i < il; i ++ ) {\n\n\t\t\ttmpShape = newShapes[ i ].s;\n\t\t\tshapes.push( tmpShape );\n\t\t\ttmpHoles = newShapeHoles[ i ];\n\n\t\t\tfor ( let j = 0, jl = tmpHoles.length; j < jl; j ++ ) {\n\n\t\t\t\ttmpShape.holes.push( tmpHoles[ j ].h );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//console.log(\"shape\", shapes);\n\n\t\treturn shapes;\n\n\t}\n\n}\n\nclass Controls extends EventDispatcher {\n\n\tconstructor( object, domElement = null ) {\n\n\t\tsuper();\n\n\t\tthis.object = object;\n\t\tthis.domElement = domElement;\n\n\t\tthis.enabled = true;\n\n\t\tthis.state = - 1;\n\n\t\tthis.keys = {};\n\t\tthis.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null };\n\t\tthis.touches = { ONE: null, TWO: null };\n\n\t}\n\n\tconnect() {}\n\n\tdisconnect() {}\n\n\tdispose() {}\n\n\tupdate( /* delta */ ) {}\n\n}\n\nclass WebGLMultipleRenderTargets extends WebGLRenderTarget { // @deprecated, r162\n\n\tconstructor( width = 1, height = 1, count = 1, options = {} ) {\n\n\t\tconsole.warn( 'THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the \"count\" parameter to enable MRT.' );\n\n\t\tsuper( width, height, { ...options, count } );\n\n\t\tthis.isWebGLMultipleRenderTargets = true;\n\n\t}\n\n\tget texture() {\n\n\t\treturn this.textures;\n\n\t}\n\n}\n\nif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {\n\t\trevision: REVISION,\n\t} } ) );\n\n}\n\nif ( typeof window !== 'undefined' ) {\n\n\tif ( window.__THREE__ ) {\n\n\t\tconsole.warn( 'WARNING: Multiple instances of Three.js being imported.' );\n\n\t} else {\n\n\t\twindow.__THREE__ = REVISION;\n\n\t}\n\n}\n\nexport { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDepthPacking, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderChunk, ShaderLib, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsLib, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLMultipleRenderTargets, WebGLRenderTarget, WebGLRenderer, WebGLUtils, WebGPUCoordinateSystem, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, createCanvasElement };\n","import {\n\tControls,\n\tMOUSE,\n\tQuaternion,\n\tSpherical,\n\tTOUCH,\n\tVector2,\n\tVector3,\n\tPlane,\n\tRay,\n\tMathUtils\n} from 'three';\n\n// OrbitControls performs orbiting, dollying (zooming), and panning.\n// Unlike TrackballControls, it maintains the \"up\" direction object.up (+Y by default).\n//\n// Orbit - left mouse / touch: one-finger move\n// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish\n// Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move\n\nconst _changeEvent = { type: 'change' };\nconst _startEvent = { type: 'start' };\nconst _endEvent = { type: 'end' };\nconst _ray = new Ray();\nconst _plane = new Plane();\nconst _TILT_LIMIT = Math.cos( 70 * MathUtils.DEG2RAD );\n\nconst _v = new Vector3();\nconst _twoPI = 2 * Math.PI;\n\nconst _STATE = {\n\tNONE: - 1,\n\tROTATE: 0,\n\tDOLLY: 1,\n\tPAN: 2,\n\tTOUCH_ROTATE: 3,\n\tTOUCH_PAN: 4,\n\tTOUCH_DOLLY_PAN: 5,\n\tTOUCH_DOLLY_ROTATE: 6\n};\nconst _EPS = 0.000001;\n\nclass OrbitControls extends Controls {\n\n\tconstructor( object, domElement = null ) {\n\n\t\tsuper( object, domElement );\n\n\t\tthis.state = _STATE.NONE;\n\n\t\t// Set to false to disable this control\n\t\tthis.enabled = true;\n\n\t\t// \"target\" sets the location of focus, where the object orbits around\n\t\tthis.target = new Vector3();\n\n\t\t// Sets the 3D cursor (similar to Blender), from which the maxTargetRadius takes effect\n\t\tthis.cursor = new Vector3();\n\n\t\t// How far you can dolly in and out ( PerspectiveCamera only )\n\t\tthis.minDistance = 0;\n\t\tthis.maxDistance = Infinity;\n\n\t\t// How far you can zoom in and out ( OrthographicCamera only )\n\t\tthis.minZoom = 0;\n\t\tthis.maxZoom = Infinity;\n\n\t\t// Limit camera target within a spherical area around the cursor\n\t\tthis.minTargetRadius = 0;\n\t\tthis.maxTargetRadius = Infinity;\n\n\t\t// How far you can orbit vertically, upper and lower limits.\n\t\t// Range is 0 to Math.PI radians.\n\t\tthis.minPolarAngle = 0; // radians\n\t\tthis.maxPolarAngle = Math.PI; // radians\n\n\t\t// How far you can orbit horizontally, upper and lower limits.\n\t\t// If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )\n\t\tthis.minAzimuthAngle = - Infinity; // radians\n\t\tthis.maxAzimuthAngle = Infinity; // radians\n\n\t\t// Set to true to enable damping (inertia)\n\t\t// If damping is enabled, you must call controls.update() in your animation loop\n\t\tthis.enableDamping = false;\n\t\tthis.dampingFactor = 0.05;\n\n\t\t// This option actually enables dollying in and out; left as \"zoom\" for backwards compatibility.\n\t\t// Set to false to disable zooming\n\t\tthis.enableZoom = true;\n\t\tthis.zoomSpeed = 1.0;\n\n\t\t// Set to false to disable rotating\n\t\tthis.enableRotate = true;\n\t\tthis.rotateSpeed = 1.0;\n\n\t\t// Set to false to disable panning\n\t\tthis.enablePan = true;\n\t\tthis.panSpeed = 1.0;\n\t\tthis.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up\n\t\tthis.keyPanSpeed = 7.0;\t// pixels moved per arrow key push\n\t\tthis.zoomToCursor = false;\n\n\t\t// Set to true to automatically rotate around the target\n\t\t// If auto-rotate is enabled, you must call controls.update() in your animation loop\n\t\tthis.autoRotate = false;\n\t\tthis.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60\n\n\t\t// The four arrow keys\n\t\tthis.keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' };\n\n\t\t// Mouse buttons\n\t\tthis.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN };\n\n\t\t// Touch fingers\n\t\tthis.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN };\n\n\t\t// for reset\n\t\tthis.target0 = this.target.clone();\n\t\tthis.position0 = this.object.position.clone();\n\t\tthis.zoom0 = this.object.zoom;\n\n\t\t// the target DOM element for key events\n\t\tthis._domElementKeyEvents = null;\n\n\t\t// internals\n\n\t\tthis._lastPosition = new Vector3();\n\t\tthis._lastQuaternion = new Quaternion();\n\t\tthis._lastTargetPosition = new Vector3();\n\n\t\t// so camera.up is the orbit axis\n\t\tthis._quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) );\n\t\tthis._quatInverse = this._quat.clone().invert();\n\n\t\t// current position in spherical coordinates\n\t\tthis._spherical = new Spherical();\n\t\tthis._sphericalDelta = new Spherical();\n\n\t\tthis._scale = 1;\n\t\tthis._panOffset = new Vector3();\n\n\t\tthis._rotateStart = new Vector2();\n\t\tthis._rotateEnd = new Vector2();\n\t\tthis._rotateDelta = new Vector2();\n\n\t\tthis._panStart = new Vector2();\n\t\tthis._panEnd = new Vector2();\n\t\tthis._panDelta = new Vector2();\n\n\t\tthis._dollyStart = new Vector2();\n\t\tthis._dollyEnd = new Vector2();\n\t\tthis._dollyDelta = new Vector2();\n\n\t\tthis._dollyDirection = new Vector3();\n\t\tthis._mouse = new Vector2();\n\t\tthis._performCursorZoom = false;\n\n\t\tthis._pointers = [];\n\t\tthis._pointerPositions = {};\n\n\t\tthis._controlActive = false;\n\n\t\t// event listeners\n\n\t\tthis._onPointerMove = onPointerMove.bind( this );\n\t\tthis._onPointerDown = onPointerDown.bind( this );\n\t\tthis._onPointerUp = onPointerUp.bind( this );\n\t\tthis._onContextMenu = onContextMenu.bind( this );\n\t\tthis._onMouseWheel = onMouseWheel.bind( this );\n\t\tthis._onKeyDown = onKeyDown.bind( this );\n\n\t\tthis._onTouchStart = onTouchStart.bind( this );\n\t\tthis._onTouchMove = onTouchMove.bind( this );\n\n\t\tthis._onMouseDown = onMouseDown.bind( this );\n\t\tthis._onMouseMove = onMouseMove.bind( this );\n\n\t\tthis._interceptControlDown = interceptControlDown.bind( this );\n\t\tthis._interceptControlUp = interceptControlUp.bind( this );\n\n\t\t//\n\n\t\tif ( this.domElement !== null ) {\n\n\t\t\tthis.connect();\n\n\t\t}\n\n\t\tthis.update();\n\n\t}\n\n\tconnect() {\n\n\t\tthis.domElement.addEventListener( 'pointerdown', this._onPointerDown );\n\t\tthis.domElement.addEventListener( 'pointercancel', this._onPointerUp );\n\n\t\tthis.domElement.addEventListener( 'contextmenu', this._onContextMenu );\n\t\tthis.domElement.addEventListener( 'wheel', this._onMouseWheel, { passive: false } );\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\t\tdocument.addEventListener( 'keydown', this._interceptControlDown, { passive: true, capture: true } );\n\n\t\tthis.domElement.style.touchAction = 'none'; // disable touch scroll\n\n\t}\n\n\tdisconnect() {\n\n\t\tthis.domElement.removeEventListener( 'pointerdown', this._onPointerDown );\n\t\tthis.domElement.removeEventListener( 'pointermove', this._onPointerMove );\n\t\tthis.domElement.removeEventListener( 'pointerup', this._onPointerUp );\n\t\tthis.domElement.removeEventListener( 'pointercancel', this._onPointerUp );\n\n\t\tthis.domElement.removeEventListener( 'wheel', this._onMouseWheel );\n\t\tthis.domElement.removeEventListener( 'contextmenu', this._onContextMenu );\n\n\t\tthis.stopListenToKeyEvents();\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\t\tdocument.removeEventListener( 'keydown', this._interceptControlDown, { capture: true } );\n\n\t\tthis.domElement.style.touchAction = 'auto';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.disconnect();\n\n\t}\n\n\tgetPolarAngle() {\n\n\t\treturn this._spherical.phi;\n\n\t}\n\n\tgetAzimuthalAngle() {\n\n\t\treturn this._spherical.theta;\n\n\t}\n\n\tgetDistance() {\n\n\t\treturn this.object.position.distanceTo( this.target );\n\n\t}\n\n\tlistenToKeyEvents( domElement ) {\n\n\t\tdomElement.addEventListener( 'keydown', this._onKeyDown );\n\t\tthis._domElementKeyEvents = domElement;\n\n\t}\n\n\tstopListenToKeyEvents() {\n\n\t\tif ( this._domElementKeyEvents !== null ) {\n\n\t\t\tthis._domElementKeyEvents.removeEventListener( 'keydown', this._onKeyDown );\n\t\t\tthis._domElementKeyEvents = null;\n\n\t\t}\n\n\t}\n\n\tsaveState() {\n\n\t\tthis.target0.copy( this.target );\n\t\tthis.position0.copy( this.object.position );\n\t\tthis.zoom0 = this.object.zoom;\n\n\t}\n\n\treset() {\n\n\t\tthis.target.copy( this.target0 );\n\t\tthis.object.position.copy( this.position0 );\n\t\tthis.object.zoom = this.zoom0;\n\n\t\tthis.object.updateProjectionMatrix();\n\t\tthis.dispatchEvent( _changeEvent );\n\n\t\tthis.update();\n\n\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tupdate( deltaTime = null ) {\n\n\t\tconst position = this.object.position;\n\n\t\t_v.copy( position ).sub( this.target );\n\n\t\t// rotate offset to \"y-axis-is-up\" space\n\t\t_v.applyQuaternion( this._quat );\n\n\t\t// angle from z-axis around y-axis\n\t\tthis._spherical.setFromVector3( _v );\n\n\t\tif ( this.autoRotate && this.state === _STATE.NONE ) {\n\n\t\t\tthis._rotateLeft( this._getAutoRotationAngle( deltaTime ) );\n\n\t\t}\n\n\t\tif ( this.enableDamping ) {\n\n\t\t\tthis._spherical.theta += this._sphericalDelta.theta * this.dampingFactor;\n\t\t\tthis._spherical.phi += this._sphericalDelta.phi * this.dampingFactor;\n\n\t\t} else {\n\n\t\t\tthis._spherical.theta += this._sphericalDelta.theta;\n\t\t\tthis._spherical.phi += this._sphericalDelta.phi;\n\n\t\t}\n\n\t\t// restrict theta to be between desired limits\n\n\t\tlet min = this.minAzimuthAngle;\n\t\tlet max = this.maxAzimuthAngle;\n\n\t\tif ( isFinite( min ) && isFinite( max ) ) {\n\n\t\t\tif ( min < - Math.PI ) min += _twoPI; else if ( min > Math.PI ) min -= _twoPI;\n\n\t\t\tif ( max < - Math.PI ) max += _twoPI; else if ( max > Math.PI ) max -= _twoPI;\n\n\t\t\tif ( min <= max ) {\n\n\t\t\t\tthis._spherical.theta = Math.max( min, Math.min( max, this._spherical.theta ) );\n\n\t\t\t} else {\n\n\t\t\t\tthis._spherical.theta = ( this._spherical.theta > ( min + max ) / 2 ) ?\n\t\t\t\t\tMath.max( min, this._spherical.theta ) :\n\t\t\t\t\tMath.min( max, this._spherical.theta );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// restrict phi to be between desired limits\n\t\tthis._spherical.phi = Math.max( this.minPolarAngle, Math.min( this.maxPolarAngle, this._spherical.phi ) );\n\n\t\tthis._spherical.makeSafe();\n\n\n\t\t// move target to panned location\n\n\t\tif ( this.enableDamping === true ) {\n\n\t\t\tthis.target.addScaledVector( this._panOffset, this.dampingFactor );\n\n\t\t} else {\n\n\t\t\tthis.target.add( this._panOffset );\n\n\t\t}\n\n\t\t// Limit the target distance from the cursor to create a sphere around the center of interest\n\t\tthis.target.sub( this.cursor );\n\t\tthis.target.clampLength( this.minTargetRadius, this.maxTargetRadius );\n\t\tthis.target.add( this.cursor );\n\n\t\tlet zoomChanged = false;\n\t\t// adjust the camera position based on zoom only if we're not zooming to the cursor or if it's an ortho camera\n\t\t// we adjust zoom later in these cases\n\t\tif ( this.zoomToCursor && this._performCursorZoom || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._spherical.radius = this._clampDistance( this._spherical.radius );\n\n\t\t} else {\n\n\t\t\tconst prevRadius = this._spherical.radius;\n\t\t\tthis._spherical.radius = this._clampDistance( this._spherical.radius * this._scale );\n\t\t\tzoomChanged = prevRadius != this._spherical.radius;\n\n\t\t}\n\n\t\t_v.setFromSpherical( this._spherical );\n\n\t\t// rotate offset back to \"camera-up-vector-is-up\" space\n\t\t_v.applyQuaternion( this._quatInverse );\n\n\t\tposition.copy( this.target ).add( _v );\n\n\t\tthis.object.lookAt( this.target );\n\n\t\tif ( this.enableDamping === true ) {\n\n\t\t\tthis._sphericalDelta.theta *= ( 1 - this.dampingFactor );\n\t\t\tthis._sphericalDelta.phi *= ( 1 - this.dampingFactor );\n\n\t\t\tthis._panOffset.multiplyScalar( 1 - this.dampingFactor );\n\n\t\t} else {\n\n\t\t\tthis._sphericalDelta.set( 0, 0, 0 );\n\n\t\t\tthis._panOffset.set( 0, 0, 0 );\n\n\t\t}\n\n\t\t// adjust camera position\n\t\tif ( this.zoomToCursor && this._performCursorZoom ) {\n\n\t\t\tlet newRadius = null;\n\t\t\tif ( this.object.isPerspectiveCamera ) {\n\n\t\t\t\t// move the camera down the pointer ray\n\t\t\t\t// this method avoids floating point error\n\t\t\t\tconst prevRadius = _v.length();\n\t\t\t\tnewRadius = this._clampDistance( prevRadius * this._scale );\n\n\t\t\t\tconst radiusDelta = prevRadius - newRadius;\n\t\t\t\tthis.object.position.addScaledVector( this._dollyDirection, radiusDelta );\n\t\t\t\tthis.object.updateMatrixWorld();\n\n\t\t\t\tzoomChanged = !! radiusDelta;\n\n\t\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\t\t// adjust the ortho camera position based on zoom changes\n\t\t\t\tconst mouseBefore = new Vector3( this._mouse.x, this._mouse.y, 0 );\n\t\t\t\tmouseBefore.unproject( this.object );\n\n\t\t\t\tconst prevZoom = this.object.zoom;\n\t\t\t\tthis.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / this._scale ) );\n\t\t\t\tthis.object.updateProjectionMatrix();\n\n\t\t\t\tzoomChanged = prevZoom !== this.object.zoom;\n\n\t\t\t\tconst mouseAfter = new Vector3( this._mouse.x, this._mouse.y, 0 );\n\t\t\t\tmouseAfter.unproject( this.object );\n\n\t\t\t\tthis.object.position.sub( mouseAfter ).add( mouseBefore );\n\t\t\t\tthis.object.updateMatrixWorld();\n\n\t\t\t\tnewRadius = _v.length();\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.' );\n\t\t\t\tthis.zoomToCursor = false;\n\n\t\t\t}\n\n\t\t\t// handle the placement of the target\n\t\t\tif ( newRadius !== null ) {\n\n\t\t\t\tif ( this.screenSpacePanning ) {\n\n\t\t\t\t\t// position the orbit target in front of the new camera position\n\t\t\t\t\tthis.target.set( 0, 0, - 1 )\n\t\t\t\t\t\t.transformDirection( this.object.matrix )\n\t\t\t\t\t\t.multiplyScalar( newRadius )\n\t\t\t\t\t\t.add( this.object.position );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// get the ray and translation plane to compute target\n\t\t\t\t\t_ray.origin.copy( this.object.position );\n\t\t\t\t\t_ray.direction.set( 0, 0, - 1 ).transformDirection( this.object.matrix );\n\n\t\t\t\t\t// if the camera is 20 degrees above the horizon then don't adjust the focus target to avoid\n\t\t\t\t\t// extremely large values\n\t\t\t\t\tif ( Math.abs( this.object.up.dot( _ray.direction ) ) < _TILT_LIMIT ) {\n\n\t\t\t\t\t\tthis.object.lookAt( this.target );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_plane.setFromNormalAndCoplanarPoint( this.object.up, this.target );\n\t\t\t\t\t\t_ray.intersectPlane( _plane, this.target );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\tconst prevZoom = this.object.zoom;\n\t\t\tthis.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / this._scale ) );\n\n\t\t\tif ( prevZoom !== this.object.zoom ) {\n\n\t\t\t\tthis.object.updateProjectionMatrix();\n\t\t\t\tzoomChanged = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._scale = 1;\n\t\tthis._performCursorZoom = false;\n\n\t\t// update condition is:\n\t\t// min(camera displacement, camera rotation in radians)^2 > EPS\n\t\t// using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\n\t\tif ( zoomChanged ||\n\t\t\tthis._lastPosition.distanceToSquared( this.object.position ) > _EPS ||\n\t\t\t8 * ( 1 - this._lastQuaternion.dot( this.object.quaternion ) ) > _EPS ||\n\t\t\tthis._lastTargetPosition.distanceToSquared( this.target ) > _EPS ) {\n\n\t\t\tthis.dispatchEvent( _changeEvent );\n\n\t\t\tthis._lastPosition.copy( this.object.position );\n\t\t\tthis._lastQuaternion.copy( this.object.quaternion );\n\t\t\tthis._lastTargetPosition.copy( this.target );\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t_getAutoRotationAngle( deltaTime ) {\n\n\t\tif ( deltaTime !== null ) {\n\n\t\t\treturn ( _twoPI / 60 * this.autoRotateSpeed ) * deltaTime;\n\n\t\t} else {\n\n\t\t\treturn _twoPI / 60 / 60 * this.autoRotateSpeed;\n\n\t\t}\n\n\t}\n\n\t_getZoomScale( delta ) {\n\n\t\tconst normalizedDelta = Math.abs( delta * 0.01 );\n\t\treturn Math.pow( 0.95, this.zoomSpeed * normalizedDelta );\n\n\t}\n\n\t_rotateLeft( angle ) {\n\n\t\tthis._sphericalDelta.theta -= angle;\n\n\t}\n\n\t_rotateUp( angle ) {\n\n\t\tthis._sphericalDelta.phi -= angle;\n\n\t}\n\n\t_panLeft( distance, objectMatrix ) {\n\n\t\t_v.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix\n\t\t_v.multiplyScalar( - distance );\n\n\t\tthis._panOffset.add( _v );\n\n\t}\n\n\t_panUp( distance, objectMatrix ) {\n\n\t\tif ( this.screenSpacePanning === true ) {\n\n\t\t\t_v.setFromMatrixColumn( objectMatrix, 1 );\n\n\t\t} else {\n\n\t\t\t_v.setFromMatrixColumn( objectMatrix, 0 );\n\t\t\t_v.crossVectors( this.object.up, _v );\n\n\t\t}\n\n\t\t_v.multiplyScalar( distance );\n\n\t\tthis._panOffset.add( _v );\n\n\t}\n\n\t// deltaX and deltaY are in pixels; right and down are positive\n\t_pan( deltaX, deltaY ) {\n\n\t\tconst element = this.domElement;\n\n\t\tif ( this.object.isPerspectiveCamera ) {\n\n\t\t\t// perspective\n\t\t\tconst position = this.object.position;\n\t\t\t_v.copy( position ).sub( this.target );\n\t\t\tlet targetDistance = _v.length();\n\n\t\t\t// half of the fov is center to top of screen\n\t\t\ttargetDistance *= Math.tan( ( this.object.fov / 2 ) * Math.PI / 180.0 );\n\n\t\t\t// we use only clientHeight here so aspect ratio does not distort speed\n\t\t\tthis._panLeft( 2 * deltaX * targetDistance / element.clientHeight, this.object.matrix );\n\t\t\tthis._panUp( 2 * deltaY * targetDistance / element.clientHeight, this.object.matrix );\n\n\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\t// orthographic\n\t\t\tthis._panLeft( deltaX * ( this.object.right - this.object.left ) / this.object.zoom / element.clientWidth, this.object.matrix );\n\t\t\tthis._panUp( deltaY * ( this.object.top - this.object.bottom ) / this.object.zoom / element.clientHeight, this.object.matrix );\n\n\t\t} else {\n\n\t\t\t// camera neither orthographic nor perspective\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' );\n\t\t\tthis.enablePan = false;\n\n\t\t}\n\n\t}\n\n\t_dollyOut( dollyScale ) {\n\n\t\tif ( this.object.isPerspectiveCamera || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._scale /= dollyScale;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\tthis.enableZoom = false;\n\n\t\t}\n\n\t}\n\n\t_dollyIn( dollyScale ) {\n\n\t\tif ( this.object.isPerspectiveCamera || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._scale *= dollyScale;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\tthis.enableZoom = false;\n\n\t\t}\n\n\t}\n\n\t_updateZoomParameters( x, y ) {\n\n\t\tif ( ! this.zoomToCursor ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._performCursorZoom = true;\n\n\t\tconst rect = this.domElement.getBoundingClientRect();\n\t\tconst dx = x - rect.left;\n\t\tconst dy = y - rect.top;\n\t\tconst w = rect.width;\n\t\tconst h = rect.height;\n\n\t\tthis._mouse.x = ( dx / w ) * 2 - 1;\n\t\tthis._mouse.y = - ( dy / h ) * 2 + 1;\n\n\t\tthis._dollyDirection.set( this._mouse.x, this._mouse.y, 1 ).unproject( this.object ).sub( this.object.position ).normalize();\n\n\t}\n\n\t_clampDistance( dist ) {\n\n\t\treturn Math.max( this.minDistance, Math.min( this.maxDistance, dist ) );\n\n\t}\n\n\t//\n\t// event callbacks - update the object state\n\t//\n\n\t_handleMouseDownRotate( event ) {\n\n\t\tthis._rotateStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseDownDolly( event ) {\n\n\t\tthis._updateZoomParameters( event.clientX, event.clientX );\n\t\tthis._dollyStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseDownPan( event ) {\n\n\t\tthis._panStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseMoveRotate( event ) {\n\n\t\tthis._rotateEnd.set( event.clientX, event.clientY );\n\n\t\tthis._rotateDelta.subVectors( this._rotateEnd, this._rotateStart ).multiplyScalar( this.rotateSpeed );\n\n\t\tconst element = this.domElement;\n\n\t\tthis._rotateLeft( _twoPI * this._rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\tthis._rotateUp( _twoPI * this._rotateDelta.y / element.clientHeight );\n\n\t\tthis._rotateStart.copy( this._rotateEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseMoveDolly( event ) {\n\n\t\tthis._dollyEnd.set( event.clientX, event.clientY );\n\n\t\tthis._dollyDelta.subVectors( this._dollyEnd, this._dollyStart );\n\n\t\tif ( this._dollyDelta.y > 0 ) {\n\n\t\t\tthis._dollyOut( this._getZoomScale( this._dollyDelta.y ) );\n\n\t\t} else if ( this._dollyDelta.y < 0 ) {\n\n\t\t\tthis._dollyIn( this._getZoomScale( this._dollyDelta.y ) );\n\n\t\t}\n\n\t\tthis._dollyStart.copy( this._dollyEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseMovePan( event ) {\n\n\t\tthis._panEnd.set( event.clientX, event.clientY );\n\n\t\tthis._panDelta.subVectors( this._panEnd, this._panStart ).multiplyScalar( this.panSpeed );\n\n\t\tthis._pan( this._panDelta.x, this._panDelta.y );\n\n\t\tthis._panStart.copy( this._panEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseWheel( event ) {\n\n\t\tthis._updateZoomParameters( event.clientX, event.clientY );\n\n\t\tif ( event.deltaY < 0 ) {\n\n\t\t\tthis._dollyIn( this._getZoomScale( event.deltaY ) );\n\n\t\t} else if ( event.deltaY > 0 ) {\n\n\t\t\tthis._dollyOut( this._getZoomScale( event.deltaY ) );\n\n\t\t}\n\n\t\tthis.update();\n\n\t}\n\n\t_handleKeyDown( event ) {\n\n\t\tlet needsUpdate = false;\n\n\t\tswitch ( event.code ) {\n\n\t\t\tcase this.keys.UP:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tthis._rotateUp( _twoPI * this.rotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._pan( 0, this.keyPanSpeed );\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.BOTTOM:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tthis._rotateUp( - _twoPI * this.rotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._pan( 0, - this.keyPanSpeed );\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.LEFT:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tthis._rotateLeft( _twoPI * this.rotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._pan( this.keyPanSpeed, 0 );\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.RIGHT:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tthis._rotateLeft( - _twoPI * this.rotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._pan( - this.keyPanSpeed, 0 );\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\t// prevent the browser from scrolling on cursor keys\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.update();\n\n\t\t}\n\n\n\t}\n\n\t_handleTouchStartRotate( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._rotateStart.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._rotateStart.set( x, y );\n\n\t\t}\n\n\t}\n\n\t_handleTouchStartPan( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._panStart.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._panStart.set( x, y );\n\n\t\t}\n\n\t}\n\n\t_handleTouchStartDolly( event ) {\n\n\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\tconst dx = event.pageX - position.x;\n\t\tconst dy = event.pageY - position.y;\n\n\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\tthis._dollyStart.set( 0, distance );\n\n\t}\n\n\t_handleTouchStartDollyPan( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchStartDolly( event );\n\n\t\tif ( this.enablePan ) this._handleTouchStartPan( event );\n\n\t}\n\n\t_handleTouchStartDollyRotate( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchStartDolly( event );\n\n\t\tif ( this.enableRotate ) this._handleTouchStartRotate( event );\n\n\t}\n\n\t_handleTouchMoveRotate( event ) {\n\n\t\tif ( this._pointers.length == 1 ) {\n\n\t\t\tthis._rotateEnd.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._rotateEnd.set( x, y );\n\n\t\t}\n\n\t\tthis._rotateDelta.subVectors( this._rotateEnd, this._rotateStart ).multiplyScalar( this.rotateSpeed );\n\n\t\tconst element = this.domElement;\n\n\t\tthis._rotateLeft( _twoPI * this._rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\tthis._rotateUp( _twoPI * this._rotateDelta.y / element.clientHeight );\n\n\t\tthis._rotateStart.copy( this._rotateEnd );\n\n\t}\n\n\t_handleTouchMovePan( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._panEnd.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._panEnd.set( x, y );\n\n\t\t}\n\n\t\tthis._panDelta.subVectors( this._panEnd, this._panStart ).multiplyScalar( this.panSpeed );\n\n\t\tthis._pan( this._panDelta.x, this._panDelta.y );\n\n\t\tthis._panStart.copy( this._panEnd );\n\n\t}\n\n\t_handleTouchMoveDolly( event ) {\n\n\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\tconst dx = event.pageX - position.x;\n\t\tconst dy = event.pageY - position.y;\n\n\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\tthis._dollyEnd.set( 0, distance );\n\n\t\tthis._dollyDelta.set( 0, Math.pow( this._dollyEnd.y / this._dollyStart.y, this.zoomSpeed ) );\n\n\t\tthis._dollyOut( this._dollyDelta.y );\n\n\t\tthis._dollyStart.copy( this._dollyEnd );\n\n\t\tconst centerX = ( event.pageX + position.x ) * 0.5;\n\t\tconst centerY = ( event.pageY + position.y ) * 0.5;\n\n\t\tthis._updateZoomParameters( centerX, centerY );\n\n\t}\n\n\t_handleTouchMoveDollyPan( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchMoveDolly( event );\n\n\t\tif ( this.enablePan ) this._handleTouchMovePan( event );\n\n\t}\n\n\t_handleTouchMoveDollyRotate( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchMoveDolly( event );\n\n\t\tif ( this.enableRotate ) this._handleTouchMoveRotate( event );\n\n\t}\n\n\t// pointers\n\n\t_addPointer( event ) {\n\n\t\tthis._pointers.push( event.pointerId );\n\n\t}\n\n\t_removePointer( event ) {\n\n\t\tdelete this._pointerPositions[ event.pointerId ];\n\n\t\tfor ( let i = 0; i < this._pointers.length; i ++ ) {\n\n\t\t\tif ( this._pointers[ i ] == event.pointerId ) {\n\n\t\t\t\tthis._pointers.splice( i, 1 );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_isTrackingPointer( event ) {\n\n\t\tfor ( let i = 0; i < this._pointers.length; i ++ ) {\n\n\t\t\tif ( this._pointers[ i ] == event.pointerId ) return true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t_trackPointer( event ) {\n\n\t\tlet position = this._pointerPositions[ event.pointerId ];\n\n\t\tif ( position === undefined ) {\n\n\t\t\tposition = new Vector2();\n\t\t\tthis._pointerPositions[ event.pointerId ] = position;\n\n\t\t}\n\n\t\tposition.set( event.pageX, event.pageY );\n\n\t}\n\n\t_getSecondPointerPosition( event ) {\n\n\t\tconst pointerId = ( event.pointerId === this._pointers[ 0 ] ) ? this._pointers[ 1 ] : this._pointers[ 0 ];\n\n\t\treturn this._pointerPositions[ pointerId ];\n\n\t}\n\n\t//\n\n\t_customWheelEvent( event ) {\n\n\t\tconst mode = event.deltaMode;\n\n\t\t// minimal wheel event altered to meet delta-zoom demand\n\t\tconst newEvent = {\n\t\t\tclientX: event.clientX,\n\t\t\tclientY: event.clientY,\n\t\t\tdeltaY: event.deltaY,\n\t\t};\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase 1: // LINE_MODE\n\t\t\t\tnewEvent.deltaY *= 16;\n\t\t\t\tbreak;\n\n\t\t\tcase 2: // PAGE_MODE\n\t\t\t\tnewEvent.deltaY *= 100;\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\t// detect if event was triggered by pinching\n\t\tif ( event.ctrlKey && ! this._controlActive ) {\n\n\t\t\tnewEvent.deltaY *= 10;\n\n\t\t}\n\n\t\treturn newEvent;\n\n\t}\n\n}\n\nfunction onPointerDown( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tif ( this._pointers.length === 0 ) {\n\n\t\tthis.domElement.setPointerCapture( event.pointerId );\n\n\t\tthis.domElement.addEventListener( 'pointermove', this._onPointerMove );\n\t\tthis.domElement.addEventListener( 'pointerup', this._onPointerUp );\n\n\t}\n\n\t//\n\n\tif ( this._isTrackingPointer( event ) ) return;\n\n\t//\n\n\tthis._addPointer( event );\n\n\tif ( event.pointerType === 'touch' ) {\n\n\t\tthis._onTouchStart( event );\n\n\t} else {\n\n\t\tthis._onMouseDown( event );\n\n\t}\n\n}\n\nfunction onPointerMove( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tif ( event.pointerType === 'touch' ) {\n\n\t\tthis._onTouchMove( event );\n\n\t} else {\n\n\t\tthis._onMouseMove( event );\n\n\t}\n\n}\n\nfunction onPointerUp( event ) {\n\n\tthis._removePointer( event );\n\n\tswitch ( this._pointers.length ) {\n\n\t\tcase 0:\n\n\t\t\tthis.domElement.releasePointerCapture( event.pointerId );\n\n\t\t\tthis.domElement.removeEventListener( 'pointermove', this._onPointerMove );\n\t\t\tthis.domElement.removeEventListener( 'pointerup', this._onPointerUp );\n\n\t\t\tthis.dispatchEvent( _endEvent );\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t\t\tbreak;\n\n\t\tcase 1:\n\n\t\t\tconst pointerId = this._pointers[ 0 ];\n\t\t\tconst position = this._pointerPositions[ pointerId ];\n\n\t\t\t// minimal placeholder event - allows state correction on pointer-up\n\t\t\tthis._onTouchStart( { pointerId: pointerId, pageX: position.x, pageY: position.y } );\n\n\t\t\tbreak;\n\n\t}\n\n}\n\nfunction onMouseDown( event ) {\n\n\tlet mouseAction;\n\n\tswitch ( event.button ) {\n\n\t\tcase 0:\n\n\t\t\tmouseAction = this.mouseButtons.LEFT;\n\t\t\tbreak;\n\n\t\tcase 1:\n\n\t\t\tmouseAction = this.mouseButtons.MIDDLE;\n\t\t\tbreak;\n\n\t\tcase 2:\n\n\t\t\tmouseAction = this.mouseButtons.RIGHT;\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tmouseAction = - 1;\n\n\t}\n\n\tswitch ( mouseAction ) {\n\n\t\tcase MOUSE.DOLLY:\n\n\t\t\tif ( this.enableZoom === false ) return;\n\n\t\t\tthis._handleMouseDownDolly( event );\n\n\t\t\tthis.state = _STATE.DOLLY;\n\n\t\t\tbreak;\n\n\t\tcase MOUSE.ROTATE:\n\n\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\tthis._handleMouseDownPan( event );\n\n\t\t\t\tthis.state = _STATE.PAN;\n\n\t\t\t} else {\n\n\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\tthis._handleMouseDownRotate( event );\n\n\t\t\t\tthis.state = _STATE.ROTATE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase MOUSE.PAN:\n\n\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\tthis._handleMouseDownRotate( event );\n\n\t\t\t\tthis.state = _STATE.ROTATE;\n\n\t\t\t} else {\n\n\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\tthis._handleMouseDownPan( event );\n\n\t\t\t\tthis.state = _STATE.PAN;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tif ( this.state !== _STATE.NONE ) {\n\n\t\tthis.dispatchEvent( _startEvent );\n\n\t}\n\n}\n\nfunction onMouseMove( event ) {\n\n\tswitch ( this.state ) {\n\n\t\tcase _STATE.ROTATE:\n\n\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\tthis._handleMouseMoveRotate( event );\n\n\t\t\tbreak;\n\n\t\tcase _STATE.DOLLY:\n\n\t\t\tif ( this.enableZoom === false ) return;\n\n\t\t\tthis._handleMouseMoveDolly( event );\n\n\t\t\tbreak;\n\n\t\tcase _STATE.PAN:\n\n\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\tthis._handleMouseMovePan( event );\n\n\t\t\tbreak;\n\n\t}\n\n}\n\nfunction onMouseWheel( event ) {\n\n\tif ( this.enabled === false || this.enableZoom === false || this.state !== _STATE.NONE ) return;\n\n\tevent.preventDefault();\n\n\tthis.dispatchEvent( _startEvent );\n\n\tthis._handleMouseWheel( this._customWheelEvent( event ) );\n\n\tthis.dispatchEvent( _endEvent );\n\n}\n\nfunction onKeyDown( event ) {\n\n\tif ( this.enabled === false || this.enablePan === false ) return;\n\n\tthis._handleKeyDown( event );\n\n}\n\nfunction onTouchStart( event ) {\n\n\tthis._trackPointer( event );\n\n\tswitch ( this._pointers.length ) {\n\n\t\tcase 1:\n\n\t\t\tswitch ( this.touches.ONE ) {\n\n\t\t\t\tcase TOUCH.ROTATE:\n\n\t\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartRotate( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_ROTATE;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TOUCH.PAN:\n\n\t\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartPan( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_PAN;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tthis.state = _STATE.NONE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase 2:\n\n\t\t\tswitch ( this.touches.TWO ) {\n\n\t\t\t\tcase TOUCH.DOLLY_PAN:\n\n\t\t\t\t\tif ( this.enableZoom === false && this.enablePan === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartDollyPan( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_DOLLY_PAN;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TOUCH.DOLLY_ROTATE:\n\n\t\t\t\t\tif ( this.enableZoom === false && this.enableRotate === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartDollyRotate( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_DOLLY_ROTATE;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tthis.state = _STATE.NONE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tif ( this.state !== _STATE.NONE ) {\n\n\t\tthis.dispatchEvent( _startEvent );\n\n\t}\n\n}\n\nfunction onTouchMove( event ) {\n\n\tthis._trackPointer( event );\n\n\tswitch ( this.state ) {\n\n\t\tcase _STATE.TOUCH_ROTATE:\n\n\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\tthis._handleTouchMoveRotate( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_PAN:\n\n\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\tthis._handleTouchMovePan( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_DOLLY_PAN:\n\n\t\t\tif ( this.enableZoom === false && this.enablePan === false ) return;\n\n\t\t\tthis._handleTouchMoveDollyPan( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_DOLLY_ROTATE:\n\n\t\t\tif ( this.enableZoom === false && this.enableRotate === false ) return;\n\n\t\t\tthis._handleTouchMoveDollyRotate( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n}\n\nfunction onContextMenu( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tevent.preventDefault();\n\n}\n\nfunction interceptControlDown( event ) {\n\n\tif ( event.key === 'Control' ) {\n\n\t\tthis._controlActive = true;\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\tdocument.addEventListener( 'keyup', this._interceptControlUp, { passive: true, capture: true } );\n\n\t}\n\n}\n\nfunction interceptControlUp( event ) {\n\n\tif ( event.key === 'Control' ) {\n\n\t\tthis._controlActive = false;\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\tdocument.removeEventListener( 'keyup', this._interceptControlUp, { passive: true, capture: true } );\n\n\t}\n\n}\n\nexport { OrbitControls };\n","import {\n\tBufferAttribute,\n\tBufferGeometry,\n\tFloat32BufferAttribute,\n\tInstancedBufferAttribute,\n\tInterleavedBuffer,\n\tInterleavedBufferAttribute,\n\tTriangleFanDrawMode,\n\tTriangleStripDrawMode,\n\tTrianglesDrawMode,\n\tVector3,\n} from 'three';\n\nfunction computeMikkTSpaceTangents( geometry, MikkTSpace, negateSign = true ) {\n\n\tif ( ! MikkTSpace || ! MikkTSpace.isReady ) {\n\n\t\tthrow new Error( 'BufferGeometryUtils: Initialized MikkTSpace library required.' );\n\n\t}\n\n\tif ( ! geometry.hasAttribute( 'position' ) || ! geometry.hasAttribute( 'normal' ) || ! geometry.hasAttribute( 'uv' ) ) {\n\n\t\tthrow new Error( 'BufferGeometryUtils: Tangents require \"position\", \"normal\", and \"uv\" attributes.' );\n\n\t}\n\n\tfunction getAttributeArray( attribute ) {\n\n\t\tif ( attribute.normalized || attribute.isInterleavedBufferAttribute ) {\n\n\t\t\tconst dstArray = new Float32Array( attribute.count * attribute.itemSize );\n\n\t\t\tfor ( let i = 0, j = 0; i < attribute.count; i ++ ) {\n\n\t\t\t\tdstArray[ j ++ ] = attribute.getX( i );\n\t\t\t\tdstArray[ j ++ ] = attribute.getY( i );\n\n\t\t\t\tif ( attribute.itemSize > 2 ) {\n\n\t\t\t\t\tdstArray[ j ++ ] = attribute.getZ( i );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn dstArray;\n\n\t\t}\n\n\t\tif ( attribute.array instanceof Float32Array ) {\n\n\t\t\treturn attribute.array;\n\n\t\t}\n\n\t\treturn new Float32Array( attribute.array );\n\n\t}\n\n\t// MikkTSpace algorithm requires non-indexed input.\n\n\tconst _geometry = geometry.index ? geometry.toNonIndexed() : geometry;\n\n\t// Compute vertex tangents.\n\n\tconst tangents = MikkTSpace.generateTangents(\n\n\t\tgetAttributeArray( _geometry.attributes.position ),\n\t\tgetAttributeArray( _geometry.attributes.normal ),\n\t\tgetAttributeArray( _geometry.attributes.uv )\n\n\t);\n\n\t// Texture coordinate convention of glTF differs from the apparent\n\t// default of the MikkTSpace library; .w component must be flipped.\n\n\tif ( negateSign ) {\n\n\t\tfor ( let i = 3; i < tangents.length; i += 4 ) {\n\n\t\t\ttangents[ i ] *= - 1;\n\n\t\t}\n\n\t}\n\n\t//\n\n\t_geometry.setAttribute( 'tangent', new BufferAttribute( tangents, 4 ) );\n\n\tif ( geometry !== _geometry ) {\n\n\t\tgeometry.copy( _geometry );\n\n\t}\n\n\treturn geometry;\n\n}\n\n/**\n * @param {Array} geometries\n * @param {Boolean} useGroups\n * @return {BufferGeometry}\n */\nfunction mergeGeometries( geometries, useGroups = false ) {\n\n\tconst isIndexed = geometries[ 0 ].index !== null;\n\n\tconst attributesUsed = new Set( Object.keys( geometries[ 0 ].attributes ) );\n\tconst morphAttributesUsed = new Set( Object.keys( geometries[ 0 ].morphAttributes ) );\n\n\tconst attributes = {};\n\tconst morphAttributes = {};\n\n\tconst morphTargetsRelative = geometries[ 0 ].morphTargetsRelative;\n\n\tconst mergedGeometry = new BufferGeometry();\n\n\tlet offset = 0;\n\n\tfor ( let i = 0; i < geometries.length; ++ i ) {\n\n\t\tconst geometry = geometries[ i ];\n\t\tlet attributesCount = 0;\n\n\t\t// ensure that all geometries are indexed, or none\n\n\t\tif ( isIndexed !== ( geometry.index !== null ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// gather attributes, exit early if they're different\n\n\t\tfor ( const name in geometry.attributes ) {\n\n\t\t\tif ( ! attributesUsed.has( name ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure \"' + name + '\" attribute exists among all geometries, or in none of them.' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tif ( attributes[ name ] === undefined ) attributes[ name ] = [];\n\n\t\t\tattributes[ name ].push( geometry.attributes[ name ] );\n\n\t\t\tattributesCount ++;\n\n\t\t}\n\n\t\t// ensure geometries have the same number of attributes\n\n\t\tif ( attributesCount !== attributesUsed.size ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. Make sure all geometries have the same number of attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// gather morph attributes, exit early if they're different\n\n\t\tif ( morphTargetsRelative !== geometry.morphTargetsRelative ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. .morphTargetsRelative must be consistent throughout all geometries.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tfor ( const name in geometry.morphAttributes ) {\n\n\t\t\tif ( ! morphAttributesUsed.has( name ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. .morphAttributes must be consistent throughout all geometries.' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tif ( morphAttributes[ name ] === undefined ) morphAttributes[ name ] = [];\n\n\t\t\tmorphAttributes[ name ].push( geometry.morphAttributes[ name ] );\n\n\t\t}\n\n\t\tif ( useGroups ) {\n\n\t\t\tlet count;\n\n\t\t\tif ( isIndexed ) {\n\n\t\t\t\tcount = geometry.index.count;\n\n\t\t\t} else if ( geometry.attributes.position !== undefined ) {\n\n\t\t\t\tcount = geometry.attributes.position.count;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. The geometry must have either an index or a position attribute' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tmergedGeometry.addGroup( offset, count, i );\n\n\t\t\toffset += count;\n\n\t\t}\n\n\t}\n\n\t// merge indices\n\n\tif ( isIndexed ) {\n\n\t\tlet indexOffset = 0;\n\t\tconst mergedIndex = [];\n\n\t\tfor ( let i = 0; i < geometries.length; ++ i ) {\n\n\t\t\tconst index = geometries[ i ].index;\n\n\t\t\tfor ( let j = 0; j < index.count; ++ j ) {\n\n\t\t\t\tmergedIndex.push( index.getX( j ) + indexOffset );\n\n\t\t\t}\n\n\t\t\tindexOffset += geometries[ i ].attributes.position.count;\n\n\t\t}\n\n\t\tmergedGeometry.setIndex( mergedIndex );\n\n\t}\n\n\t// merge attributes\n\n\tfor ( const name in attributes ) {\n\n\t\tconst mergedAttribute = mergeAttributes( attributes[ name ] );\n\n\t\tif ( ! mergedAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the ' + name + ' attribute.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tmergedGeometry.setAttribute( name, mergedAttribute );\n\n\t}\n\n\t// merge morph attributes\n\n\tfor ( const name in morphAttributes ) {\n\n\t\tconst numMorphTargets = morphAttributes[ name ][ 0 ].length;\n\n\t\tif ( numMorphTargets === 0 ) break;\n\n\t\tmergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {};\n\t\tmergedGeometry.morphAttributes[ name ] = [];\n\n\t\tfor ( let i = 0; i < numMorphTargets; ++ i ) {\n\n\t\t\tconst morphAttributesToMerge = [];\n\n\t\t\tfor ( let j = 0; j < morphAttributes[ name ].length; ++ j ) {\n\n\t\t\t\tmorphAttributesToMerge.push( morphAttributes[ name ][ j ][ i ] );\n\n\t\t\t}\n\n\t\t\tconst mergedMorphAttribute = mergeAttributes( morphAttributesToMerge );\n\n\t\t\tif ( ! mergedMorphAttribute ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the ' + name + ' morphAttribute.' );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tmergedGeometry.morphAttributes[ name ].push( mergedMorphAttribute );\n\n\t\t}\n\n\t}\n\n\treturn mergedGeometry;\n\n}\n\n/**\n * @param {Array} attributes\n * @return {BufferAttribute}\n */\nfunction mergeAttributes( attributes ) {\n\n\tlet TypedArray;\n\tlet itemSize;\n\tlet normalized;\n\tlet gpuType = - 1;\n\tlet arrayLength = 0;\n\n\tfor ( let i = 0; i < attributes.length; ++ i ) {\n\n\t\tconst attribute = attributes[ i ];\n\n\t\tif ( TypedArray === undefined ) TypedArray = attribute.array.constructor;\n\t\tif ( TypedArray !== attribute.array.constructor ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( itemSize === undefined ) itemSize = attribute.itemSize;\n\t\tif ( itemSize !== attribute.itemSize ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( normalized === undefined ) normalized = attribute.normalized;\n\t\tif ( normalized !== attribute.normalized ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( gpuType === - 1 ) gpuType = attribute.gpuType;\n\t\tif ( gpuType !== attribute.gpuType ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tarrayLength += attribute.count * itemSize;\n\n\t}\n\n\tconst array = new TypedArray( arrayLength );\n\tconst result = new BufferAttribute( array, itemSize, normalized );\n\tlet offset = 0;\n\n\tfor ( let i = 0; i < attributes.length; ++ i ) {\n\n\t\tconst attribute = attributes[ i ];\n\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\tconst tupleOffset = offset / itemSize;\n\t\t\tfor ( let j = 0, l = attribute.count; j < l; j ++ ) {\n\n\t\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\t\tconst value = attribute.getComponent( j, c );\n\t\t\t\t\tresult.setComponent( j + tupleOffset, c, value );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tarray.set( attribute.array, offset );\n\n\t\t}\n\n\t\toffset += attribute.count * itemSize;\n\n\t}\n\n\tif ( gpuType !== undefined ) {\n\n\t\tresult.gpuType = gpuType;\n\n\t}\n\n\treturn result;\n\n}\n\n/**\n * @param {BufferAttribute}\n * @return {BufferAttribute}\n */\nexport function deepCloneAttribute( attribute ) {\n\n\tif ( attribute.isInstancedInterleavedBufferAttribute || attribute.isInterleavedBufferAttribute ) {\n\n\t\treturn deinterleaveAttribute( attribute );\n\n\t}\n\n\tif ( attribute.isInstancedBufferAttribute ) {\n\n\t\treturn new InstancedBufferAttribute().copy( attribute );\n\n\t}\n\n\treturn new BufferAttribute().copy( attribute );\n\n}\n\n/**\n * @param {Array} attributes\n * @return {Array}\n */\nfunction interleaveAttributes( attributes ) {\n\n\t// Interleaves the provided attributes into an InterleavedBuffer and returns\n\t// a set of InterleavedBufferAttributes for each attribute\n\tlet TypedArray;\n\tlet arrayLength = 0;\n\tlet stride = 0;\n\n\t// calculate the length and type of the interleavedBuffer\n\tfor ( let i = 0, l = attributes.length; i < l; ++ i ) {\n\n\t\tconst attribute = attributes[ i ];\n\n\t\tif ( TypedArray === undefined ) TypedArray = attribute.array.constructor;\n\t\tif ( TypedArray !== attribute.array.constructor ) {\n\n\t\t\tconsole.error( 'AttributeBuffers of different types cannot be interleaved' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tarrayLength += attribute.array.length;\n\t\tstride += attribute.itemSize;\n\n\t}\n\n\t// Create the set of buffer attributes\n\tconst interleavedBuffer = new InterleavedBuffer( new TypedArray( arrayLength ), stride );\n\tlet offset = 0;\n\tconst res = [];\n\tconst getters = [ 'getX', 'getY', 'getZ', 'getW' ];\n\tconst setters = [ 'setX', 'setY', 'setZ', 'setW' ];\n\n\tfor ( let j = 0, l = attributes.length; j < l; j ++ ) {\n\n\t\tconst attribute = attributes[ j ];\n\t\tconst itemSize = attribute.itemSize;\n\t\tconst count = attribute.count;\n\t\tconst iba = new InterleavedBufferAttribute( interleavedBuffer, itemSize, offset, attribute.normalized );\n\t\tres.push( iba );\n\n\t\toffset += itemSize;\n\n\t\t// Move the data for each attribute into the new interleavedBuffer\n\t\t// at the appropriate offset\n\t\tfor ( let c = 0; c < count; c ++ ) {\n\n\t\t\tfor ( let k = 0; k < itemSize; k ++ ) {\n\n\t\t\t\tiba[ setters[ k ] ]( c, attribute[ getters[ k ] ]( c ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn res;\n\n}\n\n// returns a new, non-interleaved version of the provided attribute\nexport function deinterleaveAttribute( attribute ) {\n\n\tconst cons = attribute.data.array.constructor;\n\tconst count = attribute.count;\n\tconst itemSize = attribute.itemSize;\n\tconst normalized = attribute.normalized;\n\n\tconst array = new cons( count * itemSize );\n\tlet newAttribute;\n\tif ( attribute.isInstancedInterleavedBufferAttribute ) {\n\n\t\tnewAttribute = new InstancedBufferAttribute( array, itemSize, normalized, attribute.meshPerAttribute );\n\n\t} else {\n\n\t\tnewAttribute = new BufferAttribute( array, itemSize, normalized );\n\n\t}\n\n\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\tnewAttribute.setX( i, attribute.getX( i ) );\n\n\t\tif ( itemSize >= 2 ) {\n\n\t\t\tnewAttribute.setY( i, attribute.getY( i ) );\n\n\t\t}\n\n\t\tif ( itemSize >= 3 ) {\n\n\t\t\tnewAttribute.setZ( i, attribute.getZ( i ) );\n\n\t\t}\n\n\t\tif ( itemSize >= 4 ) {\n\n\t\t\tnewAttribute.setW( i, attribute.getW( i ) );\n\n\t\t}\n\n\t}\n\n\treturn newAttribute;\n\n}\n\n// deinterleaves all attributes on the geometry\nexport function deinterleaveGeometry( geometry ) {\n\n\tconst attributes = geometry.attributes;\n\tconst morphTargets = geometry.morphTargets;\n\tconst attrMap = new Map();\n\n\tfor ( const key in attributes ) {\n\n\t\tconst attr = attributes[ key ];\n\t\tif ( attr.isInterleavedBufferAttribute ) {\n\n\t\t\tif ( ! attrMap.has( attr ) ) {\n\n\t\t\t\tattrMap.set( attr, deinterleaveAttribute( attr ) );\n\n\t\t\t}\n\n\t\t\tattributes[ key ] = attrMap.get( attr );\n\n\t\t}\n\n\t}\n\n\tfor ( const key in morphTargets ) {\n\n\t\tconst attr = morphTargets[ key ];\n\t\tif ( attr.isInterleavedBufferAttribute ) {\n\n\t\t\tif ( ! attrMap.has( attr ) ) {\n\n\t\t\t\tattrMap.set( attr, deinterleaveAttribute( attr ) );\n\n\t\t\t}\n\n\t\t\tmorphTargets[ key ] = attrMap.get( attr );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @return {number}\n */\nfunction estimateBytesUsed( geometry ) {\n\n\t// Return the estimated memory used by this geometry in bytes\n\t// Calculate using itemSize, count, and BYTES_PER_ELEMENT to account\n\t// for InterleavedBufferAttributes.\n\tlet mem = 0;\n\tfor ( const name in geometry.attributes ) {\n\n\t\tconst attr = geometry.getAttribute( name );\n\t\tmem += attr.count * attr.itemSize * attr.array.BYTES_PER_ELEMENT;\n\n\t}\n\n\tconst indices = geometry.getIndex();\n\tmem += indices ? indices.count * indices.itemSize * indices.array.BYTES_PER_ELEMENT : 0;\n\treturn mem;\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {number} tolerance\n * @return {BufferGeometry}\n */\nfunction mergeVertices( geometry, tolerance = 1e-4 ) {\n\n\ttolerance = Math.max( tolerance, Number.EPSILON );\n\n\t// Generate an index buffer if the geometry doesn't have one, or optimize it\n\t// if it's already available.\n\tconst hashToIndex = {};\n\tconst indices = geometry.getIndex();\n\tconst positions = geometry.getAttribute( 'position' );\n\tconst vertexCount = indices ? indices.count : positions.count;\n\n\t// next value for triangle indices\n\tlet nextIndex = 0;\n\n\t// attributes and new attribute arrays\n\tconst attributeNames = Object.keys( geometry.attributes );\n\tconst tmpAttributes = {};\n\tconst tmpMorphAttributes = {};\n\tconst newIndices = [];\n\tconst getters = [ 'getX', 'getY', 'getZ', 'getW' ];\n\tconst setters = [ 'setX', 'setY', 'setZ', 'setW' ];\n\n\t// Initialize the arrays, allocating space conservatively. Extra\n\t// space will be trimmed in the last step.\n\tfor ( let i = 0, l = attributeNames.length; i < l; i ++ ) {\n\n\t\tconst name = attributeNames[ i ];\n\t\tconst attr = geometry.attributes[ name ];\n\n\t\ttmpAttributes[ name ] = new attr.constructor(\n\t\t\tnew attr.array.constructor( attr.count * attr.itemSize ),\n\t\t\tattr.itemSize,\n\t\t\tattr.normalized\n\t\t);\n\n\t\tconst morphAttributes = geometry.morphAttributes[ name ];\n\t\tif ( morphAttributes ) {\n\n\t\t\tif ( ! tmpMorphAttributes[ name ] ) tmpMorphAttributes[ name ] = [];\n\t\t\tmorphAttributes.forEach( ( morphAttr, i ) => {\n\n\t\t\t\tconst array = new morphAttr.array.constructor( morphAttr.count * morphAttr.itemSize );\n\t\t\t\ttmpMorphAttributes[ name ][ i ] = new morphAttr.constructor( array, morphAttr.itemSize, morphAttr.normalized );\n\n\t\t\t} );\n\n\t\t}\n\n\t}\n\n\t// convert the error tolerance to an amount of decimal places to truncate to\n\tconst halfTolerance = tolerance * 0.5;\n\tconst exponent = Math.log10( 1 / tolerance );\n\tconst hashMultiplier = Math.pow( 10, exponent );\n\tconst hashAdditive = halfTolerance * hashMultiplier;\n\tfor ( let i = 0; i < vertexCount; i ++ ) {\n\n\t\tconst index = indices ? indices.getX( i ) : i;\n\n\t\t// Generate a hash for the vertex attributes at the current index 'i'\n\t\tlet hash = '';\n\t\tfor ( let j = 0, l = attributeNames.length; j < l; j ++ ) {\n\n\t\t\tconst name = attributeNames[ j ];\n\t\t\tconst attribute = geometry.getAttribute( name );\n\t\t\tconst itemSize = attribute.itemSize;\n\n\t\t\tfor ( let k = 0; k < itemSize; k ++ ) {\n\n\t\t\t\t// double tilde truncates the decimal value\n\t\t\t\thash += `${ ~ ~ ( attribute[ getters[ k ] ]( index ) * hashMultiplier + hashAdditive ) },`;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Add another reference to the vertex if it's already\n\t\t// used by another index\n\t\tif ( hash in hashToIndex ) {\n\n\t\t\tnewIndices.push( hashToIndex[ hash ] );\n\n\t\t} else {\n\n\t\t\t// copy data to the new index in the temporary attributes\n\t\t\tfor ( let j = 0, l = attributeNames.length; j < l; j ++ ) {\n\n\t\t\t\tconst name = attributeNames[ j ];\n\t\t\t\tconst attribute = geometry.getAttribute( name );\n\t\t\t\tconst morphAttributes = geometry.morphAttributes[ name ];\n\t\t\t\tconst itemSize = attribute.itemSize;\n\t\t\t\tconst newArray = tmpAttributes[ name ];\n\t\t\t\tconst newMorphArrays = tmpMorphAttributes[ name ];\n\n\t\t\t\tfor ( let k = 0; k < itemSize; k ++ ) {\n\n\t\t\t\t\tconst getterFunc = getters[ k ];\n\t\t\t\t\tconst setterFunc = setters[ k ];\n\t\t\t\t\tnewArray[ setterFunc ]( nextIndex, attribute[ getterFunc ]( index ) );\n\n\t\t\t\t\tif ( morphAttributes ) {\n\n\t\t\t\t\t\tfor ( let m = 0, ml = morphAttributes.length; m < ml; m ++ ) {\n\n\t\t\t\t\t\t\tnewMorphArrays[ m ][ setterFunc ]( nextIndex, morphAttributes[ m ][ getterFunc ]( index ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\thashToIndex[ hash ] = nextIndex;\n\t\t\tnewIndices.push( nextIndex );\n\t\t\tnextIndex ++;\n\n\t\t}\n\n\t}\n\n\t// generate result BufferGeometry\n\tconst result = geometry.clone();\n\tfor ( const name in geometry.attributes ) {\n\n\t\tconst tmpAttribute = tmpAttributes[ name ];\n\n\t\tresult.setAttribute( name, new tmpAttribute.constructor(\n\t\t\ttmpAttribute.array.slice( 0, nextIndex * tmpAttribute.itemSize ),\n\t\t\ttmpAttribute.itemSize,\n\t\t\ttmpAttribute.normalized,\n\t\t) );\n\n\t\tif ( ! ( name in tmpMorphAttributes ) ) continue;\n\n\t\tfor ( let j = 0; j < tmpMorphAttributes[ name ].length; j ++ ) {\n\n\t\t\tconst tmpMorphAttribute = tmpMorphAttributes[ name ][ j ];\n\n\t\t\tresult.morphAttributes[ name ][ j ] = new tmpMorphAttribute.constructor(\n\t\t\t\ttmpMorphAttribute.array.slice( 0, nextIndex * tmpMorphAttribute.itemSize ),\n\t\t\t\ttmpMorphAttribute.itemSize,\n\t\t\t\ttmpMorphAttribute.normalized,\n\t\t\t);\n\n\t\t}\n\n\t}\n\n\t// indices\n\n\tresult.setIndex( newIndices );\n\n\treturn result;\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {number} drawMode\n * @return {BufferGeometry}\n */\nfunction toTrianglesDrawMode( geometry, drawMode ) {\n\n\tif ( drawMode === TrianglesDrawMode ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.' );\n\t\treturn geometry;\n\n\t}\n\n\tif ( drawMode === TriangleFanDrawMode || drawMode === TriangleStripDrawMode ) {\n\n\t\tlet index = geometry.getIndex();\n\n\t\t// generate index if not present\n\n\t\tif ( index === null ) {\n\n\t\t\tconst indices = [];\n\n\t\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\t\tif ( position !== undefined ) {\n\n\t\t\t\tfor ( let i = 0; i < position.count; i ++ ) {\n\n\t\t\t\t\tindices.push( i );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.setIndex( indices );\n\t\t\t\tindex = geometry.getIndex();\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.' );\n\t\t\t\treturn geometry;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst numberOfTriangles = index.count - 2;\n\t\tconst newIndices = [];\n\n\t\tif ( drawMode === TriangleFanDrawMode ) {\n\n\t\t\t// gl.TRIANGLE_FAN\n\n\t\t\tfor ( let i = 1; i <= numberOfTriangles; i ++ ) {\n\n\t\t\t\tnewIndices.push( index.getX( 0 ) );\n\t\t\t\tnewIndices.push( index.getX( i ) );\n\t\t\t\tnewIndices.push( index.getX( i + 1 ) );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// gl.TRIANGLE_STRIP\n\n\t\t\tfor ( let i = 0; i < numberOfTriangles; i ++ ) {\n\n\t\t\t\tif ( i % 2 === 0 ) {\n\n\t\t\t\t\tnewIndices.push( index.getX( i ) );\n\t\t\t\t\tnewIndices.push( index.getX( i + 1 ) );\n\t\t\t\t\tnewIndices.push( index.getX( i + 2 ) );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tnewIndices.push( index.getX( i + 2 ) );\n\t\t\t\t\tnewIndices.push( index.getX( i + 1 ) );\n\t\t\t\t\tnewIndices.push( index.getX( i ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( ( newIndices.length / 3 ) !== numberOfTriangles ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.' );\n\n\t\t}\n\n\t\t// build final geometry\n\n\t\tconst newGeometry = geometry.clone();\n\t\tnewGeometry.setIndex( newIndices );\n\t\tnewGeometry.clearGroups();\n\n\t\treturn newGeometry;\n\n\t} else {\n\n\t\tconsole.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:', drawMode );\n\t\treturn geometry;\n\n\t}\n\n}\n\n/**\n * Calculates the morphed attributes of a morphed/skinned BufferGeometry.\n * Helpful for Raytracing or Decals.\n * @param {Mesh | Line | Points} object An instance of Mesh, Line or Points.\n * @return {Object} An Object with original position/normal attributes and morphed ones.\n */\nfunction computeMorphedAttributes( object ) {\n\n\tconst _vA = new Vector3();\n\tconst _vB = new Vector3();\n\tconst _vC = new Vector3();\n\n\tconst _tempA = new Vector3();\n\tconst _tempB = new Vector3();\n\tconst _tempC = new Vector3();\n\n\tconst _morphA = new Vector3();\n\tconst _morphB = new Vector3();\n\tconst _morphC = new Vector3();\n\n\tfunction _calculateMorphedAttributeData(\n\t\tobject,\n\t\tattribute,\n\t\tmorphAttribute,\n\t\tmorphTargetsRelative,\n\t\ta,\n\t\tb,\n\t\tc,\n\t\tmodifiedAttributeArray\n\t) {\n\n\t\t_vA.fromBufferAttribute( attribute, a );\n\t\t_vB.fromBufferAttribute( attribute, b );\n\t\t_vC.fromBufferAttribute( attribute, c );\n\n\t\tconst morphInfluences = object.morphTargetInfluences;\n\n\t\tif ( morphAttribute && morphInfluences ) {\n\n\t\t\t_morphA.set( 0, 0, 0 );\n\t\t\t_morphB.set( 0, 0, 0 );\n\t\t\t_morphC.set( 0, 0, 0 );\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst influence = morphInfluences[ i ];\n\t\t\t\tconst morph = morphAttribute[ i ];\n\n\t\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t\t_tempA.fromBufferAttribute( morph, a );\n\t\t\t\t_tempB.fromBufferAttribute( morph, b );\n\t\t\t\t_tempC.fromBufferAttribute( morph, c );\n\n\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\t\t\t\t\t_morphB.addScaledVector( _tempB, influence );\n\t\t\t\t\t_morphC.addScaledVector( _tempC, influence );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA.sub( _vA ), influence );\n\t\t\t\t\t_morphB.addScaledVector( _tempB.sub( _vB ), influence );\n\t\t\t\t\t_morphC.addScaledVector( _tempC.sub( _vC ), influence );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_vA.add( _morphA );\n\t\t\t_vB.add( _morphB );\n\t\t\t_vC.add( _morphC );\n\n\t\t}\n\n\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\tobject.applyBoneTransform( a, _vA );\n\t\t\tobject.applyBoneTransform( b, _vB );\n\t\t\tobject.applyBoneTransform( c, _vC );\n\n\t\t}\n\n\t\tmodifiedAttributeArray[ a * 3 + 0 ] = _vA.x;\n\t\tmodifiedAttributeArray[ a * 3 + 1 ] = _vA.y;\n\t\tmodifiedAttributeArray[ a * 3 + 2 ] = _vA.z;\n\t\tmodifiedAttributeArray[ b * 3 + 0 ] = _vB.x;\n\t\tmodifiedAttributeArray[ b * 3 + 1 ] = _vB.y;\n\t\tmodifiedAttributeArray[ b * 3 + 2 ] = _vB.z;\n\t\tmodifiedAttributeArray[ c * 3 + 0 ] = _vC.x;\n\t\tmodifiedAttributeArray[ c * 3 + 1 ] = _vC.y;\n\t\tmodifiedAttributeArray[ c * 3 + 2 ] = _vC.z;\n\n\t}\n\n\tconst geometry = object.geometry;\n\tconst material = object.material;\n\n\tlet a, b, c;\n\tconst index = geometry.index;\n\tconst positionAttribute = geometry.attributes.position;\n\tconst morphPosition = geometry.morphAttributes.position;\n\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\tconst normalAttribute = geometry.attributes.normal;\n\tconst morphNormal = geometry.morphAttributes.position;\n\n\tconst groups = geometry.groups;\n\tconst drawRange = geometry.drawRange;\n\tlet i, j, il, jl;\n\tlet group;\n\tlet start, end;\n\n\tconst modifiedPosition = new Float32Array( positionAttribute.count * positionAttribute.itemSize );\n\tconst modifiedNormal = new Float32Array( normalAttribute.count * normalAttribute.itemSize );\n\n\tif ( index !== null ) {\n\n\t\t// indexed buffer geometry\n\n\t\tif ( Array.isArray( material ) ) {\n\n\t\t\tfor ( i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\tgroup = groups[ i ];\n\n\t\t\t\tstart = Math.max( group.start, drawRange.start );\n\t\t\t\tend = Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\ta = index.getX( j );\n\t\t\t\t\tb = index.getX( j + 1 );\n\t\t\t\t\tc = index.getX( j + 2 );\n\n\t\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\t\tobject,\n\t\t\t\t\t\tpositionAttribute,\n\t\t\t\t\t\tmorphPosition,\n\t\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\t\ta, b, c,\n\t\t\t\t\t\tmodifiedPosition\n\t\t\t\t\t);\n\n\t\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\t\tobject,\n\t\t\t\t\t\tnormalAttribute,\n\t\t\t\t\t\tmorphNormal,\n\t\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\t\ta, b, c,\n\t\t\t\t\t\tmodifiedNormal\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tstart = Math.max( 0, drawRange.start );\n\t\t\tend = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\ta = index.getX( i );\n\t\t\t\tb = index.getX( i + 1 );\n\t\t\t\tc = index.getX( i + 2 );\n\n\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\tobject,\n\t\t\t\t\tpositionAttribute,\n\t\t\t\t\tmorphPosition,\n\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\ta, b, c,\n\t\t\t\t\tmodifiedPosition\n\t\t\t\t);\n\n\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\tobject,\n\t\t\t\t\tnormalAttribute,\n\t\t\t\t\tmorphNormal,\n\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\ta, b, c,\n\t\t\t\t\tmodifiedNormal\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t} else {\n\n\t\t// non-indexed buffer geometry\n\n\t\tif ( Array.isArray( material ) ) {\n\n\t\t\tfor ( i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\tgroup = groups[ i ];\n\n\t\t\t\tstart = Math.max( group.start, drawRange.start );\n\t\t\t\tend = Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\ta = j;\n\t\t\t\t\tb = j + 1;\n\t\t\t\t\tc = j + 2;\n\n\t\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\t\tobject,\n\t\t\t\t\t\tpositionAttribute,\n\t\t\t\t\t\tmorphPosition,\n\t\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\t\ta, b, c,\n\t\t\t\t\t\tmodifiedPosition\n\t\t\t\t\t);\n\n\t\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\t\tobject,\n\t\t\t\t\t\tnormalAttribute,\n\t\t\t\t\t\tmorphNormal,\n\t\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\t\ta, b, c,\n\t\t\t\t\t\tmodifiedNormal\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tstart = Math.max( 0, drawRange.start );\n\t\t\tend = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\ta = i;\n\t\t\t\tb = i + 1;\n\t\t\t\tc = i + 2;\n\n\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\tobject,\n\t\t\t\t\tpositionAttribute,\n\t\t\t\t\tmorphPosition,\n\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\ta, b, c,\n\t\t\t\t\tmodifiedPosition\n\t\t\t\t);\n\n\t\t\t\t_calculateMorphedAttributeData(\n\t\t\t\t\tobject,\n\t\t\t\t\tnormalAttribute,\n\t\t\t\t\tmorphNormal,\n\t\t\t\t\tmorphTargetsRelative,\n\t\t\t\t\ta, b, c,\n\t\t\t\t\tmodifiedNormal\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tconst morphedPositionAttribute = new Float32BufferAttribute( modifiedPosition, 3 );\n\tconst morphedNormalAttribute = new Float32BufferAttribute( modifiedNormal, 3 );\n\n\treturn {\n\n\t\tpositionAttribute: positionAttribute,\n\t\tnormalAttribute: normalAttribute,\n\t\tmorphedPositionAttribute: morphedPositionAttribute,\n\t\tmorphedNormalAttribute: morphedNormalAttribute\n\n\t};\n\n}\n\nfunction mergeGroups( geometry ) {\n\n\tif ( geometry.groups.length === 0 ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometryUtils.mergeGroups(): No groups are defined. Nothing to merge.' );\n\t\treturn geometry;\n\n\t}\n\n\tlet groups = geometry.groups;\n\n\t// sort groups by material index\n\n\tgroups = groups.sort( ( a, b ) => {\n\n\t\tif ( a.materialIndex !== b.materialIndex ) return a.materialIndex - b.materialIndex;\n\n\t\treturn a.start - b.start;\n\n\t} );\n\n\t// create index for non-indexed geometries\n\n\tif ( geometry.getIndex() === null ) {\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\t\tconst indices = [];\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i += 3 ) {\n\n\t\t\tindices.push( i, i + 1, i + 2 );\n\n\t\t}\n\n\t\tgeometry.setIndex( indices );\n\n\t}\n\n\t// sort index\n\n\tconst index = geometry.getIndex();\n\n\tconst newIndices = [];\n\n\tfor ( let i = 0; i < groups.length; i ++ ) {\n\n\t\tconst group = groups[ i ];\n\n\t\tconst groupStart = group.start;\n\t\tconst groupLength = groupStart + group.count;\n\n\t\tfor ( let j = groupStart; j < groupLength; j ++ ) {\n\n\t\t\tnewIndices.push( index.getX( j ) );\n\n\t\t}\n\n\t}\n\n\tgeometry.dispose(); // Required to force buffer recreation\n\tgeometry.setIndex( newIndices );\n\n\t// update groups indices\n\n\tlet start = 0;\n\n\tfor ( let i = 0; i < groups.length; i ++ ) {\n\n\t\tconst group = groups[ i ];\n\n\t\tgroup.start = start;\n\t\tstart += group.count;\n\n\t}\n\n\t// merge groups\n\n\tlet currentGroup = groups[ 0 ];\n\n\tgeometry.groups = [ currentGroup ];\n\n\tfor ( let i = 1; i < groups.length; i ++ ) {\n\n\t\tconst group = groups[ i ];\n\n\t\tif ( currentGroup.materialIndex === group.materialIndex ) {\n\n\t\t\tcurrentGroup.count += group.count;\n\n\t\t} else {\n\n\t\t\tcurrentGroup = group;\n\t\t\tgeometry.groups.push( currentGroup );\n\n\t\t}\n\n\t}\n\n\treturn geometry;\n\n}\n\n\n/**\n * Modifies the supplied geometry if it is non-indexed, otherwise creates a new,\n * non-indexed geometry. Returns the geometry with smooth normals everywhere except\n * faces that meet at an angle greater than the crease angle.\n *\n * @param {BufferGeometry} geometry\n * @param {number} [creaseAngle]\n * @return {BufferGeometry}\n */\nfunction toCreasedNormals( geometry, creaseAngle = Math.PI / 3 /* 60 degrees */ ) {\n\n\tconst creaseDot = Math.cos( creaseAngle );\n\tconst hashMultiplier = ( 1 + 1e-10 ) * 1e2;\n\n\t// reusable vectors\n\tconst verts = [ new Vector3(), new Vector3(), new Vector3() ];\n\tconst tempVec1 = new Vector3();\n\tconst tempVec2 = new Vector3();\n\tconst tempNorm = new Vector3();\n\tconst tempNorm2 = new Vector3();\n\n\t// hashes a vector\n\tfunction hashVertex( v ) {\n\n\t\tconst x = ~ ~ ( v.x * hashMultiplier );\n\t\tconst y = ~ ~ ( v.y * hashMultiplier );\n\t\tconst z = ~ ~ ( v.z * hashMultiplier );\n\t\treturn `${x},${y},${z}`;\n\n\t}\n\n\t// BufferGeometry.toNonIndexed() warns if the geometry is non-indexed\n\t// and returns the original geometry\n\tconst resultGeometry = geometry.index ? geometry.toNonIndexed() : geometry;\n\tconst posAttr = resultGeometry.attributes.position;\n\tconst vertexMap = {};\n\n\t// find all the normals shared by commonly located vertices\n\tfor ( let i = 0, l = posAttr.count / 3; i < l; i ++ ) {\n\n\t\tconst i3 = 3 * i;\n\t\tconst a = verts[ 0 ].fromBufferAttribute( posAttr, i3 + 0 );\n\t\tconst b = verts[ 1 ].fromBufferAttribute( posAttr, i3 + 1 );\n\t\tconst c = verts[ 2 ].fromBufferAttribute( posAttr, i3 + 2 );\n\n\t\ttempVec1.subVectors( c, b );\n\t\ttempVec2.subVectors( a, b );\n\n\t\t// add the normal to the map for all vertices\n\t\tconst normal = new Vector3().crossVectors( tempVec1, tempVec2 ).normalize();\n\t\tfor ( let n = 0; n < 3; n ++ ) {\n\n\t\t\tconst vert = verts[ n ];\n\t\t\tconst hash = hashVertex( vert );\n\t\t\tif ( ! ( hash in vertexMap ) ) {\n\n\t\t\t\tvertexMap[ hash ] = [];\n\n\t\t\t}\n\n\t\t\tvertexMap[ hash ].push( normal );\n\n\t\t}\n\n\t}\n\n\t// average normals from all vertices that share a common location if they are within the\n\t// provided crease threshold\n\tconst normalArray = new Float32Array( posAttr.count * 3 );\n\tconst normAttr = new BufferAttribute( normalArray, 3, false );\n\tfor ( let i = 0, l = posAttr.count / 3; i < l; i ++ ) {\n\n\t\t// get the face normal for this vertex\n\t\tconst i3 = 3 * i;\n\t\tconst a = verts[ 0 ].fromBufferAttribute( posAttr, i3 + 0 );\n\t\tconst b = verts[ 1 ].fromBufferAttribute( posAttr, i3 + 1 );\n\t\tconst c = verts[ 2 ].fromBufferAttribute( posAttr, i3 + 2 );\n\n\t\ttempVec1.subVectors( c, b );\n\t\ttempVec2.subVectors( a, b );\n\n\t\ttempNorm.crossVectors( tempVec1, tempVec2 ).normalize();\n\n\t\t// average all normals that meet the threshold and set the normal value\n\t\tfor ( let n = 0; n < 3; n ++ ) {\n\n\t\t\tconst vert = verts[ n ];\n\t\t\tconst hash = hashVertex( vert );\n\t\t\tconst otherNormals = vertexMap[ hash ];\n\t\t\ttempNorm2.set( 0, 0, 0 );\n\n\t\t\tfor ( let k = 0, lk = otherNormals.length; k < lk; k ++ ) {\n\n\t\t\t\tconst otherNorm = otherNormals[ k ];\n\t\t\t\tif ( tempNorm.dot( otherNorm ) > creaseDot ) {\n\n\t\t\t\t\ttempNorm2.add( otherNorm );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttempNorm2.normalize();\n\t\t\tnormAttr.setXYZ( i3 + n, tempNorm2.x, tempNorm2.y, tempNorm2.z );\n\n\t\t}\n\n\t}\n\n\tresultGeometry.setAttribute( 'normal', normAttr );\n\treturn resultGeometry;\n\n}\n\nexport {\n\tcomputeMikkTSpaceTangents,\n\tmergeGeometries,\n\tmergeAttributes,\n\tinterleaveAttributes,\n\testimateBytesUsed,\n\tmergeVertices,\n\ttoTrianglesDrawMode,\n\tcomputeMorphedAttributes,\n\tmergeGroups,\n\ttoCreasedNormals\n};\n","import {\n\tAnimationClip,\n\tBone,\n\tBox3,\n\tBufferAttribute,\n\tBufferGeometry,\n\tClampToEdgeWrapping,\n\tColor,\n\tColorManagement,\n\tDirectionalLight,\n\tDoubleSide,\n\tFileLoader,\n\tFrontSide,\n\tGroup,\n\tImageBitmapLoader,\n\tInstancedMesh,\n\tInterleavedBuffer,\n\tInterleavedBufferAttribute,\n\tInterpolant,\n\tInterpolateDiscrete,\n\tInterpolateLinear,\n\tLine,\n\tLineBasicMaterial,\n\tLineLoop,\n\tLineSegments,\n\tLinearFilter,\n\tLinearMipmapLinearFilter,\n\tLinearMipmapNearestFilter,\n\tLinearSRGBColorSpace,\n\tLoader,\n\tLoaderUtils,\n\tMaterial,\n\tMathUtils,\n\tMatrix4,\n\tMesh,\n\tMeshBasicMaterial,\n\tMeshPhysicalMaterial,\n\tMeshStandardMaterial,\n\tMirroredRepeatWrapping,\n\tNearestFilter,\n\tNearestMipmapLinearFilter,\n\tNearestMipmapNearestFilter,\n\tNumberKeyframeTrack,\n\tObject3D,\n\tOrthographicCamera,\n\tPerspectiveCamera,\n\tPointLight,\n\tPoints,\n\tPointsMaterial,\n\tPropertyBinding,\n\tQuaternion,\n\tQuaternionKeyframeTrack,\n\tRepeatWrapping,\n\tSkeleton,\n\tSkinnedMesh,\n\tSphere,\n\tSpotLight,\n\tTexture,\n\tTextureLoader,\n\tTriangleFanDrawMode,\n\tTriangleStripDrawMode,\n\tVector2,\n\tVector3,\n\tVectorKeyframeTrack,\n\tSRGBColorSpace,\n\tInstancedBufferAttribute\n} from 'three';\nimport { toTrianglesDrawMode } from '../utils/BufferGeometryUtils.js';\n\nclass GLTFLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.dracoLoader = null;\n\t\tthis.ktx2Loader = null;\n\t\tthis.meshoptDecoder = null;\n\n\t\tthis.pluginCallbacks = [];\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsClearcoatExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsDispersionExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureBasisUExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureWebPExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureAVIFExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsSheenExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsTransmissionExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsVolumeExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsIorExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsEmissiveStrengthExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsSpecularExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsIridescenceExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsAnisotropyExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsBumpExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFLightsExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMeshoptCompression( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMeshGpuInstancing( parser );\n\n\t\t} );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet resourcePath;\n\n\t\tif ( this.resourcePath !== '' ) {\n\n\t\t\tresourcePath = this.resourcePath;\n\n\t\t} else if ( this.path !== '' ) {\n\n\t\t\t// If a base path is set, resources will be relative paths from that plus the relative path of the gltf file\n\t\t\t// Example path = 'https://my-cnd-server.com/', url = 'assets/models/model.gltf'\n\t\t\t// resourcePath = 'https://my-cnd-server.com/assets/models/'\n\t\t\t// referenced resource 'model.bin' will be loaded from 'https://my-cnd-server.com/assets/models/model.bin'\n\t\t\t// referenced resource '../textures/texture.png' will be loaded from 'https://my-cnd-server.com/assets/textures/texture.png'\n\t\t\tconst relativeUrl = LoaderUtils.extractUrlBase( url );\n\t\t\tresourcePath = LoaderUtils.resolveURL( relativeUrl, this.path );\n\n\t\t} else {\n\n\t\t\tresourcePath = LoaderUtils.extractUrlBase( url );\n\n\t\t}\n\n\t\t// Tells the LoadingManager to track an extra item, which resolves after\n\t\t// the model is fully loaded. This means the count of items loaded will\n\t\t// be incorrect, but ensures manager.onLoad() does not fire early.\n\t\tthis.manager.itemStart( url );\n\n\t\tconst _onError = function ( e ) {\n\n\t\t\tif ( onError ) {\n\n\t\t\t\tonError( e );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( e );\n\n\t\t\t}\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t};\n\n\t\tconst loader = new FileLoader( this.manager );\n\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tloader.load( url, function ( data ) {\n\n\t\t\ttry {\n\n\t\t\t\tscope.parse( data, resourcePath, function ( gltf ) {\n\n\t\t\t\t\tonLoad( gltf );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t}, _onError );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\t_onError( e );\n\n\t\t\t}\n\n\t\t}, onProgress, _onError );\n\n\t}\n\n\tsetDRACOLoader( dracoLoader ) {\n\n\t\tthis.dracoLoader = dracoLoader;\n\t\treturn this;\n\n\t}\n\n\tsetKTX2Loader( ktx2Loader ) {\n\n\t\tthis.ktx2Loader = ktx2Loader;\n\t\treturn this;\n\n\t}\n\n\tsetMeshoptDecoder( meshoptDecoder ) {\n\n\t\tthis.meshoptDecoder = meshoptDecoder;\n\t\treturn this;\n\n\t}\n\n\tregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) === - 1 ) {\n\n\t\t\tthis.pluginCallbacks.push( callback );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) !== - 1 ) {\n\n\t\t\tthis.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tparse( data, path, onLoad, onError ) {\n\n\t\tlet json;\n\t\tconst extensions = {};\n\t\tconst plugins = {};\n\t\tconst textDecoder = new TextDecoder();\n\n\t\tif ( typeof data === 'string' ) {\n\n\t\t\tjson = JSON.parse( data );\n\n\t\t} else if ( data instanceof ArrayBuffer ) {\n\n\t\t\tconst magic = textDecoder.decode( new Uint8Array( data, 0, 4 ) );\n\n\t\t\tif ( magic === BINARY_EXTENSION_HEADER_MAGIC ) {\n\n\t\t\t\ttry {\n\n\t\t\t\t\textensions[ EXTENSIONS.KHR_BINARY_GLTF ] = new GLTFBinaryExtension( data );\n\n\t\t\t\t} catch ( error ) {\n\n\t\t\t\t\tif ( onError ) onError( error );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tjson = JSON.parse( extensions[ EXTENSIONS.KHR_BINARY_GLTF ].content );\n\n\t\t\t} else {\n\n\t\t\t\tjson = JSON.parse( textDecoder.decode( data ) );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tjson = data;\n\n\t\t}\n\n\t\tif ( json.asset === undefined || json.asset.version[ 0 ] < 2 ) {\n\n\t\t\tif ( onError ) onError( new Error( 'THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.' ) );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst parser = new GLTFParser( json, {\n\n\t\t\tpath: path || this.resourcePath || '',\n\t\t\tcrossOrigin: this.crossOrigin,\n\t\t\trequestHeader: this.requestHeader,\n\t\t\tmanager: this.manager,\n\t\t\tktx2Loader: this.ktx2Loader,\n\t\t\tmeshoptDecoder: this.meshoptDecoder\n\n\t\t} );\n\n\t\tparser.fileLoader.setRequestHeader( this.requestHeader );\n\n\t\tfor ( let i = 0; i < this.pluginCallbacks.length; i ++ ) {\n\n\t\t\tconst plugin = this.pluginCallbacks[ i ]( parser );\n\n\t\t\tif ( ! plugin.name ) console.error( 'THREE.GLTFLoader: Invalid plugin found: missing name' );\n\n\t\t\tplugins[ plugin.name ] = plugin;\n\n\t\t\t// Workaround to avoid determining as unknown extension\n\t\t\t// in addUnknownExtensionsToUserData().\n\t\t\t// Remove this workaround if we move all the existing\n\t\t\t// extension handlers to plugin system\n\t\t\textensions[ plugin.name ] = true;\n\n\t\t}\n\n\t\tif ( json.extensionsUsed ) {\n\n\t\t\tfor ( let i = 0; i < json.extensionsUsed.length; ++ i ) {\n\n\t\t\t\tconst extensionName = json.extensionsUsed[ i ];\n\t\t\t\tconst extensionsRequired = json.extensionsRequired || [];\n\n\t\t\t\tswitch ( extensionName ) {\n\n\t\t\t\t\tcase EXTENSIONS.KHR_MATERIALS_UNLIT:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFMaterialsUnlitExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_DRACO_MESH_COMPRESSION:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFDracoMeshCompressionExtension( json, this.dracoLoader );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_TEXTURE_TRANSFORM:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFTextureTransformExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_MESH_QUANTIZATION:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFMeshQuantizationExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( extensionsRequired.indexOf( extensionName ) >= 0 && plugins[ extensionName ] === undefined ) {\n\n\t\t\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Unknown extension \"' + extensionName + '\".' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tparser.setExtensions( extensions );\n\t\tparser.setPlugins( plugins );\n\t\tparser.parse( onLoad, onError );\n\n\t}\n\n\tparseAsync( data, path ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.parse( data, path, resolve, reject );\n\n\t\t} );\n\n\t}\n\n}\n\n/* GLTFREGISTRY */\n\nfunction GLTFRegistry() {\n\n\tlet objects = {};\n\n\treturn\t{\n\n\t\tget: function ( key ) {\n\n\t\t\treturn objects[ key ];\n\n\t\t},\n\n\t\tadd: function ( key, object ) {\n\n\t\t\tobjects[ key ] = object;\n\n\t\t},\n\n\t\tremove: function ( key ) {\n\n\t\t\tdelete objects[ key ];\n\n\t\t},\n\n\t\tremoveAll: function () {\n\n\t\t\tobjects = {};\n\n\t\t}\n\n\t};\n\n}\n\n/*********************************/\n/********** EXTENSIONS ***********/\n/*********************************/\n\nconst EXTENSIONS = {\n\tKHR_BINARY_GLTF: 'KHR_binary_glTF',\n\tKHR_DRACO_MESH_COMPRESSION: 'KHR_draco_mesh_compression',\n\tKHR_LIGHTS_PUNCTUAL: 'KHR_lights_punctual',\n\tKHR_MATERIALS_CLEARCOAT: 'KHR_materials_clearcoat',\n\tKHR_MATERIALS_DISPERSION: 'KHR_materials_dispersion',\n\tKHR_MATERIALS_IOR: 'KHR_materials_ior',\n\tKHR_MATERIALS_SHEEN: 'KHR_materials_sheen',\n\tKHR_MATERIALS_SPECULAR: 'KHR_materials_specular',\n\tKHR_MATERIALS_TRANSMISSION: 'KHR_materials_transmission',\n\tKHR_MATERIALS_IRIDESCENCE: 'KHR_materials_iridescence',\n\tKHR_MATERIALS_ANISOTROPY: 'KHR_materials_anisotropy',\n\tKHR_MATERIALS_UNLIT: 'KHR_materials_unlit',\n\tKHR_MATERIALS_VOLUME: 'KHR_materials_volume',\n\tKHR_TEXTURE_BASISU: 'KHR_texture_basisu',\n\tKHR_TEXTURE_TRANSFORM: 'KHR_texture_transform',\n\tKHR_MESH_QUANTIZATION: 'KHR_mesh_quantization',\n\tKHR_MATERIALS_EMISSIVE_STRENGTH: 'KHR_materials_emissive_strength',\n\tEXT_MATERIALS_BUMP: 'EXT_materials_bump',\n\tEXT_TEXTURE_WEBP: 'EXT_texture_webp',\n\tEXT_TEXTURE_AVIF: 'EXT_texture_avif',\n\tEXT_MESHOPT_COMPRESSION: 'EXT_meshopt_compression',\n\tEXT_MESH_GPU_INSTANCING: 'EXT_mesh_gpu_instancing'\n};\n\n/**\n * Punctual Lights Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual\n */\nclass GLTFLightsExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_LIGHTS_PUNCTUAL;\n\n\t\t// Object3D instance caches\n\t\tthis.cache = { refs: {}, uses: {} };\n\n\t}\n\n\t_markDefs() {\n\n\t\tconst parser = this.parser;\n\t\tconst nodeDefs = this.parser.json.nodes || [];\n\n\t\tfor ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) {\n\n\t\t\tconst nodeDef = nodeDefs[ nodeIndex ];\n\n\t\t\tif ( nodeDef.extensions\n\t\t\t\t\t&& nodeDef.extensions[ this.name ]\n\t\t\t\t\t&& nodeDef.extensions[ this.name ].light !== undefined ) {\n\n\t\t\t\tparser._addNodeRef( this.cache, nodeDef.extensions[ this.name ].light );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_loadLight( lightIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst cacheKey = 'light:' + lightIndex;\n\t\tlet dependency = parser.cache.get( cacheKey );\n\n\t\tif ( dependency ) return dependency;\n\n\t\tconst json = parser.json;\n\t\tconst extensions = ( json.extensions && json.extensions[ this.name ] ) || {};\n\t\tconst lightDefs = extensions.lights || [];\n\t\tconst lightDef = lightDefs[ lightIndex ];\n\t\tlet lightNode;\n\n\t\tconst color = new Color( 0xffffff );\n\n\t\tif ( lightDef.color !== undefined ) color.setRGB( lightDef.color[ 0 ], lightDef.color[ 1 ], lightDef.color[ 2 ], LinearSRGBColorSpace );\n\n\t\tconst range = lightDef.range !== undefined ? lightDef.range : 0;\n\n\t\tswitch ( lightDef.type ) {\n\n\t\t\tcase 'directional':\n\t\t\t\tlightNode = new DirectionalLight( color );\n\t\t\t\tlightNode.target.position.set( 0, 0, - 1 );\n\t\t\t\tlightNode.add( lightNode.target );\n\t\t\t\tbreak;\n\n\t\t\tcase 'point':\n\t\t\t\tlightNode = new PointLight( color );\n\t\t\t\tlightNode.distance = range;\n\t\t\t\tbreak;\n\n\t\t\tcase 'spot':\n\t\t\t\tlightNode = new SpotLight( color );\n\t\t\t\tlightNode.distance = range;\n\t\t\t\t// Handle spotlight properties.\n\t\t\t\tlightDef.spot = lightDef.spot || {};\n\t\t\t\tlightDef.spot.innerConeAngle = lightDef.spot.innerConeAngle !== undefined ? lightDef.spot.innerConeAngle : 0;\n\t\t\t\tlightDef.spot.outerConeAngle = lightDef.spot.outerConeAngle !== undefined ? lightDef.spot.outerConeAngle : Math.PI / 4.0;\n\t\t\t\tlightNode.angle = lightDef.spot.outerConeAngle;\n\t\t\t\tlightNode.penumbra = 1.0 - lightDef.spot.innerConeAngle / lightDef.spot.outerConeAngle;\n\t\t\t\tlightNode.target.position.set( 0, 0, - 1 );\n\t\t\t\tlightNode.add( lightNode.target );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: Unexpected light type: ' + lightDef.type );\n\n\t\t}\n\n\t\t// Some lights (e.g. spot) default to a position other than the origin. Reset the position\n\t\t// here, because node-level parsing will only override position if explicitly specified.\n\t\tlightNode.position.set( 0, 0, 0 );\n\n\t\tlightNode.decay = 2;\n\n\t\tassignExtrasToUserData( lightNode, lightDef );\n\n\t\tif ( lightDef.intensity !== undefined ) lightNode.intensity = lightDef.intensity;\n\n\t\tlightNode.name = parser.createUniqueName( lightDef.name || ( 'light_' + lightIndex ) );\n\n\t\tdependency = Promise.resolve( lightNode );\n\n\t\tparser.cache.add( cacheKey, dependency );\n\n\t\treturn dependency;\n\n\t}\n\n\tgetDependency( type, index ) {\n\n\t\tif ( type !== 'light' ) return;\n\n\t\treturn this._loadLight( index );\n\n\t}\n\n\tcreateNodeAttachment( nodeIndex ) {\n\n\t\tconst self = this;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\t\tconst lightDef = ( nodeDef.extensions && nodeDef.extensions[ this.name ] ) || {};\n\t\tconst lightIndex = lightDef.light;\n\n\t\tif ( lightIndex === undefined ) return null;\n\n\t\treturn this._loadLight( lightIndex ).then( function ( light ) {\n\n\t\t\treturn parser._getNodeRef( self.cache, lightIndex, light );\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * Unlit Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit\n */\nclass GLTFMaterialsUnlitExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_UNLIT;\n\n\t}\n\n\tgetMaterialType() {\n\n\t\treturn MeshBasicMaterial;\n\n\t}\n\n\textendParams( materialParams, materialDef, parser ) {\n\n\t\tconst pending = [];\n\n\t\tmaterialParams.color = new Color( 1.0, 1.0, 1.0 );\n\t\tmaterialParams.opacity = 1.0;\n\n\t\tconst metallicRoughness = materialDef.pbrMetallicRoughness;\n\n\t\tif ( metallicRoughness ) {\n\n\t\t\tif ( Array.isArray( metallicRoughness.baseColorFactor ) ) {\n\n\t\t\t\tconst array = metallicRoughness.baseColorFactor;\n\n\t\t\t\tmaterialParams.color.setRGB( array[ 0 ], array[ 1 ], array[ 2 ], LinearSRGBColorSpace );\n\t\t\t\tmaterialParams.opacity = array[ 3 ];\n\n\t\t\t}\n\n\t\t\tif ( metallicRoughness.baseColorTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials Emissive Strength Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/blob/5768b3ce0ef32bc39cdf1bef10b948586635ead3/extensions/2.0/Khronos/KHR_materials_emissive_strength/README.md\n */\nclass GLTFMaterialsEmissiveStrengthExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_EMISSIVE_STRENGTH;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst emissiveStrength = materialDef.extensions[ this.name ].emissiveStrength;\n\n\t\tif ( emissiveStrength !== undefined ) {\n\n\t\t\tmaterialParams.emissiveIntensity = emissiveStrength;\n\n\t\t}\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Clearcoat Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_clearcoat\n */\nclass GLTFMaterialsClearcoatExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_CLEARCOAT;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.clearcoatFactor !== undefined ) {\n\n\t\t\tmaterialParams.clearcoat = extension.clearcoatFactor;\n\n\t\t}\n\n\t\tif ( extension.clearcoatTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatMap', extension.clearcoatTexture ) );\n\n\t\t}\n\n\t\tif ( extension.clearcoatRoughnessFactor !== undefined ) {\n\n\t\t\tmaterialParams.clearcoatRoughness = extension.clearcoatRoughnessFactor;\n\n\t\t}\n\n\t\tif ( extension.clearcoatRoughnessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatRoughnessMap', extension.clearcoatRoughnessTexture ) );\n\n\t\t}\n\n\t\tif ( extension.clearcoatNormalTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatNormalMap', extension.clearcoatNormalTexture ) );\n\n\t\t\tif ( extension.clearcoatNormalTexture.scale !== undefined ) {\n\n\t\t\t\tconst scale = extension.clearcoatNormalTexture.scale;\n\n\t\t\t\tmaterialParams.clearcoatNormalScale = new Vector2( scale, scale );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials dispersion Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_dispersion\n */\nclass GLTFMaterialsDispersionExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_DISPERSION;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.dispersion = extension.dispersion !== undefined ? extension.dispersion : 0;\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Iridescence Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_iridescence\n */\nclass GLTFMaterialsIridescenceExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_IRIDESCENCE;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.iridescenceFactor !== undefined ) {\n\n\t\t\tmaterialParams.iridescence = extension.iridescenceFactor;\n\n\t\t}\n\n\t\tif ( extension.iridescenceTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'iridescenceMap', extension.iridescenceTexture ) );\n\n\t\t}\n\n\t\tif ( extension.iridescenceIor !== undefined ) {\n\n\t\t\tmaterialParams.iridescenceIOR = extension.iridescenceIor;\n\n\t\t}\n\n\t\tif ( materialParams.iridescenceThicknessRange === undefined ) {\n\n\t\t\tmaterialParams.iridescenceThicknessRange = [ 100, 400 ];\n\n\t\t}\n\n\t\tif ( extension.iridescenceThicknessMinimum !== undefined ) {\n\n\t\t\tmaterialParams.iridescenceThicknessRange[ 0 ] = extension.iridescenceThicknessMinimum;\n\n\t\t}\n\n\t\tif ( extension.iridescenceThicknessMaximum !== undefined ) {\n\n\t\t\tmaterialParams.iridescenceThicknessRange[ 1 ] = extension.iridescenceThicknessMaximum;\n\n\t\t}\n\n\t\tif ( extension.iridescenceThicknessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'iridescenceThicknessMap', extension.iridescenceThicknessTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Sheen Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_sheen\n */\nclass GLTFMaterialsSheenExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_SHEEN;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tmaterialParams.sheenColor = new Color( 0, 0, 0 );\n\t\tmaterialParams.sheenRoughness = 0;\n\t\tmaterialParams.sheen = 1;\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.sheenColorFactor !== undefined ) {\n\n\t\t\tconst colorFactor = extension.sheenColorFactor;\n\t\t\tmaterialParams.sheenColor.setRGB( colorFactor[ 0 ], colorFactor[ 1 ], colorFactor[ 2 ], LinearSRGBColorSpace );\n\n\t\t}\n\n\t\tif ( extension.sheenRoughnessFactor !== undefined ) {\n\n\t\t\tmaterialParams.sheenRoughness = extension.sheenRoughnessFactor;\n\n\t\t}\n\n\t\tif ( extension.sheenColorTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'sheenColorMap', extension.sheenColorTexture, SRGBColorSpace ) );\n\n\t\t}\n\n\t\tif ( extension.sheenRoughnessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'sheenRoughnessMap', extension.sheenRoughnessTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Transmission Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_transmission\n * Draft: https://github.com/KhronosGroup/glTF/pull/1698\n */\nclass GLTFMaterialsTransmissionExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_TRANSMISSION;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.transmissionFactor !== undefined ) {\n\n\t\t\tmaterialParams.transmission = extension.transmissionFactor;\n\n\t\t}\n\n\t\tif ( extension.transmissionTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'transmissionMap', extension.transmissionTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials Volume Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_volume\n */\nclass GLTFMaterialsVolumeExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_VOLUME;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.thickness = extension.thicknessFactor !== undefined ? extension.thicknessFactor : 0;\n\n\t\tif ( extension.thicknessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'thicknessMap', extension.thicknessTexture ) );\n\n\t\t}\n\n\t\tmaterialParams.attenuationDistance = extension.attenuationDistance || Infinity;\n\n\t\tconst colorArray = extension.attenuationColor || [ 1, 1, 1 ];\n\t\tmaterialParams.attenuationColor = new Color().setRGB( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ], LinearSRGBColorSpace );\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials ior Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior\n */\nclass GLTFMaterialsIorExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_IOR;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.ior = extension.ior !== undefined ? extension.ior : 1.5;\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Materials specular Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_specular\n */\nclass GLTFMaterialsSpecularExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_SPECULAR;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.specularIntensity = extension.specularFactor !== undefined ? extension.specularFactor : 1.0;\n\n\t\tif ( extension.specularTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'specularIntensityMap', extension.specularTexture ) );\n\n\t\t}\n\n\t\tconst colorArray = extension.specularColorFactor || [ 1, 1, 1 ];\n\t\tmaterialParams.specularColor = new Color().setRGB( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ], LinearSRGBColorSpace );\n\n\t\tif ( extension.specularColorTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'specularColorMap', extension.specularColorTexture, SRGBColorSpace ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n\n/**\n * Materials bump Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_materials_bump\n */\nclass GLTFMaterialsBumpExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_MATERIALS_BUMP;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.bumpScale = extension.bumpFactor !== undefined ? extension.bumpFactor : 1.0;\n\n\t\tif ( extension.bumpTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'bumpMap', extension.bumpTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials anisotropy Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_anisotropy\n */\nclass GLTFMaterialsAnisotropyExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_ANISOTROPY;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.anisotropyStrength !== undefined ) {\n\n\t\t\tmaterialParams.anisotropy = extension.anisotropyStrength;\n\n\t\t}\n\n\t\tif ( extension.anisotropyRotation !== undefined ) {\n\n\t\t\tmaterialParams.anisotropyRotation = extension.anisotropyRotation;\n\n\t\t}\n\n\t\tif ( extension.anisotropyTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'anisotropyMap', extension.anisotropyTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * BasisU Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_basisu\n */\nclass GLTFTextureBasisUExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_TEXTURE_BASISU;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ this.name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ this.name ];\n\t\tconst loader = parser.options.ktx2Loader;\n\n\t\tif ( ! loader ) {\n\n\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures' );\n\n\t\t\t} else {\n\n\t\t\t\t// Assumes that the extension is optional and that a fallback texture is present\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t}\n\n}\n\n/**\n * WebP Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_webp\n */\nclass GLTFTextureWebPExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_TEXTURE_WEBP;\n\t\tthis.isSupported = null;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst name = this.name;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ name ];\n\t\tconst source = json.images[ extension.source ];\n\n\t\tlet loader = parser.textureLoader;\n\t\tif ( source.uri ) {\n\n\t\t\tconst handler = parser.options.manager.getHandler( source.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn this.detectSupport().then( function ( isSupported ) {\n\n\t\t\tif ( isSupported ) return parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( name ) >= 0 ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: WebP required by asset but unsupported.' );\n\n\t\t\t}\n\n\t\t\t// Fall back to PNG or JPEG.\n\t\t\treturn parser.loadTexture( textureIndex );\n\n\t\t} );\n\n\t}\n\n\tdetectSupport() {\n\n\t\tif ( ! this.isSupported ) {\n\n\t\t\tthis.isSupported = new Promise( function ( resolve ) {\n\n\t\t\t\tconst image = new Image();\n\n\t\t\t\t// Lossy test image. Support for lossy images doesn't guarantee support for all\n\t\t\t\t// WebP images, unfortunately.\n\t\t\t\timage.src = 'data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA';\n\n\t\t\t\timage.onload = image.onerror = function () {\n\n\t\t\t\t\tresolve( image.height === 1 );\n\n\t\t\t\t};\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn this.isSupported;\n\n\t}\n\n}\n\n/**\n * AVIF Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_avif\n */\nclass GLTFTextureAVIFExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_TEXTURE_AVIF;\n\t\tthis.isSupported = null;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst name = this.name;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ name ];\n\t\tconst source = json.images[ extension.source ];\n\n\t\tlet loader = parser.textureLoader;\n\t\tif ( source.uri ) {\n\n\t\t\tconst handler = parser.options.manager.getHandler( source.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn this.detectSupport().then( function ( isSupported ) {\n\n\t\t\tif ( isSupported ) return parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( name ) >= 0 ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: AVIF required by asset but unsupported.' );\n\n\t\t\t}\n\n\t\t\t// Fall back to PNG or JPEG.\n\t\t\treturn parser.loadTexture( textureIndex );\n\n\t\t} );\n\n\t}\n\n\tdetectSupport() {\n\n\t\tif ( ! this.isSupported ) {\n\n\t\t\tthis.isSupported = new Promise( function ( resolve ) {\n\n\t\t\t\tconst image = new Image();\n\n\t\t\t\t// Lossy test image.\n\t\t\t\timage.src = 'data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=';\n\t\t\t\timage.onload = image.onerror = function () {\n\n\t\t\t\t\tresolve( image.height === 1 );\n\n\t\t\t\t};\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn this.isSupported;\n\n\t}\n\n}\n\n/**\n * meshopt BufferView Compression Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_meshopt_compression\n */\nclass GLTFMeshoptCompression {\n\n\tconstructor( parser ) {\n\n\t\tthis.name = EXTENSIONS.EXT_MESHOPT_COMPRESSION;\n\t\tthis.parser = parser;\n\n\t}\n\n\tloadBufferView( index ) {\n\n\t\tconst json = this.parser.json;\n\t\tconst bufferView = json.bufferViews[ index ];\n\n\t\tif ( bufferView.extensions && bufferView.extensions[ this.name ] ) {\n\n\t\t\tconst extensionDef = bufferView.extensions[ this.name ];\n\n\t\t\tconst buffer = this.parser.getDependency( 'buffer', extensionDef.buffer );\n\t\t\tconst decoder = this.parser.options.meshoptDecoder;\n\n\t\t\tif ( ! decoder || ! decoder.supported ) {\n\n\t\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Assumes that the extension is optional and that fallback buffer data is present\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn buffer.then( function ( res ) {\n\n\t\t\t\tconst byteOffset = extensionDef.byteOffset || 0;\n\t\t\t\tconst byteLength = extensionDef.byteLength || 0;\n\n\t\t\t\tconst count = extensionDef.count;\n\t\t\t\tconst stride = extensionDef.byteStride;\n\n\t\t\t\tconst source = new Uint8Array( res, byteOffset, byteLength );\n\n\t\t\t\tif ( decoder.decodeGltfBufferAsync ) {\n\n\t\t\t\t\treturn decoder.decodeGltfBufferAsync( count, stride, source, extensionDef.mode, extensionDef.filter ).then( function ( res ) {\n\n\t\t\t\t\t\treturn res.buffer;\n\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Support for MeshoptDecoder 0.18 or earlier, without decodeGltfBufferAsync\n\t\t\t\t\treturn decoder.ready.then( function () {\n\n\t\t\t\t\t\tconst result = new ArrayBuffer( count * stride );\n\t\t\t\t\t\tdecoder.decodeGltfBuffer( new Uint8Array( result ), count, stride, source, extensionDef.mode, extensionDef.filter );\n\t\t\t\t\t\treturn result;\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * GPU Instancing Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing\n *\n */\nclass GLTFMeshGpuInstancing {\n\n\tconstructor( parser ) {\n\n\t\tthis.name = EXTENSIONS.EXT_MESH_GPU_INSTANCING;\n\t\tthis.parser = parser;\n\n\t}\n\n\tcreateNodeMesh( nodeIndex ) {\n\n\t\tconst json = this.parser.json;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tif ( ! nodeDef.extensions || ! nodeDef.extensions[ this.name ] ||\n\t\t\tnodeDef.mesh === undefined ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst meshDef = json.meshes[ nodeDef.mesh ];\n\n\t\t// No Points or Lines + Instancing support yet\n\n\t\tfor ( const primitive of meshDef.primitives ) {\n\n\t\t\tif ( primitive.mode !== WEBGL_CONSTANTS.TRIANGLES &&\n\t\t\t\t primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_STRIP &&\n\t\t\t\t primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_FAN &&\n\t\t\t\t primitive.mode !== undefined ) {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst extensionDef = nodeDef.extensions[ this.name ];\n\t\tconst attributesDef = extensionDef.attributes;\n\n\t\t// @TODO: Can we support InstancedMesh + SkinnedMesh?\n\n\t\tconst pending = [];\n\t\tconst attributes = {};\n\n\t\tfor ( const key in attributesDef ) {\n\n\t\t\tpending.push( this.parser.getDependency( 'accessor', attributesDef[ key ] ).then( accessor => {\n\n\t\t\t\tattributes[ key ] = accessor;\n\t\t\t\treturn attributes[ key ];\n\n\t\t\t} ) );\n\n\t\t}\n\n\t\tif ( pending.length < 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tpending.push( this.parser.createNodeMesh( nodeIndex ) );\n\n\t\treturn Promise.all( pending ).then( results => {\n\n\t\t\tconst nodeObject = results.pop();\n\t\t\tconst meshes = nodeObject.isGroup ? nodeObject.children : [ nodeObject ];\n\t\t\tconst count = results[ 0 ].count; // All attribute counts should be same\n\t\t\tconst instancedMeshes = [];\n\n\t\t\tfor ( const mesh of meshes ) {\n\n\t\t\t\t// Temporal variables\n\t\t\t\tconst m = new Matrix4();\n\t\t\t\tconst p = new Vector3();\n\t\t\t\tconst q = new Quaternion();\n\t\t\t\tconst s = new Vector3( 1, 1, 1 );\n\n\t\t\t\tconst instancedMesh = new InstancedMesh( mesh.geometry, mesh.material, count );\n\n\t\t\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\t\t\tif ( attributes.TRANSLATION ) {\n\n\t\t\t\t\t\tp.fromBufferAttribute( attributes.TRANSLATION, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attributes.ROTATION ) {\n\n\t\t\t\t\t\tq.fromBufferAttribute( attributes.ROTATION, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attributes.SCALE ) {\n\n\t\t\t\t\t\ts.fromBufferAttribute( attributes.SCALE, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tinstancedMesh.setMatrixAt( i, m.compose( p, q, s ) );\n\n\t\t\t\t}\n\n\t\t\t\t// Add instance attributes to the geometry, excluding TRS.\n\t\t\t\tfor ( const attributeName in attributes ) {\n\n\t\t\t\t\tif ( attributeName === '_COLOR_0' ) {\n\n\t\t\t\t\t\tconst attr = attributes[ attributeName ];\n\t\t\t\t\t\tinstancedMesh.instanceColor = new InstancedBufferAttribute( attr.array, attr.itemSize, attr.normalized );\n\n\t\t\t\t\t} else if ( attributeName !== 'TRANSLATION' &&\n\t\t\t\t\t\t attributeName !== 'ROTATION' &&\n\t\t\t\t\t\t attributeName !== 'SCALE' ) {\n\n\t\t\t\t\t\tmesh.geometry.setAttribute( attributeName, attributes[ attributeName ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// Just in case\n\t\t\t\tObject3D.prototype.copy.call( instancedMesh, mesh );\n\n\t\t\t\tthis.parser.assignFinalMaterial( instancedMesh );\n\n\t\t\t\tinstancedMeshes.push( instancedMesh );\n\n\t\t\t}\n\n\t\t\tif ( nodeObject.isGroup ) {\n\n\t\t\t\tnodeObject.clear();\n\n\t\t\t\tnodeObject.add( ... instancedMeshes );\n\n\t\t\t\treturn nodeObject;\n\n\t\t\t}\n\n\t\t\treturn instancedMeshes[ 0 ];\n\n\t\t} );\n\n\t}\n\n}\n\n/* BINARY EXTENSION */\nconst BINARY_EXTENSION_HEADER_MAGIC = 'glTF';\nconst BINARY_EXTENSION_HEADER_LENGTH = 12;\nconst BINARY_EXTENSION_CHUNK_TYPES = { JSON: 0x4E4F534A, BIN: 0x004E4942 };\n\nclass GLTFBinaryExtension {\n\n\tconstructor( data ) {\n\n\t\tthis.name = EXTENSIONS.KHR_BINARY_GLTF;\n\t\tthis.content = null;\n\t\tthis.body = null;\n\n\t\tconst headerView = new DataView( data, 0, BINARY_EXTENSION_HEADER_LENGTH );\n\t\tconst textDecoder = new TextDecoder();\n\n\t\tthis.header = {\n\t\t\tmagic: textDecoder.decode( new Uint8Array( data.slice( 0, 4 ) ) ),\n\t\t\tversion: headerView.getUint32( 4, true ),\n\t\t\tlength: headerView.getUint32( 8, true )\n\t\t};\n\n\t\tif ( this.header.magic !== BINARY_EXTENSION_HEADER_MAGIC ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Unsupported glTF-Binary header.' );\n\n\t\t} else if ( this.header.version < 2.0 ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Legacy binary file detected.' );\n\n\t\t}\n\n\t\tconst chunkContentsLength = this.header.length - BINARY_EXTENSION_HEADER_LENGTH;\n\t\tconst chunkView = new DataView( data, BINARY_EXTENSION_HEADER_LENGTH );\n\t\tlet chunkIndex = 0;\n\n\t\twhile ( chunkIndex < chunkContentsLength ) {\n\n\t\t\tconst chunkLength = chunkView.getUint32( chunkIndex, true );\n\t\t\tchunkIndex += 4;\n\n\t\t\tconst chunkType = chunkView.getUint32( chunkIndex, true );\n\t\t\tchunkIndex += 4;\n\n\t\t\tif ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON ) {\n\n\t\t\t\tconst contentArray = new Uint8Array( data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength );\n\t\t\t\tthis.content = textDecoder.decode( contentArray );\n\n\t\t\t} else if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN ) {\n\n\t\t\t\tconst byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex;\n\t\t\t\tthis.body = data.slice( byteOffset, byteOffset + chunkLength );\n\n\t\t\t}\n\n\t\t\t// Clients must ignore chunks with unknown types.\n\n\t\t\tchunkIndex += chunkLength;\n\n\t\t}\n\n\t\tif ( this.content === null ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: JSON content not found.' );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * DRACO Mesh Compression Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression\n */\nclass GLTFDracoMeshCompressionExtension {\n\n\tconstructor( json, dracoLoader ) {\n\n\t\tif ( ! dracoLoader ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: No DRACOLoader instance provided.' );\n\n\t\t}\n\n\t\tthis.name = EXTENSIONS.KHR_DRACO_MESH_COMPRESSION;\n\t\tthis.json = json;\n\t\tthis.dracoLoader = dracoLoader;\n\t\tthis.dracoLoader.preload();\n\n\t}\n\n\tdecodePrimitive( primitive, parser ) {\n\n\t\tconst json = this.json;\n\t\tconst dracoLoader = this.dracoLoader;\n\t\tconst bufferViewIndex = primitive.extensions[ this.name ].bufferView;\n\t\tconst gltfAttributeMap = primitive.extensions[ this.name ].attributes;\n\t\tconst threeAttributeMap = {};\n\t\tconst attributeNormalizedMap = {};\n\t\tconst attributeTypeMap = {};\n\n\t\tfor ( const attributeName in gltfAttributeMap ) {\n\n\t\t\tconst threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase();\n\n\t\t\tthreeAttributeMap[ threeAttributeName ] = gltfAttributeMap[ attributeName ];\n\n\t\t}\n\n\t\tfor ( const attributeName in primitive.attributes ) {\n\n\t\t\tconst threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase();\n\n\t\t\tif ( gltfAttributeMap[ attributeName ] !== undefined ) {\n\n\t\t\t\tconst accessorDef = json.accessors[ primitive.attributes[ attributeName ] ];\n\t\t\t\tconst componentType = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\n\t\t\t\tattributeTypeMap[ threeAttributeName ] = componentType.name;\n\t\t\t\tattributeNormalizedMap[ threeAttributeName ] = accessorDef.normalized === true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn parser.getDependency( 'bufferView', bufferViewIndex ).then( function ( bufferView ) {\n\n\t\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\t\tdracoLoader.decodeDracoFile( bufferView, function ( geometry ) {\n\n\t\t\t\t\tfor ( const attributeName in geometry.attributes ) {\n\n\t\t\t\t\t\tconst attribute = geometry.attributes[ attributeName ];\n\t\t\t\t\t\tconst normalized = attributeNormalizedMap[ attributeName ];\n\n\t\t\t\t\t\tif ( normalized !== undefined ) attribute.normalized = normalized;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve( geometry );\n\n\t\t\t\t}, threeAttributeMap, attributeTypeMap, LinearSRGBColorSpace, reject );\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * Texture Transform Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_transform\n */\nclass GLTFTextureTransformExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM;\n\n\t}\n\n\textendTexture( texture, transform ) {\n\n\t\tif ( ( transform.texCoord === undefined || transform.texCoord === texture.channel )\n\t\t\t&& transform.offset === undefined\n\t\t\t&& transform.rotation === undefined\n\t\t\t&& transform.scale === undefined ) {\n\n\t\t\t// See https://github.com/mrdoob/three.js/issues/21819.\n\t\t\treturn texture;\n\n\t\t}\n\n\t\ttexture = texture.clone();\n\n\t\tif ( transform.texCoord !== undefined ) {\n\n\t\t\ttexture.channel = transform.texCoord;\n\n\t\t}\n\n\t\tif ( transform.offset !== undefined ) {\n\n\t\t\ttexture.offset.fromArray( transform.offset );\n\n\t\t}\n\n\t\tif ( transform.rotation !== undefined ) {\n\n\t\t\ttexture.rotation = transform.rotation;\n\n\t\t}\n\n\t\tif ( transform.scale !== undefined ) {\n\n\t\t\ttexture.repeat.fromArray( transform.scale );\n\n\t\t}\n\n\t\ttexture.needsUpdate = true;\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Mesh Quantization Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization\n */\nclass GLTFMeshQuantizationExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_MESH_QUANTIZATION;\n\n\t}\n\n}\n\n/*********************************/\n/********** INTERPOLATION ********/\n/*********************************/\n\n// Spline Interpolation\n// Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#appendix-c-spline-interpolation\nclass GLTFCubicSplineInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// Copies a sample value to the result buffer. See description of glTF\n\t\t// CUBICSPLINE values layout in interpolate_() function below.\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tvalueSize = this.valueSize,\n\t\t\toffset = index * valueSize * 3 + valueSize;\n\n\t\tfor ( let i = 0; i !== valueSize; i ++ ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer;\n\t\tconst values = this.sampleValues;\n\t\tconst stride = this.valueSize;\n\n\t\tconst stride2 = stride * 2;\n\t\tconst stride3 = stride * 3;\n\n\t\tconst td = t1 - t0;\n\n\t\tconst p = ( t - t0 ) / td;\n\t\tconst pp = p * p;\n\t\tconst ppp = pp * p;\n\n\t\tconst offset1 = i1 * stride3;\n\t\tconst offset0 = offset1 - stride3;\n\n\t\tconst s2 = - 2 * ppp + 3 * pp;\n\t\tconst s3 = ppp - pp;\n\t\tconst s0 = 1 - s2;\n\t\tconst s1 = s3 - pp + p;\n\n\t\t// Layout of keyframe output values for CUBICSPLINE animations:\n\t\t// [ inTangent_1, splineVertex_1, outTangent_1, inTangent_2, splineVertex_2, ... ]\n\t\tfor ( let i = 0; i !== stride; i ++ ) {\n\n\t\t\tconst p0 = values[ offset0 + i + stride ]; // splineVertex_k\n\t\t\tconst m0 = values[ offset0 + i + stride2 ] * td; // outTangent_k * (t_k+1 - t_k)\n\t\t\tconst p1 = values[ offset1 + i + stride ]; // splineVertex_k+1\n\t\t\tconst m1 = values[ offset1 + i ] * td; // inTangent_k+1 * (t_k+1 - t_k)\n\n\t\t\tresult[ i ] = s0 * p0 + s1 * m0 + s2 * p1 + s3 * m1;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nconst _q = new Quaternion();\n\nclass GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant {\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = super.interpolate_( i1, t0, t, t1 );\n\n\t\t_q.fromArray( result ).normalize().toArray( result );\n\n\t\treturn result;\n\n\t}\n\n}\n\n\n/*********************************/\n/********** INTERNALS ************/\n/*********************************/\n\n/* CONSTANTS */\n\nconst WEBGL_CONSTANTS = {\n\tFLOAT: 5126,\n\t//FLOAT_MAT2: 35674,\n\tFLOAT_MAT3: 35675,\n\tFLOAT_MAT4: 35676,\n\tFLOAT_VEC2: 35664,\n\tFLOAT_VEC3: 35665,\n\tFLOAT_VEC4: 35666,\n\tLINEAR: 9729,\n\tREPEAT: 10497,\n\tSAMPLER_2D: 35678,\n\tPOINTS: 0,\n\tLINES: 1,\n\tLINE_LOOP: 2,\n\tLINE_STRIP: 3,\n\tTRIANGLES: 4,\n\tTRIANGLE_STRIP: 5,\n\tTRIANGLE_FAN: 6,\n\tUNSIGNED_BYTE: 5121,\n\tUNSIGNED_SHORT: 5123\n};\n\nconst WEBGL_COMPONENT_TYPES = {\n\t5120: Int8Array,\n\t5121: Uint8Array,\n\t5122: Int16Array,\n\t5123: Uint16Array,\n\t5125: Uint32Array,\n\t5126: Float32Array\n};\n\nconst WEBGL_FILTERS = {\n\t9728: NearestFilter,\n\t9729: LinearFilter,\n\t9984: NearestMipmapNearestFilter,\n\t9985: LinearMipmapNearestFilter,\n\t9986: NearestMipmapLinearFilter,\n\t9987: LinearMipmapLinearFilter\n};\n\nconst WEBGL_WRAPPINGS = {\n\t33071: ClampToEdgeWrapping,\n\t33648: MirroredRepeatWrapping,\n\t10497: RepeatWrapping\n};\n\nconst WEBGL_TYPE_SIZES = {\n\t'SCALAR': 1,\n\t'VEC2': 2,\n\t'VEC3': 3,\n\t'VEC4': 4,\n\t'MAT2': 4,\n\t'MAT3': 9,\n\t'MAT4': 16\n};\n\nconst ATTRIBUTES = {\n\tPOSITION: 'position',\n\tNORMAL: 'normal',\n\tTANGENT: 'tangent',\n\tTEXCOORD_0: 'uv',\n\tTEXCOORD_1: 'uv1',\n\tTEXCOORD_2: 'uv2',\n\tTEXCOORD_3: 'uv3',\n\tCOLOR_0: 'color',\n\tWEIGHTS_0: 'skinWeight',\n\tJOINTS_0: 'skinIndex',\n};\n\nconst PATH_PROPERTIES = {\n\tscale: 'scale',\n\ttranslation: 'position',\n\trotation: 'quaternion',\n\tweights: 'morphTargetInfluences'\n};\n\nconst INTERPOLATION = {\n\tCUBICSPLINE: undefined, // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each\n\t\t // keyframe track will be initialized with a default interpolation type, then modified.\n\tLINEAR: InterpolateLinear,\n\tSTEP: InterpolateDiscrete\n};\n\nconst ALPHA_MODES = {\n\tOPAQUE: 'OPAQUE',\n\tMASK: 'MASK',\n\tBLEND: 'BLEND'\n};\n\n/**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#default-material\n */\nfunction createDefaultMaterial( cache ) {\n\n\tif ( cache[ 'DefaultMaterial' ] === undefined ) {\n\n\t\tcache[ 'DefaultMaterial' ] = new MeshStandardMaterial( {\n\t\t\tcolor: 0xFFFFFF,\n\t\t\temissive: 0x000000,\n\t\t\tmetalness: 1,\n\t\t\troughness: 1,\n\t\t\ttransparent: false,\n\t\t\tdepthTest: true,\n\t\t\tside: FrontSide\n\t\t} );\n\n\t}\n\n\treturn cache[ 'DefaultMaterial' ];\n\n}\n\nfunction addUnknownExtensionsToUserData( knownExtensions, object, objectDef ) {\n\n\t// Add unknown glTF extensions to an object's userData.\n\n\tfor ( const name in objectDef.extensions ) {\n\n\t\tif ( knownExtensions[ name ] === undefined ) {\n\n\t\t\tobject.userData.gltfExtensions = object.userData.gltfExtensions || {};\n\t\t\tobject.userData.gltfExtensions[ name ] = objectDef.extensions[ name ];\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * @param {Object3D|Material|BufferGeometry} object\n * @param {GLTF.definition} gltfDef\n */\nfunction assignExtrasToUserData( object, gltfDef ) {\n\n\tif ( gltfDef.extras !== undefined ) {\n\n\t\tif ( typeof gltfDef.extras === 'object' ) {\n\n\t\t\tObject.assign( object.userData, gltfDef.extras );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Ignoring primitive type .extras, ' + gltfDef.extras );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#morph-targets\n *\n * @param {BufferGeometry} geometry\n * @param {Array} targets\n * @param {GLTFParser} parser\n * @return {Promise}\n */\nfunction addMorphTargets( geometry, targets, parser ) {\n\n\tlet hasMorphPosition = false;\n\tlet hasMorphNormal = false;\n\tlet hasMorphColor = false;\n\n\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\tconst target = targets[ i ];\n\n\t\tif ( target.POSITION !== undefined ) hasMorphPosition = true;\n\t\tif ( target.NORMAL !== undefined ) hasMorphNormal = true;\n\t\tif ( target.COLOR_0 !== undefined ) hasMorphColor = true;\n\n\t\tif ( hasMorphPosition && hasMorphNormal && hasMorphColor ) break;\n\n\t}\n\n\tif ( ! hasMorphPosition && ! hasMorphNormal && ! hasMorphColor ) return Promise.resolve( geometry );\n\n\tconst pendingPositionAccessors = [];\n\tconst pendingNormalAccessors = [];\n\tconst pendingColorAccessors = [];\n\n\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\tconst target = targets[ i ];\n\n\t\tif ( hasMorphPosition ) {\n\n\t\t\tconst pendingAccessor = target.POSITION !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.POSITION )\n\t\t\t\t: geometry.attributes.position;\n\n\t\t\tpendingPositionAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t\tif ( hasMorphNormal ) {\n\n\t\t\tconst pendingAccessor = target.NORMAL !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.NORMAL )\n\t\t\t\t: geometry.attributes.normal;\n\n\t\t\tpendingNormalAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t\tif ( hasMorphColor ) {\n\n\t\t\tconst pendingAccessor = target.COLOR_0 !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.COLOR_0 )\n\t\t\t\t: geometry.attributes.color;\n\n\t\t\tpendingColorAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t}\n\n\treturn Promise.all( [\n\t\tPromise.all( pendingPositionAccessors ),\n\t\tPromise.all( pendingNormalAccessors ),\n\t\tPromise.all( pendingColorAccessors )\n\t] ).then( function ( accessors ) {\n\n\t\tconst morphPositions = accessors[ 0 ];\n\t\tconst morphNormals = accessors[ 1 ];\n\t\tconst morphColors = accessors[ 2 ];\n\n\t\tif ( hasMorphPosition ) geometry.morphAttributes.position = morphPositions;\n\t\tif ( hasMorphNormal ) geometry.morphAttributes.normal = morphNormals;\n\t\tif ( hasMorphColor ) geometry.morphAttributes.color = morphColors;\n\t\tgeometry.morphTargetsRelative = true;\n\n\t\treturn geometry;\n\n\t} );\n\n}\n\n/**\n * @param {Mesh} mesh\n * @param {GLTF.Mesh} meshDef\n */\nfunction updateMorphTargets( mesh, meshDef ) {\n\n\tmesh.updateMorphTargets();\n\n\tif ( meshDef.weights !== undefined ) {\n\n\t\tfor ( let i = 0, il = meshDef.weights.length; i < il; i ++ ) {\n\n\t\t\tmesh.morphTargetInfluences[ i ] = meshDef.weights[ i ];\n\n\t\t}\n\n\t}\n\n\t// .extras has user-defined data, so check that .extras.targetNames is an array.\n\tif ( meshDef.extras && Array.isArray( meshDef.extras.targetNames ) ) {\n\n\t\tconst targetNames = meshDef.extras.targetNames;\n\n\t\tif ( mesh.morphTargetInfluences.length === targetNames.length ) {\n\n\t\t\tmesh.morphTargetDictionary = {};\n\n\t\t\tfor ( let i = 0, il = targetNames.length; i < il; i ++ ) {\n\n\t\t\t\tmesh.morphTargetDictionary[ targetNames[ i ] ] = i;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.' );\n\n\t\t}\n\n\t}\n\n}\n\nfunction createPrimitiveKey( primitiveDef ) {\n\n\tlet geometryKey;\n\n\tconst dracoExtension = primitiveDef.extensions && primitiveDef.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ];\n\n\tif ( dracoExtension ) {\n\n\t\tgeometryKey = 'draco:' + dracoExtension.bufferView\n\t\t\t\t+ ':' + dracoExtension.indices\n\t\t\t\t+ ':' + createAttributesKey( dracoExtension.attributes );\n\n\t} else {\n\n\t\tgeometryKey = primitiveDef.indices + ':' + createAttributesKey( primitiveDef.attributes ) + ':' + primitiveDef.mode;\n\n\t}\n\n\tif ( primitiveDef.targets !== undefined ) {\n\n\t\tfor ( let i = 0, il = primitiveDef.targets.length; i < il; i ++ ) {\n\n\t\t\tgeometryKey += ':' + createAttributesKey( primitiveDef.targets[ i ] );\n\n\t\t}\n\n\t}\n\n\treturn geometryKey;\n\n}\n\nfunction createAttributesKey( attributes ) {\n\n\tlet attributesKey = '';\n\n\tconst keys = Object.keys( attributes ).sort();\n\n\tfor ( let i = 0, il = keys.length; i < il; i ++ ) {\n\n\t\tattributesKey += keys[ i ] + ':' + attributes[ keys[ i ] ] + ';';\n\n\t}\n\n\treturn attributesKey;\n\n}\n\nfunction getNormalizedComponentScale( constructor ) {\n\n\t// Reference:\n\t// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization#encoding-quantized-data\n\n\tswitch ( constructor ) {\n\n\t\tcase Int8Array:\n\t\t\treturn 1 / 127;\n\n\t\tcase Uint8Array:\n\t\t\treturn 1 / 255;\n\n\t\tcase Int16Array:\n\t\t\treturn 1 / 32767;\n\n\t\tcase Uint16Array:\n\t\t\treturn 1 / 65535;\n\n\t\tdefault:\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Unsupported normalized accessor component type.' );\n\n\t}\n\n}\n\nfunction getImageURIMimeType( uri ) {\n\n\tif ( uri.search( /\\.jpe?g($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/jpeg/ ) === 0 ) return 'image/jpeg';\n\tif ( uri.search( /\\.webp($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/webp/ ) === 0 ) return 'image/webp';\n\tif ( uri.search( /\\.ktx2($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/ktx2/ ) === 0 ) return 'image/ktx2';\n\n\treturn 'image/png';\n\n}\n\nconst _identityMatrix = new Matrix4();\n\n/* GLTF PARSER */\n\nclass GLTFParser {\n\n\tconstructor( json = {}, options = {} ) {\n\n\t\tthis.json = json;\n\t\tthis.extensions = {};\n\t\tthis.plugins = {};\n\t\tthis.options = options;\n\n\t\t// loader object cache\n\t\tthis.cache = new GLTFRegistry();\n\n\t\t// associations between Three.js objects and glTF elements\n\t\tthis.associations = new Map();\n\n\t\t// BufferGeometry caching\n\t\tthis.primitiveCache = {};\n\n\t\t// Node cache\n\t\tthis.nodeCache = {};\n\n\t\t// Object3D instance caches\n\t\tthis.meshCache = { refs: {}, uses: {} };\n\t\tthis.cameraCache = { refs: {}, uses: {} };\n\t\tthis.lightCache = { refs: {}, uses: {} };\n\n\t\tthis.sourceCache = {};\n\t\tthis.textureCache = {};\n\n\t\t// Track node names, to ensure no duplicates\n\t\tthis.nodeNamesUsed = {};\n\n\t\t// Use an ImageBitmapLoader if imageBitmaps are supported. Moves much of the\n\t\t// expensive work of uploading a texture to the GPU off the main thread.\n\n\t\tlet isSafari = false;\n\t\tlet safariVersion = - 1;\n\t\tlet isFirefox = false;\n\t\tlet firefoxVersion = - 1;\n\n\t\tif ( typeof navigator !== 'undefined' ) {\n\n\t\t\tconst userAgent = navigator.userAgent;\n\n\t\t\tisSafari = /^((?!chrome|android).)*safari/i.test( userAgent ) === true;\n\t\t\tconst safariMatch = userAgent.match( /Version\\/(\\d+)/ );\n\t\t\tsafariVersion = isSafari && safariMatch ? parseInt( safariMatch[ 1 ], 10 ) : - 1;\n\n\t\t\tisFirefox = userAgent.indexOf( 'Firefox' ) > - 1;\n\t\t\tfirefoxVersion = isFirefox ? userAgent.match( /Firefox\\/([0-9]+)\\./ )[ 1 ] : - 1;\n\n\t\t}\n\n\t\tif ( typeof createImageBitmap === 'undefined' || ( isSafari && safariVersion < 17 ) || ( isFirefox && firefoxVersion < 98 ) ) {\n\n\t\t\tthis.textureLoader = new TextureLoader( this.options.manager );\n\n\t\t} else {\n\n\t\t\tthis.textureLoader = new ImageBitmapLoader( this.options.manager );\n\n\t\t}\n\n\t\tthis.textureLoader.setCrossOrigin( this.options.crossOrigin );\n\t\tthis.textureLoader.setRequestHeader( this.options.requestHeader );\n\n\t\tthis.fileLoader = new FileLoader( this.options.manager );\n\t\tthis.fileLoader.setResponseType( 'arraybuffer' );\n\n\t\tif ( this.options.crossOrigin === 'use-credentials' ) {\n\n\t\t\tthis.fileLoader.setWithCredentials( true );\n\n\t\t}\n\n\t}\n\n\tsetExtensions( extensions ) {\n\n\t\tthis.extensions = extensions;\n\n\t}\n\n\tsetPlugins( plugins ) {\n\n\t\tthis.plugins = plugins;\n\n\t}\n\n\tparse( onLoad, onError ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\n\t\t// Clear the loader cache\n\t\tthis.cache.removeAll();\n\t\tthis.nodeCache = {};\n\n\t\t// Mark the special nodes/meshes in json for efficient parse\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\treturn ext._markDefs && ext._markDefs();\n\n\t\t} );\n\n\t\tPromise.all( this._invokeAll( function ( ext ) {\n\n\t\t\treturn ext.beforeRoot && ext.beforeRoot();\n\n\t\t} ) ).then( function () {\n\n\t\t\treturn Promise.all( [\n\n\t\t\t\tparser.getDependencies( 'scene' ),\n\t\t\t\tparser.getDependencies( 'animation' ),\n\t\t\t\tparser.getDependencies( 'camera' ),\n\n\t\t\t] );\n\n\t\t} ).then( function ( dependencies ) {\n\n\t\t\tconst result = {\n\t\t\t\tscene: dependencies[ 0 ][ json.scene || 0 ],\n\t\t\t\tscenes: dependencies[ 0 ],\n\t\t\t\tanimations: dependencies[ 1 ],\n\t\t\t\tcameras: dependencies[ 2 ],\n\t\t\t\tasset: json.asset,\n\t\t\t\tparser: parser,\n\t\t\t\tuserData: {}\n\t\t\t};\n\n\t\t\taddUnknownExtensionsToUserData( extensions, result, json );\n\n\t\t\tassignExtrasToUserData( result, json );\n\n\t\t\treturn Promise.all( parser._invokeAll( function ( ext ) {\n\n\t\t\t\treturn ext.afterRoot && ext.afterRoot( result );\n\n\t\t\t} ) ).then( function () {\n\n\t\t\t\tfor ( const scene of result.scenes ) {\n\n\t\t\t\t\tscene.updateMatrixWorld();\n\n\t\t\t\t}\n\n\t\t\t\tonLoad( result );\n\n\t\t\t} );\n\n\t\t} ).catch( onError );\n\n\t}\n\n\t/**\n\t * Marks the special nodes/meshes in json for efficient parse.\n\t */\n\t_markDefs() {\n\n\t\tconst nodeDefs = this.json.nodes || [];\n\t\tconst skinDefs = this.json.skins || [];\n\t\tconst meshDefs = this.json.meshes || [];\n\n\t\t// Nothing in the node definition indicates whether it is a Bone or an\n\t\t// Object3D. Use the skins' joint references to mark bones.\n\t\tfor ( let skinIndex = 0, skinLength = skinDefs.length; skinIndex < skinLength; skinIndex ++ ) {\n\n\t\t\tconst joints = skinDefs[ skinIndex ].joints;\n\n\t\t\tfor ( let i = 0, il = joints.length; i < il; i ++ ) {\n\n\t\t\t\tnodeDefs[ joints[ i ] ].isBone = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Iterate over all nodes, marking references to shared resources,\n\t\t// as well as skeleton joints.\n\t\tfor ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) {\n\n\t\t\tconst nodeDef = nodeDefs[ nodeIndex ];\n\n\t\t\tif ( nodeDef.mesh !== undefined ) {\n\n\t\t\t\tthis._addNodeRef( this.meshCache, nodeDef.mesh );\n\n\t\t\t\t// Nothing in the mesh definition indicates whether it is\n\t\t\t\t// a SkinnedMesh or Mesh. Use the node's mesh reference\n\t\t\t\t// to mark SkinnedMesh if node has skin.\n\t\t\t\tif ( nodeDef.skin !== undefined ) {\n\n\t\t\t\t\tmeshDefs[ nodeDef.mesh ].isSkinnedMesh = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( nodeDef.camera !== undefined ) {\n\n\t\t\t\tthis._addNodeRef( this.cameraCache, nodeDef.camera );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Counts references to shared node / Object3D resources. These resources\n\t * can be reused, or \"instantiated\", at multiple nodes in the scene\n\t * hierarchy. Mesh, Camera, and Light instances are instantiated and must\n\t * be marked. Non-scenegraph resources (like Materials, Geometries, and\n\t * Textures) can be reused directly and are not marked here.\n\t *\n\t * Example: CesiumMilkTruck sample model reuses \"Wheel\" meshes.\n\t */\n\t_addNodeRef( cache, index ) {\n\n\t\tif ( index === undefined ) return;\n\n\t\tif ( cache.refs[ index ] === undefined ) {\n\n\t\t\tcache.refs[ index ] = cache.uses[ index ] = 0;\n\n\t\t}\n\n\t\tcache.refs[ index ] ++;\n\n\t}\n\n\t/** Returns a reference to a shared resource, cloning it if necessary. */\n\t_getNodeRef( cache, index, object ) {\n\n\t\tif ( cache.refs[ index ] <= 1 ) return object;\n\n\t\tconst ref = object.clone();\n\n\t\t// Propagates mappings to the cloned object, prevents mappings on the\n\t\t// original object from being lost.\n\t\tconst updateMappings = ( original, clone ) => {\n\n\t\t\tconst mappings = this.associations.get( original );\n\t\t\tif ( mappings != null ) {\n\n\t\t\t\tthis.associations.set( clone, mappings );\n\n\t\t\t}\n\n\t\t\tfor ( const [ i, child ] of original.children.entries() ) {\n\n\t\t\t\tupdateMappings( child, clone.children[ i ] );\n\n\t\t\t}\n\n\t\t};\n\n\t\tupdateMappings( object, ref );\n\n\t\tref.name += '_instance_' + ( cache.uses[ index ] ++ );\n\n\t\treturn ref;\n\n\t}\n\n\t_invokeOne( func ) {\n\n\t\tconst extensions = Object.values( this.plugins );\n\t\textensions.push( this );\n\n\t\tfor ( let i = 0; i < extensions.length; i ++ ) {\n\n\t\t\tconst result = func( extensions[ i ] );\n\n\t\t\tif ( result ) return result;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t_invokeAll( func ) {\n\n\t\tconst extensions = Object.values( this.plugins );\n\t\textensions.unshift( this );\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0; i < extensions.length; i ++ ) {\n\n\t\t\tconst result = func( extensions[ i ] );\n\n\t\t\tif ( result ) pending.push( result );\n\n\t\t}\n\n\t\treturn pending;\n\n\t}\n\n\t/**\n\t * Requests the specified dependency asynchronously, with caching.\n\t * @param {string} type\n\t * @param {number} index\n\t * @return {Promise}\n\t */\n\tgetDependency( type, index ) {\n\n\t\tconst cacheKey = type + ':' + index;\n\t\tlet dependency = this.cache.get( cacheKey );\n\n\t\tif ( ! dependency ) {\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 'scene':\n\t\t\t\t\tdependency = this.loadScene( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'node':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadNode && ext.loadNode( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'mesh':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadMesh && ext.loadMesh( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'accessor':\n\t\t\t\t\tdependency = this.loadAccessor( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bufferView':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadBufferView && ext.loadBufferView( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'buffer':\n\t\t\t\t\tdependency = this.loadBuffer( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'material':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadMaterial && ext.loadMaterial( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'texture':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadTexture && ext.loadTexture( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'skin':\n\t\t\t\t\tdependency = this.loadSkin( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'animation':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadAnimation && ext.loadAnimation( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'camera':\n\t\t\t\t\tdependency = this.loadCamera( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext != this && ext.getDependency && ext.getDependency( type, index );\n\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( ! dependency ) {\n\n\t\t\t\t\t\tthrow new Error( 'Unknown type: ' + type );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tthis.cache.add( cacheKey, dependency );\n\n\t\t}\n\n\t\treturn dependency;\n\n\t}\n\n\t/**\n\t * Requests all dependencies of the specified type asynchronously, with caching.\n\t * @param {string} type\n\t * @return {Promise>}\n\t */\n\tgetDependencies( type ) {\n\n\t\tlet dependencies = this.cache.get( type );\n\n\t\tif ( ! dependencies ) {\n\n\t\t\tconst parser = this;\n\t\t\tconst defs = this.json[ type + ( type === 'mesh' ? 'es' : 's' ) ] || [];\n\n\t\t\tdependencies = Promise.all( defs.map( function ( def, index ) {\n\n\t\t\t\treturn parser.getDependency( type, index );\n\n\t\t\t} ) );\n\n\t\t\tthis.cache.add( type, dependencies );\n\n\t\t}\n\n\t\treturn dependencies;\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n\t * @param {number} bufferIndex\n\t * @return {Promise}\n\t */\n\tloadBuffer( bufferIndex ) {\n\n\t\tconst bufferDef = this.json.buffers[ bufferIndex ];\n\t\tconst loader = this.fileLoader;\n\n\t\tif ( bufferDef.type && bufferDef.type !== 'arraybuffer' ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: ' + bufferDef.type + ' buffer type is not supported.' );\n\n\t\t}\n\n\t\t// If present, GLB container is required to be the first buffer.\n\t\tif ( bufferDef.uri === undefined && bufferIndex === 0 ) {\n\n\t\t\treturn Promise.resolve( this.extensions[ EXTENSIONS.KHR_BINARY_GLTF ].body );\n\n\t\t}\n\n\t\tconst options = this.options;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tloader.load( LoaderUtils.resolveURL( bufferDef.uri, options.path ), resolve, undefined, function () {\n\n\t\t\t\treject( new Error( 'THREE.GLTFLoader: Failed to load buffer \"' + bufferDef.uri + '\".' ) );\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n\t * @param {number} bufferViewIndex\n\t * @return {Promise}\n\t */\n\tloadBufferView( bufferViewIndex ) {\n\n\t\tconst bufferViewDef = this.json.bufferViews[ bufferViewIndex ];\n\n\t\treturn this.getDependency( 'buffer', bufferViewDef.buffer ).then( function ( buffer ) {\n\n\t\t\tconst byteLength = bufferViewDef.byteLength || 0;\n\t\t\tconst byteOffset = bufferViewDef.byteOffset || 0;\n\t\t\treturn buffer.slice( byteOffset, byteOffset + byteLength );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors\n\t * @param {number} accessorIndex\n\t * @return {Promise}\n\t */\n\tloadAccessor( accessorIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\n\t\tconst accessorDef = this.json.accessors[ accessorIndex ];\n\n\t\tif ( accessorDef.bufferView === undefined && accessorDef.sparse === undefined ) {\n\n\t\t\tconst itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ];\n\t\t\tconst TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\t\t\tconst normalized = accessorDef.normalized === true;\n\n\t\t\tconst array = new TypedArray( accessorDef.count * itemSize );\n\t\t\treturn Promise.resolve( new BufferAttribute( array, itemSize, normalized ) );\n\n\t\t}\n\n\t\tconst pendingBufferViews = [];\n\n\t\tif ( accessorDef.bufferView !== undefined ) {\n\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.bufferView ) );\n\n\t\t} else {\n\n\t\t\tpendingBufferViews.push( null );\n\n\t\t}\n\n\t\tif ( accessorDef.sparse !== undefined ) {\n\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.indices.bufferView ) );\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.values.bufferView ) );\n\n\t\t}\n\n\t\treturn Promise.all( pendingBufferViews ).then( function ( bufferViews ) {\n\n\t\t\tconst bufferView = bufferViews[ 0 ];\n\n\t\t\tconst itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ];\n\t\t\tconst TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\n\t\t\t// For VEC3: itemSize is 3, elementBytes is 4, itemBytes is 12.\n\t\t\tconst elementBytes = TypedArray.BYTES_PER_ELEMENT;\n\t\t\tconst itemBytes = elementBytes * itemSize;\n\t\t\tconst byteOffset = accessorDef.byteOffset || 0;\n\t\t\tconst byteStride = accessorDef.bufferView !== undefined ? json.bufferViews[ accessorDef.bufferView ].byteStride : undefined;\n\t\t\tconst normalized = accessorDef.normalized === true;\n\t\t\tlet array, bufferAttribute;\n\n\t\t\t// The buffer is not interleaved if the stride is the item size in bytes.\n\t\t\tif ( byteStride && byteStride !== itemBytes ) {\n\n\t\t\t\t// Each \"slice\" of the buffer, as defined by 'count' elements of 'byteStride' bytes, gets its own InterleavedBuffer\n\t\t\t\t// This makes sure that IBA.count reflects accessor.count properly\n\t\t\t\tconst ibSlice = Math.floor( byteOffset / byteStride );\n\t\t\t\tconst ibCacheKey = 'InterleavedBuffer:' + accessorDef.bufferView + ':' + accessorDef.componentType + ':' + ibSlice + ':' + accessorDef.count;\n\t\t\t\tlet ib = parser.cache.get( ibCacheKey );\n\n\t\t\t\tif ( ! ib ) {\n\n\t\t\t\t\tarray = new TypedArray( bufferView, ibSlice * byteStride, accessorDef.count * byteStride / elementBytes );\n\n\t\t\t\t\t// Integer parameters to IB/IBA are in array elements, not bytes.\n\t\t\t\t\tib = new InterleavedBuffer( array, byteStride / elementBytes );\n\n\t\t\t\t\tparser.cache.add( ibCacheKey, ib );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( ib, itemSize, ( byteOffset % byteStride ) / elementBytes, normalized );\n\n\t\t\t} else {\n\n\t\t\t\tif ( bufferView === null ) {\n\n\t\t\t\t\tarray = new TypedArray( accessorDef.count * itemSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tarray = new TypedArray( bufferView, byteOffset, accessorDef.count * itemSize );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute = new BufferAttribute( array, itemSize, normalized );\n\n\t\t\t}\n\n\t\t\t// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#sparse-accessors\n\t\t\tif ( accessorDef.sparse !== undefined ) {\n\n\t\t\t\tconst itemSizeIndices = WEBGL_TYPE_SIZES.SCALAR;\n\t\t\t\tconst TypedArrayIndices = WEBGL_COMPONENT_TYPES[ accessorDef.sparse.indices.componentType ];\n\n\t\t\t\tconst byteOffsetIndices = accessorDef.sparse.indices.byteOffset || 0;\n\t\t\t\tconst byteOffsetValues = accessorDef.sparse.values.byteOffset || 0;\n\n\t\t\t\tconst sparseIndices = new TypedArrayIndices( bufferViews[ 1 ], byteOffsetIndices, accessorDef.sparse.count * itemSizeIndices );\n\t\t\t\tconst sparseValues = new TypedArray( bufferViews[ 2 ], byteOffsetValues, accessorDef.sparse.count * itemSize );\n\n\t\t\t\tif ( bufferView !== null ) {\n\n\t\t\t\t\t// Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes.\n\t\t\t\t\tbufferAttribute = new BufferAttribute( bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized );\n\n\t\t\t\t}\n\n\t\t\t\t// Ignore normalized since we copy from sparse\n\t\t\t\tbufferAttribute.normalized = false;\n\n\t\t\t\tfor ( let i = 0, il = sparseIndices.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst index = sparseIndices[ i ];\n\n\t\t\t\t\tbufferAttribute.setX( index, sparseValues[ i * itemSize ] );\n\t\t\t\t\tif ( itemSize >= 2 ) bufferAttribute.setY( index, sparseValues[ i * itemSize + 1 ] );\n\t\t\t\t\tif ( itemSize >= 3 ) bufferAttribute.setZ( index, sparseValues[ i * itemSize + 2 ] );\n\t\t\t\t\tif ( itemSize >= 4 ) bufferAttribute.setW( index, sparseValues[ i * itemSize + 3 ] );\n\t\t\t\t\tif ( itemSize >= 5 ) throw new Error( 'THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.' );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute.normalized = normalized;\n\n\t\t\t}\n\n\t\t\treturn bufferAttribute;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures\n\t * @param {number} textureIndex\n\t * @return {Promise}\n\t */\n\tloadTexture( textureIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\t\tconst textureDef = json.textures[ textureIndex ];\n\t\tconst sourceIndex = textureDef.source;\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tlet loader = this.textureLoader;\n\n\t\tif ( sourceDef.uri ) {\n\n\t\t\tconst handler = options.manager.getHandler( sourceDef.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn this.loadTextureImage( textureIndex, sourceIndex, loader );\n\n\t}\n\n\tloadTextureImage( textureIndex, sourceIndex, loader ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tconst cacheKey = ( sourceDef.uri || sourceDef.bufferView ) + ':' + textureDef.sampler;\n\n\t\tif ( this.textureCache[ cacheKey ] ) {\n\n\t\t\t// See https://github.com/mrdoob/three.js/issues/21559.\n\t\t\treturn this.textureCache[ cacheKey ];\n\n\t\t}\n\n\t\tconst promise = this.loadImageSource( sourceIndex, loader ).then( function ( texture ) {\n\n\t\t\ttexture.flipY = false;\n\n\t\t\ttexture.name = textureDef.name || sourceDef.name || '';\n\n\t\t\tif ( texture.name === '' && typeof sourceDef.uri === 'string' && sourceDef.uri.startsWith( 'data:image/' ) === false ) {\n\n\t\t\t\ttexture.name = sourceDef.uri;\n\n\t\t\t}\n\n\t\t\tconst samplers = json.samplers || {};\n\t\t\tconst sampler = samplers[ textureDef.sampler ] || {};\n\n\t\t\ttexture.magFilter = WEBGL_FILTERS[ sampler.magFilter ] || LinearFilter;\n\t\t\ttexture.minFilter = WEBGL_FILTERS[ sampler.minFilter ] || LinearMipmapLinearFilter;\n\t\t\ttexture.wrapS = WEBGL_WRAPPINGS[ sampler.wrapS ] || RepeatWrapping;\n\t\t\ttexture.wrapT = WEBGL_WRAPPINGS[ sampler.wrapT ] || RepeatWrapping;\n\t\t\ttexture.generateMipmaps = ! texture.isCompressedTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n\n\t\t\tparser.associations.set( texture, { textures: textureIndex } );\n\n\t\t\treturn texture;\n\n\t\t} ).catch( function () {\n\n\t\t\treturn null;\n\n\t\t} );\n\n\t\tthis.textureCache[ cacheKey ] = promise;\n\n\t\treturn promise;\n\n\t}\n\n\tloadImageSource( sourceIndex, loader ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\n\t\tif ( this.sourceCache[ sourceIndex ] !== undefined ) {\n\n\t\t\treturn this.sourceCache[ sourceIndex ].then( ( texture ) => texture.clone() );\n\n\t\t}\n\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tconst URL = self.URL || self.webkitURL;\n\n\t\tlet sourceURI = sourceDef.uri || '';\n\t\tlet isObjectURL = false;\n\n\t\tif ( sourceDef.bufferView !== undefined ) {\n\n\t\t\t// Load binary image data from bufferView, if provided.\n\n\t\t\tsourceURI = parser.getDependency( 'bufferView', sourceDef.bufferView ).then( function ( bufferView ) {\n\n\t\t\t\tisObjectURL = true;\n\t\t\t\tconst blob = new Blob( [ bufferView ], { type: sourceDef.mimeType } );\n\t\t\t\tsourceURI = URL.createObjectURL( blob );\n\t\t\t\treturn sourceURI;\n\n\t\t\t} );\n\n\t\t} else if ( sourceDef.uri === undefined ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Image ' + sourceIndex + ' is missing URI and bufferView' );\n\n\t\t}\n\n\t\tconst promise = Promise.resolve( sourceURI ).then( function ( sourceURI ) {\n\n\t\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\t\tlet onLoad = resolve;\n\n\t\t\t\tif ( loader.isImageBitmapLoader === true ) {\n\n\t\t\t\t\tonLoad = function ( imageBitmap ) {\n\n\t\t\t\t\t\tconst texture = new Texture( imageBitmap );\n\t\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\t\tresolve( texture );\n\n\t\t\t\t\t};\n\n\t\t\t\t}\n\n\t\t\t\tloader.load( LoaderUtils.resolveURL( sourceURI, options.path ), onLoad, undefined, reject );\n\n\t\t\t} );\n\n\t\t} ).then( function ( texture ) {\n\n\t\t\t// Clean up resources and configure Texture.\n\n\t\t\tif ( isObjectURL === true ) {\n\n\t\t\t\tURL.revokeObjectURL( sourceURI );\n\n\t\t\t}\n\n\t\t\tassignExtrasToUserData( texture, sourceDef );\n\n\t\t\ttexture.userData.mimeType = sourceDef.mimeType || getImageURIMimeType( sourceDef.uri );\n\n\t\t\treturn texture;\n\n\t\t} ).catch( function ( error ) {\n\n\t\t\tconsole.error( 'THREE.GLTFLoader: Couldn\\'t load texture', sourceURI );\n\t\t\tthrow error;\n\n\t\t} );\n\n\t\tthis.sourceCache[ sourceIndex ] = promise;\n\t\treturn promise;\n\n\t}\n\n\t/**\n\t * Asynchronously assigns a texture to the given material parameters.\n\t * @param {Object} materialParams\n\t * @param {string} mapName\n\t * @param {Object} mapDef\n\t * @return {Promise}\n\t */\n\tassignTexture( materialParams, mapName, mapDef, colorSpace ) {\n\n\t\tconst parser = this;\n\n\t\treturn this.getDependency( 'texture', mapDef.index ).then( function ( texture ) {\n\n\t\t\tif ( ! texture ) return null;\n\n\t\t\tif ( mapDef.texCoord !== undefined && mapDef.texCoord > 0 ) {\n\n\t\t\t\ttexture = texture.clone();\n\t\t\t\ttexture.channel = mapDef.texCoord;\n\n\t\t\t}\n\n\t\t\tif ( parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] ) {\n\n\t\t\t\tconst transform = mapDef.extensions !== undefined ? mapDef.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] : undefined;\n\n\t\t\t\tif ( transform ) {\n\n\t\t\t\t\tconst gltfReference = parser.associations.get( texture );\n\t\t\t\t\ttexture = parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ].extendTexture( texture, transform );\n\t\t\t\t\tparser.associations.set( texture, gltfReference );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( colorSpace !== undefined ) {\n\n\t\t\t\ttexture.colorSpace = colorSpace;\n\n\t\t\t}\n\n\t\t\tmaterialParams[ mapName ] = texture;\n\n\t\t\treturn texture;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Assigns final material to a Mesh, Line, or Points instance. The instance\n\t * already has a material (generated from the glTF material options alone)\n\t * but reuse of the same glTF material may require multiple threejs materials\n\t * to accommodate different primitive types, defines, etc. New materials will\n\t * be created if necessary, and reused from a cache.\n\t * @param {Object3D} mesh Mesh, Line, or Points instance.\n\t */\n\tassignFinalMaterial( mesh ) {\n\n\t\tconst geometry = mesh.geometry;\n\t\tlet material = mesh.material;\n\n\t\tconst useDerivativeTangents = geometry.attributes.tangent === undefined;\n\t\tconst useVertexColors = geometry.attributes.color !== undefined;\n\t\tconst useFlatShading = geometry.attributes.normal === undefined;\n\n\t\tif ( mesh.isPoints ) {\n\n\t\t\tconst cacheKey = 'PointsMaterial:' + material.uuid;\n\n\t\t\tlet pointsMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! pointsMaterial ) {\n\n\t\t\t\tpointsMaterial = new PointsMaterial();\n\t\t\t\tMaterial.prototype.copy.call( pointsMaterial, material );\n\t\t\t\tpointsMaterial.color.copy( material.color );\n\t\t\t\tpointsMaterial.map = material.map;\n\t\t\t\tpointsMaterial.sizeAttenuation = false; // glTF spec says points should be 1px\n\n\t\t\t\tthis.cache.add( cacheKey, pointsMaterial );\n\n\t\t\t}\n\n\t\t\tmaterial = pointsMaterial;\n\n\t\t} else if ( mesh.isLine ) {\n\n\t\t\tconst cacheKey = 'LineBasicMaterial:' + material.uuid;\n\n\t\t\tlet lineMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! lineMaterial ) {\n\n\t\t\t\tlineMaterial = new LineBasicMaterial();\n\t\t\t\tMaterial.prototype.copy.call( lineMaterial, material );\n\t\t\t\tlineMaterial.color.copy( material.color );\n\t\t\t\tlineMaterial.map = material.map;\n\n\t\t\t\tthis.cache.add( cacheKey, lineMaterial );\n\n\t\t\t}\n\n\t\t\tmaterial = lineMaterial;\n\n\t\t}\n\n\t\t// Clone the material if it will be modified\n\t\tif ( useDerivativeTangents || useVertexColors || useFlatShading ) {\n\n\t\t\tlet cacheKey = 'ClonedMaterial:' + material.uuid + ':';\n\n\t\t\tif ( useDerivativeTangents ) cacheKey += 'derivative-tangents:';\n\t\t\tif ( useVertexColors ) cacheKey += 'vertex-colors:';\n\t\t\tif ( useFlatShading ) cacheKey += 'flat-shading:';\n\n\t\t\tlet cachedMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! cachedMaterial ) {\n\n\t\t\t\tcachedMaterial = material.clone();\n\n\t\t\t\tif ( useVertexColors ) cachedMaterial.vertexColors = true;\n\t\t\t\tif ( useFlatShading ) cachedMaterial.flatShading = true;\n\n\t\t\t\tif ( useDerivativeTangents ) {\n\n\t\t\t\t\t// https://github.com/mrdoob/three.js/issues/11438#issuecomment-507003995\n\t\t\t\t\tif ( cachedMaterial.normalScale ) cachedMaterial.normalScale.y *= - 1;\n\t\t\t\t\tif ( cachedMaterial.clearcoatNormalScale ) cachedMaterial.clearcoatNormalScale.y *= - 1;\n\n\t\t\t\t}\n\n\t\t\t\tthis.cache.add( cacheKey, cachedMaterial );\n\n\t\t\t\tthis.associations.set( cachedMaterial, this.associations.get( material ) );\n\n\t\t\t}\n\n\t\t\tmaterial = cachedMaterial;\n\n\t\t}\n\n\t\tmesh.material = material;\n\n\t}\n\n\tgetMaterialType( /* materialIndex */ ) {\n\n\t\treturn MeshStandardMaterial;\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials\n\t * @param {number} materialIndex\n\t * @return {Promise}\n\t */\n\tloadMaterial( materialIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\t\tconst materialDef = json.materials[ materialIndex ];\n\n\t\tlet materialType;\n\t\tconst materialParams = {};\n\t\tconst materialExtensions = materialDef.extensions || {};\n\n\t\tconst pending = [];\n\n\t\tif ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ] ) {\n\n\t\t\tconst kmuExtension = extensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ];\n\t\t\tmaterialType = kmuExtension.getMaterialType();\n\t\t\tpending.push( kmuExtension.extendParams( materialParams, materialDef, parser ) );\n\n\t\t} else {\n\n\t\t\t// Specification:\n\t\t\t// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material\n\n\t\t\tconst metallicRoughness = materialDef.pbrMetallicRoughness || {};\n\n\t\t\tmaterialParams.color = new Color( 1.0, 1.0, 1.0 );\n\t\t\tmaterialParams.opacity = 1.0;\n\n\t\t\tif ( Array.isArray( metallicRoughness.baseColorFactor ) ) {\n\n\t\t\t\tconst array = metallicRoughness.baseColorFactor;\n\n\t\t\t\tmaterialParams.color.setRGB( array[ 0 ], array[ 1 ], array[ 2 ], LinearSRGBColorSpace );\n\t\t\t\tmaterialParams.opacity = array[ 3 ];\n\n\t\t\t}\n\n\t\t\tif ( metallicRoughness.baseColorTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) );\n\n\t\t\t}\n\n\t\t\tmaterialParams.metalness = metallicRoughness.metallicFactor !== undefined ? metallicRoughness.metallicFactor : 1.0;\n\t\t\tmaterialParams.roughness = metallicRoughness.roughnessFactor !== undefined ? metallicRoughness.roughnessFactor : 1.0;\n\n\t\t\tif ( metallicRoughness.metallicRoughnessTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'metalnessMap', metallicRoughness.metallicRoughnessTexture ) );\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'roughnessMap', metallicRoughness.metallicRoughnessTexture ) );\n\n\t\t\t}\n\n\t\t\tmaterialType = this._invokeOne( function ( ext ) {\n\n\t\t\t\treturn ext.getMaterialType && ext.getMaterialType( materialIndex );\n\n\t\t\t} );\n\n\t\t\tpending.push( Promise.all( this._invokeAll( function ( ext ) {\n\n\t\t\t\treturn ext.extendMaterialParams && ext.extendMaterialParams( materialIndex, materialParams );\n\n\t\t\t} ) ) );\n\n\t\t}\n\n\t\tif ( materialDef.doubleSided === true ) {\n\n\t\t\tmaterialParams.side = DoubleSide;\n\n\t\t}\n\n\t\tconst alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE;\n\n\t\tif ( alphaMode === ALPHA_MODES.BLEND ) {\n\n\t\t\tmaterialParams.transparent = true;\n\n\t\t\t// See: https://github.com/mrdoob/three.js/issues/17706\n\t\t\tmaterialParams.depthWrite = false;\n\n\t\t} else {\n\n\t\t\tmaterialParams.transparent = false;\n\n\t\t\tif ( alphaMode === ALPHA_MODES.MASK ) {\n\n\t\t\t\tmaterialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.normalTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'normalMap', materialDef.normalTexture ) );\n\n\t\t\tmaterialParams.normalScale = new Vector2( 1, 1 );\n\n\t\t\tif ( materialDef.normalTexture.scale !== undefined ) {\n\n\t\t\t\tconst scale = materialDef.normalTexture.scale;\n\n\t\t\t\tmaterialParams.normalScale.set( scale, scale );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.occlusionTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'aoMap', materialDef.occlusionTexture ) );\n\n\t\t\tif ( materialDef.occlusionTexture.strength !== undefined ) {\n\n\t\t\t\tmaterialParams.aoMapIntensity = materialDef.occlusionTexture.strength;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.emissiveFactor !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tconst emissiveFactor = materialDef.emissiveFactor;\n\t\t\tmaterialParams.emissive = new Color().setRGB( emissiveFactor[ 0 ], emissiveFactor[ 1 ], emissiveFactor[ 2 ], LinearSRGBColorSpace );\n\n\t\t}\n\n\t\tif ( materialDef.emissiveTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'emissiveMap', materialDef.emissiveTexture, SRGBColorSpace ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function () {\n\n\t\t\tconst material = new materialType( materialParams );\n\n\t\t\tif ( materialDef.name ) material.name = materialDef.name;\n\n\t\t\tassignExtrasToUserData( material, materialDef );\n\n\t\t\tparser.associations.set( material, { materials: materialIndex } );\n\n\t\t\tif ( materialDef.extensions ) addUnknownExtensionsToUserData( extensions, material, materialDef );\n\n\t\t\treturn material;\n\n\t\t} );\n\n\t}\n\n\t/** When Object3D instances are targeted by animation, they need unique names. */\n\tcreateUniqueName( originalName ) {\n\n\t\tconst sanitizedName = PropertyBinding.sanitizeNodeName( originalName || '' );\n\n\t\tif ( sanitizedName in this.nodeNamesUsed ) {\n\n\t\t\treturn sanitizedName + '_' + ( ++ this.nodeNamesUsed[ sanitizedName ] );\n\n\t\t} else {\n\n\t\t\tthis.nodeNamesUsed[ sanitizedName ] = 0;\n\n\t\t\treturn sanitizedName;\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry\n\t *\n\t * Creates BufferGeometries from primitives.\n\t *\n\t * @param {Array} primitives\n\t * @return {Promise>}\n\t */\n\tloadGeometries( primitives ) {\n\n\t\tconst parser = this;\n\t\tconst extensions = this.extensions;\n\t\tconst cache = this.primitiveCache;\n\n\t\tfunction createDracoPrimitive( primitive ) {\n\n\t\t\treturn extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ]\n\t\t\t\t.decodePrimitive( primitive, parser )\n\t\t\t\t.then( function ( geometry ) {\n\n\t\t\t\t\treturn addPrimitiveAttributes( geometry, primitive, parser );\n\n\t\t\t\t} );\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = primitives.length; i < il; i ++ ) {\n\n\t\t\tconst primitive = primitives[ i ];\n\t\t\tconst cacheKey = createPrimitiveKey( primitive );\n\n\t\t\t// See if we've already created this geometry\n\t\t\tconst cached = cache[ cacheKey ];\n\n\t\t\tif ( cached ) {\n\n\t\t\t\t// Use the cached geometry if it exists\n\t\t\t\tpending.push( cached.promise );\n\n\t\t\t} else {\n\n\t\t\t\tlet geometryPromise;\n\n\t\t\t\tif ( primitive.extensions && primitive.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] ) {\n\n\t\t\t\t\t// Use DRACO geometry if available\n\t\t\t\t\tgeometryPromise = createDracoPrimitive( primitive );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Otherwise create a new geometry\n\t\t\t\t\tgeometryPromise = addPrimitiveAttributes( new BufferGeometry(), primitive, parser );\n\n\t\t\t\t}\n\n\t\t\t\t// Cache this geometry\n\t\t\t\tcache[ cacheKey ] = { primitive: primitive, promise: geometryPromise };\n\n\t\t\t\tpending.push( geometryPromise );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes\n\t * @param {number} meshIndex\n\t * @return {Promise}\n\t */\n\tloadMesh( meshIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\n\t\tconst meshDef = json.meshes[ meshIndex ];\n\t\tconst primitives = meshDef.primitives;\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = primitives.length; i < il; i ++ ) {\n\n\t\t\tconst material = primitives[ i ].material === undefined\n\t\t\t\t? createDefaultMaterial( this.cache )\n\t\t\t\t: this.getDependency( 'material', primitives[ i ].material );\n\n\t\t\tpending.push( material );\n\n\t\t}\n\n\t\tpending.push( parser.loadGeometries( primitives ) );\n\n\t\treturn Promise.all( pending ).then( function ( results ) {\n\n\t\t\tconst materials = results.slice( 0, results.length - 1 );\n\t\t\tconst geometries = results[ results.length - 1 ];\n\n\t\t\tconst meshes = [];\n\n\t\t\tfor ( let i = 0, il = geometries.length; i < il; i ++ ) {\n\n\t\t\t\tconst geometry = geometries[ i ];\n\t\t\t\tconst primitive = primitives[ i ];\n\n\t\t\t\t// 1. create Mesh\n\n\t\t\t\tlet mesh;\n\n\t\t\t\tconst material = materials[ i ];\n\n\t\t\t\tif ( primitive.mode === WEBGL_CONSTANTS.TRIANGLES ||\n\t\t\t\t\t\tprimitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP ||\n\t\t\t\t\t\tprimitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ||\n\t\t\t\t\t\tprimitive.mode === undefined ) {\n\n\t\t\t\t\t// .isSkinnedMesh isn't in glTF spec. See ._markDefs()\n\t\t\t\t\tmesh = meshDef.isSkinnedMesh === true\n\t\t\t\t\t\t? new SkinnedMesh( geometry, material )\n\t\t\t\t\t\t: new Mesh( geometry, material );\n\n\t\t\t\t\tif ( mesh.isSkinnedMesh === true ) {\n\n\t\t\t\t\t\t// normalize skin weights to fix malformed assets (see #15319)\n\t\t\t\t\t\tmesh.normalizeSkinWeights();\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP ) {\n\n\t\t\t\t\t\tmesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleStripDrawMode );\n\n\t\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ) {\n\n\t\t\t\t\t\tmesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleFanDrawMode );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.LINES ) {\n\n\t\t\t\t\tmesh = new LineSegments( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.LINE_STRIP ) {\n\n\t\t\t\t\tmesh = new Line( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.LINE_LOOP ) {\n\n\t\t\t\t\tmesh = new LineLoop( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS.POINTS ) {\n\n\t\t\t\t\tmesh = new Points( geometry, material );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.GLTFLoader: Primitive mode unsupported: ' + primitive.mode );\n\n\t\t\t\t}\n\n\t\t\t\tif ( Object.keys( mesh.geometry.morphAttributes ).length > 0 ) {\n\n\t\t\t\t\tupdateMorphTargets( mesh, meshDef );\n\n\t\t\t\t}\n\n\t\t\t\tmesh.name = parser.createUniqueName( meshDef.name || ( 'mesh_' + meshIndex ) );\n\n\t\t\t\tassignExtrasToUserData( mesh, meshDef );\n\n\t\t\t\tif ( primitive.extensions ) addUnknownExtensionsToUserData( extensions, mesh, primitive );\n\n\t\t\t\tparser.assignFinalMaterial( mesh );\n\n\t\t\t\tmeshes.push( mesh );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, il = meshes.length; i < il; i ++ ) {\n\n\t\t\t\tparser.associations.set( meshes[ i ], {\n\t\t\t\t\tmeshes: meshIndex,\n\t\t\t\t\tprimitives: i\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tif ( meshes.length === 1 ) {\n\n\t\t\t\tif ( meshDef.extensions ) addUnknownExtensionsToUserData( extensions, meshes[ 0 ], meshDef );\n\n\t\t\t\treturn meshes[ 0 ];\n\n\t\t\t}\n\n\t\t\tconst group = new Group();\n\n\t\t\tif ( meshDef.extensions ) addUnknownExtensionsToUserData( extensions, group, meshDef );\n\n\t\t\tparser.associations.set( group, { meshes: meshIndex } );\n\n\t\t\tfor ( let i = 0, il = meshes.length; i < il; i ++ ) {\n\n\t\t\t\tgroup.add( meshes[ i ] );\n\n\t\t\t}\n\n\t\t\treturn group;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras\n\t * @param {number} cameraIndex\n\t * @return {Promise}\n\t */\n\tloadCamera( cameraIndex ) {\n\n\t\tlet camera;\n\t\tconst cameraDef = this.json.cameras[ cameraIndex ];\n\t\tconst params = cameraDef[ cameraDef.type ];\n\n\t\tif ( ! params ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing camera parameters.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( cameraDef.type === 'perspective' ) {\n\n\t\t\tcamera = new PerspectiveCamera( MathUtils.radToDeg( params.yfov ), params.aspectRatio || 1, params.znear || 1, params.zfar || 2e6 );\n\n\t\t} else if ( cameraDef.type === 'orthographic' ) {\n\n\t\t\tcamera = new OrthographicCamera( - params.xmag, params.xmag, params.ymag, - params.ymag, params.znear, params.zfar );\n\n\t\t}\n\n\t\tif ( cameraDef.name ) camera.name = this.createUniqueName( cameraDef.name );\n\n\t\tassignExtrasToUserData( camera, cameraDef );\n\n\t\treturn Promise.resolve( camera );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins\n\t * @param {number} skinIndex\n\t * @return {Promise}\n\t */\n\tloadSkin( skinIndex ) {\n\n\t\tconst skinDef = this.json.skins[ skinIndex ];\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = skinDef.joints.length; i < il; i ++ ) {\n\n\t\t\tpending.push( this._loadNodeShallow( skinDef.joints[ i ] ) );\n\n\t\t}\n\n\t\tif ( skinDef.inverseBindMatrices !== undefined ) {\n\n\t\t\tpending.push( this.getDependency( 'accessor', skinDef.inverseBindMatrices ) );\n\n\t\t} else {\n\n\t\t\tpending.push( null );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function ( results ) {\n\n\t\t\tconst inverseBindMatrices = results.pop();\n\t\t\tconst jointNodes = results;\n\n\t\t\t// Note that bones (joint nodes) may or may not be in the\n\t\t\t// scene graph at this time.\n\n\t\t\tconst bones = [];\n\t\t\tconst boneInverses = [];\n\n\t\t\tfor ( let i = 0, il = jointNodes.length; i < il; i ++ ) {\n\n\t\t\t\tconst jointNode = jointNodes[ i ];\n\n\t\t\t\tif ( jointNode ) {\n\n\t\t\t\t\tbones.push( jointNode );\n\n\t\t\t\t\tconst mat = new Matrix4();\n\n\t\t\t\t\tif ( inverseBindMatrices !== null ) {\n\n\t\t\t\t\t\tmat.fromArray( inverseBindMatrices.array, i * 16 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tboneInverses.push( mat );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Joint \"%s\" could not be found.', skinDef.joints[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new Skeleton( bones, boneInverses );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations\n\t * @param {number} animationIndex\n\t * @return {Promise}\n\t */\n\tloadAnimation( animationIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\n\t\tconst animationDef = json.animations[ animationIndex ];\n\t\tconst animationName = animationDef.name ? animationDef.name : 'animation_' + animationIndex;\n\n\t\tconst pendingNodes = [];\n\t\tconst pendingInputAccessors = [];\n\t\tconst pendingOutputAccessors = [];\n\t\tconst pendingSamplers = [];\n\t\tconst pendingTargets = [];\n\n\t\tfor ( let i = 0, il = animationDef.channels.length; i < il; i ++ ) {\n\n\t\t\tconst channel = animationDef.channels[ i ];\n\t\t\tconst sampler = animationDef.samplers[ channel.sampler ];\n\t\t\tconst target = channel.target;\n\t\t\tconst name = target.node;\n\t\t\tconst input = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.input ] : sampler.input;\n\t\t\tconst output = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.output ] : sampler.output;\n\n\t\t\tif ( target.node === undefined ) continue;\n\n\t\t\tpendingNodes.push( this.getDependency( 'node', name ) );\n\t\t\tpendingInputAccessors.push( this.getDependency( 'accessor', input ) );\n\t\t\tpendingOutputAccessors.push( this.getDependency( 'accessor', output ) );\n\t\t\tpendingSamplers.push( sampler );\n\t\t\tpendingTargets.push( target );\n\n\t\t}\n\n\t\treturn Promise.all( [\n\n\t\t\tPromise.all( pendingNodes ),\n\t\t\tPromise.all( pendingInputAccessors ),\n\t\t\tPromise.all( pendingOutputAccessors ),\n\t\t\tPromise.all( pendingSamplers ),\n\t\t\tPromise.all( pendingTargets )\n\n\t\t] ).then( function ( dependencies ) {\n\n\t\t\tconst nodes = dependencies[ 0 ];\n\t\t\tconst inputAccessors = dependencies[ 1 ];\n\t\t\tconst outputAccessors = dependencies[ 2 ];\n\t\t\tconst samplers = dependencies[ 3 ];\n\t\t\tconst targets = dependencies[ 4 ];\n\n\t\t\tconst tracks = [];\n\n\t\t\tfor ( let i = 0, il = nodes.length; i < il; i ++ ) {\n\n\t\t\t\tconst node = nodes[ i ];\n\t\t\t\tconst inputAccessor = inputAccessors[ i ];\n\t\t\t\tconst outputAccessor = outputAccessors[ i ];\n\t\t\t\tconst sampler = samplers[ i ];\n\t\t\t\tconst target = targets[ i ];\n\n\t\t\t\tif ( node === undefined ) continue;\n\n\t\t\t\tif ( node.updateMatrix ) {\n\n\t\t\t\t\tnode.updateMatrix();\n\n\t\t\t\t}\n\n\t\t\t\tconst createdTracks = parser._createAnimationTracks( node, inputAccessor, outputAccessor, sampler, target );\n\n\t\t\t\tif ( createdTracks ) {\n\n\t\t\t\t\tfor ( let k = 0; k < createdTracks.length; k ++ ) {\n\n\t\t\t\t\t\ttracks.push( createdTracks[ k ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new AnimationClip( animationName, undefined, tracks );\n\n\t\t} );\n\n\t}\n\n\tcreateNodeMesh( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tif ( nodeDef.mesh === undefined ) return null;\n\n\t\treturn parser.getDependency( 'mesh', nodeDef.mesh ).then( function ( mesh ) {\n\n\t\t\tconst node = parser._getNodeRef( parser.meshCache, nodeDef.mesh, mesh );\n\n\t\t\t// if weights are provided on the node, override weights on the mesh.\n\t\t\tif ( nodeDef.weights !== undefined ) {\n\n\t\t\t\tnode.traverse( function ( o ) {\n\n\t\t\t\t\tif ( ! o.isMesh ) return;\n\n\t\t\t\t\tfor ( let i = 0, il = nodeDef.weights.length; i < il; i ++ ) {\n\n\t\t\t\t\t\to.morphTargetInfluences[ i ] = nodeDef.weights[ i ];\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy\n\t * @param {number} nodeIndex\n\t * @return {Promise}\n\t */\n\tloadNode( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tconst nodePending = parser._loadNodeShallow( nodeIndex );\n\n\t\tconst childPending = [];\n\t\tconst childrenDef = nodeDef.children || [];\n\n\t\tfor ( let i = 0, il = childrenDef.length; i < il; i ++ ) {\n\n\t\t\tchildPending.push( parser.getDependency( 'node', childrenDef[ i ] ) );\n\n\t\t}\n\n\t\tconst skeletonPending = nodeDef.skin === undefined\n\t\t\t? Promise.resolve( null )\n\t\t\t: parser.getDependency( 'skin', nodeDef.skin );\n\n\t\treturn Promise.all( [\n\t\t\tnodePending,\n\t\t\tPromise.all( childPending ),\n\t\t\tskeletonPending\n\t\t] ).then( function ( results ) {\n\n\t\t\tconst node = results[ 0 ];\n\t\t\tconst children = results[ 1 ];\n\t\t\tconst skeleton = results[ 2 ];\n\n\t\t\tif ( skeleton !== null ) {\n\n\t\t\t\t// This full traverse should be fine because\n\t\t\t\t// child glTF nodes have not been added to this node yet.\n\t\t\t\tnode.traverse( function ( mesh ) {\n\n\t\t\t\t\tif ( ! mesh.isSkinnedMesh ) return;\n\n\t\t\t\t\tmesh.bind( skeleton, _identityMatrix );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, il = children.length; i < il; i ++ ) {\n\n\t\t\t\tnode.add( children[ i ] );\n\n\t\t\t}\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t}\n\n\t// ._loadNodeShallow() parses a single node.\n\t// skin and child nodes are created and added in .loadNode() (no '_' prefix).\n\t_loadNodeShallow( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\t\tconst parser = this;\n\n\t\t// This method is called from .loadNode() and .loadSkin().\n\t\t// Cache a node to avoid duplication.\n\n\t\tif ( this.nodeCache[ nodeIndex ] !== undefined ) {\n\n\t\t\treturn this.nodeCache[ nodeIndex ];\n\n\t\t}\n\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\t// reserve node's name before its dependencies, so the root has the intended name.\n\t\tconst nodeName = nodeDef.name ? parser.createUniqueName( nodeDef.name ) : '';\n\n\t\tconst pending = [];\n\n\t\tconst meshPromise = parser._invokeOne( function ( ext ) {\n\n\t\t\treturn ext.createNodeMesh && ext.createNodeMesh( nodeIndex );\n\n\t\t} );\n\n\t\tif ( meshPromise ) {\n\n\t\t\tpending.push( meshPromise );\n\n\t\t}\n\n\t\tif ( nodeDef.camera !== undefined ) {\n\n\t\t\tpending.push( parser.getDependency( 'camera', nodeDef.camera ).then( function ( camera ) {\n\n\t\t\t\treturn parser._getNodeRef( parser.cameraCache, nodeDef.camera, camera );\n\n\t\t\t} ) );\n\n\t\t}\n\n\t\tparser._invokeAll( function ( ext ) {\n\n\t\t\treturn ext.createNodeAttachment && ext.createNodeAttachment( nodeIndex );\n\n\t\t} ).forEach( function ( promise ) {\n\n\t\t\tpending.push( promise );\n\n\t\t} );\n\n\t\tthis.nodeCache[ nodeIndex ] = Promise.all( pending ).then( function ( objects ) {\n\n\t\t\tlet node;\n\n\t\t\t// .isBone isn't in glTF spec. See ._markDefs\n\t\t\tif ( nodeDef.isBone === true ) {\n\n\t\t\t\tnode = new Bone();\n\n\t\t\t} else if ( objects.length > 1 ) {\n\n\t\t\t\tnode = new Group();\n\n\t\t\t} else if ( objects.length === 1 ) {\n\n\t\t\t\tnode = objects[ 0 ];\n\n\t\t\t} else {\n\n\t\t\t\tnode = new Object3D();\n\n\t\t\t}\n\n\t\t\tif ( node !== objects[ 0 ] ) {\n\n\t\t\t\tfor ( let i = 0, il = objects.length; i < il; i ++ ) {\n\n\t\t\t\t\tnode.add( objects[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( nodeDef.name ) {\n\n\t\t\t\tnode.userData.name = nodeDef.name;\n\t\t\t\tnode.name = nodeName;\n\n\t\t\t}\n\n\t\t\tassignExtrasToUserData( node, nodeDef );\n\n\t\t\tif ( nodeDef.extensions ) addUnknownExtensionsToUserData( extensions, node, nodeDef );\n\n\t\t\tif ( nodeDef.matrix !== undefined ) {\n\n\t\t\t\tconst matrix = new Matrix4();\n\t\t\t\tmatrix.fromArray( nodeDef.matrix );\n\t\t\t\tnode.applyMatrix4( matrix );\n\n\t\t\t} else {\n\n\t\t\t\tif ( nodeDef.translation !== undefined ) {\n\n\t\t\t\t\tnode.position.fromArray( nodeDef.translation );\n\n\t\t\t\t}\n\n\t\t\t\tif ( nodeDef.rotation !== undefined ) {\n\n\t\t\t\t\tnode.quaternion.fromArray( nodeDef.rotation );\n\n\t\t\t\t}\n\n\t\t\t\tif ( nodeDef.scale !== undefined ) {\n\n\t\t\t\t\tnode.scale.fromArray( nodeDef.scale );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( ! parser.associations.has( node ) ) {\n\n\t\t\t\tparser.associations.set( node, {} );\n\n\t\t\t}\n\n\t\t\tparser.associations.get( node ).nodes = nodeIndex;\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t\treturn this.nodeCache[ nodeIndex ];\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes\n\t * @param {number} sceneIndex\n\t * @return {Promise}\n\t */\n\tloadScene( sceneIndex ) {\n\n\t\tconst extensions = this.extensions;\n\t\tconst sceneDef = this.json.scenes[ sceneIndex ];\n\t\tconst parser = this;\n\n\t\t// Loader returns Group, not Scene.\n\t\t// See: https://github.com/mrdoob/three.js/issues/18342#issuecomment-578981172\n\t\tconst scene = new Group();\n\t\tif ( sceneDef.name ) scene.name = parser.createUniqueName( sceneDef.name );\n\n\t\tassignExtrasToUserData( scene, sceneDef );\n\n\t\tif ( sceneDef.extensions ) addUnknownExtensionsToUserData( extensions, scene, sceneDef );\n\n\t\tconst nodeIds = sceneDef.nodes || [];\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = nodeIds.length; i < il; i ++ ) {\n\n\t\t\tpending.push( parser.getDependency( 'node', nodeIds[ i ] ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function ( nodes ) {\n\n\t\t\tfor ( let i = 0, il = nodes.length; i < il; i ++ ) {\n\n\t\t\t\tscene.add( nodes[ i ] );\n\n\t\t\t}\n\n\t\t\t// Removes dangling associations, associations that reference a node that\n\t\t\t// didn't make it into the scene.\n\t\t\tconst reduceAssociations = ( node ) => {\n\n\t\t\t\tconst reducedAssociations = new Map();\n\n\t\t\t\tfor ( const [ key, value ] of parser.associations ) {\n\n\t\t\t\t\tif ( key instanceof Material || key instanceof Texture ) {\n\n\t\t\t\t\t\treducedAssociations.set( key, value );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tnode.traverse( ( node ) => {\n\n\t\t\t\t\tconst mappings = parser.associations.get( node );\n\n\t\t\t\t\tif ( mappings != null ) {\n\n\t\t\t\t\t\treducedAssociations.set( node, mappings );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\treturn reducedAssociations;\n\n\t\t\t};\n\n\t\t\tparser.associations = reduceAssociations( scene );\n\n\t\t\treturn scene;\n\n\t\t} );\n\n\t}\n\n\t_createAnimationTracks( node, inputAccessor, outputAccessor, sampler, target ) {\n\n\t\tconst tracks = [];\n\n\t\tconst targetName = node.name ? node.name : node.uuid;\n\t\tconst targetNames = [];\n\n\t\tif ( PATH_PROPERTIES[ target.path ] === PATH_PROPERTIES.weights ) {\n\n\t\t\tnode.traverse( function ( object ) {\n\n\t\t\t\tif ( object.morphTargetInfluences ) {\n\n\t\t\t\t\ttargetNames.push( object.name ? object.name : object.uuid );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} else {\n\n\t\t\ttargetNames.push( targetName );\n\n\t\t}\n\n\t\tlet TypedKeyframeTrack;\n\n\t\tswitch ( PATH_PROPERTIES[ target.path ] ) {\n\n\t\t\tcase PATH_PROPERTIES.weights:\n\n\t\t\t\tTypedKeyframeTrack = NumberKeyframeTrack;\n\t\t\t\tbreak;\n\n\t\t\tcase PATH_PROPERTIES.rotation:\n\n\t\t\t\tTypedKeyframeTrack = QuaternionKeyframeTrack;\n\t\t\t\tbreak;\n\n\t\t\tcase PATH_PROPERTIES.position:\n\t\t\tcase PATH_PROPERTIES.scale:\n\n\t\t\t\tTypedKeyframeTrack = VectorKeyframeTrack;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tswitch ( outputAccessor.itemSize ) {\n\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tTypedKeyframeTrack = NumberKeyframeTrack;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\tcase 3:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tTypedKeyframeTrack = VectorKeyframeTrack;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tconst interpolation = sampler.interpolation !== undefined ? INTERPOLATION[ sampler.interpolation ] : InterpolateLinear;\n\n\n\t\tconst outputArray = this._getArrayFromAccessor( outputAccessor );\n\n\t\tfor ( let j = 0, jl = targetNames.length; j < jl; j ++ ) {\n\n\t\t\tconst track = new TypedKeyframeTrack(\n\t\t\t\ttargetNames[ j ] + '.' + PATH_PROPERTIES[ target.path ],\n\t\t\t\tinputAccessor.array,\n\t\t\t\toutputArray,\n\t\t\t\tinterpolation\n\t\t\t);\n\n\t\t\t// Override interpolation with custom factory method.\n\t\t\tif ( sampler.interpolation === 'CUBICSPLINE' ) {\n\n\t\t\t\tthis._createCubicSplineTrackInterpolant( track );\n\n\t\t\t}\n\n\t\t\ttracks.push( track );\n\n\t\t}\n\n\t\treturn tracks;\n\n\t}\n\n\t_getArrayFromAccessor( accessor ) {\n\n\t\tlet outputArray = accessor.array;\n\n\t\tif ( accessor.normalized ) {\n\n\t\t\tconst scale = getNormalizedComponentScale( outputArray.constructor );\n\t\t\tconst scaled = new Float32Array( outputArray.length );\n\n\t\t\tfor ( let j = 0, jl = outputArray.length; j < jl; j ++ ) {\n\n\t\t\t\tscaled[ j ] = outputArray[ j ] * scale;\n\n\t\t\t}\n\n\t\t\toutputArray = scaled;\n\n\t\t}\n\n\t\treturn outputArray;\n\n\t}\n\n\t_createCubicSplineTrackInterpolant( track ) {\n\n\t\ttrack.createInterpolant = function InterpolantFactoryMethodGLTFCubicSpline( result ) {\n\n\t\t\t// A CUBICSPLINE keyframe in glTF has three output values for each input value,\n\t\t\t// representing inTangent, splineVertex, and outTangent. As a result, track.getValueSize()\n\t\t\t// must be divided by three to get the interpolant's sampleSize argument.\n\n\t\t\tconst interpolantType = ( this instanceof QuaternionKeyframeTrack ) ? GLTFCubicSplineQuaternionInterpolant : GLTFCubicSplineInterpolant;\n\n\t\t\treturn new interpolantType( this.times, this.values, this.getValueSize() / 3, result );\n\n\t\t};\n\n\t\t// Mark as CUBICSPLINE. `track.getInterpolation()` doesn't support custom interpolants.\n\t\ttrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true;\n\n\t}\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {GLTF.Primitive} primitiveDef\n * @param {GLTFParser} parser\n */\nfunction computeBounds( geometry, primitiveDef, parser ) {\n\n\tconst attributes = primitiveDef.attributes;\n\n\tconst box = new Box3();\n\n\tif ( attributes.POSITION !== undefined ) {\n\n\t\tconst accessor = parser.json.accessors[ attributes.POSITION ];\n\n\t\tconst min = accessor.min;\n\t\tconst max = accessor.max;\n\n\t\t// glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement.\n\n\t\tif ( min !== undefined && max !== undefined ) {\n\n\t\t\tbox.set(\n\t\t\t\tnew Vector3( min[ 0 ], min[ 1 ], min[ 2 ] ),\n\t\t\t\tnew Vector3( max[ 0 ], max[ 1 ], max[ 2 ] )\n\t\t\t);\n\n\t\t\tif ( accessor.normalized ) {\n\n\t\t\t\tconst boxScale = getNormalizedComponentScale( WEBGL_COMPONENT_TYPES[ accessor.componentType ] );\n\t\t\t\tbox.min.multiplyScalar( boxScale );\n\t\t\t\tbox.max.multiplyScalar( boxScale );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' );\n\n\t\t\treturn;\n\n\t\t}\n\n\t} else {\n\n\t\treturn;\n\n\t}\n\n\tconst targets = primitiveDef.targets;\n\n\tif ( targets !== undefined ) {\n\n\t\tconst maxDisplacement = new Vector3();\n\t\tconst vector = new Vector3();\n\n\t\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\t\tconst target = targets[ i ];\n\n\t\t\tif ( target.POSITION !== undefined ) {\n\n\t\t\t\tconst accessor = parser.json.accessors[ target.POSITION ];\n\t\t\t\tconst min = accessor.min;\n\t\t\t\tconst max = accessor.max;\n\n\t\t\t\t// glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement.\n\n\t\t\t\tif ( min !== undefined && max !== undefined ) {\n\n\t\t\t\t\t// we need to get max of absolute components because target weight is [-1,1]\n\t\t\t\t\tvector.setX( Math.max( Math.abs( min[ 0 ] ), Math.abs( max[ 0 ] ) ) );\n\t\t\t\t\tvector.setY( Math.max( Math.abs( min[ 1 ] ), Math.abs( max[ 1 ] ) ) );\n\t\t\t\t\tvector.setZ( Math.max( Math.abs( min[ 2 ] ), Math.abs( max[ 2 ] ) ) );\n\n\n\t\t\t\t\tif ( accessor.normalized ) {\n\n\t\t\t\t\t\tconst boxScale = getNormalizedComponentScale( WEBGL_COMPONENT_TYPES[ accessor.componentType ] );\n\t\t\t\t\t\tvector.multiplyScalar( boxScale );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Note: this assumes that the sum of all weights is at most 1. This isn't quite correct - it's more conservative\n\t\t\t\t\t// to assume that each target can have a max weight of 1. However, for some use cases - notably, when morph targets\n\t\t\t\t\t// are used to implement key-frame animations and as such only two are active at a time - this results in very large\n\t\t\t\t\t// boxes. So for now we make a box that's sometimes a touch too small but is hopefully mostly of reasonable size.\n\t\t\t\t\tmaxDisplacement.max( vector );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// As per comment above this box isn't conservative, but has a reasonable size for a very large number of morph targets.\n\t\tbox.expandByVector( maxDisplacement );\n\n\t}\n\n\tgeometry.boundingBox = box;\n\n\tconst sphere = new Sphere();\n\n\tbox.getCenter( sphere.center );\n\tsphere.radius = box.min.distanceTo( box.max ) / 2;\n\n\tgeometry.boundingSphere = sphere;\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {GLTF.Primitive} primitiveDef\n * @param {GLTFParser} parser\n * @return {Promise}\n */\nfunction addPrimitiveAttributes( geometry, primitiveDef, parser ) {\n\n\tconst attributes = primitiveDef.attributes;\n\n\tconst pending = [];\n\n\tfunction assignAttributeAccessor( accessorIndex, attributeName ) {\n\n\t\treturn parser.getDependency( 'accessor', accessorIndex )\n\t\t\t.then( function ( accessor ) {\n\n\t\t\t\tgeometry.setAttribute( attributeName, accessor );\n\n\t\t\t} );\n\n\t}\n\n\tfor ( const gltfAttributeName in attributes ) {\n\n\t\tconst threeAttributeName = ATTRIBUTES[ gltfAttributeName ] || gltfAttributeName.toLowerCase();\n\n\t\t// Skip attributes already provided by e.g. Draco extension.\n\t\tif ( threeAttributeName in geometry.attributes ) continue;\n\n\t\tpending.push( assignAttributeAccessor( attributes[ gltfAttributeName ], threeAttributeName ) );\n\n\t}\n\n\tif ( primitiveDef.indices !== undefined && ! geometry.index ) {\n\n\t\tconst accessor = parser.getDependency( 'accessor', primitiveDef.indices ).then( function ( accessor ) {\n\n\t\t\tgeometry.setIndex( accessor );\n\n\t\t} );\n\n\t\tpending.push( accessor );\n\n\t}\n\n\tif ( ColorManagement.workingColorSpace !== LinearSRGBColorSpace && 'COLOR_0' in attributes ) {\n\n\t\tconsole.warn( `THREE.GLTFLoader: Converting vertex colors from \"srgb-linear\" to \"${ColorManagement.workingColorSpace}\" not supported.` );\n\n\t}\n\n\tassignExtrasToUserData( geometry, primitiveDef );\n\n\tcomputeBounds( geometry, primitiveDef, parser );\n\n\treturn Promise.all( pending ).then( function () {\n\n\t\treturn primitiveDef.targets !== undefined\n\t\t\t? addMorphTargets( geometry, primitiveDef.targets, parser )\n\t\t\t: geometry;\n\n\t} );\n\n}\n\nexport { GLTFLoader };\n","import {\n\tBufferGeometry,\n\tFileLoader,\n\tFloat32BufferAttribute,\n\tGroup,\n\tLineBasicMaterial,\n\tLineSegments,\n\tLoader,\n\tMaterial,\n\tMesh,\n\tMeshPhongMaterial,\n\tPoints,\n\tPointsMaterial,\n\tVector3,\n\tColor,\n\tSRGBColorSpace\n} from 'three';\n\n// o object_name | g group_name\nconst _object_pattern = /^[og]\\s*(.+)?/;\n// mtllib file_reference\nconst _material_library_pattern = /^mtllib /;\n// usemtl material_name\nconst _material_use_pattern = /^usemtl /;\n// usemap map_name\nconst _map_use_pattern = /^usemap /;\nconst _face_vertex_data_separator_pattern = /\\s+/;\n\nconst _vA = new Vector3();\nconst _vB = new Vector3();\nconst _vC = new Vector3();\n\nconst _ab = new Vector3();\nconst _cb = new Vector3();\n\nconst _color = new Color();\n\nfunction ParserState() {\n\n\tconst state = {\n\t\tobjects: [],\n\t\tobject: {},\n\n\t\tvertices: [],\n\t\tnormals: [],\n\t\tcolors: [],\n\t\tuvs: [],\n\n\t\tmaterials: {},\n\t\tmaterialLibraries: [],\n\n\t\tstartObject: function ( name, fromDeclaration ) {\n\n\t\t\t// If the current object (initial from reset) is not from a g/o declaration in the parsed\n\t\t\t// file. We need to use it for the first parsed g/o to keep things in sync.\n\t\t\tif ( this.object && this.object.fromDeclaration === false ) {\n\n\t\t\t\tthis.object.name = name;\n\t\t\t\tthis.object.fromDeclaration = ( fromDeclaration !== false );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst previousMaterial = ( this.object && typeof this.object.currentMaterial === 'function' ? this.object.currentMaterial() : undefined );\n\n\t\t\tif ( this.object && typeof this.object._finalize === 'function' ) {\n\n\t\t\t\tthis.object._finalize( true );\n\n\t\t\t}\n\n\t\t\tthis.object = {\n\t\t\t\tname: name || '',\n\t\t\t\tfromDeclaration: ( fromDeclaration !== false ),\n\n\t\t\t\tgeometry: {\n\t\t\t\t\tvertices: [],\n\t\t\t\t\tnormals: [],\n\t\t\t\t\tcolors: [],\n\t\t\t\t\tuvs: [],\n\t\t\t\t\thasUVIndices: false\n\t\t\t\t},\n\t\t\t\tmaterials: [],\n\t\t\t\tsmooth: true,\n\n\t\t\t\tstartMaterial: function ( name, libraries ) {\n\n\t\t\t\t\tconst previous = this._finalize( false );\n\n\t\t\t\t\t// New usemtl declaration overwrites an inherited material, except if faces were declared\n\t\t\t\t\t// after the material, then it must be preserved for proper MultiMaterial continuation.\n\t\t\t\t\tif ( previous && ( previous.inherited || previous.groupCount <= 0 ) ) {\n\n\t\t\t\t\t\tthis.materials.splice( previous.index, 1 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst material = {\n\t\t\t\t\t\tindex: this.materials.length,\n\t\t\t\t\t\tname: name || '',\n\t\t\t\t\t\tmtllib: ( Array.isArray( libraries ) && libraries.length > 0 ? libraries[ libraries.length - 1 ] : '' ),\n\t\t\t\t\t\tsmooth: ( previous !== undefined ? previous.smooth : this.smooth ),\n\t\t\t\t\t\tgroupStart: ( previous !== undefined ? previous.groupEnd : 0 ),\n\t\t\t\t\t\tgroupEnd: - 1,\n\t\t\t\t\t\tgroupCount: - 1,\n\t\t\t\t\t\tinherited: false,\n\n\t\t\t\t\t\tclone: function ( index ) {\n\n\t\t\t\t\t\t\tconst cloned = {\n\t\t\t\t\t\t\t\tindex: ( typeof index === 'number' ? index : this.index ),\n\t\t\t\t\t\t\t\tname: this.name,\n\t\t\t\t\t\t\t\tmtllib: this.mtllib,\n\t\t\t\t\t\t\t\tsmooth: this.smooth,\n\t\t\t\t\t\t\t\tgroupStart: 0,\n\t\t\t\t\t\t\t\tgroupEnd: - 1,\n\t\t\t\t\t\t\t\tgroupCount: - 1,\n\t\t\t\t\t\t\t\tinherited: false\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcloned.clone = this.clone.bind( cloned );\n\t\t\t\t\t\t\treturn cloned;\n\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.materials.push( material );\n\n\t\t\t\t\treturn material;\n\n\t\t\t\t},\n\n\t\t\t\tcurrentMaterial: function () {\n\n\t\t\t\t\tif ( this.materials.length > 0 ) {\n\n\t\t\t\t\t\treturn this.materials[ this.materials.length - 1 ];\n\n\t\t\t\t\t}\n\n\t\t\t\t\treturn undefined;\n\n\t\t\t\t},\n\n\t\t\t\t_finalize: function ( end ) {\n\n\t\t\t\t\tconst lastMultiMaterial = this.currentMaterial();\n\t\t\t\t\tif ( lastMultiMaterial && lastMultiMaterial.groupEnd === - 1 ) {\n\n\t\t\t\t\t\tlastMultiMaterial.groupEnd = this.geometry.vertices.length / 3;\n\t\t\t\t\t\tlastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart;\n\t\t\t\t\t\tlastMultiMaterial.inherited = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ignore objects tail materials if no face declarations followed them before a new o/g started.\n\t\t\t\t\tif ( end && this.materials.length > 1 ) {\n\n\t\t\t\t\t\tfor ( let mi = this.materials.length - 1; mi >= 0; mi -- ) {\n\n\t\t\t\t\t\t\tif ( this.materials[ mi ].groupCount <= 0 ) {\n\n\t\t\t\t\t\t\t\tthis.materials.splice( mi, 1 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Guarantee at least one empty material, this makes the creation later more straight forward.\n\t\t\t\t\tif ( end && this.materials.length === 0 ) {\n\n\t\t\t\t\t\tthis.materials.push( {\n\t\t\t\t\t\t\tname: '',\n\t\t\t\t\t\t\tsmooth: this.smooth\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t}\n\n\t\t\t\t\treturn lastMultiMaterial;\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Inherit previous objects material.\n\t\t\t// Spec tells us that a declared material must be set to all objects until a new material is declared.\n\t\t\t// If a usemtl declaration is encountered while this new object is being parsed, it will\n\t\t\t// overwrite the inherited material. Exception being that there was already face declarations\n\t\t\t// to the inherited material, then it will be preserved for proper MultiMaterial continuation.\n\n\t\t\tif ( previousMaterial && previousMaterial.name && typeof previousMaterial.clone === 'function' ) {\n\n\t\t\t\tconst declared = previousMaterial.clone( 0 );\n\t\t\t\tdeclared.inherited = true;\n\t\t\t\tthis.object.materials.push( declared );\n\n\t\t\t}\n\n\t\t\tthis.objects.push( this.object );\n\n\t\t},\n\n\t\tfinalize: function () {\n\n\t\t\tif ( this.object && typeof this.object._finalize === 'function' ) {\n\n\t\t\t\tthis.object._finalize( true );\n\n\t\t\t}\n\n\t\t},\n\n\t\tparseVertexIndex: function ( value, len ) {\n\n\t\t\tconst index = parseInt( value, 10 );\n\t\t\treturn ( index >= 0 ? index - 1 : index + len / 3 ) * 3;\n\n\t\t},\n\n\t\tparseNormalIndex: function ( value, len ) {\n\n\t\t\tconst index = parseInt( value, 10 );\n\t\t\treturn ( index >= 0 ? index - 1 : index + len / 3 ) * 3;\n\n\t\t},\n\n\t\tparseUVIndex: function ( value, len ) {\n\n\t\t\tconst index = parseInt( value, 10 );\n\t\t\treturn ( index >= 0 ? index - 1 : index + len / 2 ) * 2;\n\n\t\t},\n\n\t\taddVertex: function ( a, b, c ) {\n\n\t\t\tconst src = this.vertices;\n\t\t\tconst dst = this.object.geometry.vertices;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\t\t\tdst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] );\n\t\t\tdst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] );\n\n\t\t},\n\n\t\taddVertexPoint: function ( a ) {\n\n\t\t\tconst src = this.vertices;\n\t\t\tconst dst = this.object.geometry.vertices;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\n\t\t},\n\n\t\taddVertexLine: function ( a ) {\n\n\t\t\tconst src = this.vertices;\n\t\t\tconst dst = this.object.geometry.vertices;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\n\t\t},\n\n\t\taddNormal: function ( a, b, c ) {\n\n\t\t\tconst src = this.normals;\n\t\t\tconst dst = this.object.geometry.normals;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\t\t\tdst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] );\n\t\t\tdst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] );\n\n\t\t},\n\n\t\taddFaceNormal: function ( a, b, c ) {\n\n\t\t\tconst src = this.vertices;\n\t\t\tconst dst = this.object.geometry.normals;\n\n\t\t\t_vA.fromArray( src, a );\n\t\t\t_vB.fromArray( src, b );\n\t\t\t_vC.fromArray( src, c );\n\n\t\t\t_cb.subVectors( _vC, _vB );\n\t\t\t_ab.subVectors( _vA, _vB );\n\t\t\t_cb.cross( _ab );\n\n\t\t\t_cb.normalize();\n\n\t\t\tdst.push( _cb.x, _cb.y, _cb.z );\n\t\t\tdst.push( _cb.x, _cb.y, _cb.z );\n\t\t\tdst.push( _cb.x, _cb.y, _cb.z );\n\n\t\t},\n\n\t\taddColor: function ( a, b, c ) {\n\n\t\t\tconst src = this.colors;\n\t\t\tconst dst = this.object.geometry.colors;\n\n\t\t\tif ( src[ a ] !== undefined ) dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] );\n\t\t\tif ( src[ b ] !== undefined ) dst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] );\n\t\t\tif ( src[ c ] !== undefined ) dst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] );\n\n\t\t},\n\n\t\taddUV: function ( a, b, c ) {\n\n\t\t\tconst src = this.uvs;\n\t\t\tconst dst = this.object.geometry.uvs;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ] );\n\t\t\tdst.push( src[ b + 0 ], src[ b + 1 ] );\n\t\t\tdst.push( src[ c + 0 ], src[ c + 1 ] );\n\n\t\t},\n\n\t\taddDefaultUV: function () {\n\n\t\t\tconst dst = this.object.geometry.uvs;\n\n\t\t\tdst.push( 0, 0 );\n\t\t\tdst.push( 0, 0 );\n\t\t\tdst.push( 0, 0 );\n\n\t\t},\n\n\t\taddUVLine: function ( a ) {\n\n\t\t\tconst src = this.uvs;\n\t\t\tconst dst = this.object.geometry.uvs;\n\n\t\t\tdst.push( src[ a + 0 ], src[ a + 1 ] );\n\n\t\t},\n\n\t\taddFace: function ( a, b, c, ua, ub, uc, na, nb, nc ) {\n\n\t\t\tconst vLen = this.vertices.length;\n\n\t\t\tlet ia = this.parseVertexIndex( a, vLen );\n\t\t\tlet ib = this.parseVertexIndex( b, vLen );\n\t\t\tlet ic = this.parseVertexIndex( c, vLen );\n\n\t\t\tthis.addVertex( ia, ib, ic );\n\t\t\tthis.addColor( ia, ib, ic );\n\n\t\t\t// normals\n\n\t\t\tif ( na !== undefined && na !== '' ) {\n\n\t\t\t\tconst nLen = this.normals.length;\n\n\t\t\t\tia = this.parseNormalIndex( na, nLen );\n\t\t\t\tib = this.parseNormalIndex( nb, nLen );\n\t\t\t\tic = this.parseNormalIndex( nc, nLen );\n\n\t\t\t\tthis.addNormal( ia, ib, ic );\n\n\t\t\t} else {\n\n\t\t\t\tthis.addFaceNormal( ia, ib, ic );\n\n\t\t\t}\n\n\t\t\t// uvs\n\n\t\t\tif ( ua !== undefined && ua !== '' ) {\n\n\t\t\t\tconst uvLen = this.uvs.length;\n\n\t\t\t\tia = this.parseUVIndex( ua, uvLen );\n\t\t\t\tib = this.parseUVIndex( ub, uvLen );\n\t\t\t\tic = this.parseUVIndex( uc, uvLen );\n\n\t\t\t\tthis.addUV( ia, ib, ic );\n\n\t\t\t\tthis.object.geometry.hasUVIndices = true;\n\n\t\t\t} else {\n\n\t\t\t\t// add placeholder values (for inconsistent face definitions)\n\n\t\t\t\tthis.addDefaultUV();\n\n\t\t\t}\n\n\t\t},\n\n\t\taddPointGeometry: function ( vertices ) {\n\n\t\t\tthis.object.geometry.type = 'Points';\n\n\t\t\tconst vLen = this.vertices.length;\n\n\t\t\tfor ( let vi = 0, l = vertices.length; vi < l; vi ++ ) {\n\n\t\t\t\tconst index = this.parseVertexIndex( vertices[ vi ], vLen );\n\n\t\t\t\tthis.addVertexPoint( index );\n\t\t\t\tthis.addColor( index );\n\n\t\t\t}\n\n\t\t},\n\n\t\taddLineGeometry: function ( vertices, uvs ) {\n\n\t\t\tthis.object.geometry.type = 'Line';\n\n\t\t\tconst vLen = this.vertices.length;\n\t\t\tconst uvLen = this.uvs.length;\n\n\t\t\tfor ( let vi = 0, l = vertices.length; vi < l; vi ++ ) {\n\n\t\t\t\tthis.addVertexLine( this.parseVertexIndex( vertices[ vi ], vLen ) );\n\n\t\t\t}\n\n\t\t\tfor ( let uvi = 0, l = uvs.length; uvi < l; uvi ++ ) {\n\n\t\t\t\tthis.addUVLine( this.parseUVIndex( uvs[ uvi ], uvLen ) );\n\n\t\t\t}\n\n\t\t}\n\n\t};\n\n\tstate.startObject( '', false );\n\n\treturn state;\n\n}\n\n//\n\nclass OBJLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.materials = null;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( text ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tsetMaterials( materials ) {\n\n\t\tthis.materials = materials;\n\n\t\treturn this;\n\n\t}\n\n\tparse( text ) {\n\n\t\tconst state = new ParserState();\n\n\t\tif ( text.indexOf( '\\r\\n' ) !== - 1 ) {\n\n\t\t\t// This is faster than String.split with regex that splits on both\n\t\t\ttext = text.replace( /\\r\\n/g, '\\n' );\n\n\t\t}\n\n\t\tif ( text.indexOf( '\\\\\\n' ) !== - 1 ) {\n\n\t\t\t// join lines separated by a line continuation character (\\)\n\t\t\ttext = text.replace( /\\\\\\n/g, '' );\n\n\t\t}\n\n\t\tconst lines = text.split( '\\n' );\n\t\tlet result = [];\n\n\t\tfor ( let i = 0, l = lines.length; i < l; i ++ ) {\n\n\t\t\tconst line = lines[ i ].trimStart();\n\n\t\t\tif ( line.length === 0 ) continue;\n\n\t\t\tconst lineFirstChar = line.charAt( 0 );\n\n\t\t\t// @todo invoke passed in handler if any\n\t\t\tif ( lineFirstChar === '#' ) continue; // skip comments\n\n\t\t\tif ( lineFirstChar === 'v' ) {\n\n\t\t\t\tconst data = line.split( _face_vertex_data_separator_pattern );\n\n\t\t\t\tswitch ( data[ 0 ] ) {\n\n\t\t\t\t\tcase 'v':\n\t\t\t\t\t\tstate.vertices.push(\n\t\t\t\t\t\t\tparseFloat( data[ 1 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 2 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 3 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( data.length >= 7 ) {\n\n\t\t\t\t\t\t\t_color.setRGB(\n\t\t\t\t\t\t\t\tparseFloat( data[ 4 ] ),\n\t\t\t\t\t\t\t\tparseFloat( data[ 5 ] ),\n\t\t\t\t\t\t\t\tparseFloat( data[ 6 ] ),\n\t\t\t\t\t\t\t\tSRGBColorSpace\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tstate.colors.push( _color.r, _color.g, _color.b );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// if no colors are defined, add placeholders so color and vertex indices match\n\n\t\t\t\t\t\t\tstate.colors.push( undefined, undefined, undefined );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'vn':\n\t\t\t\t\t\tstate.normals.push(\n\t\t\t\t\t\t\tparseFloat( data[ 1 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 2 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 3 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'vt':\n\t\t\t\t\t\tstate.uvs.push(\n\t\t\t\t\t\t\tparseFloat( data[ 1 ] ),\n\t\t\t\t\t\t\tparseFloat( data[ 2 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t} else if ( lineFirstChar === 'f' ) {\n\n\t\t\t\tconst lineData = line.slice( 1 ).trim();\n\t\t\t\tconst vertexData = lineData.split( _face_vertex_data_separator_pattern );\n\t\t\t\tconst faceVertices = [];\n\n\t\t\t\t// Parse the face vertex data into an easy to work with format\n\n\t\t\t\tfor ( let j = 0, jl = vertexData.length; j < jl; j ++ ) {\n\n\t\t\t\t\tconst vertex = vertexData[ j ];\n\n\t\t\t\t\tif ( vertex.length > 0 ) {\n\n\t\t\t\t\t\tconst vertexParts = vertex.split( '/' );\n\t\t\t\t\t\tfaceVertices.push( vertexParts );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// Draw an edge between the first vertex and all subsequent vertices to form an n-gon\n\n\t\t\t\tconst v1 = faceVertices[ 0 ];\n\n\t\t\t\tfor ( let j = 1, jl = faceVertices.length - 1; j < jl; j ++ ) {\n\n\t\t\t\t\tconst v2 = faceVertices[ j ];\n\t\t\t\t\tconst v3 = faceVertices[ j + 1 ];\n\n\t\t\t\t\tstate.addFace(\n\t\t\t\t\t\tv1[ 0 ], v2[ 0 ], v3[ 0 ],\n\t\t\t\t\t\tv1[ 1 ], v2[ 1 ], v3[ 1 ],\n\t\t\t\t\t\tv1[ 2 ], v2[ 2 ], v3[ 2 ]\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t} else if ( lineFirstChar === 'l' ) {\n\n\t\t\t\tconst lineParts = line.substring( 1 ).trim().split( ' ' );\n\t\t\t\tlet lineVertices = [];\n\t\t\t\tconst lineUVs = [];\n\n\t\t\t\tif ( line.indexOf( '/' ) === - 1 ) {\n\n\t\t\t\t\tlineVertices = lineParts;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tfor ( let li = 0, llen = lineParts.length; li < llen; li ++ ) {\n\n\t\t\t\t\t\tconst parts = lineParts[ li ].split( '/' );\n\n\t\t\t\t\t\tif ( parts[ 0 ] !== '' ) lineVertices.push( parts[ 0 ] );\n\t\t\t\t\t\tif ( parts[ 1 ] !== '' ) lineUVs.push( parts[ 1 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.addLineGeometry( lineVertices, lineUVs );\n\n\t\t\t} else if ( lineFirstChar === 'p' ) {\n\n\t\t\t\tconst lineData = line.slice( 1 ).trim();\n\t\t\t\tconst pointData = lineData.split( ' ' );\n\n\t\t\t\tstate.addPointGeometry( pointData );\n\n\t\t\t} else if ( ( result = _object_pattern.exec( line ) ) !== null ) {\n\n\t\t\t\t// o object_name\n\t\t\t\t// or\n\t\t\t\t// g group_name\n\n\t\t\t\t// WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869\n\t\t\t\t// let name = result[ 0 ].slice( 1 ).trim();\n\t\t\t\tconst name = ( ' ' + result[ 0 ].slice( 1 ).trim() ).slice( 1 );\n\n\t\t\t\tstate.startObject( name );\n\n\t\t\t} else if ( _material_use_pattern.test( line ) ) {\n\n\t\t\t\t// material\n\n\t\t\t\tstate.object.startMaterial( line.substring( 7 ).trim(), state.materialLibraries );\n\n\t\t\t} else if ( _material_library_pattern.test( line ) ) {\n\n\t\t\t\t// mtl file\n\n\t\t\t\tstate.materialLibraries.push( line.substring( 7 ).trim() );\n\n\t\t\t} else if ( _map_use_pattern.test( line ) ) {\n\n\t\t\t\t// the line is parsed but ignored since the loader assumes textures are defined MTL files\n\t\t\t\t// (according to https://www.okino.com/conv/imp_wave.htm, 'usemap' is the old-style Wavefront texture reference method)\n\n\t\t\t\tconsole.warn( 'THREE.OBJLoader: Rendering identifier \"usemap\" not supported. Textures must be defined in MTL files.' );\n\n\t\t\t} else if ( lineFirstChar === 's' ) {\n\n\t\t\t\tresult = line.split( ' ' );\n\n\t\t\t\t// smooth shading\n\n\t\t\t\t// @todo Handle files that have varying smooth values for a set of faces inside one geometry,\n\t\t\t\t// but does not define a usemtl for each face set.\n\t\t\t\t// This should be detected and a dummy material created (later MultiMaterial and geometry groups).\n\t\t\t\t// This requires some care to not create extra material on each smooth value for \"normal\" obj files.\n\t\t\t\t// where explicit usemtl defines geometry groups.\n\t\t\t\t// Example asset: examples/models/obj/cerberus/Cerberus.obj\n\n\t\t\t\t/*\n\t\t\t\t\t * http://paulbourke.net/dataformats/obj/\n\t\t\t\t\t *\n\t\t\t\t\t * From chapter \"Grouping\" Syntax explanation \"s group_number\":\n\t\t\t\t\t * \"group_number is the smoothing group number. To turn off smoothing groups, use a value of 0 or off.\n\t\t\t\t\t * Polygonal elements use group numbers to put elements in different smoothing groups. For free-form\n\t\t\t\t\t * surfaces, smoothing groups are either turned on or off; there is no difference between values greater\n\t\t\t\t\t * than 0.\"\n\t\t\t\t\t */\n\t\t\t\tif ( result.length > 1 ) {\n\n\t\t\t\t\tconst value = result[ 1 ].trim().toLowerCase();\n\t\t\t\t\tstate.object.smooth = ( value !== '0' && value !== 'off' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// ZBrush can produce \"s\" lines #11707\n\t\t\t\t\tstate.object.smooth = true;\n\n\t\t\t\t}\n\n\t\t\t\tconst material = state.object.currentMaterial();\n\t\t\t\tif ( material ) material.smooth = state.object.smooth;\n\n\t\t\t} else {\n\n\t\t\t\t// Handle null terminated files without exception\n\t\t\t\tif ( line === '\\0' ) continue;\n\n\t\t\t\tconsole.warn( 'THREE.OBJLoader: Unexpected line: \"' + line + '\"' );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.finalize();\n\n\t\tconst container = new Group();\n\t\tcontainer.materialLibraries = [].concat( state.materialLibraries );\n\n\t\tconst hasPrimitives = ! ( state.objects.length === 1 && state.objects[ 0 ].geometry.vertices.length === 0 );\n\n\t\tif ( hasPrimitives === true ) {\n\n\t\t\tfor ( let i = 0, l = state.objects.length; i < l; i ++ ) {\n\n\t\t\t\tconst object = state.objects[ i ];\n\t\t\t\tconst geometry = object.geometry;\n\t\t\t\tconst materials = object.materials;\n\t\t\t\tconst isLine = ( geometry.type === 'Line' );\n\t\t\t\tconst isPoints = ( geometry.type === 'Points' );\n\t\t\t\tlet hasVertexColors = false;\n\n\t\t\t\t// Skip o/g line declarations that did not follow with any faces\n\t\t\t\tif ( geometry.vertices.length === 0 ) continue;\n\n\t\t\t\tconst buffergeometry = new BufferGeometry();\n\n\t\t\t\tbuffergeometry.setAttribute( 'position', new Float32BufferAttribute( geometry.vertices, 3 ) );\n\n\t\t\t\tif ( geometry.normals.length > 0 ) {\n\n\t\t\t\t\tbuffergeometry.setAttribute( 'normal', new Float32BufferAttribute( geometry.normals, 3 ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometry.colors.length > 0 ) {\n\n\t\t\t\t\thasVertexColors = true;\n\t\t\t\t\tbuffergeometry.setAttribute( 'color', new Float32BufferAttribute( geometry.colors, 3 ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometry.hasUVIndices === true ) {\n\n\t\t\t\t\tbuffergeometry.setAttribute( 'uv', new Float32BufferAttribute( geometry.uvs, 2 ) );\n\n\t\t\t\t}\n\n\t\t\t\t// Create materials\n\n\t\t\t\tconst createdMaterials = [];\n\n\t\t\t\tfor ( let mi = 0, miLen = materials.length; mi < miLen; mi ++ ) {\n\n\t\t\t\t\tconst sourceMaterial = materials[ mi ];\n\t\t\t\t\tconst materialHash = sourceMaterial.name + '_' + sourceMaterial.smooth + '_' + hasVertexColors;\n\t\t\t\t\tlet material = state.materials[ materialHash ];\n\n\t\t\t\t\tif ( this.materials !== null ) {\n\n\t\t\t\t\t\tmaterial = this.materials.create( sourceMaterial.name );\n\n\t\t\t\t\t\t// mtl etc. loaders probably can't create line materials correctly, copy properties to a line material.\n\t\t\t\t\t\tif ( isLine && material && ! ( material instanceof LineBasicMaterial ) ) {\n\n\t\t\t\t\t\t\tconst materialLine = new LineBasicMaterial();\n\t\t\t\t\t\t\tMaterial.prototype.copy.call( materialLine, material );\n\t\t\t\t\t\t\tmaterialLine.color.copy( material.color );\n\t\t\t\t\t\t\tmaterial = materialLine;\n\n\t\t\t\t\t\t} else if ( isPoints && material && ! ( material instanceof PointsMaterial ) ) {\n\n\t\t\t\t\t\t\tconst materialPoints = new PointsMaterial( { size: 10, sizeAttenuation: false } );\n\t\t\t\t\t\t\tMaterial.prototype.copy.call( materialPoints, material );\n\t\t\t\t\t\t\tmaterialPoints.color.copy( material.color );\n\t\t\t\t\t\t\tmaterialPoints.map = material.map;\n\t\t\t\t\t\t\tmaterial = materialPoints;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( material === undefined ) {\n\n\t\t\t\t\t\tif ( isLine ) {\n\n\t\t\t\t\t\t\tmaterial = new LineBasicMaterial();\n\n\t\t\t\t\t\t} else if ( isPoints ) {\n\n\t\t\t\t\t\t\tmaterial = new PointsMaterial( { size: 1, sizeAttenuation: false } );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tmaterial = new MeshPhongMaterial();\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaterial.name = sourceMaterial.name;\n\t\t\t\t\t\tmaterial.flatShading = sourceMaterial.smooth ? false : true;\n\t\t\t\t\t\tmaterial.vertexColors = hasVertexColors;\n\n\t\t\t\t\t\tstate.materials[ materialHash ] = material;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcreatedMaterials.push( material );\n\n\t\t\t\t}\n\n\t\t\t\t// Create mesh\n\n\t\t\t\tlet mesh;\n\n\t\t\t\tif ( createdMaterials.length > 1 ) {\n\n\t\t\t\t\tfor ( let mi = 0, miLen = materials.length; mi < miLen; mi ++ ) {\n\n\t\t\t\t\t\tconst sourceMaterial = materials[ mi ];\n\t\t\t\t\t\tbuffergeometry.addGroup( sourceMaterial.groupStart, sourceMaterial.groupCount, mi );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( isLine ) {\n\n\t\t\t\t\t\tmesh = new LineSegments( buffergeometry, createdMaterials );\n\n\t\t\t\t\t} else if ( isPoints ) {\n\n\t\t\t\t\t\tmesh = new Points( buffergeometry, createdMaterials );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tmesh = new Mesh( buffergeometry, createdMaterials );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( isLine ) {\n\n\t\t\t\t\t\tmesh = new LineSegments( buffergeometry, createdMaterials[ 0 ] );\n\n\t\t\t\t\t} else if ( isPoints ) {\n\n\t\t\t\t\t\tmesh = new Points( buffergeometry, createdMaterials[ 0 ] );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tmesh = new Mesh( buffergeometry, createdMaterials[ 0 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tmesh.name = object.name;\n\n\t\t\t\tcontainer.add( mesh );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// if there is only the default parser state object with no geometry data, interpret data as point cloud\n\n\t\t\tif ( state.vertices.length > 0 ) {\n\n\t\t\t\tconst material = new PointsMaterial( { size: 1, sizeAttenuation: false } );\n\n\t\t\t\tconst buffergeometry = new BufferGeometry();\n\n\t\t\t\tbuffergeometry.setAttribute( 'position', new Float32BufferAttribute( state.vertices, 3 ) );\n\n\t\t\t\tif ( state.colors.length > 0 && state.colors[ 0 ] !== undefined ) {\n\n\t\t\t\t\tbuffergeometry.setAttribute( 'color', new Float32BufferAttribute( state.colors, 3 ) );\n\t\t\t\t\tmaterial.vertexColors = true;\n\n\t\t\t\t}\n\n\t\t\t\tconst points = new Points( buffergeometry, material );\n\t\t\t\tcontainer.add( points );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn container;\n\n\t}\n\n}\n\nexport { OBJLoader };\n","import {\n\tColor,\n\tColorManagement,\n\tDefaultLoadingManager,\n\tFileLoader,\n\tFrontSide,\n\tLoader,\n\tLoaderUtils,\n\tMeshPhongMaterial,\n\tRepeatWrapping,\n\tTextureLoader,\n\tVector2,\n\tSRGBColorSpace\n} from 'three';\n\n/**\n * Loads a Wavefront .mtl file specifying materials\n */\n\nclass MTLLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\t/**\n\t * Loads and parses a MTL asset from a URL.\n\t *\n\t * @param {String} url - URL to the MTL file.\n\t * @param {Function} [onLoad] - Callback invoked with the loaded object.\n\t * @param {Function} [onProgress] - Callback for download progress.\n\t * @param {Function} [onError] - Callback for download errors.\n\t *\n\t * @see setPath setResourcePath\n\t *\n\t * @note In order for relative texture references to resolve correctly\n\t * you must call setResourcePath() explicitly prior to load.\n\t */\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( text, path ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tsetMaterialOptions( value ) {\n\n\t\tthis.materialOptions = value;\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Parses a MTL file.\n\t *\n\t * @param {String} text - Content of MTL file\n\t * @return {MaterialCreator}\n\t *\n\t * @see setPath setResourcePath\n\t *\n\t * @note In order for relative texture references to resolve correctly\n\t * you must call setResourcePath() explicitly prior to parse.\n\t */\n\tparse( text, path ) {\n\n\t\tconst lines = text.split( '\\n' );\n\t\tlet info = {};\n\t\tconst delimiter_pattern = /\\s+/;\n\t\tconst materialsInfo = {};\n\n\t\tfor ( let i = 0; i < lines.length; i ++ ) {\n\n\t\t\tlet line = lines[ i ];\n\t\t\tline = line.trim();\n\n\t\t\tif ( line.length === 0 || line.charAt( 0 ) === '#' ) {\n\n\t\t\t\t// Blank line or comment ignore\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst pos = line.indexOf( ' ' );\n\n\t\t\tlet key = ( pos >= 0 ) ? line.substring( 0, pos ) : line;\n\t\t\tkey = key.toLowerCase();\n\n\t\t\tlet value = ( pos >= 0 ) ? line.substring( pos + 1 ) : '';\n\t\t\tvalue = value.trim();\n\n\t\t\tif ( key === 'newmtl' ) {\n\n\t\t\t\t// New material\n\n\t\t\t\tinfo = { name: value };\n\t\t\t\tmaterialsInfo[ value ] = info;\n\n\t\t\t} else {\n\n\t\t\t\tif ( key === 'ka' || key === 'kd' || key === 'ks' || key === 'ke' ) {\n\n\t\t\t\t\tconst ss = value.split( delimiter_pattern, 3 );\n\t\t\t\t\tinfo[ key ] = [ parseFloat( ss[ 0 ] ), parseFloat( ss[ 1 ] ), parseFloat( ss[ 2 ] ) ];\n\n\t\t\t\t} else {\n\n\t\t\t\t\tinfo[ key ] = value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst materialCreator = new MaterialCreator( this.resourcePath || path, this.materialOptions );\n\t\tmaterialCreator.setCrossOrigin( this.crossOrigin );\n\t\tmaterialCreator.setManager( this.manager );\n\t\tmaterialCreator.setMaterials( materialsInfo );\n\t\treturn materialCreator;\n\n\t}\n\n}\n\n/**\n * Create a new MTLLoader.MaterialCreator\n * @param baseUrl - Url relative to which textures are loaded\n * @param options - Set of options on how to construct the materials\n * side: Which side to apply the material\n * FrontSide (default), THREE.BackSide, THREE.DoubleSide\n * wrap: What type of wrapping to apply for textures\n * RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping\n * normalizeRGB: RGBs need to be normalized to 0-1 from 0-255\n * Default: false, assumed to be already normalized\n * ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's\n * Default: false\n * @constructor\n */\n\nclass MaterialCreator {\n\n\tconstructor( baseUrl = '', options = {} ) {\n\n\t\tthis.baseUrl = baseUrl;\n\t\tthis.options = options;\n\t\tthis.materialsInfo = {};\n\t\tthis.materials = {};\n\t\tthis.materialsArray = [];\n\t\tthis.nameLookup = {};\n\n\t\tthis.crossOrigin = 'anonymous';\n\n\t\tthis.side = ( this.options.side !== undefined ) ? this.options.side : FrontSide;\n\t\tthis.wrap = ( this.options.wrap !== undefined ) ? this.options.wrap : RepeatWrapping;\n\n\t}\n\n\tsetCrossOrigin( value ) {\n\n\t\tthis.crossOrigin = value;\n\t\treturn this;\n\n\t}\n\n\tsetManager( value ) {\n\n\t\tthis.manager = value;\n\n\t}\n\n\tsetMaterials( materialsInfo ) {\n\n\t\tthis.materialsInfo = this.convert( materialsInfo );\n\t\tthis.materials = {};\n\t\tthis.materialsArray = [];\n\t\tthis.nameLookup = {};\n\n\t}\n\n\tconvert( materialsInfo ) {\n\n\t\tif ( ! this.options ) return materialsInfo;\n\n\t\tconst converted = {};\n\n\t\tfor ( const mn in materialsInfo ) {\n\n\t\t\t// Convert materials info into normalized form based on options\n\n\t\t\tconst mat = materialsInfo[ mn ];\n\n\t\t\tconst covmat = {};\n\n\t\t\tconverted[ mn ] = covmat;\n\n\t\t\tfor ( const prop in mat ) {\n\n\t\t\t\tlet save = true;\n\t\t\t\tlet value = mat[ prop ];\n\t\t\t\tconst lprop = prop.toLowerCase();\n\n\t\t\t\tswitch ( lprop ) {\n\n\t\t\t\t\tcase 'kd':\n\t\t\t\t\tcase 'ka':\n\t\t\t\t\tcase 'ks':\n\n\t\t\t\t\t\t// Diffuse color (color under white light) using RGB values\n\n\t\t\t\t\t\tif ( this.options && this.options.normalizeRGB ) {\n\n\t\t\t\t\t\t\tvalue = [ value[ 0 ] / 255, value[ 1 ] / 255, value[ 2 ] / 255 ];\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( this.options && this.options.ignoreZeroRGBs ) {\n\n\t\t\t\t\t\t\tif ( value[ 0 ] === 0 && value[ 1 ] === 0 && value[ 2 ] === 0 ) {\n\n\t\t\t\t\t\t\t\t// ignore\n\n\t\t\t\t\t\t\t\tsave = false;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tif ( save ) {\n\n\t\t\t\t\tcovmat[ lprop ] = value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn converted;\n\n\t}\n\n\tpreload() {\n\n\t\tfor ( const mn in this.materialsInfo ) {\n\n\t\t\tthis.create( mn );\n\n\t\t}\n\n\t}\n\n\tgetIndex( materialName ) {\n\n\t\treturn this.nameLookup[ materialName ];\n\n\t}\n\n\tgetAsArray() {\n\n\t\tlet index = 0;\n\n\t\tfor ( const mn in this.materialsInfo ) {\n\n\t\t\tthis.materialsArray[ index ] = this.create( mn );\n\t\t\tthis.nameLookup[ mn ] = index;\n\t\t\tindex ++;\n\n\t\t}\n\n\t\treturn this.materialsArray;\n\n\t}\n\n\tcreate( materialName ) {\n\n\t\tif ( this.materials[ materialName ] === undefined ) {\n\n\t\t\tthis.createMaterial_( materialName );\n\n\t\t}\n\n\t\treturn this.materials[ materialName ];\n\n\t}\n\n\tcreateMaterial_( materialName ) {\n\n\t\t// Create material\n\n\t\tconst scope = this;\n\t\tconst mat = this.materialsInfo[ materialName ];\n\t\tconst params = {\n\n\t\t\tname: materialName,\n\t\t\tside: this.side\n\n\t\t};\n\n\t\tfunction resolveURL( baseUrl, url ) {\n\n\t\t\tif ( typeof url !== 'string' || url === '' )\n\t\t\t\treturn '';\n\n\t\t\t// Absolute URL\n\t\t\tif ( /^https?:\\/\\//i.test( url ) ) return url;\n\n\t\t\treturn baseUrl + url;\n\n\t\t}\n\n\t\tfunction setMapForType( mapType, value ) {\n\n\t\t\tif ( params[ mapType ] ) return; // Keep the first encountered texture\n\n\t\t\tconst texParams = scope.getTextureParams( value, params );\n\t\t\tconst map = scope.loadTexture( resolveURL( scope.baseUrl, texParams.url ) );\n\n\t\t\tmap.repeat.copy( texParams.scale );\n\t\t\tmap.offset.copy( texParams.offset );\n\n\t\t\tmap.wrapS = scope.wrap;\n\t\t\tmap.wrapT = scope.wrap;\n\n\t\t\tif ( mapType === 'map' || mapType === 'emissiveMap' ) {\n\n\t\t\t\tmap.colorSpace = SRGBColorSpace;\n\n\t\t\t}\n\n\t\t\tparams[ mapType ] = map;\n\n\t\t}\n\n\t\tfor ( const prop in mat ) {\n\n\t\t\tconst value = mat[ prop ];\n\t\t\tlet n;\n\n\t\t\tif ( value === '' ) continue;\n\n\t\t\tswitch ( prop.toLowerCase() ) {\n\n\t\t\t\t// Ns is material specular exponent\n\n\t\t\t\tcase 'kd':\n\n\t\t\t\t\t// Diffuse color (color under white light) using RGB values\n\n\t\t\t\t\tparams.color = ColorManagement.toWorkingColorSpace( new Color().fromArray( value ), SRGBColorSpace );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ks':\n\n\t\t\t\t\t// Specular color (color when light is reflected from shiny surface) using RGB values\n\t\t\t\t\tparams.specular = ColorManagement.toWorkingColorSpace( new Color().fromArray( value ), SRGBColorSpace );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ke':\n\n\t\t\t\t\t// Emissive using RGB values\n\t\t\t\t\tparams.emissive = ColorManagement.toWorkingColorSpace( new Color().fromArray( value ), SRGBColorSpace );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_kd':\n\n\t\t\t\t\t// Diffuse texture map\n\n\t\t\t\t\tsetMapForType( 'map', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_ks':\n\n\t\t\t\t\t// Specular map\n\n\t\t\t\t\tsetMapForType( 'specularMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_ke':\n\n\t\t\t\t\t// Emissive map\n\n\t\t\t\t\tsetMapForType( 'emissiveMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'norm':\n\n\t\t\t\t\tsetMapForType( 'normalMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_bump':\n\t\t\t\tcase 'bump':\n\n\t\t\t\t\t// Bump texture map\n\n\t\t\t\t\tsetMapForType( 'bumpMap', value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map_d':\n\n\t\t\t\t\t// Alpha map\n\n\t\t\t\t\tsetMapForType( 'alphaMap', value );\n\t\t\t\t\tparams.transparent = true;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ns':\n\n\t\t\t\t\t// The specular exponent (defines the focus of the specular highlight)\n\t\t\t\t\t// A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000.\n\n\t\t\t\t\tparams.shininess = parseFloat( value );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'd':\n\t\t\t\t\tn = parseFloat( value );\n\n\t\t\t\t\tif ( n < 1 ) {\n\n\t\t\t\t\t\tparams.opacity = n;\n\t\t\t\t\t\tparams.transparent = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'tr':\n\t\t\t\t\tn = parseFloat( value );\n\n\t\t\t\t\tif ( this.options && this.options.invertTrProperty ) n = 1 - n;\n\n\t\t\t\t\tif ( n > 0 ) {\n\n\t\t\t\t\t\tparams.opacity = 1 - n;\n\t\t\t\t\t\tparams.transparent = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.materials[ materialName ] = new MeshPhongMaterial( params );\n\t\treturn this.materials[ materialName ];\n\n\t}\n\n\tgetTextureParams( value, matParams ) {\n\n\t\tconst texParams = {\n\n\t\t\tscale: new Vector2( 1, 1 ),\n\t\t\toffset: new Vector2( 0, 0 )\n\n\t\t };\n\n\t\tconst items = value.split( /\\s+/ );\n\t\tlet pos;\n\n\t\tpos = items.indexOf( '-bm' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\tmatParams.bumpScale = parseFloat( items[ pos + 1 ] );\n\t\t\titems.splice( pos, 2 );\n\n\t\t}\n\n\t\tpos = items.indexOf( '-s' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\ttexParams.scale.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) );\n\t\t\titems.splice( pos, 4 ); // we expect 3 parameters here!\n\n\t\t}\n\n\t\tpos = items.indexOf( '-o' );\n\n\t\tif ( pos >= 0 ) {\n\n\t\t\ttexParams.offset.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) );\n\t\t\titems.splice( pos, 4 ); // we expect 3 parameters here!\n\n\t\t}\n\n\t\ttexParams.url = items.join( ' ' ).trim();\n\t\treturn texParams;\n\n\t}\n\n\tloadTexture( url, mapping, onLoad, onProgress, onError ) {\n\n\t\tconst manager = ( this.manager !== undefined ) ? this.manager : DefaultLoadingManager;\n\t\tlet loader = manager.getHandler( url );\n\n\t\tif ( loader === null ) {\n\n\t\t\tloader = new TextureLoader( manager );\n\n\t\t}\n\n\t\tif ( loader.setCrossOrigin ) loader.setCrossOrigin( this.crossOrigin );\n\n\t\tconst texture = loader.load( url, onLoad, onProgress, onError );\n\n\t\tif ( mapping !== undefined ) texture.mapping = mapping;\n\n\t\treturn texture;\n\n\t}\n\n}\n\nexport { MTLLoader };\n","/*!\nfflate - fast JavaScript compression/decompression\n\nLicensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE\nversion 0.8.2\n*/\n\n// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import {\n\tVector3,\n\tVector4\n} from 'three';\n\n/**\n * NURBS utils\n *\n * See NURBSCurve and NURBSSurface.\n **/\n\n\n/**************************************************************\n *\tNURBS Utils\n **************************************************************/\n\n/*\nFinds knot vector span.\n\np : degree\nu : parametric value\nU : knot vector\n\nreturns the span\n*/\nfunction findSpan( p, u, U ) {\n\n\tconst n = U.length - p - 1;\n\n\tif ( u >= U[ n ] ) {\n\n\t\treturn n - 1;\n\n\t}\n\n\tif ( u <= U[ p ] ) {\n\n\t\treturn p;\n\n\t}\n\n\tlet low = p;\n\tlet high = n;\n\tlet mid = Math.floor( ( low + high ) / 2 );\n\n\twhile ( u < U[ mid ] || u >= U[ mid + 1 ] ) {\n\n\t\tif ( u < U[ mid ] ) {\n\n\t\t\thigh = mid;\n\n\t\t} else {\n\n\t\t\tlow = mid;\n\n\t\t}\n\n\t\tmid = Math.floor( ( low + high ) / 2 );\n\n\t}\n\n\treturn mid;\n\n}\n\n\n/*\nCalculate basis functions. See The NURBS Book, page 70, algorithm A2.2\n\nspan : span in which u lies\nu : parametric point\np : degree\nU : knot vector\n\nreturns array[p+1] with basis functions values.\n*/\nfunction calcBasisFunctions( span, u, p, U ) {\n\n\tconst N = [];\n\tconst left = [];\n\tconst right = [];\n\tN[ 0 ] = 1.0;\n\n\tfor ( let j = 1; j <= p; ++ j ) {\n\n\t\tleft[ j ] = u - U[ span + 1 - j ];\n\t\tright[ j ] = U[ span + j ] - u;\n\n\t\tlet saved = 0.0;\n\n\t\tfor ( let r = 0; r < j; ++ r ) {\n\n\t\t\tconst rv = right[ r + 1 ];\n\t\t\tconst lv = left[ j - r ];\n\t\t\tconst temp = N[ r ] / ( rv + lv );\n\t\t\tN[ r ] = saved + rv * temp;\n\t\t\tsaved = lv * temp;\n\n\t\t}\n\n\t\tN[ j ] = saved;\n\n\t}\n\n\treturn N;\n\n}\n\n\n/*\nCalculate B-Spline curve points. See The NURBS Book, page 82, algorithm A3.1.\n\np : degree of B-Spline\nU : knot vector\nP : control points (x, y, z, w)\nu : parametric point\n\nreturns point for given u\n*/\nfunction calcBSplinePoint( p, U, P, u ) {\n\n\tconst span = findSpan( p, u, U );\n\tconst N = calcBasisFunctions( span, u, p, U );\n\tconst C = new Vector4( 0, 0, 0, 0 );\n\n\tfor ( let j = 0; j <= p; ++ j ) {\n\n\t\tconst point = P[ span - p + j ];\n\t\tconst Nj = N[ j ];\n\t\tconst wNj = point.w * Nj;\n\t\tC.x += point.x * wNj;\n\t\tC.y += point.y * wNj;\n\t\tC.z += point.z * wNj;\n\t\tC.w += point.w * Nj;\n\n\t}\n\n\treturn C;\n\n}\n\n\n/*\nCalculate basis functions derivatives. See The NURBS Book, page 72, algorithm A2.3.\n\nspan : span in which u lies\nu : parametric point\np : degree\nn : number of derivatives to calculate\nU : knot vector\n\nreturns array[n+1][p+1] with basis functions derivatives\n*/\nfunction calcBasisFunctionDerivatives( span, u, p, n, U ) {\n\n\tconst zeroArr = [];\n\tfor ( let i = 0; i <= p; ++ i )\n\t\tzeroArr[ i ] = 0.0;\n\n\tconst ders = [];\n\n\tfor ( let i = 0; i <= n; ++ i )\n\t\tders[ i ] = zeroArr.slice( 0 );\n\n\tconst ndu = [];\n\n\tfor ( let i = 0; i <= p; ++ i )\n\t\tndu[ i ] = zeroArr.slice( 0 );\n\n\tndu[ 0 ][ 0 ] = 1.0;\n\n\tconst left = zeroArr.slice( 0 );\n\tconst right = zeroArr.slice( 0 );\n\n\tfor ( let j = 1; j <= p; ++ j ) {\n\n\t\tleft[ j ] = u - U[ span + 1 - j ];\n\t\tright[ j ] = U[ span + j ] - u;\n\n\t\tlet saved = 0.0;\n\n\t\tfor ( let r = 0; r < j; ++ r ) {\n\n\t\t\tconst rv = right[ r + 1 ];\n\t\t\tconst lv = left[ j - r ];\n\t\t\tndu[ j ][ r ] = rv + lv;\n\n\t\t\tconst temp = ndu[ r ][ j - 1 ] / ndu[ j ][ r ];\n\t\t\tndu[ r ][ j ] = saved + rv * temp;\n\t\t\tsaved = lv * temp;\n\n\t\t}\n\n\t\tndu[ j ][ j ] = saved;\n\n\t}\n\n\tfor ( let j = 0; j <= p; ++ j ) {\n\n\t\tders[ 0 ][ j ] = ndu[ j ][ p ];\n\n\t}\n\n\tfor ( let r = 0; r <= p; ++ r ) {\n\n\t\tlet s1 = 0;\n\t\tlet s2 = 1;\n\n\t\tconst a = [];\n\t\tfor ( let i = 0; i <= p; ++ i ) {\n\n\t\t\ta[ i ] = zeroArr.slice( 0 );\n\n\t\t}\n\n\t\ta[ 0 ][ 0 ] = 1.0;\n\n\t\tfor ( let k = 1; k <= n; ++ k ) {\n\n\t\t\tlet d = 0.0;\n\t\t\tconst rk = r - k;\n\t\t\tconst pk = p - k;\n\n\t\t\tif ( r >= k ) {\n\n\t\t\t\ta[ s2 ][ 0 ] = a[ s1 ][ 0 ] / ndu[ pk + 1 ][ rk ];\n\t\t\t\td = a[ s2 ][ 0 ] * ndu[ rk ][ pk ];\n\n\t\t\t}\n\n\t\t\tconst j1 = ( rk >= - 1 ) ? 1 : - rk;\n\t\t\tconst j2 = ( r - 1 <= pk ) ? k - 1 : p - r;\n\n\t\t\tfor ( let j = j1; j <= j2; ++ j ) {\n\n\t\t\t\ta[ s2 ][ j ] = ( a[ s1 ][ j ] - a[ s1 ][ j - 1 ] ) / ndu[ pk + 1 ][ rk + j ];\n\t\t\t\td += a[ s2 ][ j ] * ndu[ rk + j ][ pk ];\n\n\t\t\t}\n\n\t\t\tif ( r <= pk ) {\n\n\t\t\t\ta[ s2 ][ k ] = - a[ s1 ][ k - 1 ] / ndu[ pk + 1 ][ r ];\n\t\t\t\td += a[ s2 ][ k ] * ndu[ r ][ pk ];\n\n\t\t\t}\n\n\t\t\tders[ k ][ r ] = d;\n\n\t\t\tconst j = s1;\n\t\t\ts1 = s2;\n\t\t\ts2 = j;\n\n\t\t}\n\n\t}\n\n\tlet r = p;\n\n\tfor ( let k = 1; k <= n; ++ k ) {\n\n\t\tfor ( let j = 0; j <= p; ++ j ) {\n\n\t\t\tders[ k ][ j ] *= r;\n\n\t\t}\n\n\t\tr *= p - k;\n\n\t}\n\n\treturn ders;\n\n}\n\n\n/*\n\tCalculate derivatives of a B-Spline. See The NURBS Book, page 93, algorithm A3.2.\n\n\tp : degree\n\tU : knot vector\n\tP : control points\n\tu : Parametric points\n\tnd : number of derivatives\n\n\treturns array[d+1] with derivatives\n\t*/\nfunction calcBSplineDerivatives( p, U, P, u, nd ) {\n\n\tconst du = nd < p ? nd : p;\n\tconst CK = [];\n\tconst span = findSpan( p, u, U );\n\tconst nders = calcBasisFunctionDerivatives( span, u, p, du, U );\n\tconst Pw = [];\n\n\tfor ( let i = 0; i < P.length; ++ i ) {\n\n\t\tconst point = P[ i ].clone();\n\t\tconst w = point.w;\n\n\t\tpoint.x *= w;\n\t\tpoint.y *= w;\n\t\tpoint.z *= w;\n\n\t\tPw[ i ] = point;\n\n\t}\n\n\tfor ( let k = 0; k <= du; ++ k ) {\n\n\t\tconst point = Pw[ span - p ].clone().multiplyScalar( nders[ k ][ 0 ] );\n\n\t\tfor ( let j = 1; j <= p; ++ j ) {\n\n\t\t\tpoint.add( Pw[ span - p + j ].clone().multiplyScalar( nders[ k ][ j ] ) );\n\n\t\t}\n\n\t\tCK[ k ] = point;\n\n\t}\n\n\tfor ( let k = du + 1; k <= nd + 1; ++ k ) {\n\n\t\tCK[ k ] = new Vector4( 0, 0, 0 );\n\n\t}\n\n\treturn CK;\n\n}\n\n\n/*\nCalculate \"K over I\"\n\nreturns k!/(i!(k-i)!)\n*/\nfunction calcKoverI( k, i ) {\n\n\tlet nom = 1;\n\n\tfor ( let j = 2; j <= k; ++ j ) {\n\n\t\tnom *= j;\n\n\t}\n\n\tlet denom = 1;\n\n\tfor ( let j = 2; j <= i; ++ j ) {\n\n\t\tdenom *= j;\n\n\t}\n\n\tfor ( let j = 2; j <= k - i; ++ j ) {\n\n\t\tdenom *= j;\n\n\t}\n\n\treturn nom / denom;\n\n}\n\n\n/*\nCalculate derivatives (0-nd) of rational curve. See The NURBS Book, page 127, algorithm A4.2.\n\nPders : result of function calcBSplineDerivatives\n\nreturns array with derivatives for rational curve.\n*/\nfunction calcRationalCurveDerivatives( Pders ) {\n\n\tconst nd = Pders.length;\n\tconst Aders = [];\n\tconst wders = [];\n\n\tfor ( let i = 0; i < nd; ++ i ) {\n\n\t\tconst point = Pders[ i ];\n\t\tAders[ i ] = new Vector3( point.x, point.y, point.z );\n\t\twders[ i ] = point.w;\n\n\t}\n\n\tconst CK = [];\n\n\tfor ( let k = 0; k < nd; ++ k ) {\n\n\t\tconst v = Aders[ k ].clone();\n\n\t\tfor ( let i = 1; i <= k; ++ i ) {\n\n\t\t\tv.sub( CK[ k - i ].clone().multiplyScalar( calcKoverI( k, i ) * wders[ i ] ) );\n\n\t\t}\n\n\t\tCK[ k ] = v.divideScalar( wders[ 0 ] );\n\n\t}\n\n\treturn CK;\n\n}\n\n\n/*\nCalculate NURBS curve derivatives. See The NURBS Book, page 127, algorithm A4.2.\n\np : degree\nU : knot vector\nP : control points in homogeneous space\nu : parametric points\nnd : number of derivatives\n\nreturns array with derivatives.\n*/\nfunction calcNURBSDerivatives( p, U, P, u, nd ) {\n\n\tconst Pders = calcBSplineDerivatives( p, U, P, u, nd );\n\treturn calcRationalCurveDerivatives( Pders );\n\n}\n\n\n/*\nCalculate rational B-Spline surface point. See The NURBS Book, page 134, algorithm A4.3.\n\np, q : degrees of B-Spline surface\nU, V : knot vectors\nP : control points (x, y, z, w)\nu, v : parametric values\n\nreturns point for given (u, v)\n*/\nfunction calcSurfacePoint( p, q, U, V, P, u, v, target ) {\n\n\tconst uspan = findSpan( p, u, U );\n\tconst vspan = findSpan( q, v, V );\n\tconst Nu = calcBasisFunctions( uspan, u, p, U );\n\tconst Nv = calcBasisFunctions( vspan, v, q, V );\n\tconst temp = [];\n\n\tfor ( let l = 0; l <= q; ++ l ) {\n\n\t\ttemp[ l ] = new Vector4( 0, 0, 0, 0 );\n\t\tfor ( let k = 0; k <= p; ++ k ) {\n\n\t\t\tconst point = P[ uspan - p + k ][ vspan - q + l ].clone();\n\t\t\tconst w = point.w;\n\t\t\tpoint.x *= w;\n\t\t\tpoint.y *= w;\n\t\t\tpoint.z *= w;\n\t\t\ttemp[ l ].add( point.multiplyScalar( Nu[ k ] ) );\n\n\t\t}\n\n\t}\n\n\tconst Sw = new Vector4( 0, 0, 0, 0 );\n\tfor ( let l = 0; l <= q; ++ l ) {\n\n\t\tSw.add( temp[ l ].multiplyScalar( Nv[ l ] ) );\n\n\t}\n\n\tSw.divideScalar( Sw.w );\n\ttarget.set( Sw.x, Sw.y, Sw.z );\n\n}\n\n/*\nCalculate rational B-Spline volume point. See The NURBS Book, page 134, algorithm A4.3.\n\np, q, r : degrees of B-Splinevolume\nU, V, W : knot vectors\nP : control points (x, y, z, w)\nu, v, w : parametric values\n\nreturns point for given (u, v, w)\n*/\nfunction calcVolumePoint( p, q, r, U, V, W, P, u, v, w, target ) {\n\n\tconst uspan = findSpan( p, u, U );\n\tconst vspan = findSpan( q, v, V );\n\tconst wspan = findSpan( r, w, W );\n\tconst Nu = calcBasisFunctions( uspan, u, p, U );\n\tconst Nv = calcBasisFunctions( vspan, v, q, V );\n\tconst Nw = calcBasisFunctions( wspan, w, r, W );\n\tconst temp = [];\n\n\tfor ( let m = 0; m <= r; ++ m ) {\n\n\t\ttemp[ m ] = [];\n\n\t\tfor ( let l = 0; l <= q; ++ l ) {\n\n\t\t\ttemp[ m ][ l ] = new Vector4( 0, 0, 0, 0 );\n\t\t\tfor ( let k = 0; k <= p; ++ k ) {\n\n\t\t\t\tconst point = P[ uspan - p + k ][ vspan - q + l ][ wspan - r + m ].clone();\n\t\t\t\tconst w = point.w;\n\t\t\t\tpoint.x *= w;\n\t\t\t\tpoint.y *= w;\n\t\t\t\tpoint.z *= w;\n\t\t\t\ttemp[ m ][ l ].add( point.multiplyScalar( Nu[ k ] ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\tconst Sw = new Vector4( 0, 0, 0, 0 );\n\tfor ( let m = 0; m <= r; ++ m ) {\n\t\tfor ( let l = 0; l <= q; ++ l ) {\n\n\t\t\tSw.add( temp[ m ][ l ].multiplyScalar( Nw[ m ] ).multiplyScalar( Nv[ l ] ) );\n\n\t\t}\n\t}\n\n\tSw.divideScalar( Sw.w );\n\ttarget.set( Sw.x, Sw.y, Sw.z );\n\n}\n\n\nexport {\n\tfindSpan,\n\tcalcBasisFunctions,\n\tcalcBSplinePoint,\n\tcalcBasisFunctionDerivatives,\n\tcalcBSplineDerivatives,\n\tcalcKoverI,\n\tcalcRationalCurveDerivatives,\n\tcalcNURBSDerivatives,\n\tcalcSurfacePoint,\n\tcalcVolumePoint,\n};\n","import {\n\tCurve,\n\tVector3,\n\tVector4\n} from 'three';\nimport * as NURBSUtils from '../curves/NURBSUtils.js';\n\n/**\n * NURBS curve object\n *\n * Derives from Curve, overriding getPoint and getTangent.\n *\n * Implementation is based on (x, y [, z=0 [, w=1]]) control points with w=weight.\n *\n **/\n\nclass NURBSCurve extends Curve {\n\n\tconstructor(\n\t\tdegree,\n\t\tknots /* array of reals */,\n\t\tcontrolPoints /* array of Vector(2|3|4) */,\n\t\tstartKnot /* index in knots */,\n\t\tendKnot /* index in knots */\n\t) {\n\n\t\tsuper();\n\n\t\tconst knotsLength = knots ? knots.length - 1 : 0;\n\t\tconst pointsLength = controlPoints ? controlPoints.length : 0;\n\n\t\tthis.degree = degree;\n\t\tthis.knots = knots;\n\t\tthis.controlPoints = [];\n\t\t// Used by periodic NURBS to remove hidden spans\n\t\tthis.startKnot = startKnot || 0;\n\t\tthis.endKnot = endKnot || knotsLength;\n\n\t\tfor ( let i = 0; i < pointsLength; ++ i ) {\n\n\t\t\t// ensure Vector4 for control points\n\t\t\tconst point = controlPoints[ i ];\n\t\t\tthis.controlPoints[ i ] = new Vector4( point.x, point.y, point.z, point.w );\n\n\t\t}\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst u = this.knots[ this.startKnot ] + t * ( this.knots[ this.endKnot ] - this.knots[ this.startKnot ] ); // linear mapping t->u\n\n\t\t// following results in (wx, wy, wz, w) homogeneous point\n\t\tconst hpoint = NURBSUtils.calcBSplinePoint( this.degree, this.knots, this.controlPoints, u );\n\n\t\tif ( hpoint.w !== 1.0 ) {\n\n\t\t\t// project to 3D space: (wx, wy, wz, w) -> (x, y, z, 1)\n\t\t\thpoint.divideScalar( hpoint.w );\n\n\t\t}\n\n\t\treturn point.set( hpoint.x, hpoint.y, hpoint.z );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector3() ) {\n\n\t\tconst tangent = optionalTarget;\n\n\t\tconst u = this.knots[ 0 ] + t * ( this.knots[ this.knots.length - 1 ] - this.knots[ 0 ] );\n\t\tconst ders = NURBSUtils.calcNURBSDerivatives( this.degree, this.knots, this.controlPoints, u, 1 );\n\t\ttangent.copy( ders[ 1 ] ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.degree = this.degree;\n\t\tdata.knots = [ ...this.knots ];\n\t\tdata.controlPoints = this.controlPoints.map( p => p.toArray() );\n\t\tdata.startKnot = this.startKnot;\n\t\tdata.endKnot = this.endKnot;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.degree = json.degree;\n\t\tthis.knots = [ ...json.knots ];\n\t\tthis.controlPoints = json.controlPoints.map( p => new Vector4( p[ 0 ], p[ 1 ], p[ 2 ], p[ 3 ] ) );\n\t\tthis.startKnot = json.startKnot;\n\t\tthis.endKnot = json.endKnot;\n\n\t\treturn this;\n\n\t}\n\n}\n\nexport { NURBSCurve };","import {\n\tAmbientLight,\n\tAnimationClip,\n\tBone,\n\tBufferGeometry,\n\tClampToEdgeWrapping,\n\tColor,\n\tColorManagement,\n\tDirectionalLight,\n\tEquirectangularReflectionMapping,\n\tEuler,\n\tFileLoader,\n\tFloat32BufferAttribute,\n\tGroup,\n\tLine,\n\tLineBasicMaterial,\n\tLoader,\n\tLoaderUtils,\n\tMathUtils,\n\tMatrix3,\n\tMatrix4,\n\tMesh,\n\tMeshLambertMaterial,\n\tMeshPhongMaterial,\n\tNumberKeyframeTrack,\n\tObject3D,\n\tPerspectiveCamera,\n\tPointLight,\n\tPropertyBinding,\n\tQuaternion,\n\tQuaternionKeyframeTrack,\n\tRepeatWrapping,\n\tSRGBColorSpace,\n\tShapeUtils,\n\tSkeleton,\n\tSkinnedMesh,\n\tSpotLight,\n\tTexture,\n\tTextureLoader,\n\tUint16BufferAttribute,\n\tVector2,\n\tVector3,\n\tVector4,\n\tVectorKeyframeTrack\n} from 'three';\n\nimport * as fflate from '../libs/fflate.module.js';\nimport { NURBSCurve } from '../curves/NURBSCurve.js';\n\n/**\n * Loader loads FBX file and generates Group representing FBX scene.\n * Requires FBX file to be >= 7.0 and in ASCII or >= 6400 in Binary format\n * Versions lower than this may load but will probably have errors\n *\n * Needs Support:\n * Morph normals / blend shape normals\n *\n * FBX format references:\n * \thttps://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_index_html (C++ SDK reference)\n *\n * Binary format specification:\n *\thttps://code.blender.org/2013/08/fbx-binary-file-format-specification/\n */\n\n\nlet fbxTree;\nlet connections;\nlet sceneGraph;\n\nclass FBXLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( scope.path === '' ) ? LoaderUtils.extractUrlBase( url ) : scope.path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( buffer, path ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( FBXBuffer, path ) {\n\n\t\tif ( isFbxFormatBinary( FBXBuffer ) ) {\n\n\t\t\tfbxTree = new BinaryParser().parse( FBXBuffer );\n\n\t\t} else {\n\n\t\t\tconst FBXText = convertArrayBufferToString( FBXBuffer );\n\n\t\t\tif ( ! isFbxFormatASCII( FBXText ) ) {\n\n\t\t\t\tthrow new Error( 'THREE.FBXLoader: Unknown format.' );\n\n\t\t\t}\n\n\t\t\tif ( getFbxVersion( FBXText ) < 7000 ) {\n\n\t\t\t\tthrow new Error( 'THREE.FBXLoader: FBX version not supported, FileVersion: ' + getFbxVersion( FBXText ) );\n\n\t\t\t}\n\n\t\t\tfbxTree = new TextParser().parse( FBXText );\n\n\t\t}\n\n\t\t// console.log( fbxTree );\n\n\t\tconst textureLoader = new TextureLoader( this.manager ).setPath( this.resourcePath || path ).setCrossOrigin( this.crossOrigin );\n\n\t\treturn new FBXTreeParser( textureLoader, this.manager ).parse( fbxTree );\n\n\t}\n\n}\n\n// Parse the FBXTree object returned by the BinaryParser or TextParser and return a Group\nclass FBXTreeParser {\n\n\tconstructor( textureLoader, manager ) {\n\n\t\tthis.textureLoader = textureLoader;\n\t\tthis.manager = manager;\n\n\t}\n\n\tparse() {\n\n\t\tconnections = this.parseConnections();\n\n\t\tconst images = this.parseImages();\n\t\tconst textures = this.parseTextures( images );\n\t\tconst materials = this.parseMaterials( textures );\n\t\tconst deformers = this.parseDeformers();\n\t\tconst geometryMap = new GeometryParser().parse( deformers );\n\n\t\tthis.parseScene( deformers, geometryMap, materials );\n\n\t\treturn sceneGraph;\n\n\t}\n\n\t// Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry )\n\t// and details the connection type\n\tparseConnections() {\n\n\t\tconst connectionMap = new Map();\n\n\t\tif ( 'Connections' in fbxTree ) {\n\n\t\t\tconst rawConnections = fbxTree.Connections.connections;\n\n\t\t\trawConnections.forEach( function ( rawConnection ) {\n\n\t\t\t\tconst fromID = rawConnection[ 0 ];\n\t\t\t\tconst toID = rawConnection[ 1 ];\n\t\t\t\tconst relationship = rawConnection[ 2 ];\n\n\t\t\t\tif ( ! connectionMap.has( fromID ) ) {\n\n\t\t\t\t\tconnectionMap.set( fromID, {\n\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\tchildren: []\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tconst parentRelationship = { ID: toID, relationship: relationship };\n\t\t\t\tconnectionMap.get( fromID ).parents.push( parentRelationship );\n\n\t\t\t\tif ( ! connectionMap.has( toID ) ) {\n\n\t\t\t\t\tconnectionMap.set( toID, {\n\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\tchildren: []\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tconst childRelationship = { ID: fromID, relationship: relationship };\n\t\t\t\tconnectionMap.get( toID ).children.push( childRelationship );\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn connectionMap;\n\n\t}\n\n\t// Parse FBXTree.Objects.Video for embedded image data\n\t// These images are connected to textures in FBXTree.Objects.Textures\n\t// via FBXTree.Connections.\n\tparseImages() {\n\n\t\tconst images = {};\n\t\tconst blobs = {};\n\n\t\tif ( 'Video' in fbxTree.Objects ) {\n\n\t\t\tconst videoNodes = fbxTree.Objects.Video;\n\n\t\t\tfor ( const nodeID in videoNodes ) {\n\n\t\t\t\tconst videoNode = videoNodes[ nodeID ];\n\n\t\t\t\tconst id = parseInt( nodeID );\n\n\t\t\t\timages[ id ] = videoNode.RelativeFilename || videoNode.Filename;\n\n\t\t\t\t// raw image data is in videoNode.Content\n\t\t\t\tif ( 'Content' in videoNode ) {\n\n\t\t\t\t\tconst arrayBufferContent = ( videoNode.Content instanceof ArrayBuffer ) && ( videoNode.Content.byteLength > 0 );\n\t\t\t\t\tconst base64Content = ( typeof videoNode.Content === 'string' ) && ( videoNode.Content !== '' );\n\n\t\t\t\t\tif ( arrayBufferContent || base64Content ) {\n\n\t\t\t\t\t\tconst image = this.parseImage( videoNodes[ nodeID ] );\n\n\t\t\t\t\t\tblobs[ videoNode.RelativeFilename || videoNode.Filename ] = image;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( const id in images ) {\n\n\t\t\tconst filename = images[ id ];\n\n\t\t\tif ( blobs[ filename ] !== undefined ) images[ id ] = blobs[ filename ];\n\t\t\telse images[ id ] = images[ id ].split( '\\\\' ).pop();\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\t// Parse embedded image data in FBXTree.Video.Content\n\tparseImage( videoNode ) {\n\n\t\tconst content = videoNode.Content;\n\t\tconst fileName = videoNode.RelativeFilename || videoNode.Filename;\n\t\tconst extension = fileName.slice( fileName.lastIndexOf( '.' ) + 1 ).toLowerCase();\n\n\t\tlet type;\n\n\t\tswitch ( extension ) {\n\n\t\t\tcase 'bmp':\n\n\t\t\t\ttype = 'image/bmp';\n\t\t\t\tbreak;\n\n\t\t\tcase 'jpg':\n\t\t\tcase 'jpeg':\n\n\t\t\t\ttype = 'image/jpeg';\n\t\t\t\tbreak;\n\n\t\t\tcase 'png':\n\n\t\t\t\ttype = 'image/png';\n\t\t\t\tbreak;\n\n\t\t\tcase 'tif':\n\n\t\t\t\ttype = 'image/tiff';\n\t\t\t\tbreak;\n\n\t\t\tcase 'tga':\n\n\t\t\t\tif ( this.manager.getHandler( '.tga' ) === null ) {\n\n\t\t\t\t\tconsole.warn( 'FBXLoader: TGA loader not found, skipping ', fileName );\n\n\t\t\t\t}\n\n\t\t\t\ttype = 'image/tga';\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'FBXLoader: Image type \"' + extension + '\" is not supported.' );\n\t\t\t\treturn;\n\n\t\t}\n\n\t\tif ( typeof content === 'string' ) { // ASCII format\n\n\t\t\treturn 'data:' + type + ';base64,' + content;\n\n\t\t} else { // Binary Format\n\n\t\t\tconst array = new Uint8Array( content );\n\t\t\treturn window.URL.createObjectURL( new Blob( [ array ], { type: type } ) );\n\n\t\t}\n\n\t}\n\n\t// Parse nodes in FBXTree.Objects.Texture\n\t// These contain details such as UV scaling, cropping, rotation etc and are connected\n\t// to images in FBXTree.Objects.Video\n\tparseTextures( images ) {\n\n\t\tconst textureMap = new Map();\n\n\t\tif ( 'Texture' in fbxTree.Objects ) {\n\n\t\t\tconst textureNodes = fbxTree.Objects.Texture;\n\t\t\tfor ( const nodeID in textureNodes ) {\n\n\t\t\t\tconst texture = this.parseTexture( textureNodes[ nodeID ], images );\n\t\t\t\ttextureMap.set( parseInt( nodeID ), texture );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn textureMap;\n\n\t}\n\n\t// Parse individual node in FBXTree.Objects.Texture\n\tparseTexture( textureNode, images ) {\n\n\t\tconst texture = this.loadTexture( textureNode, images );\n\n\t\ttexture.ID = textureNode.id;\n\n\t\ttexture.name = textureNode.attrName;\n\n\t\tconst wrapModeU = textureNode.WrapModeU;\n\t\tconst wrapModeV = textureNode.WrapModeV;\n\n\t\tconst valueU = wrapModeU !== undefined ? wrapModeU.value : 0;\n\t\tconst valueV = wrapModeV !== undefined ? wrapModeV.value : 0;\n\n\t\t// http://download.autodesk.com/us/fbx/SDKdocs/FBX_SDK_Help/files/fbxsdkref/class_k_fbx_texture.html#889640e63e2e681259ea81061b85143a\n\t\t// 0: repeat(default), 1: clamp\n\n\t\ttexture.wrapS = valueU === 0 ? RepeatWrapping : ClampToEdgeWrapping;\n\t\ttexture.wrapT = valueV === 0 ? RepeatWrapping : ClampToEdgeWrapping;\n\n\t\tif ( 'Scaling' in textureNode ) {\n\n\t\t\tconst values = textureNode.Scaling.value;\n\n\t\t\ttexture.repeat.x = values[ 0 ];\n\t\t\ttexture.repeat.y = values[ 1 ];\n\n\t\t}\n\n\t\tif ( 'Translation' in textureNode ) {\n\n\t\t\tconst values = textureNode.Translation.value;\n\n\t\t\ttexture.offset.x = values[ 0 ];\n\t\t\ttexture.offset.y = values[ 1 ];\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\t// load a texture specified as a blob or data URI, or via an external URL using TextureLoader\n\tloadTexture( textureNode, images ) {\n\n\t\tconst nonNativeExtensions = new Set( [ 'tga', 'tif', 'tiff', 'exr', 'dds', 'hdr', 'ktx2' ] );\n\n\t\tconst extension = textureNode.FileName.split( '.' ).pop().toLowerCase();\n\n\t\tconst loader = nonNativeExtensions.has( extension ) ? this.manager.getHandler( `.${extension}` ) : this.textureLoader;\n\n\t\tif ( ! loader ) {\n\n\t\t\tconsole.warn(\n\t\t\t\t`FBXLoader: ${extension.toUpperCase()} loader not found, creating placeholder texture for`,\n\t\t\t\ttextureNode.RelativeFilename\n\t\t\t);\n\t\t\treturn new Texture();\n\n\t\t}\n\n\t\tconst loaderPath = loader.path;\n\n\t\tif ( ! loaderPath ) {\n\n\t\t\tloader.setPath( this.textureLoader.path );\n\n\t\t}\n\n\t\tconst children = connections.get( textureNode.id ).children;\n\n\t\tlet fileName;\n\n\t\tif ( children !== undefined && children.length > 0 && images[ children[ 0 ].ID ] !== undefined ) {\n\n\t\t\tfileName = images[ children[ 0 ].ID ];\n\n\t\t\tif ( fileName.indexOf( 'blob:' ) === 0 || fileName.indexOf( 'data:' ) === 0 ) {\n\n\t\t\t\tloader.setPath( undefined );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst texture = loader.load( fileName );\n\n\t\t// revert to initial path\n\t\tloader.setPath( loaderPath );\n\n\t\treturn texture;\n\n\t}\n\n\t// Parse nodes in FBXTree.Objects.Material\n\tparseMaterials( textureMap ) {\n\n\t\tconst materialMap = new Map();\n\n\t\tif ( 'Material' in fbxTree.Objects ) {\n\n\t\t\tconst materialNodes = fbxTree.Objects.Material;\n\n\t\t\tfor ( const nodeID in materialNodes ) {\n\n\t\t\t\tconst material = this.parseMaterial( materialNodes[ nodeID ], textureMap );\n\n\t\t\t\tif ( material !== null ) materialMap.set( parseInt( nodeID ), material );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn materialMap;\n\n\t}\n\n\t// Parse single node in FBXTree.Objects.Material\n\t// Materials are connected to texture maps in FBXTree.Objects.Textures\n\t// FBX format currently only supports Lambert and Phong shading models\n\tparseMaterial( materialNode, textureMap ) {\n\n\t\tconst ID = materialNode.id;\n\t\tconst name = materialNode.attrName;\n\t\tlet type = materialNode.ShadingModel;\n\n\t\t// Case where FBX wraps shading model in property object.\n\t\tif ( typeof type === 'object' ) {\n\n\t\t\ttype = type.value;\n\n\t\t}\n\n\t\t// Ignore unused materials which don't have any connections.\n\t\tif ( ! connections.has( ID ) ) return null;\n\n\t\tconst parameters = this.parseParameters( materialNode, textureMap, ID );\n\n\t\tlet material;\n\n\t\tswitch ( type.toLowerCase() ) {\n\n\t\t\tcase 'phong':\n\t\t\t\tmaterial = new MeshPhongMaterial();\n\t\t\t\tbreak;\n\t\t\tcase 'lambert':\n\t\t\t\tmaterial = new MeshLambertMaterial();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.FBXLoader: unknown material type \"%s\". Defaulting to MeshPhongMaterial.', type );\n\t\t\t\tmaterial = new MeshPhongMaterial();\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tmaterial.setValues( parameters );\n\t\tmaterial.name = name;\n\n\t\treturn material;\n\n\t}\n\n\t// Parse FBX material and return parameters suitable for a three.js material\n\t// Also parse the texture map and return any textures associated with the material\n\tparseParameters( materialNode, textureMap, ID ) {\n\n\t\tconst parameters = {};\n\n\t\tif ( materialNode.BumpFactor ) {\n\n\t\t\tparameters.bumpScale = materialNode.BumpFactor.value;\n\n\t\t}\n\n\t\tif ( materialNode.Diffuse ) {\n\n\t\t\tparameters.color = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.Diffuse.value ), SRGBColorSpace );\n\n\t\t} else if ( materialNode.DiffuseColor && ( materialNode.DiffuseColor.type === 'Color' || materialNode.DiffuseColor.type === 'ColorRGB' ) ) {\n\n\t\t\t// The blender exporter exports diffuse here instead of in materialNode.Diffuse\n\t\t\tparameters.color = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.DiffuseColor.value ), SRGBColorSpace );\n\n\t\t}\n\n\t\tif ( materialNode.DisplacementFactor ) {\n\n\t\t\tparameters.displacementScale = materialNode.DisplacementFactor.value;\n\n\t\t}\n\n\t\tif ( materialNode.Emissive ) {\n\n\t\t\tparameters.emissive = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.Emissive.value ), SRGBColorSpace );\n\n\t\t} else if ( materialNode.EmissiveColor && ( materialNode.EmissiveColor.type === 'Color' || materialNode.EmissiveColor.type === 'ColorRGB' ) ) {\n\n\t\t\t// The blender exporter exports emissive color here instead of in materialNode.Emissive\n\t\t\tparameters.emissive = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.EmissiveColor.value ), SRGBColorSpace );\n\n\t\t}\n\n\t\tif ( materialNode.EmissiveFactor ) {\n\n\t\t\tparameters.emissiveIntensity = parseFloat( materialNode.EmissiveFactor.value );\n\n\t\t}\n\n\t\t// the transparency handling is implemented based on Blender/Unity's approach: https://github.com/sobotka/blender-addons/blob/7d80f2f97161fc8e353a657b179b9aa1f8e5280b/io_scene_fbx/import_fbx.py#L1444-L1459\n\n\t\tparameters.opacity = 1 - ( materialNode.TransparencyFactor ? parseFloat( materialNode.TransparencyFactor.value ) : 0 );\n\n\t\tif ( parameters.opacity === 1 || parameters.opacity === 0 ) {\n\n\t\t\tparameters.opacity = ( materialNode.Opacity ? parseFloat( materialNode.Opacity.value ) : null );\n\n\t\t\tif ( parameters.opacity === null ) {\n\n\t\t\t\tparameters.opacity = 1 - ( materialNode.TransparentColor ? parseFloat( materialNode.TransparentColor.value[ 0 ] ) : 0 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( parameters.opacity < 1.0 ) {\n\n\t\t\tparameters.transparent = true;\n\n\t\t}\n\n\t\tif ( materialNode.ReflectionFactor ) {\n\n\t\t\tparameters.reflectivity = materialNode.ReflectionFactor.value;\n\n\t\t}\n\n\t\tif ( materialNode.Shininess ) {\n\n\t\t\tparameters.shininess = materialNode.Shininess.value;\n\n\t\t}\n\n\t\tif ( materialNode.Specular ) {\n\n\t\t\tparameters.specular = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.Specular.value ), SRGBColorSpace );\n\n\t\t} else if ( materialNode.SpecularColor && materialNode.SpecularColor.type === 'Color' ) {\n\n\t\t\t// The blender exporter exports specular color here instead of in materialNode.Specular\n\t\t\tparameters.specular = ColorManagement.toWorkingColorSpace( new Color().fromArray( materialNode.SpecularColor.value ), SRGBColorSpace );\n\n\t\t}\n\n\t\tconst scope = this;\n\t\tconnections.get( ID ).children.forEach( function ( child ) {\n\n\t\t\tconst type = child.relationship;\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 'Bump':\n\t\t\t\t\tparameters.bumpMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Maya|TEX_ao_map':\n\t\t\t\t\tparameters.aoMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'DiffuseColor':\n\t\t\t\tcase 'Maya|TEX_color_map':\n\t\t\t\t\tparameters.map = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tif ( parameters.map !== undefined ) {\n\n\t\t\t\t\t\tparameters.map.colorSpace = SRGBColorSpace;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'DisplacementColor':\n\t\t\t\t\tparameters.displacementMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'EmissiveColor':\n\t\t\t\t\tparameters.emissiveMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tif ( parameters.emissiveMap !== undefined ) {\n\n\t\t\t\t\t\tparameters.emissiveMap.colorSpace = SRGBColorSpace;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'NormalMap':\n\t\t\t\tcase 'Maya|TEX_normal_map':\n\t\t\t\t\tparameters.normalMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ReflectionColor':\n\t\t\t\t\tparameters.envMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tif ( parameters.envMap !== undefined ) {\n\n\t\t\t\t\t\tparameters.envMap.mapping = EquirectangularReflectionMapping;\n\t\t\t\t\t\tparameters.envMap.colorSpace = SRGBColorSpace;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpecularColor':\n\t\t\t\t\tparameters.specularMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tif ( parameters.specularMap !== undefined ) {\n\n\t\t\t\t\t\tparameters.specularMap.colorSpace = SRGBColorSpace;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'TransparentColor':\n\t\t\t\tcase 'TransparencyFactor':\n\t\t\t\t\tparameters.alphaMap = scope.getTexture( textureMap, child.ID );\n\t\t\t\t\tparameters.transparent = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'AmbientColor':\n\t\t\t\tcase 'ShininessExponent': // AKA glossiness map\n\t\t\t\tcase 'SpecularFactor': // AKA specularLevel\n\t\t\t\tcase 'VectorDisplacementColor': // NOTE: Seems to be a copy of DisplacementColor\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: %s map is not supported in three.js, skipping texture.', type );\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn parameters;\n\n\t}\n\n\t// get a texture from the textureMap for use by a material.\n\tgetTexture( textureMap, id ) {\n\n\t\t// if the texture is a layered texture, just use the first layer and issue a warning\n\t\tif ( 'LayeredTexture' in fbxTree.Objects && id in fbxTree.Objects.LayeredTexture ) {\n\n\t\t\tconsole.warn( 'THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer.' );\n\t\t\tid = connections.get( id ).children[ 0 ].ID;\n\n\t\t}\n\n\t\treturn textureMap.get( id );\n\n\t}\n\n\t// Parse nodes in FBXTree.Objects.Deformer\n\t// Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here\n\t// Generates map of Skeleton-like objects for use later when generating and binding skeletons.\n\tparseDeformers() {\n\n\t\tconst skeletons = {};\n\t\tconst morphTargets = {};\n\n\t\tif ( 'Deformer' in fbxTree.Objects ) {\n\n\t\t\tconst DeformerNodes = fbxTree.Objects.Deformer;\n\n\t\t\tfor ( const nodeID in DeformerNodes ) {\n\n\t\t\t\tconst deformerNode = DeformerNodes[ nodeID ];\n\n\t\t\t\tconst relationships = connections.get( parseInt( nodeID ) );\n\n\t\t\t\tif ( deformerNode.attrType === 'Skin' ) {\n\n\t\t\t\t\tconst skeleton = this.parseSkeleton( relationships, DeformerNodes );\n\t\t\t\t\tskeleton.ID = nodeID;\n\n\t\t\t\t\tif ( relationships.parents.length > 1 ) console.warn( 'THREE.FBXLoader: skeleton attached to more than one geometry is not supported.' );\n\t\t\t\t\tskeleton.geometryID = relationships.parents[ 0 ].ID;\n\n\t\t\t\t\tskeletons[ nodeID ] = skeleton;\n\n\t\t\t\t} else if ( deformerNode.attrType === 'BlendShape' ) {\n\n\t\t\t\t\tconst morphTarget = {\n\t\t\t\t\t\tid: nodeID,\n\t\t\t\t\t};\n\n\t\t\t\t\tmorphTarget.rawTargets = this.parseMorphTargets( relationships, DeformerNodes );\n\t\t\t\t\tmorphTarget.id = nodeID;\n\n\t\t\t\t\tif ( relationships.parents.length > 1 ) console.warn( 'THREE.FBXLoader: morph target attached to more than one geometry is not supported.' );\n\n\t\t\t\t\tmorphTargets[ nodeID ] = morphTarget;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\n\t\t\tskeletons: skeletons,\n\t\t\tmorphTargets: morphTargets,\n\n\t\t};\n\n\t}\n\n\t// Parse single nodes in FBXTree.Objects.Deformer\n\t// The top level skeleton node has type 'Skin' and sub nodes have type 'Cluster'\n\t// Each skin node represents a skeleton and each cluster node represents a bone\n\tparseSkeleton( relationships, deformerNodes ) {\n\n\t\tconst rawBones = [];\n\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tconst boneNode = deformerNodes[ child.ID ];\n\n\t\t\tif ( boneNode.attrType !== 'Cluster' ) return;\n\n\t\t\tconst rawBone = {\n\n\t\t\t\tID: child.ID,\n\t\t\t\tindices: [],\n\t\t\t\tweights: [],\n\t\t\t\ttransformLink: new Matrix4().fromArray( boneNode.TransformLink.a ),\n\t\t\t\t// transform: new Matrix4().fromArray( boneNode.Transform.a ),\n\t\t\t\t// linkMode: boneNode.Mode,\n\n\t\t\t};\n\n\t\t\tif ( 'Indexes' in boneNode ) {\n\n\t\t\t\trawBone.indices = boneNode.Indexes.a;\n\t\t\t\trawBone.weights = boneNode.Weights.a;\n\n\t\t\t}\n\n\t\t\trawBones.push( rawBone );\n\n\t\t} );\n\n\t\treturn {\n\n\t\t\trawBones: rawBones,\n\t\t\tbones: []\n\n\t\t};\n\n\t}\n\n\t// The top level morph deformer node has type \"BlendShape\" and sub nodes have type \"BlendShapeChannel\"\n\tparseMorphTargets( relationships, deformerNodes ) {\n\n\t\tconst rawMorphTargets = [];\n\n\t\tfor ( let i = 0; i < relationships.children.length; i ++ ) {\n\n\t\t\tconst child = relationships.children[ i ];\n\n\t\t\tconst morphTargetNode = deformerNodes[ child.ID ];\n\n\t\t\tconst rawMorphTarget = {\n\n\t\t\t\tname: morphTargetNode.attrName,\n\t\t\t\tinitialWeight: morphTargetNode.DeformPercent,\n\t\t\t\tid: morphTargetNode.id,\n\t\t\t\tfullWeights: morphTargetNode.FullWeights.a\n\n\t\t\t};\n\n\t\t\tif ( morphTargetNode.attrType !== 'BlendShapeChannel' ) return;\n\n\t\t\trawMorphTarget.geoID = connections.get( parseInt( child.ID ) ).children.filter( function ( child ) {\n\n\t\t\t\treturn child.relationship === undefined;\n\n\t\t\t} )[ 0 ].ID;\n\n\t\t\trawMorphTargets.push( rawMorphTarget );\n\n\t\t}\n\n\t\treturn rawMorphTargets;\n\n\t}\n\n\t// create the main Group() to be returned by the loader\n\tparseScene( deformers, geometryMap, materialMap ) {\n\n\t\tsceneGraph = new Group();\n\n\t\tconst modelMap = this.parseModels( deformers.skeletons, geometryMap, materialMap );\n\n\t\tconst modelNodes = fbxTree.Objects.Model;\n\n\t\tconst scope = this;\n\t\tmodelMap.forEach( function ( model ) {\n\n\t\t\tconst modelNode = modelNodes[ model.ID ];\n\t\t\tscope.setLookAtProperties( model, modelNode );\n\n\t\t\tconst parentConnections = connections.get( model.ID ).parents;\n\n\t\t\tparentConnections.forEach( function ( connection ) {\n\n\t\t\t\tconst parent = modelMap.get( connection.ID );\n\t\t\t\tif ( parent !== undefined ) parent.add( model );\n\n\t\t\t} );\n\n\t\t\tif ( model.parent === null ) {\n\n\t\t\t\tsceneGraph.add( model );\n\n\t\t\t}\n\n\n\t\t} );\n\n\t\tthis.bindSkeleton( deformers.skeletons, geometryMap, modelMap );\n\n\t\tthis.addGlobalSceneSettings();\n\n\t\tsceneGraph.traverse( function ( node ) {\n\n\t\t\tif ( node.userData.transformData ) {\n\n\t\t\t\tif ( node.parent ) {\n\n\t\t\t\t\tnode.userData.transformData.parentMatrix = node.parent.matrix;\n\t\t\t\t\tnode.userData.transformData.parentMatrixWorld = node.parent.matrixWorld;\n\n\t\t\t\t}\n\n\t\t\t\tconst transform = generateTransform( node.userData.transformData );\n\n\t\t\t\tnode.applyMatrix4( transform );\n\t\t\t\tnode.updateWorldMatrix();\n\n\t\t\t}\n\n\t\t} );\n\n\t\tconst animations = new AnimationParser().parse();\n\n\t\t// if all the models where already combined in a single group, just return that\n\t\tif ( sceneGraph.children.length === 1 && sceneGraph.children[ 0 ].isGroup ) {\n\n\t\t\tsceneGraph.children[ 0 ].animations = animations;\n\t\t\tsceneGraph = sceneGraph.children[ 0 ];\n\n\t\t}\n\n\t\tsceneGraph.animations = animations;\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.Model\n\tparseModels( skeletons, geometryMap, materialMap ) {\n\n\t\tconst modelMap = new Map();\n\t\tconst modelNodes = fbxTree.Objects.Model;\n\n\t\tfor ( const nodeID in modelNodes ) {\n\n\t\t\tconst id = parseInt( nodeID );\n\t\t\tconst node = modelNodes[ nodeID ];\n\t\t\tconst relationships = connections.get( id );\n\n\t\t\tlet model = this.buildSkeleton( relationships, skeletons, id, node.attrName );\n\n\t\t\tif ( ! model ) {\n\n\t\t\t\tswitch ( node.attrType ) {\n\n\t\t\t\t\tcase 'Camera':\n\t\t\t\t\t\tmodel = this.createCamera( relationships );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Light':\n\t\t\t\t\t\tmodel = this.createLight( relationships );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Mesh':\n\t\t\t\t\t\tmodel = this.createMesh( relationships, geometryMap, materialMap );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'NurbsCurve':\n\t\t\t\t\t\tmodel = this.createCurve( relationships, geometryMap );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'LimbNode':\n\t\t\t\t\tcase 'Root':\n\t\t\t\t\t\tmodel = new Bone();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Null':\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tmodel = new Group();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tmodel.name = node.attrName ? PropertyBinding.sanitizeNodeName( node.attrName ) : '';\n\t\t\t\tmodel.userData.originalName = node.attrName;\n\n\t\t\t\tmodel.ID = id;\n\n\t\t\t}\n\n\t\t\tthis.getTransformData( model, node );\n\t\t\tmodelMap.set( id, model );\n\n\t\t}\n\n\t\treturn modelMap;\n\n\t}\n\n\tbuildSkeleton( relationships, skeletons, id, name ) {\n\n\t\tlet bone = null;\n\n\t\trelationships.parents.forEach( function ( parent ) {\n\n\t\t\tfor ( const ID in skeletons ) {\n\n\t\t\t\tconst skeleton = skeletons[ ID ];\n\n\t\t\t\tskeleton.rawBones.forEach( function ( rawBone, i ) {\n\n\t\t\t\t\tif ( rawBone.ID === parent.ID ) {\n\n\t\t\t\t\t\tconst subBone = bone;\n\t\t\t\t\t\tbone = new Bone();\n\n\t\t\t\t\t\tbone.matrixWorld.copy( rawBone.transformLink );\n\n\t\t\t\t\t\t// set name and id here - otherwise in cases where \"subBone\" is created it will not have a name / id\n\n\t\t\t\t\t\tbone.name = name ? PropertyBinding.sanitizeNodeName( name ) : '';\n\t\t\t\t\t\tbone.userData.originalName = name;\n\t\t\t\t\t\tbone.ID = id;\n\n\t\t\t\t\t\tskeleton.bones[ i ] = bone;\n\n\t\t\t\t\t\t// In cases where a bone is shared between multiple meshes\n\t\t\t\t\t\t// duplicate the bone here and and it as a child of the first bone\n\t\t\t\t\t\tif ( subBone !== null ) {\n\n\t\t\t\t\t\t\tbone.add( subBone );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn bone;\n\n\t}\n\n\t// create a PerspectiveCamera or OrthographicCamera\n\tcreateCamera( relationships ) {\n\n\t\tlet model;\n\t\tlet cameraAttribute;\n\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tconst attr = fbxTree.Objects.NodeAttribute[ child.ID ];\n\n\t\t\tif ( attr !== undefined ) {\n\n\t\t\t\tcameraAttribute = attr;\n\n\t\t\t}\n\n\t\t} );\n\n\t\tif ( cameraAttribute === undefined ) {\n\n\t\t\tmodel = new Object3D();\n\n\t\t} else {\n\n\t\t\tlet type = 0;\n\t\t\tif ( cameraAttribute.CameraProjectionType !== undefined && cameraAttribute.CameraProjectionType.value === 1 ) {\n\n\t\t\t\ttype = 1;\n\n\t\t\t}\n\n\t\t\tlet nearClippingPlane = 1;\n\t\t\tif ( cameraAttribute.NearPlane !== undefined ) {\n\n\t\t\t\tnearClippingPlane = cameraAttribute.NearPlane.value / 1000;\n\n\t\t\t}\n\n\t\t\tlet farClippingPlane = 1000;\n\t\t\tif ( cameraAttribute.FarPlane !== undefined ) {\n\n\t\t\t\tfarClippingPlane = cameraAttribute.FarPlane.value / 1000;\n\n\t\t\t}\n\n\n\t\t\tlet width = window.innerWidth;\n\t\t\tlet height = window.innerHeight;\n\n\t\t\tif ( cameraAttribute.AspectWidth !== undefined && cameraAttribute.AspectHeight !== undefined ) {\n\n\t\t\t\twidth = cameraAttribute.AspectWidth.value;\n\t\t\t\theight = cameraAttribute.AspectHeight.value;\n\n\t\t\t}\n\n\t\t\tconst aspect = width / height;\n\n\t\t\tlet fov = 45;\n\t\t\tif ( cameraAttribute.FieldOfView !== undefined ) {\n\n\t\t\t\tfov = cameraAttribute.FieldOfView.value;\n\n\t\t\t}\n\n\t\t\tconst focalLength = cameraAttribute.FocalLength ? cameraAttribute.FocalLength.value : null;\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 0: // Perspective\n\t\t\t\t\tmodel = new PerspectiveCamera( fov, aspect, nearClippingPlane, farClippingPlane );\n\t\t\t\t\tif ( focalLength !== null ) model.setFocalLength( focalLength );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 1: // Orthographic\n\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Orthographic cameras not supported yet.' );\n\t\t\t\t\tmodel = new Object3D();\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Unknown camera type ' + type + '.' );\n\t\t\t\t\tmodel = new Object3D();\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn model;\n\n\t}\n\n\t// Create a DirectionalLight, PointLight or SpotLight\n\tcreateLight( relationships ) {\n\n\t\tlet model;\n\t\tlet lightAttribute;\n\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tconst attr = fbxTree.Objects.NodeAttribute[ child.ID ];\n\n\t\t\tif ( attr !== undefined ) {\n\n\t\t\t\tlightAttribute = attr;\n\n\t\t\t}\n\n\t\t} );\n\n\t\tif ( lightAttribute === undefined ) {\n\n\t\t\tmodel = new Object3D();\n\n\t\t} else {\n\n\t\t\tlet type;\n\n\t\t\t// LightType can be undefined for Point lights\n\t\t\tif ( lightAttribute.LightType === undefined ) {\n\n\t\t\t\ttype = 0;\n\n\t\t\t} else {\n\n\t\t\t\ttype = lightAttribute.LightType.value;\n\n\t\t\t}\n\n\t\t\tlet color = 0xffffff;\n\n\t\t\tif ( lightAttribute.Color !== undefined ) {\n\n\t\t\t\tcolor = ColorManagement.toWorkingColorSpace( new Color().fromArray( lightAttribute.Color.value ), SRGBColorSpace );\n\n\t\t\t}\n\n\t\t\tlet intensity = ( lightAttribute.Intensity === undefined ) ? 1 : lightAttribute.Intensity.value / 100;\n\n\t\t\t// light disabled\n\t\t\tif ( lightAttribute.CastLightOnObject !== undefined && lightAttribute.CastLightOnObject.value === 0 ) {\n\n\t\t\t\tintensity = 0;\n\n\t\t\t}\n\n\t\t\tlet distance = 0;\n\t\t\tif ( lightAttribute.FarAttenuationEnd !== undefined ) {\n\n\t\t\t\tif ( lightAttribute.EnableFarAttenuation !== undefined && lightAttribute.EnableFarAttenuation.value === 0 ) {\n\n\t\t\t\t\tdistance = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdistance = lightAttribute.FarAttenuationEnd.value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// TODO: could this be calculated linearly from FarAttenuationStart to FarAttenuationEnd?\n\t\t\tconst decay = 1;\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 0: // Point\n\t\t\t\t\tmodel = new PointLight( color, intensity, distance, decay );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 1: // Directional\n\t\t\t\t\tmodel = new DirectionalLight( color, intensity );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2: // Spot\n\t\t\t\t\tlet angle = Math.PI / 3;\n\n\t\t\t\t\tif ( lightAttribute.InnerAngle !== undefined ) {\n\n\t\t\t\t\t\tangle = MathUtils.degToRad( lightAttribute.InnerAngle.value );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlet penumbra = 0;\n\t\t\t\t\tif ( lightAttribute.OuterAngle !== undefined ) {\n\n\t\t\t\t\t\t// TODO: this is not correct - FBX calculates outer and inner angle in degrees\n\t\t\t\t\t\t// with OuterAngle > InnerAngle && OuterAngle <= Math.PI\n\t\t\t\t\t\t// while three.js uses a penumbra between (0, 1) to attenuate the inner angle\n\t\t\t\t\t\tpenumbra = MathUtils.degToRad( lightAttribute.OuterAngle.value );\n\t\t\t\t\t\tpenumbra = Math.max( penumbra, 1 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tmodel = new SpotLight( color, intensity, distance, angle, penumbra, decay );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Unknown light type ' + lightAttribute.LightType.value + ', defaulting to a PointLight.' );\n\t\t\t\t\tmodel = new PointLight( color, intensity );\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( lightAttribute.CastShadows !== undefined && lightAttribute.CastShadows.value === 1 ) {\n\n\t\t\t\tmodel.castShadow = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn model;\n\n\t}\n\n\tcreateMesh( relationships, geometryMap, materialMap ) {\n\n\t\tlet model;\n\t\tlet geometry = null;\n\t\tlet material = null;\n\t\tconst materials = [];\n\n\t\t// get geometry and materials(s) from connections\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tif ( geometryMap.has( child.ID ) ) {\n\n\t\t\t\tgeometry = geometryMap.get( child.ID );\n\n\t\t\t}\n\n\t\t\tif ( materialMap.has( child.ID ) ) {\n\n\t\t\t\tmaterials.push( materialMap.get( child.ID ) );\n\n\t\t\t}\n\n\t\t} );\n\n\t\tif ( materials.length > 1 ) {\n\n\t\t\tmaterial = materials;\n\n\t\t} else if ( materials.length > 0 ) {\n\n\t\t\tmaterial = materials[ 0 ];\n\n\t\t} else {\n\n\t\t\tmaterial = new MeshPhongMaterial( {\n\t\t\t\tname: Loader.DEFAULT_MATERIAL_NAME,\n\t\t\t\tcolor: 0xcccccc\n\t\t\t} );\n\t\t\tmaterials.push( material );\n\n\t\t}\n\n\t\tif ( 'color' in geometry.attributes ) {\n\n\t\t\tmaterials.forEach( function ( material ) {\n\n\t\t\t\tmaterial.vertexColors = true;\n\n\t\t\t} );\n\n\t\t}\n\n\t\tif ( geometry.FBX_Deformer ) {\n\n\t\t\tmodel = new SkinnedMesh( geometry, material );\n\t\t\tmodel.normalizeSkinWeights();\n\n\t\t} else {\n\n\t\t\tmodel = new Mesh( geometry, material );\n\n\t\t}\n\n\t\treturn model;\n\n\t}\n\n\tcreateCurve( relationships, geometryMap ) {\n\n\t\tconst geometry = relationships.children.reduce( function ( geo, child ) {\n\n\t\t\tif ( geometryMap.has( child.ID ) ) geo = geometryMap.get( child.ID );\n\n\t\t\treturn geo;\n\n\t\t}, null );\n\n\t\t// FBX does not list materials for Nurbs lines, so we'll just put our own in here.\n\t\tconst material = new LineBasicMaterial( {\n\t\t\tname: Loader.DEFAULT_MATERIAL_NAME,\n\t\t\tcolor: 0x3300ff,\n\t\t\tlinewidth: 1\n\t\t} );\n\t\treturn new Line( geometry, material );\n\n\t}\n\n\t// parse the model node for transform data\n\tgetTransformData( model, modelNode ) {\n\n\t\tconst transformData = {};\n\n\t\tif ( 'InheritType' in modelNode ) transformData.inheritType = parseInt( modelNode.InheritType.value );\n\n\t\tif ( 'RotationOrder' in modelNode ) transformData.eulerOrder = getEulerOrder( modelNode.RotationOrder.value );\n\t\telse transformData.eulerOrder = getEulerOrder( 0 );\n\n\t\tif ( 'Lcl_Translation' in modelNode ) transformData.translation = modelNode.Lcl_Translation.value;\n\n\t\tif ( 'PreRotation' in modelNode ) transformData.preRotation = modelNode.PreRotation.value;\n\t\tif ( 'Lcl_Rotation' in modelNode ) transformData.rotation = modelNode.Lcl_Rotation.value;\n\t\tif ( 'PostRotation' in modelNode ) transformData.postRotation = modelNode.PostRotation.value;\n\n\t\tif ( 'Lcl_Scaling' in modelNode ) transformData.scale = modelNode.Lcl_Scaling.value;\n\n\t\tif ( 'ScalingOffset' in modelNode ) transformData.scalingOffset = modelNode.ScalingOffset.value;\n\t\tif ( 'ScalingPivot' in modelNode ) transformData.scalingPivot = modelNode.ScalingPivot.value;\n\n\t\tif ( 'RotationOffset' in modelNode ) transformData.rotationOffset = modelNode.RotationOffset.value;\n\t\tif ( 'RotationPivot' in modelNode ) transformData.rotationPivot = modelNode.RotationPivot.value;\n\n\t\tmodel.userData.transformData = transformData;\n\n\t}\n\n\tsetLookAtProperties( model, modelNode ) {\n\n\t\tif ( 'LookAtProperty' in modelNode ) {\n\n\t\t\tconst children = connections.get( model.ID ).children;\n\n\t\t\tchildren.forEach( function ( child ) {\n\n\t\t\t\tif ( child.relationship === 'LookAtProperty' ) {\n\n\t\t\t\t\tconst lookAtTarget = fbxTree.Objects.Model[ child.ID ];\n\n\t\t\t\t\tif ( 'Lcl_Translation' in lookAtTarget ) {\n\n\t\t\t\t\t\tconst pos = lookAtTarget.Lcl_Translation.value;\n\n\t\t\t\t\t\t// DirectionalLight, SpotLight\n\t\t\t\t\t\tif ( model.target !== undefined ) {\n\n\t\t\t\t\t\t\tmodel.target.position.fromArray( pos );\n\t\t\t\t\t\t\tsceneGraph.add( model.target );\n\n\t\t\t\t\t\t} else { // Cameras and other Object3Ds\n\n\t\t\t\t\t\t\tmodel.lookAt( new Vector3().fromArray( pos ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t}\n\n\t}\n\n\tbindSkeleton( skeletons, geometryMap, modelMap ) {\n\n\t\tconst bindMatrices = this.parsePoseNodes();\n\n\t\tfor ( const ID in skeletons ) {\n\n\t\t\tconst skeleton = skeletons[ ID ];\n\n\t\t\tconst parents = connections.get( parseInt( skeleton.ID ) ).parents;\n\n\t\t\tparents.forEach( function ( parent ) {\n\n\t\t\t\tif ( geometryMap.has( parent.ID ) ) {\n\n\t\t\t\t\tconst geoID = parent.ID;\n\t\t\t\t\tconst geoRelationships = connections.get( geoID );\n\n\t\t\t\t\tgeoRelationships.parents.forEach( function ( geoConnParent ) {\n\n\t\t\t\t\t\tif ( modelMap.has( geoConnParent.ID ) ) {\n\n\t\t\t\t\t\t\tconst model = modelMap.get( geoConnParent.ID );\n\n\t\t\t\t\t\t\tmodel.bind( new Skeleton( skeleton.bones ), bindMatrices[ geoConnParent.ID ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t}\n\n\t}\n\n\tparsePoseNodes() {\n\n\t\tconst bindMatrices = {};\n\n\t\tif ( 'Pose' in fbxTree.Objects ) {\n\n\t\t\tconst BindPoseNode = fbxTree.Objects.Pose;\n\n\t\t\tfor ( const nodeID in BindPoseNode ) {\n\n\t\t\t\tif ( BindPoseNode[ nodeID ].attrType === 'BindPose' && BindPoseNode[ nodeID ].NbPoseNodes > 0 ) {\n\n\t\t\t\t\tconst poseNodes = BindPoseNode[ nodeID ].PoseNode;\n\n\t\t\t\t\tif ( Array.isArray( poseNodes ) ) {\n\n\t\t\t\t\t\tposeNodes.forEach( function ( poseNode ) {\n\n\t\t\t\t\t\t\tbindMatrices[ poseNode.Node ] = new Matrix4().fromArray( poseNode.Matrix.a );\n\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tbindMatrices[ poseNodes.Node ] = new Matrix4().fromArray( poseNodes.Matrix.a );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn bindMatrices;\n\n\t}\n\n\taddGlobalSceneSettings() {\n\n\t\tif ( 'GlobalSettings' in fbxTree ) {\n\n\t\t\tif ( 'AmbientColor' in fbxTree.GlobalSettings ) {\n\n\t\t\t\t// Parse ambient color - if it's not set to black (default), create an ambient light\n\n\t\t\t\tconst ambientColor = fbxTree.GlobalSettings.AmbientColor.value;\n\t\t\t\tconst r = ambientColor[ 0 ];\n\t\t\t\tconst g = ambientColor[ 1 ];\n\t\t\t\tconst b = ambientColor[ 2 ];\n\n\t\t\t\tif ( r !== 0 || g !== 0 || b !== 0 ) {\n\n\t\t\t\t\tconst color = new Color().setRGB( r, g, b, SRGBColorSpace );\n\t\t\t\t\tsceneGraph.add( new AmbientLight( color, 1 ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( 'UnitScaleFactor' in fbxTree.GlobalSettings ) {\n\n\t\t\t\tsceneGraph.userData.unitScaleFactor = fbxTree.GlobalSettings.UnitScaleFactor.value;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n// parse Geometry data from FBXTree and return map of BufferGeometries\nclass GeometryParser {\n\n\tconstructor() {\n\n\t\tthis.negativeMaterialIndices = false;\n\n\t}\n\n\t// Parse nodes in FBXTree.Objects.Geometry\n\tparse( deformers ) {\n\n\t\tconst geometryMap = new Map();\n\n\t\tif ( 'Geometry' in fbxTree.Objects ) {\n\n\t\t\tconst geoNodes = fbxTree.Objects.Geometry;\n\n\t\t\tfor ( const nodeID in geoNodes ) {\n\n\t\t\t\tconst relationships = connections.get( parseInt( nodeID ) );\n\t\t\t\tconst geo = this.parseGeometry( relationships, geoNodes[ nodeID ], deformers );\n\n\t\t\t\tgeometryMap.set( parseInt( nodeID ), geo );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// report warnings\n\n\t\tif ( this.negativeMaterialIndices === true ) {\n\n\t\t\tconsole.warn( 'THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected.' );\n\n\t\t}\n\n\t\treturn geometryMap;\n\n\t}\n\n\t// Parse single node in FBXTree.Objects.Geometry\n\tparseGeometry( relationships, geoNode, deformers ) {\n\n\t\tswitch ( geoNode.attrType ) {\n\n\t\t\tcase 'Mesh':\n\t\t\t\treturn this.parseMeshGeometry( relationships, geoNode, deformers );\n\t\t\t\tbreak;\n\n\t\t\tcase 'NurbsCurve':\n\t\t\t\treturn this.parseNurbsGeometry( geoNode );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\t// Parse single node mesh geometry in FBXTree.Objects.Geometry\n\tparseMeshGeometry( relationships, geoNode, deformers ) {\n\n\t\tconst skeletons = deformers.skeletons;\n\t\tconst morphTargets = [];\n\n\t\tconst modelNodes = relationships.parents.map( function ( parent ) {\n\n\t\t\treturn fbxTree.Objects.Model[ parent.ID ];\n\n\t\t} );\n\n\t\t// don't create geometry if it is not associated with any models\n\t\tif ( modelNodes.length === 0 ) return;\n\n\t\tconst skeleton = relationships.children.reduce( function ( skeleton, child ) {\n\n\t\t\tif ( skeletons[ child.ID ] !== undefined ) skeleton = skeletons[ child.ID ];\n\n\t\t\treturn skeleton;\n\n\t\t}, null );\n\n\t\trelationships.children.forEach( function ( child ) {\n\n\t\t\tif ( deformers.morphTargets[ child.ID ] !== undefined ) {\n\n\t\t\t\tmorphTargets.push( deformers.morphTargets[ child.ID ] );\n\n\t\t\t}\n\n\t\t} );\n\n\t\t// Assume one model and get the preRotation from that\n\t\t// if there is more than one model associated with the geometry this may cause problems\n\t\tconst modelNode = modelNodes[ 0 ];\n\n\t\tconst transformData = {};\n\n\t\tif ( 'RotationOrder' in modelNode ) transformData.eulerOrder = getEulerOrder( modelNode.RotationOrder.value );\n\t\tif ( 'InheritType' in modelNode ) transformData.inheritType = parseInt( modelNode.InheritType.value );\n\n\t\tif ( 'GeometricTranslation' in modelNode ) transformData.translation = modelNode.GeometricTranslation.value;\n\t\tif ( 'GeometricRotation' in modelNode ) transformData.rotation = modelNode.GeometricRotation.value;\n\t\tif ( 'GeometricScaling' in modelNode ) transformData.scale = modelNode.GeometricScaling.value;\n\n\t\tconst transform = generateTransform( transformData );\n\n\t\treturn this.genGeometry( geoNode, skeleton, morphTargets, transform );\n\n\t}\n\n\t// Generate a BufferGeometry from a node in FBXTree.Objects.Geometry\n\tgenGeometry( geoNode, skeleton, morphTargets, preTransform ) {\n\n\t\tconst geo = new BufferGeometry();\n\t\tif ( geoNode.attrName ) geo.name = geoNode.attrName;\n\n\t\tconst geoInfo = this.parseGeoNode( geoNode, skeleton );\n\t\tconst buffers = this.genBuffers( geoInfo );\n\n\t\tconst positionAttribute = new Float32BufferAttribute( buffers.vertex, 3 );\n\n\t\tpositionAttribute.applyMatrix4( preTransform );\n\n\t\tgeo.setAttribute( 'position', positionAttribute );\n\n\t\tif ( buffers.colors.length > 0 ) {\n\n\t\t\tgeo.setAttribute( 'color', new Float32BufferAttribute( buffers.colors, 3 ) );\n\n\t\t}\n\n\t\tif ( skeleton ) {\n\n\t\t\tgeo.setAttribute( 'skinIndex', new Uint16BufferAttribute( buffers.weightsIndices, 4 ) );\n\n\t\t\tgeo.setAttribute( 'skinWeight', new Float32BufferAttribute( buffers.vertexWeights, 4 ) );\n\n\t\t\t// used later to bind the skeleton to the model\n\t\t\tgeo.FBX_Deformer = skeleton;\n\n\t\t}\n\n\t\tif ( buffers.normal.length > 0 ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( preTransform );\n\n\t\t\tconst normalAttribute = new Float32BufferAttribute( buffers.normal, 3 );\n\t\t\tnormalAttribute.applyNormalMatrix( normalMatrix );\n\n\t\t\tgeo.setAttribute( 'normal', normalAttribute );\n\n\t\t}\n\n\t\tbuffers.uvs.forEach( function ( uvBuffer, i ) {\n\n\t\t\tconst name = i === 0 ? 'uv' : `uv${ i }`;\n\n\t\t\tgeo.setAttribute( name, new Float32BufferAttribute( buffers.uvs[ i ], 2 ) );\n\n\t\t} );\n\n\t\tif ( geoInfo.material && geoInfo.material.mappingType !== 'AllSame' ) {\n\n\t\t\t// Convert the material indices of each vertex into rendering groups on the geometry.\n\t\t\tlet prevMaterialIndex = buffers.materialIndex[ 0 ];\n\t\t\tlet startIndex = 0;\n\n\t\t\tbuffers.materialIndex.forEach( function ( currentIndex, i ) {\n\n\t\t\t\tif ( currentIndex !== prevMaterialIndex ) {\n\n\t\t\t\t\tgeo.addGroup( startIndex, i - startIndex, prevMaterialIndex );\n\n\t\t\t\t\tprevMaterialIndex = currentIndex;\n\t\t\t\t\tstartIndex = i;\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t// the loop above doesn't add the last group, do that here.\n\t\t\tif ( geo.groups.length > 0 ) {\n\n\t\t\t\tconst lastGroup = geo.groups[ geo.groups.length - 1 ];\n\t\t\t\tconst lastIndex = lastGroup.start + lastGroup.count;\n\n\t\t\t\tif ( lastIndex !== buffers.materialIndex.length ) {\n\n\t\t\t\t\tgeo.addGroup( lastIndex, buffers.materialIndex.length - lastIndex, prevMaterialIndex );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// case where there are multiple materials but the whole geometry is only\n\t\t\t// using one of them\n\t\t\tif ( geo.groups.length === 0 ) {\n\n\t\t\t\tgeo.addGroup( 0, buffers.materialIndex.length, buffers.materialIndex[ 0 ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.addMorphTargets( geo, geoNode, morphTargets, preTransform );\n\n\t\treturn geo;\n\n\t}\n\n\tparseGeoNode( geoNode, skeleton ) {\n\n\t\tconst geoInfo = {};\n\n\t\tgeoInfo.vertexPositions = ( geoNode.Vertices !== undefined ) ? geoNode.Vertices.a : [];\n\t\tgeoInfo.vertexIndices = ( geoNode.PolygonVertexIndex !== undefined ) ? geoNode.PolygonVertexIndex.a : [];\n\n\t\tif ( geoNode.LayerElementColor ) {\n\n\t\t\tgeoInfo.color = this.parseVertexColors( geoNode.LayerElementColor[ 0 ] );\n\n\t\t}\n\n\t\tif ( geoNode.LayerElementMaterial ) {\n\n\t\t\tgeoInfo.material = this.parseMaterialIndices( geoNode.LayerElementMaterial[ 0 ] );\n\n\t\t}\n\n\t\tif ( geoNode.LayerElementNormal ) {\n\n\t\t\tgeoInfo.normal = this.parseNormals( geoNode.LayerElementNormal[ 0 ] );\n\n\t\t}\n\n\t\tif ( geoNode.LayerElementUV ) {\n\n\t\t\tgeoInfo.uv = [];\n\n\t\t\tlet i = 0;\n\t\t\twhile ( geoNode.LayerElementUV[ i ] ) {\n\n\t\t\t\tif ( geoNode.LayerElementUV[ i ].UV ) {\n\n\t\t\t\t\tgeoInfo.uv.push( this.parseUVs( geoNode.LayerElementUV[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\ti ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeoInfo.weightTable = {};\n\n\t\tif ( skeleton !== null ) {\n\n\t\t\tgeoInfo.skeleton = skeleton;\n\n\t\t\tskeleton.rawBones.forEach( function ( rawBone, i ) {\n\n\t\t\t\t// loop over the bone's vertex indices and weights\n\t\t\t\trawBone.indices.forEach( function ( index, j ) {\n\n\t\t\t\t\tif ( geoInfo.weightTable[ index ] === undefined ) geoInfo.weightTable[ index ] = [];\n\n\t\t\t\t\tgeoInfo.weightTable[ index ].push( {\n\n\t\t\t\t\t\tid: i,\n\t\t\t\t\t\tweight: rawBone.weights[ j ],\n\n\t\t\t\t\t} );\n\n\t\t\t\t} );\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn geoInfo;\n\n\t}\n\n\tgenBuffers( geoInfo ) {\n\n\t\tconst buffers = {\n\t\t\tvertex: [],\n\t\t\tnormal: [],\n\t\t\tcolors: [],\n\t\t\tuvs: [],\n\t\t\tmaterialIndex: [],\n\t\t\tvertexWeights: [],\n\t\t\tweightsIndices: [],\n\t\t};\n\n\t\tlet polygonIndex = 0;\n\t\tlet faceLength = 0;\n\t\tlet displayedWeightsWarning = false;\n\n\t\t// these will hold data for a single face\n\t\tlet facePositionIndexes = [];\n\t\tlet faceNormals = [];\n\t\tlet faceColors = [];\n\t\tlet faceUVs = [];\n\t\tlet faceWeights = [];\n\t\tlet faceWeightIndices = [];\n\n\t\tconst scope = this;\n\t\tgeoInfo.vertexIndices.forEach( function ( vertexIndex, polygonVertexIndex ) {\n\n\t\t\tlet materialIndex;\n\t\t\tlet endOfFace = false;\n\n\t\t\t// Face index and vertex index arrays are combined in a single array\n\t\t\t// A cube with quad faces looks like this:\n\t\t\t// PolygonVertexIndex: *24 {\n\t\t\t// a: 0, 1, 3, -3, 2, 3, 5, -5, 4, 5, 7, -7, 6, 7, 1, -1, 1, 7, 5, -4, 6, 0, 2, -5\n\t\t\t// }\n\t\t\t// Negative numbers mark the end of a face - first face here is 0, 1, 3, -3\n\t\t\t// to find index of last vertex bit shift the index: ^ - 1\n\t\t\tif ( vertexIndex < 0 ) {\n\n\t\t\t\tvertexIndex = vertexIndex ^ - 1; // equivalent to ( x * -1 ) - 1\n\t\t\t\tendOfFace = true;\n\n\t\t\t}\n\n\t\t\tlet weightIndices = [];\n\t\t\tlet weights = [];\n\n\t\t\tfacePositionIndexes.push( vertexIndex * 3, vertexIndex * 3 + 1, vertexIndex * 3 + 2 );\n\n\t\t\tif ( geoInfo.color ) {\n\n\t\t\t\tconst data = getData( polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.color );\n\n\t\t\t\tfaceColors.push( data[ 0 ], data[ 1 ], data[ 2 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.skeleton ) {\n\n\t\t\t\tif ( geoInfo.weightTable[ vertexIndex ] !== undefined ) {\n\n\t\t\t\t\tgeoInfo.weightTable[ vertexIndex ].forEach( function ( wt ) {\n\n\t\t\t\t\t\tweights.push( wt.weight );\n\t\t\t\t\t\tweightIndices.push( wt.id );\n\n\t\t\t\t\t} );\n\n\n\t\t\t\t}\n\n\t\t\t\tif ( weights.length > 4 ) {\n\n\t\t\t\t\tif ( ! displayedWeightsWarning ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights.' );\n\t\t\t\t\t\tdisplayedWeightsWarning = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst wIndex = [ 0, 0, 0, 0 ];\n\t\t\t\t\tconst Weight = [ 0, 0, 0, 0 ];\n\n\t\t\t\t\tweights.forEach( function ( weight, weightIndex ) {\n\n\t\t\t\t\t\tlet currentWeight = weight;\n\t\t\t\t\t\tlet currentIndex = weightIndices[ weightIndex ];\n\n\t\t\t\t\t\tWeight.forEach( function ( comparedWeight, comparedWeightIndex, comparedWeightArray ) {\n\n\t\t\t\t\t\t\tif ( currentWeight > comparedWeight ) {\n\n\t\t\t\t\t\t\t\tcomparedWeightArray[ comparedWeightIndex ] = currentWeight;\n\t\t\t\t\t\t\t\tcurrentWeight = comparedWeight;\n\n\t\t\t\t\t\t\t\tconst tmp = wIndex[ comparedWeightIndex ];\n\t\t\t\t\t\t\t\twIndex[ comparedWeightIndex ] = currentIndex;\n\t\t\t\t\t\t\t\tcurrentIndex = tmp;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t} );\n\n\t\t\t\t\tweightIndices = wIndex;\n\t\t\t\t\tweights = Weight;\n\n\t\t\t\t}\n\n\t\t\t\t// if the weight array is shorter than 4 pad with 0s\n\t\t\t\twhile ( weights.length < 4 ) {\n\n\t\t\t\t\tweights.push( 0 );\n\t\t\t\t\tweightIndices.push( 0 );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 4; ++ i ) {\n\n\t\t\t\t\tfaceWeights.push( weights[ i ] );\n\t\t\t\t\tfaceWeightIndices.push( weightIndices[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.normal ) {\n\n\t\t\t\tconst data = getData( polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.normal );\n\n\t\t\t\tfaceNormals.push( data[ 0 ], data[ 1 ], data[ 2 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.material && geoInfo.material.mappingType !== 'AllSame' ) {\n\n\t\t\t\tmaterialIndex = getData( polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.material )[ 0 ];\n\n\t\t\t\tif ( materialIndex < 0 ) {\n\n\t\t\t\t\tscope.negativeMaterialIndices = true;\n\t\t\t\t\tmaterialIndex = 0; // fallback\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.uv ) {\n\n\t\t\t\tgeoInfo.uv.forEach( function ( uv, i ) {\n\n\t\t\t\t\tconst data = getData( polygonVertexIndex, polygonIndex, vertexIndex, uv );\n\n\t\t\t\t\tif ( faceUVs[ i ] === undefined ) {\n\n\t\t\t\t\t\tfaceUVs[ i ] = [];\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfaceUVs[ i ].push( data[ 0 ] );\n\t\t\t\t\tfaceUVs[ i ].push( data[ 1 ] );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tfaceLength ++;\n\n\t\t\tif ( endOfFace ) {\n\n\t\t\t\tscope.genFace( buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength );\n\n\t\t\t\tpolygonIndex ++;\n\t\t\t\tfaceLength = 0;\n\n\t\t\t\t// reset arrays for the next face\n\t\t\t\tfacePositionIndexes = [];\n\t\t\t\tfaceNormals = [];\n\t\t\t\tfaceColors = [];\n\t\t\t\tfaceUVs = [];\n\t\t\t\tfaceWeights = [];\n\t\t\t\tfaceWeightIndices = [];\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn buffers;\n\n\t}\n\n\t// See https://www.khronos.org/opengl/wiki/Calculating_a_Surface_Normal\n\tgetNormalNewell( vertices ) {\n\n\t\tconst normal = new Vector3( 0.0, 0.0, 0.0 );\n\n\t\tfor ( let i = 0; i < vertices.length; i ++ ) {\n\n\t\t\tconst current = vertices[ i ];\n\t\t\tconst next = vertices[ ( i + 1 ) % vertices.length ];\n\n\t\t\tnormal.x += ( current.y - next.y ) * ( current.z + next.z );\n\t\t\tnormal.y += ( current.z - next.z ) * ( current.x + next.x );\n\t\t\tnormal.z += ( current.x - next.x ) * ( current.y + next.y );\n\n\t\t}\n\n\t\tnormal.normalize();\n\n\t\treturn normal;\n\n\t}\n\n\tgetNormalTangentAndBitangent( vertices ) {\n\n\t\tconst normalVector = this.getNormalNewell( vertices );\n\t\t// Avoid up being equal or almost equal to normalVector\n\t\tconst up = Math.abs( normalVector.z ) > 0.5 ? new Vector3( 0.0, 1.0, 0.0 ) : new Vector3( 0.0, 0.0, 1.0 );\n\t\tconst tangent = up.cross( normalVector ).normalize();\n\t\tconst bitangent = normalVector.clone().cross( tangent ).normalize();\n\n\t\treturn {\n\t\t\tnormal: normalVector,\n\t\t\ttangent: tangent,\n\t\t\tbitangent: bitangent\n\t\t};\n\n\t}\n\n\tflattenVertex( vertex, normalTangent, normalBitangent ) {\n\n\t\treturn new Vector2(\n\t\t\tvertex.dot( normalTangent ),\n\t\t\tvertex.dot( normalBitangent )\n\t\t);\n\n\t}\n\n\t// Generate data for a single face in a geometry. If the face is a quad then split it into 2 tris\n\tgenFace( buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength ) {\n\n\t\tlet triangles;\n\n\t\tif ( faceLength > 3 ) {\n\n\t\t\t// Triangulate n-gon using earcut\n\n\t\t\tconst vertices = [];\n\t\t\t// in morphing scenario vertexPositions represent morphPositions\n\t\t\t// while baseVertexPositions represent the original geometry's positions\n\t\t\tconst positions = geoInfo.baseVertexPositions || geoInfo.vertexPositions;\n\t\t\tfor ( let i = 0; i < facePositionIndexes.length; i += 3 ) {\n\n\t\t\t\tvertices.push(\n\t\t\t\t\tnew Vector3(\n\t\t\t\t\t\tpositions[ facePositionIndexes[ i ] ],\n\t\t\t\t\t\tpositions[ facePositionIndexes[ i + 1 ] ],\n\t\t\t\t\t\tpositions[ facePositionIndexes[ i + 2 ] ]\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t\tconst { tangent, bitangent } = this.getNormalTangentAndBitangent( vertices );\n\t\t\tconst triangulationInput = [];\n\n\t\t\tfor ( const vertex of vertices ) {\n\n\t\t\t\ttriangulationInput.push( this.flattenVertex( vertex, tangent, bitangent ) );\n\n\t\t\t}\n\n\t\t\t// When vertices is an array of [0,0,0] elements (which is the case for vertices not participating in morph)\n\t\t\t// the triangulationInput will be an array of [0,0] elements\n\t\t\t// resulting in an array of 0 triangles being returned from ShapeUtils.triangulateShape\n\t\t\t// leading to not pushing into buffers.vertex the redundant vertices (the vertices that are not morphed).\n\t\t\t// That's why, in order to support morphing scenario, \"positions\" is looking first for baseVertexPositions,\n\t\t\t// so that we don't end up with an array of 0 triangles for the faces not participating in morph.\n\t\t\ttriangles = ShapeUtils.triangulateShape( triangulationInput, [] );\n\n\t\t} else {\n\n\t\t\t// Regular triangle, skip earcut triangulation step\n\t\t\ttriangles = [[ 0, 1, 2 ]];\n\n\t\t}\n\n\t\tfor ( const [ i0, i1, i2 ] of triangles ) {\n\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i0 * 3 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i0 * 3 + 1 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i0 * 3 + 2 ] ] );\n\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i1 * 3 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i1 * 3 + 1 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i1 * 3 + 2 ] ] );\n\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i2 * 3 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i2 * 3 + 1 ] ] );\n\t\t\tbuffers.vertex.push( geoInfo.vertexPositions[ facePositionIndexes[ i2 * 3 + 2 ] ] );\n\n\t\t\tif ( geoInfo.skeleton ) {\n\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i0 * 4 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i0 * 4 + 1 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i0 * 4 + 2 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i0 * 4 + 3 ] );\n\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i1 * 4 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i1 * 4 + 1 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i1 * 4 + 2 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i1 * 4 + 3 ] );\n\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i2 * 4 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i2 * 4 + 1 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i2 * 4 + 2 ] );\n\t\t\t\tbuffers.vertexWeights.push( faceWeights[ i2 * 4 + 3 ] );\n\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i0 * 4 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i0 * 4 + 1 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i0 * 4 + 2 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i0 * 4 + 3 ] );\n\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i1 * 4 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i1 * 4 + 1 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i1 * 4 + 2 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i1 * 4 + 3 ] );\n\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i2 * 4 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i2 * 4 + 1 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i2 * 4 + 2 ] );\n\t\t\t\tbuffers.weightsIndices.push( faceWeightIndices[ i2 * 4 + 3 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.color ) {\n\n\t\t\t\tbuffers.colors.push( faceColors[ i0 * 3 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i0 * 3 + 1 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i0 * 3 + 2 ] );\n\n\t\t\t\tbuffers.colors.push( faceColors[ i1 * 3 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i1 * 3 + 1 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i1 * 3 + 2 ] );\n\n\t\t\t\tbuffers.colors.push( faceColors[ i2 * 3 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i2 * 3 + 1 ] );\n\t\t\t\tbuffers.colors.push( faceColors[ i2 * 3 + 2 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.material && geoInfo.material.mappingType !== 'AllSame' ) {\n\n\t\t\t\tbuffers.materialIndex.push( materialIndex );\n\t\t\t\tbuffers.materialIndex.push( materialIndex );\n\t\t\t\tbuffers.materialIndex.push( materialIndex );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.normal ) {\n\n\t\t\t\tbuffers.normal.push( faceNormals[ i0 * 3 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i0 * 3 + 1 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i0 * 3 + 2 ] );\n\n\t\t\t\tbuffers.normal.push( faceNormals[ i1 * 3 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i1 * 3 + 1 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i1 * 3 + 2 ] );\n\n\t\t\t\tbuffers.normal.push( faceNormals[ i2 * 3 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i2 * 3 + 1 ] );\n\t\t\t\tbuffers.normal.push( faceNormals[ i2 * 3 + 2 ] );\n\n\t\t\t}\n\n\t\t\tif ( geoInfo.uv ) {\n\n\t\t\t\tgeoInfo.uv.forEach( function ( uv, j ) {\n\n\t\t\t\t\tif ( buffers.uvs[ j ] === undefined ) buffers.uvs[ j ] = [];\n\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i0 * 2 ] );\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i0 * 2 + 1 ] );\n\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i1 * 2 ] );\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i1 * 2 + 1 ] );\n\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i2 * 2 ] );\n\t\t\t\t\tbuffers.uvs[ j ].push( faceUVs[ j ][ i2 * 2 + 1 ] );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\taddMorphTargets( parentGeo, parentGeoNode, morphTargets, preTransform ) {\n\n\t\tif ( morphTargets.length === 0 ) return;\n\n\t\tparentGeo.morphTargetsRelative = true;\n\n\t\tparentGeo.morphAttributes.position = [];\n\t\t// parentGeo.morphAttributes.normal = []; // not implemented\n\n\t\tconst scope = this;\n\t\tmorphTargets.forEach( function ( morphTarget ) {\n\n\t\t\tmorphTarget.rawTargets.forEach( function ( rawTarget ) {\n\n\t\t\t\tconst morphGeoNode = fbxTree.Objects.Geometry[ rawTarget.geoID ];\n\n\t\t\t\tif ( morphGeoNode !== undefined ) {\n\n\t\t\t\t\tscope.genMorphGeometry( parentGeo, parentGeoNode, morphGeoNode, preTransform, rawTarget.name );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t// a morph geometry node is similar to a standard node, and the node is also contained\n\t// in FBXTree.Objects.Geometry, however it can only have attributes for position, normal\n\t// and a special attribute Index defining which vertices of the original geometry are affected\n\t// Normal and position attributes only have data for the vertices that are affected by the morph\n\tgenMorphGeometry( parentGeo, parentGeoNode, morphGeoNode, preTransform, name ) {\n\n\t\tconst basePositions = parentGeoNode.Vertices !== undefined ? parentGeoNode.Vertices.a : [];\n\t\tconst baseIndices = parentGeoNode.PolygonVertexIndex !== undefined ? parentGeoNode.PolygonVertexIndex.a : [];\n\n\t\tconst morphPositionsSparse = morphGeoNode.Vertices !== undefined ? morphGeoNode.Vertices.a : [];\n\t\tconst morphIndices = morphGeoNode.Indexes !== undefined ? morphGeoNode.Indexes.a : [];\n\n\t\tconst length = parentGeo.attributes.position.count * 3;\n\t\tconst morphPositions = new Float32Array( length );\n\n\t\tfor ( let i = 0; i < morphIndices.length; i ++ ) {\n\n\t\t\tconst morphIndex = morphIndices[ i ] * 3;\n\n\t\t\tmorphPositions[ morphIndex ] = morphPositionsSparse[ i * 3 ];\n\t\t\tmorphPositions[ morphIndex + 1 ] = morphPositionsSparse[ i * 3 + 1 ];\n\t\t\tmorphPositions[ morphIndex + 2 ] = morphPositionsSparse[ i * 3 + 2 ];\n\n\t\t}\n\n\t\t// TODO: add morph normal support\n\t\tconst morphGeoInfo = {\n\t\t\tvertexIndices: baseIndices,\n\t\t\tvertexPositions: morphPositions,\n\t\t\tbaseVertexPositions: basePositions\n\t\t};\n\n\t\tconst morphBuffers = this.genBuffers( morphGeoInfo );\n\n\t\tconst positionAttribute = new Float32BufferAttribute( morphBuffers.vertex, 3 );\n\t\tpositionAttribute.name = name || morphGeoNode.attrName;\n\n\t\tpositionAttribute.applyMatrix4( preTransform );\n\n\t\tparentGeo.morphAttributes.position.push( positionAttribute );\n\n\t}\n\n\t// Parse normal from FBXTree.Objects.Geometry.LayerElementNormal if it exists\n\tparseNormals( NormalNode ) {\n\n\t\tconst mappingType = NormalNode.MappingInformationType;\n\t\tconst referenceType = NormalNode.ReferenceInformationType;\n\t\tconst buffer = NormalNode.Normals.a;\n\t\tlet indexBuffer = [];\n\t\tif ( referenceType === 'IndexToDirect' ) {\n\n\t\t\tif ( 'NormalIndex' in NormalNode ) {\n\n\t\t\t\tindexBuffer = NormalNode.NormalIndex.a;\n\n\t\t\t} else if ( 'NormalsIndex' in NormalNode ) {\n\n\t\t\t\tindexBuffer = NormalNode.NormalsIndex.a;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\tdataSize: 3,\n\t\t\tbuffer: buffer,\n\t\t\tindices: indexBuffer,\n\t\t\tmappingType: mappingType,\n\t\t\treferenceType: referenceType\n\t\t};\n\n\t}\n\n\t// Parse UVs from FBXTree.Objects.Geometry.LayerElementUV if it exists\n\tparseUVs( UVNode ) {\n\n\t\tconst mappingType = UVNode.MappingInformationType;\n\t\tconst referenceType = UVNode.ReferenceInformationType;\n\t\tconst buffer = UVNode.UV.a;\n\t\tlet indexBuffer = [];\n\t\tif ( referenceType === 'IndexToDirect' ) {\n\n\t\t\tindexBuffer = UVNode.UVIndex.a;\n\n\t\t}\n\n\t\treturn {\n\t\t\tdataSize: 2,\n\t\t\tbuffer: buffer,\n\t\t\tindices: indexBuffer,\n\t\t\tmappingType: mappingType,\n\t\t\treferenceType: referenceType\n\t\t};\n\n\t}\n\n\t// Parse Vertex Colors from FBXTree.Objects.Geometry.LayerElementColor if it exists\n\tparseVertexColors( ColorNode ) {\n\n\t\tconst mappingType = ColorNode.MappingInformationType;\n\t\tconst referenceType = ColorNode.ReferenceInformationType;\n\t\tconst buffer = ColorNode.Colors.a;\n\t\tlet indexBuffer = [];\n\t\tif ( referenceType === 'IndexToDirect' ) {\n\n\t\t\tindexBuffer = ColorNode.ColorIndex.a;\n\n\t\t}\n\n\t\tfor ( let i = 0, c = new Color(); i < buffer.length; i += 4 ) {\n\n\t\t\tc.fromArray( buffer, i );\n\t\t\tColorManagement.toWorkingColorSpace( c, SRGBColorSpace );\n\t\t\tc.toArray( buffer, i );\n\n\t\t}\n\n\t\treturn {\n\t\t\tdataSize: 4,\n\t\t\tbuffer: buffer,\n\t\t\tindices: indexBuffer,\n\t\t\tmappingType: mappingType,\n\t\t\treferenceType: referenceType\n\t\t};\n\n\t}\n\n\t// Parse mapping and material data in FBXTree.Objects.Geometry.LayerElementMaterial if it exists\n\tparseMaterialIndices( MaterialNode ) {\n\n\t\tconst mappingType = MaterialNode.MappingInformationType;\n\t\tconst referenceType = MaterialNode.ReferenceInformationType;\n\n\t\tif ( mappingType === 'NoMappingInformation' ) {\n\n\t\t\treturn {\n\t\t\t\tdataSize: 1,\n\t\t\t\tbuffer: [ 0 ],\n\t\t\t\tindices: [ 0 ],\n\t\t\t\tmappingType: 'AllSame',\n\t\t\t\treferenceType: referenceType\n\t\t\t};\n\n\t\t}\n\n\t\tconst materialIndexBuffer = MaterialNode.Materials.a;\n\n\t\t// Since materials are stored as indices, there's a bit of a mismatch between FBX and what\n\t\t// we expect.So we create an intermediate buffer that points to the index in the buffer,\n\t\t// for conforming with the other functions we've written for other data.\n\t\tconst materialIndices = [];\n\n\t\tfor ( let i = 0; i < materialIndexBuffer.length; ++ i ) {\n\n\t\t\tmaterialIndices.push( i );\n\n\t\t}\n\n\t\treturn {\n\t\t\tdataSize: 1,\n\t\t\tbuffer: materialIndexBuffer,\n\t\t\tindices: materialIndices,\n\t\t\tmappingType: mappingType,\n\t\t\treferenceType: referenceType\n\t\t};\n\n\t}\n\n\t// Generate a NurbGeometry from a node in FBXTree.Objects.Geometry\n\tparseNurbsGeometry( geoNode ) {\n\n\t\tconst order = parseInt( geoNode.Order );\n\n\t\tif ( isNaN( order ) ) {\n\n\t\t\tconsole.error( 'THREE.FBXLoader: Invalid Order %s given for geometry ID: %s', geoNode.Order, geoNode.id );\n\t\t\treturn new BufferGeometry();\n\n\t\t}\n\n\t\tconst degree = order - 1;\n\n\t\tconst knots = geoNode.KnotVector.a;\n\t\tconst controlPoints = [];\n\t\tconst pointsValues = geoNode.Points.a;\n\n\t\tfor ( let i = 0, l = pointsValues.length; i < l; i += 4 ) {\n\n\t\t\tcontrolPoints.push( new Vector4().fromArray( pointsValues, i ) );\n\n\t\t}\n\n\t\tlet startKnot, endKnot;\n\n\t\tif ( geoNode.Form === 'Closed' ) {\n\n\t\t\tcontrolPoints.push( controlPoints[ 0 ] );\n\n\t\t} else if ( geoNode.Form === 'Periodic' ) {\n\n\t\t\tstartKnot = degree;\n\t\t\tendKnot = knots.length - 1 - startKnot;\n\n\t\t\tfor ( let i = 0; i < degree; ++ i ) {\n\n\t\t\t\tcontrolPoints.push( controlPoints[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst curve = new NURBSCurve( degree, knots, controlPoints, startKnot, endKnot );\n\t\tconst points = curve.getPoints( controlPoints.length * 12 );\n\n\t\treturn new BufferGeometry().setFromPoints( points );\n\n\t}\n\n}\n\n// parse animation data from FBXTree\nclass AnimationParser {\n\n\t// take raw animation clips and turn them into three.js animation clips\n\tparse() {\n\n\t\tconst animationClips = [];\n\n\t\tconst rawClips = this.parseClips();\n\n\t\tif ( rawClips !== undefined ) {\n\n\t\t\tfor ( const key in rawClips ) {\n\n\t\t\t\tconst rawClip = rawClips[ key ];\n\n\t\t\t\tconst clip = this.addClip( rawClip );\n\n\t\t\t\tanimationClips.push( clip );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn animationClips;\n\n\t}\n\n\tparseClips() {\n\n\t\t// since the actual transformation data is stored in FBXTree.Objects.AnimationCurve,\n\t\t// if this is undefined we can safely assume there are no animations\n\t\tif ( fbxTree.Objects.AnimationCurve === undefined ) return undefined;\n\n\t\tconst curveNodesMap = this.parseAnimationCurveNodes();\n\n\t\tthis.parseAnimationCurves( curveNodesMap );\n\n\t\tconst layersMap = this.parseAnimationLayers( curveNodesMap );\n\t\tconst rawClips = this.parseAnimStacks( layersMap );\n\n\t\treturn rawClips;\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.AnimationCurveNode\n\t// each AnimationCurveNode holds data for an animation transform for a model (e.g. left arm rotation )\n\t// and is referenced by an AnimationLayer\n\tparseAnimationCurveNodes() {\n\n\t\tconst rawCurveNodes = fbxTree.Objects.AnimationCurveNode;\n\n\t\tconst curveNodesMap = new Map();\n\n\t\tfor ( const nodeID in rawCurveNodes ) {\n\n\t\t\tconst rawCurveNode = rawCurveNodes[ nodeID ];\n\n\t\t\tif ( rawCurveNode.attrName.match( /S|R|T|DeformPercent/ ) !== null ) {\n\n\t\t\t\tconst curveNode = {\n\n\t\t\t\t\tid: rawCurveNode.id,\n\t\t\t\t\tattr: rawCurveNode.attrName,\n\t\t\t\t\tcurves: {},\n\n\t\t\t\t};\n\n\t\t\t\tcurveNodesMap.set( curveNode.id, curveNode );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn curveNodesMap;\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.AnimationCurve and connect them up to\n\t// previously parsed AnimationCurveNodes. Each AnimationCurve holds data for a single animated\n\t// axis ( e.g. times and values of x rotation)\n\tparseAnimationCurves( curveNodesMap ) {\n\n\t\tconst rawCurves = fbxTree.Objects.AnimationCurve;\n\n\t\t// TODO: Many values are identical up to roundoff error, but won't be optimised\n\t\t// e.g. position times: [0, 0.4, 0. 8]\n\t\t// position values: [7.23538335023477e-7, 93.67518615722656, -0.9982695579528809, 7.23538335023477e-7, 93.67518615722656, -0.9982695579528809, 7.235384487103147e-7, 93.67520904541016, -0.9982695579528809]\n\t\t// clearly, this should be optimised to\n\t\t// times: [0], positions [7.23538335023477e-7, 93.67518615722656, -0.9982695579528809]\n\t\t// this shows up in nearly every FBX file, and generally time array is length > 100\n\n\t\tfor ( const nodeID in rawCurves ) {\n\n\t\t\tconst animationCurve = {\n\n\t\t\t\tid: rawCurves[ nodeID ].id,\n\t\t\t\ttimes: rawCurves[ nodeID ].KeyTime.a.map( convertFBXTimeToSeconds ),\n\t\t\t\tvalues: rawCurves[ nodeID ].KeyValueFloat.a,\n\n\t\t\t};\n\n\t\t\tconst relationships = connections.get( animationCurve.id );\n\n\t\t\tif ( relationships !== undefined ) {\n\n\t\t\t\tconst animationCurveID = relationships.parents[ 0 ].ID;\n\t\t\t\tconst animationCurveRelationship = relationships.parents[ 0 ].relationship;\n\n\t\t\t\tif ( animationCurveRelationship.match( /X/ ) ) {\n\n\t\t\t\t\tcurveNodesMap.get( animationCurveID ).curves[ 'x' ] = animationCurve;\n\n\t\t\t\t} else if ( animationCurveRelationship.match( /Y/ ) ) {\n\n\t\t\t\t\tcurveNodesMap.get( animationCurveID ).curves[ 'y' ] = animationCurve;\n\n\t\t\t\t} else if ( animationCurveRelationship.match( /Z/ ) ) {\n\n\t\t\t\t\tcurveNodesMap.get( animationCurveID ).curves[ 'z' ] = animationCurve;\n\n\t\t\t\t} else if ( animationCurveRelationship.match( /DeformPercent/ ) && curveNodesMap.has( animationCurveID ) ) {\n\n\t\t\t\t\tcurveNodesMap.get( animationCurveID ).curves[ 'morph' ] = animationCurve;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.AnimationLayer. Each layers holds references\n\t// to various AnimationCurveNodes and is referenced by an AnimationStack node\n\t// note: theoretically a stack can have multiple layers, however in practice there always seems to be one per stack\n\tparseAnimationLayers( curveNodesMap ) {\n\n\t\tconst rawLayers = fbxTree.Objects.AnimationLayer;\n\n\t\tconst layersMap = new Map();\n\n\t\tfor ( const nodeID in rawLayers ) {\n\n\t\t\tconst layerCurveNodes = [];\n\n\t\t\tconst connection = connections.get( parseInt( nodeID ) );\n\n\t\t\tif ( connection !== undefined ) {\n\n\t\t\t\t// all the animationCurveNodes used in the layer\n\t\t\t\tconst children = connection.children;\n\n\t\t\t\tchildren.forEach( function ( child, i ) {\n\n\t\t\t\t\tif ( curveNodesMap.has( child.ID ) ) {\n\n\t\t\t\t\t\tconst curveNode = curveNodesMap.get( child.ID );\n\n\t\t\t\t\t\t// check that the curves are defined for at least one axis, otherwise ignore the curveNode\n\t\t\t\t\t\tif ( curveNode.curves.x !== undefined || curveNode.curves.y !== undefined || curveNode.curves.z !== undefined ) {\n\n\t\t\t\t\t\t\tif ( layerCurveNodes[ i ] === undefined ) {\n\n\t\t\t\t\t\t\t\tconst modelID = connections.get( child.ID ).parents.filter( function ( parent ) {\n\n\t\t\t\t\t\t\t\t\treturn parent.relationship !== undefined;\n\n\t\t\t\t\t\t\t\t} )[ 0 ].ID;\n\n\t\t\t\t\t\t\t\tif ( modelID !== undefined ) {\n\n\t\t\t\t\t\t\t\t\tconst rawModel = fbxTree.Objects.Model[ modelID.toString() ];\n\n\t\t\t\t\t\t\t\t\tif ( rawModel === undefined ) {\n\n\t\t\t\t\t\t\t\t\t\tconsole.warn( 'THREE.FBXLoader: Encountered a unused curve.', child );\n\t\t\t\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst node = {\n\n\t\t\t\t\t\t\t\t\t\tmodelName: rawModel.attrName ? PropertyBinding.sanitizeNodeName( rawModel.attrName ) : '',\n\t\t\t\t\t\t\t\t\t\tID: rawModel.id,\n\t\t\t\t\t\t\t\t\t\tinitialPosition: [ 0, 0, 0 ],\n\t\t\t\t\t\t\t\t\t\tinitialRotation: [ 0, 0, 0 ],\n\t\t\t\t\t\t\t\t\t\tinitialScale: [ 1, 1, 1 ],\n\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tsceneGraph.traverse( function ( child ) {\n\n\t\t\t\t\t\t\t\t\t\tif ( child.ID === rawModel.id ) {\n\n\t\t\t\t\t\t\t\t\t\t\tnode.transform = child.matrix;\n\n\t\t\t\t\t\t\t\t\t\t\tif ( child.userData.transformData ) node.eulerOrder = child.userData.transformData.eulerOrder;\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t\tif ( ! node.transform ) node.transform = new Matrix4();\n\n\t\t\t\t\t\t\t\t\t// if the animated model is pre rotated, we'll have to apply the pre rotations to every\n\t\t\t\t\t\t\t\t\t// animation value as well\n\t\t\t\t\t\t\t\t\tif ( 'PreRotation' in rawModel ) node.preRotation = rawModel.PreRotation.value;\n\t\t\t\t\t\t\t\t\tif ( 'PostRotation' in rawModel ) node.postRotation = rawModel.PostRotation.value;\n\n\t\t\t\t\t\t\t\t\tlayerCurveNodes[ i ] = node;\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( layerCurveNodes[ i ] ) layerCurveNodes[ i ][ curveNode.attr ] = curveNode;\n\n\t\t\t\t\t\t} else if ( curveNode.curves.morph !== undefined ) {\n\n\t\t\t\t\t\t\tif ( layerCurveNodes[ i ] === undefined ) {\n\n\t\t\t\t\t\t\t\tconst deformerID = connections.get( child.ID ).parents.filter( function ( parent ) {\n\n\t\t\t\t\t\t\t\t\treturn parent.relationship !== undefined;\n\n\t\t\t\t\t\t\t\t} )[ 0 ].ID;\n\n\t\t\t\t\t\t\t\tconst morpherID = connections.get( deformerID ).parents[ 0 ].ID;\n\t\t\t\t\t\t\t\tconst geoID = connections.get( morpherID ).parents[ 0 ].ID;\n\n\t\t\t\t\t\t\t\t// assuming geometry is not used in more than one model\n\t\t\t\t\t\t\t\tconst modelID = connections.get( geoID ).parents[ 0 ].ID;\n\n\t\t\t\t\t\t\t\tconst rawModel = fbxTree.Objects.Model[ modelID ];\n\n\t\t\t\t\t\t\t\tconst node = {\n\n\t\t\t\t\t\t\t\t\tmodelName: rawModel.attrName ? PropertyBinding.sanitizeNodeName( rawModel.attrName ) : '',\n\t\t\t\t\t\t\t\t\tmorphName: fbxTree.Objects.Deformer[ deformerID ].attrName,\n\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlayerCurveNodes[ i ] = node;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tlayerCurveNodes[ i ][ curveNode.attr ] = curveNode;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tlayersMap.set( parseInt( nodeID ), layerCurveNodes );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn layersMap;\n\n\t}\n\n\t// parse nodes in FBXTree.Objects.AnimationStack. These are the top level node in the animation\n\t// hierarchy. Each Stack node will be used to create a AnimationClip\n\tparseAnimStacks( layersMap ) {\n\n\t\tconst rawStacks = fbxTree.Objects.AnimationStack;\n\n\t\t// connect the stacks (clips) up to the layers\n\t\tconst rawClips = {};\n\n\t\tfor ( const nodeID in rawStacks ) {\n\n\t\t\tconst children = connections.get( parseInt( nodeID ) ).children;\n\n\t\t\tif ( children.length > 1 ) {\n\n\t\t\t\t// it seems like stacks will always be associated with a single layer. But just in case there are files\n\t\t\t\t// where there are multiple layers per stack, we'll display a warning\n\t\t\t\tconsole.warn( 'THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.' );\n\n\t\t\t}\n\n\t\t\tconst layer = layersMap.get( children[ 0 ].ID );\n\n\t\t\trawClips[ nodeID ] = {\n\n\t\t\t\tname: rawStacks[ nodeID ].attrName,\n\t\t\t\tlayer: layer,\n\n\t\t\t};\n\n\t\t}\n\n\t\treturn rawClips;\n\n\t}\n\n\taddClip( rawClip ) {\n\n\t\tlet tracks = [];\n\n\t\tconst scope = this;\n\t\trawClip.layer.forEach( function ( rawTracks ) {\n\n\t\t\ttracks = tracks.concat( scope.generateTracks( rawTracks ) );\n\n\t\t} );\n\n\t\treturn new AnimationClip( rawClip.name, - 1, tracks );\n\n\t}\n\n\tgenerateTracks( rawTracks ) {\n\n\t\tconst tracks = [];\n\n\t\tlet initialPosition = new Vector3();\n\t\tlet initialScale = new Vector3();\n\n\t\tif ( rawTracks.transform ) rawTracks.transform.decompose( initialPosition, new Quaternion(), initialScale );\n\n\t\tinitialPosition = initialPosition.toArray();\n\t\tinitialScale = initialScale.toArray();\n\n\t\tif ( rawTracks.T !== undefined && Object.keys( rawTracks.T.curves ).length > 0 ) {\n\n\t\t\tconst positionTrack = this.generateVectorTrack( rawTracks.modelName, rawTracks.T.curves, initialPosition, 'position' );\n\t\t\tif ( positionTrack !== undefined ) tracks.push( positionTrack );\n\n\t\t}\n\n\t\tif ( rawTracks.R !== undefined && Object.keys( rawTracks.R.curves ).length > 0 ) {\n\n\t\t\tconst rotationTrack = this.generateRotationTrack( rawTracks.modelName, rawTracks.R.curves, rawTracks.preRotation, rawTracks.postRotation, rawTracks.eulerOrder );\n\t\t\tif ( rotationTrack !== undefined ) tracks.push( rotationTrack );\n\n\t\t}\n\n\t\tif ( rawTracks.S !== undefined && Object.keys( rawTracks.S.curves ).length > 0 ) {\n\n\t\t\tconst scaleTrack = this.generateVectorTrack( rawTracks.modelName, rawTracks.S.curves, initialScale, 'scale' );\n\t\t\tif ( scaleTrack !== undefined ) tracks.push( scaleTrack );\n\n\t\t}\n\n\t\tif ( rawTracks.DeformPercent !== undefined ) {\n\n\t\t\tconst morphTrack = this.generateMorphTrack( rawTracks );\n\t\t\tif ( morphTrack !== undefined ) tracks.push( morphTrack );\n\n\t\t}\n\n\t\treturn tracks;\n\n\t}\n\n\tgenerateVectorTrack( modelName, curves, initialValue, type ) {\n\n\t\tconst times = this.getTimesForAllAxes( curves );\n\t\tconst values = this.getKeyframeTrackValues( times, curves, initialValue );\n\n\t\treturn new VectorKeyframeTrack( modelName + '.' + type, times, values );\n\n\t}\n\n\tgenerateRotationTrack( modelName, curves, preRotation, postRotation, eulerOrder ) {\n\n\t\tlet times;\n\t\tlet values;\n\n\t\tif ( curves.x !== undefined && curves.y !== undefined && curves.z !== undefined ) {\n\n\t\t\tconst result = this.interpolateRotations( curves.x, curves.y, curves.z, eulerOrder );\n\n\t\t\ttimes = result[ 0 ];\n\t\t\tvalues = result[ 1 ];\n\n\t\t}\n\n\t\t// For Maya models using \"Joint Orient\", Euler order only applies to rotation, not pre/post-rotations\n\t\tconst defaultEulerOrder = getEulerOrder( 0 );\n\n\t\tif ( preRotation !== undefined ) {\n\n\t\t\tpreRotation = preRotation.map( MathUtils.degToRad );\n\t\t\tpreRotation.push( defaultEulerOrder );\n\n\t\t\tpreRotation = new Euler().fromArray( preRotation );\n\t\t\tpreRotation = new Quaternion().setFromEuler( preRotation );\n\n\t\t}\n\n\t\tif ( postRotation !== undefined ) {\n\n\t\t\tpostRotation = postRotation.map( MathUtils.degToRad );\n\t\t\tpostRotation.push( defaultEulerOrder );\n\n\t\t\tpostRotation = new Euler().fromArray( postRotation );\n\t\t\tpostRotation = new Quaternion().setFromEuler( postRotation ).invert();\n\n\t\t}\n\n\t\tconst quaternion = new Quaternion();\n\t\tconst euler = new Euler();\n\n\t\tconst quaternionValues = [];\n\n\t\tif ( ! values || ! times ) return new QuaternionKeyframeTrack( modelName + '.quaternion', [ 0 ], [ 0 ] );\n\n\t\tfor ( let i = 0; i < values.length; i += 3 ) {\n\n\t\t\teuler.set( values[ i ], values[ i + 1 ], values[ i + 2 ], eulerOrder );\n\t\t\tquaternion.setFromEuler( euler );\n\n\t\t\tif ( preRotation !== undefined ) quaternion.premultiply( preRotation );\n\t\t\tif ( postRotation !== undefined ) quaternion.multiply( postRotation );\n\n\t\t\t// Check unroll\n\t\t\tif ( i > 2 ) {\n\n\t\t\t\tconst prevQuat = new Quaternion().fromArray(\n\t\t\t\t\tquaternionValues,\n\t\t\t\t\t( ( i - 3 ) / 3 ) * 4\n\t\t\t\t);\n\n\t\t\t\tif ( prevQuat.dot( quaternion ) < 0 ) {\n\n\t\t\t\t\tquaternion.set( - quaternion.x, - quaternion.y, - quaternion.z, - quaternion.w );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tquaternion.toArray( quaternionValues, ( i / 3 ) * 4 );\n\n\t\t}\n\n\t\treturn new QuaternionKeyframeTrack( modelName + '.quaternion', times, quaternionValues );\n\n\t}\n\n\tgenerateMorphTrack( rawTracks ) {\n\n\t\tconst curves = rawTracks.DeformPercent.curves.morph;\n\t\tconst values = curves.values.map( function ( val ) {\n\n\t\t\treturn val / 100;\n\n\t\t} );\n\n\t\tconst morphNum = sceneGraph.getObjectByName( rawTracks.modelName ).morphTargetDictionary[ rawTracks.morphName ];\n\n\t\treturn new NumberKeyframeTrack( rawTracks.modelName + '.morphTargetInfluences[' + morphNum + ']', curves.times, values );\n\n\t}\n\n\t// For all animated objects, times are defined separately for each axis\n\t// Here we'll combine the times into one sorted array without duplicates\n\tgetTimesForAllAxes( curves ) {\n\n\t\tlet times = [];\n\n\t\t// first join together the times for each axis, if defined\n\t\tif ( curves.x !== undefined ) times = times.concat( curves.x.times );\n\t\tif ( curves.y !== undefined ) times = times.concat( curves.y.times );\n\t\tif ( curves.z !== undefined ) times = times.concat( curves.z.times );\n\n\t\t// then sort them\n\t\ttimes = times.sort( function ( a, b ) {\n\n\t\t\treturn a - b;\n\n\t\t} );\n\n\t\t// and remove duplicates\n\t\tif ( times.length > 1 ) {\n\n\t\t\tlet targetIndex = 1;\n\t\t\tlet lastValue = times[ 0 ];\n\t\t\tfor ( let i = 1; i < times.length; i ++ ) {\n\n\t\t\t\tconst currentValue = times[ i ];\n\t\t\t\tif ( currentValue !== lastValue ) {\n\n\t\t\t\t\ttimes[ targetIndex ] = currentValue;\n\t\t\t\t\tlastValue = currentValue;\n\t\t\t\t\ttargetIndex ++;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttimes = times.slice( 0, targetIndex );\n\n\t\t}\n\n\t\treturn times;\n\n\t}\n\n\tgetKeyframeTrackValues( times, curves, initialValue ) {\n\n\t\tconst prevValue = initialValue;\n\n\t\tconst values = [];\n\n\t\tlet xIndex = - 1;\n\t\tlet yIndex = - 1;\n\t\tlet zIndex = - 1;\n\n\t\ttimes.forEach( function ( time ) {\n\n\t\t\tif ( curves.x ) xIndex = curves.x.times.indexOf( time );\n\t\t\tif ( curves.y ) yIndex = curves.y.times.indexOf( time );\n\t\t\tif ( curves.z ) zIndex = curves.z.times.indexOf( time );\n\n\t\t\t// if there is an x value defined for this frame, use that\n\t\t\tif ( xIndex !== - 1 ) {\n\n\t\t\t\tconst xValue = curves.x.values[ xIndex ];\n\t\t\t\tvalues.push( xValue );\n\t\t\t\tprevValue[ 0 ] = xValue;\n\n\t\t\t} else {\n\n\t\t\t\t// otherwise use the x value from the previous frame\n\t\t\t\tvalues.push( prevValue[ 0 ] );\n\n\t\t\t}\n\n\t\t\tif ( yIndex !== - 1 ) {\n\n\t\t\t\tconst yValue = curves.y.values[ yIndex ];\n\t\t\t\tvalues.push( yValue );\n\t\t\t\tprevValue[ 1 ] = yValue;\n\n\t\t\t} else {\n\n\t\t\t\tvalues.push( prevValue[ 1 ] );\n\n\t\t\t}\n\n\t\t\tif ( zIndex !== - 1 ) {\n\n\t\t\t\tconst zValue = curves.z.values[ zIndex ];\n\t\t\t\tvalues.push( zValue );\n\t\t\t\tprevValue[ 2 ] = zValue;\n\n\t\t\t} else {\n\n\t\t\t\tvalues.push( prevValue[ 2 ] );\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn values;\n\n\t}\n\n\t// Rotations are defined as Euler angles which can have values of any size\n\t// These will be converted to quaternions which don't support values greater than\n\t// PI, so we'll interpolate large rotations\n\tinterpolateRotations( curvex, curvey, curvez, eulerOrder ) {\n\n\t\tconst times = [];\n\t\tconst values = [];\n\n\t\t// Add first frame\n\t\ttimes.push( curvex.times[ 0 ] );\n\t\tvalues.push( MathUtils.degToRad( curvex.values[ 0 ] ) );\n\t\tvalues.push( MathUtils.degToRad( curvey.values[ 0 ] ) );\n\t\tvalues.push( MathUtils.degToRad( curvez.values[ 0 ] ) );\n\n\t\tfor ( let i = 1; i < curvex.values.length; i ++ ) {\n\n\t\t\tconst initialValue = [\n\t\t\t\tcurvex.values[ i - 1 ],\n\t\t\t\tcurvey.values[ i - 1 ],\n\t\t\t\tcurvez.values[ i - 1 ],\n\t\t\t];\n\n\t\t\tif ( isNaN( initialValue[ 0 ] ) || isNaN( initialValue[ 1 ] ) || isNaN( initialValue[ 2 ] ) ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst initialValueRad = initialValue.map( MathUtils.degToRad );\n\n\t\t\tconst currentValue = [\n\t\t\t\tcurvex.values[ i ],\n\t\t\t\tcurvey.values[ i ],\n\t\t\t\tcurvez.values[ i ],\n\t\t\t];\n\n\t\t\tif ( isNaN( currentValue[ 0 ] ) || isNaN( currentValue[ 1 ] ) || isNaN( currentValue[ 2 ] ) ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValueRad = currentValue.map( MathUtils.degToRad );\n\n\t\t\tconst valuesSpan = [\n\t\t\t\tcurrentValue[ 0 ] - initialValue[ 0 ],\n\t\t\t\tcurrentValue[ 1 ] - initialValue[ 1 ],\n\t\t\t\tcurrentValue[ 2 ] - initialValue[ 2 ],\n\t\t\t];\n\n\t\t\tconst absoluteSpan = [\n\t\t\t\tMath.abs( valuesSpan[ 0 ] ),\n\t\t\t\tMath.abs( valuesSpan[ 1 ] ),\n\t\t\t\tMath.abs( valuesSpan[ 2 ] ),\n\t\t\t];\n\n\t\t\tif ( absoluteSpan[ 0 ] >= 180 || absoluteSpan[ 1 ] >= 180 || absoluteSpan[ 2 ] >= 180 ) {\n\n\t\t\t\tconst maxAbsSpan = Math.max( ...absoluteSpan );\n\n\t\t\t\tconst numSubIntervals = maxAbsSpan / 180;\n\n\t\t\t\tconst E1 = new Euler( ...initialValueRad, eulerOrder );\n\t\t\t\tconst E2 = new Euler( ...currentValueRad, eulerOrder );\n\n\t\t\t\tconst Q1 = new Quaternion().setFromEuler( E1 );\n\t\t\t\tconst Q2 = new Quaternion().setFromEuler( E2 );\n\n\t\t\t\t// Check unroll\n\t\t\t\tif ( Q1.dot( Q2 ) ) {\n\n\t\t\t\t\tQ2.set( - Q2.x, - Q2.y, - Q2.z, - Q2.w );\n\n\t\t\t\t}\n\n\t\t\t\t// Interpolate\n\t\t\t\tconst initialTime = curvex.times[ i - 1 ];\n\t\t\t\tconst timeSpan = curvex.times[ i ] - initialTime;\n\n\t\t\t\tconst Q = new Quaternion();\n\t\t\t\tconst E = new Euler();\n\t\t\t\tfor ( let t = 0; t < 1; t += 1 / numSubIntervals ) {\n\n\t\t\t\t\tQ.copy( Q1.clone().slerp( Q2.clone(), t ) );\n\n\t\t\t\t\ttimes.push( initialTime + t * timeSpan );\n\t\t\t\t\tE.setFromQuaternion( Q, eulerOrder );\n\n\t\t\t\t\tvalues.push( E.x );\n\t\t\t\t\tvalues.push( E.y );\n\t\t\t\t\tvalues.push( E.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\ttimes.push( curvex.times[ i ] );\n\t\t\t\tvalues.push( MathUtils.degToRad( curvex.values[ i ] ) );\n\t\t\t\tvalues.push( MathUtils.degToRad( curvey.values[ i ] ) );\n\t\t\t\tvalues.push( MathUtils.degToRad( curvez.values[ i ] ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn [ times, values ];\n\n\t}\n\n}\n\n// parse an FBX file in ASCII format\nclass TextParser {\n\n\tgetPrevNode() {\n\n\t\treturn this.nodeStack[ this.currentIndent - 2 ];\n\n\t}\n\n\tgetCurrentNode() {\n\n\t\treturn this.nodeStack[ this.currentIndent - 1 ];\n\n\t}\n\n\tgetCurrentProp() {\n\n\t\treturn this.currentProp;\n\n\t}\n\n\tpushStack( node ) {\n\n\t\tthis.nodeStack.push( node );\n\t\tthis.currentIndent += 1;\n\n\t}\n\n\tpopStack() {\n\n\t\tthis.nodeStack.pop();\n\t\tthis.currentIndent -= 1;\n\n\t}\n\n\tsetCurrentProp( val, name ) {\n\n\t\tthis.currentProp = val;\n\t\tthis.currentPropName = name;\n\n\t}\n\n\tparse( text ) {\n\n\t\tthis.currentIndent = 0;\n\n\t\tthis.allNodes = new FBXTree();\n\t\tthis.nodeStack = [];\n\t\tthis.currentProp = [];\n\t\tthis.currentPropName = '';\n\n\t\tconst scope = this;\n\n\t\tconst split = text.split( /[\\r\\n]+/ );\n\n\t\tsplit.forEach( function ( line, i ) {\n\n\t\t\tconst matchComment = line.match( /^[\\s\\t]*;/ );\n\t\t\tconst matchEmpty = line.match( /^[\\s\\t]*$/ );\n\n\t\t\tif ( matchComment || matchEmpty ) return;\n\n\t\t\tconst matchBeginning = line.match( '^\\\\t{' + scope.currentIndent + '}(\\\\w+):(.*){', '' );\n\t\t\tconst matchProperty = line.match( '^\\\\t{' + ( scope.currentIndent ) + '}(\\\\w+):[\\\\s\\\\t\\\\r\\\\n](.*)' );\n\t\t\tconst matchEnd = line.match( '^\\\\t{' + ( scope.currentIndent - 1 ) + '}}' );\n\n\t\t\tif ( matchBeginning ) {\n\n\t\t\t\tscope.parseNodeBegin( line, matchBeginning );\n\n\t\t\t} else if ( matchProperty ) {\n\n\t\t\t\tscope.parseNodeProperty( line, matchProperty, split[ ++ i ] );\n\n\t\t\t} else if ( matchEnd ) {\n\n\t\t\t\tscope.popStack();\n\n\t\t\t} else if ( line.match( /^[^\\s\\t}]/ ) ) {\n\n\t\t\t\t// large arrays are split over multiple lines terminated with a ',' character\n\t\t\t\t// if this is encountered the line needs to be joined to the previous line\n\t\t\t\tscope.parseNodePropertyContinued( line );\n\n\t\t\t}\n\n\t\t} );\n\n\t\treturn this.allNodes;\n\n\t}\n\n\tparseNodeBegin( line, property ) {\n\n\t\tconst nodeName = property[ 1 ].trim().replace( /^\"/, '' ).replace( /\"$/, '' );\n\n\t\tconst nodeAttrs = property[ 2 ].split( ',' ).map( function ( attr ) {\n\n\t\t\treturn attr.trim().replace( /^\"/, '' ).replace( /\"$/, '' );\n\n\t\t} );\n\n\t\tconst node = { name: nodeName };\n\t\tconst attrs = this.parseNodeAttr( nodeAttrs );\n\n\t\tconst currentNode = this.getCurrentNode();\n\n\t\t// a top node\n\t\tif ( this.currentIndent === 0 ) {\n\n\t\t\tthis.allNodes.add( nodeName, node );\n\n\t\t} else { // a subnode\n\n\t\t\t// if the subnode already exists, append it\n\t\t\tif ( nodeName in currentNode ) {\n\n\t\t\t\t// special case Pose needs PoseNodes as an array\n\t\t\t\tif ( nodeName === 'PoseNode' ) {\n\n\t\t\t\t\tcurrentNode.PoseNode.push( node );\n\n\t\t\t\t} else if ( currentNode[ nodeName ].id !== undefined ) {\n\n\t\t\t\t\tcurrentNode[ nodeName ] = {};\n\t\t\t\t\tcurrentNode[ nodeName ][ currentNode[ nodeName ].id ] = currentNode[ nodeName ];\n\n\t\t\t\t}\n\n\t\t\t\tif ( attrs.id !== '' ) currentNode[ nodeName ][ attrs.id ] = node;\n\n\t\t\t} else if ( typeof attrs.id === 'number' ) {\n\n\t\t\t\tcurrentNode[ nodeName ] = {};\n\t\t\t\tcurrentNode[ nodeName ][ attrs.id ] = node;\n\n\t\t\t} else if ( nodeName !== 'Properties70' ) {\n\n\t\t\t\tif ( nodeName === 'PoseNode' )\tcurrentNode[ nodeName ] = [ node ];\n\t\t\t\telse currentNode[ nodeName ] = node;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( typeof attrs.id === 'number' ) node.id = attrs.id;\n\t\tif ( attrs.name !== '' ) node.attrName = attrs.name;\n\t\tif ( attrs.type !== '' ) node.attrType = attrs.type;\n\n\t\tthis.pushStack( node );\n\n\t}\n\n\tparseNodeAttr( attrs ) {\n\n\t\tlet id = attrs[ 0 ];\n\n\t\tif ( attrs[ 0 ] !== '' ) {\n\n\t\t\tid = parseInt( attrs[ 0 ] );\n\n\t\t\tif ( isNaN( id ) ) {\n\n\t\t\t\tid = attrs[ 0 ];\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet name = '', type = '';\n\n\t\tif ( attrs.length > 1 ) {\n\n\t\t\tname = attrs[ 1 ].replace( /^(\\w+)::/, '' );\n\t\t\ttype = attrs[ 2 ];\n\n\t\t}\n\n\t\treturn { id: id, name: name, type: type };\n\n\t}\n\n\tparseNodeProperty( line, property, contentLine ) {\n\n\t\tlet propName = property[ 1 ].replace( /^\"/, '' ).replace( /\"$/, '' ).trim();\n\t\tlet propValue = property[ 2 ].replace( /^\"/, '' ).replace( /\"$/, '' ).trim();\n\n\t\t// for special case: base64 image data follows \"Content: ,\" line\n\t\t//\tContent: ,\n\t\t//\t \"/9j/4RDaRXhpZgAATU0A...\"\n\t\tif ( propName === 'Content' && propValue === ',' ) {\n\n\t\t\tpropValue = contentLine.replace( /\"/g, '' ).replace( /,$/, '' ).trim();\n\n\t\t}\n\n\t\tconst currentNode = this.getCurrentNode();\n\t\tconst parentName = currentNode.name;\n\n\t\tif ( parentName === 'Properties70' ) {\n\n\t\t\tthis.parseNodeSpecialProperty( line, propName, propValue );\n\t\t\treturn;\n\n\t\t}\n\n\t\t// Connections\n\t\tif ( propName === 'C' ) {\n\n\t\t\tconst connProps = propValue.split( ',' ).slice( 1 );\n\t\t\tconst from = parseInt( connProps[ 0 ] );\n\t\t\tconst to = parseInt( connProps[ 1 ] );\n\n\t\t\tlet rest = propValue.split( ',' ).slice( 3 );\n\n\t\t\trest = rest.map( function ( elem ) {\n\n\t\t\t\treturn elem.trim().replace( /^\"/, '' );\n\n\t\t\t} );\n\n\t\t\tpropName = 'connections';\n\t\t\tpropValue = [ from, to ];\n\t\t\tappend( propValue, rest );\n\n\t\t\tif ( currentNode[ propName ] === undefined ) {\n\n\t\t\t\tcurrentNode[ propName ] = [];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Node\n\t\tif ( propName === 'Node' ) currentNode.id = propValue;\n\n\t\t// connections\n\t\tif ( propName in currentNode && Array.isArray( currentNode[ propName ] ) ) {\n\n\t\t\tcurrentNode[ propName ].push( propValue );\n\n\t\t} else {\n\n\t\t\tif ( propName !== 'a' ) currentNode[ propName ] = propValue;\n\t\t\telse currentNode.a = propValue;\n\n\t\t}\n\n\t\tthis.setCurrentProp( currentNode, propName );\n\n\t\t// convert string to array, unless it ends in ',' in which case more will be added to it\n\t\tif ( propName === 'a' && propValue.slice( - 1 ) !== ',' ) {\n\n\t\t\tcurrentNode.a = parseNumberArray( propValue );\n\n\t\t}\n\n\t}\n\n\tparseNodePropertyContinued( line ) {\n\n\t\tconst currentNode = this.getCurrentNode();\n\n\t\tcurrentNode.a += line;\n\n\t\t// if the line doesn't end in ',' we have reached the end of the property value\n\t\t// so convert the string to an array\n\t\tif ( line.slice( - 1 ) !== ',' ) {\n\n\t\t\tcurrentNode.a = parseNumberArray( currentNode.a );\n\n\t\t}\n\n\t}\n\n\t// parse \"Property70\"\n\tparseNodeSpecialProperty( line, propName, propValue ) {\n\n\t\t// split this\n\t\t// P: \"Lcl Scaling\", \"Lcl Scaling\", \"\", \"A\",1,1,1\n\t\t// into array like below\n\t\t// [\"Lcl Scaling\", \"Lcl Scaling\", \"\", \"A\", \"1,1,1\" ]\n\t\tconst props = propValue.split( '\",' ).map( function ( prop ) {\n\n\t\t\treturn prop.trim().replace( /^\\\"/, '' ).replace( /\\s/, '_' );\n\n\t\t} );\n\n\t\tconst innerPropName = props[ 0 ];\n\t\tconst innerPropType1 = props[ 1 ];\n\t\tconst innerPropType2 = props[ 2 ];\n\t\tconst innerPropFlag = props[ 3 ];\n\t\tlet innerPropValue = props[ 4 ];\n\n\t\t// cast values where needed, otherwise leave as strings\n\t\tswitch ( innerPropType1 ) {\n\n\t\t\tcase 'int':\n\t\t\tcase 'enum':\n\t\t\tcase 'bool':\n\t\t\tcase 'ULongLong':\n\t\t\tcase 'double':\n\t\t\tcase 'Number':\n\t\t\tcase 'FieldOfView':\n\t\t\t\tinnerPropValue = parseFloat( innerPropValue );\n\t\t\t\tbreak;\n\n\t\t\tcase 'Color':\n\t\t\tcase 'ColorRGB':\n\t\t\tcase 'Vector3D':\n\t\t\tcase 'Lcl_Translation':\n\t\t\tcase 'Lcl_Rotation':\n\t\t\tcase 'Lcl_Scaling':\n\t\t\t\tinnerPropValue = parseNumberArray( innerPropValue );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\t// CAUTION: these props must append to parent's parent\n\t\tthis.getPrevNode()[ innerPropName ] = {\n\n\t\t\t'type': innerPropType1,\n\t\t\t'type2': innerPropType2,\n\t\t\t'flag': innerPropFlag,\n\t\t\t'value': innerPropValue\n\n\t\t};\n\n\t\tthis.setCurrentProp( this.getPrevNode(), innerPropName );\n\n\t}\n\n}\n\n// Parse an FBX file in Binary format\nclass BinaryParser {\n\n\tparse( buffer ) {\n\n\t\tconst reader = new BinaryReader( buffer );\n\t\treader.skip( 23 ); // skip magic 23 bytes\n\n\t\tconst version = reader.getUint32();\n\n\t\tif ( version < 6400 ) {\n\n\t\t\tthrow new Error( 'THREE.FBXLoader: FBX version not supported, FileVersion: ' + version );\n\n\t\t}\n\n\t\tconst allNodes = new FBXTree();\n\n\t\twhile ( ! this.endOfContent( reader ) ) {\n\n\t\t\tconst node = this.parseNode( reader, version );\n\t\t\tif ( node !== null ) allNodes.add( node.name, node );\n\n\t\t}\n\n\t\treturn allNodes;\n\n\t}\n\n\t// Check if reader has reached the end of content.\n\tendOfContent( reader ) {\n\n\t\t// footer size: 160bytes + 16-byte alignment padding\n\t\t// - 16bytes: magic\n\t\t// - padding til 16-byte alignment (at least 1byte?)\n\t\t//\t(seems like some exporters embed fixed 15 or 16bytes?)\n\t\t// - 4bytes: magic\n\t\t// - 4bytes: version\n\t\t// - 120bytes: zero\n\t\t// - 16bytes: magic\n\t\tif ( reader.size() % 16 === 0 ) {\n\n\t\t\treturn ( ( reader.getOffset() + 160 + 16 ) & ~ 0xf ) >= reader.size();\n\n\t\t} else {\n\n\t\t\treturn reader.getOffset() + 160 + 16 >= reader.size();\n\n\t\t}\n\n\t}\n\n\t// recursively parse nodes until the end of the file is reached\n\tparseNode( reader, version ) {\n\n\t\tconst node = {};\n\n\t\t// The first three data sizes depends on version.\n\t\tconst endOffset = ( version >= 7500 ) ? reader.getUint64() : reader.getUint32();\n\t\tconst numProperties = ( version >= 7500 ) ? reader.getUint64() : reader.getUint32();\n\n\t\t( version >= 7500 ) ? reader.getUint64() : reader.getUint32(); // the returned propertyListLen is not used\n\n\t\tconst nameLen = reader.getUint8();\n\t\tconst name = reader.getString( nameLen );\n\n\t\t// Regards this node as NULL-record if endOffset is zero\n\t\tif ( endOffset === 0 ) return null;\n\n\t\tconst propertyList = [];\n\n\t\tfor ( let i = 0; i < numProperties; i ++ ) {\n\n\t\t\tpropertyList.push( this.parseProperty( reader ) );\n\n\t\t}\n\n\t\t// Regards the first three elements in propertyList as id, attrName, and attrType\n\t\tconst id = propertyList.length > 0 ? propertyList[ 0 ] : '';\n\t\tconst attrName = propertyList.length > 1 ? propertyList[ 1 ] : '';\n\t\tconst attrType = propertyList.length > 2 ? propertyList[ 2 ] : '';\n\n\t\t// check if this node represents just a single property\n\t\t// like (name, 0) set or (name2, [0, 1, 2]) set of {name: 0, name2: [0, 1, 2]}\n\t\tnode.singleProperty = ( numProperties === 1 && reader.getOffset() === endOffset ) ? true : false;\n\n\t\twhile ( endOffset > reader.getOffset() ) {\n\n\t\t\tconst subNode = this.parseNode( reader, version );\n\n\t\t\tif ( subNode !== null ) this.parseSubNode( name, node, subNode );\n\n\t\t}\n\n\t\tnode.propertyList = propertyList; // raw property list used by parent\n\n\t\tif ( typeof id === 'number' ) node.id = id;\n\t\tif ( attrName !== '' ) node.attrName = attrName;\n\t\tif ( attrType !== '' ) node.attrType = attrType;\n\t\tif ( name !== '' ) node.name = name;\n\n\t\treturn node;\n\n\t}\n\n\tparseSubNode( name, node, subNode ) {\n\n\t\t// special case: child node is single property\n\t\tif ( subNode.singleProperty === true ) {\n\n\t\t\tconst value = subNode.propertyList[ 0 ];\n\n\t\t\tif ( Array.isArray( value ) ) {\n\n\t\t\t\tnode[ subNode.name ] = subNode;\n\n\t\t\t\tsubNode.a = value;\n\n\t\t\t} else {\n\n\t\t\t\tnode[ subNode.name ] = value;\n\n\t\t\t}\n\n\t\t} else if ( name === 'Connections' && subNode.name === 'C' ) {\n\n\t\t\tconst array = [];\n\n\t\t\tsubNode.propertyList.forEach( function ( property, i ) {\n\n\t\t\t\t// first Connection is FBX type (OO, OP, etc.). We'll discard these\n\t\t\t\tif ( i !== 0 ) array.push( property );\n\n\t\t\t} );\n\n\t\t\tif ( node.connections === undefined ) {\n\n\t\t\t\tnode.connections = [];\n\n\t\t\t}\n\n\t\t\tnode.connections.push( array );\n\n\t\t} else if ( subNode.name === 'Properties70' ) {\n\n\t\t\tconst keys = Object.keys( subNode );\n\n\t\t\tkeys.forEach( function ( key ) {\n\n\t\t\t\tnode[ key ] = subNode[ key ];\n\n\t\t\t} );\n\n\t\t} else if ( name === 'Properties70' && subNode.name === 'P' ) {\n\n\t\t\tlet innerPropName = subNode.propertyList[ 0 ];\n\t\t\tlet innerPropType1 = subNode.propertyList[ 1 ];\n\t\t\tconst innerPropType2 = subNode.propertyList[ 2 ];\n\t\t\tconst innerPropFlag = subNode.propertyList[ 3 ];\n\t\t\tlet innerPropValue;\n\n\t\t\tif ( innerPropName.indexOf( 'Lcl ' ) === 0 ) innerPropName = innerPropName.replace( 'Lcl ', 'Lcl_' );\n\t\t\tif ( innerPropType1.indexOf( 'Lcl ' ) === 0 ) innerPropType1 = innerPropType1.replace( 'Lcl ', 'Lcl_' );\n\n\t\t\tif ( innerPropType1 === 'Color' || innerPropType1 === 'ColorRGB' || innerPropType1 === 'Vector' || innerPropType1 === 'Vector3D' || innerPropType1.indexOf( 'Lcl_' ) === 0 ) {\n\n\t\t\t\tinnerPropValue = [\n\t\t\t\t\tsubNode.propertyList[ 4 ],\n\t\t\t\t\tsubNode.propertyList[ 5 ],\n\t\t\t\t\tsubNode.propertyList[ 6 ]\n\t\t\t\t];\n\n\t\t\t} else {\n\n\t\t\t\tinnerPropValue = subNode.propertyList[ 4 ];\n\n\t\t\t}\n\n\t\t\t// this will be copied to parent, see above\n\t\t\tnode[ innerPropName ] = {\n\n\t\t\t\t'type': innerPropType1,\n\t\t\t\t'type2': innerPropType2,\n\t\t\t\t'flag': innerPropFlag,\n\t\t\t\t'value': innerPropValue\n\n\t\t\t};\n\n\t\t} else if ( node[ subNode.name ] === undefined ) {\n\n\t\t\tif ( typeof subNode.id === 'number' ) {\n\n\t\t\t\tnode[ subNode.name ] = {};\n\t\t\t\tnode[ subNode.name ][ subNode.id ] = subNode;\n\n\t\t\t} else {\n\n\t\t\t\tnode[ subNode.name ] = subNode;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( subNode.name === 'PoseNode' ) {\n\n\t\t\t\tif ( ! Array.isArray( node[ subNode.name ] ) ) {\n\n\t\t\t\t\tnode[ subNode.name ] = [ node[ subNode.name ] ];\n\n\t\t\t\t}\n\n\t\t\t\tnode[ subNode.name ].push( subNode );\n\n\t\t\t} else if ( node[ subNode.name ][ subNode.id ] === undefined ) {\n\n\t\t\t\tnode[ subNode.name ][ subNode.id ] = subNode;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tparseProperty( reader ) {\n\n\t\tconst type = reader.getString( 1 );\n\t\tlet length;\n\n\t\tswitch ( type ) {\n\n\t\t\tcase 'C':\n\t\t\t\treturn reader.getBoolean();\n\n\t\t\tcase 'D':\n\t\t\t\treturn reader.getFloat64();\n\n\t\t\tcase 'F':\n\t\t\t\treturn reader.getFloat32();\n\n\t\t\tcase 'I':\n\t\t\t\treturn reader.getInt32();\n\n\t\t\tcase 'L':\n\t\t\t\treturn reader.getInt64();\n\n\t\t\tcase 'R':\n\t\t\t\tlength = reader.getUint32();\n\t\t\t\treturn reader.getArrayBuffer( length );\n\n\t\t\tcase 'S':\n\t\t\t\tlength = reader.getUint32();\n\t\t\t\treturn reader.getString( length );\n\n\t\t\tcase 'Y':\n\t\t\t\treturn reader.getInt16();\n\n\t\t\tcase 'b':\n\t\t\tcase 'c':\n\t\t\tcase 'd':\n\t\t\tcase 'f':\n\t\t\tcase 'i':\n\t\t\tcase 'l':\n\n\t\t\t\tconst arrayLength = reader.getUint32();\n\t\t\t\tconst encoding = reader.getUint32(); // 0: non-compressed, 1: compressed\n\t\t\t\tconst compressedLength = reader.getUint32();\n\n\t\t\t\tif ( encoding === 0 ) {\n\n\t\t\t\t\tswitch ( type ) {\n\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\tcase 'c':\n\t\t\t\t\t\t\treturn reader.getBooleanArray( arrayLength );\n\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\treturn reader.getFloat64Array( arrayLength );\n\n\t\t\t\t\t\tcase 'f':\n\t\t\t\t\t\t\treturn reader.getFloat32Array( arrayLength );\n\n\t\t\t\t\t\tcase 'i':\n\t\t\t\t\t\t\treturn reader.getInt32Array( arrayLength );\n\n\t\t\t\t\t\tcase 'l':\n\t\t\t\t\t\t\treturn reader.getInt64Array( arrayLength );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tconst data = fflate.unzlibSync( new Uint8Array( reader.getArrayBuffer( compressedLength ) ) );\n\t\t\t\tconst reader2 = new BinaryReader( data.buffer );\n\n\t\t\t\tswitch ( type ) {\n\n\t\t\t\t\tcase 'b':\n\t\t\t\t\tcase 'c':\n\t\t\t\t\t\treturn reader2.getBooleanArray( arrayLength );\n\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\treturn reader2.getFloat64Array( arrayLength );\n\n\t\t\t\t\tcase 'f':\n\t\t\t\t\t\treturn reader2.getFloat32Array( arrayLength );\n\n\t\t\t\t\tcase 'i':\n\t\t\t\t\t\treturn reader2.getInt32Array( arrayLength );\n\n\t\t\t\t\tcase 'l':\n\t\t\t\t\t\treturn reader2.getInt64Array( arrayLength );\n\n\t\t\t\t}\n\n\t\t\t\tbreak; // cannot happen but is required by the DeepScan\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'THREE.FBXLoader: Unknown property type ' + type );\n\n\t\t}\n\n\t}\n\n}\n\nclass BinaryReader {\n\n\tconstructor( buffer, littleEndian ) {\n\n\t\tthis.dv = new DataView( buffer );\n\t\tthis.offset = 0;\n\t\tthis.littleEndian = ( littleEndian !== undefined ) ? littleEndian : true;\n\t\tthis._textDecoder = new TextDecoder();\n\n\t}\n\n\tgetOffset() {\n\n\t\treturn this.offset;\n\n\t}\n\n\tsize() {\n\n\t\treturn this.dv.buffer.byteLength;\n\n\t}\n\n\tskip( length ) {\n\n\t\tthis.offset += length;\n\n\t}\n\n\t// seems like true/false representation depends on exporter.\n\t// true: 1 or 'Y'(=0x59), false: 0 or 'T'(=0x54)\n\t// then sees LSB.\n\tgetBoolean() {\n\n\t\treturn ( this.getUint8() & 1 ) === 1;\n\n\t}\n\n\tgetBooleanArray( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getBoolean() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\tgetUint8() {\n\n\t\tconst value = this.dv.getUint8( this.offset );\n\t\tthis.offset += 1;\n\t\treturn value;\n\n\t}\n\n\tgetInt16() {\n\n\t\tconst value = this.dv.getInt16( this.offset, this.littleEndian );\n\t\tthis.offset += 2;\n\t\treturn value;\n\n\t}\n\n\tgetInt32() {\n\n\t\tconst value = this.dv.getInt32( this.offset, this.littleEndian );\n\t\tthis.offset += 4;\n\t\treturn value;\n\n\t}\n\n\tgetInt32Array( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getInt32() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\tgetUint32() {\n\n\t\tconst value = this.dv.getUint32( this.offset, this.littleEndian );\n\t\tthis.offset += 4;\n\t\treturn value;\n\n\t}\n\n\t// JavaScript doesn't support 64-bit integer so calculate this here\n\t// 1 << 32 will return 1 so using multiply operation instead here.\n\t// There's a possibility that this method returns wrong value if the value\n\t// is out of the range between Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER.\n\t// TODO: safely handle 64-bit integer\n\tgetInt64() {\n\n\t\tlet low, high;\n\n\t\tif ( this.littleEndian ) {\n\n\t\t\tlow = this.getUint32();\n\t\t\thigh = this.getUint32();\n\n\t\t} else {\n\n\t\t\thigh = this.getUint32();\n\t\t\tlow = this.getUint32();\n\n\t\t}\n\n\t\t// calculate negative value\n\t\tif ( high & 0x80000000 ) {\n\n\t\t\thigh = ~ high & 0xFFFFFFFF;\n\t\t\tlow = ~ low & 0xFFFFFFFF;\n\n\t\t\tif ( low === 0xFFFFFFFF ) high = ( high + 1 ) & 0xFFFFFFFF;\n\n\t\t\tlow = ( low + 1 ) & 0xFFFFFFFF;\n\n\t\t\treturn - ( high * 0x100000000 + low );\n\n\t\t}\n\n\t\treturn high * 0x100000000 + low;\n\n\t}\n\n\tgetInt64Array( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getInt64() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\t// Note: see getInt64() comment\n\tgetUint64() {\n\n\t\tlet low, high;\n\n\t\tif ( this.littleEndian ) {\n\n\t\t\tlow = this.getUint32();\n\t\t\thigh = this.getUint32();\n\n\t\t} else {\n\n\t\t\thigh = this.getUint32();\n\t\t\tlow = this.getUint32();\n\n\t\t}\n\n\t\treturn high * 0x100000000 + low;\n\n\t}\n\n\tgetFloat32() {\n\n\t\tconst value = this.dv.getFloat32( this.offset, this.littleEndian );\n\t\tthis.offset += 4;\n\t\treturn value;\n\n\t}\n\n\tgetFloat32Array( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getFloat32() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\tgetFloat64() {\n\n\t\tconst value = this.dv.getFloat64( this.offset, this.littleEndian );\n\t\tthis.offset += 8;\n\t\treturn value;\n\n\t}\n\n\tgetFloat64Array( size ) {\n\n\t\tconst a = [];\n\n\t\tfor ( let i = 0; i < size; i ++ ) {\n\n\t\t\ta.push( this.getFloat64() );\n\n\t\t}\n\n\t\treturn a;\n\n\t}\n\n\tgetArrayBuffer( size ) {\n\n\t\tconst value = this.dv.buffer.slice( this.offset, this.offset + size );\n\t\tthis.offset += size;\n\t\treturn value;\n\n\t}\n\n\tgetString( size ) {\n\n\t\tconst start = this.offset;\n\t\tlet a = new Uint8Array( this.dv.buffer, start, size );\n\n\t\tthis.skip( size );\n\n\t\tconst nullByte = a.indexOf( 0 );\n\t\tif ( nullByte >= 0 ) a = new Uint8Array( this.dv.buffer, start, nullByte );\n\n\t\treturn this._textDecoder.decode( a );\n\n\t}\n\n}\n\n// FBXTree holds a representation of the FBX data, returned by the TextParser ( FBX ASCII format)\n// and BinaryParser( FBX Binary format)\nclass FBXTree {\n\n\tadd( key, val ) {\n\n\t\tthis[ key ] = val;\n\n\t}\n\n}\n\n// ************** UTILITY FUNCTIONS **************\n\nfunction isFbxFormatBinary( buffer ) {\n\n\tconst CORRECT = 'Kaydara\\u0020FBX\\u0020Binary\\u0020\\u0020\\0';\n\n\treturn buffer.byteLength >= CORRECT.length && CORRECT === convertArrayBufferToString( buffer, 0, CORRECT.length );\n\n}\n\nfunction isFbxFormatASCII( text ) {\n\n\tconst CORRECT = [ 'K', 'a', 'y', 'd', 'a', 'r', 'a', '\\\\', 'F', 'B', 'X', '\\\\', 'B', 'i', 'n', 'a', 'r', 'y', '\\\\', '\\\\' ];\n\n\tlet cursor = 0;\n\n\tfunction read( offset ) {\n\n\t\tconst result = text[ offset - 1 ];\n\t\ttext = text.slice( cursor + offset );\n\t\tcursor ++;\n\t\treturn result;\n\n\t}\n\n\tfor ( let i = 0; i < CORRECT.length; ++ i ) {\n\n\t\tconst num = read( 1 );\n\t\tif ( num === CORRECT[ i ] ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nfunction getFbxVersion( text ) {\n\n\tconst versionRegExp = /FBXVersion: (\\d+)/;\n\tconst match = text.match( versionRegExp );\n\n\tif ( match ) {\n\n\t\tconst version = parseInt( match[ 1 ] );\n\t\treturn version;\n\n\t}\n\n\tthrow new Error( 'THREE.FBXLoader: Cannot find the version number for the file given.' );\n\n}\n\n// Converts FBX ticks into real time seconds.\nfunction convertFBXTimeToSeconds( time ) {\n\n\treturn time / 46186158000;\n\n}\n\nconst dataArray = [];\n\n// extracts the data from the correct position in the FBX array based on indexing type\nfunction getData( polygonVertexIndex, polygonIndex, vertexIndex, infoObject ) {\n\n\tlet index;\n\n\tswitch ( infoObject.mappingType ) {\n\n\t\tcase 'ByPolygonVertex' :\n\t\t\tindex = polygonVertexIndex;\n\t\t\tbreak;\n\t\tcase 'ByPolygon' :\n\t\t\tindex = polygonIndex;\n\t\t\tbreak;\n\t\tcase 'ByVertice' :\n\t\t\tindex = vertexIndex;\n\t\t\tbreak;\n\t\tcase 'AllSame' :\n\t\t\tindex = infoObject.indices[ 0 ];\n\t\t\tbreak;\n\t\tdefault :\n\t\t\tconsole.warn( 'THREE.FBXLoader: unknown attribute mapping type ' + infoObject.mappingType );\n\n\t}\n\n\tif ( infoObject.referenceType === 'IndexToDirect' ) index = infoObject.indices[ index ];\n\n\tconst from = index * infoObject.dataSize;\n\tconst to = from + infoObject.dataSize;\n\n\treturn slice( dataArray, infoObject.buffer, from, to );\n\n}\n\nconst tempEuler = new Euler();\nconst tempVec = new Vector3();\n\n// generate transformation from FBX transform data\n// ref: https://help.autodesk.com/view/FBX/2017/ENU/?guid=__files_GUID_10CDD63C_79C1_4F2D_BB28_AD2BE65A02ED_htm\n// ref: http://docs.autodesk.com/FBX/2014/ENU/FBX-SDK-Documentation/index.html?url=cpp_ref/_transformations_2main_8cxx-example.html,topicNumber=cpp_ref__transformations_2main_8cxx_example_htmlfc10a1e1-b18d-4e72-9dc0-70d0f1959f5e\nfunction generateTransform( transformData ) {\n\n\tconst lTranslationM = new Matrix4();\n\tconst lPreRotationM = new Matrix4();\n\tconst lRotationM = new Matrix4();\n\tconst lPostRotationM = new Matrix4();\n\n\tconst lScalingM = new Matrix4();\n\tconst lScalingPivotM = new Matrix4();\n\tconst lScalingOffsetM = new Matrix4();\n\tconst lRotationOffsetM = new Matrix4();\n\tconst lRotationPivotM = new Matrix4();\n\n\tconst lParentGX = new Matrix4();\n\tconst lParentLX = new Matrix4();\n\tconst lGlobalT = new Matrix4();\n\n\tconst inheritType = ( transformData.inheritType ) ? transformData.inheritType : 0;\n\n\tif ( transformData.translation ) lTranslationM.setPosition( tempVec.fromArray( transformData.translation ) );\n\n\t// For Maya models using \"Joint Orient\", Euler order only applies to rotation, not pre/post-rotations\n\tconst defaultEulerOrder = getEulerOrder( 0 );\n\n\tif ( transformData.preRotation ) {\n\n\t\tconst array = transformData.preRotation.map( MathUtils.degToRad );\n\t\tarray.push( defaultEulerOrder );\n\t\tlPreRotationM.makeRotationFromEuler( tempEuler.fromArray( array ) );\n\n\t}\n\n\tif ( transformData.rotation ) {\n\n\t\tconst array = transformData.rotation.map( MathUtils.degToRad );\n\t\tarray.push( transformData.eulerOrder || defaultEulerOrder );\n\t\tlRotationM.makeRotationFromEuler( tempEuler.fromArray( array ) );\n\n\t}\n\n\tif ( transformData.postRotation ) {\n\n\t\tconst array = transformData.postRotation.map( MathUtils.degToRad );\n\t\tarray.push( defaultEulerOrder );\n\t\tlPostRotationM.makeRotationFromEuler( tempEuler.fromArray( array ) );\n\t\tlPostRotationM.invert();\n\n\t}\n\n\tif ( transformData.scale ) lScalingM.scale( tempVec.fromArray( transformData.scale ) );\n\n\t// Pivots and offsets\n\tif ( transformData.scalingOffset ) lScalingOffsetM.setPosition( tempVec.fromArray( transformData.scalingOffset ) );\n\tif ( transformData.scalingPivot ) lScalingPivotM.setPosition( tempVec.fromArray( transformData.scalingPivot ) );\n\tif ( transformData.rotationOffset ) lRotationOffsetM.setPosition( tempVec.fromArray( transformData.rotationOffset ) );\n\tif ( transformData.rotationPivot ) lRotationPivotM.setPosition( tempVec.fromArray( transformData.rotationPivot ) );\n\n\t// parent transform\n\tif ( transformData.parentMatrixWorld ) {\n\n\t\tlParentLX.copy( transformData.parentMatrix );\n\t\tlParentGX.copy( transformData.parentMatrixWorld );\n\n\t}\n\n\tconst lLRM = lPreRotationM.clone().multiply( lRotationM ).multiply( lPostRotationM );\n\t// Global Rotation\n\tconst lParentGRM = new Matrix4();\n\tlParentGRM.extractRotation( lParentGX );\n\n\t// Global Shear*Scaling\n\tconst lParentTM = new Matrix4();\n\tlParentTM.copyPosition( lParentGX );\n\n\tconst lParentGRSM = lParentTM.clone().invert().multiply( lParentGX );\n\tconst lParentGSM = lParentGRM.clone().invert().multiply( lParentGRSM );\n\tconst lLSM = lScalingM;\n\n\tconst lGlobalRS = new Matrix4();\n\n\tif ( inheritType === 0 ) {\n\n\t\tlGlobalRS.copy( lParentGRM ).multiply( lLRM ).multiply( lParentGSM ).multiply( lLSM );\n\n\t} else if ( inheritType === 1 ) {\n\n\t\tlGlobalRS.copy( lParentGRM ).multiply( lParentGSM ).multiply( lLRM ).multiply( lLSM );\n\n\t} else {\n\n\t\tconst lParentLSM = new Matrix4().scale( new Vector3().setFromMatrixScale( lParentLX ) );\n\t\tconst lParentLSM_inv = lParentLSM.clone().invert();\n\t\tconst lParentGSM_noLocal = lParentGSM.clone().multiply( lParentLSM_inv );\n\n\t\tlGlobalRS.copy( lParentGRM ).multiply( lLRM ).multiply( lParentGSM_noLocal ).multiply( lLSM );\n\n\t}\n\n\tconst lRotationPivotM_inv = lRotationPivotM.clone().invert();\n\tconst lScalingPivotM_inv = lScalingPivotM.clone().invert();\n\t// Calculate the local transform matrix\n\tlet lTransform = lTranslationM.clone().multiply( lRotationOffsetM ).multiply( lRotationPivotM ).multiply( lPreRotationM ).multiply( lRotationM ).multiply( lPostRotationM ).multiply( lRotationPivotM_inv ).multiply( lScalingOffsetM ).multiply( lScalingPivotM ).multiply( lScalingM ).multiply( lScalingPivotM_inv );\n\n\tconst lLocalTWithAllPivotAndOffsetInfo = new Matrix4().copyPosition( lTransform );\n\n\tconst lGlobalTranslation = lParentGX.clone().multiply( lLocalTWithAllPivotAndOffsetInfo );\n\tlGlobalT.copyPosition( lGlobalTranslation );\n\n\tlTransform = lGlobalT.clone().multiply( lGlobalRS );\n\n\t// from global to local\n\tlTransform.premultiply( lParentGX.invert() );\n\n\treturn lTransform;\n\n}\n\n// Returns the three.js intrinsic Euler order corresponding to FBX extrinsic Euler order\n// ref: http://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_class_fbx_euler_html\nfunction getEulerOrder( order ) {\n\n\torder = order || 0;\n\n\tconst enums = [\n\t\t'ZYX', // -> XYZ extrinsic\n\t\t'YZX', // -> XZY extrinsic\n\t\t'XZY', // -> YZX extrinsic\n\t\t'ZXY', // -> YXZ extrinsic\n\t\t'YXZ', // -> ZXY extrinsic\n\t\t'XYZ', // -> ZYX extrinsic\n\t\t//'SphericXYZ', // not possible to support\n\t];\n\n\tif ( order === 6 ) {\n\n\t\tconsole.warn( 'THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect.' );\n\t\treturn enums[ 0 ];\n\n\t}\n\n\treturn enums[ order ];\n\n}\n\n// Parses comma separated list of numbers and returns them an array.\n// Used internally by the TextParser\nfunction parseNumberArray( value ) {\n\n\tconst array = value.split( ',' ).map( function ( val ) {\n\n\t\treturn parseFloat( val );\n\n\t} );\n\n\treturn array;\n\n}\n\nfunction convertArrayBufferToString( buffer, from, to ) {\n\n\tif ( from === undefined ) from = 0;\n\tif ( to === undefined ) to = buffer.byteLength;\n\n\treturn new TextDecoder().decode( new Uint8Array( buffer, from, to ) );\n\n}\n\nfunction append( a, b ) {\n\n\tfor ( let i = 0, j = a.length, l = b.length; i < l; i ++, j ++ ) {\n\n\t\ta[ j ] = b[ i ];\n\n\t}\n\n}\n\nfunction slice( a, b, from, to ) {\n\n\tfor ( let i = from, j = 0; i < to; i ++, j ++ ) {\n\n\t\ta[ j ] = b[ i ];\n\n\t}\n\n\treturn a;\n\n}\n\n\nexport { FBXLoader };\n","import {\n\tBufferAttribute,\n\tBufferGeometry,\n\tColor,\n\tFileLoader,\n\tFloat32BufferAttribute,\n\tLoader,\n\tVector3,\n\tSRGBColorSpace\n} from 'three';\n\n/**\n * Description: A THREE loader for STL ASCII files, as created by Solidworks and other CAD programs.\n *\n * Supports both binary and ASCII encoded files, with automatic detection of type.\n *\n * The loader returns a non-indexed buffer geometry.\n *\n * Limitations:\n * Binary decoding supports \"Magics\" color format (http://en.wikipedia.org/wiki/STL_(file_format)#Color_in_binary_STL).\n * There is perhaps some question as to how valid it is to always assume little-endian-ness.\n * ASCII decoding assumes file is UTF-8.\n *\n * Usage:\n * const loader = new STLLoader();\n * loader.load( './models/stl/slotted_disk.stl', function ( geometry ) {\n * scene.add( new THREE.Mesh( geometry ) );\n * });\n *\n * For binary STLs geometry might contain colors for vertices. To use it:\n * // use the same code to load STL as above\n * if (geometry.hasColors) {\n * material = new THREE.MeshPhongMaterial({ opacity: geometry.alpha, vertexColors: true });\n * } else { .... }\n * const mesh = new THREE.Mesh( geometry, material );\n *\n * For ASCII STLs containing multiple solids, each solid is assigned to a different group.\n * Groups can be used to assign a different color by defining an array of materials with the same length of\n * geometry.groups and passing it to the Mesh constructor:\n *\n * const mesh = new THREE.Mesh( geometry, material );\n *\n * For example:\n *\n * const materials = [];\n * const nGeometryGroups = geometry.groups.length;\n *\n * const colorMap = ...; // Some logic to index colors.\n *\n * for (let i = 0; i < nGeometryGroups; i++) {\n *\n *\t\tconst material = new THREE.MeshPhongMaterial({\n *\t\t\tcolor: colorMap[i],\n *\t\t\twireframe: false\n *\t\t});\n *\n * }\n *\n * materials.push(material);\n * const mesh = new THREE.Mesh(geometry, materials);\n */\n\n\nclass STLLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( text ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( data ) {\n\n\t\tfunction isBinary( data ) {\n\n\t\t\tconst reader = new DataView( data );\n\t\t\tconst face_size = ( 32 / 8 * 3 ) + ( ( 32 / 8 * 3 ) * 3 ) + ( 16 / 8 );\n\t\t\tconst n_faces = reader.getUint32( 80, true );\n\t\t\tconst expect = 80 + ( 32 / 8 ) + ( n_faces * face_size );\n\n\t\t\tif ( expect === reader.byteLength ) {\n\n\t\t\t\treturn true;\n\n\t\t\t}\n\n\t\t\t// An ASCII STL data must begin with 'solid ' as the first six bytes.\n\t\t\t// However, ASCII STLs lacking the SPACE after the 'd' are known to be\n\t\t\t// plentiful. So, check the first 5 bytes for 'solid'.\n\n\t\t\t// Several encodings, such as UTF-8, precede the text with up to 5 bytes:\n\t\t\t// https://en.wikipedia.org/wiki/Byte_order_mark#Byte_order_marks_by_encoding\n\t\t\t// Search for \"solid\" to start anywhere after those prefixes.\n\n\t\t\t// US-ASCII ordinal values for 's', 'o', 'l', 'i', 'd'\n\n\t\t\tconst solid = [ 115, 111, 108, 105, 100 ];\n\n\t\t\tfor ( let off = 0; off < 5; off ++ ) {\n\n\t\t\t\t// If \"solid\" text is matched to the current offset, declare it to be an ASCII STL.\n\n\t\t\t\tif ( matchDataViewAt( solid, reader, off ) ) return false;\n\n\t\t\t}\n\n\t\t\t// Couldn't find \"solid\" text at the beginning; it is binary STL.\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tfunction matchDataViewAt( query, reader, offset ) {\n\n\t\t\t// Check if each byte in query matches the corresponding byte from the current offset\n\n\t\t\tfor ( let i = 0, il = query.length; i < il; i ++ ) {\n\n\t\t\t\tif ( query[ i ] !== reader.getUint8( offset + i ) ) return false;\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tfunction parseBinary( data ) {\n\n\t\t\tconst reader = new DataView( data );\n\t\t\tconst faces = reader.getUint32( 80, true );\n\n\t\t\tlet r, g, b, hasColors = false, colors;\n\t\t\tlet defaultR, defaultG, defaultB, alpha;\n\n\t\t\t// process STL header\n\t\t\t// check for default color in header (\"COLOR=rgba\" sequence).\n\n\t\t\tfor ( let index = 0; index < 80 - 10; index ++ ) {\n\n\t\t\t\tif ( ( reader.getUint32( index, false ) == 0x434F4C4F /*COLO*/ ) &&\n\t\t\t\t\t( reader.getUint8( index + 4 ) == 0x52 /*'R'*/ ) &&\n\t\t\t\t\t( reader.getUint8( index + 5 ) == 0x3D /*'='*/ ) ) {\n\n\t\t\t\t\thasColors = true;\n\t\t\t\t\tcolors = new Float32Array( faces * 3 * 3 );\n\n\t\t\t\t\tdefaultR = reader.getUint8( index + 6 ) / 255;\n\t\t\t\t\tdefaultG = reader.getUint8( index + 7 ) / 255;\n\t\t\t\t\tdefaultB = reader.getUint8( index + 8 ) / 255;\n\t\t\t\t\talpha = reader.getUint8( index + 9 ) / 255;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst dataOffset = 84;\n\t\t\tconst faceLength = 12 * 4 + 2;\n\n\t\t\tconst geometry = new BufferGeometry();\n\n\t\t\tconst vertices = new Float32Array( faces * 3 * 3 );\n\t\t\tconst normals = new Float32Array( faces * 3 * 3 );\n\n\t\t\tconst color = new Color();\n\n\t\t\tfor ( let face = 0; face < faces; face ++ ) {\n\n\t\t\t\tconst start = dataOffset + face * faceLength;\n\t\t\t\tconst normalX = reader.getFloat32( start, true );\n\t\t\t\tconst normalY = reader.getFloat32( start + 4, true );\n\t\t\t\tconst normalZ = reader.getFloat32( start + 8, true );\n\n\t\t\t\tif ( hasColors ) {\n\n\t\t\t\t\tconst packedColor = reader.getUint16( start + 48, true );\n\n\t\t\t\t\tif ( ( packedColor & 0x8000 ) === 0 ) {\n\n\t\t\t\t\t\t// facet has its own unique color\n\n\t\t\t\t\t\tr = ( packedColor & 0x1F ) / 31;\n\t\t\t\t\t\tg = ( ( packedColor >> 5 ) & 0x1F ) / 31;\n\t\t\t\t\t\tb = ( ( packedColor >> 10 ) & 0x1F ) / 31;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tr = defaultR;\n\t\t\t\t\t\tg = defaultG;\n\t\t\t\t\t\tb = defaultB;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 1; i <= 3; i ++ ) {\n\n\t\t\t\t\tconst vertexstart = start + i * 12;\n\t\t\t\t\tconst componentIdx = ( face * 3 * 3 ) + ( ( i - 1 ) * 3 );\n\n\t\t\t\t\tvertices[ componentIdx ] = reader.getFloat32( vertexstart, true );\n\t\t\t\t\tvertices[ componentIdx + 1 ] = reader.getFloat32( vertexstart + 4, true );\n\t\t\t\t\tvertices[ componentIdx + 2 ] = reader.getFloat32( vertexstart + 8, true );\n\n\t\t\t\t\tnormals[ componentIdx ] = normalX;\n\t\t\t\t\tnormals[ componentIdx + 1 ] = normalY;\n\t\t\t\t\tnormals[ componentIdx + 2 ] = normalZ;\n\n\t\t\t\t\tif ( hasColors ) {\n\n\t\t\t\t\t\tcolor.setRGB( r, g, b, SRGBColorSpace );\n\n\t\t\t\t\t\tcolors[ componentIdx ] = color.r;\n\t\t\t\t\t\tcolors[ componentIdx + 1 ] = color.g;\n\t\t\t\t\t\tcolors[ componentIdx + 2 ] = color.b;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'position', new BufferAttribute( vertices, 3 ) );\n\t\t\tgeometry.setAttribute( 'normal', new BufferAttribute( normals, 3 ) );\n\n\t\t\tif ( hasColors ) {\n\n\t\t\t\tgeometry.setAttribute( 'color', new BufferAttribute( colors, 3 ) );\n\t\t\t\tgeometry.hasColors = true;\n\t\t\t\tgeometry.alpha = alpha;\n\n\t\t\t}\n\n\t\t\treturn geometry;\n\n\t\t}\n\n\t\tfunction parseASCII( data ) {\n\n\t\t\tconst geometry = new BufferGeometry();\n\t\t\tconst patternSolid = /solid([\\s\\S]*?)endsolid/g;\n\t\t\tconst patternFace = /facet([\\s\\S]*?)endfacet/g;\n\t\t\tconst patternName = /solid\\s(.+)/;\n\t\t\tlet faceCounter = 0;\n\n\t\t\tconst patternFloat = /[\\s]+([+-]?(?:\\d*)(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)/.source;\n\t\t\tconst patternVertex = new RegExp( 'vertex' + patternFloat + patternFloat + patternFloat, 'g' );\n\t\t\tconst patternNormal = new RegExp( 'normal' + patternFloat + patternFloat + patternFloat, 'g' );\n\n\t\t\tconst vertices = [];\n\t\t\tconst normals = [];\n\t\t\tconst groupNames = [];\n\n\t\t\tconst normal = new Vector3();\n\n\t\t\tlet result;\n\n\t\t\tlet groupCount = 0;\n\t\t\tlet startVertex = 0;\n\t\t\tlet endVertex = 0;\n\n\t\t\twhile ( ( result = patternSolid.exec( data ) ) !== null ) {\n\n\t\t\t\tstartVertex = endVertex;\n\n\t\t\t\tconst solid = result[ 0 ];\n\n\t\t\t\tconst name = ( result = patternName.exec( solid ) ) !== null ? result[ 1 ] : '';\n\t\t\t\tgroupNames.push( name );\n\n\t\t\t\twhile ( ( result = patternFace.exec( solid ) ) !== null ) {\n\n\t\t\t\t\tlet vertexCountPerFace = 0;\n\t\t\t\t\tlet normalCountPerFace = 0;\n\n\t\t\t\t\tconst text = result[ 0 ];\n\n\t\t\t\t\twhile ( ( result = patternNormal.exec( text ) ) !== null ) {\n\n\t\t\t\t\t\tnormal.x = parseFloat( result[ 1 ] );\n\t\t\t\t\t\tnormal.y = parseFloat( result[ 2 ] );\n\t\t\t\t\t\tnormal.z = parseFloat( result[ 3 ] );\n\t\t\t\t\t\tnormalCountPerFace ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t\twhile ( ( result = patternVertex.exec( text ) ) !== null ) {\n\n\t\t\t\t\t\tvertices.push( parseFloat( result[ 1 ] ), parseFloat( result[ 2 ] ), parseFloat( result[ 3 ] ) );\n\t\t\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\t\t\t\t\t\tvertexCountPerFace ++;\n\t\t\t\t\t\tendVertex ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// every face have to own ONE valid normal\n\n\t\t\t\t\tif ( normalCountPerFace !== 1 ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.STLLoader: Something isn\\'t right with the normal of face number ' + faceCounter );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// each face have to own THREE valid vertices\n\n\t\t\t\t\tif ( vertexCountPerFace !== 3 ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.STLLoader: Something isn\\'t right with the vertices of face number ' + faceCounter );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfaceCounter ++;\n\n\t\t\t\t}\n\n\t\t\t\tconst start = startVertex;\n\t\t\t\tconst count = endVertex - startVertex;\n\n\t\t\t\tgeometry.userData.groupNames = groupNames;\n\n\t\t\t\tgeometry.addGroup( start, count, groupCount );\n\t\t\t\tgroupCount ++;\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\t\tgeometry.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\n\t\t\treturn geometry;\n\n\t\t}\n\n\t\tfunction ensureString( buffer ) {\n\n\t\t\tif ( typeof buffer !== 'string' ) {\n\n\t\t\t\treturn new TextDecoder().decode( buffer );\n\n\t\t\t}\n\n\t\t\treturn buffer;\n\n\t\t}\n\n\t\tfunction ensureBinary( buffer ) {\n\n\t\t\tif ( typeof buffer === 'string' ) {\n\n\t\t\t\tconst array_buffer = new Uint8Array( buffer.length );\n\t\t\t\tfor ( let i = 0; i < buffer.length; i ++ ) {\n\n\t\t\t\t\tarray_buffer[ i ] = buffer.charCodeAt( i ) & 0xff; // implicitly assumes little-endian\n\n\t\t\t\t}\n\n\t\t\t\treturn array_buffer.buffer || array_buffer;\n\n\t\t\t} else {\n\n\t\t\t\treturn buffer;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// start\n\n\t\tconst binData = ensureBinary( data );\n\n\t\treturn isBinary( binData ) ? parseBinary( binData ) : parseASCII( ensureString( data ) );\n\n\t}\n\n}\n\nexport { STLLoader };\n","// @ts-strict-ignore\nimport { app } from '@/scripts/app'\nimport { api } from '@/scripts/api'\nimport { useToastStore } from '@/stores/toastStore'\nimport * as THREE from 'three'\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'\nimport { GLTF, GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'\nimport { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader'\nimport { MTLLoader } from 'three/examples/jsm/loaders/MTLLoader'\nimport { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader'\nimport { STLLoader } from 'three/examples/jsm/loaders/STLLoader'\nimport { IWidget } from '@comfyorg/litegraph'\nimport { nextTick } from 'vue'\n\nasync function uploadFile(\n load3d: Load3d,\n file: File,\n fileInput?: HTMLInputElement\n) {\n let uploadPath\n\n try {\n const body = new FormData()\n body.append('image', file)\n body.append('subfolder', '3d')\n\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n\n if (resp.status === 200) {\n const data = await resp.json()\n let path = data.name\n\n if (data.subfolder) path = data.subfolder + '/' + path\n\n uploadPath = path\n\n const modelUrl = api.apiURL(\n getResourceURL(...splitFilePath(path), 'input')\n )\n await load3d.loadModel(modelUrl, file.name)\n\n const fileExt = file.name.split('.').pop()?.toLowerCase()\n if (fileExt === 'obj' && fileInput?.files) {\n try {\n const mtlFile = Array.from(fileInput.files).find((f) =>\n f.name.toLowerCase().endsWith('.mtl')\n )\n\n if (mtlFile) {\n const mtlFormData = new FormData()\n mtlFormData.append('image', mtlFile)\n mtlFormData.append('subfolder', '3d')\n\n await api.fetchApi('/upload/image', {\n method: 'POST',\n body: mtlFormData\n })\n }\n } catch (mtlError) {\n console.warn('Failed to upload MTL file:', mtlError)\n }\n }\n } else {\n useToastStore().addAlert(resp.status + ' - ' + resp.statusText)\n }\n } catch (error) {\n console.error('Upload error:', error)\n useToastStore().addAlert(\n error instanceof Error ? error.message : 'Upload failed'\n )\n }\n\n return uploadPath\n}\n\nclass Load3d {\n scene: THREE.Scene\n perspectiveCamera: THREE.PerspectiveCamera\n orthographicCamera: THREE.OrthographicCamera\n activeCamera: THREE.Camera\n renderer: THREE.WebGLRenderer\n controls: OrbitControls\n gltfLoader: GLTFLoader\n objLoader: OBJLoader\n mtlLoader: MTLLoader\n fbxLoader: FBXLoader\n stlLoader: STLLoader\n currentModel: THREE.Object3D | null = null\n originalModel: THREE.Object3D | THREE.BufferGeometry | GLTF | null = null\n node: any\n private animationFrameId: number | null = null\n gridHelper: THREE.GridHelper\n lights: THREE.Light[] = []\n clock: THREE.Clock\n normalMaterial: THREE.MeshNormalMaterial\n standardMaterial: THREE.MeshStandardMaterial\n wireframeMaterial: THREE.MeshBasicMaterial\n depthMaterial: THREE.MeshDepthMaterial\n originalMaterials: WeakMap =\n new WeakMap()\n\n materialMode: 'original' | 'normal' | 'wireframe' | 'depth' = 'original'\n currentUpDirection: 'original' | '-x' | '+x' | '-y' | '+y' | '-z' | '+z' =\n 'original'\n originalRotation: THREE.Euler | null = null\n\n constructor(container: Element | HTMLElement) {\n this.scene = new THREE.Scene()\n\n this.perspectiveCamera = new THREE.PerspectiveCamera(75, 1, 0.1, 1000)\n this.perspectiveCamera.position.set(5, 5, 5)\n\n const frustumSize = 10\n this.orthographicCamera = new THREE.OrthographicCamera(\n -frustumSize / 2,\n frustumSize / 2,\n frustumSize / 2,\n -frustumSize / 2,\n 0.1,\n 1000\n )\n this.orthographicCamera.position.set(5, 5, 5)\n\n this.activeCamera = this.perspectiveCamera\n\n this.perspectiveCamera.lookAt(0, 0, 0)\n this.orthographicCamera.lookAt(0, 0, 0)\n\n this.renderer = new THREE.WebGLRenderer({ antialias: true })\n this.renderer.setSize(300, 300)\n this.renderer.setClearColor(0x282828)\n\n const rendererDomElement: HTMLCanvasElement = this.renderer.domElement\n\n container.appendChild(rendererDomElement)\n\n this.controls = new OrbitControls(\n this.activeCamera,\n this.renderer.domElement\n )\n this.controls.enableDamping = true\n\n this.gltfLoader = new GLTFLoader()\n this.objLoader = new OBJLoader()\n this.mtlLoader = new MTLLoader()\n this.fbxLoader = new FBXLoader()\n this.stlLoader = new STLLoader()\n this.clock = new THREE.Clock()\n\n this.setupLights()\n\n this.gridHelper = new THREE.GridHelper(10, 10)\n this.gridHelper.position.set(0, 0, 0)\n this.scene.add(this.gridHelper)\n\n this.normalMaterial = new THREE.MeshNormalMaterial({\n flatShading: false,\n side: THREE.DoubleSide,\n normalScale: new THREE.Vector2(1, 1),\n transparent: false,\n opacity: 1.0\n })\n\n this.wireframeMaterial = new THREE.MeshBasicMaterial({\n color: 0xffffff,\n wireframe: true,\n transparent: false,\n opacity: 1.0\n })\n\n this.depthMaterial = new THREE.MeshDepthMaterial({\n depthPacking: THREE.BasicDepthPacking,\n side: THREE.DoubleSide\n })\n\n this.standardMaterial = this.createSTLMaterial()\n\n this.animate()\n\n this.handleResize()\n\n this.startAnimation()\n }\n\n getCameraState() {\n const currentType = this.getCurrentCameraType()\n return {\n position: this.activeCamera.position.clone(),\n target: this.controls.target.clone(),\n zoom:\n this.activeCamera instanceof THREE.OrthographicCamera\n ? this.activeCamera.zoom\n : (this.activeCamera as THREE.PerspectiveCamera).zoom,\n cameraType: currentType\n }\n }\n\n setCameraState(state: {\n position: THREE.Vector3\n target: THREE.Vector3\n zoom: number\n cameraType: 'perspective' | 'orthographic'\n }) {\n if (\n this.activeCamera !==\n (state.cameraType === 'perspective'\n ? this.perspectiveCamera\n : this.orthographicCamera)\n ) {\n this.toggleCamera(state.cameraType)\n }\n\n this.activeCamera.position.copy(state.position)\n\n this.controls.target.copy(state.target)\n\n if (this.activeCamera instanceof THREE.OrthographicCamera) {\n this.activeCamera.zoom = state.zoom\n this.activeCamera.updateProjectionMatrix()\n } else if (this.activeCamera instanceof THREE.PerspectiveCamera) {\n this.activeCamera.zoom = state.zoom\n this.activeCamera.updateProjectionMatrix()\n }\n\n this.controls.update()\n }\n\n setUpDirection(\n direction: 'original' | '-x' | '+x' | '-y' | '+y' | '-z' | '+z'\n ) {\n if (!this.currentModel) return\n\n if (!this.originalRotation && this.currentModel.rotation) {\n this.originalRotation = this.currentModel.rotation.clone()\n }\n\n this.currentUpDirection = direction\n\n if (this.originalRotation) {\n this.currentModel.rotation.copy(this.originalRotation)\n }\n\n switch (direction) {\n case 'original':\n break\n case '-x':\n this.currentModel.rotation.z = Math.PI / 2\n break\n case '+x':\n this.currentModel.rotation.z = -Math.PI / 2\n break\n case '-y':\n this.currentModel.rotation.x = Math.PI\n break\n case '+y':\n break\n case '-z':\n this.currentModel.rotation.x = Math.PI / 2\n break\n case '+z':\n this.currentModel.rotation.x = -Math.PI / 2\n break\n }\n\n this.renderer.render(this.scene, this.activeCamera)\n }\n\n setMaterialMode(mode: 'original' | 'normal' | 'wireframe' | 'depth') {\n this.materialMode = mode\n\n if (this.currentModel) {\n if (mode === 'depth') {\n this.renderer.outputColorSpace = THREE.LinearSRGBColorSpace\n } else {\n this.renderer.outputColorSpace = THREE.SRGBColorSpace\n }\n\n this.currentModel.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n switch (mode) {\n case 'depth':\n if (!this.originalMaterials.has(child)) {\n this.originalMaterials.set(child, child.material)\n }\n const depthMat = new THREE.MeshDepthMaterial({\n depthPacking: THREE.BasicDepthPacking,\n side: THREE.DoubleSide\n })\n\n depthMat.onBeforeCompile = (shader) => {\n shader.uniforms.cameraType = {\n value:\n this.activeCamera instanceof THREE.OrthographicCamera\n ? 1.0\n : 0.0\n }\n\n shader.fragmentShader = `\n uniform float cameraType;\n ${shader.fragmentShader}\n `\n\n shader.fragmentShader = shader.fragmentShader.replace(\n /gl_FragColor\\s*=\\s*vec4\\(\\s*vec3\\(\\s*1.0\\s*-\\s*fragCoordZ\\s*\\)\\s*,\\s*opacity\\s*\\)\\s*;/,\n `\n float depth = 1.0 - fragCoordZ;\n if (cameraType > 0.5) {\n depth = pow(depth, 400.0);\n } else {\n depth = pow(depth, 0.6);\n }\n gl_FragColor = vec4(vec3(depth), opacity);\n `\n )\n }\n\n depthMat.customProgramCacheKey = () => {\n return this.activeCamera instanceof THREE.OrthographicCamera\n ? 'ortho'\n : 'persp'\n }\n\n child.material = depthMat\n break\n case 'normal':\n if (!this.originalMaterials.has(child)) {\n this.originalMaterials.set(child, child.material)\n }\n child.material = new THREE.MeshNormalMaterial({\n flatShading: false,\n side: THREE.DoubleSide,\n normalScale: new THREE.Vector2(1, 1),\n transparent: false,\n opacity: 1.0\n })\n child.geometry.computeVertexNormals()\n break\n\n case 'wireframe':\n if (!this.originalMaterials.has(child)) {\n this.originalMaterials.set(child, child.material)\n }\n child.material = new THREE.MeshBasicMaterial({\n color: 0xffffff,\n wireframe: true,\n transparent: false,\n opacity: 1.0\n })\n break\n\n case 'original':\n const originalMaterial = this.originalMaterials.get(child)\n if (originalMaterial) {\n child.material = originalMaterial\n } else {\n child.material = this.standardMaterial\n }\n break\n }\n }\n })\n\n this.renderer.render(this.scene, this.activeCamera)\n }\n }\n\n setupLights() {\n const ambientLight = new THREE.AmbientLight(0xffffff, 0.5)\n this.scene.add(ambientLight)\n this.lights.push(ambientLight)\n\n const mainLight = new THREE.DirectionalLight(0xffffff, 0.8)\n mainLight.position.set(0, 10, 10)\n this.scene.add(mainLight)\n this.lights.push(mainLight)\n\n const backLight = new THREE.DirectionalLight(0xffffff, 0.5)\n backLight.position.set(0, 10, -10)\n this.scene.add(backLight)\n this.lights.push(backLight)\n\n const leftFillLight = new THREE.DirectionalLight(0xffffff, 0.3)\n leftFillLight.position.set(-10, 0, 0)\n this.scene.add(leftFillLight)\n this.lights.push(leftFillLight)\n\n const rightFillLight = new THREE.DirectionalLight(0xffffff, 0.3)\n rightFillLight.position.set(10, 0, 0)\n this.scene.add(rightFillLight)\n this.lights.push(rightFillLight)\n\n const bottomLight = new THREE.DirectionalLight(0xffffff, 0.2)\n bottomLight.position.set(0, -10, 0)\n this.scene.add(bottomLight)\n this.lights.push(bottomLight)\n }\n\n toggleCamera(cameraType?: 'perspective' | 'orthographic') {\n const oldCamera = this.activeCamera\n\n const position = oldCamera.position.clone()\n const rotation = oldCamera.rotation.clone()\n const target = this.controls.target.clone()\n\n if (!cameraType) {\n this.activeCamera =\n oldCamera === this.perspectiveCamera\n ? this.orthographicCamera\n : this.perspectiveCamera\n } else {\n this.activeCamera =\n cameraType === 'perspective'\n ? this.perspectiveCamera\n : this.orthographicCamera\n\n if (oldCamera === this.activeCamera) {\n return\n }\n }\n\n this.activeCamera.position.copy(position)\n this.activeCamera.rotation.copy(rotation)\n\n if (this.materialMode === 'depth' && oldCamera !== this.activeCamera) {\n this.setMaterialMode('depth')\n }\n\n this.controls.object = this.activeCamera\n this.controls.target.copy(target)\n this.controls.update()\n\n this.handleResize()\n }\n\n getCurrentCameraType(): 'perspective' | 'orthographic' {\n return this.activeCamera === this.perspectiveCamera\n ? 'perspective'\n : 'orthographic'\n }\n\n toggleGrid(showGrid: boolean) {\n if (this.gridHelper) {\n this.gridHelper.visible = showGrid\n }\n }\n\n setLightIntensity(intensity: number) {\n this.lights.forEach((light) => {\n if (light instanceof THREE.DirectionalLight) {\n if (light === this.lights[1]) {\n light.intensity = intensity * 0.8\n } else if (light === this.lights[2]) {\n light.intensity = intensity * 0.5\n } else if (light === this.lights[5]) {\n light.intensity = intensity * 0.2\n } else {\n light.intensity = intensity * 0.3\n }\n } else if (light instanceof THREE.AmbientLight) {\n light.intensity = intensity * 0.5\n }\n })\n }\n\n startAnimation() {\n const animate = () => {\n this.animationFrameId = requestAnimationFrame(animate)\n this.controls.update()\n this.renderer.render(this.scene, this.activeCamera)\n }\n animate()\n }\n\n clearModel() {\n const objectsToRemove: THREE.Object3D[] = []\n\n this.scene.traverse((object) => {\n const isEnvironmentObject =\n object === this.gridHelper ||\n this.lights.includes(object as THREE.Light) ||\n object === this.perspectiveCamera ||\n object === this.orthographicCamera\n\n if (!isEnvironmentObject) {\n objectsToRemove.push(object)\n }\n })\n\n objectsToRemove.forEach((obj) => {\n if (obj.parent && obj.parent !== this.scene) {\n obj.parent.remove(obj)\n } else {\n this.scene.remove(obj)\n }\n\n if (obj instanceof THREE.Mesh) {\n obj.geometry?.dispose()\n if (Array.isArray(obj.material)) {\n obj.material.forEach((material) => material.dispose())\n } else {\n obj.material?.dispose()\n }\n }\n })\n\n this.resetScene()\n }\n\n protected resetScene() {\n this.currentModel = null\n this.originalRotation = null\n\n const defaultDistance = 10\n this.perspectiveCamera.position.set(\n defaultDistance,\n defaultDistance,\n defaultDistance\n )\n this.orthographicCamera.position.set(\n defaultDistance,\n defaultDistance,\n defaultDistance\n )\n\n this.perspectiveCamera.lookAt(0, 0, 0)\n this.orthographicCamera.lookAt(0, 0, 0)\n\n const frustumSize = 10\n const aspect =\n this.renderer.domElement.width / this.renderer.domElement.height\n this.orthographicCamera.left = (-frustumSize * aspect) / 2\n this.orthographicCamera.right = (frustumSize * aspect) / 2\n this.orthographicCamera.top = frustumSize / 2\n this.orthographicCamera.bottom = -frustumSize / 2\n\n this.perspectiveCamera.updateProjectionMatrix()\n this.orthographicCamera.updateProjectionMatrix()\n\n this.controls.target.set(0, 0, 0)\n this.controls.update()\n\n this.renderer.render(this.scene, this.activeCamera)\n\n this.materialMode = 'original'\n this.originalMaterials = new WeakMap()\n this.renderer.outputColorSpace = THREE.SRGBColorSpace\n }\n\n remove() {\n if (this.animationFrameId !== null) {\n cancelAnimationFrame(this.animationFrameId)\n }\n\n this.controls.dispose()\n this.renderer.dispose()\n this.renderer.domElement.remove()\n this.scene.clear()\n }\n\n protected async loadModelInternal(\n url: string,\n fileExtension: string\n ): Promise {\n let model: THREE.Object3D | null = null\n\n switch (fileExtension) {\n case 'stl':\n const geometry = await this.stlLoader.loadAsync(url)\n\n this.originalModel = geometry\n\n geometry.computeVertexNormals()\n const mesh = new THREE.Mesh(geometry, this.standardMaterial)\n const group = new THREE.Group()\n group.add(mesh)\n model = group\n break\n\n case 'fbx':\n const fbxModel = await this.fbxLoader.loadAsync(url)\n\n this.originalModel = fbxModel\n\n model = fbxModel\n\n fbxModel.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n this.originalMaterials.set(child, child.material)\n }\n })\n\n break\n\n case 'obj':\n if (this.materialMode === 'original') {\n const mtlUrl = url.replace(/\\.obj([^.]*$)/, '.mtl$1')\n try {\n const materials = await this.mtlLoader.loadAsync(mtlUrl)\n materials.preload()\n this.objLoader.setMaterials(materials)\n } catch (e) {\n console.log(\n 'No MTL file found or error loading it, continuing without materials'\n )\n }\n }\n model = await this.objLoader.loadAsync(url)\n model.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n this.originalMaterials.set(child, child.material)\n }\n })\n break\n\n case 'gltf':\n case 'glb':\n const gltf = await this.gltfLoader.loadAsync(url)\n\n this.originalModel = gltf\n\n model = gltf.scene\n gltf.scene.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n child.geometry.computeVertexNormals()\n this.originalMaterials.set(child, child.material)\n }\n })\n break\n }\n\n return model\n }\n\n async loadModel(url: string, originalFileName?: string) {\n try {\n this.clearModel()\n\n let fileExtension: string | undefined\n if (originalFileName) {\n fileExtension = originalFileName.split('.').pop()?.toLowerCase()\n } else {\n const filename = new URLSearchParams(url.split('?')[1]).get('filename')\n fileExtension = filename?.split('.').pop()?.toLowerCase()\n }\n\n if (!fileExtension) {\n useToastStore().addAlert('Could not determine file type')\n return\n }\n\n let model = await this.loadModelInternal(url, fileExtension)\n\n if (model) {\n this.currentModel = model\n await this.setupModel(model)\n }\n } catch (error) {\n console.error('Error loading model:', error)\n }\n }\n\n protected async setupModel(model: THREE.Object3D) {\n const box = new THREE.Box3().setFromObject(model)\n const size = box.getSize(new THREE.Vector3())\n const center = box.getCenter(new THREE.Vector3())\n\n const maxDim = Math.max(size.x, size.y, size.z)\n const targetSize = 5\n const scale = targetSize / maxDim\n model.scale.multiplyScalar(scale)\n\n box.setFromObject(model)\n box.getCenter(center)\n box.getSize(size)\n\n model.position.set(-center.x, -box.min.y, -center.z)\n\n this.scene.add(model)\n\n if (this.materialMode !== 'original') {\n this.setMaterialMode(this.materialMode)\n }\n\n if (this.currentUpDirection !== 'original') {\n this.setUpDirection(this.currentUpDirection)\n }\n\n await this.setupCamera(size)\n }\n\n protected async setupCamera(size: THREE.Vector3) {\n const distance = Math.max(size.x, size.z) * 2\n const height = size.y * 2\n\n this.perspectiveCamera.position.set(distance, height, distance)\n this.orthographicCamera.position.set(distance, height, distance)\n\n if (this.activeCamera === this.perspectiveCamera) {\n this.perspectiveCamera.lookAt(0, size.y / 2, 0)\n this.perspectiveCamera.updateProjectionMatrix()\n } else {\n const frustumSize = Math.max(size.x, size.y, size.z) * 2\n const aspect =\n this.renderer.domElement.width / this.renderer.domElement.height\n this.orthographicCamera.left = (-frustumSize * aspect) / 2\n this.orthographicCamera.right = (frustumSize * aspect) / 2\n this.orthographicCamera.top = frustumSize / 2\n this.orthographicCamera.bottom = -frustumSize / 2\n this.orthographicCamera.lookAt(0, size.y / 2, 0)\n this.orthographicCamera.updateProjectionMatrix()\n }\n\n this.controls.target.set(0, size.y / 2, 0)\n this.controls.update()\n\n this.renderer.outputColorSpace = THREE.SRGBColorSpace\n this.renderer.toneMapping = THREE.ACESFilmicToneMapping\n this.renderer.toneMappingExposure = 1\n\n this.handleResize()\n }\n\n handleResize() {\n const parentElement = this.renderer?.domElement?.parentElement\n\n if (!parentElement) {\n console.warn('Parent element not found')\n return\n }\n\n const width = parentElement?.clientWidth\n const height = parentElement?.clientHeight\n\n if (this.activeCamera === this.perspectiveCamera) {\n this.perspectiveCamera.aspect = width / height\n this.perspectiveCamera.updateProjectionMatrix()\n } else {\n const frustumSize = 10\n const aspect = width / height\n this.orthographicCamera.left = (-frustumSize * aspect) / 2\n this.orthographicCamera.right = (frustumSize * aspect) / 2\n this.orthographicCamera.top = frustumSize / 2\n this.orthographicCamera.bottom = -frustumSize / 2\n this.orthographicCamera.updateProjectionMatrix()\n }\n\n this.renderer.setSize(width, height)\n }\n\n animate = () => {\n requestAnimationFrame(this.animate)\n\n this.controls.update()\n this.renderer.render(this.scene, this.activeCamera)\n }\n\n captureScene(width: number, height: number): Promise {\n return new Promise((resolve, reject) => {\n try {\n const originalWidth = this.renderer.domElement.width\n const originalHeight = this.renderer.domElement.height\n\n this.renderer.setSize(width, height)\n\n if (this.activeCamera === this.perspectiveCamera) {\n this.perspectiveCamera.aspect = width / height\n this.perspectiveCamera.updateProjectionMatrix()\n } else {\n const frustumSize = 10\n const aspect = width / height\n this.orthographicCamera.left = (-frustumSize * aspect) / 2\n this.orthographicCamera.right = (frustumSize * aspect) / 2\n this.orthographicCamera.top = frustumSize / 2\n this.orthographicCamera.bottom = -frustumSize / 2\n this.orthographicCamera.updateProjectionMatrix()\n }\n\n this.renderer.render(this.scene, this.activeCamera)\n\n const imageData = this.renderer.domElement.toDataURL('image/png')\n\n this.renderer.setSize(originalWidth, originalHeight)\n this.handleResize()\n\n resolve(imageData)\n } catch (error) {\n reject(error)\n }\n })\n }\n\n createSTLMaterial() {\n return new THREE.MeshStandardMaterial({\n color: 0x808080,\n metalness: 0.1,\n roughness: 0.8,\n flatShading: false,\n side: THREE.DoubleSide\n })\n }\n\n setViewPosition(position: 'front' | 'top' | 'right' | 'isometric') {\n if (!this.currentModel) {\n return\n }\n\n const box = new THREE.Box3()\n let center = new THREE.Vector3()\n let size = new THREE.Vector3()\n\n if (this.currentModel) {\n box.setFromObject(this.currentModel)\n box.getCenter(center)\n box.getSize(size)\n }\n\n const maxDim = Math.max(size.x, size.y, size.z)\n const distance = maxDim * 2\n\n switch (position) {\n case 'front':\n this.activeCamera.position.set(0, 0, distance)\n break\n case 'top':\n this.activeCamera.position.set(0, distance, 0)\n break\n case 'right':\n this.activeCamera.position.set(distance, 0, 0)\n break\n case 'isometric':\n this.activeCamera.position.set(distance, distance, distance)\n break\n }\n\n this.activeCamera.lookAt(center)\n this.controls.target.copy(center)\n this.controls.update()\n }\n\n setBackgroundColor(color: string) {\n this.renderer.setClearColor(new THREE.Color(color))\n this.renderer.render(this.scene, this.activeCamera)\n }\n}\n\nclass Load3dAnimation extends Load3d {\n currentAnimation: THREE.AnimationMixer | null = null\n animationActions: THREE.AnimationAction[] = []\n animationClips: THREE.AnimationClip[] = []\n selectedAnimationIndex: number = 0\n isAnimationPlaying: boolean = false\n\n animationSpeed: number = 1.0\n\n constructor(container: Element | HTMLElement) {\n super(container)\n }\n\n protected async setupModel(model: THREE.Object3D) {\n await super.setupModel(model)\n\n if (this.currentAnimation) {\n this.currentAnimation.stopAllAction()\n this.animationActions = []\n }\n\n let animations: THREE.AnimationClip[] = []\n if (model.animations?.length > 0) {\n animations = model.animations\n } else if (this.originalModel && 'animations' in this.originalModel) {\n animations = (\n this.originalModel as unknown as { animations: THREE.AnimationClip[] }\n ).animations\n }\n\n if (animations.length > 0) {\n this.animationClips = animations\n if (model.type === 'Scene') {\n this.currentAnimation = new THREE.AnimationMixer(model)\n } else {\n this.currentAnimation = new THREE.AnimationMixer(this.currentModel!)\n }\n\n if (this.animationClips.length > 0) {\n this.updateSelectedAnimation(0)\n }\n }\n }\n\n setAnimationSpeed(speed: number) {\n this.animationSpeed = speed\n this.animationActions.forEach((action) => {\n action.setEffectiveTimeScale(speed)\n })\n }\n\n updateSelectedAnimation(index: number) {\n if (\n !this.currentAnimation ||\n !this.animationClips ||\n index >= this.animationClips.length\n ) {\n console.warn('Invalid animation update request')\n return\n }\n\n this.animationActions.forEach((action) => {\n action.stop()\n })\n this.currentAnimation.stopAllAction()\n this.animationActions = []\n\n this.selectedAnimationIndex = index\n const clip = this.animationClips[index]\n\n const action = this.currentAnimation.clipAction(clip)\n\n action.setEffectiveTimeScale(this.animationSpeed)\n\n action.reset()\n action.clampWhenFinished = false\n action.loop = THREE.LoopRepeat\n\n if (this.isAnimationPlaying) {\n action.play()\n } else {\n action.play()\n action.paused = true\n }\n\n this.animationActions = [action]\n }\n\n clearModel() {\n if (this.currentAnimation) {\n this.animationActions.forEach((action) => {\n action.stop()\n })\n this.currentAnimation = null\n }\n this.animationActions = []\n this.animationClips = []\n this.selectedAnimationIndex = 0\n this.isAnimationPlaying = false\n this.animationSpeed = 1.0\n\n super.clearModel()\n }\n\n getAnimationNames(): string[] {\n return this.animationClips.map((clip, index) => {\n return clip.name || `Animation ${index + 1}`\n })\n }\n\n toggleAnimation(play?: boolean) {\n if (!this.currentAnimation || this.animationActions.length === 0) {\n console.warn('No animation to toggle')\n return\n }\n\n this.isAnimationPlaying = play ?? !this.isAnimationPlaying\n\n this.animationActions.forEach((action) => {\n if (this.isAnimationPlaying) {\n action.paused = false\n if (action.time === 0 || action.time === action.getClip().duration) {\n action.reset()\n }\n } else {\n action.paused = true\n }\n })\n }\n\n animate = () => {\n requestAnimationFrame(this.animate)\n\n if (this.currentAnimation && this.isAnimationPlaying) {\n const delta = this.clock.getDelta()\n this.currentAnimation.update(delta)\n }\n\n this.controls.update()\n this.renderer.render(this.scene, this.activeCamera)\n }\n}\n\nfunction splitFilePath(path: string): [string, string] {\n const folder_separator = path.lastIndexOf('/')\n if (folder_separator === -1) {\n return ['', path]\n }\n return [\n path.substring(0, folder_separator),\n path.substring(folder_separator + 1)\n ]\n}\n\nfunction getResourceURL(\n subfolder: string,\n filename: string,\n type: string = 'input'\n): string {\n const params = [\n 'filename=' + encodeURIComponent(filename),\n 'type=' + type,\n 'subfolder=' + subfolder,\n app.getRandParam().substring(1)\n ].join('&')\n\n return `/view?${params}`\n}\n\nconst load3dCSSCLASS = `display: flex;\n flex-direction: column;\n background: transparent;\n flex: 1;\n position: relative;\n overflow: hidden;`\n\nconst load3dCanvasCSSCLASS = `display: flex;\n width: 100% !important;\n height: 100% !important;`\n\nconst containerToLoad3D = new Map()\n\nfunction configureLoad3D(\n load3d: Load3d,\n loadFolder: 'input' | 'output',\n modelWidget: IWidget,\n showGrid: IWidget,\n cameraType: IWidget,\n view: IWidget,\n material: IWidget,\n bgColor: IWidget,\n lightIntensity: IWidget,\n upDirection: IWidget,\n cameraState?: any,\n postModelUpdateFunc?: (load3d: Load3d) => void\n) {\n const createModelUpdateHandler = () => {\n let isFirstLoad = true\n\n return async (value: string | number | boolean | object) => {\n if (!value) return\n\n const filename = value as string\n const modelUrl = api.apiURL(\n getResourceURL(...splitFilePath(filename), loadFolder)\n )\n\n await load3d.loadModel(modelUrl, filename)\n\n load3d.setMaterialMode(\n material.value as 'original' | 'normal' | 'wireframe'\n )\n\n load3d.setUpDirection(\n upDirection.value as\n | 'original'\n | '-x'\n | '+x'\n | '-y'\n | '+y'\n | '-z'\n | '+z'\n )\n\n if (postModelUpdateFunc) {\n postModelUpdateFunc(load3d)\n }\n\n if (isFirstLoad && cameraState && typeof cameraState === 'object') {\n try {\n load3d.setCameraState(cameraState)\n } catch (error) {\n console.warn('Failed to restore camera state:', error)\n }\n isFirstLoad = false\n }\n }\n }\n\n const onModelWidgetUpdate = createModelUpdateHandler()\n\n if (modelWidget.value) {\n onModelWidgetUpdate(modelWidget.value)\n }\n\n modelWidget.callback = onModelWidgetUpdate\n\n load3d.toggleGrid(showGrid.value as boolean)\n\n showGrid.callback = (value: boolean) => {\n load3d.toggleGrid(value)\n }\n\n load3d.toggleCamera(cameraType.value as 'perspective' | 'orthographic')\n\n cameraType.callback = (value: 'perspective' | 'orthographic') => {\n load3d.toggleCamera(value)\n }\n\n view.callback = (value: 'front' | 'top' | 'right' | 'isometric') => {\n load3d.setViewPosition(value)\n }\n\n material.callback = (value: 'original' | 'normal' | 'wireframe') => {\n load3d.setMaterialMode(value)\n }\n\n load3d.setMaterialMode(material.value as 'original' | 'normal' | 'wireframe')\n\n load3d.setBackgroundColor(bgColor.value as string)\n\n bgColor.callback = (value: string) => {\n load3d.setBackgroundColor(value)\n }\n\n load3d.setLightIntensity(lightIntensity.value as number)\n\n lightIntensity.callback = (value: number) => {\n load3d.setLightIntensity(value)\n }\n\n upDirection.callback = (\n value: 'original' | '-x' | '+x' | '-y' | '+y' | '-z' | '+z'\n ) => {\n load3d.setUpDirection(value)\n }\n\n load3d.setUpDirection(\n upDirection.value as 'original' | '-x' | '+x' | '-y' | '+y' | '-z' | '+z'\n )\n}\n\napp.registerExtension({\n name: 'Comfy.Load3D',\n\n getCustomWidgets(app) {\n return {\n LOAD_3D(node, inputName) {\n let load3dNode = app.graph._nodes.filter((wi) => wi.type == 'Load3D')\n\n node.addProperty('Camera Info', '')\n\n const container = document.createElement('div')\n container.id = `comfy-load-3d-${load3dNode.length}`\n container.classList.add('comfy-load-3d')\n\n const load3d = new Load3d(container)\n\n containerToLoad3D.set(container.id, load3d)\n\n node.onResize = function () {\n if (load3d) {\n load3d.handleResize()\n }\n }\n\n const origOnRemoved = node.onRemoved\n\n node.onRemoved = function () {\n if (load3d) {\n load3d.remove()\n }\n\n containerToLoad3D.delete(container.id)\n\n origOnRemoved?.apply(this, [])\n }\n\n node.onDrawBackground = function () {\n load3d.renderer.domElement.hidden = this.flags.collapsed ?? false\n }\n\n const fileInput = document.createElement('input')\n fileInput.type = 'file'\n fileInput.accept = '.gltf,.glb,.obj,.mtl,.fbx,.stl'\n fileInput.style.display = 'none'\n fileInput.onchange = async () => {\n if (fileInput.files?.length) {\n const modelWidget = node.widgets?.find(\n (w: IWidget) => w.name === 'model_file'\n )\n const uploadPath = await uploadFile(\n load3d,\n fileInput.files[0],\n fileInput\n ).catch((error) => {\n console.error('File upload failed:', error)\n useToastStore().addAlert('File upload failed')\n })\n\n if (uploadPath && modelWidget) {\n if (!modelWidget.options?.values?.includes(uploadPath)) {\n modelWidget.options?.values?.push(uploadPath)\n }\n\n modelWidget.value = uploadPath\n }\n }\n }\n\n node.addWidget('button', 'upload 3d model', 'upload3dmodel', () => {\n fileInput.click()\n })\n\n node.addWidget('button', 'clear', 'clear', () => {\n load3d.clearModel()\n const modelWidget = node.widgets?.find(\n (w: IWidget) => w.name === 'model_file'\n )\n if (modelWidget) {\n modelWidget.value = ''\n }\n })\n\n return {\n widget: node.addDOMWidget(inputName, 'LOAD_3D', container)\n }\n }\n }\n },\n\n init() {\n const style = document.createElement('style')\n\n style.innerText = `\n .comfy-load-3d {\n ${load3dCSSCLASS}\n }\n \n .comfy-load-3d canvas {\n ${load3dCanvasCSSCLASS}\n }\n `\n document.head.appendChild(style)\n },\n\n async nodeCreated(node) {\n if (node.constructor.comfyClass !== 'Load3D') return\n\n const [oldWidth, oldHeight] = node.size\n\n node.setSize([Math.max(oldWidth, 300), Math.max(oldHeight, 600)])\n\n await nextTick()\n\n const sceneWidget = node.widgets.find((w: IWidget) => w.name === 'image')\n\n const container = sceneWidget.element\n\n const load3d = containerToLoad3D.get(container.id)\n\n const modelWidget = node.widgets.find(\n (w: IWidget) => w.name === 'model_file'\n )\n\n const showGrid = node.widgets.find((w: IWidget) => w.name === 'show_grid')\n\n const cameraType = node.widgets.find(\n (w: IWidget) => w.name === 'camera_type'\n )\n\n const view = node.widgets.find((w: IWidget) => w.name === 'view')\n\n const material = node.widgets.find((w: IWidget) => w.name === 'material')\n\n const bgColor = node.widgets.find((w: IWidget) => w.name === 'bg_color')\n\n const lightIntensity = node.widgets.find(\n (w: IWidget) => w.name === 'light_intensity'\n )\n\n const upDirection = node.widgets.find(\n (w: IWidget) => w.name === 'up_direction'\n )\n\n let cameraState\n try {\n const cameraInfo = node.properties['Camera Info']\n if (\n cameraInfo &&\n typeof cameraInfo === 'string' &&\n cameraInfo.trim() !== ''\n ) {\n cameraState = JSON.parse(cameraInfo)\n }\n } catch (error) {\n console.warn('Failed to parse camera state:', error)\n cameraState = undefined\n }\n\n configureLoad3D(\n load3d,\n 'input',\n modelWidget,\n showGrid,\n cameraType,\n view,\n material,\n bgColor,\n lightIntensity,\n upDirection,\n cameraState\n )\n\n const w = node.widgets.find((w: IWidget) => w.name === 'width')\n const h = node.widgets.find((w: IWidget) => w.name === 'height')\n\n // @ts-expect-error hacky override\n sceneWidget.serializeValue = async () => {\n node.properties['Camera Info'] = JSON.stringify(load3d.getCameraState())\n\n const imageData = await load3d.captureScene(w.value, h.value)\n\n const blob = await fetch(imageData).then((r) => r.blob())\n const name = `scene_${Date.now()}.png`\n const file = new File([blob], name)\n\n const body = new FormData()\n body.append('image', file)\n body.append('subfolder', 'threed')\n body.append('type', 'temp')\n\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n\n if (resp.status !== 200) {\n const err = `Error uploading scene capture: ${resp.status} - ${resp.statusText}`\n useToastStore().addAlert(err)\n throw new Error(err)\n }\n\n const data = await resp.json()\n return `threed/${data.name} [temp]`\n }\n }\n})\n\napp.registerExtension({\n name: 'Comfy.Load3DAnimation',\n\n getCustomWidgets(app) {\n return {\n LOAD_3D_ANIMATION(node, inputName) {\n let load3dNode = app.graph._nodes.filter(\n (wi) => wi.type == 'Load3DAnimation'\n )\n\n node.addProperty('Camera Info', '')\n\n const container = document.createElement('div')\n container.id = `comfy-load-3d-animation-${load3dNode.length}`\n container.classList.add('comfy-load-3d-animation')\n\n const load3d = new Load3dAnimation(container)\n\n containerToLoad3D.set(container.id, load3d)\n\n node.onResize = function () {\n if (load3d) {\n load3d.handleResize()\n }\n }\n\n const origOnRemoved = node.onRemoved\n\n node.onRemoved = function () {\n if (load3d) {\n load3d.remove()\n }\n\n containerToLoad3D.delete(container.id)\n\n origOnRemoved?.apply(this, [])\n }\n\n node.onDrawBackground = function () {\n load3d.renderer.domElement.hidden = this.flags.collapsed ?? false\n }\n\n const fileInput = document.createElement('input')\n fileInput.type = 'file'\n fileInput.accept = '.fbx,glb,gltf'\n fileInput.style.display = 'none'\n fileInput.onchange = async () => {\n if (fileInput.files?.length) {\n const modelWidget = node.widgets?.find(\n (w: IWidget) => w.name === 'model_file'\n )\n const uploadPath = await uploadFile(\n load3d,\n fileInput.files[0],\n fileInput\n ).catch((error) => {\n console.error('File upload failed:', error)\n useToastStore().addAlert('File upload failed')\n })\n\n if (uploadPath && modelWidget) {\n if (!modelWidget.options?.values?.includes(uploadPath)) {\n modelWidget.options?.values?.push(uploadPath)\n }\n\n modelWidget.value = uploadPath\n }\n }\n }\n\n node.addWidget('button', 'upload 3d model', 'upload3dmodel', () => {\n fileInput.click()\n })\n\n node.addWidget('button', 'clear', 'clear', () => {\n load3d.clearModel()\n const modelWidget = node.widgets?.find(\n (w: IWidget) => w.name === 'model_file'\n )\n if (modelWidget) {\n modelWidget.value = ''\n }\n\n const animationSelect = node.widgets?.find(\n (w: IWidget) => w.name === 'animation'\n )\n\n if (animationSelect) {\n animationSelect.options.values = []\n animationSelect.value = ''\n }\n\n const speedSelect = node.widgets?.find(\n (w: IWidget) => w.name === 'animation_speed'\n )\n\n if (speedSelect) {\n speedSelect.value = '1'\n }\n })\n\n node.addWidget(\n 'button',\n 'Play/Pause Animation',\n 'toggle_animation',\n () => {\n load3d.toggleAnimation()\n }\n )\n\n const animationSelect = node.addWidget(\n 'combo',\n 'animation',\n '',\n () => '',\n {\n values: []\n }\n ) as IWidget\n\n animationSelect.callback = (value: string) => {\n const names = load3d.getAnimationNames()\n const index = names.indexOf(value)\n\n if (index !== -1) {\n const wasPlaying = load3d.isAnimationPlaying\n\n if (wasPlaying) {\n load3d.toggleAnimation(false)\n }\n\n load3d.updateSelectedAnimation(index)\n\n if (wasPlaying) {\n load3d.toggleAnimation(true)\n }\n }\n }\n\n return {\n widget: node.addDOMWidget(inputName, 'LOAD_3D_ANIMATION', container)\n }\n }\n }\n },\n\n init() {\n const style = document.createElement('style')\n\n style.innerText = `\n .comfy-load-3d-animation {\n ${load3dCSSCLASS}\n }\n \n .comfy-load-3d-animation canvas {\n ${load3dCanvasCSSCLASS}\n }\n `\n document.head.appendChild(style)\n },\n\n async nodeCreated(node) {\n if (node.constructor.comfyClass !== 'Load3DAnimation') return\n\n const [oldWidth, oldHeight] = node.size\n\n node.setSize([Math.max(oldWidth, 300), Math.max(oldHeight, 700)])\n\n await nextTick()\n\n const sceneWidget = node.widgets.find((w: IWidget) => w.name === 'image')\n\n const container = sceneWidget.element\n\n const load3d = containerToLoad3D.get(container.id)\n\n const modelWidget = node.widgets.find(\n (w: IWidget) => w.name === 'model_file'\n )\n\n const showGrid = node.widgets.find((w: IWidget) => w.name === 'show_grid')\n\n const cameraType = node.widgets.find(\n (w: IWidget) => w.name === 'camera_type'\n )\n\n const view = node.widgets.find((w: IWidget) => w.name === 'view')\n\n const material = node.widgets.find((w: IWidget) => w.name === 'material')\n\n const bgColor = node.widgets.find((w: IWidget) => w.name === 'bg_color')\n\n const lightIntensity = node.widgets.find(\n (w: IWidget) => w.name === 'light_intensity'\n )\n\n const upDirection = node.widgets.find(\n (w: IWidget) => w.name === 'up_direction'\n )\n\n const speedSelect = node.widgets.find(\n (w: IWidget) => w.name === 'animation_speed'\n )\n\n speedSelect.callback = (value: string) => {\n const load3d = containerToLoad3D.get(container.id) as Load3dAnimation\n if (load3d) {\n load3d.setAnimationSpeed(parseFloat(value))\n }\n }\n\n let cameraState\n try {\n const cameraInfo = node.properties['Camera Info']\n if (\n cameraInfo &&\n typeof cameraInfo === 'string' &&\n cameraInfo.trim() !== ''\n ) {\n cameraState = JSON.parse(cameraInfo)\n }\n } catch (error) {\n console.warn('Failed to parse camera state:', error)\n cameraState = undefined\n }\n\n configureLoad3D(\n load3d,\n 'input',\n modelWidget,\n showGrid,\n cameraType,\n view,\n material,\n bgColor,\n lightIntensity,\n upDirection,\n cameraState,\n (load3d: Load3d) => {\n const animationLoad3d = load3d as Load3dAnimation\n const names = animationLoad3d.getAnimationNames()\n\n const animationSelect = node.widgets.find(\n (w: IWidget) => w.name === 'animation'\n )\n\n animationSelect.options.values = names\n if (names.length) {\n animationSelect.value = names[0]\n }\n }\n )\n\n const w = node.widgets.find((w: IWidget) => w.name === 'width')\n const h = node.widgets.find((w: IWidget) => w.name === 'height')\n\n // @ts-expect-error hacky override\n sceneWidget.serializeValue = async () => {\n node.properties['Camera Info'] = JSON.stringify(load3d.getCameraState())\n\n load3d.toggleAnimation(false)\n\n const imageData = await load3d.captureScene(w.value, h.value)\n\n const blob = await fetch(imageData).then((r) => r.blob())\n const name = `scene_${Date.now()}.png`\n const file = new File([blob], name)\n\n const body = new FormData()\n body.append('image', file)\n body.append('subfolder', 'threed')\n body.append('type', 'temp')\n\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n\n if (resp.status !== 200) {\n const err = `Error uploading scene capture: ${resp.status} - ${resp.statusText}`\n useToastStore().addAlert(err)\n throw new Error(err)\n }\n\n const data = await resp.json()\n return `threed/${data.name} [temp]`\n }\n }\n})\n\napp.registerExtension({\n name: 'Comfy.Preview3D',\n\n getCustomWidgets(app) {\n return {\n PREVIEW_3D(node, inputName) {\n let load3dNode = app.graph._nodes.filter((wi) => wi.type == 'Preview3D')\n\n const container = document.createElement('div')\n container.id = `comfy-preview-3d-${load3dNode.length}`\n container.classList.add('comfy-preview-3d')\n\n const load3d = new Load3d(container)\n\n containerToLoad3D.set(container.id, load3d)\n\n node.onResize = function () {\n if (load3d) {\n load3d.handleResize()\n }\n }\n\n const origOnRemoved = node.onRemoved\n\n node.onRemoved = function () {\n if (load3d) {\n load3d.remove()\n }\n\n containerToLoad3D.delete(container.id)\n\n origOnRemoved?.apply(this, [])\n }\n\n node.onDrawBackground = function () {\n load3d.renderer.domElement.hidden = this.flags.collapsed ?? false\n }\n\n return {\n widget: node.addDOMWidget(inputName, 'PREVIEW_3D', container)\n }\n }\n }\n },\n\n init() {\n const style = document.createElement('style')\n\n style.innerText = `\n .comfy-preview-3d {\n ${load3dCSSCLASS}\n }\n \n .comfy-preview-3d canvas {\n ${load3dCanvasCSSCLASS}\n }\n `\n document.head.appendChild(style)\n },\n\n async nodeCreated(node) {\n if (node.constructor.comfyClass !== 'Preview3D') return\n\n const [oldWidth, oldHeight] = node.size\n\n node.setSize([Math.max(oldWidth, 300), Math.max(oldHeight, 550)])\n\n await nextTick()\n\n const sceneWidget = node.widgets.find((w: IWidget) => w.name === 'image')\n\n const container = sceneWidget.element\n\n const load3d = containerToLoad3D.get(container.id)\n\n const modelWidget = node.widgets.find(\n (w: IWidget) => w.name === 'model_file'\n )\n\n const showGrid = node.widgets.find((w: IWidget) => w.name === 'show_grid')\n\n const cameraType = node.widgets.find(\n (w: IWidget) => w.name === 'camera_type'\n )\n\n const view = node.widgets.find((w: IWidget) => w.name === 'view')\n\n const material = node.widgets.find((w: IWidget) => w.name === 'material')\n\n const bgColor = node.widgets.find((w: IWidget) => w.name === 'bg_color')\n\n const lightIntensity = node.widgets.find(\n (w: IWidget) => w.name === 'light_intensity'\n )\n\n const upDirection = node.widgets.find(\n (w: IWidget) => w.name === 'up_direction'\n )\n\n configureLoad3D(\n load3d,\n 'output',\n modelWidget,\n showGrid,\n cameraType,\n view,\n material,\n bgColor,\n lightIntensity,\n upDirection\n )\n }\n})\n"],"names":["self","td","app","ext","PREFIX","SEPARATOR","type","t","id","def","node","link","i","fill","w","widget","group","PointerType","CompositionOperation","px","py","x","y","BrushShape","Tools","MaskBlendMode","ColorComparisonMethod","err","max","point","file","scale","splitFilePath","getResourceURL","uploadFile","audio","electronAPI","getElectronAPI","b2","te","tmp","sign","_color","data","tmp2","indices","intersects","intersect","width","height","depth","fov","aspect","renderer","scene","alpha","attributes","precision","_frustum","drawBuffers","scissor","viewport","_canvas","texture","cameraL","cameraR","cameras","cameraXR","info","chunkOffset","_projScreenMatrix","_vector3","stencil","bits","drawCount","materials","currentRenderList","parameters","reverseDepthBuffer","framebuffer","_vA","_vB","_vC","_identityMatrix","index","l","_ray","t2","vertex","detail","radius","azimuth","bs","contour","p","q","json","loadImage","now","shapes","tmpPath","tmpShape","document","_geometry","_tempA","_morphA","object","morphTargetsRelative","a","b","c","il","res","URL","sourceURI","accessor","name","_a","_b","dat","fl","Deflate","AsyncDeflate","Inflate","AsyncInflate","Gzip","AsyncGzip","Gunzip","AsyncGunzip","Zlib","AsyncZlib","Unzlib","AsyncUnzlib","Decompress","AsyncDecompress","DecodeUTF8","EncodeUTF8","ZipPassThrough","ZipDeflate","AsyncZipDeflate","Zip","UnzipPassThrough","UnzipInflate","AsyncUnzipInflate","Unzip","final","e","r","j","NURBSUtils.calcBSplinePoint","NURBSUtils.calcNURBSDerivatives","child","material","skeleton","fflate.unzlibSync","THREE.Scene","THREE.PerspectiveCamera","THREE.OrthographicCamera","THREE.WebGLRenderer","THREE.Clock","THREE.GridHelper","THREE.MeshNormalMaterial","THREE.DoubleSide","THREE.Vector2","THREE.MeshBasicMaterial","THREE.MeshDepthMaterial","THREE.BasicDepthPacking","THREE.LinearSRGBColorSpace","THREE.SRGBColorSpace","THREE.Mesh","THREE.AmbientLight","THREE.DirectionalLight","THREE.Group","THREE.Box3","THREE.Vector3","THREE.ACESFilmicToneMapping","THREE.MeshStandardMaterial","THREE.Color","THREE.AnimationMixer","action","THREE.LoopRepeat","animationSelect","load3d"],"mappings":"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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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","x_google_ignoreList":[21,22,23,24,25,26,27,28,29,30,31]} \ No newline at end of file diff --git a/web/assets/index-CgmI-OoW.js b/web/assets/index-D3u7l7ha.js similarity index 99% rename from web/assets/index-CgmI-OoW.js rename to web/assets/index-D3u7l7ha.js index cf850622..6cb02971 100644 --- a/web/assets/index-CgmI-OoW.js +++ b/web/assets/index-D3u7l7ha.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { cp as script$s, A as createBaseVNode, f as openBlock, g as createElementBlock, m as mergeProps, B as BaseStyle, V as script$t, a8 as toDisplayString, a3 as Ripple, t as resolveDirective, v as withDirectives, x as createBlock, M as resolveDynamicComponent, bV as script$u, l as resolveComponent, C as normalizeClass, ax as createSlots, y as withCtx, bD as script$v, bv as script$w, P as Fragment, Q as renderList, ay as createTextVNode, bl as setAttribute, af as UniqueComponentId, bj as normalizeProps, p as renderSlot, i as createCommentVNode, a6 as equals, bf as script$x, c4 as script$y, cq as getFirstFocusableElement, ai as OverlayEventBus, aa as getVNodeProp, ah as resolveFieldData, cr as invokeElementMethod, a4 as getAttribute, cs as getNextElementSibling, $ as getOuterWidth, ct as getPreviousElementSibling, D as script$z, at as script$A, a2 as script$B, bi as script$D, ae as isNotEmpty, br as withModifiers, Y as getOuterHeight, cu as _default, ag as ZIndex, a5 as focus, ak as addStyle, am as absolutePosition, an as ConnectedOverlayScrollHandler, ao as isTouchDevice, cv as FilterOperator, as as script$E, cw as FocusTrap, h as createVNode, aw as Transition, cx as withKeys, cy as getIndex, k as script$G, cz as isClickable, cA as clearSelection, cB as localeComparator, cC as sort, cD as FilterService, ck as FilterMatchMode, X as findSingle, b_ as findIndexInList, b$ as find, cE as exportCSV, Z as getOffset, cF as getHiddenElementOuterWidth, cG as getHiddenElementOuterHeight, cH as reorderArray, cI as getWindowScrollTop, cJ as removeClass, cK as addClass, aj as isEmpty, ar as script$H, au as script$I } from "./index-CSl7lfOs.js"; -import { s as script$C, a as script$F } from "./index-aSkd2KAK.js"; +import { cp as script$s, A as createBaseVNode, f as openBlock, g as createElementBlock, m as mergeProps, B as BaseStyle, V as script$t, a8 as toDisplayString, a3 as Ripple, t as resolveDirective, v as withDirectives, x as createBlock, M as resolveDynamicComponent, bV as script$u, l as resolveComponent, C as normalizeClass, ax as createSlots, y as withCtx, bD as script$v, bv as script$w, P as Fragment, Q as renderList, ay as createTextVNode, bl as setAttribute, af as UniqueComponentId, bj as normalizeProps, p as renderSlot, i as createCommentVNode, a6 as equals, bf as script$x, c4 as script$y, cq as getFirstFocusableElement, ai as OverlayEventBus, aa as getVNodeProp, ah as resolveFieldData, cr as invokeElementMethod, a4 as getAttribute, cs as getNextElementSibling, $ as getOuterWidth, ct as getPreviousElementSibling, D as script$z, at as script$A, a2 as script$B, bi as script$D, ae as isNotEmpty, br as withModifiers, Y as getOuterHeight, cu as _default, ag as ZIndex, a5 as focus, ak as addStyle, am as absolutePosition, an as ConnectedOverlayScrollHandler, ao as isTouchDevice, cv as FilterOperator, as as script$E, cw as FocusTrap, h as createVNode, aw as Transition, cx as withKeys, cy as getIndex, k as script$G, cz as isClickable, cA as clearSelection, cB as localeComparator, cC as sort, cD as FilterService, ck as FilterMatchMode, X as findSingle, b_ as findIndexInList, b$ as find, cE as exportCSV, Z as getOffset, cF as getHiddenElementOuterWidth, cG as getHiddenElementOuterHeight, cH as reorderArray, cI as getWindowScrollTop, cJ as removeClass, cK as addClass, aj as isEmpty, ar as script$H, au as script$I } from "./index-DIU5yZe9.js"; +import { s as script$C, a as script$F } from "./index-d698Brhb.js"; var script$r = { name: "ArrowDownIcon", "extends": script$s @@ -8782,4 +8782,4 @@ export { script$d as a, script as s }; -//# sourceMappingURL=index-CgmI-OoW.js.map +//# sourceMappingURL=index-D3u7l7ha.js.map diff --git a/web/assets/index-CgmI-OoW.js.map b/web/assets/index-D3u7l7ha.js.map similarity index 99% rename from web/assets/index-CgmI-OoW.js.map rename to web/assets/index-D3u7l7ha.js.map index 81e0ff74..da319bdb 100644 --- a/web/assets/index-CgmI-OoW.js.map +++ b/web/assets/index-D3u7l7ha.js.map @@ -1 +1 @@ -{"version":3,"file":"index-CgmI-OoW.js","sources":["../../node_modules/@primevue/icons/arrowdown/index.mjs","../../node_modules/@primevue/icons/arrowup/index.mjs","../../node_modules/primevue/paginator/style/index.mjs","../../node_modules/@primevue/icons/angledoubleleft/index.mjs","../../node_modules/@primevue/icons/angledoubleright/index.mjs","../../node_modules/@primevue/icons/angleleft/index.mjs","../../node_modules/primevue/paginator/index.mjs","../../node_modules/primevue/datatable/style/index.mjs","../../node_modules/@primevue/icons/pencil/index.mjs","../../node_modules/primevue/radiobutton/style/index.mjs","../../node_modules/primevue/radiobutton/index.mjs","../../node_modules/@primevue/icons/filter/index.mjs","../../node_modules/@primevue/icons/filterslash/index.mjs","../../node_modules/@primevue/icons/trash/index.mjs","../../node_modules/@primevue/icons/sortalt/index.mjs","../../node_modules/@primevue/icons/sortamountdown/index.mjs","../../node_modules/@primevue/icons/sortamountupalt/index.mjs","../../node_modules/primevue/datatable/index.mjs","../../node_modules/primevue/column/style/index.mjs","../../node_modules/primevue/column/index.mjs"],"sourcesContent":["import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ArrowDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ArrowUpIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-paginator {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-wrap: wrap;\\n background: \".concat(dt('paginator.background'), \";\\n color: \").concat(dt('paginator.color'), \";\\n padding: \").concat(dt('paginator.padding'), \";\\n border-radius: \").concat(dt('paginator.border.radius'), \";\\n gap: \").concat(dt('paginator.gap'), \";\\n}\\n\\n.p-paginator-content {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-wrap: wrap;\\n gap: \").concat(dt('paginator.gap'), \";\\n}\\n\\n.p-paginator-content-start {\\n margin-right: auto;\\n}\\n\\n.p-paginator-content-end {\\n margin-left: auto;\\n}\\n\\n.p-paginator-page,\\n.p-paginator-next,\\n.p-paginator-last,\\n.p-paginator-first,\\n.p-paginator-prev {\\n cursor: pointer;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n line-height: 1;\\n user-select: none;\\n overflow: hidden;\\n position: relative;\\n background: \").concat(dt('paginator.nav.button.background'), \";\\n border: 0 none;\\n color: \").concat(dt('paginator.nav.button.color'), \";\\n min-width: \").concat(dt('paginator.nav.button.width'), \";\\n height: \").concat(dt('paginator.nav.button.height'), \";\\n transition: background \").concat(dt('paginator.transition.duration'), \", color \").concat(dt('paginator.transition.duration'), \", outline-color \").concat(dt('paginator.transition.duration'), \", box-shadow \").concat(dt('paginator.transition.duration'), \";\\n border-radius: \").concat(dt('paginator.nav.button.border.radius'), \";\\n padding: 0;\\n margin: 0;\\n}\\n\\n.p-paginator-page:focus-visible,\\n.p-paginator-next:focus-visible,\\n.p-paginator-last:focus-visible,\\n.p-paginator-first:focus-visible,\\n.p-paginator-prev:focus-visible {\\n box-shadow: \").concat(dt('paginator.nav.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('paginator.nav.button.focus.ring.width'), \" \").concat(dt('paginator.nav.button.focus.ring.style'), \" \").concat(dt('paginator.nav.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('paginator.nav.button.focus.ring.offset'), \";\\n}\\n\\n.p-paginator-page:not(.p-disabled):not(.p-paginator-page-selected):hover,\\n.p-paginator-first:not(.p-disabled):hover,\\n.p-paginator-prev:not(.p-disabled):hover,\\n.p-paginator-next:not(.p-disabled):hover,\\n.p-paginator-last:not(.p-disabled):hover {\\n background: \").concat(dt('paginator.nav.button.hover.background'), \";\\n color: \").concat(dt('paginator.nav.button.hover.color'), \";\\n}\\n\\n.p-paginator-page.p-paginator-page-selected {\\n background: \").concat(dt('paginator.nav.button.selected.background'), \";\\n color: \").concat(dt('paginator.nav.button.selected.color'), \";\\n}\\n\\n.p-paginator-current {\\n color: \").concat(dt('paginator.current.page.report.color'), \";\\n}\\n\\n.p-paginator-pages {\\n display: flex;\\n align-items: center;\\n gap: \").concat(dt('paginator.gap'), \";\\n}\\n\\n.p-paginator-jtp-input .p-inputtext {\\n max-width: \").concat(dt('paginator.jump.to.page.input.max.width'), \";\\n}\\n\");\n};\nvar classes = {\n paginator: function paginator(_ref2) {\n var instance = _ref2.instance,\n key = _ref2.key;\n return ['p-paginator p-component', _defineProperty({\n 'p-paginator-default': !instance.hasBreakpoints()\n }, \"p-paginator-\".concat(key), instance.hasBreakpoints())];\n },\n content: 'p-paginator-content',\n contentStart: 'p-paginator-content-start',\n contentEnd: 'p-paginator-content-end',\n first: function first(_ref4) {\n var instance = _ref4.instance;\n return ['p-paginator-first', {\n 'p-disabled': instance.$attrs.disabled\n }];\n },\n firstIcon: 'p-paginator-first-icon',\n prev: function prev(_ref5) {\n var instance = _ref5.instance;\n return ['p-paginator-prev', {\n 'p-disabled': instance.$attrs.disabled\n }];\n },\n prevIcon: 'p-paginator-prev-icon',\n next: function next(_ref6) {\n var instance = _ref6.instance;\n return ['p-paginator-next', {\n 'p-disabled': instance.$attrs.disabled\n }];\n },\n nextIcon: 'p-paginator-next-icon',\n last: function last(_ref7) {\n var instance = _ref7.instance;\n return ['p-paginator-last', {\n 'p-disabled': instance.$attrs.disabled\n }];\n },\n lastIcon: 'p-paginator-last-icon',\n pages: 'p-paginator-pages',\n page: function page(_ref8) {\n var props = _ref8.props,\n pageLink = _ref8.pageLink;\n return ['p-paginator-page', {\n 'p-paginator-page-selected': pageLink - 1 === props.page\n }];\n },\n current: 'p-paginator-current',\n pcRowPerPageDropdown: 'p-paginator-rpp-dropdown',\n pcJumpToPageDropdown: 'p-paginator-jtp-dropdown',\n pcJumpToPageInput: 'p-paginator-jtp-input'\n};\nvar PaginatorStyle = BaseStyle.extend({\n name: 'paginator',\n theme: theme,\n classes: classes\n});\n\nexport { PaginatorStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleDoubleLeftIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleDoubleRightIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleLeftIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { setAttribute } from '@primeuix/utils/dom';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport PaginatorStyle from 'primevue/paginator/style';\nimport { openBlock, createElementBlock, mergeProps, toDisplayString, resolveDirective, withDirectives, createBlock, resolveDynamicComponent, resolveComponent, normalizeClass, createSlots, withCtx, Fragment, renderList, createTextVNode, normalizeProps, renderSlot, createCommentVNode, createElementVNode } from 'vue';\nimport AngleDoubleLeftIcon from '@primevue/icons/angledoubleleft';\nimport Ripple from 'primevue/ripple';\nimport Select from 'primevue/select';\nimport InputNumber from 'primevue/inputnumber';\nimport AngleDoubleRightIcon from '@primevue/icons/angledoubleright';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport AngleLeftIcon from '@primevue/icons/angleleft';\n\nvar script$a = {\n name: 'BasePaginator',\n \"extends\": BaseComponent,\n props: {\n totalRecords: {\n type: Number,\n \"default\": 0\n },\n rows: {\n type: Number,\n \"default\": 0\n },\n first: {\n type: Number,\n \"default\": 0\n },\n pageLinkSize: {\n type: Number,\n \"default\": 5\n },\n rowsPerPageOptions: {\n type: Array,\n \"default\": null\n },\n template: {\n type: [Object, String],\n \"default\": 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown'\n },\n currentPageReportTemplate: {\n type: null,\n \"default\": '({currentPage} of {totalPages})'\n },\n alwaysShow: {\n type: Boolean,\n \"default\": true\n }\n },\n style: PaginatorStyle,\n provide: function provide() {\n return {\n $pcPaginator: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$9 = {\n name: 'CurrentPageReport',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n pageCount: {\n type: Number,\n \"default\": 0\n },\n currentPage: {\n type: Number,\n \"default\": 0\n },\n page: {\n type: Number,\n \"default\": 0\n },\n first: {\n type: Number,\n \"default\": 0\n },\n rows: {\n type: Number,\n \"default\": 0\n },\n totalRecords: {\n type: Number,\n \"default\": 0\n },\n template: {\n type: String,\n \"default\": '({currentPage} of {totalPages})'\n }\n },\n computed: {\n text: function text() {\n var text = this.template.replace('{currentPage}', this.currentPage).replace('{totalPages}', this.pageCount).replace('{first}', this.pageCount > 0 ? this.first + 1 : 0).replace('{last}', Math.min(this.first + this.rows, this.totalRecords)).replace('{rows}', this.rows).replace('{totalRecords}', this.totalRecords);\n return text;\n }\n }\n};\n\nfunction render$9(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('current')\n }, _ctx.ptm('current')), toDisplayString($options.text), 17);\n}\n\nscript$9.render = render$9;\n\nvar script$8 = {\n name: 'FirstPageLink',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n template: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n disabled: this.$attrs.disabled\n }\n });\n }\n },\n components: {\n AngleDoubleLeftIcon: AngleDoubleLeftIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render$8(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('first'),\n type: \"button\"\n }, $options.getPTOptions('first'), {\n \"data-pc-group-section\": \"pagebutton\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($props.template || 'AngleDoubleLeftIcon'), mergeProps({\n \"class\": _ctx.cx('firstIcon')\n }, $options.getPTOptions('firstIcon')), null, 16, [\"class\"]))], 16)), [[_directive_ripple]]);\n}\n\nscript$8.render = render$8;\n\nvar script$7 = {\n name: 'JumpToPageDropdown',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n emits: ['page-change'],\n props: {\n page: Number,\n pageCount: Number,\n disabled: Boolean,\n templates: null\n },\n methods: {\n onChange: function onChange(value) {\n this.$emit('page-change', value);\n }\n },\n computed: {\n pageOptions: function pageOptions() {\n var opts = [];\n for (var i = 0; i < this.pageCount; i++) {\n opts.push({\n label: String(i + 1),\n value: i\n });\n }\n return opts;\n }\n },\n components: {\n JTPSelect: Select\n }\n};\n\nfunction render$7(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_JTPSelect = resolveComponent(\"JTPSelect\");\n return openBlock(), createBlock(_component_JTPSelect, {\n modelValue: $props.page,\n options: $options.pageOptions,\n optionLabel: \"label\",\n optionValue: \"value\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function ($event) {\n return $options.onChange($event);\n }),\n \"class\": normalizeClass(_ctx.cx('pcJumpToPageDropdown')),\n disabled: $props.disabled,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcJumpToPageDropdown'),\n \"data-pc-group-section\": \"pagedropdown\"\n }, createSlots({\n _: 2\n }, [$props.templates['jumptopagedropdownicon'] ? {\n name: \"dropdownicon\",\n fn: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.templates['jumptopagedropdownicon']), {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"class\"]))];\n }),\n key: \"0\"\n } : undefined]), 1032, [\"modelValue\", \"options\", \"class\", \"disabled\", \"unstyled\", \"pt\"]);\n}\n\nscript$7.render = render$7;\n\nvar script$6 = {\n name: 'JumpToPageInput',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n inheritAttrs: false,\n emits: ['page-change'],\n props: {\n page: Number,\n pageCount: Number,\n disabled: Boolean\n },\n data: function data() {\n return {\n d_page: this.page\n };\n },\n watch: {\n page: function page(newValue) {\n this.d_page = newValue;\n }\n },\n methods: {\n onChange: function onChange(value) {\n if (value !== this.page) {\n this.d_page = value;\n this.$emit('page-change', value - 1);\n }\n }\n },\n computed: {\n inputArialabel: function inputArialabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.jumpToPageInputLabel : undefined;\n }\n },\n components: {\n JTPInput: InputNumber\n }\n};\n\nfunction render$6(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_JTPInput = resolveComponent(\"JTPInput\");\n return openBlock(), createBlock(_component_JTPInput, {\n ref: \"jtpInput\",\n modelValue: $data.d_page,\n \"class\": normalizeClass(_ctx.cx('pcJumpToPageInput')),\n \"aria-label\": $options.inputArialabel,\n disabled: $props.disabled,\n \"onUpdate:modelValue\": $options.onChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcJumpToPageInput')\n }, null, 8, [\"modelValue\", \"class\", \"aria-label\", \"disabled\", \"onUpdate:modelValue\", \"unstyled\", \"pt\"]);\n}\n\nscript$6.render = render$6;\n\nvar script$5 = {\n name: 'LastPageLink',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n template: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n disabled: this.$attrs.disabled\n }\n });\n }\n },\n components: {\n AngleDoubleRightIcon: AngleDoubleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render$5(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('last'),\n type: \"button\"\n }, $options.getPTOptions('last'), {\n \"data-pc-group-section\": \"pagebutton\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($props.template || 'AngleDoubleRightIcon'), mergeProps({\n \"class\": _ctx.cx('lastIcon')\n }, $options.getPTOptions('lastIcon')), null, 16, [\"class\"]))], 16)), [[_directive_ripple]]);\n}\n\nscript$5.render = render$5;\n\nvar script$4 = {\n name: 'NextPageLink',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n template: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n disabled: this.$attrs.disabled\n }\n });\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render$4(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('next'),\n type: \"button\"\n }, $options.getPTOptions('next'), {\n \"data-pc-group-section\": \"pagebutton\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($props.template || 'AngleRightIcon'), mergeProps({\n \"class\": _ctx.cx('nextIcon')\n }, $options.getPTOptions('nextIcon')), null, 16, [\"class\"]))], 16)), [[_directive_ripple]]);\n}\n\nscript$4.render = render$4;\n\nvar script$3 = {\n name: 'PageLinks',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n inheritAttrs: false,\n emits: ['click'],\n props: {\n value: Array,\n page: Number\n },\n methods: {\n getPTOptions: function getPTOptions(pageLink, key) {\n return this.ptm(key, {\n context: {\n active: pageLink === this.page\n }\n });\n },\n onPageLinkClick: function onPageLinkClick(event, pageLink) {\n this.$emit('click', {\n originalEvent: event,\n value: pageLink\n });\n },\n ariaPageLabel: function ariaPageLabel(value) {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.pageLabel.replace(/{page}/g, value) : undefined;\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"aria-label\", \"aria-current\", \"onClick\", \"data-p-active\"];\nfunction render$3(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('pages')\n }, _ctx.ptm('pages')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.value, function (pageLink) {\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: pageLink,\n \"class\": _ctx.cx('page', {\n pageLink: pageLink\n }),\n type: \"button\",\n \"aria-label\": $options.ariaPageLabel(pageLink),\n \"aria-current\": pageLink - 1 === $props.page ? 'page' : undefined,\n onClick: function onClick($event) {\n return $options.onPageLinkClick($event, pageLink);\n },\n ref_for: true\n }, $options.getPTOptions(pageLink - 1, 'page'), {\n \"data-p-active\": pageLink - 1 === $props.page\n }), [createTextVNode(toDisplayString(pageLink), 1)], 16, _hoisted_1)), [[_directive_ripple]]);\n }), 128))], 16);\n}\n\nscript$3.render = render$3;\n\nvar script$2 = {\n name: 'PrevPageLink',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n template: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n disabled: this.$attrs.disabled\n }\n });\n }\n },\n components: {\n AngleLeftIcon: AngleLeftIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render$2(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('prev'),\n type: \"button\"\n }, $options.getPTOptions('prev'), {\n \"data-pc-group-section\": \"pagebutton\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($props.template || 'AngleLeftIcon'), mergeProps({\n \"class\": _ctx.cx('prevIcon')\n }, $options.getPTOptions('prevIcon')), null, 16, [\"class\"]))], 16)), [[_directive_ripple]]);\n}\n\nscript$2.render = render$2;\n\nvar script$1 = {\n name: 'RowsPerPageDropdown',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n emits: ['rows-change'],\n props: {\n options: Array,\n rows: Number,\n disabled: Boolean,\n templates: null\n },\n methods: {\n onChange: function onChange(value) {\n this.$emit('rows-change', value);\n }\n },\n computed: {\n rowsOptions: function rowsOptions() {\n var opts = [];\n if (this.options) {\n for (var i = 0; i < this.options.length; i++) {\n opts.push({\n label: String(this.options[i]),\n value: this.options[i]\n });\n }\n }\n return opts;\n }\n },\n components: {\n RPPSelect: Select\n }\n};\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_RPPSelect = resolveComponent(\"RPPSelect\");\n return openBlock(), createBlock(_component_RPPSelect, {\n modelValue: $props.rows,\n options: $options.rowsOptions,\n optionLabel: \"label\",\n optionValue: \"value\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function ($event) {\n return $options.onChange($event);\n }),\n \"class\": normalizeClass(_ctx.cx('pcRowPerPageDropdown')),\n disabled: $props.disabled,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcRowPerPageDropdown'),\n \"data-pc-group-section\": \"pagedropdown\"\n }, createSlots({\n _: 2\n }, [$props.templates['rowsperpagedropdownicon'] ? {\n name: \"dropdownicon\",\n fn: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.templates['rowsperpagedropdownicon']), {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"class\"]))];\n }),\n key: \"0\"\n } : undefined]), 1032, [\"modelValue\", \"options\", \"class\", \"disabled\", \"unstyled\", \"pt\"]);\n}\n\nscript$1.render = render$1;\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nvar script = {\n name: 'Paginator',\n \"extends\": script$a,\n inheritAttrs: false,\n emits: ['update:first', 'update:rows', 'page'],\n data: function data() {\n return {\n d_first: this.first,\n d_rows: this.rows\n };\n },\n watch: {\n first: function first(newValue) {\n this.d_first = newValue;\n },\n rows: function rows(newValue) {\n this.d_rows = newValue;\n },\n totalRecords: function totalRecords(newValue) {\n if (this.page > 0 && newValue && this.d_first >= newValue) {\n this.changePage(this.pageCount - 1);\n }\n }\n },\n mounted: function mounted() {\n this.setPaginatorAttribute();\n this.createStyle();\n },\n methods: {\n changePage: function changePage(p) {\n var pc = this.pageCount;\n if (p >= 0 && p < pc) {\n this.d_first = this.d_rows * p;\n var state = {\n page: p,\n first: this.d_first,\n rows: this.d_rows,\n pageCount: pc\n };\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', state);\n }\n },\n changePageToFirst: function changePageToFirst(event) {\n if (!this.isFirstPage) {\n this.changePage(0);\n }\n event.preventDefault();\n },\n changePageToPrev: function changePageToPrev(event) {\n this.changePage(this.page - 1);\n event.preventDefault();\n },\n changePageLink: function changePageLink(event) {\n this.changePage(event.value - 1);\n event.originalEvent.preventDefault();\n },\n changePageToNext: function changePageToNext(event) {\n this.changePage(this.page + 1);\n event.preventDefault();\n },\n changePageToLast: function changePageToLast(event) {\n if (!this.isLastPage) {\n this.changePage(this.pageCount - 1);\n }\n event.preventDefault();\n },\n onRowChange: function onRowChange(value) {\n this.d_rows = value;\n this.changePage(this.page);\n },\n createStyle: function createStyle() {\n var _this = this;\n if (this.hasBreakpoints() && !this.isUnstyled) {\n var _this$$primevue;\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', (_this$$primevue = this.$primevue) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.config) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.csp) === null || _this$$primevue === void 0 ? void 0 : _this$$primevue.nonce);\n document.head.appendChild(this.styleElement);\n var innerHTML = '';\n var keys = Object.keys(this.template);\n var sortedBreakpoints = {};\n keys.sort(function (a, b) {\n return parseInt(a) - parseInt(b);\n }).forEach(function (key) {\n sortedBreakpoints[key] = _this.template[key];\n });\n for (var _i = 0, _Object$entries = Object.entries(Object.entries(sortedBreakpoints)); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n index = _Object$entries$_i[0],\n _Object$entries$_i$ = _slicedToArray(_Object$entries$_i[1], 1),\n key = _Object$entries$_i$[0];\n var minValue = void 0,\n calculatedMinValue = void 0;\n if (key !== 'default' && typeof Object.keys(sortedBreakpoints)[index - 1] === 'string') {\n calculatedMinValue = Number(Object.keys(sortedBreakpoints)[index - 1].slice(0, -2)) + 1 + 'px';\n } else {\n calculatedMinValue = Object.keys(sortedBreakpoints)[index - 1];\n }\n minValue = Object.entries(sortedBreakpoints)[index - 1] ? \"and (min-width:\".concat(calculatedMinValue, \")\") : '';\n if (key === 'default') {\n innerHTML += \"\\n @media screen \".concat(minValue, \" {\\n .paginator[\").concat(this.attributeSelector, \"],\\n display: flex;\\n }\\n }\\n \");\n } else {\n innerHTML += \"\\n.paginator[\".concat(this.attributeSelector, \"], .p-paginator-\").concat(key, \" {\\n display: none;\\n}\\n@media screen \").concat(minValue, \" and (max-width: \").concat(key, \") {\\n .paginator[\").concat(this.attributeSelector, \"], .p-paginator-\").concat(key, \" {\\n display: flex;\\n }\\n .paginator[\").concat(this.attributeSelector, \"],\\n .p-paginator-default{\\n display: none;\\n }\\n}\\n \");\n }\n }\n this.styleElement.innerHTML = innerHTML;\n }\n },\n hasBreakpoints: function hasBreakpoints() {\n return _typeof(this.template) === 'object';\n },\n setPaginatorAttribute: function setPaginatorAttribute() {\n var _this2 = this;\n if (this.$refs.paginator && this.$refs.paginator.length >= 0) {\n _toConsumableArray(this.$refs.paginator).forEach(function (el) {\n el.setAttribute(_this2.attributeSelector, '');\n });\n }\n },\n getAriaLabel: function getAriaLabel(labelType) {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria[labelType] : undefined;\n }\n },\n computed: {\n templateItems: function templateItems() {\n var keys = {};\n if (this.hasBreakpoints()) {\n keys = this.template;\n if (!keys[\"default\"]) {\n keys[\"default\"] = 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown';\n }\n for (var item in keys) {\n keys[item] = this.template[item].split(' ').map(function (value) {\n return value.trim();\n });\n }\n return keys;\n }\n keys['default'] = this.template.split(' ').map(function (value) {\n return value.trim();\n });\n return keys;\n },\n page: function page() {\n return Math.floor(this.d_first / this.d_rows);\n },\n pageCount: function pageCount() {\n return Math.ceil(this.totalRecords / this.d_rows);\n },\n isFirstPage: function isFirstPage() {\n return this.page === 0;\n },\n isLastPage: function isLastPage() {\n return this.page === this.pageCount - 1;\n },\n calculatePageLinkBoundaries: function calculatePageLinkBoundaries() {\n var numberOfPages = this.pageCount;\n var visiblePages = Math.min(this.pageLinkSize, numberOfPages);\n\n //calculate range, keep current in middle if necessary\n var start = Math.max(0, Math.ceil(this.page - visiblePages / 2));\n var end = Math.min(numberOfPages - 1, start + visiblePages - 1);\n\n //check when approaching to last page\n var delta = this.pageLinkSize - (end - start + 1);\n start = Math.max(0, start - delta);\n return [start, end];\n },\n pageLinks: function pageLinks() {\n var pageLinks = [];\n var boundaries = this.calculatePageLinkBoundaries;\n var start = boundaries[0];\n var end = boundaries[1];\n for (var i = start; i <= end; i++) {\n pageLinks.push(i + 1);\n }\n return pageLinks;\n },\n currentState: function currentState() {\n return {\n page: this.page,\n first: this.d_first,\n rows: this.d_rows\n };\n },\n empty: function empty() {\n return this.pageCount === 0;\n },\n currentPage: function currentPage() {\n return this.pageCount > 0 ? this.page + 1 : 0;\n },\n attributeSelector: function attributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n CurrentPageReport: script$9,\n FirstPageLink: script$8,\n LastPageLink: script$5,\n NextPageLink: script$4,\n PageLinks: script$3,\n PrevPageLink: script$2,\n RowsPerPageDropdown: script$1,\n JumpToPageDropdown: script$7,\n JumpToPageInput: script$6\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_FirstPageLink = resolveComponent(\"FirstPageLink\");\n var _component_PrevPageLink = resolveComponent(\"PrevPageLink\");\n var _component_NextPageLink = resolveComponent(\"NextPageLink\");\n var _component_LastPageLink = resolveComponent(\"LastPageLink\");\n var _component_PageLinks = resolveComponent(\"PageLinks\");\n var _component_CurrentPageReport = resolveComponent(\"CurrentPageReport\");\n var _component_RowsPerPageDropdown = resolveComponent(\"RowsPerPageDropdown\");\n var _component_JumpToPageDropdown = resolveComponent(\"JumpToPageDropdown\");\n var _component_JumpToPageInput = resolveComponent(\"JumpToPageInput\");\n return (_ctx.alwaysShow ? true : $options.pageLinks && $options.pageLinks.length > 1) ? (openBlock(), createElementBlock(\"nav\", normalizeProps(mergeProps({\n key: 0\n }, _ctx.ptmi('paginatorContainer'))), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.templateItems, function (value, key) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n key: key,\n ref_for: true,\n ref: \"paginator\",\n \"class\": _ctx.cx('paginator', {\n key: key\n })\n }, _ctx.ptm('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('contentStart'),\n ref_for: true\n }, _ctx.ptm('contentStart')), [renderSlot(_ctx.$slots, \"start\", {\n state: $options.currentState\n })], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content'),\n ref_for: true\n }, _ctx.ptm('content')), [(openBlock(true), createElementBlock(Fragment, null, renderList(value, function (item) {\n return openBlock(), createElementBlock(Fragment, {\n key: item\n }, [item === 'FirstPageLink' ? (openBlock(), createBlock(_component_FirstPageLink, {\n key: 0,\n \"aria-label\": $options.getAriaLabel('firstPageLabel'),\n template: _ctx.$slots.firsticon || _ctx.$slots.firstpagelinkicon,\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.changePageToFirst($event);\n }),\n disabled: $options.isFirstPage || $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"template\", \"disabled\", \"unstyled\", \"pt\"])) : item === 'PrevPageLink' ? (openBlock(), createBlock(_component_PrevPageLink, {\n key: 1,\n \"aria-label\": $options.getAriaLabel('prevPageLabel'),\n template: _ctx.$slots.previcon || _ctx.$slots.prevpagelinkicon,\n onClick: _cache[1] || (_cache[1] = function ($event) {\n return $options.changePageToPrev($event);\n }),\n disabled: $options.isFirstPage || $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"template\", \"disabled\", \"unstyled\", \"pt\"])) : item === 'NextPageLink' ? (openBlock(), createBlock(_component_NextPageLink, {\n key: 2,\n \"aria-label\": $options.getAriaLabel('nextPageLabel'),\n template: _ctx.$slots.nexticon || _ctx.$slots.nextpagelinkicon,\n onClick: _cache[2] || (_cache[2] = function ($event) {\n return $options.changePageToNext($event);\n }),\n disabled: $options.isLastPage || $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"template\", \"disabled\", \"unstyled\", \"pt\"])) : item === 'LastPageLink' ? (openBlock(), createBlock(_component_LastPageLink, {\n key: 3,\n \"aria-label\": $options.getAriaLabel('lastPageLabel'),\n template: _ctx.$slots.lasticon || _ctx.$slots.lastpagelinkicon,\n onClick: _cache[3] || (_cache[3] = function ($event) {\n return $options.changePageToLast($event);\n }),\n disabled: $options.isLastPage || $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"template\", \"disabled\", \"unstyled\", \"pt\"])) : item === 'PageLinks' ? (openBlock(), createBlock(_component_PageLinks, {\n key: 4,\n \"aria-label\": $options.getAriaLabel('pageLabel'),\n value: $options.pageLinks,\n page: $options.page,\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $options.changePageLink($event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"value\", \"page\", \"unstyled\", \"pt\"])) : item === 'CurrentPageReport' ? (openBlock(), createBlock(_component_CurrentPageReport, {\n key: 5,\n \"aria-live\": \"polite\",\n template: _ctx.currentPageReportTemplate,\n currentPage: $options.currentPage,\n page: $options.page,\n pageCount: $options.pageCount,\n first: $data.d_first,\n rows: $data.d_rows,\n totalRecords: _ctx.totalRecords,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"template\", \"currentPage\", \"page\", \"pageCount\", \"first\", \"rows\", \"totalRecords\", \"unstyled\", \"pt\"])) : item === 'RowsPerPageDropdown' && _ctx.rowsPerPageOptions ? (openBlock(), createBlock(_component_RowsPerPageDropdown, {\n key: 6,\n \"aria-label\": $options.getAriaLabel('rowsPerPageLabel'),\n rows: $data.d_rows,\n options: _ctx.rowsPerPageOptions,\n onRowsChange: _cache[5] || (_cache[5] = function ($event) {\n return $options.onRowChange($event);\n }),\n disabled: $options.empty,\n templates: _ctx.$slots,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"rows\", \"options\", \"disabled\", \"templates\", \"unstyled\", \"pt\"])) : item === 'JumpToPageDropdown' ? (openBlock(), createBlock(_component_JumpToPageDropdown, {\n key: 7,\n \"aria-label\": $options.getAriaLabel('jumpToPageDropdownLabel'),\n page: $options.page,\n pageCount: $options.pageCount,\n onPageChange: _cache[6] || (_cache[6] = function ($event) {\n return $options.changePage($event);\n }),\n disabled: $options.empty,\n templates: _ctx.$slots,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"page\", \"pageCount\", \"disabled\", \"templates\", \"unstyled\", \"pt\"])) : item === 'JumpToPageInput' ? (openBlock(), createBlock(_component_JumpToPageInput, {\n key: 8,\n page: $options.currentPage,\n onPageChange: _cache[7] || (_cache[7] = function ($event) {\n return $options.changePage($event);\n }),\n disabled: $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"page\", \"disabled\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('contentEnd'),\n ref_for: true\n }, _ctx.ptm('contentEnd')), [renderSlot(_ctx.$slots, \"end\", {\n state: $options.currentState\n })], 16)) : createCommentVNode(\"\", true)], 16);\n }), 128))], 16)) : createCommentVNode(\"\", true);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-datatable {\\n position: relative;\\n}\\n\\n.p-datatable-table {\\n border-spacing: 0;\\n width: 100%;\\n}\\n\\n.p-datatable-scrollable > .p-datatable-table-container {\\n position: relative;\\n}\\n\\n.p-datatable-scrollable-table > .p-datatable-thead {\\n top: 0;\\n z-index: 1;\\n}\\n\\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody {\\n position: sticky;\\n z-index: 1;\\n}\\n\\n.p-datatable-scrollable-table>.p-datatable-tfoot {\\n bottom: 0;\\n z-index: 1;\\n}\\n\\n.p-datatable-scrollable .p-datatable-frozen-column {\\n position: sticky;\\n background: \".concat(dt('datatable.header.cell.background'), \";\\n}\\n\\n.p-datatable-scrollable th.p-datatable-frozen-column {\\n z-index: 1;\\n}\\n\\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-thead,\\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-thead {\\n background: \").concat(dt('datatable.header.cell.background'), \";\\n}\\n\\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-tfoot,\\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-tfoot {\\n background: \").concat(dt('datatable.footer.cell.background'), \";\\n}\\n\\n.p-datatable-flex-scrollable {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n}\\n\\n.p-datatable-flex-scrollable > .p-datatable-table-container {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n height: 100%;\\n}\\n\\n.p-datatable-scrollable-table > .p-datatable-tbody > .p-datatable-row-group-header {\\n position: sticky;\\n z-index: 1;\\n}\\n\\n.p-datatable-resizable-table > .p-datatable-thead > tr > th,\\n.p-datatable-resizable-table > .p-datatable-tfoot > tr > td,\\n.p-datatable-resizable-table > .p-datatable-tbody > tr > td {\\n overflow: hidden;\\n white-space: nowrap;\\n}\\n\\n.p-datatable-resizable-table > .p-datatable-thead > tr > th.p-datatable-resizable-column:not(.p-datatable-frozen-column) {\\n background-clip: padding-box;\\n position: relative;\\n}\\n\\n.p-datatable-resizable-table-fit > .p-datatable-thead > tr > th.p-datatable-resizable-column:last-child .p-datatable-column-resizer {\\n display: none;\\n}\\n\\n.p-datatable-column-resizer {\\n display: block;\\n position: absolute;\\n top: 0;\\n right: 0;\\n margin: 0;\\n width: \").concat(dt('datatable.column.resizer.width'), \";\\n height: 100%;\\n padding: 0px;\\n cursor: col-resize;\\n border: 1px solid transparent;\\n}\\n\\n.p-datatable-column-header-content {\\n display: flex;\\n align-items: center;\\n gap: \").concat(dt('datatable.header.cell.gap'), \";\\n}\\n\\n.p-datatable-column-resize-indicator {\\n width: \").concat(dt('datatable.resize.indicator.width'), \";\\n position: absolute;\\n z-index: 10;\\n display: none;\\n background: \").concat(dt('datatable.resize.indicator.color'), \";\\n}\\n\\n.p-datatable-row-reorder-indicator-up,\\n.p-datatable-row-reorder-indicator-down {\\n position: absolute;\\n display: none;\\n}\\n\\n.p-datatable-reorderable-column,\\n.p-datatable-reorderable-row-handle {\\n cursor: move;\\n}\\n\\n.p-datatable-mask {\\n position: absolute;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 2;\\n}\\n\\n.p-datatable-inline-filter {\\n display: flex;\\n align-items: center;\\n width: 100%;\\n gap: \").concat(dt('datatable.filter.inline.gap'), \";\\n}\\n\\n.p-datatable-inline-filter .p-datatable-filter-element-container {\\n flex: 1 1 auto;\\n width: 1%;\\n}\\n\\n.p-datatable-filter-overlay {\\n background: \").concat(dt('datatable.filter.overlay.select.background'), \";\\n color: \").concat(dt('datatable.filter.overlay.select.color'), \";\\n border: 1px solid \").concat(dt('datatable.filter.overlay.select.border.color'), \";\\n border-radius: \").concat(dt('datatable.filter.overlay.select.border.radius'), \";\\n box-shadow: \").concat(dt('datatable.filter.overlay.select.shadow'), \";\\n min-width: 12.5rem;\\n}\\n\\n.p-datatable-filter-constraint-list {\\n margin: 0;\\n list-style: none;\\n display: flex;\\n flex-direction: column;\\n padding: \").concat(dt('datatable.filter.constraint.list.padding'), \";\\n gap: \").concat(dt('datatable.filter.constraint.list.gap'), \";\\n}\\n\\n.p-datatable-filter-constraint {\\n padding: \").concat(dt('datatable.filter.constraint.padding'), \";\\n color: \").concat(dt('datatable.filter.constraint.color'), \";\\n border-radius: \").concat(dt('datatable.filter.constraint.border.radius'), \";\\n cursor: pointer;\\n transition: background \").concat(dt('datatable.transition.duration'), \", color \").concat(dt('datatable.transition.duration'), \", border-color \").concat(dt('datatable.transition.duration'), \",\\n box-shadow \").concat(dt('datatable.transition.duration'), \";\\n}\\n\\n.p-datatable-filter-constraint-selected {\\n background: \").concat(dt('datatable.filter.constraint.selected.background'), \";\\n color: \").concat(dt('datatable.filter.constraint.selected.color'), \";\\n}\\n\\n.p-datatable-filter-constraint:not(.p-datatable-filter-constraint-selected):not(.p-disabled):hover {\\n background: \").concat(dt('datatable.filter.constraint.focus.background'), \";\\n color: \").concat(dt('datatable.filter.constraint.focus.color'), \";\\n}\\n\\n.p-datatable-filter-constraint:focus-visible {\\n outline: 0 none;\\n background: \").concat(dt('datatable.filter.constraint.focus.background'), \";\\n color: \").concat(dt('datatable.filter.constraint.focus.color'), \";\\n}\\n\\n.p-datatable-filter-constraint-selected:focus-visible {\\n outline: 0 none;\\n background: \").concat(dt('datatable.filter.constraint.selected.focus.background'), \";\\n color: \").concat(dt('datatable.filter.constraint.selected.focus.color'), \";\\n}\\n\\n.p-datatable-filter-constraint-separator {\\n border-top: 1px solid \").concat(dt('datatable.filter.constraint.separator.border.color'), \";\\n}\\n\\n.p-datatable-popover-filter {\\n display: inline-flex;\\n margin-left: auto;\\n}\\n\\n.p-datatable-filter-overlay-popover {\\n background: \").concat(dt('datatable.filter.overlay.popover.background'), \";\\n color: \").concat(dt('datatable.filter.overlay.popover.color'), \";\\n border: 1px solid \").concat(dt('datatable.filter.overlay.popover.border.color'), \";\\n border-radius: \").concat(dt('datatable.filter.overlay.popover.border.radius'), \";\\n box-shadow: \").concat(dt('datatable.filter.overlay.popover.shadow'), \";\\n min-width: 12.5rem;\\n padding: \").concat(dt('datatable.filter.overlay.popover.padding'), \";\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('datatable.filter.overlay.popover.gap'), \";\\n}\\n\\n.p-datatable-filter-operator-dropdown {\\n width: 100%;\\n}\\n\\n.p-datatable-filter-rule-list,\\n.p-datatable-filter-rule {\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('datatable.filter.overlay.popover.gap'), \";\\n}\\n\\n.p-datatable-filter-rule {\\n border-bottom: 1px solid \").concat(dt('datatable.filter.rule.border.color'), \";\\n}\\n\\n.p-datatable-filter-rule:last-child {\\n border-bottom: 0 none;\\n}\\n\\n.p-datatable-filter-add-rule-button {\\n width: 100%;\\n}\\n\\n.p-datatable-filter-remove-button {\\n width: 100%;\\n}\\n\\n.p-datatable-filter-buttonbar {\\n padding: 0;\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n}\\n\\n.p-datatable-virtualscroller-spacer {\\n display: flex;\\n}\\n\\n.p-datatable .p-virtualscroller .p-virtualscroller-loading {\\n transform: none !important;\\n min-height: 0;\\n position: sticky;\\n top: 0;\\n left: 0;\\n}\\n\\n.p-datatable-paginator-top {\\n border-color: \").concat(dt('datatable.paginator.top.border.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('datatable.paginator.top.border.width'), \";\\n}\\n\\n.p-datatable-paginator-bottom {\\n border-color: \").concat(dt('datatable.paginator.bottom.border.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('datatable.paginator.bottom.border.width'), \";\\n}\\n\\n.p-datatable-header {\\n background: \").concat(dt('datatable.header.background'), \";\\n color: \").concat(dt('datatable.header.color'), \";\\n border-color: \").concat(dt('datatable.header.border.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('datatable.header.border.width'), \";\\n padding: \").concat(dt('datatable.header.padding'), \";\\n}\\n\\n.p-datatable-footer {\\n background: \").concat(dt('datatable.footer.background'), \";\\n color: \").concat(dt('datatable.footer.color'), \";\\n border-color: \").concat(dt('datatable.footer.border.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('datatable.footer.border.width'), \";\\n padding: \").concat(dt('datatable.footer.padding'), \";\\n}\\n\\n.p-datatable-header-cell {\\n padding: \").concat(dt('datatable.header.cell.padding'), \";\\n background: \").concat(dt('datatable.header.cell.background'), \";\\n border-color: \").concat(dt('datatable.header.cell.border.color'), \";\\n border-style: solid;\\n border-width: 0 0 1px 0;\\n color: \").concat(dt('datatable.header.cell.color'), \";\\n font-weight: normal;\\n text-align: left;\\n transition: background \").concat(dt('datatable.transition.duration'), \", color \").concat(dt('datatable.transition.duration'), \", border-color \").concat(dt('datatable.transition.duration'), \",\\n outline-color \").concat(dt('datatable.transition.duration'), \", box-shadow \").concat(dt('datatable.transition.duration'), \";\\n}\\n\\n.p-datatable-column-title {\\n font-weight: \").concat(dt('datatable.column.title.font.weight'), \";\\n}\\n\\n.p-datatable-tbody > tr {\\n outline-color: transparent;\\n background: \").concat(dt('datatable.row.background'), \";\\n color: \").concat(dt('datatable.row.color'), \";\\n transition: background \").concat(dt('datatable.transition.duration'), \", color \").concat(dt('datatable.transition.duration'), \", border-color \").concat(dt('datatable.transition.duration'), \",\\n outline-color \").concat(dt('datatable.transition.duration'), \", box-shadow \").concat(dt('datatable.transition.duration'), \";\\n}\\n\\n.p-datatable-tbody > tr > td {\\n text-align: left;\\n border-color: \").concat(dt('datatable.body.cell.border.color'), \";\\n border-style: solid;\\n border-width: 0 0 1px 0;\\n padding: \").concat(dt('datatable.body.cell.padding'), \";\\n}\\n\\n.p-datatable-hoverable .p-datatable-tbody > tr:not(.p-datatable-row-selected):hover {\\n background: \").concat(dt('datatable.row.hover.background'), \";\\n color: \").concat(dt('datatable.row.hover.color'), \";\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-row-selected {\\n background: \").concat(dt('datatable.row.selected.background'), \";\\n color: \").concat(dt('datatable.row.selected.color'), \";\\n}\\n\\n.p-datatable-tbody > tr:has(+ .p-datatable-row-selected) > td {\\n border-bottom-color: \").concat(dt('datatable.body.cell.selected.border.color'), \";\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-row-selected > td {\\n border-bottom-color: \").concat(dt('datatable.body.cell.selected.border.color'), \";\\n}\\n\\n.p-datatable-tbody > tr:focus-visible,\\n.p-datatable-tbody > tr.p-datatable-contextmenu-row-selected {\\n box-shadow: \").concat(dt('datatable.body.cell.focus.ring.shadow'), \";\\n outline: \").concat(dt('datatable.body.cell.focus.ring.width'), \" \").concat(dt('datatable.body.cell.focus.ring.style'), \" \").concat(dt('datatable.body.cell.focus.ring.color'), \";\\n outline-offset: \").concat(dt('datatable.body.cell.focus.ring.offset'), \";\\n}\\n\\n.p-datatable-tfoot > tr > td {\\n text-align: left;\\n padding: \").concat(dt('datatable.footer.cell.padding'), \";\\n border-color: \").concat(dt('datatable.footer.cell.border.color'), \";\\n border-style: solid;\\n border-width: 0 0 1px 0;\\n color: \").concat(dt('datatable.footer.cell.color'), \";\\n background: \").concat(dt('datatable.footer.cell.background'), \";\\n}\\n\\n.p-datatable-column-footer {\\n font-weight: \").concat(dt('datatable.column.footer.font.weight'), \";\\n}\\n\\n.p-datatable-sortable-column {\\n cursor: pointer;\\n user-select: none;\\n outline-color: transparent;\\n}\\n\\n.p-datatable-column-title,\\n.p-datatable-sort-icon,\\n.p-datatable-sort-badge {\\n vertical-align: middle;\\n}\\n\\n.p-datatable-sort-icon {\\n color: \").concat(dt('datatable.sort.icon.color'), \";\\n transition: color \").concat(dt('datatable.transition.duration'), \";\\n}\\n\\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover {\\n background: \").concat(dt('datatable.header.cell.hover.background'), \";\\n color: \").concat(dt('datatable.header.cell.hover.color'), \";\\n}\\n\\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover .p-datatable-sort-icon {\\n color: \").concat(dt('datatable.sort.icon.hover.color'), \";\\n}\\n\\n.p-datatable-column-sorted {\\n background: \").concat(dt('datatable.header.cell.selected.background'), \";\\n color: \").concat(dt('datatable.header.cell.selected.color'), \";\\n}\\n\\n.p-datatable-column-sorted .p-datatable-sort-icon {\\n color: \").concat(dt('datatable.header.cell.selected.color'), \";\\n}\\n\\n.p-datatable-sortable-column:focus-visible {\\n box-shadow: \").concat(dt('datatable.header.cell.focus.ring.shadow'), \";\\n outline: \").concat(dt('datatable.header.cell.focus.ring.width'), \" \").concat(dt('datatable.header.cell.focus.ring.style'), \" \").concat(dt('datatable.header.cell.focus.ring.color'), \";\\n outline-offset: \").concat(dt('datatable.header.cell.focus.ring.offset'), \";\\n}\\n\\n.p-datatable-hoverable .p-datatable-selectable-row {\\n cursor: pointer;\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-dragpoint-top > td {\\n box-shadow: inset 0 2px 0 0 \").concat(dt('datatable.drop.point.color'), \";\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-dragpoint-bottom > td {\\n box-shadow: inset 0 -2px 0 0 \").concat(dt('datatable.drop.point.color'), \";\\n}\\n\\n.p-datatable-loading-icon {\\n font-size: \").concat(dt('datatable.loading.icon.size'), \";\\n width: \").concat(dt('datatable.loading.icon.size'), \";\\n height: \").concat(dt('datatable.loading.icon.size'), \";\\n}\\n\\n.p-datatable-gridlines .p-datatable-header {\\n border-width: 1px 1px 0 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-footer {\\n border-width: 0 1px 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-paginator-top {\\n border-width: 1px 1px 0 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-paginator-bottom {\\n border-width: 0 1px 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-thead > tr > th {\\n border-width: 1px 0 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-thead > tr > th:last-child {\\n border-width: 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tbody > tr > td {\\n border-width: 1px 0 0 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {\\n border-width: 1px 1px 0 1px;\\n}\\n\\np-datatable-gridlines .p-datatable-tbody > tr:last-child > td {\\n border-width: 1px 0 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tbody > tr:last-child > td:last-child {\\n border-width: 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tfoot > tr > td {\\n border-width: 1px 0 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tfoot > tr > td:last-child {\\n border-width: 1px 1px 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td {\\n border-width: 0 0 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td:last-child {\\n border-width: 0 1px 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td {\\n border-width: 0 0 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td:last-child {\\n border-width: 0 1px 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td {\\n border-width: 0 0 0 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td:last-child {\\n border-width: 0 1px 0 1px;\\n}\\n\\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd {\\n background: \").concat(dt('datatable.row.striped.background'), \";\\n}\\n\\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd.p-datatable-row-selected {\\n background: \").concat(dt('datatable.row.selected.background'), \";\\n color: \").concat(dt('datatable.row.selected.color'), \";\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-header {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-thead > tr > th {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-tbody > tr > td {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-tfoot > tr > td {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-footer {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-header {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-thead > tr > th {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-tbody>tr>td {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-tfoot>tr>td {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-footer {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable-row-toggle-button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n width: \").concat(dt('datatable.row.toggle.button.size'), \";\\n height: \").concat(dt('datatable.row.toggle.button.size'), \";\\n color: \").concat(dt('datatable.row.toggle.button.color'), \";\\n border: 0 none;\\n background: transparent;\\n cursor: pointer;\\n border-radius: \").concat(dt('datatable.row.toggle.button.border.radius'), \";\\n transition: background \").concat(dt('datatable.transition.duration'), \", color \").concat(dt('datatable.transition.duration'), \", border-color \").concat(dt('datatable.transition.duration'), \",\\n outline-color \").concat(dt('datatable.transition.duration'), \", box-shadow \").concat(dt('datatable.transition.duration'), \";\\n outline-color: transparent;\\n user-select: none;\\n}\\n\\n.p-datatable-row-toggle-button:enabled:hover {\\n color: \").concat(dt('datatable.row.toggle.button.hover.color'), \";\\n background: \").concat(dt('datatable.row.toggle.button.hover.background'), \";\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-row-selected .p-datatable-row-toggle-button:hover {\\n background: \").concat(dt('datatable.row.toggle.button.selected.hover.background'), \";\\n \").concat(dt('datatable.row.toggle.button.selected.hover.color'), \";\\n}\\n\\n.p-datatable-row-toggle-button:focus-visible {\\n box-shadow: \").concat(dt('datatable.row.toggle.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('datatable.row.toggle.button.focus.ring.width'), \" \").concat(dt('datatable.row.toggle.button.focus.ring.style'), \" \").concat(dt('datatable.row.toggle.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('datatable.row.toggle.button.focus.ring.offset'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-datatable p-component', {\n 'p-datatable-hoverable': props.rowHover || props.selectionMode,\n 'p-datatable-resizable': props.resizableColumns,\n 'p-datatable-resizable-fit': props.resizableColumns && props.columnResizeMode === 'fit',\n 'p-datatable-scrollable': props.scrollable,\n 'p-datatable-flex-scrollable': props.scrollable && props.scrollHeight === 'flex',\n 'p-datatable-striped': props.stripedRows,\n 'p-datatable-gridlines': props.showGridlines,\n 'p-datatable-sm': props.size === 'small',\n 'p-datatable-lg': props.size === 'large'\n }];\n },\n mask: 'p-datatable-mask p-overlay-mask',\n loadingIcon: 'p-datatable-loading-icon',\n header: 'p-datatable-header',\n pcPaginator: function pcPaginator(_ref3) {\n var position = _ref3.position;\n return 'p-datatable-paginator-' + position;\n },\n tableContainer: 'p-datatable-table-container',\n table: function table(_ref4) {\n var props = _ref4.props;\n return ['p-datatable-table', {\n 'p-datatable-scrollable-table': props.scrollable,\n 'p-datatable-resizable-table': props.resizableColumns,\n 'p-datatable-resizable-table-fit': props.resizableColumns && props.columnResizeMode === 'fit'\n }];\n },\n thead: 'p-datatable-thead',\n headerCell: function headerCell(_ref5) {\n var instance = _ref5.instance,\n props = _ref5.props,\n column = _ref5.column;\n return column && !instance.columnProp(column, 'hidden') && (props.rowGroupMode !== 'subheader' || props.groupRowsBy !== instance.columnProp(column, 'field')) ? ['p-datatable-header-cell', {\n 'p-datatable-frozen-column': instance.columnProp(column, 'frozen')\n }] : ['p-datatable-header-cell', {\n 'p-datatable-sortable-column': instance.columnProp('sortable'),\n 'p-datatable-resizable-column': instance.resizableColumns,\n 'p-datatable-column-sorted': instance.isColumnSorted(),\n 'p-datatable-frozen-column': instance.columnProp('frozen'),\n 'p-datatable-reorderable-column': props.reorderableColumns\n }];\n },\n columnResizer: 'p-datatable-column-resizer',\n columnHeaderContent: 'p-datatable-column-header-content',\n columnTitle: 'p-datatable-column-title',\n columnFooter: 'p-datatable-column-footer',\n sortIcon: 'p-datatable-sort-icon',\n pcSortBadge: 'p-datatable-sort-badge',\n filter: function filter(_ref6) {\n var props = _ref6.props;\n return ['p-datatable-filter', {\n 'p-datatable-inline-filter': props.display === 'row',\n 'p-datatable-popover-filter': props.display === 'menu'\n }];\n },\n filterElementContainer: 'p-datatable-filter-element-container',\n pcColumnFilterButton: 'p-datatable-column-filter-button',\n pcColumnFilterClearButton: 'p-datatable-column-filter-clear-button',\n filterOverlay: function filterOverlay(_ref7) {\n _ref7.instance;\n var props = _ref7.props;\n return ['p-datatable-filter-overlay p-component', {\n 'p-datatable-filter-overlay-popover': props.display === 'menu'\n }];\n },\n filterConstraintList: 'p-datatable-filter-constraint-list',\n filterConstraint: function filterConstraint(_ref8) {\n var instance = _ref8.instance,\n matchMode = _ref8.matchMode;\n return ['p-datatable-filter-constraint', {\n 'p-datatable-filter-constraint-selected': matchMode && instance.isRowMatchModeSelected(matchMode.value)\n }];\n },\n filterConstraintSeparator: 'p-datatable-filter-constraint-separator',\n filterOperator: 'p-datatable-filter-operator',\n pcFilterOperatorDropdown: 'p-datatable-filter-operator-dropdown',\n filterRuleList: 'p-datatable-filter-rule-list',\n filterRule: 'p-datatable-filter-rule',\n pcFilterConstraintDropdown: 'p-datatable-filter-constraint-dropdown',\n pcFilterRemoveRuleButton: 'p-datatable-filter-remove-rule-button',\n pcFilterAddRuleButton: 'p-datatable-filter-add-rule-button',\n filterButtonbar: 'p-datatable-filter-buttonbar',\n pcFilterClearButton: 'p-datatable-filter-clear-button',\n pcFilterApplyButton: 'p-datatable-filter-apply-button',\n tbody: function tbody(_ref9) {\n var props = _ref9.props;\n return props.frozenRow ? 'p-datatable-tbody p-datatable-frozen-tbody' : 'p-datatable-tbody';\n },\n rowGroupHeader: 'p-datatable-row-group-header',\n rowToggleButton: 'p-datatable-row-toggle-button',\n rowToggleIcon: 'p-datatable-row-toggle-icon',\n row: function row(_ref10) {\n var instance = _ref10.instance,\n props = _ref10.props,\n index = _ref10.index,\n columnSelectionMode = _ref10.columnSelectionMode;\n var rowStyleClass = [];\n if (props.selectionMode) {\n rowStyleClass.push('p-datatable-selectable-row');\n }\n if (props.selection) {\n rowStyleClass.push({\n 'p-datatable-row-selected': columnSelectionMode ? instance.isSelected && instance.$parentInstance.$parentInstance.highlightOnSelect : instance.isSelected\n });\n }\n if (props.contextMenuSelection) {\n rowStyleClass.push({\n 'p-datatable-contextmenu-row-selected': instance.isSelectedWithContextMenu\n });\n }\n rowStyleClass.push(index % 2 === 0 ? 'p-row-even' : 'p-row-odd');\n return rowStyleClass;\n },\n rowExpansion: 'p-datatable-row-expansion',\n rowGroupFooter: 'p-datatable-row-group-footer',\n emptyMessage: 'p-datatable-empty-message',\n bodyCell: function bodyCell(_ref11) {\n var instance = _ref11.instance;\n return [{\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }];\n },\n reorderableRowHandle: 'p-datatable-reorderable-row-handle',\n pcRowEditorInit: 'p-datatable-row-editor-init',\n pcRowEditorSave: 'p-datatable-row-editor-save',\n pcRowEditorCancel: 'p-datatable-row-editor-cancel',\n tfoot: 'p-datatable-tfoot',\n footerCell: function footerCell(_ref12) {\n var instance = _ref12.instance;\n return [{\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }];\n },\n virtualScrollerSpacer: 'p-datatable-virtualscroller-spacer',\n footer: 'p-datatable-footer',\n columnResizeIndicator: 'p-datatable-column-resize-indicator',\n rowReorderIndicatorUp: 'p-datatable-row-reorder-indicator-up',\n rowReorderIndicatorDown: 'p-datatable-row-reorder-indicator-down'\n};\nvar inlineStyles = {\n tableContainer: {\n overflow: 'auto'\n },\n thead: {\n position: 'sticky'\n },\n tfoot: {\n position: 'sticky'\n }\n};\nvar DataTableStyle = BaseStyle.extend({\n name: 'datatable',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { DataTableStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'PencilIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M0.609628 13.959C0.530658 13.9599 0.452305 13.9451 0.379077 13.9156C0.305849 13.8861 0.239191 13.8424 0.18294 13.787C0.118447 13.7234 0.0688234 13.6464 0.0376166 13.5614C0.00640987 13.4765 -0.00560954 13.3857 0.00241768 13.2956L0.25679 10.1501C0.267698 10.0041 0.331934 9.86709 0.437312 9.76516L9.51265 0.705715C10.0183 0.233014 10.6911 -0.0203041 11.3835 0.00127367C12.0714 0.00660201 12.7315 0.27311 13.2298 0.746671C13.7076 1.23651 13.9824 1.88848 13.9992 2.57201C14.0159 3.25554 13.7733 3.92015 13.32 4.4327L4.23648 13.5331C4.13482 13.6342 4.0017 13.6978 3.85903 13.7133L0.667067 14L0.609628 13.959ZM1.43018 10.4696L1.25787 12.714L3.50619 12.5092L12.4502 3.56444C12.6246 3.35841 12.7361 3.10674 12.7714 2.83933C12.8067 2.57193 12.7644 2.30002 12.6495 2.05591C12.5346 1.8118 12.3519 1.60575 12.1231 1.46224C11.8943 1.31873 11.6291 1.2438 11.3589 1.24633C11.1813 1.23508 11.0033 1.25975 10.8355 1.31887C10.6677 1.37798 10.5136 1.47033 10.3824 1.59036L1.43018 10.4696Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-radiobutton {\\n position: relative;\\n display: inline-flex;\\n user-select: none;\\n vertical-align: bottom;\\n width: \".concat(dt('radiobutton.width'), \";\\n height: \").concat(dt('radiobutton.height'), \";\\n}\\n\\n.p-radiobutton-input {\\n cursor: pointer;\\n appearance: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n padding: 0;\\n margin: 0;\\n opacity: 0;\\n z-index: 1;\\n outline: 0 none;\\n border: 1px solid transparent;\\n border-radius: 50%;\\n}\\n\\n.p-radiobutton-box {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: 50%;\\n border: 1px solid \").concat(dt('radiobutton.border.color'), \";\\n background: \").concat(dt('radiobutton.background'), \";\\n width: \").concat(dt('radiobutton.width'), \";\\n height: \").concat(dt('radiobutton.height'), \";\\n transition: background \").concat(dt('radiobutton.transition.duration'), \", color \").concat(dt('radiobutton.transition.duration'), \", border-color \").concat(dt('radiobutton.transition.duration'), \", box-shadow \").concat(dt('radiobutton.transition.duration'), \", outline-color \").concat(dt('radiobutton.transition.duration'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('radiobutton.shadow'), \";\\n}\\n\\n.p-radiobutton-icon {\\n transition-duration: \").concat(dt('radiobutton.transition.duration'), \";\\n background: transparent;\\n font-size: \").concat(dt('radiobutton.icon.size'), \";\\n width: \").concat(dt('radiobutton.icon.size'), \";\\n height: \").concat(dt('radiobutton.icon.size'), \";\\n border-radius: 50%;\\n backface-visibility: hidden;\\n transform: translateZ(0) scale(0.1);\\n}\\n\\n.p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.hover.border.color'), \";\\n}\\n\\n.p-radiobutton-checked .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.checked.border.color'), \";\\n background: \").concat(dt('radiobutton.checked.background'), \";\\n}\\n\\n.p-radiobutton-checked .p-radiobutton-box .p-radiobutton-icon {\\n background: \").concat(dt('radiobutton.icon.checked.color'), \";\\n transform: translateZ(0) scale(1, 1);\\n visibility: visible;\\n}\\n\\n.p-radiobutton-checked:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.checked.hover.border.color'), \";\\n background: \").concat(dt('radiobutton.checked.hover.background'), \";\\n}\\n\\n.p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-radiobutton-checked .p-radiobutton-box .p-radiobutton-icon {\\n background: \").concat(dt('radiobutton.icon.checked.hover.color'), \";\\n}\\n\\n.p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:focus-visible) .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.focus.border.color'), \";\\n box-shadow: \").concat(dt('radiobutton.focus.ring.shadow'), \";\\n outline: \").concat(dt('radiobutton.focus.ring.width'), \" \").concat(dt('radiobutton.focus.ring.style'), \" \").concat(dt('radiobutton.focus.ring.color'), \";\\n outline-offset: \").concat(dt('radiobutton.focus.ring.offset'), \";\\n}\\n\\n.p-radiobutton-checked:not(.p-disabled):has(.p-radiobutton-input:focus-visible) .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.checked.focus.border.color'), \";\\n}\\n\\n.p-radiobutton.p-invalid > .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.invalid.border.color'), \";\\n}\\n\\n.p-radiobutton.p-variant-filled .p-radiobutton-box {\\n background: \").concat(dt('radiobutton.filled.background'), \";\\n}\\n\\n.p-radiobutton.p-variant-filled.p-radiobutton-checked .p-radiobutton-box {\\n background: \").concat(dt('radiobutton.checked.background'), \";\\n}\\n\\n.p-radiobutton.p-variant-filled:not(.p-disabled):has(.p-radiobutton-input:hover).p-radiobutton-checked .p-radiobutton-box {\\n background: \").concat(dt('radiobutton.checked.hover.background'), \";\\n}\\n\\n.p-radiobutton.p-disabled {\\n opacity: 1;\\n}\\n\\n.p-radiobutton.p-disabled .p-radiobutton-box {\\n background: \").concat(dt('radiobutton.disabled.background'), \";\\n border-color: \").concat(dt('radiobutton.checked.disabled.border.color'), \";\\n}\\n\\n.p-radiobutton-checked.p-disabled .p-radiobutton-box .p-radiobutton-icon {\\n background: \").concat(dt('radiobutton.icon.disabled.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-radiobutton p-component', {\n 'p-radiobutton-checked': instance.checked,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled'\n }];\n },\n box: 'p-radiobutton-box',\n input: 'p-radiobutton-input',\n icon: 'p-radiobutton-icon'\n};\nvar RadioButtonStyle = BaseStyle.extend({\n name: 'radiobutton',\n theme: theme,\n classes: classes\n});\n\nexport { RadioButtonStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { equals } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButtonStyle from 'primevue/radiobutton/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseRadioButton',\n \"extends\": BaseComponent,\n props: {\n value: null,\n modelValue: null,\n binary: Boolean,\n name: {\n type: String,\n \"default\": null\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: RadioButtonStyle,\n provide: function provide() {\n return {\n $pcRadioButton: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'RadioButton',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur'],\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n });\n },\n onChange: function onChange(event) {\n if (!this.disabled && !this.readonly) {\n var newModelValue = this.binary ? !this.checked : this.value;\n this.$emit('update:modelValue', newModelValue);\n this.$emit('change', event);\n }\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.$emit('blur', event);\n }\n },\n computed: {\n checked: function checked() {\n return this.modelValue != null && (this.binary ? !!this.modelValue : equals(this.modelValue, this.value));\n }\n }\n};\n\nvar _hoisted_1 = [\"data-p-checked\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"id\", \"value\", \"name\", \"checked\", \"tabindex\", \"disabled\", \"readonly\", \"aria-labelledby\", \"aria-label\", \"aria-invalid\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, $options.getPTOptions('root'), {\n \"data-p-checked\": $options.checked,\n \"data-p-disabled\": _ctx.disabled\n }), [createElementVNode(\"input\", mergeProps({\n id: _ctx.inputId,\n type: \"radio\",\n \"class\": [_ctx.cx('input'), _ctx.inputClass],\n style: _ctx.inputStyle,\n value: _ctx.value,\n name: _ctx.name,\n checked: $options.checked,\n tabindex: _ctx.tabindex,\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onChange: _cache[2] || (_cache[2] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, $options.getPTOptions('input')), null, 16, _hoisted_2), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('box')\n }, $options.getPTOptions('box')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('icon')\n }, $options.getPTOptions('icon')), null, 16)], 16)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'FilterIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'FilterSlashIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'TrashIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'SortAltIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_3 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_4 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_5 = [_hoisted_1, _hoisted_2, _hoisted_3, _hoisted_4];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_5, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'SortAmountDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'SortAmountUpAltIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { FilterOperator, FilterService, FilterMatchMode } from '@primevue/core/api';\nimport { getVNodeProp, UniqueComponentId, HelperSet, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport { getFirstFocusableElement, invokeElementMethod, getAttribute, getNextElementSibling, getOuterWidth, getPreviousElementSibling, getOuterHeight, focus, addStyle, absolutePosition, isTouchDevice, getIndex, isClickable, clearSelection, findSingle, find, exportCSV, getOffset, getHiddenElementOuterWidth, getHiddenElementOuterHeight, getWindowScrollTop, removeClass, addClass, setAttribute } from '@primeuix/utils/dom';\nimport { resolveFieldData, equals, isNotEmpty, localeComparator, sort, findIndexInList, reorderArray, isEmpty } from '@primeuix/utils/object';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport DataTableStyle from 'primevue/datatable/style';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps, resolveComponent, openBlock, createBlock, withCtx, resolveDynamicComponent, normalizeClass, createCommentVNode, resolveDirective, createElementBlock, Fragment, withDirectives, createTextVNode, toDisplayString, createElementVNode, withModifiers, renderList, createVNode, Transition, withKeys, normalizeProps, renderSlot, createSlots } from 'vue';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport Checkbox from 'primevue/checkbox';\nimport RadioButton from 'primevue/radiobutton';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport FocusTrap from 'primevue/focustrap';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\n\nvar script$c = {\n name: 'BaseDataTable',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: Array,\n \"default\": null\n },\n dataKey: {\n type: [String, Function],\n \"default\": null\n },\n rows: {\n type: Number,\n \"default\": 0\n },\n first: {\n type: Number,\n \"default\": 0\n },\n totalRecords: {\n type: Number,\n \"default\": 0\n },\n paginator: {\n type: Boolean,\n \"default\": false\n },\n paginatorPosition: {\n type: String,\n \"default\": 'bottom'\n },\n alwaysShowPaginator: {\n type: Boolean,\n \"default\": true\n },\n paginatorTemplate: {\n type: [Object, String],\n \"default\": 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown'\n },\n pageLinkSize: {\n type: Number,\n \"default\": 5\n },\n rowsPerPageOptions: {\n type: Array,\n \"default\": null\n },\n currentPageReportTemplate: {\n type: String,\n \"default\": '({currentPage} of {totalPages})'\n },\n lazy: {\n type: Boolean,\n \"default\": false\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n loadingIcon: {\n type: String,\n \"default\": undefined\n },\n sortField: {\n type: [String, Function],\n \"default\": null\n },\n sortOrder: {\n type: Number,\n \"default\": null\n },\n defaultSortOrder: {\n type: Number,\n \"default\": 1\n },\n nullSortOrder: {\n type: Number,\n \"default\": 1\n },\n multiSortMeta: {\n type: Array,\n \"default\": null\n },\n sortMode: {\n type: String,\n \"default\": 'single'\n },\n removableSort: {\n type: Boolean,\n \"default\": false\n },\n filters: {\n type: Object,\n \"default\": null\n },\n filterDisplay: {\n type: String,\n \"default\": null\n },\n globalFilterFields: {\n type: Array,\n \"default\": null\n },\n filterLocale: {\n type: String,\n \"default\": undefined\n },\n selection: {\n type: [Array, Object],\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n compareSelectionBy: {\n type: String,\n \"default\": 'deepEquals'\n },\n metaKeySelection: {\n type: Boolean,\n \"default\": false\n },\n contextMenu: {\n type: Boolean,\n \"default\": false\n },\n contextMenuSelection: {\n type: Object,\n \"default\": null\n },\n selectAll: {\n type: Boolean,\n \"default\": null\n },\n rowHover: {\n type: Boolean,\n \"default\": false\n },\n csvSeparator: {\n type: String,\n \"default\": ','\n },\n exportFilename: {\n type: String,\n \"default\": 'download'\n },\n exportFunction: {\n type: Function,\n \"default\": null\n },\n resizableColumns: {\n type: Boolean,\n \"default\": false\n },\n columnResizeMode: {\n type: String,\n \"default\": 'fit'\n },\n reorderableColumns: {\n type: Boolean,\n \"default\": false\n },\n expandedRows: {\n type: [Array, Object],\n \"default\": null\n },\n expandedRowIcon: {\n type: String,\n \"default\": undefined\n },\n collapsedRowIcon: {\n type: String,\n \"default\": undefined\n },\n rowGroupMode: {\n type: String,\n \"default\": null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n expandableRowGroups: {\n type: Boolean,\n \"default\": false\n },\n expandedRowGroups: {\n type: Array,\n \"default\": null\n },\n stateStorage: {\n type: String,\n \"default\": 'session'\n },\n stateKey: {\n type: String,\n \"default\": null\n },\n editMode: {\n type: String,\n \"default\": null\n },\n editingRows: {\n type: Array,\n \"default\": null\n },\n rowClass: {\n type: Function,\n \"default\": null\n },\n rowStyle: {\n type: Function,\n \"default\": null\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n scrollHeight: {\n type: String,\n \"default\": null\n },\n frozenValue: {\n type: Array,\n \"default\": null\n },\n breakpoint: {\n type: String,\n \"default\": '960px'\n },\n showGridlines: {\n type: Boolean,\n \"default\": false\n },\n stripedRows: {\n type: Boolean,\n \"default\": false\n },\n highlightOnSelect: {\n type: Boolean,\n \"default\": false\n },\n size: {\n type: String,\n \"default\": null\n },\n tableStyle: {\n type: null,\n \"default\": null\n },\n tableClass: {\n type: [String, Object],\n \"default\": null\n },\n tableProps: {\n type: Object,\n \"default\": null\n },\n filterInputProps: {\n type: null,\n \"default\": null\n },\n filterButtonProps: {\n type: Object,\n \"default\": function _default() {\n return {\n filter: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n inline: {\n clear: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n },\n popover: {\n addRule: {\n severity: 'info',\n text: true,\n size: 'small'\n },\n removeRule: {\n severity: 'danger',\n text: true,\n size: 'small'\n },\n apply: {\n size: 'small'\n },\n clear: {\n outlined: true,\n size: 'small'\n }\n }\n };\n }\n },\n editButtonProps: {\n type: Object,\n \"default\": function _default() {\n return {\n init: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n save: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n cancel: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n };\n }\n }\n },\n style: DataTableStyle,\n provide: function provide() {\n return {\n $pcDataTable: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$b = {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": null\n }\n },\n methods: {\n getColumnPT: function getColumnPT(key) {\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange: function onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel: function checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow : undefined;\n }\n },\n components: {\n CheckIcon: CheckIcon,\n Checkbox: Checkbox\n }\n};\n\nfunction render$b(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_Checkbox = resolveComponent(\"Checkbox\");\n return openBlock(), createBlock(_component_Checkbox, {\n modelValue: $props.checked,\n binary: true,\n disabled: _ctx.$attrs.disabled,\n \"aria-label\": $options.checkboxAriaLabel,\n onChange: $options.onChange,\n unstyled: _ctx.unstyled,\n pt: $options.getColumnPT('pcRowCheckbox')\n }, {\n icon: withCtx(function (slotProps) {\n return [$props.rowCheckboxIconTemplate ? (openBlock(), createBlock(resolveDynamicComponent($props.rowCheckboxIconTemplate), {\n key: 0,\n checked: slotProps.checked,\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"checked\", \"class\"])) : !$props.rowCheckboxIconTemplate && slotProps.checked ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 1,\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcRowCheckbox')['icon']), null, 16, [\"class\"])) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 8, [\"modelValue\", \"disabled\", \"aria-label\", \"onChange\", \"unstyled\", \"pt\"]);\n}\n\nscript$b.render = render$b;\n\nvar script$a = {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n \"default\": null\n }\n },\n methods: {\n getColumnPT: function getColumnPT(key) {\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange: function onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton: RadioButton\n }\n};\n\nfunction render$a(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_RadioButton = resolveComponent(\"RadioButton\");\n return openBlock(), createBlock(_component_RadioButton, {\n modelValue: $props.checked,\n binary: true,\n disabled: _ctx.$attrs.disabled,\n name: $props.name,\n onChange: $options.onChange,\n unstyled: _ctx.unstyled,\n pt: $options.getColumnPT('pcRowRadiobutton')\n }, null, 8, [\"modelValue\", \"disabled\", \"name\", \"onChange\", \"unstyled\", \"pt\"]);\n}\n\nscript$a.render = render$a;\n\nvar script$9 = {\n name: 'BodyCell',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n \"default\": null\n },\n column: {\n type: Object,\n \"default\": null\n },\n frozenRow: {\n type: Boolean,\n \"default\": false\n },\n rowIndex: {\n type: Number,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": null\n },\n isRowExpanded: {\n type: Boolean,\n \"default\": false\n },\n selected: {\n type: Boolean,\n \"default\": false\n },\n editing: {\n type: Boolean,\n \"default\": false\n },\n editingMeta: {\n type: Object,\n \"default\": null\n },\n editMode: {\n type: String,\n \"default\": null\n },\n virtualScrollerContentProps: {\n type: Object,\n \"default\": null\n },\n ariaControls: {\n type: String,\n \"default\": null\n },\n name: {\n type: String,\n \"default\": null\n },\n expandedRowIcon: {\n type: String,\n \"default\": null\n },\n collapsedRowIcon: {\n type: String,\n \"default\": null\n },\n editButtonProps: {\n type: Object,\n \"default\": null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n data: function data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing: function editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function $dataD_editing(newValue) {\n this.$emit('editing-meta-change', {\n data: this.rowData,\n field: this.field || \"field_\".concat(this.index),\n index: this.rowIndex,\n editing: newValue\n });\n }\n },\n mounted: function mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated: function updated() {\n var _this = this;\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n if (this.d_editing && (this.editMode === 'cell' || this.editMode === 'row' && this.columnProp('rowEditor'))) {\n setTimeout(function () {\n var focusableEl = getFirstFocusableElement(_this.$el);\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount: function beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n },\n methods: {\n columnProp: function columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT: function getColumnPT(key) {\n var _this$$parentInstance, _this$$parentInstance2;\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.size,\n showGridlines: (_this$$parentInstance2 = this.$parentInstance) === null || _this$$parentInstance2 === void 0 || (_this$$parentInstance2 = _this$$parentInstance2.$parentInstance) === null || _this$$parentInstance2 === void 0 ? void 0 : _this$$parentInstance2.showGridlines\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n resolveFieldData: function resolveFieldData$1() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow: function toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio: function toggleRowWithRadio(event, index) {\n this.$emit('radio-change', {\n originalEvent: event.originalEvent,\n index: index,\n data: event.data\n });\n },\n toggleRowWithCheckbox: function toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', {\n originalEvent: event.originalEvent,\n index: index,\n data: event.data\n });\n },\n isEditable: function isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener: function bindDocumentEditListener() {\n var _this2 = this;\n if (!this.documentEditListener) {\n this.documentEditListener = function (event) {\n if (!_this2.selfClick) {\n _this2.completeEdit(event, 'outside');\n }\n _this2.selfClick = false;\n };\n document.addEventListener('click', this.documentEditListener);\n }\n },\n unbindDocumentEditListener: function unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n },\n switchCellToViewMode: function switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick: function onClick(event) {\n var _this3 = this;\n if (this.editMode === 'cell' && this.isEditable()) {\n this.selfClick = true;\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', {\n originalEvent: event,\n data: this.rowData,\n field: this.field,\n index: this.rowIndex\n });\n this.overlayEventListener = function (e) {\n if (_this3.$el && _this3.$el.contains(e.target)) {\n _this3.selfClick = true;\n }\n };\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit: function completeEdit(event, type) {\n var completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function preventDefault() {\n this.defaultPrevented = true;\n }\n };\n this.$emit('cell-edit-complete', completeEvent);\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown: function onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', {\n originalEvent: event,\n data: this.rowData,\n field: this.field,\n index: this.rowIndex\n });\n break;\n case 'Tab':\n this.completeEdit(event, 'tab');\n if (event.shiftKey) this.moveToPreviousCell(event);else this.moveToNextCell(event);\n break;\n }\n }\n },\n moveToPreviousCell: function moveToPreviousCell(event) {\n var currentCell = this.findCell(event.target);\n var targetCell = this.findPreviousEditableColumn(currentCell);\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n moveToNextCell: function moveToNextCell(event) {\n var currentCell = this.findCell(event.target);\n var targetCell = this.findNextEditableColumn(currentCell);\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell: function findCell(element) {\n if (element) {\n var cell = element;\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn: function findPreviousEditableColumn(cell) {\n var prevCell = cell.previousElementSibling;\n if (!prevCell) {\n var previousRow = cell.parentElement.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn: function findNextEditableColumn(cell) {\n var nextCell = cell.nextElementSibling;\n if (!nextCell) {\n var nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit: function onRowEditInit(event) {\n this.$emit('row-edit-init', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n },\n onRowEditSave: function onRowEditSave(event) {\n this.$emit('row-edit-save', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n },\n onRowEditCancel: function onRowEditCancel(event) {\n this.$emit('row-edit-cancel', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n },\n editorInitCallback: function editorInitCallback(event) {\n this.$emit('row-edit-init', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n },\n editorSaveCallback: function editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback: function editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', {\n originalEvent: event,\n data: this.rowData,\n field: this.field,\n index: this.rowIndex\n });\n }\n },\n updateStickyPosition: function updateStickyPosition() {\n if (this.columnProp('frozen')) {\n var align = this.columnProp('alignFrozen');\n if (align === 'right') {\n var right = 0;\n var next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n this.styleObject.right = right + 'px';\n } else {\n var left = 0;\n var prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n this.styleObject.left = left + 'px';\n }\n }\n },\n getVirtualScrollerProp: function getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData: function editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field: function field() {\n return this.columnProp('field');\n },\n containerClass: function containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle: function containerStyle() {\n var bodyStyle = this.columnProp('bodyStyle');\n var columnStyle = this.columnProp('style');\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n loading: function loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions: function loadingOptions() {\n var getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n return getLoaderOptions && getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n });\n },\n expandButtonAriaLabel: function expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow : undefined;\n },\n initButtonAriaLabel: function initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel: function saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel: function cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: script$a,\n DTCheckbox: script$b,\n Button: Button,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon,\n BarsIcon: BarsIcon,\n PencilIcon: PencilIcon,\n CheckIcon: CheckIcon,\n TimesIcon: TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof$a(o) { \"@babel/helpers - typeof\"; return _typeof$a = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$a(o); }\nfunction ownKeys$a(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty$a(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$a(e, r, t) { return (r = _toPropertyKey$a(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$a(t) { var i = _toPrimitive$a(t, \"string\"); return \"symbol\" == _typeof$a(i) ? i : i + \"\"; }\nfunction _toPrimitive$a(t, r) { if (\"object\" != _typeof$a(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$a(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1$4 = [\"colspan\", \"rowspan\", \"data-p-selection-column\", \"data-p-editable-column\", \"data-p-cell-editing\", \"data-p-frozen-column\"];\nvar _hoisted_2$2 = [\"aria-expanded\", \"aria-controls\", \"aria-label\"];\nfunction render$9(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_DTRadioButton = resolveComponent(\"DTRadioButton\");\n var _component_DTCheckbox = resolveComponent(\"DTCheckbox\");\n var _component_BarsIcon = resolveComponent(\"BarsIcon\");\n var _component_ChevronDownIcon = resolveComponent(\"ChevronDownIcon\");\n var _component_ChevronRightIcon = resolveComponent(\"ChevronRightIcon\");\n var _component_Button = resolveComponent(\"Button\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return $options.loading ? (openBlock(), createElementBlock(\"td\", mergeProps({\n key: 0,\n style: $options.containerStyle,\n \"class\": $options.containerClass,\n role: \"cell\"\n }, _objectSpread$a(_objectSpread$a({}, $options.getColumnPT('root')), $options.getColumnPT('bodyCell'))), [(openBlock(), createBlock(resolveDynamicComponent($props.column.children.loading), {\n data: $props.rowData,\n column: $props.column,\n field: $options.field,\n index: $props.rowIndex,\n frozenRow: $props.frozenRow,\n loadingOptions: $options.loadingOptions\n }, null, 8, [\"data\", \"column\", \"field\", \"index\", \"frozenRow\", \"loadingOptions\"]))], 16)) : (openBlock(), createElementBlock(\"td\", mergeProps({\n key: 1,\n style: $options.containerStyle,\n \"class\": $options.containerClass,\n colspan: $options.columnProp('colspan'),\n rowspan: $options.columnProp('rowspan'),\n onClick: _cache[3] || (_cache[3] = function () {\n return $options.onClick && $options.onClick.apply($options, arguments);\n }),\n onKeydown: _cache[4] || (_cache[4] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n role: \"cell\"\n }, _objectSpread$a(_objectSpread$a({}, $options.getColumnPT('root')), $options.getColumnPT('bodyCell')), {\n \"data-p-selection-column\": $options.columnProp('selectionMode') != null,\n \"data-p-editable-column\": $options.isEditable(),\n \"data-p-cell-editing\": $data.d_editing,\n \"data-p-frozen-column\": $options.columnProp('frozen')\n }), [$props.column.children && $props.column.children.body && !$data.d_editing ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.body), {\n key: 0,\n data: $props.rowData,\n column: $props.column,\n field: $options.field,\n index: $props.rowIndex,\n frozenRow: $props.frozenRow,\n editorInitCallback: $options.editorInitCallback,\n rowTogglerCallback: $options.toggleRow\n }, null, 8, [\"data\", \"column\", \"field\", \"index\", \"frozenRow\", \"editorInitCallback\", \"rowTogglerCallback\"])) : $props.column.children && $props.column.children.editor && $data.d_editing ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.editor), {\n key: 1,\n data: $options.editingRowData,\n column: $props.column,\n field: $options.field,\n index: $props.rowIndex,\n frozenRow: $props.frozenRow,\n editorSaveCallback: $options.editorSaveCallback,\n editorCancelCallback: $options.editorCancelCallback\n }, null, 8, [\"data\", \"column\", \"field\", \"index\", \"frozenRow\", \"editorSaveCallback\", \"editorCancelCallback\"])) : $props.column.children && $props.column.children.body && !$props.column.children.editor && $data.d_editing ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.body), {\n key: 2,\n data: $options.editingRowData,\n column: $props.column,\n field: $options.field,\n index: $props.rowIndex,\n frozenRow: $props.frozenRow\n }, null, 8, [\"data\", \"column\", \"field\", \"index\", \"frozenRow\"])) : $options.columnProp('selectionMode') ? (openBlock(), createElementBlock(Fragment, {\n key: 3\n }, [$options.columnProp('selectionMode') === 'single' ? (openBlock(), createBlock(_component_DTRadioButton, {\n key: 0,\n value: $props.rowData,\n name: $props.name,\n checked: $props.selected,\n onChange: _cache[0] || (_cache[0] = function ($event) {\n return $options.toggleRowWithRadio($event, $props.rowIndex);\n }),\n column: $props.column,\n index: $props.index,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"value\", \"name\", \"checked\", \"column\", \"index\", \"unstyled\", \"pt\"])) : $options.columnProp('selectionMode') === 'multiple' ? (openBlock(), createBlock(_component_DTCheckbox, {\n key: 1,\n value: $props.rowData,\n checked: $props.selected,\n rowCheckboxIconTemplate: $props.column.children && $props.column.children.rowcheckboxicon,\n \"aria-selected\": $props.selected ? true : undefined,\n onChange: _cache[1] || (_cache[1] = function ($event) {\n return $options.toggleRowWithCheckbox($event, $props.rowIndex);\n }),\n column: $props.column,\n index: $props.index,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"value\", \"checked\", \"rowCheckboxIconTemplate\", \"aria-selected\", \"column\", \"index\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64)) : $options.columnProp('rowReorder') ? (openBlock(), createElementBlock(Fragment, {\n key: 4\n }, [$props.column.children && $props.column.children.rowreordericon ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.rowreordericon), {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('reorderableRowHandle'))\n }, null, 8, [\"class\"])) : $options.columnProp('rowReorderIcon') ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('reorderableRowHandle'), $options.columnProp('rowReorderIcon')]\n }, $options.getColumnPT('reorderableRowHandle')), null, 16)) : (openBlock(), createBlock(_component_BarsIcon, mergeProps({\n key: 2,\n \"class\": _ctx.cx('reorderableRowHandle')\n }, $options.getColumnPT('reorderableRowHandle')), null, 16, [\"class\"]))], 64)) : $options.columnProp('expander') ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 5,\n \"class\": _ctx.cx('rowToggleButton'),\n type: \"button\",\n \"aria-expanded\": $props.isRowExpanded,\n \"aria-controls\": $props.ariaControls,\n \"aria-label\": $options.expandButtonAriaLabel,\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.toggleRow && $options.toggleRow.apply($options, arguments);\n })\n }, $options.getColumnPT('rowToggleButton'), {\n \"data-pc-group-section\": \"rowactionbutton\"\n }), [$props.column.children && $props.column.children.rowtogglericon ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.rowtogglericon), {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('rowToggleIcon')),\n rowExpanded: $props.isRowExpanded\n }, null, 8, [\"class\", \"rowExpanded\"])) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [$props.isRowExpanded && $props.expandedRowIcon ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n \"class\": normalizeClass([_ctx.cx('rowToggleIcon'), $props.expandedRowIcon])\n }, null, 2)) : $props.isRowExpanded && !$props.expandedRowIcon ? (openBlock(), createBlock(_component_ChevronDownIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('rowToggleIcon')\n }, $options.getColumnPT('rowToggleIcon')), null, 16, [\"class\"])) : !$props.isRowExpanded && $props.collapsedRowIcon ? (openBlock(), createElementBlock(\"span\", {\n key: 2,\n \"class\": normalizeClass([_ctx.cx('rowToggleIcon'), $props.collapsedRowIcon])\n }, null, 2)) : !$props.isRowExpanded && !$props.collapsedRowIcon ? (openBlock(), createBlock(_component_ChevronRightIcon, mergeProps({\n key: 3,\n \"class\": _ctx.cx('rowToggleIcon')\n }, $options.getColumnPT('rowToggleIcon')), null, 16, [\"class\"])) : createCommentVNode(\"\", true)], 64))], 16, _hoisted_2$2)), [[_directive_ripple]]) : $props.editMode === 'row' && $options.columnProp('rowEditor') ? (openBlock(), createElementBlock(Fragment, {\n key: 6\n }, [!$data.d_editing ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n \"class\": _ctx.cx('pcRowEditorInit'),\n \"aria-label\": $options.initButtonAriaLabel,\n unstyled: _ctx.unstyled,\n onClick: $options.onRowEditInit\n }, $props.editButtonProps.init, {\n pt: $options.getColumnPT('pcRowEditorInit'),\n \"data-pc-group-section\": \"rowactionbutton\"\n }), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.column.children && $props.column.children.roweditoriniticon || 'PencilIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcRowEditorInit')['icon']), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"class\", \"aria-label\", \"unstyled\", \"onClick\", \"pt\"])) : createCommentVNode(\"\", true), $data.d_editing ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 1,\n \"class\": _ctx.cx('pcRowEditorSave'),\n \"aria-label\": $options.saveButtonAriaLabel,\n unstyled: _ctx.unstyled,\n onClick: $options.onRowEditSave\n }, $props.editButtonProps.save, {\n pt: $options.getColumnPT('pcRowEditorSave'),\n \"data-pc-group-section\": \"rowactionbutton\"\n }), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.column.children && $props.column.children.roweditorsaveicon || 'CheckIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcRowEditorSave')['icon']), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"class\", \"aria-label\", \"unstyled\", \"onClick\", \"pt\"])) : createCommentVNode(\"\", true), $data.d_editing ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 2,\n \"class\": _ctx.cx('pcRowEditorCancel'),\n \"aria-label\": $options.cancelButtonAriaLabel,\n unstyled: _ctx.unstyled,\n onClick: $options.onRowEditCancel\n }, $props.editButtonProps.cancel, {\n pt: $options.getColumnPT('pcRowEditorCancel'),\n \"data-pc-group-section\": \"rowactionbutton\"\n }), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.column.children && $props.column.children.roweditorcancelicon || 'TimesIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcRowEditorCancel')['icon']), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"class\", \"aria-label\", \"unstyled\", \"onClick\", \"pt\"])) : createCommentVNode(\"\", true)], 64)) : (openBlock(), createElementBlock(Fragment, {\n key: 7\n }, [createTextVNode(toDisplayString($options.resolveFieldData()), 1)], 64))], 16, _hoisted_1$4));\n}\n\nscript$9.render = render$9;\n\nfunction _typeof$9(o) { \"@babel/helpers - typeof\"; return _typeof$9 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$9(o); }\nfunction _createForOfIteratorHelper$2(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray$2(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray$2(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$2(r, a) : void 0; } }\nfunction _arrayLikeToArray$2(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys$9(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty$9(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$9(e, r, t) { return (r = _toPropertyKey$9(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$9(t) { var i = _toPrimitive$9(t, \"string\"); return \"symbol\" == _typeof$9(i) ? i : i + \"\"; }\nfunction _toPrimitive$9(t, r) { if (\"object\" != _typeof$9(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$9(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script$8 = {\n name: 'BodyRow',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['rowgroup-toggle', 'row-click', 'row-dblclick', 'row-rightclick', 'row-touchend', 'row-keydown', 'row-mousedown', 'row-dragstart', 'row-dragover', 'row-dragleave', 'row-dragend', 'row-drop', 'row-toggle', 'radio-change', 'checkbox-change', 'cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": 0\n },\n value: {\n type: Array,\n \"default\": null\n },\n columns: {\n type: null,\n \"default\": null\n },\n frozenRow: {\n type: Boolean,\n \"default\": false\n },\n empty: {\n type: Boolean,\n \"default\": false\n },\n rowGroupMode: {\n type: String,\n \"default\": null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n expandableRowGroups: {\n type: Boolean,\n \"default\": false\n },\n expandedRowGroups: {\n type: Array,\n \"default\": null\n },\n first: {\n type: Number,\n \"default\": 0\n },\n dataKey: {\n type: [String, Function],\n \"default\": null\n },\n expandedRowIcon: {\n type: String,\n \"default\": null\n },\n collapsedRowIcon: {\n type: String,\n \"default\": null\n },\n expandedRows: {\n type: [Array, Object],\n \"default\": null\n },\n selection: {\n type: [Array, Object],\n \"default\": null\n },\n selectionKeys: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n contextMenu: {\n type: Boolean,\n \"default\": false\n },\n contextMenuSelection: {\n type: Object,\n \"default\": null\n },\n rowClass: {\n type: null,\n \"default\": null\n },\n rowStyle: {\n type: null,\n \"default\": null\n },\n rowGroupHeaderStyle: {\n type: null,\n \"default\": null\n },\n editMode: {\n type: String,\n \"default\": null\n },\n compareSelectionBy: {\n type: String,\n \"default\": 'deepEquals'\n },\n editingRows: {\n type: Array,\n \"default\": null\n },\n editingRowKeys: {\n type: null,\n \"default\": null\n },\n editingMeta: {\n type: Object,\n \"default\": null\n },\n templates: {\n type: null,\n \"default\": null\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n editButtonProps: {\n type: Object,\n \"default\": null\n },\n virtualScrollerContentProps: {\n type: Object,\n \"default\": null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n \"default\": false\n },\n expandedRowId: {\n type: String,\n \"default\": null\n },\n nameAttributeSelector: {\n type: String,\n \"default\": null\n }\n },\n data: function data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler: function handler(newValue) {\n var _this = this;\n this.d_rowExpanded = this.dataKey ? (newValue === null || newValue === void 0 ? void 0 : newValue[resolveFieldData(this.rowData, this.dataKey)]) !== undefined : newValue === null || newValue === void 0 ? void 0 : newValue.some(function (d) {\n return _this.equals(_this.rowData, d);\n });\n }\n }\n },\n methods: {\n columnProp: function columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT: function getColumnPT(key) {\n var columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions: function getBodyRowPTOptions(key) {\n var _this$$parentInstance;\n var datatable = (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.$parentInstance;\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: (datatable === null || datatable === void 0 ? void 0 : datatable.rowHover) || (datatable === null || datatable === void 0 ? void 0 : datatable.selectionMode),\n selected: this.isSelected,\n stripedRows: (datatable === null || datatable === void 0 ? void 0 : datatable.stripedRows) || false\n }\n });\n },\n shouldRenderBodyCell: function shouldRenderBodyCell(column) {\n var isHidden = this.columnProp(column, 'hidden');\n if (this.rowGroupMode && !isHidden) {\n var field = this.columnProp(column, 'field');\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n var prevRowData = this.value[this.rowIndex - 1];\n if (prevRowData) {\n var currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n var previousRowFieldData = resolveFieldData(prevRowData, field);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize: function calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n var index = this.rowIndex;\n var field = this.columnProp(column, 'field');\n var currentRowFieldData = resolveFieldData(this.value[index], field);\n var nextRowFieldData = currentRowFieldData;\n var groupRowSpan = 0;\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n var nextRowData = this.value[++index];\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped: function isGrouped(column) {\n var field = this.columnProp(column, 'field');\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection: function findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex: function findIndex(data, collection) {\n var index = -1;\n if (collection && collection.length) {\n for (var i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n return index;\n },\n equals: function equals$1(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle: function onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n onRowClick: function onRowClick(event) {\n this.$emit('row-click', {\n originalEvent: event,\n data: this.rowData,\n index: this.rowIndex\n });\n },\n onRowDblClick: function onRowDblClick(event) {\n this.$emit('row-dblclick', {\n originalEvent: event,\n data: this.rowData,\n index: this.rowIndex\n });\n },\n onRowRightClick: function onRowRightClick(event) {\n this.$emit('row-rightclick', {\n originalEvent: event,\n data: this.rowData,\n index: this.rowIndex\n });\n },\n onRowTouchEnd: function onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown: function onRowKeyDown(event) {\n this.$emit('row-keydown', {\n originalEvent: event,\n data: this.rowData,\n index: this.rowIndex\n });\n },\n onRowMouseDown: function onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart: function onRowDragStart(event) {\n this.$emit('row-dragstart', {\n originalEvent: event,\n index: this.rowIndex\n });\n },\n onRowDragOver: function onRowDragOver(event) {\n this.$emit('row-dragover', {\n originalEvent: event,\n index: this.rowIndex\n });\n },\n onRowDragLeave: function onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd: function onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop: function onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle: function onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n this.$emit('row-toggle', _objectSpread$9(_objectSpread$9({}, event), {}, {\n expanded: this.d_rowExpanded\n }));\n },\n onRadioChange: function onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange: function onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit: function onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete: function onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel: function onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit: function onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave: function onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel: function onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange: function onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp: function getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex: function rowIndex() {\n var getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles: function rowStyles() {\n var _this$rowStyle;\n return (_this$rowStyle = this.rowStyle) === null || _this$rowStyle === void 0 ? void 0 : _this$rowStyle.call(this, this.rowData);\n },\n rowClasses: function rowClasses() {\n var rowStyleClass = [];\n var columnSelectionMode = null;\n if (this.rowClass) {\n var rowClassValue = this.rowClass(this.rowData);\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n if (this.columns) {\n var _iterator = _createForOfIteratorHelper$2(this.columns),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var col = _step.value;\n var _selectionMode = this.columnProp(col, 'selectionMode');\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n return [this.cx('row', {\n rowData: this.rowData,\n index: this.rowIndex,\n columnSelectionMode: columnSelectionMode\n }), rowStyleClass];\n },\n rowTabindex: function rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n return -1;\n },\n isRowEditing: function isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n return false;\n },\n isRowGroupExpanded: function isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n var groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n return false;\n },\n isSelected: function isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;else return this.equals(this.rowData, this.selection);\n }\n }\n return false;\n },\n isSelectedWithContextMenu: function isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n return false;\n },\n shouldRenderRowGroupHeader: function shouldRenderRowGroupHeader() {\n var currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n var prevRowData = this.value[this.rowIndex - 1];\n if (prevRowData) {\n var previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter: function shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n var currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n var nextRowData = this.value[this.rowIndex + 1];\n if (nextRowData) {\n var nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength: function columnsLength() {\n var _this2 = this;\n if (this.columns) {\n var hiddenColLength = 0;\n this.columns.forEach(function (column) {\n if (_this2.columnProp(column, 'selectionMode') === 'single') hiddenColLength--;\n if (_this2.columnProp(column, 'hidden')) hiddenColLength++;\n });\n return this.columns.length - hiddenColLength;\n }\n return 0;\n }\n },\n components: {\n DTBodyCell: script$9,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n\nfunction _typeof$8(o) { \"@babel/helpers - typeof\"; return _typeof$8 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$8(o); }\nfunction ownKeys$8(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty$8(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$8(e, r, t) { return (r = _toPropertyKey$8(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$8(t) { var i = _toPrimitive$8(t, \"string\"); return \"symbol\" == _typeof$8(i) ? i : i + \"\"; }\nfunction _toPrimitive$8(t, r) { if (\"object\" != _typeof$8(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$8(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1$3 = [\"colspan\"];\nvar _hoisted_2$1 = [\"tabindex\", \"aria-selected\", \"data-p-index\", \"data-p-selectable-row\", \"data-p-selected\", \"data-p-selected-contextmenu\"];\nvar _hoisted_3 = [\"id\"];\nvar _hoisted_4 = [\"colspan\"];\nvar _hoisted_5 = [\"colspan\"];\nvar _hoisted_6 = [\"colspan\"];\nfunction render$8(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_ChevronDownIcon = resolveComponent(\"ChevronDownIcon\");\n var _component_ChevronRightIcon = resolveComponent(\"ChevronRightIcon\");\n var _component_DTBodyCell = resolveComponent(\"DTBodyCell\");\n return !$props.empty ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [$props.templates['groupheader'] && $props.rowGroupMode === 'subheader' && $options.shouldRenderRowGroupHeader ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('rowGroupHeader'),\n style: $props.rowGroupHeaderStyle,\n role: \"row\"\n }, _ctx.ptm('rowGroupHeader')), [createElementVNode(\"td\", mergeProps({\n colspan: $options.columnsLength - 1\n }, _objectSpread$8(_objectSpread$8({}, $options.getColumnPT('bodycell')), _ctx.ptm('rowGroupHeaderCell'))), [$props.expandableRowGroups ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('rowToggleButton'),\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onRowGroupToggle && $options.onRowGroupToggle.apply($options, arguments);\n }),\n type: \"button\"\n }, _ctx.ptm('rowToggleButton')), [$props.templates['rowtoggleicon'] || $props.templates['rowgrouptogglericon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['rowtoggleicon'] || $props.templates['rowgrouptogglericon']), {\n key: 0,\n expanded: $options.isRowGroupExpanded\n }, null, 8, [\"expanded\"])) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [$options.isRowGroupExpanded && $props.expandedRowIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('rowToggleIcon'), $props.expandedRowIcon]\n }, _ctx.ptm('rowToggleIcon')), null, 16)) : $options.isRowGroupExpanded && !$props.expandedRowIcon ? (openBlock(), createBlock(_component_ChevronDownIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('rowToggleIcon')\n }, _ctx.ptm('rowToggleIcon')), null, 16, [\"class\"])) : !$options.isRowGroupExpanded && $props.collapsedRowIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": [_ctx.cx('rowToggleIcon'), $props.collapsedRowIcon]\n }, _ctx.ptm('rowToggleIcon')), null, 16)) : !$options.isRowGroupExpanded && !$props.collapsedRowIcon ? (openBlock(), createBlock(_component_ChevronRightIcon, mergeProps({\n key: 3,\n \"class\": _ctx.cx('rowToggleIcon')\n }, _ctx.ptm('rowToggleIcon')), null, 16, [\"class\"])) : createCommentVNode(\"\", true)], 64))], 16)) : createCommentVNode(\"\", true), (openBlock(), createBlock(resolveDynamicComponent($props.templates['groupheader']), {\n data: $props.rowData,\n index: $options.rowIndex\n }, null, 8, [\"data\", \"index\"]))], 16, _hoisted_1$3)], 16)) : createCommentVNode(\"\", true), ($props.expandableRowGroups ? $options.isRowGroupExpanded : true) ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 1,\n \"class\": $options.rowClasses,\n style: $options.rowStyles,\n tabindex: $options.rowTabindex,\n role: \"row\",\n \"aria-selected\": $props.selectionMode ? $options.isSelected : null,\n onClick: _cache[1] || (_cache[1] = function () {\n return $options.onRowClick && $options.onRowClick.apply($options, arguments);\n }),\n onDblclick: _cache[2] || (_cache[2] = function () {\n return $options.onRowDblClick && $options.onRowDblClick.apply($options, arguments);\n }),\n onContextmenu: _cache[3] || (_cache[3] = function () {\n return $options.onRowRightClick && $options.onRowRightClick.apply($options, arguments);\n }),\n onTouchend: _cache[4] || (_cache[4] = function () {\n return $options.onRowTouchEnd && $options.onRowTouchEnd.apply($options, arguments);\n }),\n onKeydown: _cache[5] || (_cache[5] = withModifiers(function () {\n return $options.onRowKeyDown && $options.onRowKeyDown.apply($options, arguments);\n }, [\"self\"])),\n onMousedown: _cache[6] || (_cache[6] = function () {\n return $options.onRowMouseDown && $options.onRowMouseDown.apply($options, arguments);\n }),\n onDragstart: _cache[7] || (_cache[7] = function () {\n return $options.onRowDragStart && $options.onRowDragStart.apply($options, arguments);\n }),\n onDragover: _cache[8] || (_cache[8] = function () {\n return $options.onRowDragOver && $options.onRowDragOver.apply($options, arguments);\n }),\n onDragleave: _cache[9] || (_cache[9] = function () {\n return $options.onRowDragLeave && $options.onRowDragLeave.apply($options, arguments);\n }),\n onDragend: _cache[10] || (_cache[10] = function () {\n return $options.onRowDragEnd && $options.onRowDragEnd.apply($options, arguments);\n }),\n onDrop: _cache[11] || (_cache[11] = function () {\n return $options.onRowDrop && $options.onRowDrop.apply($options, arguments);\n })\n }, $options.getBodyRowPTOptions('bodyRow'), {\n \"data-p-index\": $options.rowIndex,\n \"data-p-selectable-row\": $props.selectionMode ? true : false,\n \"data-p-selected\": $props.selection && $options.isSelected,\n \"data-p-selected-contextmenu\": $props.contextMenuSelection && $options.isSelectedWithContextMenu\n }), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, function (col, i) {\n return openBlock(), createElementBlock(Fragment, null, [$options.shouldRenderBodyCell(col) ? (openBlock(), createBlock(_component_DTBodyCell, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || i,\n rowData: $props.rowData,\n column: col,\n rowIndex: $options.rowIndex,\n index: i,\n selected: $options.isSelected,\n frozenRow: $props.frozenRow,\n rowspan: $props.rowGroupMode === 'rowspan' ? $options.calculateRowGroupSize(col) : null,\n editMode: $props.editMode,\n editing: $props.editMode === 'row' && $options.isRowEditing,\n editingMeta: $props.editingMeta,\n virtualScrollerContentProps: $props.virtualScrollerContentProps,\n ariaControls: $props.expandedRowId + '_' + $options.rowIndex + '_expansion',\n name: $props.nameAttributeSelector,\n isRowExpanded: $data.d_rowExpanded,\n expandedRowIcon: $props.expandedRowIcon,\n collapsedRowIcon: $props.collapsedRowIcon,\n editButtonProps: $props.editButtonProps,\n onRadioChange: $options.onRadioChange,\n onCheckboxChange: $options.onCheckboxChange,\n onRowToggle: $options.onRowToggle,\n onCellEditInit: $options.onCellEditInit,\n onCellEditComplete: $options.onCellEditComplete,\n onCellEditCancel: $options.onCellEditCancel,\n onRowEditInit: $options.onRowEditInit,\n onRowEditSave: $options.onRowEditSave,\n onRowEditCancel: $options.onRowEditCancel,\n onEditingMetaChange: $options.onEditingMetaChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"rowData\", \"column\", \"rowIndex\", \"index\", \"selected\", \"frozenRow\", \"rowspan\", \"editMode\", \"editing\", \"editingMeta\", \"virtualScrollerContentProps\", \"ariaControls\", \"name\", \"isRowExpanded\", \"expandedRowIcon\", \"collapsedRowIcon\", \"editButtonProps\", \"onRadioChange\", \"onCheckboxChange\", \"onRowToggle\", \"onCellEditInit\", \"onCellEditComplete\", \"onCellEditCancel\", \"onRowEditInit\", \"onRowEditSave\", \"onRowEditCancel\", \"onEditingMetaChange\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 256))], 16, _hoisted_2$1)) : createCommentVNode(\"\", true), $props.templates['expansion'] && $props.expandedRows && $data.d_rowExpanded ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 2,\n id: $props.expandedRowId + '_' + $options.rowIndex + '_expansion',\n \"class\": _ctx.cx('rowExpansion'),\n role: \"row\"\n }, _ctx.ptm('rowExpansion')), [createElementVNode(\"td\", mergeProps({\n colspan: $options.columnsLength\n }, _objectSpread$8(_objectSpread$8({}, $options.getColumnPT('bodycell')), _ctx.ptm('rowExpansionCell'))), [(openBlock(), createBlock(resolveDynamicComponent($props.templates['expansion']), {\n data: $props.rowData,\n index: $options.rowIndex\n }, null, 8, [\"data\", \"index\"]))], 16, _hoisted_4)], 16, _hoisted_3)) : createCommentVNode(\"\", true), $props.templates['groupfooter'] && $props.rowGroupMode === 'subheader' && $options.shouldRenderRowGroupFooter ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 3,\n \"class\": _ctx.cx('rowGroupFooter'),\n role: \"row\"\n }, _ctx.ptm('rowGroupFooter')), [createElementVNode(\"td\", mergeProps({\n colspan: $options.columnsLength - 1\n }, _objectSpread$8(_objectSpread$8({}, $options.getColumnPT('bodycell')), _ctx.ptm('rowGroupFooterCell'))), [(openBlock(), createBlock(resolveDynamicComponent($props.templates['groupfooter']), {\n data: $props.rowData,\n index: $options.rowIndex\n }, null, 8, [\"data\", \"index\"]))], 16, _hoisted_5)], 16)) : createCommentVNode(\"\", true)], 64)) : (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"row\"\n }, _ctx.ptm('emptyMessage')), [createElementVNode(\"td\", mergeProps({\n colspan: $options.columnsLength\n }, _objectSpread$8(_objectSpread$8({}, $options.getColumnPT('bodycell')), _ctx.ptm('emptyMessageCell'))), [$props.templates.empty ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.empty), {\n key: 0\n })) : createCommentVNode(\"\", true)], 16, _hoisted_6)], 16));\n}\n\nscript$8.render = render$8;\n\nvar script$7 = {\n name: 'TableBody',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['rowgroup-toggle', 'row-click', 'row-dblclick', 'row-rightclick', 'row-touchend', 'row-keydown', 'row-mousedown', 'row-dragstart', 'row-dragover', 'row-dragleave', 'row-dragend', 'row-drop', 'row-toggle', 'radio-change', 'checkbox-change', 'cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'editing-meta-change'],\n props: {\n value: {\n type: Array,\n \"default\": null\n },\n columns: {\n type: null,\n \"default\": null\n },\n frozenRow: {\n type: Boolean,\n \"default\": false\n },\n empty: {\n type: Boolean,\n \"default\": false\n },\n rowGroupMode: {\n type: String,\n \"default\": null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n expandableRowGroups: {\n type: Boolean,\n \"default\": false\n },\n expandedRowGroups: {\n type: Array,\n \"default\": null\n },\n first: {\n type: Number,\n \"default\": 0\n },\n dataKey: {\n type: [String, Function],\n \"default\": null\n },\n expandedRowIcon: {\n type: String,\n \"default\": null\n },\n collapsedRowIcon: {\n type: String,\n \"default\": null\n },\n expandedRows: {\n type: [Array, Object],\n \"default\": null\n },\n selection: {\n type: [Array, Object],\n \"default\": null\n },\n selectionKeys: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n contextMenu: {\n type: Boolean,\n \"default\": false\n },\n contextMenuSelection: {\n type: Object,\n \"default\": null\n },\n rowClass: {\n type: null,\n \"default\": null\n },\n rowStyle: {\n type: null,\n \"default\": null\n },\n editMode: {\n type: String,\n \"default\": null\n },\n compareSelectionBy: {\n type: String,\n \"default\": 'deepEquals'\n },\n editingRows: {\n type: Array,\n \"default\": null\n },\n editingRowKeys: {\n type: null,\n \"default\": null\n },\n editingMeta: {\n type: Object,\n \"default\": null\n },\n templates: {\n type: null,\n \"default\": null\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n editButtonProps: {\n type: Object,\n \"default\": null\n },\n virtualScrollerContentProps: {\n type: Object,\n \"default\": null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted: function mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated: function updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey: function getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition: function updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition: function updateFrozenRowGroupHeaderStickyPosition() {\n var tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp: function getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n return options ? options[option] : null;\n },\n bodyRef: function bodyRef(el) {\n // For VirtualScroller\n var contentRef = this.getVirtualScrollerProp('contentRef');\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle: function rowGroupHeaderStyle() {\n if (this.scrollable) {\n return {\n top: this.rowGroupHeaderStyleObject.top\n };\n }\n return null;\n },\n bodyContentStyle: function bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions: function ptmTBodyOptions() {\n var _this$$parentInstance;\n return {\n context: {\n scrollable: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.scrollable\n }\n };\n },\n expandedRowId: function expandedRowId() {\n return UniqueComponentId();\n },\n nameAttributeSelector: function nameAttributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n DTBodyRow: script$8\n }\n};\n\nfunction render$7(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_DTBodyRow = resolveComponent(\"DTBodyRow\");\n return openBlock(), createElementBlock(\"tbody\", mergeProps({\n ref: $options.bodyRef,\n \"class\": _ctx.cx('tbody'),\n role: \"rowgroup\",\n style: $options.bodyContentStyle\n }, _ctx.ptm('tbody', $options.ptmTBodyOptions)), [!$props.empty ? (openBlock(true), createElementBlock(Fragment, {\n key: 0\n }, renderList($props.value, function (rowData, rowIndex) {\n return openBlock(), createBlock(_component_DTBodyRow, {\n key: $options.getRowKey(rowData, rowIndex),\n rowData: rowData,\n index: rowIndex,\n value: $props.value,\n columns: $props.columns,\n frozenRow: $props.frozenRow,\n empty: $props.empty,\n first: $props.first,\n dataKey: $props.dataKey,\n selection: $props.selection,\n selectionKeys: $props.selectionKeys,\n selectionMode: $props.selectionMode,\n contextMenu: $props.contextMenu,\n contextMenuSelection: $props.contextMenuSelection,\n rowGroupMode: $props.rowGroupMode,\n groupRowsBy: $props.groupRowsBy,\n expandableRowGroups: $props.expandableRowGroups,\n rowClass: $props.rowClass,\n rowStyle: $props.rowStyle,\n editMode: $props.editMode,\n compareSelectionBy: $props.compareSelectionBy,\n scrollable: $props.scrollable,\n expandedRowIcon: $props.expandedRowIcon,\n collapsedRowIcon: $props.collapsedRowIcon,\n expandedRows: $props.expandedRows,\n expandedRowGroups: $props.expandedRowGroups,\n editingRows: $props.editingRows,\n editingRowKeys: $props.editingRowKeys,\n templates: $props.templates,\n editButtonProps: $props.editButtonProps,\n virtualScrollerContentProps: $props.virtualScrollerContentProps,\n isVirtualScrollerDisabled: $props.isVirtualScrollerDisabled,\n editingMeta: $props.editingMeta,\n rowGroupHeaderStyle: $options.rowGroupHeaderStyle,\n expandedRowId: $options.expandedRowId,\n nameAttributeSelector: $options.nameAttributeSelector,\n onRowgroupToggle: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('rowgroup-toggle', $event);\n }),\n onRowClick: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('row-click', $event);\n }),\n onRowDblclick: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('row-dblclick', $event);\n }),\n onRowRightclick: _cache[3] || (_cache[3] = function ($event) {\n return _ctx.$emit('row-rightclick', $event);\n }),\n onRowTouchend: _cache[4] || (_cache[4] = function ($event) {\n return _ctx.$emit('row-touchend', $event);\n }),\n onRowKeydown: _cache[5] || (_cache[5] = function ($event) {\n return _ctx.$emit('row-keydown', $event);\n }),\n onRowMousedown: _cache[6] || (_cache[6] = function ($event) {\n return _ctx.$emit('row-mousedown', $event);\n }),\n onRowDragstart: _cache[7] || (_cache[7] = function ($event) {\n return _ctx.$emit('row-dragstart', $event);\n }),\n onRowDragover: _cache[8] || (_cache[8] = function ($event) {\n return _ctx.$emit('row-dragover', $event);\n }),\n onRowDragleave: _cache[9] || (_cache[9] = function ($event) {\n return _ctx.$emit('row-dragleave', $event);\n }),\n onRowDragend: _cache[10] || (_cache[10] = function ($event) {\n return _ctx.$emit('row-dragend', $event);\n }),\n onRowDrop: _cache[11] || (_cache[11] = function ($event) {\n return _ctx.$emit('row-drop', $event);\n }),\n onRowToggle: _cache[12] || (_cache[12] = function ($event) {\n return _ctx.$emit('row-toggle', $event);\n }),\n onRadioChange: _cache[13] || (_cache[13] = function ($event) {\n return _ctx.$emit('radio-change', $event);\n }),\n onCheckboxChange: _cache[14] || (_cache[14] = function ($event) {\n return _ctx.$emit('checkbox-change', $event);\n }),\n onCellEditInit: _cache[15] || (_cache[15] = function ($event) {\n return _ctx.$emit('cell-edit-init', $event);\n }),\n onCellEditComplete: _cache[16] || (_cache[16] = function ($event) {\n return _ctx.$emit('cell-edit-complete', $event);\n }),\n onCellEditCancel: _cache[17] || (_cache[17] = function ($event) {\n return _ctx.$emit('cell-edit-cancel', $event);\n }),\n onRowEditInit: _cache[18] || (_cache[18] = function ($event) {\n return _ctx.$emit('row-edit-init', $event);\n }),\n onRowEditSave: _cache[19] || (_cache[19] = function ($event) {\n return _ctx.$emit('row-edit-save', $event);\n }),\n onRowEditCancel: _cache[20] || (_cache[20] = function ($event) {\n return _ctx.$emit('row-edit-cancel', $event);\n }),\n onEditingMetaChange: _cache[21] || (_cache[21] = function ($event) {\n return _ctx.$emit('editing-meta-change', $event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"rowData\", \"index\", \"value\", \"columns\", \"frozenRow\", \"empty\", \"first\", \"dataKey\", \"selection\", \"selectionKeys\", \"selectionMode\", \"contextMenu\", \"contextMenuSelection\", \"rowGroupMode\", \"groupRowsBy\", \"expandableRowGroups\", \"rowClass\", \"rowStyle\", \"editMode\", \"compareSelectionBy\", \"scrollable\", \"expandedRowIcon\", \"collapsedRowIcon\", \"expandedRows\", \"expandedRowGroups\", \"editingRows\", \"editingRowKeys\", \"templates\", \"editButtonProps\", \"virtualScrollerContentProps\", \"isVirtualScrollerDisabled\", \"editingMeta\", \"rowGroupHeaderStyle\", \"expandedRowId\", \"nameAttributeSelector\", \"unstyled\", \"pt\"]);\n }), 128)) : (openBlock(), createBlock(_component_DTBodyRow, {\n key: 1,\n empty: $props.empty,\n columns: $props.columns,\n templates: $props.templates\n }, null, 8, [\"empty\", \"columns\", \"templates\"]))], 16);\n}\n\nscript$7.render = render$7;\n\nvar script$6 = {\n name: 'FooterCell',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n props: {\n column: {\n type: Object,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": null\n }\n },\n data: function data() {\n return {\n styleObject: {}\n };\n },\n mounted: function mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated: function updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp: function columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT: function getColumnPT(key) {\n var _this$$parentInstance, _this$$parentInstance2;\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.size,\n showGridlines: ((_this$$parentInstance2 = this.$parentInstance) === null || _this$$parentInstance2 === void 0 || (_this$$parentInstance2 = _this$$parentInstance2.$parentInstance) === null || _this$$parentInstance2 === void 0 ? void 0 : _this$$parentInstance2.showGridlines) || false\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition: function updateStickyPosition() {\n if (this.columnProp('frozen')) {\n var align = this.columnProp('alignFrozen');\n if (align === 'right') {\n var right = 0;\n var next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n this.styleObject.right = right + 'px';\n } else {\n var left = 0;\n var prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n this.styleObject.left = left + 'px';\n }\n }\n }\n },\n computed: {\n containerClass: function containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle: function containerStyle() {\n var bodyStyle = this.columnProp('footerStyle');\n var columnStyle = this.columnProp('style');\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n\nfunction _typeof$7(o) { \"@babel/helpers - typeof\"; return _typeof$7 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$7(o); }\nfunction ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty$7(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$7(e, r, t) { return (r = _toPropertyKey$7(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$7(t) { var i = _toPrimitive$7(t, \"string\"); return \"symbol\" == _typeof$7(i) ? i : i + \"\"; }\nfunction _toPrimitive$7(t, r) { if (\"object\" != _typeof$7(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$7(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1$2 = [\"colspan\", \"rowspan\", \"data-p-frozen-column\"];\nfunction render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"td\", mergeProps({\n style: $options.containerStyle,\n \"class\": $options.containerClass,\n role: \"cell\",\n colspan: $options.columnProp('colspan'),\n rowspan: $options.columnProp('rowspan')\n }, _objectSpread$7(_objectSpread$7({}, $options.getColumnPT('root')), $options.getColumnPT('footerCell')), {\n \"data-p-frozen-column\": $options.columnProp('frozen')\n }), [$props.column.children && $props.column.children.footer ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.footer), {\n key: 0,\n column: $props.column\n }, null, 8, [\"column\"])) : createCommentVNode(\"\", true), $options.columnProp('footer') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('columnFooter')\n }, $options.getColumnPT('columnFooter')), toDisplayString($options.columnProp('footer')), 17)) : createCommentVNode(\"\", true)], 16, _hoisted_1$2);\n}\n\nscript$6.render = render$6;\n\nfunction _createForOfIteratorHelper$1(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray$1(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray$1(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; } }\nfunction _arrayLikeToArray$1(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script$5 = {\n name: 'TableFooter',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n props: {\n columnGroup: {\n type: null,\n \"default\": null\n },\n columns: {\n type: Object,\n \"default\": null\n }\n },\n provide: function provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data: function data() {\n return {\n d_footerRows: new HelperSet({\n type: 'Row'\n }),\n d_footerColumns: new HelperSet({\n type: 'Column'\n })\n };\n },\n beforeUnmount: function beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp: function columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT: function getColumnGroupPT(key) {\n var columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n return mergeProps(this.ptm(\"columnGroup.\".concat(key), {\n columnGroup: columnGroupMetaData\n }), this.ptm(\"columnGroup.\".concat(key), columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps: function getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT: function getRowPT(row, key, index) {\n var rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: index\n }\n };\n return mergeProps(this.ptm(\"row.\".concat(key), {\n row: rowMetaData\n }), this.ptm(\"row.\".concat(key), rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp: function getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows: function getFooterRows() {\n var _this$d_footerRows;\n return (_this$d_footerRows = this.d_footerRows) === null || _this$d_footerRows === void 0 ? void 0 : _this$d_footerRows.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns: function getFooterColumns(row) {\n var _this$d_footerColumns;\n return (_this$d_footerColumns = this.d_footerColumns) === null || _this$d_footerColumns === void 0 ? void 0 : _this$d_footerColumns.get(row, row.children);\n }\n },\n computed: {\n hasFooter: function hasFooter() {\n var hasFooter = false;\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\n var _iterator = _createForOfIteratorHelper$1(this.columns),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var col = _step.value;\n if (this.columnProp(col, 'footer') || col.children && col.children.footer) {\n hasFooter = true;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n return hasFooter;\n },\n ptmTFootOptions: function ptmTFootOptions() {\n var _this$$parentInstance;\n return {\n context: {\n scrollable: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: script$6\n }\n};\n\nfunction _typeof$6(o) { \"@babel/helpers - typeof\"; return _typeof$6 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$6(o); }\nfunction ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty$6(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$6(e, r, t) { return (r = _toPropertyKey$6(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$6(t) { var i = _toPrimitive$6(t, \"string\"); return \"symbol\" == _typeof$6(i) ? i : i + \"\"; }\nfunction _toPrimitive$6(t, r) { if (\"object\" != _typeof$6(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$6(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render$5(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_DTFooterCell = resolveComponent(\"DTFooterCell\");\n return $options.hasFooter ? (openBlock(), createElementBlock(\"tfoot\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('tfoot'),\n style: _ctx.sx('tfoot'),\n role: \"rowgroup\"\n }, $props.columnGroup ? _objectSpread$6(_objectSpread$6({}, _ctx.ptm('tfoot', $options.ptmTFootOptions)), $options.getColumnGroupPT('root')) : _ctx.ptm('tfoot', $options.ptmTFootOptions), {\n \"data-pc-section\": \"tfoot\"\n }), [!$props.columnGroup ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 0,\n role: \"row\"\n }, _ctx.ptm('footerRow')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, function (col, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || i\n }, [!$options.columnProp(col, 'hidden') ? (openBlock(), createBlock(_component_DTFooterCell, {\n key: 0,\n column: col,\n pt: _ctx.pt\n }, null, 8, [\"column\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16)) : (openBlock(true), createElementBlock(Fragment, {\n key: 1\n }, renderList($options.getFooterRows(), function (row, i) {\n return openBlock(), createElementBlock(\"tr\", mergeProps({\n key: i,\n role: \"row\",\n ref_for: true\n }, _objectSpread$6(_objectSpread$6({}, _ctx.ptm('footerRow')), $options.getRowPT(row, 'root', i))), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.getFooterColumns(row), function (col, j) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || j\n }, [!$options.columnProp(col, 'hidden') ? (openBlock(), createBlock(_component_DTFooterCell, {\n key: 0,\n column: col,\n index: i,\n pt: _ctx.pt\n }, null, 8, [\"column\", \"index\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n }), 128))], 16)) : createCommentVNode(\"\", true);\n}\n\nscript$5.render = render$5;\n\nfunction _typeof$5(o) { \"@babel/helpers - typeof\"; return _typeof$5 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$5(o); }\nfunction ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty$5(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$5(e, r, t) { return (r = _toPropertyKey$5(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$5(t) { var i = _toPrimitive$5(t, \"string\"); return \"symbol\" == _typeof$5(i) ? i : i + \"\"; }\nfunction _toPrimitive$5(t, r) { if (\"object\" != _typeof$5(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$5(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script$4 = {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n \"default\": null\n },\n type: {\n type: String,\n \"default\": 'text'\n },\n display: {\n type: String,\n \"default\": null\n },\n showMenu: {\n type: Boolean,\n \"default\": true\n },\n matchMode: {\n type: String,\n \"default\": null\n },\n showOperator: {\n type: Boolean,\n \"default\": true\n },\n showClearButton: {\n type: Boolean,\n \"default\": true\n },\n showApplyButton: {\n type: Boolean,\n \"default\": true\n },\n showMatchModes: {\n type: Boolean,\n \"default\": true\n },\n showAddButton: {\n type: Boolean,\n \"default\": true\n },\n matchModeOptions: {\n type: Array,\n \"default\": null\n },\n maxConstraints: {\n type: Number,\n \"default\": 2\n },\n filterElement: {\n type: Function,\n \"default\": null\n },\n filterHeaderTemplate: {\n type: Function,\n \"default\": null\n },\n filterFooterTemplate: {\n type: Function,\n \"default\": null\n },\n filterClearTemplate: {\n type: Function,\n \"default\": null\n },\n filterApplyTemplate: {\n type: Function,\n \"default\": null\n },\n filterIconTemplate: {\n type: Function,\n \"default\": null\n },\n filterAddIconTemplate: {\n type: Function,\n \"default\": null\n },\n filterRemoveIconTemplate: {\n type: Function,\n \"default\": null\n },\n filterClearIconTemplate: {\n type: Function,\n \"default\": null\n },\n filters: {\n type: Object,\n \"default\": null\n },\n filtersStore: {\n type: Object,\n \"default\": null\n },\n filterMenuClass: {\n type: String,\n \"default\": null\n },\n filterMenuStyle: {\n type: null,\n \"default\": null\n },\n filterInputProps: {\n type: null,\n \"default\": null\n },\n filterButtonProps: {\n type: null,\n \"default\": null\n },\n column: null\n },\n data: function data() {\n return {\n id: this.$attrs.id,\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount: function beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n if (this.filters && this.filters[this.field]) {\n var fieldFilters = this.filters[this.field];\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT: function getColumnPT(key, params) {\n var columnMetaData = _objectSpread$5({\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n }, params);\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n ptmFilterConstraintOptions: function ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter: function clearFilter() {\n var _filters = _objectSpread$5({}, this.filters);\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = {\n value: null,\n matchMode: this.defaultMatchMode\n };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter: function applyFilter() {\n this.$emit('apply-click', {\n field: this.field,\n constraints: this.filters[this.field]\n });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter: function hasFilter() {\n if (this.filtersStore) {\n var fieldFilter = this.filtersStore[this.field];\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n return false;\n },\n hasRowFilter: function hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank: function isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if (typeof filter === 'string' && filter.trim().length == 0 || filter instanceof Array && filter.length == 0) return true;else return false;\n }\n return true;\n },\n toggleMenu: function toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n event.preventDefault();\n },\n onToggleButtonKeyDown: function onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n break;\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange: function onRowMatchModeChange(matchMode) {\n var _filters = _objectSpread$5({}, this.filters);\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', {\n field: this.field,\n matchMode: matchMode\n });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown: function onRowMatchModeKeyDown(event) {\n var item = event.target;\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n event.preventDefault();\n break;\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected: function isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange: function onOperatorChange(value) {\n var _filters = _objectSpread$5({}, this.filters);\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n this.$emit('operator-change', {\n field: this.field,\n operator: value\n });\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange: function onMenuMatchModeChange(value, index) {\n var _filters = _objectSpread$5({}, this.filters);\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', {\n field: this.field,\n matchMode: value,\n index: index\n });\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint: function addConstraint() {\n var _filters = _objectSpread$5({}, this.filters);\n var newConstraint = {\n value: null,\n matchMode: this.defaultMatchMode\n };\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', {\n field: this.field,\n constraing: newConstraint\n });\n this.$emit('filter-change', _filters);\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint: function removeConstraint(index) {\n var _filters = _objectSpread$5({}, this.filters);\n var removedConstraint = _filters[this.field].constraints.splice(index, 1);\n this.$emit('constraint-remove', {\n field: this.field,\n constraing: removedConstraint\n });\n this.$emit('filter-change', _filters);\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback: function filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;else return item.parentElement.firstElementChild;\n },\n findPrevItem: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;else return item.parentElement.lastElementChild;\n },\n hide: function hide() {\n this.overlayVisible = false;\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick: function onContentClick(event) {\n this.selfClick = true;\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown: function onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter: function onOverlayEnter(el) {\n var _this = this;\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.overlayEventListener = function (e) {\n if (!_this.isOutsideClicked(e.target)) {\n _this.selfClick = true;\n }\n };\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter: function onOverlayAfterEnter() {\n var _this$overlay;\n (_this$overlay = this.overlay) === null || _this$overlay === void 0 || (_this$overlay = _this$overlay.$focustrap) === null || _this$overlay === void 0 || _this$overlay.autoFocus();\n },\n onOverlayLeave: function onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide: function onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef: function overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked: function isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked: function isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this2 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this2.overlayVisible && !_this2.selfClick && _this2.isOutsideClicked(event.target)) {\n _this2.overlayVisible = false;\n }\n _this2.selfClick = false;\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this3 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, function () {\n if (_this3.overlayVisible) {\n _this3.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this4 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this4.overlayVisible && !isTouchDevice()) {\n _this4.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton: function showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId: function overlayId() {\n return this.id + '_overlay';\n },\n matchModes: function matchModes() {\n var _this5 = this;\n return this.matchModeOptions || this.$primevue.config.filterMatchModeOptions[this.type].map(function (key) {\n return {\n label: _this5.$primevue.config.locale[key],\n value: key\n };\n });\n },\n isShowMatchModes: function isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions: function operatorOptions() {\n return [{\n label: this.$primevue.config.locale.matchAll,\n value: FilterOperator.AND\n }, {\n label: this.$primevue.config.locale.matchAny,\n value: FilterOperator.OR\n }];\n },\n noFilterLabel: function noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator: function isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator: function operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints: function fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon: function showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel: function removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel: function addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint: function isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel: function clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel: function applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel: function columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu : undefined;\n },\n filterOperatorAriaLabel: function filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel: function filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams: function ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams: function ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select: Select,\n Button: Button,\n Portal: Portal,\n FilterSlashIcon: FilterSlashIcon,\n FilterIcon: FilterIcon,\n TrashIcon: TrashIcon,\n PlusIcon: PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n\nfunction _typeof$4(o) { \"@babel/helpers - typeof\"; return _typeof$4 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$4(o); }\nfunction ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty$4(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$4(e, r, t) { return (r = _toPropertyKey$4(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$4(t) { var i = _toPrimitive$4(t, \"string\"); return \"symbol\" == _typeof$4(i) ? i : i + \"\"; }\nfunction _toPrimitive$4(t, r) { if (\"object\" != _typeof$4(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$4(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1$1 = [\"id\", \"aria-modal\"];\nvar _hoisted_2 = [\"onClick\", \"onKeydown\", \"tabindex\"];\nfunction render$4(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Button = resolveComponent(\"Button\");\n var _component_Select = resolveComponent(\"Select\");\n var _component_Portal = resolveComponent(\"Portal\");\n var _directive_focustrap = resolveDirective(\"focustrap\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('filter')\n }, $options.getColumnPT('filter')), [$props.display === 'row' ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('filterElementContainer')\n }, _objectSpread$4(_objectSpread$4({}, $props.filterInputProps), $options.getColumnPT('filterElementContainer'))), [(openBlock(), createBlock(resolveDynamicComponent($props.filterElement), {\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.filterCallback\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"]))], 16)) : createCommentVNode(\"\", true), $options.showMenuButton ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 1,\n ref: \"icon\",\n \"aria-label\": $options.columnFilterButtonAriaLabel,\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.overlayId,\n \"class\": _ctx.cx('pcColumnFilterButton'),\n unstyled: _ctx.unstyled,\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.toggleMenu($event);\n }),\n onKeydown: _cache[1] || (_cache[1] = function ($event) {\n return $options.onToggleButtonKeyDown($event);\n })\n }, _objectSpread$4(_objectSpread$4({}, $options.getColumnPT('pcColumnFilterButton', $options.ptmFilterMenuParams)), $props.filterButtonProps.filter)), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.filterIconTemplate || 'FilterIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('filterMenuIcon')), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"aria-label\", \"aria-expanded\", \"aria-controls\", \"class\", \"unstyled\"])) : createCommentVNode(\"\", true), $props.showClearButton && $props.display === 'row' && $options.hasRowFilter() ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 2,\n \"class\": _ctx.cx('pcColumnFilterClearButton'),\n unstyled: _ctx.unstyled,\n onClick: _cache[2] || (_cache[2] = function ($event) {\n return $options.clearFilter();\n })\n }, _objectSpread$4(_objectSpread$4({}, $options.getColumnPT('pcColumnFilterClearButton', $options.ptmHeaderFilterClearParams)), $props.filterButtonProps.inline.clear)), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.filterClearIconTemplate || 'FilterSlashIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('filterClearIcon')), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"class\", \"unstyled\"])) : createCommentVNode(\"\", true), createVNode(_component_Portal, null, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, $options.getColumnPT('transition')), {\n \"default\": withCtx(function () {\n return [$data.overlayVisible ? withDirectives((openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n id: $options.overlayId,\n \"aria-modal\": $data.overlayVisible,\n role: \"dialog\",\n \"class\": [_ctx.cx('filterOverlay'), $props.filterMenuClass],\n onKeydown: _cache[10] || (_cache[10] = withKeys(function () {\n return $options.hide && $options.hide.apply($options, arguments);\n }, [\"escape\"])),\n onClick: _cache[11] || (_cache[11] = function () {\n return $options.onContentClick && $options.onContentClick.apply($options, arguments);\n }),\n onMousedown: _cache[12] || (_cache[12] = function () {\n return $options.onContentMouseDown && $options.onContentMouseDown.apply($options, arguments);\n })\n }, $options.getColumnPT('filterOverlay')), [(openBlock(), createBlock(resolveDynamicComponent($props.filterHeaderTemplate), {\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.filterCallback\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"])), $props.display === 'row' ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('filterConstraintList')\n }, $options.getColumnPT('filterConstraintList')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.matchModes, function (matchMode, i) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: matchMode.label,\n \"class\": _ctx.cx('filterConstraint', {\n matchMode: matchMode\n }),\n onClick: function onClick($event) {\n return $options.onRowMatchModeChange(matchMode.value);\n },\n onKeydown: [_cache[3] || (_cache[3] = function ($event) {\n return $options.onRowMatchModeKeyDown($event);\n }), withKeys(withModifiers(function ($event) {\n return $options.onRowMatchModeChange(matchMode.value);\n }, [\"prevent\"]), [\"enter\"])],\n tabindex: i === 0 ? '0' : null,\n ref_for: true\n }, $options.getColumnPT('filterConstraint', $options.ptmFilterConstraintOptions(matchMode))), toDisplayString(matchMode.label), 17, _hoisted_2);\n }), 128)), createElementVNode(\"li\", mergeProps({\n \"class\": _ctx.cx('filterConstraintSeparator')\n }, $options.getColumnPT('filterConstraintSeparator')), null, 16), createElementVNode(\"li\", mergeProps({\n \"class\": _ctx.cx('filterConstraint'),\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $options.clearFilter();\n }),\n onKeydown: [_cache[5] || (_cache[5] = function ($event) {\n return $options.onRowMatchModeKeyDown($event);\n }), _cache[6] || (_cache[6] = withKeys(function ($event) {\n return _ctx.onRowClearItemClick();\n }, [\"enter\"]))]\n }, $options.getColumnPT('filterConstraint')), toDisplayString($options.noFilterLabel), 17)], 16)) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [$options.isShowOperator ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('filterOperator')\n }, $options.getColumnPT('filterOperator')), [createVNode(_component_Select, {\n options: $options.operatorOptions,\n modelValue: $options.operator,\n \"aria-label\": $options.filterOperatorAriaLabel,\n \"class\": normalizeClass(_ctx.cx('pcFilterOperatorDropdown')),\n optionLabel: \"label\",\n optionValue: \"value\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = function ($event) {\n return $options.onOperatorChange($event);\n }),\n unstyled: _ctx.unstyled,\n pt: $options.getColumnPT('pcFilterOperatorDropdown')\n }, null, 8, [\"options\", \"modelValue\", \"aria-label\", \"class\", \"unstyled\", \"pt\"])], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('filterRuleList')\n }, $options.getColumnPT('filterRuleList')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.fieldConstraints, function (fieldConstraint, i) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n key: i,\n \"class\": _ctx.cx('filterRule'),\n ref_for: true\n }, $options.getColumnPT('filterRule')), [$options.isShowMatchModes ? (openBlock(), createBlock(_component_Select, {\n key: 0,\n options: $options.matchModes,\n modelValue: fieldConstraint.matchMode,\n \"class\": normalizeClass(_ctx.cx('pcFilterConstraintDropdown')),\n optionLabel: \"label\",\n optionValue: \"value\",\n \"aria-label\": $options.filterRuleAriaLabel,\n \"onUpdate:modelValue\": function onUpdateModelValue($event) {\n return $options.onMenuMatchModeChange($event, i);\n },\n unstyled: _ctx.unstyled,\n pt: $options.getColumnPT('pcFilterConstraintDropdown')\n }, null, 8, [\"options\", \"modelValue\", \"class\", \"aria-label\", \"onUpdate:modelValue\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), $props.display === 'menu' ? (openBlock(), createBlock(resolveDynamicComponent($props.filterElement), {\n key: 1,\n field: $props.field,\n filterModel: fieldConstraint,\n filterCallback: $options.filterCallback,\n applyFilter: $options.applyFilter\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\", \"applyFilter\"])) : createCommentVNode(\"\", true), $options.showRemoveIcon ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 2,\n ref_for: true\n }, $options.getColumnPT('filterRemove')), [createVNode(_component_Button, mergeProps({\n type: \"button\",\n \"class\": _ctx.cx('pcFilterRemoveRuleButton'),\n onClick: function onClick($event) {\n return $options.removeConstraint(i);\n },\n label: $options.removeRuleButtonLabel,\n unstyled: _ctx.unstyled,\n ref_for: true\n }, $props.filterButtonProps.popover.removeRule, {\n pt: $options.getColumnPT('pcFilterRemoveRuleButton')\n }), {\n icon: withCtx(function (iconProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.filterRemoveIconTemplate || 'TrashIcon'), mergeProps({\n \"class\": iconProps[\"class\"],\n ref_for: true\n }, $options.getColumnPT('pcFilterRemoveRuleButton')['icon']), null, 16, [\"class\"]))];\n }),\n _: 2\n }, 1040, [\"class\", \"onClick\", \"label\", \"unstyled\", \"pt\"])], 16)) : createCommentVNode(\"\", true)], 16);\n }), 128))], 16), $options.isShowAddConstraint ? (openBlock(), createElementBlock(\"div\", normalizeProps(mergeProps({\n key: 1\n }, $options.getColumnPT('filterAddButtonContainer'))), [createVNode(_component_Button, mergeProps({\n type: \"button\",\n label: $options.addRuleButtonLabel,\n iconPos: \"left\",\n \"class\": _ctx.cx('pcFilterAddRuleButton'),\n onClick: _cache[8] || (_cache[8] = function ($event) {\n return $options.addConstraint();\n }),\n unstyled: _ctx.unstyled\n }, $props.filterButtonProps.popover.addRule, {\n pt: $options.getColumnPT('pcFilterAddRuleButton')\n }), {\n icon: withCtx(function (iconProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.filterAddIconTemplate || 'PlusIcon'), mergeProps({\n \"class\": iconProps[\"class\"]\n }, $options.getColumnPT('pcFilterAddRuleButton')['icon']), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"label\", \"class\", \"unstyled\", \"pt\"])], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('filterButtonbar')\n }, $options.getColumnPT('filterButtonbar')), [!$props.filterClearTemplate && $props.showClearButton ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n type: \"button\",\n \"class\": _ctx.cx('pcFilterClearButton'),\n label: $options.clearButtonLabel,\n onClick: $options.clearFilter,\n unstyled: _ctx.unstyled\n }, $props.filterButtonProps.popover.clear, {\n pt: $options.getColumnPT('pcFilterClearButton')\n }), null, 16, [\"class\", \"label\", \"onClick\", \"unstyled\", \"pt\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.filterClearTemplate), {\n key: 1,\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.clearFilter\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"])), $props.showApplyButton ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [!$props.filterApplyTemplate ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n type: \"button\",\n \"class\": _ctx.cx('pcFilterApplyButton'),\n label: $options.applyButtonLabel,\n onClick: _cache[9] || (_cache[9] = function ($event) {\n return $options.applyFilter();\n }),\n unstyled: _ctx.unstyled\n }, $props.filterButtonProps.popover.apply, {\n pt: $options.getColumnPT('pcFilterApplyButton')\n }), null, 16, [\"class\", \"label\", \"unstyled\", \"pt\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.filterApplyTemplate), {\n key: 1,\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.applyFilter\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"]))], 64)) : createCommentVNode(\"\", true)], 16)], 64)), (openBlock(), createBlock(resolveDynamicComponent($props.filterFooterTemplate), {\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.filterCallback\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"]))], 16, _hoisted_1$1)), [[_directive_focustrap]]) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 1\n })], 16);\n}\n\nscript$4.render = render$4;\n\nvar script$3 = {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getColumnPT: function getColumnPT(key) {\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange: function onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel: function headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll : undefined;\n }\n },\n components: {\n CheckIcon: CheckIcon,\n Checkbox: Checkbox\n }\n};\n\nfunction render$3(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_Checkbox = resolveComponent(\"Checkbox\");\n return openBlock(), createBlock(_component_Checkbox, {\n modelValue: $props.checked,\n binary: true,\n disabled: $props.disabled,\n \"aria-label\": $options.headerCheckboxAriaLabel,\n onChange: $options.onChange,\n pt: $options.getColumnPT('pcHeaderCheckbox')\n }, {\n icon: withCtx(function (slotProps) {\n return [$props.headerCheckboxIconTemplate ? (openBlock(), createBlock(resolveDynamicComponent($props.headerCheckboxIconTemplate), {\n key: 0,\n checked: slotProps.checked,\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"checked\", \"class\"])) : !$props.headerCheckboxIconTemplate && slotProps.checked ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 1,\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcHeaderCheckbox')['icon']), null, 16, [\"class\"])) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 8, [\"modelValue\", \"disabled\", \"aria-label\", \"onChange\", \"pt\"]);\n}\n\nscript$3.render = render$3;\n\nvar script$2 = {\n name: 'HeaderCell',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['column-click', 'column-mousedown', 'column-dragstart', 'column-dragover', 'column-dragleave', 'column-drop', 'column-resizestart', 'checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n column: {\n type: Object,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": null\n },\n resizableColumns: {\n type: Boolean,\n \"default\": false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n sortMode: {\n type: String,\n \"default\": 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n \"default\": null\n },\n sortField: {\n type: [String, Function],\n \"default\": null\n },\n sortOrder: {\n type: Number,\n \"default\": null\n },\n multiSortMeta: {\n type: Array,\n \"default\": null\n },\n allRowsSelected: {\n type: Boolean,\n \"default\": false\n },\n empty: {\n type: Boolean,\n \"default\": false\n },\n filterDisplay: {\n type: String,\n \"default\": null\n },\n filters: {\n type: Object,\n \"default\": null\n },\n filtersStore: {\n type: Object,\n \"default\": null\n },\n filterColumn: {\n type: Boolean,\n \"default\": false\n },\n reorderableColumns: {\n type: Boolean,\n \"default\": false\n },\n filterInputProps: {\n type: null,\n \"default\": null\n },\n filterButtonProps: {\n type: null,\n \"default\": null\n }\n },\n data: function data() {\n return {\n styleObject: {}\n };\n },\n mounted: function mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated: function updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp: function columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT: function getColumnPT(key) {\n var _this$$parentInstance, _this$$parentInstance2;\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.size,\n showGridlines: ((_this$$parentInstance2 = this.$parentInstance) === null || _this$$parentInstance2 === void 0 || (_this$$parentInstance2 = _this$$parentInstance2.$parentInstance) === null || _this$$parentInstance2 === void 0 ? void 0 : _this$$parentInstance2.showGridlines) || false\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onClick: function onClick(event) {\n this.$emit('column-click', {\n originalEvent: event,\n column: this.column\n });\n },\n onKeyDown: function onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', {\n originalEvent: event,\n column: this.column\n });\n event.preventDefault();\n }\n },\n onMouseDown: function onMouseDown(event) {\n this.$emit('column-mousedown', {\n originalEvent: event,\n column: this.column\n });\n },\n onDragStart: function onDragStart(event) {\n this.$emit('column-dragstart', {\n originalEvent: event,\n column: this.column\n });\n },\n onDragOver: function onDragOver(event) {\n this.$emit('column-dragover', {\n originalEvent: event,\n column: this.column\n });\n },\n onDragLeave: function onDragLeave(event) {\n this.$emit('column-dragleave', {\n originalEvent: event,\n column: this.column\n });\n },\n onDrop: function onDrop(event) {\n this.$emit('column-drop', {\n originalEvent: event,\n column: this.column\n });\n },\n onResizeStart: function onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex: function getMultiSortMetaIndex() {\n var _this = this;\n return this.multiSortMeta.findIndex(function (meta) {\n return meta.field === _this.columnProp('field') || meta.field === _this.columnProp('sortField');\n });\n },\n getBadgeValue: function getBadgeValue() {\n var index = this.getMultiSortMetaIndex();\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted: function isMultiSorted() {\n return this.sortMode === 'multiple' && this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted: function isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n },\n updateStickyPosition: function updateStickyPosition() {\n if (this.columnProp('frozen')) {\n var align = this.columnProp('alignFrozen');\n if (align === 'right') {\n var right = 0;\n var next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n this.styleObject.right = right + 'px';\n } else {\n var left = 0;\n var prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n this.styleObject.left = left + 'px';\n }\n var filterRow = this.$el.parentElement.nextElementSibling;\n if (filterRow) {\n var index = getIndex(this.$el);\n if (filterRow.children[index]) {\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n }\n },\n onHeaderCheckboxChange: function onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass: function containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle: function containerStyle() {\n var headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : this.columnProp('headerStyle');\n var columnStyle = this.columnProp('style');\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState: function sortState() {\n var sorted = false;\n var sortOrder = null;\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n var metaIndex = this.getMultiSortMetaIndex();\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n return {\n sorted: sorted,\n sortOrder: sortOrder\n };\n },\n sortableColumnIcon: function sortableColumnIcon() {\n var _this$sortState = this.sortState,\n sorted = _this$sortState.sorted,\n sortOrder = _this$sortState.sortOrder;\n if (!sorted) return SortAltIcon;else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n return null;\n },\n ariaSort: function ariaSort() {\n if (this.columnProp('sortable')) {\n var _this$sortState2 = this.sortState,\n sorted = _this$sortState2.sorted,\n sortOrder = _this$sortState2.sortOrder;\n if (sorted && sortOrder < 0) return 'descending';else if (sorted && sortOrder > 0) return 'ascending';else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge: Badge,\n DTHeaderCheckbox: script$3,\n DTColumnFilter: script$4,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n\nfunction _typeof$3(o) { \"@babel/helpers - typeof\"; return _typeof$3 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$3(o); }\nfunction ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty$3(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$3(e, r, t) { return (r = _toPropertyKey$3(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$3(t) { var i = _toPrimitive$3(t, \"string\"); return \"symbol\" == _typeof$3(i) ? i : i + \"\"; }\nfunction _toPrimitive$3(t, r) { if (\"object\" != _typeof$3(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$3(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"tabindex\", \"colspan\", \"rowspan\", \"aria-sort\", \"data-p-sortable-column\", \"data-p-resizable-column\", \"data-p-sorted\", \"data-p-filter-column\", \"data-p-frozen-column\", \"data-p-reorderable-column\"];\nfunction render$2(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Badge = resolveComponent(\"Badge\");\n var _component_DTHeaderCheckbox = resolveComponent(\"DTHeaderCheckbox\");\n var _component_DTColumnFilter = resolveComponent(\"DTColumnFilter\");\n return openBlock(), createElementBlock(\"th\", mergeProps({\n style: $options.containerStyle,\n \"class\": $options.containerClass,\n tabindex: $options.columnProp('sortable') ? '0' : null,\n role: \"columnheader\",\n colspan: $options.columnProp('colspan'),\n rowspan: $options.columnProp('rowspan'),\n \"aria-sort\": $options.ariaSort,\n onClick: _cache[8] || (_cache[8] = function () {\n return $options.onClick && $options.onClick.apply($options, arguments);\n }),\n onKeydown: _cache[9] || (_cache[9] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n onMousedown: _cache[10] || (_cache[10] = function () {\n return $options.onMouseDown && $options.onMouseDown.apply($options, arguments);\n }),\n onDragstart: _cache[11] || (_cache[11] = function () {\n return $options.onDragStart && $options.onDragStart.apply($options, arguments);\n }),\n onDragover: _cache[12] || (_cache[12] = function () {\n return $options.onDragOver && $options.onDragOver.apply($options, arguments);\n }),\n onDragleave: _cache[13] || (_cache[13] = function () {\n return $options.onDragLeave && $options.onDragLeave.apply($options, arguments);\n }),\n onDrop: _cache[14] || (_cache[14] = function () {\n return $options.onDrop && $options.onDrop.apply($options, arguments);\n })\n }, _objectSpread$3(_objectSpread$3({}, $options.getColumnPT('root')), $options.getColumnPT('headerCell')), {\n \"data-p-sortable-column\": $options.columnProp('sortable'),\n \"data-p-resizable-column\": $props.resizableColumns,\n \"data-p-sorted\": $options.isColumnSorted(),\n \"data-p-filter-column\": $props.filterColumn,\n \"data-p-frozen-column\": $options.columnProp('frozen'),\n \"data-p-reorderable-column\": $props.reorderableColumns\n }), [$props.resizableColumns && !$options.columnProp('frozen') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('columnResizer'),\n onMousedown: _cache[0] || (_cache[0] = function () {\n return $options.onResizeStart && $options.onResizeStart.apply($options, arguments);\n })\n }, $options.getColumnPT('columnResizer')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('columnHeaderContent')\n }, $options.getColumnPT('columnHeaderContent')), [$props.column.children && $props.column.children.header ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.header), {\n key: 0,\n column: $props.column\n }, null, 8, [\"column\"])) : createCommentVNode(\"\", true), $options.columnProp('header') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('columnTitle')\n }, $options.getColumnPT('columnTitle')), toDisplayString($options.columnProp('header')), 17)) : createCommentVNode(\"\", true), $options.columnProp('sortable') ? (openBlock(), createElementBlock(\"span\", normalizeProps(mergeProps({\n key: 2\n }, $options.getColumnPT('sort'))), [(openBlock(), createBlock(resolveDynamicComponent($props.column.children && $props.column.children.sorticon || $options.sortableColumnIcon), mergeProps({\n sorted: $options.sortState.sorted,\n sortOrder: $options.sortState.sortOrder,\n \"class\": _ctx.cx('sortIcon')\n }, $options.getColumnPT('sorticon')), null, 16, [\"sorted\", \"sortOrder\", \"class\"]))], 16)) : createCommentVNode(\"\", true), $options.isMultiSorted() ? (openBlock(), createBlock(_component_Badge, {\n key: 3,\n \"class\": normalizeClass(_ctx.cx('pcSortBadge')),\n pt: $options.getColumnPT('pcSortBadge'),\n value: $options.getBadgeValue(),\n size: \"small\"\n }, null, 8, [\"class\", \"pt\", \"value\"])) : createCommentVNode(\"\", true), $options.columnProp('selectionMode') === 'multiple' && $props.filterDisplay !== 'row' ? (openBlock(), createBlock(_component_DTHeaderCheckbox, {\n key: 4,\n checked: $props.allRowsSelected,\n onChange: $options.onHeaderCheckboxChange,\n disabled: $props.empty,\n headerCheckboxIconTemplate: $props.column.children && $props.column.children.headercheckboxicon,\n column: $props.column,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"checked\", \"onChange\", \"disabled\", \"headerCheckboxIconTemplate\", \"column\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), $props.filterDisplay === 'menu' && $props.column.children && $props.column.children.filter ? (openBlock(), createBlock(_component_DTColumnFilter, {\n key: 5,\n field: $options.columnProp('filterField') || $options.columnProp('field'),\n type: $options.columnProp('dataType'),\n display: \"menu\",\n showMenu: $options.columnProp('showFilterMenu'),\n filterElement: $props.column.children && $props.column.children.filter,\n filterHeaderTemplate: $props.column.children && $props.column.children.filterheader,\n filterFooterTemplate: $props.column.children && $props.column.children.filterfooter,\n filterClearTemplate: $props.column.children && $props.column.children.filterclear,\n filterApplyTemplate: $props.column.children && $props.column.children.filterapply,\n filterIconTemplate: $props.column.children && $props.column.children.filtericon,\n filterAddIconTemplate: $props.column.children && $props.column.children.filteraddicon,\n filterRemoveIconTemplate: $props.column.children && $props.column.children.filterremoveicon,\n filterClearIconTemplate: $props.column.children && $props.column.children.filterclearicon,\n filters: $props.filters,\n filtersStore: $props.filtersStore,\n filterInputProps: $props.filterInputProps,\n filterButtonProps: $props.filterButtonProps,\n onFilterChange: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('filter-change', $event);\n }),\n onFilterApply: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('filter-apply');\n }),\n filterMenuStyle: $options.columnProp('filterMenuStyle'),\n filterMenuClass: $options.columnProp('filterMenuClass'),\n showOperator: $options.columnProp('showFilterOperator'),\n showClearButton: $options.columnProp('showClearButton'),\n showApplyButton: $options.columnProp('showApplyButton'),\n showMatchModes: $options.columnProp('showFilterMatchModes'),\n showAddButton: $options.columnProp('showAddButton'),\n matchModeOptions: $options.columnProp('filterMatchModeOptions'),\n maxConstraints: $options.columnProp('maxConstraints'),\n onOperatorChange: _cache[3] || (_cache[3] = function ($event) {\n return _ctx.$emit('operator-change', $event);\n }),\n onMatchmodeChange: _cache[4] || (_cache[4] = function ($event) {\n return _ctx.$emit('matchmode-change', $event);\n }),\n onConstraintAdd: _cache[5] || (_cache[5] = function ($event) {\n return _ctx.$emit('constraint-add', $event);\n }),\n onConstraintRemove: _cache[6] || (_cache[6] = function ($event) {\n return _ctx.$emit('constraint-remove', $event);\n }),\n onApplyClick: _cache[7] || (_cache[7] = function ($event) {\n return _ctx.$emit('apply-click', $event);\n }),\n column: $props.column,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"field\", \"type\", \"showMenu\", \"filterElement\", \"filterHeaderTemplate\", \"filterFooterTemplate\", \"filterClearTemplate\", \"filterApplyTemplate\", \"filterIconTemplate\", \"filterAddIconTemplate\", \"filterRemoveIconTemplate\", \"filterClearIconTemplate\", \"filters\", \"filtersStore\", \"filterInputProps\", \"filterButtonProps\", \"filterMenuStyle\", \"filterMenuClass\", \"showOperator\", \"showClearButton\", \"showApplyButton\", \"showMatchModes\", \"showAddButton\", \"matchModeOptions\", \"maxConstraints\", \"column\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 16)], 16, _hoisted_1);\n}\n\nscript$2.render = render$2;\n\nvar script$1 = {\n name: 'TableHeader',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['column-click', 'column-mousedown', 'column-dragstart', 'column-dragover', 'column-dragleave', 'column-drop', 'column-resizestart', 'checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n columnGroup: {\n type: null,\n \"default\": null\n },\n columns: {\n type: null,\n \"default\": null\n },\n rowGroupMode: {\n type: String,\n \"default\": null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n resizableColumns: {\n type: Boolean,\n \"default\": false\n },\n allRowsSelected: {\n type: Boolean,\n \"default\": false\n },\n empty: {\n type: Boolean,\n \"default\": false\n },\n sortMode: {\n type: String,\n \"default\": 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n \"default\": null\n },\n sortField: {\n type: [String, Function],\n \"default\": null\n },\n sortOrder: {\n type: Number,\n \"default\": null\n },\n multiSortMeta: {\n type: Array,\n \"default\": null\n },\n filterDisplay: {\n type: String,\n \"default\": null\n },\n filters: {\n type: Object,\n \"default\": null\n },\n filtersStore: {\n type: Object,\n \"default\": null\n },\n reorderableColumns: {\n type: Boolean,\n \"default\": false\n },\n first: {\n type: Number,\n \"default\": 0\n },\n filterInputProps: {\n type: null,\n \"default\": null\n },\n filterButtonProps: {\n type: null,\n \"default\": null\n }\n },\n provide: function provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data: function data() {\n return {\n d_headerRows: new HelperSet({\n type: 'Row'\n }),\n d_headerColumns: new HelperSet({\n type: 'Column'\n })\n };\n },\n beforeUnmount: function beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp: function columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT: function getColumnGroupPT(key) {\n var _this$$parentInstance;\n var columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.scrollable\n }\n };\n return mergeProps(this.ptm(\"columnGroup.\".concat(key), {\n columnGroup: columnGroupMetaData\n }), this.ptm(\"columnGroup.\".concat(key), columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps: function getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT: function getRowPT(row, key, index) {\n var rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: index\n }\n };\n return mergeProps(this.ptm(\"row.\".concat(key), {\n row: rowMetaData\n }), this.ptm(\"row.\".concat(key), rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp: function getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT: function getColumnPT(column, key, index) {\n var columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: index\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp: function getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass: function getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', {\n column: column\n }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle: function getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows: function getHeaderRows() {\n var _this$d_headerRows;\n return (_this$d_headerRows = this.d_headerRows) === null || _this$d_headerRows === void 0 ? void 0 : _this$d_headerRows.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns: function getHeaderColumns(row) {\n var _this$d_headerColumns;\n return (_this$d_headerColumns = this.d_headerColumns) === null || _this$d_headerColumns === void 0 ? void 0 : _this$d_headerColumns.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions: function ptmTHeadOptions() {\n var _this$$parentInstance2;\n return {\n context: {\n scrollable: (_this$$parentInstance2 = this.$parentInstance) === null || _this$$parentInstance2 === void 0 || (_this$$parentInstance2 = _this$$parentInstance2.$parentInstance) === null || _this$$parentInstance2 === void 0 ? void 0 : _this$$parentInstance2.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: script$2,\n DTHeaderCheckbox: script$3,\n DTColumnFilter: script$4\n }\n};\n\nfunction _typeof$2(o) { \"@babel/helpers - typeof\"; return _typeof$2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$2(o); }\nfunction ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty$2(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$2(e, r, t) { return (r = _toPropertyKey$2(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$2(t) { var i = _toPrimitive$2(t, \"string\"); return \"symbol\" == _typeof$2(i) ? i : i + \"\"; }\nfunction _toPrimitive$2(t, r) { if (\"object\" != _typeof$2(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$2(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_DTHeaderCell = resolveComponent(\"DTHeaderCell\");\n var _component_DTHeaderCheckbox = resolveComponent(\"DTHeaderCheckbox\");\n var _component_DTColumnFilter = resolveComponent(\"DTColumnFilter\");\n return openBlock(), createElementBlock(\"thead\", mergeProps({\n \"class\": _ctx.cx('thead'),\n style: _ctx.sx('thead'),\n role: \"rowgroup\"\n }, $props.columnGroup ? _objectSpread$2(_objectSpread$2({}, _ctx.ptm('thead', $options.ptmTHeadOptions)), $options.getColumnGroupPT('root')) : _ctx.ptm('thead', $options.ptmTHeadOptions), {\n \"data-pc-section\": \"thead\"\n }), [!$props.columnGroup ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [createElementVNode(\"tr\", mergeProps({\n role: \"row\"\n }, _ctx.ptm('headerRow')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, function (col, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || i\n }, [!$options.columnProp(col, 'hidden') && ($props.rowGroupMode !== 'subheader' || $props.groupRowsBy !== $options.columnProp(col, 'field')) ? (openBlock(), createBlock(_component_DTHeaderCell, {\n key: 0,\n column: col,\n index: i,\n onColumnClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('column-click', $event);\n }),\n onColumnMousedown: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('column-mousedown', $event);\n }),\n onColumnDragstart: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('column-dragstart', $event);\n }),\n onColumnDragover: _cache[3] || (_cache[3] = function ($event) {\n return _ctx.$emit('column-dragover', $event);\n }),\n onColumnDragleave: _cache[4] || (_cache[4] = function ($event) {\n return _ctx.$emit('column-dragleave', $event);\n }),\n onColumnDrop: _cache[5] || (_cache[5] = function ($event) {\n return _ctx.$emit('column-drop', $event);\n }),\n groupRowsBy: $props.groupRowsBy,\n groupRowSortField: $props.groupRowSortField,\n reorderableColumns: $props.reorderableColumns,\n resizableColumns: $props.resizableColumns,\n onColumnResizestart: _cache[6] || (_cache[6] = function ($event) {\n return _ctx.$emit('column-resizestart', $event);\n }),\n sortMode: $props.sortMode,\n sortField: $props.sortField,\n sortOrder: $props.sortOrder,\n multiSortMeta: $props.multiSortMeta,\n allRowsSelected: $props.allRowsSelected,\n empty: $props.empty,\n onCheckboxChange: _cache[7] || (_cache[7] = function ($event) {\n return _ctx.$emit('checkbox-change', $event);\n }),\n filters: $props.filters,\n filterDisplay: $props.filterDisplay,\n filtersStore: $props.filtersStore,\n filterInputProps: $props.filterInputProps,\n filterButtonProps: $props.filterButtonProps,\n first: $props.first,\n onFilterChange: _cache[8] || (_cache[8] = function ($event) {\n return _ctx.$emit('filter-change', $event);\n }),\n onFilterApply: _cache[9] || (_cache[9] = function ($event) {\n return _ctx.$emit('filter-apply');\n }),\n onOperatorChange: _cache[10] || (_cache[10] = function ($event) {\n return _ctx.$emit('operator-change', $event);\n }),\n onMatchmodeChange: _cache[11] || (_cache[11] = function ($event) {\n return _ctx.$emit('matchmode-change', $event);\n }),\n onConstraintAdd: _cache[12] || (_cache[12] = function ($event) {\n return _ctx.$emit('constraint-add', $event);\n }),\n onConstraintRemove: _cache[13] || (_cache[13] = function ($event) {\n return _ctx.$emit('constraint-remove', $event);\n }),\n onApplyClick: _cache[14] || (_cache[14] = function ($event) {\n return _ctx.$emit('apply-click', $event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"column\", \"index\", \"groupRowsBy\", \"groupRowSortField\", \"reorderableColumns\", \"resizableColumns\", \"sortMode\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"allRowsSelected\", \"empty\", \"filters\", \"filterDisplay\", \"filtersStore\", \"filterInputProps\", \"filterButtonProps\", \"first\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16), $props.filterDisplay === 'row' ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 0,\n role: \"row\"\n }, _ctx.ptm('headerRow')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, function (col, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || i\n }, [!$options.columnProp(col, 'hidden') && ($props.rowGroupMode !== 'subheader' || $props.groupRowsBy !== $options.columnProp(col, 'field')) ? (openBlock(), createElementBlock(\"th\", mergeProps({\n key: 0,\n style: $options.getFilterColumnHeaderStyle(col),\n \"class\": $options.getFilterColumnHeaderClass(col),\n ref_for: true\n }, _objectSpread$2(_objectSpread$2({}, $options.getColumnPT(col, 'root', i)), $options.getColumnPT(col, 'headerCell', i))), [$options.columnProp(col, 'selectionMode') === 'multiple' ? (openBlock(), createBlock(_component_DTHeaderCheckbox, {\n key: 0,\n checked: $props.allRowsSelected,\n disabled: $props.empty,\n onChange: _cache[15] || (_cache[15] = function ($event) {\n return _ctx.$emit('checkbox-change', $event);\n }),\n column: col,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"checked\", \"disabled\", \"column\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), col.children && col.children.filter ? (openBlock(), createBlock(_component_DTColumnFilter, {\n key: 1,\n field: $options.columnProp(col, 'filterField') || $options.columnProp(col, 'field'),\n type: $options.columnProp(col, 'dataType'),\n display: \"row\",\n showMenu: $options.columnProp(col, 'showFilterMenu'),\n filterElement: col.children && col.children.filter,\n filterHeaderTemplate: col.children && col.children.filterheader,\n filterFooterTemplate: col.children && col.children.filterfooter,\n filterClearTemplate: col.children && col.children.filterclear,\n filterApplyTemplate: col.children && col.children.filterapply,\n filterIconTemplate: col.children && col.children.filtericon,\n filterAddIconTemplate: col.children && col.children.filteraddicon,\n filterRemoveIconTemplate: col.children && col.children.filterremoveicon,\n filterClearIconTemplate: col.children && col.children.filterclearicon,\n filters: $props.filters,\n filtersStore: $props.filtersStore,\n filterInputProps: $props.filterInputProps,\n filterButtonProps: $props.filterButtonProps,\n onFilterChange: _cache[16] || (_cache[16] = function ($event) {\n return _ctx.$emit('filter-change', $event);\n }),\n onFilterApply: _cache[17] || (_cache[17] = function ($event) {\n return _ctx.$emit('filter-apply');\n }),\n filterMenuStyle: $options.columnProp(col, 'filterMenuStyle'),\n filterMenuClass: $options.columnProp(col, 'filterMenuClass'),\n showOperator: $options.columnProp(col, 'showFilterOperator'),\n showClearButton: $options.columnProp(col, 'showClearButton'),\n showApplyButton: $options.columnProp(col, 'showApplyButton'),\n showMatchModes: $options.columnProp(col, 'showFilterMatchModes'),\n showAddButton: $options.columnProp(col, 'showAddButton'),\n matchModeOptions: $options.columnProp(col, 'filterMatchModeOptions'),\n maxConstraints: $options.columnProp(col, 'maxConstraints'),\n onOperatorChange: _cache[18] || (_cache[18] = function ($event) {\n return _ctx.$emit('operator-change', $event);\n }),\n onMatchmodeChange: _cache[19] || (_cache[19] = function ($event) {\n return _ctx.$emit('matchmode-change', $event);\n }),\n onConstraintAdd: _cache[20] || (_cache[20] = function ($event) {\n return _ctx.$emit('constraint-add', $event);\n }),\n onConstraintRemove: _cache[21] || (_cache[21] = function ($event) {\n return _ctx.$emit('constraint-remove', $event);\n }),\n onApplyClick: _cache[22] || (_cache[22] = function ($event) {\n return _ctx.$emit('apply-click', $event);\n }),\n column: col,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"field\", \"type\", \"showMenu\", \"filterElement\", \"filterHeaderTemplate\", \"filterFooterTemplate\", \"filterClearTemplate\", \"filterApplyTemplate\", \"filterIconTemplate\", \"filterAddIconTemplate\", \"filterRemoveIconTemplate\", \"filterClearIconTemplate\", \"filters\", \"filtersStore\", \"filterInputProps\", \"filterButtonProps\", \"filterMenuStyle\", \"filterMenuClass\", \"showOperator\", \"showClearButton\", \"showApplyButton\", \"showMatchModes\", \"showAddButton\", \"matchModeOptions\", \"maxConstraints\", \"column\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 16)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16)) : createCommentVNode(\"\", true)], 64)) : (openBlock(true), createElementBlock(Fragment, {\n key: 1\n }, renderList($options.getHeaderRows(), function (row, i) {\n return openBlock(), createElementBlock(\"tr\", mergeProps({\n key: i,\n role: \"row\",\n ref_for: true\n }, _objectSpread$2(_objectSpread$2({}, _ctx.ptm('headerRow')), $options.getRowPT(row, 'root', i))), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.getHeaderColumns(row), function (col, j) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || j\n }, [!$options.columnProp(col, 'hidden') && ($props.rowGroupMode !== 'subheader' || $props.groupRowsBy !== $options.columnProp(col, 'field')) && typeof col.children !== 'string' ? (openBlock(), createBlock(_component_DTHeaderCell, {\n key: 0,\n column: col,\n onColumnClick: _cache[23] || (_cache[23] = function ($event) {\n return _ctx.$emit('column-click', $event);\n }),\n onColumnMousedown: _cache[24] || (_cache[24] = function ($event) {\n return _ctx.$emit('column-mousedown', $event);\n }),\n groupRowsBy: $props.groupRowsBy,\n groupRowSortField: $props.groupRowSortField,\n sortMode: $props.sortMode,\n sortField: $props.sortField,\n sortOrder: $props.sortOrder,\n multiSortMeta: $props.multiSortMeta,\n allRowsSelected: $props.allRowsSelected,\n empty: $props.empty,\n onCheckboxChange: _cache[25] || (_cache[25] = function ($event) {\n return _ctx.$emit('checkbox-change', $event);\n }),\n filters: $props.filters,\n filterDisplay: $props.filterDisplay,\n filtersStore: $props.filtersStore,\n onFilterChange: _cache[26] || (_cache[26] = function ($event) {\n return _ctx.$emit('filter-change', $event);\n }),\n onFilterApply: _cache[27] || (_cache[27] = function ($event) {\n return _ctx.$emit('filter-apply');\n }),\n onOperatorChange: _cache[28] || (_cache[28] = function ($event) {\n return _ctx.$emit('operator-change', $event);\n }),\n onMatchmodeChange: _cache[29] || (_cache[29] = function ($event) {\n return _ctx.$emit('matchmode-change', $event);\n }),\n onConstraintAdd: _cache[30] || (_cache[30] = function ($event) {\n return _ctx.$emit('constraint-add', $event);\n }),\n onConstraintRemove: _cache[31] || (_cache[31] = function ($event) {\n return _ctx.$emit('constraint-remove', $event);\n }),\n onApplyClick: _cache[32] || (_cache[32] = function ($event) {\n return _ctx.$emit('apply-click', $event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"column\", \"groupRowsBy\", \"groupRowSortField\", \"sortMode\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"allRowsSelected\", \"empty\", \"filters\", \"filterDisplay\", \"filtersStore\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n }), 128))], 16);\n}\n\nscript$1.render = render$1;\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nvar _excluded = [\"expanded\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$1(e, r, t) { return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$1(t) { var i = _toPrimitive$1(t, \"string\"); return \"symbol\" == _typeof$1(i) ? i : i + \"\"; }\nfunction _toPrimitive$1(t, r) { if (\"object\" != _typeof$1(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$1(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'DataTable',\n \"extends\": script$c,\n inheritAttrs: false,\n emits: ['value-change', 'update:first', 'update:rows', 'page', 'update:sortField', 'update:sortOrder', 'update:multiSortMeta', 'sort', 'filter', 'row-click', 'row-dblclick', 'update:selection', 'row-select', 'row-unselect', 'update:contextMenuSelection', 'row-contextmenu', 'row-unselect-all', 'row-select-all', 'select-all-change', 'column-resize-end', 'column-reorder', 'row-reorder', 'update:expandedRows', 'row-collapse', 'row-expand', 'update:expandedRowGroups', 'rowgroup-collapse', 'rowgroup-expand', 'update:filters', 'state-restore', 'state-save', 'cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'update:editingRows', 'row-edit-init', 'row-edit-save', 'row-edit-cancel'],\n provide: function provide() {\n return {\n $columns: this.d_columns,\n $columnGroups: this.d_columnGroups\n };\n },\n data: function data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? _toConsumableArray(this.multiSortMeta) : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({\n type: 'Column'\n }),\n d_columnGroups: new HelperSet({\n type: 'ColumnGroup'\n })\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n watch: {\n first: function first(newValue) {\n this.d_first = newValue;\n },\n rows: function rows(newValue) {\n this.d_rows = newValue;\n },\n sortField: function sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder: function sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n nullSortOrder: function nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta: function multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler: function handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler: function handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function handler(newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted: function mounted() {\n this.$el.setAttribute(this.attributeSelector, '');\n if (this.isStateful()) {\n this.restoreState();\n this.resizableColumns && this.restoreColumnWidths();\n }\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n this.d_columns.clear();\n this.d_columnGroups.clear();\n },\n updated: function updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n columnProp: function columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage: function onPage(event) {\n var _this = this;\n this.clearEditingMetaData();\n this.d_first = event.first;\n this.d_rows = event.rows;\n var pageEvent = this.createLazyLoadEvent(event);\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(function () {\n _this.$emit('value-change', _this.processedData);\n });\n },\n onColumnHeaderClick: function onColumnHeaderClick(e) {\n var _this2 = this;\n var event = e.originalEvent;\n var column = e.column;\n if (this.columnProp(column, 'sortable')) {\n var targetNode = event.target;\n var columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n if (getAttribute(targetNode, 'data-p-sortable-column') === true || getAttribute(targetNode, 'data-pc-section') === 'columntitle' || getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' || getAttribute(targetNode, 'data-pc-section') === 'sorticon' || getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' || getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' || targetNode.closest('[data-p-sortable-column=\"true\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target)) {\n clearSelection();\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n var metaKey = event.metaKey || event.ctrlKey;\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter(function (meta) {\n return meta.field === columnField;\n });\n }\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n this.$emit('sort', this.createLazyLoadEvent(event));\n this.$nextTick(function () {\n _this2.$emit('value-change', _this2.processedData);\n });\n }\n }\n },\n sortSingle: function sortSingle(value) {\n var _this3 = this;\n this.clearEditingMetaData();\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [{\n field: this.sortField,\n order: this.sortOrder || this.defaultSortOrder\n }, {\n field: this.d_sortField,\n order: this.d_sortOrder\n }];\n return this.sortMultiple(value);\n }\n var data = _toConsumableArray(value);\n var resolvedFieldData = new Map();\n var _iterator = _createForOfIteratorHelper(data),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var comparer = localeComparator();\n data.sort(function (data1, data2) {\n var value1 = resolvedFieldData.get(data1);\n var value2 = resolvedFieldData.get(data2);\n return sort(value1, value2, _this3.d_sortOrder, comparer, _this3.d_nullSortOrder);\n });\n return data;\n },\n sortMultiple: function sortMultiple(value) {\n var _this4 = this;\n this.clearEditingMetaData();\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field)) {\n var firstSortMeta = this.d_multiSortMeta[0];\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta].concat(_toConsumableArray(this.d_multiSortMeta));\n }\n }\n var data = _toConsumableArray(value);\n data.sort(function (data1, data2) {\n return _this4.multisortField(data1, data2, 0);\n });\n return data;\n },\n multisortField: function multisortField(data1, data2, index) {\n var value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n var value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n var comparer = localeComparator();\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\n },\n addMultiSortField: function addMultiSortField(field) {\n var index = this.d_multiSortMeta.findIndex(function (meta) {\n return meta.field === field;\n });\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);else this.d_multiSortMeta[index] = {\n field: field,\n order: this.d_multiSortMeta[index].order * -1\n };\n } else {\n this.d_multiSortMeta.push({\n field: field,\n order: this.defaultSortOrder\n });\n }\n this.d_multiSortMeta = _toConsumableArray(this.d_multiSortMeta);\n },\n getActiveFilters: function getActiveFilters(filters) {\n var removeEmptyFilters = function removeEmptyFilters(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (value.constraints) {\n var filteredConstraints = value.constraints.filter(function (constraint) {\n return constraint.value !== null;\n });\n if (filteredConstraints.length > 0) {\n return [key, _objectSpread$1(_objectSpread$1({}, value), {}, {\n constraints: filteredConstraints\n })];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n return undefined;\n };\n var filterValidEntries = function filterValidEntries(entry) {\n return entry !== undefined;\n };\n var entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n return Object.fromEntries(entries);\n },\n filter: function filter(data) {\n var _this5 = this;\n if (!data) {\n return;\n }\n this.clearEditingMetaData();\n var activeFilters = this.getActiveFilters(this.filters);\n var globalFilterFieldsArray;\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map(function (col) {\n return _this5.columnProp(col, 'filterField') || _this5.columnProp(col, 'field');\n });\n }\n var filteredValue = [];\n for (var i = 0; i < data.length; i++) {\n var localMatch = true;\n var globalMatch = false;\n var localFiltered = false;\n for (var prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n var filterField = prop;\n var filterMeta = activeFilters[filterField];\n if (filterMeta.operator) {\n var _iterator2 = _createForOfIteratorHelper(filterMeta.constraints),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var filterConstraint = _step2.value;\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n if (filterMeta.operator === FilterOperator.OR && localMatch || filterMeta.operator === FilterOperator.AND && !localMatch) {\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n if (!localMatch) {\n break;\n }\n }\n }\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (var j = 0; j < globalFilterFieldsArray.length; j++) {\n var globalFilterField = globalFilterFieldsArray[j];\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n if (globalMatch) {\n break;\n }\n }\n }\n var matches = void 0;\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n var filterEvent = this.createLazyLoadEvent();\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$nextTick(function () {\n _this5.$emit('value-change', _this5.processedData);\n });\n return filteredValue;\n },\n executeLocalFilter: function executeLocalFilter(field, rowData, filterMeta) {\n var filterValue = filterMeta.value;\n var filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n var dataFieldValue = resolveFieldData(rowData, field);\n var filterConstraint = FilterService.filters[filterMatchMode];\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick: function onRowClick(e) {\n var event = e.originalEvent;\n var body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n var focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n if (isClickable(event.target)) {\n return;\n }\n this.$emit('row-click', e);\n if (this.selectionMode) {\n var rowData = e.data;\n var rowIndex = this.d_first + e.index;\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n var selected = this.isSelected(rowData);\n var metaSelection = this.rowTouched ? false : this.metaKeySelection;\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n if (metaSelection) {\n var metaKey = event.metaKey || event.ctrlKey;\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n var selectionIndex = this.findIndexInSelection(rowData);\n var _selection = this.selection.filter(function (val, i) {\n return i != selectionIndex;\n });\n this.$emit('update:selection', _selection);\n }\n this.$emit('row-unselect', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n var _selection2 = metaKey ? this.selection || [] : [];\n _selection2 = [].concat(_toConsumableArray(_selection2), [rowData]);\n this.$emit('update:selection', _selection2);\n }\n this.$emit('row-select', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n var _selectionIndex = this.findIndexInSelection(rowData);\n var _selection3 = this.selection.filter(function (val, i) {\n return i != _selectionIndex;\n });\n this.$emit('update:selection', _selection3);\n this.$emit('row-unselect', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n } else {\n var _selection4 = this.selection ? [].concat(_toConsumableArray(this.selection), [rowData]) : [rowData];\n this.$emit('update:selection', _selection4);\n this.$emit('row-select', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n }\n }\n }\n }\n }\n this.rowTouched = false;\n if (focusedItem) {\n var _event$target, _event$target2, _event$target3;\n if (((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.getAttribute('data-pc-section')) === 'rowtoggleicon' || ((_event$target2 = event.target) === null || _event$target2 === void 0 || (_event$target2 = _event$target2.parentElement) === null || _event$target2 === void 0 ? void 0 : _event$target2.getAttribute('data-pc-section')) === 'rowtoggleicon') return;\n var targetRow = (_event$target3 = event.target) === null || _event$target3 === void 0 ? void 0 : _event$target3.closest('tr[data-p-selectable-row=\"true\"]');\n focusedItem.tabIndex = '-1';\n targetRow.tabIndex = '0';\n }\n },\n onRowDblClick: function onRowDblClick(e) {\n var event = e.originalEvent;\n if (isClickable(event.target)) {\n return;\n }\n this.$emit('row-dblclick', e);\n },\n onRowRightClick: function onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd: function onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown: function onRowKeyDown(e, slotProps) {\n var event = e.originalEvent;\n var rowData = e.data;\n var rowIndex = e.index;\n var metaKey = event.metaKey || event.ctrlKey;\n if (this.selectionMode) {\n var row = event.target;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n var data = this.dataToRender(slotProps.rows);\n this.$emit('update:selection', data);\n }\n event.preventDefault();\n break;\n }\n }\n },\n onArrowDownKey: function onArrowDownKey(event, row, rowIndex, slotProps) {\n var nextRow = this.findNextSelectableRow(row);\n nextRow && this.focusRowChange(row, nextRow);\n if (event.shiftKey) {\n var data = this.dataToRender(slotProps.rows);\n var nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n this.onRowClick({\n originalEvent: event,\n data: data[nextRowIndex],\n index: nextRowIndex\n });\n }\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event, row, rowIndex, slotProps) {\n var prevRow = this.findPrevSelectableRow(row);\n prevRow && this.focusRowChange(row, prevRow);\n if (event.shiftKey) {\n var data = this.dataToRender(slotProps.rows);\n var prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n this.onRowClick({\n originalEvent: event,\n data: data[prevRowIndex],\n index: prevRowIndex\n });\n }\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event, row, rowIndex, slotProps) {\n var firstRow = this.findFirstSelectableRow();\n firstRow && this.focusRowChange(row, firstRow);\n if (event.ctrlKey && event.shiftKey) {\n var data = this.dataToRender(slotProps.rows);\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n event.preventDefault();\n },\n onEndKey: function onEndKey(event, row, rowIndex, slotProps) {\n var lastRow = this.findLastSelectableRow();\n lastRow && this.focusRowChange(row, lastRow);\n if (event.ctrlKey && event.shiftKey) {\n var data = this.dataToRender(slotProps.rows);\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({\n originalEvent: event,\n data: rowData,\n index: rowIndex\n });\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n if (event.shiftKey && this.selection !== null) {\n var data = this.dataToRender(slotProps.rows);\n var index;\n if (this.selection.length > 0) {\n var firstSelectedRowIndex, lastSelectedRowIndex;\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n var _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey: function onTabKey(event, rowIndex) {\n var body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n var rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n if (event.code === 'Tab' && rows && rows.length > 0) {\n var firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n var focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow: function findNextSelectableRow(row) {\n var nextRow = row.nextElementSibling;\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow: function findPrevSelectableRow(row) {\n var prevRow = row.previousElementSibling;\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow: function findFirstSelectableRow() {\n var firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n return firstRow;\n },\n findLastSelectableRow: function findLastSelectableRow() {\n var rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange: function focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio: function toggleRowWithRadio(event) {\n var rowData = event.data;\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', {\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.index,\n type: 'radiobutton'\n });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', {\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.index,\n type: 'radiobutton'\n });\n }\n },\n toggleRowWithCheckbox: function toggleRowWithCheckbox(event) {\n var rowData = event.data;\n if (this.isSelected(rowData)) {\n var selectionIndex = this.findIndexInSelection(rowData);\n var _selection = this.selection.filter(function (val, i) {\n return i != selectionIndex;\n });\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', {\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.index,\n type: 'checkbox'\n });\n } else {\n var _selection5 = this.selection ? _toConsumableArray(this.selection) : [];\n _selection5 = [].concat(_toConsumableArray(_selection5), [rowData]);\n this.$emit('update:selection', _selection5);\n this.$emit('row-select', {\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.index,\n type: 'checkbox'\n });\n }\n },\n toggleRowsWithCheckbox: function toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n var originalEvent = event.originalEvent,\n checked = event.checked;\n var _selection = [];\n if (checked) {\n _selection = this.frozenValue ? [].concat(_toConsumableArray(this.frozenValue), _toConsumableArray(this.processedData)) : this.processedData;\n this.$emit('row-select-all', {\n originalEvent: originalEvent,\n data: _selection\n });\n } else {\n this.$emit('row-unselect-all', {\n originalEvent: originalEvent\n });\n }\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode: function isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode: function isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected: function isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;else return this.equals(rowData, this.selection);\n }\n }\n return false;\n },\n findIndexInSelection: function findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex: function findIndex(rowData, collection) {\n var index = -1;\n if (collection && collection.length) {\n for (var i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n return index;\n },\n updateSelectionKeys: function updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n if (Array.isArray(selection)) {\n var _iterator3 = _createForOfIteratorHelper(selection),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var data = _step3.value;\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys: function updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n var _iterator4 = _createForOfIteratorHelper(editingRows),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var data = _step4.value;\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals: function equals$1(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange: function selectRange(event) {\n var rangeStart, rangeEnd;\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n var value = this.processedData;\n var _selection = [];\n for (var i = rangeStart; i <= rangeEnd; i++) {\n var rangeRowData = value[i];\n _selection.push(rangeRowData);\n this.$emit('row-select', {\n originalEvent: event,\n data: rangeRowData,\n type: 'row'\n });\n }\n this.$emit('update:selection', _selection);\n },\n exportCSV: function exportCSV$1(options, data) {\n var _this6 = this;\n var csv = \"\\uFEFF\";\n if (!data) {\n data = this.processedData;\n if (options && options.selectionOnly) data = this.selection || [];else if (this.frozenValue) data = data ? [].concat(_toConsumableArray(this.frozenValue), _toConsumableArray(data)) : this.frozenValue;\n }\n\n //headers\n var headerInitiated = false;\n for (var i = 0; i < this.columns.length; i++) {\n var column = this.columns[i];\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;else headerInitiated = true;\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach(function (record) {\n csv += '\\n';\n var rowInitiated = false;\n for (var _i = 0; _i < _this6.columns.length; _i++) {\n var _column = _this6.columns[_i];\n if (_this6.columnProp(_column, 'exportable') !== false && _this6.columnProp(_column, 'field')) {\n if (rowInitiated) csv += _this6.csvSeparator;else rowInitiated = true;\n var cellData = resolveFieldData(record, _this6.columnProp(_column, 'field'));\n if (cellData != null) {\n if (_this6.exportFunction) {\n cellData = _this6.exportFunction({\n data: cellData,\n field: _this6.columnProp(_column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n var footerInitiated = false;\n for (var _i2 = 0; _i2 < this.columns.length; _i2++) {\n var _column2 = this.columns[_i2];\n if (_i2 === 0) csv += '\\n';\n if (this.columnProp(_column2, 'exportable') !== false && this.columnProp(_column2, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;else footerInitiated = true;\n csv += '\"' + (this.columnProp(_column2, 'exportFooter') || this.columnProp(_column2, 'footer') || this.columnProp(_column2, 'field')) + '\"';\n }\n }\n exportCSV(csv, this.exportFilename);\n },\n resetPage: function resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n onColumnResizeStart: function onColumnResizeStart(event) {\n var containerLeft = getOffset(this.$el).left;\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n this.bindColumnResizeEvents();\n },\n onColumnResize: function onColumnResize(event) {\n var containerLeft = getOffset(this.$el).left;\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, {\n 'user-select': 'none'\n });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd: function onColumnResizeEnd() {\n var delta = this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n var columnWidth = this.resizeColumnElement.offsetWidth;\n var newColumnWidth = columnWidth + delta;\n var minWidth = this.resizeColumnElement.style.minWidth || 15;\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n var nextColumn = this.resizeColumnElement.nextElementSibling;\n var nextColumnWidth = nextColumn.offsetWidth - delta;\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n var tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n var updateTableWidth = function updateTableWidth(el) {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n if (!this.virtualScrollerDisabled) {\n var body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n var frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\n }\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n this.unbindColumnResizeEvents();\n if (this.isStateful()) {\n this.saveState();\n }\n },\n resizeTableCells: function resizeTableCells(newColumnWidth, nextColumnWidth) {\n var colIndex = getIndex(this.resizeColumnElement);\n var widths = [];\n var headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n headers.forEach(function (header) {\n return widths.push(getOuterWidth(header));\n });\n this.destroyStyleElement();\n this.createStyleElement();\n var innerHTML = '';\n var selector = \"[data-pc-name=\\\"datatable\\\"][\".concat(this.attributeSelector, \"] > [data-pc-section=\\\"tablecontainer\\\"] \").concat(this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]', \" > table[data-pc-section=\\\"table\\\"]\");\n widths.forEach(function (width, index) {\n var colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n var style = \"width: \".concat(colWidth, \"px !important; max-width: \").concat(colWidth, \"px !important\");\n innerHTML += \"\\n \".concat(selector, \" > thead[data-pc-section=\\\"thead\\\"] > tr > th:nth-child(\").concat(index + 1, \"),\\n \").concat(selector, \" > tbody[data-pc-section=\\\"tbody\\\"] > tr > td:nth-child(\").concat(index + 1, \"),\\n \").concat(selector, \" > tfoot[data-pc-section=\\\"tfoot\\\"] > tr > td:nth-child(\").concat(index + 1, \") {\\n \").concat(style, \"\\n }\\n \");\n });\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents: function bindColumnResizeEvents() {\n var _this7 = this;\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = document.addEventListener('mousemove', function () {\n if (_this7.columnResizing) {\n _this7.onColumnResize(event);\n }\n });\n }\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', function () {\n if (_this7.columnResizing) {\n _this7.columnResizing = false;\n _this7.onColumnResizeEnd();\n }\n });\n }\n },\n unbindColumnResizeEvents: function unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnHeaderMouseDown: function onColumnHeaderMouseDown(e) {\n var event = e.originalEvent;\n var column = e.column;\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart: function onColumnHeaderDragStart(e) {\n var event = e.originalEvent,\n column = e.column;\n if (this.columnResizing) {\n event.preventDefault();\n return;\n }\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver: function onColumnHeaderDragOver(e) {\n var event = e.originalEvent,\n column = e.column;\n var dropHeader = this.findParentHeader(event.target);\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n var containerOffset = getOffset(this.$el);\n var dropHeaderOffset = getOffset(dropHeader);\n if (this.draggedColumnElement !== dropHeader) {\n var targetLeft = dropHeaderOffset.left - containerOffset.left;\n var columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave: function onColumnHeaderDragLeave(e) {\n var event = e.originalEvent;\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop: function onColumnHeaderDrop(e) {\n var _this8 = this;\n var event = e.originalEvent,\n column = e.column;\n event.preventDefault();\n if (this.draggedColumnElement) {\n var dragIndex = getIndex(this.draggedColumnElement);\n var dropIndex = getIndex(this.findParentHeader(event.target));\n var allowDrop = dragIndex !== dropIndex;\n if (allowDrop && (dropIndex - dragIndex === 1 && this.dropPosition === -1 || dropIndex - dragIndex === -1 && this.dropPosition === 1)) {\n allowDrop = false;\n }\n if (allowDrop) {\n var isSameColumn = function isSameColumn(col1, col2) {\n return _this8.columnProp(col1, 'columnKey') || _this8.columnProp(col2, 'columnKey') ? _this8.columnProp(col1, 'columnKey') === _this8.columnProp(col2, 'columnKey') : _this8.columnProp(col1, 'field') === _this8.columnProp(col2, 'field');\n };\n var dragColIndex = this.columns.findIndex(function (child) {\n return isSameColumn(child, _this8.draggedColumn);\n });\n var dropColIndex = this.columns.findIndex(function (child) {\n return isSameColumn(child, column);\n });\n var widths = [];\n var headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n headers.forEach(function (header) {\n return widths.push(getOuterWidth(header));\n });\n var movedItem = widths.find(function (_, index) {\n return index === dragColIndex;\n });\n var remainingItems = widths.filter(function (_, index) {\n return index !== dragColIndex;\n });\n var reorderedWidths = [].concat(_toConsumableArray(remainingItems.slice(0, dropColIndex)), [movedItem], _toConsumableArray(remainingItems.slice(dropColIndex)));\n this.addColumnWidthStyles(reorderedWidths);\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader: function findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n var parent = element.parentElement;\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n return parent;\n }\n },\n findColumnByKey: function findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (var i = 0; i < columns.length; i++) {\n var column = columns[i];\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n return null;\n },\n onRowMouseDown: function onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;else event.currentTarget.draggable = false;\n },\n onRowDragStart: function onRowDragStart(e) {\n var event = e.originalEvent;\n var index = e.index;\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver: function onRowDragOver(e) {\n var event = e.originalEvent;\n var index = e.index;\n if (this.rowDragging && this.draggedRowIndex !== index) {\n var rowElement = event.currentTarget;\n var rowY = getOffset(rowElement).top + getWindowScrollTop();\n var pageY = event.pageY;\n var rowMidY = rowY + getOuterHeight(rowElement) / 2;\n var prevRowElement = rowElement.previousElementSibling;\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n this.droppedRowIndex = index;\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n event.preventDefault();\n }\n },\n onRowDragLeave: function onRowDragLeave(event) {\n var rowElement = event.currentTarget;\n var prevRowElement = rowElement.previousElementSibling;\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd: function onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop: function onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n var dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n var processedData = _toConsumableArray(this.processedData);\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow: function toggleRow(event) {\n var _this9 = this;\n var expanded = event.expanded,\n rest = _objectWithoutProperties(event, _excluded);\n var rowData = event.data;\n var expandedRows;\n if (this.dataKey) {\n var value = resolveFieldData(rowData, this.dataKey);\n expandedRows = this.expandedRows ? _objectSpread$1({}, this.expandedRows) : {};\n expanded ? expandedRows[value] = true : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? _toConsumableArray(this.expandedRows) : [];\n expanded ? expandedRows.push(rowData) : expandedRows = expandedRows.filter(function (d) {\n return !_this9.equals(rowData, d);\n });\n }\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup: function toggleRowGroup(e) {\n var event = e.originalEvent;\n var data = e.data;\n var groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n var _expandedRowGroups = this.expandedRowGroups ? _toConsumableArray(this.expandedRowGroups) : [];\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter(function (group) {\n return group !== groupFieldValue;\n });\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', {\n originalEvent: event,\n data: groupFieldValue\n });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', {\n originalEvent: event,\n data: groupFieldValue\n });\n }\n },\n isRowGroupExpanded: function isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n var groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n return false;\n },\n isStateful: function isStateful() {\n return this.stateKey != null;\n },\n getStorage: function getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n case 'session':\n return window.sessionStorage;\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState: function saveState() {\n var storage = this.getStorage();\n var state = {};\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n if (this.d_sortField) {\n state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n this.$emit('state-save', state);\n },\n restoreState: function restoreState() {\n var storage = this.getStorage();\n var stateString = storage.getItem(this.stateKey);\n var dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n var reviver = function reviver(key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n return value;\n };\n if (stateString) {\n var restoredState = JSON.parse(stateString, reviver);\n if (this.paginator) {\n this.d_first = restoredState.first;\n this.d_rows = restoredState.rows;\n }\n if (restoredState.sortField) {\n this.d_sortField = restoredState.sortField;\n this.d_sortOrder = restoredState.sortOrder;\n }\n if (restoredState.multiSortMeta) {\n this.d_multiSortMeta = restoredState.multiSortMeta;\n }\n if (restoredState.filters) {\n this.$emit('update:filters', restoredState.filters);\n }\n if (this.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n if (this.reorderableColumns) {\n this.d_columnOrder = restoredState.columnOrder;\n }\n if (restoredState.expandedRows) {\n this.$emit('update:expandedRows', restoredState.expandedRows);\n }\n if (restoredState.expandedRowGroups) {\n this.$emit('update:expandedRowGroups', restoredState.expandedRowGroups);\n }\n if (restoredState.selection) {\n this.d_selectionKeys = restoredState.d_selectionKeys;\n this.$emit('update:selection', restoredState.selection);\n }\n this.$emit('state-restore', restoredState);\n }\n },\n saveColumnWidths: function saveColumnWidths(state) {\n var widths = [];\n var headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n headers.forEach(function (header) {\n return widths.push(getOuterWidth(header));\n });\n state.columnWidths = widths.join(',');\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles: function addColumnWidthStyles(widths) {\n this.createStyleElement();\n var innerHTML = '';\n var selector = \"[data-pc-name=\\\"datatable\\\"][\".concat(this.attributeSelector, \"] > [data-pc-section=\\\"tablecontainer\\\"] \").concat(this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]', \" > table[data-pc-section=\\\"table\\\"]\");\n widths.forEach(function (width, index) {\n var style = \"width: \".concat(width, \"px !important; max-width: \").concat(width, \"px !important\");\n innerHTML += \"\\n \".concat(selector, \" > thead[data-pc-section=\\\"thead\\\"] > tr > th:nth-child(\").concat(index + 1, \"),\\n \").concat(selector, \" > tbody[data-pc-section=\\\"tbody\\\"] > tr > td:nth-child(\").concat(index + 1, \"),\\n \").concat(selector, \" > tfoot[data-pc-section=\\\"tfoot\\\"] > tr > td:nth-child(\").concat(index + 1, \") {\\n \").concat(style, \"\\n }\\n \");\n });\n this.styleElement.innerHTML = innerHTML;\n },\n restoreColumnWidths: function restoreColumnWidths() {\n if (this.columnWidthsState) {\n var widths = this.columnWidthsState.split(',');\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit: function onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete: function onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel: function onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit: function onRowEditInit(event) {\n var _editingRows = this.editingRows ? _toConsumableArray(this.editingRows) : [];\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave: function onRowEditSave(event) {\n var _editingRows = _toConsumableArray(this.editingRows);\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel: function onRowEditCancel(event) {\n var _editingRows = _toConsumableArray(this.editingRows);\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange: function onEditingMetaChange(event) {\n var data = event.data,\n field = event.field,\n index = event.index,\n editing = event.editing;\n var editingMeta = _objectSpread$1({}, this.d_editingMeta);\n var meta = editingMeta[index];\n if (editing) {\n !meta && (meta = editingMeta[index] = {\n data: _objectSpread$1({}, data),\n fields: []\n });\n meta['fields'].push(field);\n } else if (meta) {\n var fields = meta['fields'].filter(function (f) {\n return f !== field;\n });\n !fields.length ? delete editingMeta[index] : meta['fields'] = fields;\n }\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData: function clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent: function createLazyLoadEvent(event) {\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.d_filters\n };\n },\n hasGlobalFilter: function hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange: function onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply: function onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters: function cloneFilters() {\n var cloned = {};\n if (this.filters) {\n Object.entries(this.filters).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n prop = _ref4[0],\n value = _ref4[1];\n cloned[prop] = value.operator ? {\n operator: value.operator,\n constraints: value.constraints.map(function (constraint) {\n return _objectSpread$1({}, constraint);\n })\n } : _objectSpread$1({}, value);\n });\n }\n return cloned;\n },\n updateReorderableColumns: function updateReorderableColumns() {\n var _this10 = this;\n var columnOrder = [];\n this.columns.forEach(function (col) {\n return columnOrder.push(_this10.columnProp(col, 'columnKey') || _this10.columnProp(col, 'field'));\n });\n this.d_columnOrder = columnOrder;\n },\n createStyleElement: function createStyleElement() {\n var _this$$primevue;\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', (_this$$primevue = this.$primevue) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.config) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.csp) === null || _this$$primevue === void 0 ? void 0 : _this$$primevue.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement: function destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n dataToRender: function dataToRender(data) {\n var _data = data || this.processedData;\n if (_data && this.paginator) {\n var first = this.lazy ? 0 : this.d_first;\n return _data.slice(first, first + this.d_rows);\n }\n return _data;\n },\n getVirtualScrollerRef: function getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle: function hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns: function columns() {\n var cols = this.d_columns.get(this);\n if (this.reorderableColumns && this.d_columnOrder) {\n var orderedColumns = [];\n var _iterator5 = _createForOfIteratorHelper(this.d_columnOrder),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var columnKey = _step5.value;\n var column = this.findColumnByKey(cols, columnKey);\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n return [].concat(orderedColumns, _toConsumableArray(cols.filter(function (item) {\n return orderedColumns.indexOf(item) < 0;\n })));\n }\n return cols;\n },\n columnGroups: function columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup: function headerColumnGroup() {\n var _this$columnGroups,\n _this11 = this;\n return (_this$columnGroups = this.columnGroups) === null || _this$columnGroups === void 0 ? void 0 : _this$columnGroups.find(function (group) {\n return _this11.columnProp(group, 'type') === 'header';\n });\n },\n footerColumnGroup: function footerColumnGroup() {\n var _this$columnGroups2,\n _this12 = this;\n return (_this$columnGroups2 = this.columnGroups) === null || _this$columnGroups2 === void 0 ? void 0 : _this$columnGroups2.find(function (group) {\n return _this12.columnProp(group, 'type') === 'footer';\n });\n },\n hasFilters: function hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData: function processedData() {\n var _this$virtualScroller;\n var data = this.value || [];\n if (!this.lazy && !((_this$virtualScroller = this.virtualScrollerOptions) !== null && _this$virtualScroller !== void 0 && _this$virtualScroller.lazy)) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n }\n }\n return data;\n },\n totalRecordsLength: function totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n var data = this.processedData;\n return data ? data.length : 0;\n }\n },\n empty: function empty() {\n var data = this.processedData;\n return !data || data.length === 0;\n },\n paginatorTop: function paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom: function paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n sorted: function sorted() {\n return this.d_sortField || this.d_multiSortMeta && this.d_multiSortMeta.length > 0;\n },\n allRowsSelected: function allRowsSelected() {\n var _this13 = this;\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n var val = this.frozenValue ? [].concat(_toConsumableArray(this.frozenValue), _toConsumableArray(this.processedData)) : this.processedData;\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every(function (v) {\n return _this13.selection.some(function (s) {\n return _this13.equals(s, v);\n });\n });\n }\n },\n attributeSelector: function attributeSelector() {\n return UniqueComponentId();\n },\n groupRowSortField: function groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps: function headerFilterButtonProps() {\n return _objectSpread$1(_objectSpread$1({\n filter: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n }, this.filterButtonProps), {}, {\n inline: _objectSpread$1({\n clear: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n }, this.filterButtonProps.inline),\n popover: _objectSpread$1({\n addRule: {\n severity: 'info',\n text: true,\n size: 'small'\n },\n removeRule: {\n severity: 'danger',\n text: true,\n size: 'small'\n },\n apply: {\n size: 'small'\n },\n clear: {\n outlined: true,\n size: 'small'\n }\n }, this.filterButtonProps.popover)\n });\n },\n rowEditButtonProps: function rowEditButtonProps() {\n return _objectSpread$1(_objectSpread$1({}, {\n init: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n save: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n cancel: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n }), this.editButtonProps);\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: script$1,\n DTTableBody: script$7,\n DTTableFooter: script$5,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_DTPaginator = resolveComponent(\"DTPaginator\");\n var _component_DTTableHeader = resolveComponent(\"DTTableHeader\");\n var _component_DTTableBody = resolveComponent(\"DTTableBody\");\n var _component_DTTableFooter = resolveComponent(\"DTTableFooter\");\n var _component_DTVirtualScroller = resolveComponent(\"DTVirtualScroller\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n \"data-scrollselectors\": \".p-datatable-wrapper\"\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\"), _ctx.loading ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('mask')\n }, _ctx.ptm('mask')), [_ctx.$slots.loading ? renderSlot(_ctx.$slots, \"loading\", {\n key: 0\n }) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [_ctx.$slots.loadingicon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.loadingicon), {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('loadingIcon'))\n }, null, 8, [\"class\"])) : _ctx.loadingIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('loadingIcon'), 'pi-spin', _ctx.loadingIcon]\n }, _ctx.ptm('loadingIcon')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 2,\n spin: \"\",\n \"class\": _ctx.cx('loadingIcon')\n }, _ctx.ptm('loadingIcon')), null, 16, [\"class\"]))], 64))], 16)) : createCommentVNode(\"\", true), _ctx.$slots.header ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, \"header\")], 16)) : createCommentVNode(\"\", true), $options.paginatorTop ? (openBlock(), createBlock(_component_DTPaginator, {\n key: 2,\n rows: $data.d_rows,\n first: $data.d_first,\n totalRecords: $options.totalRecordsLength,\n pageLinkSize: _ctx.pageLinkSize,\n template: _ctx.paginatorTemplate,\n rowsPerPageOptions: _ctx.rowsPerPageOptions,\n currentPageReportTemplate: _ctx.currentPageReportTemplate,\n \"class\": normalizeClass(_ctx.cx('pcPaginator', {\n position: 'top'\n })),\n onPage: _cache[0] || (_cache[0] = function ($event) {\n return $options.onPage($event);\n }),\n alwaysShow: _ctx.alwaysShowPaginator,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcPaginator')\n }, createSlots({\n _: 2\n }, [_ctx.$slots.paginatorstart ? {\n name: \"start\",\n fn: withCtx(function () {\n return [renderSlot(_ctx.$slots, \"paginatorstart\")];\n }),\n key: \"0\"\n } : undefined, _ctx.$slots.paginatorend ? {\n name: \"end\",\n fn: withCtx(function () {\n return [renderSlot(_ctx.$slots, \"paginatorend\")];\n }),\n key: \"1\"\n } : undefined, _ctx.$slots.paginatorfirstpagelinkicon ? {\n name: \"firstpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorfirstpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"2\"\n } : undefined, _ctx.$slots.paginatorprevpagelinkicon ? {\n name: \"prevpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorprevpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"3\"\n } : undefined, _ctx.$slots.paginatornextpagelinkicon ? {\n name: \"nextpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatornextpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"4\"\n } : undefined, _ctx.$slots.paginatorlastpagelinkicon ? {\n name: \"lastpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorlastpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"5\"\n } : undefined, _ctx.$slots.paginatorjumptopagedropdownicon ? {\n name: \"jumptopagedropdownicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorjumptopagedropdownicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"6\"\n } : undefined, _ctx.$slots.paginatorrowsperpagedropdownicon ? {\n name: \"rowsperpagedropdownicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorrowsperpagedropdownicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"7\"\n } : undefined]), 1032, [\"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"template\", \"rowsPerPageOptions\", \"currentPageReportTemplate\", \"class\", \"alwaysShow\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('tableContainer'),\n style: [_ctx.sx('tableContainer'), {\n maxHeight: $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }]\n }, _ctx.ptm('tableContainer')), [createVNode(_component_DTVirtualScroller, mergeProps({\n ref: \"virtualScroller\"\n }, _ctx.virtualScrollerOptions, {\n items: $options.processedData,\n columns: $options.columns,\n style: _ctx.scrollHeight !== 'flex' ? {\n height: _ctx.scrollHeight\n } : undefined,\n scrollHeight: _ctx.scrollHeight !== 'flex' ? undefined : '100%',\n disabled: $options.virtualScrollerDisabled,\n loaderDisabled: \"\",\n inline: \"\",\n autoSize: \"\",\n showSpacer: false,\n pt: _ctx.ptm('virtualScroller')\n }), {\n content: withCtx(function (slotProps) {\n return [createElementVNode(\"table\", mergeProps({\n ref: \"table\",\n role: \"table\",\n \"class\": [_ctx.cx('table'), _ctx.tableClass],\n style: [_ctx.tableStyle, slotProps.spacerStyle]\n }, _objectSpread(_objectSpread({}, _ctx.tableProps), _ctx.ptm('table'))), [createVNode(_component_DTTableHeader, {\n columnGroup: $options.headerColumnGroup,\n columns: slotProps.columns,\n rowGroupMode: _ctx.rowGroupMode,\n groupRowsBy: _ctx.groupRowsBy,\n groupRowSortField: $options.groupRowSortField,\n reorderableColumns: _ctx.reorderableColumns,\n resizableColumns: _ctx.resizableColumns,\n allRowsSelected: $options.allRowsSelected,\n empty: $options.empty,\n sortMode: _ctx.sortMode,\n sortField: $data.d_sortField,\n sortOrder: $data.d_sortOrder,\n multiSortMeta: $data.d_multiSortMeta,\n filters: $data.d_filters,\n filtersStore: _ctx.filters,\n filterDisplay: _ctx.filterDisplay,\n filterButtonProps: $options.headerFilterButtonProps,\n filterInputProps: _ctx.filterInputProps,\n first: $data.d_first,\n onColumnClick: _cache[1] || (_cache[1] = function ($event) {\n return $options.onColumnHeaderClick($event);\n }),\n onColumnMousedown: _cache[2] || (_cache[2] = function ($event) {\n return $options.onColumnHeaderMouseDown($event);\n }),\n onFilterChange: $options.onFilterChange,\n onFilterApply: $options.onFilterApply,\n onColumnDragstart: _cache[3] || (_cache[3] = function ($event) {\n return $options.onColumnHeaderDragStart($event);\n }),\n onColumnDragover: _cache[4] || (_cache[4] = function ($event) {\n return $options.onColumnHeaderDragOver($event);\n }),\n onColumnDragleave: _cache[5] || (_cache[5] = function ($event) {\n return $options.onColumnHeaderDragLeave($event);\n }),\n onColumnDrop: _cache[6] || (_cache[6] = function ($event) {\n return $options.onColumnHeaderDrop($event);\n }),\n onColumnResizestart: _cache[7] || (_cache[7] = function ($event) {\n return $options.onColumnResizeStart($event);\n }),\n onCheckboxChange: _cache[8] || (_cache[8] = function ($event) {\n return $options.toggleRowsWithCheckbox($event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"columnGroup\", \"columns\", \"rowGroupMode\", \"groupRowsBy\", \"groupRowSortField\", \"reorderableColumns\", \"resizableColumns\", \"allRowsSelected\", \"empty\", \"sortMode\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"filters\", \"filtersStore\", \"filterDisplay\", \"filterButtonProps\", \"filterInputProps\", \"first\", \"onFilterChange\", \"onFilterApply\", \"unstyled\", \"pt\"]), _ctx.frozenValue ? (openBlock(), createBlock(_component_DTTableBody, {\n key: 0,\n ref: \"frozenBodyRef\",\n value: _ctx.frozenValue,\n frozenRow: true,\n columns: slotProps.columns,\n first: $data.d_first,\n dataKey: _ctx.dataKey,\n selection: _ctx.selection,\n selectionKeys: $data.d_selectionKeys,\n selectionMode: _ctx.selectionMode,\n contextMenu: _ctx.contextMenu,\n contextMenuSelection: _ctx.contextMenuSelection,\n rowGroupMode: _ctx.rowGroupMode,\n groupRowsBy: _ctx.groupRowsBy,\n expandableRowGroups: _ctx.expandableRowGroups,\n rowClass: _ctx.rowClass,\n rowStyle: _ctx.rowStyle,\n editMode: _ctx.editMode,\n compareSelectionBy: _ctx.compareSelectionBy,\n scrollable: _ctx.scrollable,\n expandedRowIcon: _ctx.expandedRowIcon,\n collapsedRowIcon: _ctx.collapsedRowIcon,\n expandedRows: _ctx.expandedRows,\n expandedRowGroups: _ctx.expandedRowGroups,\n editingRows: _ctx.editingRows,\n editingRowKeys: $data.d_editingRowKeys,\n templates: _ctx.$slots,\n editButtonProps: $options.rowEditButtonProps,\n isVirtualScrollerDisabled: true,\n onRowgroupToggle: $options.toggleRowGroup,\n onRowClick: _cache[9] || (_cache[9] = function ($event) {\n return $options.onRowClick($event);\n }),\n onRowDblclick: _cache[10] || (_cache[10] = function ($event) {\n return $options.onRowDblClick($event);\n }),\n onRowRightclick: _cache[11] || (_cache[11] = function ($event) {\n return $options.onRowRightClick($event);\n }),\n onRowTouchend: $options.onRowTouchEnd,\n onRowKeydown: $options.onRowKeyDown,\n onRowMousedown: $options.onRowMouseDown,\n onRowDragstart: _cache[12] || (_cache[12] = function ($event) {\n return $options.onRowDragStart($event);\n }),\n onRowDragover: _cache[13] || (_cache[13] = function ($event) {\n return $options.onRowDragOver($event);\n }),\n onRowDragleave: _cache[14] || (_cache[14] = function ($event) {\n return $options.onRowDragLeave($event);\n }),\n onRowDragend: _cache[15] || (_cache[15] = function ($event) {\n return $options.onRowDragEnd($event);\n }),\n onRowDrop: _cache[16] || (_cache[16] = function ($event) {\n return $options.onRowDrop($event);\n }),\n onRowToggle: _cache[17] || (_cache[17] = function ($event) {\n return $options.toggleRow($event);\n }),\n onRadioChange: _cache[18] || (_cache[18] = function ($event) {\n return $options.toggleRowWithRadio($event);\n }),\n onCheckboxChange: _cache[19] || (_cache[19] = function ($event) {\n return $options.toggleRowWithCheckbox($event);\n }),\n onCellEditInit: _cache[20] || (_cache[20] = function ($event) {\n return $options.onCellEditInit($event);\n }),\n onCellEditComplete: _cache[21] || (_cache[21] = function ($event) {\n return $options.onCellEditComplete($event);\n }),\n onCellEditCancel: _cache[22] || (_cache[22] = function ($event) {\n return $options.onCellEditCancel($event);\n }),\n onRowEditInit: _cache[23] || (_cache[23] = function ($event) {\n return $options.onRowEditInit($event);\n }),\n onRowEditSave: _cache[24] || (_cache[24] = function ($event) {\n return $options.onRowEditSave($event);\n }),\n onRowEditCancel: _cache[25] || (_cache[25] = function ($event) {\n return $options.onRowEditCancel($event);\n }),\n editingMeta: $data.d_editingMeta,\n onEditingMetaChange: $options.onEditingMetaChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"value\", \"columns\", \"first\", \"dataKey\", \"selection\", \"selectionKeys\", \"selectionMode\", \"contextMenu\", \"contextMenuSelection\", \"rowGroupMode\", \"groupRowsBy\", \"expandableRowGroups\", \"rowClass\", \"rowStyle\", \"editMode\", \"compareSelectionBy\", \"scrollable\", \"expandedRowIcon\", \"collapsedRowIcon\", \"expandedRows\", \"expandedRowGroups\", \"editingRows\", \"editingRowKeys\", \"templates\", \"editButtonProps\", \"onRowgroupToggle\", \"onRowTouchend\", \"onRowKeydown\", \"onRowMousedown\", \"editingMeta\", \"onEditingMetaChange\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), createVNode(_component_DTTableBody, {\n ref: \"bodyRef\",\n value: $options.dataToRender(slotProps.rows),\n \"class\": normalizeClass(slotProps.styleClass),\n columns: slotProps.columns,\n empty: $options.empty,\n first: $data.d_first,\n dataKey: _ctx.dataKey,\n selection: _ctx.selection,\n selectionKeys: $data.d_selectionKeys,\n selectionMode: _ctx.selectionMode,\n contextMenu: _ctx.contextMenu,\n contextMenuSelection: _ctx.contextMenuSelection,\n rowGroupMode: _ctx.rowGroupMode,\n groupRowsBy: _ctx.groupRowsBy,\n expandableRowGroups: _ctx.expandableRowGroups,\n rowClass: _ctx.rowClass,\n rowStyle: _ctx.rowStyle,\n editMode: _ctx.editMode,\n compareSelectionBy: _ctx.compareSelectionBy,\n scrollable: _ctx.scrollable,\n expandedRowIcon: _ctx.expandedRowIcon,\n collapsedRowIcon: _ctx.collapsedRowIcon,\n expandedRows: _ctx.expandedRows,\n expandedRowGroups: _ctx.expandedRowGroups,\n editingRows: _ctx.editingRows,\n editingRowKeys: $data.d_editingRowKeys,\n templates: _ctx.$slots,\n editButtonProps: $options.rowEditButtonProps,\n virtualScrollerContentProps: slotProps,\n isVirtualScrollerDisabled: $options.virtualScrollerDisabled,\n onRowgroupToggle: $options.toggleRowGroup,\n onRowClick: _cache[26] || (_cache[26] = function ($event) {\n return $options.onRowClick($event);\n }),\n onRowDblclick: _cache[27] || (_cache[27] = function ($event) {\n return $options.onRowDblClick($event);\n }),\n onRowRightclick: _cache[28] || (_cache[28] = function ($event) {\n return $options.onRowRightClick($event);\n }),\n onRowTouchend: $options.onRowTouchEnd,\n onRowKeydown: function onRowKeydown($event) {\n return $options.onRowKeyDown($event, slotProps);\n },\n onRowMousedown: $options.onRowMouseDown,\n onRowDragstart: _cache[29] || (_cache[29] = function ($event) {\n return $options.onRowDragStart($event);\n }),\n onRowDragover: _cache[30] || (_cache[30] = function ($event) {\n return $options.onRowDragOver($event);\n }),\n onRowDragleave: _cache[31] || (_cache[31] = function ($event) {\n return $options.onRowDragLeave($event);\n }),\n onRowDragend: _cache[32] || (_cache[32] = function ($event) {\n return $options.onRowDragEnd($event);\n }),\n onRowDrop: _cache[33] || (_cache[33] = function ($event) {\n return $options.onRowDrop($event);\n }),\n onRowToggle: _cache[34] || (_cache[34] = function ($event) {\n return $options.toggleRow($event);\n }),\n onRadioChange: _cache[35] || (_cache[35] = function ($event) {\n return $options.toggleRowWithRadio($event);\n }),\n onCheckboxChange: _cache[36] || (_cache[36] = function ($event) {\n return $options.toggleRowWithCheckbox($event);\n }),\n onCellEditInit: _cache[37] || (_cache[37] = function ($event) {\n return $options.onCellEditInit($event);\n }),\n onCellEditComplete: _cache[38] || (_cache[38] = function ($event) {\n return $options.onCellEditComplete($event);\n }),\n onCellEditCancel: _cache[39] || (_cache[39] = function ($event) {\n return $options.onCellEditCancel($event);\n }),\n onRowEditInit: _cache[40] || (_cache[40] = function ($event) {\n return $options.onRowEditInit($event);\n }),\n onRowEditSave: _cache[41] || (_cache[41] = function ($event) {\n return $options.onRowEditSave($event);\n }),\n onRowEditCancel: _cache[42] || (_cache[42] = function ($event) {\n return $options.onRowEditCancel($event);\n }),\n editingMeta: $data.d_editingMeta,\n onEditingMetaChange: $options.onEditingMetaChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"value\", \"class\", \"columns\", \"empty\", \"first\", \"dataKey\", \"selection\", \"selectionKeys\", \"selectionMode\", \"contextMenu\", \"contextMenuSelection\", \"rowGroupMode\", \"groupRowsBy\", \"expandableRowGroups\", \"rowClass\", \"rowStyle\", \"editMode\", \"compareSelectionBy\", \"scrollable\", \"expandedRowIcon\", \"collapsedRowIcon\", \"expandedRows\", \"expandedRowGroups\", \"editingRows\", \"editingRowKeys\", \"templates\", \"editButtonProps\", \"virtualScrollerContentProps\", \"isVirtualScrollerDisabled\", \"onRowgroupToggle\", \"onRowTouchend\", \"onRowKeydown\", \"onRowMousedown\", \"editingMeta\", \"onEditingMetaChange\", \"unstyled\", \"pt\"]), $options.hasSpacerStyle(slotProps.spacerStyle) ? (openBlock(), createElementBlock(\"tbody\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('virtualScrollerSpacer'),\n style: {\n height: \"calc(\".concat(slotProps.spacerStyle.height, \" - \").concat(slotProps.rows.length * slotProps.itemSize, \"px)\")\n }\n }, _ctx.ptm('virtualScrollerSpacer')), null, 16)) : createCommentVNode(\"\", true), createVNode(_component_DTTableFooter, {\n columnGroup: $options.footerColumnGroup,\n columns: slotProps.columns,\n pt: _ctx.pt\n }, null, 8, [\"columnGroup\", \"columns\", \"pt\"])], 16)];\n }),\n _: 1\n }, 16, [\"items\", \"columns\", \"style\", \"scrollHeight\", \"disabled\", \"pt\"])], 16), $options.paginatorBottom ? (openBlock(), createBlock(_component_DTPaginator, {\n key: 3,\n rows: $data.d_rows,\n first: $data.d_first,\n totalRecords: $options.totalRecordsLength,\n pageLinkSize: _ctx.pageLinkSize,\n template: _ctx.paginatorTemplate,\n rowsPerPageOptions: _ctx.rowsPerPageOptions,\n currentPageReportTemplate: _ctx.currentPageReportTemplate,\n \"class\": normalizeClass(_ctx.cx('pcPaginator', {\n position: 'bottom'\n })),\n onPage: _cache[43] || (_cache[43] = function ($event) {\n return $options.onPage($event);\n }),\n alwaysShow: _ctx.alwaysShowPaginator,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcPaginator')\n }, createSlots({\n _: 2\n }, [_ctx.$slots.paginatorstart ? {\n name: \"start\",\n fn: withCtx(function () {\n return [renderSlot(_ctx.$slots, \"paginatorstart\")];\n }),\n key: \"0\"\n } : undefined, _ctx.$slots.paginatorend ? {\n name: \"end\",\n fn: withCtx(function () {\n return [renderSlot(_ctx.$slots, \"paginatorend\")];\n }),\n key: \"1\"\n } : undefined, _ctx.$slots.paginatorfirstpagelinkicon ? {\n name: \"firstpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorfirstpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"2\"\n } : undefined, _ctx.$slots.paginatorprevpagelinkicon ? {\n name: \"prevpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorprevpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"3\"\n } : undefined, _ctx.$slots.paginatornextpagelinkicon ? {\n name: \"nextpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatornextpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"4\"\n } : undefined, _ctx.$slots.paginatorlastpagelinkicon ? {\n name: \"lastpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorlastpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"5\"\n } : undefined, _ctx.$slots.paginatorjumptopagedropdownicon ? {\n name: \"jumptopagedropdownicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorjumptopagedropdownicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"6\"\n } : undefined, _ctx.$slots.paginatorrowsperpagedropdownicon ? {\n name: \"rowsperpagedropdownicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorrowsperpagedropdownicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"7\"\n } : undefined]), 1032, [\"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"template\", \"rowsPerPageOptions\", \"currentPageReportTemplate\", \"class\", \"alwaysShow\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), _ctx.$slots.footer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 4,\n \"class\": _ctx.cx('footer')\n }, _ctx.ptm('footer')), [renderSlot(_ctx.$slots, \"footer\")], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n ref: \"resizeHelper\",\n \"class\": _ctx.cx('columnResizeIndicator'),\n style: {\n \"display\": \"none\"\n }\n }, _ctx.ptm('columnResizeIndicator')), null, 16), _ctx.reorderableColumns ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 5,\n ref: \"reorderIndicatorUp\",\n \"class\": _ctx.cx('rowReorderIndicatorUp'),\n style: {\n \"position\": \"absolute\",\n \"display\": \"none\"\n }\n }, _ctx.ptm('rowReorderIndicatorUp')), [(openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.rowreorderindicatorupicon || _ctx.$slots.reorderindicatorupicon || 'ArrowDownIcon')))], 16)) : createCommentVNode(\"\", true), _ctx.reorderableColumns ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 6,\n ref: \"reorderIndicatorDown\",\n \"class\": _ctx.cx('rowReorderIndicatorDown'),\n style: {\n \"position\": \"absolute\",\n \"display\": \"none\"\n }\n }, _ctx.ptm('rowReorderIndicatorDown')), [(openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.rowreorderindicatordownicon || _ctx.$slots.reorderindicatordownicon || 'ArrowUpIcon')))], 16)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar ColumnStyle = BaseStyle.extend({\n name: 'column'\n});\n\nexport { ColumnStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ColumnStyle from 'primevue/column/style';\n\nvar script$1 = {\n name: 'BaseColumn',\n \"extends\": BaseComponent,\n props: {\n columnKey: {\n type: null,\n \"default\": null\n },\n field: {\n type: [String, Function],\n \"default\": null\n },\n sortField: {\n type: [String, Function],\n \"default\": null\n },\n filterField: {\n type: [String, Function],\n \"default\": null\n },\n dataType: {\n type: String,\n \"default\": 'text'\n },\n sortable: {\n type: Boolean,\n \"default\": false\n },\n header: {\n type: null,\n \"default\": null\n },\n footer: {\n type: null,\n \"default\": null\n },\n style: {\n type: null,\n \"default\": null\n },\n \"class\": {\n type: String,\n \"default\": null\n },\n headerStyle: {\n type: null,\n \"default\": null\n },\n headerClass: {\n type: String,\n \"default\": null\n },\n bodyStyle: {\n type: null,\n \"default\": null\n },\n bodyClass: {\n type: String,\n \"default\": null\n },\n footerStyle: {\n type: null,\n \"default\": null\n },\n footerClass: {\n type: String,\n \"default\": null\n },\n showFilterMenu: {\n type: Boolean,\n \"default\": true\n },\n showFilterOperator: {\n type: Boolean,\n \"default\": true\n },\n showClearButton: {\n type: Boolean,\n \"default\": true\n },\n showApplyButton: {\n type: Boolean,\n \"default\": true\n },\n showFilterMatchModes: {\n type: Boolean,\n \"default\": true\n },\n showAddButton: {\n type: Boolean,\n \"default\": true\n },\n filterMatchModeOptions: {\n type: Array,\n \"default\": null\n },\n maxConstraints: {\n type: Number,\n \"default\": 2\n },\n excludeGlobalFilter: {\n type: Boolean,\n \"default\": false\n },\n filterHeaderClass: {\n type: String,\n \"default\": null\n },\n filterHeaderStyle: {\n type: null,\n \"default\": null\n },\n filterMenuClass: {\n type: String,\n \"default\": null\n },\n filterMenuStyle: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n expander: {\n type: Boolean,\n \"default\": false\n },\n colspan: {\n type: Number,\n \"default\": null\n },\n rowspan: {\n type: Number,\n \"default\": null\n },\n rowReorder: {\n type: Boolean,\n \"default\": false\n },\n rowReorderIcon: {\n type: String,\n \"default\": undefined\n },\n reorderableColumn: {\n type: Boolean,\n \"default\": true\n },\n rowEditor: {\n type: Boolean,\n \"default\": false\n },\n frozen: {\n type: Boolean,\n \"default\": false\n },\n alignFrozen: {\n type: String,\n \"default\": 'left'\n },\n exportable: {\n type: Boolean,\n \"default\": true\n },\n exportHeader: {\n type: String,\n \"default\": null\n },\n exportFooter: {\n type: String,\n \"default\": null\n },\n filterMatchMode: {\n type: String,\n \"default\": null\n },\n hidden: {\n type: Boolean,\n \"default\": false\n }\n },\n style: ColumnStyle,\n provide: function provide() {\n return {\n $pcColumn: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Column',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$columns'],\n mounted: function mounted() {\n var _this$$columns;\n (_this$$columns = this.$columns) === null || _this$$columns === void 0 || _this$$columns.add(this.$);\n },\n unmounted: function unmounted() {\n var _this$$columns2;\n (_this$$columns2 = this.$columns) === null || _this$$columns2 === void 0 || _this$$columns2[\"delete\"](this.$);\n },\n render: function render() {\n return null;\n }\n};\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n"],"names":["script","BaseIcon","_hoisted_1","createElementVNode","_hoisted_2","render","_typeof","o","_defineProperty","_toPropertyKey","_toPrimitive","theme","classes","script$a","BaseComponent","script$9","text","render$9","script$8","AngleDoubleLeftIcon","render$8","script$7","Select","render$7","script$6","page","onChange","InputNumber","render$6","script$5","getPTOptions","AngleDoubleRightIcon","render$5","script$4","AngleRightIcon","render$4","script$3","event","render$3","onClick","script$2","AngleLeftIcon","render$2","script$1","render$1","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","r","data","first","key","pageLinks","root","provide","_hoisted_3","_hoisted_4","_hoisted_5","_default","CheckIcon","Checkbox","getColumnPT","getColumnProp","RadioButton","mounted","next","prev","Button","ChevronDownIcon","ChevronRightIcon","BarsIcon","PencilIcon","TimesIcon","F","e","columnProp","field","data2","onRowEditInit","onRowEditSave","onRowEditCancel","getVirtualScrollerProp","updated","rowIndex","updateStickyPosition","containerClass","containerStyle","HelperSet","beforeUnmount","row","hasFooter","filter","Portal","FilterSlashIcon","FilterIcon","TrashIcon","PlusIcon","onKeyDown","sorted","sortOrder","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","Badge","getColumnGroupPT","getColumnGroupProps","getRowPT","getRowProp","rows","handler","removeEmptyFilters","filterValidEntries","filterConstraint","onRowClick","onRowDblClick","onRowRightClick","onRowTouchEnd","onRowKeyDown","toggleRowWithRadio","toggleRowWithCheckbox","checked","isSelected","findIndexInSelection","findIndex","equals$1","updateTableWidth","isSameColumn","columns","onRowMouseDown","onRowDragStart","onRowDragOver","onRowDragLeave","onRowDragEnd","onRowDrop","processedData","toggleRow","isRowGroupExpanded","reviver","onCellEditInit","onCellEditComplete","onCellEditCancel","onEditingMetaChange","editing","empty","attributeSelector","Paginator","VirtualScroller","ArrowDownIcon","ArrowUpIcon","SpinnerIcon"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]} \ No newline at end of file +{"version":3,"file":"index-D3u7l7ha.js","sources":["../../node_modules/@primevue/icons/arrowdown/index.mjs","../../node_modules/@primevue/icons/arrowup/index.mjs","../../node_modules/primevue/paginator/style/index.mjs","../../node_modules/@primevue/icons/angledoubleleft/index.mjs","../../node_modules/@primevue/icons/angledoubleright/index.mjs","../../node_modules/@primevue/icons/angleleft/index.mjs","../../node_modules/primevue/paginator/index.mjs","../../node_modules/primevue/datatable/style/index.mjs","../../node_modules/@primevue/icons/pencil/index.mjs","../../node_modules/primevue/radiobutton/style/index.mjs","../../node_modules/primevue/radiobutton/index.mjs","../../node_modules/@primevue/icons/filter/index.mjs","../../node_modules/@primevue/icons/filterslash/index.mjs","../../node_modules/@primevue/icons/trash/index.mjs","../../node_modules/@primevue/icons/sortalt/index.mjs","../../node_modules/@primevue/icons/sortamountdown/index.mjs","../../node_modules/@primevue/icons/sortamountupalt/index.mjs","../../node_modules/primevue/datatable/index.mjs","../../node_modules/primevue/column/style/index.mjs","../../node_modules/primevue/column/index.mjs"],"sourcesContent":["import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ArrowDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ArrowUpIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-paginator {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-wrap: wrap;\\n background: \".concat(dt('paginator.background'), \";\\n color: \").concat(dt('paginator.color'), \";\\n padding: \").concat(dt('paginator.padding'), \";\\n border-radius: \").concat(dt('paginator.border.radius'), \";\\n gap: \").concat(dt('paginator.gap'), \";\\n}\\n\\n.p-paginator-content {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-wrap: wrap;\\n gap: \").concat(dt('paginator.gap'), \";\\n}\\n\\n.p-paginator-content-start {\\n margin-right: auto;\\n}\\n\\n.p-paginator-content-end {\\n margin-left: auto;\\n}\\n\\n.p-paginator-page,\\n.p-paginator-next,\\n.p-paginator-last,\\n.p-paginator-first,\\n.p-paginator-prev {\\n cursor: pointer;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n line-height: 1;\\n user-select: none;\\n overflow: hidden;\\n position: relative;\\n background: \").concat(dt('paginator.nav.button.background'), \";\\n border: 0 none;\\n color: \").concat(dt('paginator.nav.button.color'), \";\\n min-width: \").concat(dt('paginator.nav.button.width'), \";\\n height: \").concat(dt('paginator.nav.button.height'), \";\\n transition: background \").concat(dt('paginator.transition.duration'), \", color \").concat(dt('paginator.transition.duration'), \", outline-color \").concat(dt('paginator.transition.duration'), \", box-shadow \").concat(dt('paginator.transition.duration'), \";\\n border-radius: \").concat(dt('paginator.nav.button.border.radius'), \";\\n padding: 0;\\n margin: 0;\\n}\\n\\n.p-paginator-page:focus-visible,\\n.p-paginator-next:focus-visible,\\n.p-paginator-last:focus-visible,\\n.p-paginator-first:focus-visible,\\n.p-paginator-prev:focus-visible {\\n box-shadow: \").concat(dt('paginator.nav.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('paginator.nav.button.focus.ring.width'), \" \").concat(dt('paginator.nav.button.focus.ring.style'), \" \").concat(dt('paginator.nav.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('paginator.nav.button.focus.ring.offset'), \";\\n}\\n\\n.p-paginator-page:not(.p-disabled):not(.p-paginator-page-selected):hover,\\n.p-paginator-first:not(.p-disabled):hover,\\n.p-paginator-prev:not(.p-disabled):hover,\\n.p-paginator-next:not(.p-disabled):hover,\\n.p-paginator-last:not(.p-disabled):hover {\\n background: \").concat(dt('paginator.nav.button.hover.background'), \";\\n color: \").concat(dt('paginator.nav.button.hover.color'), \";\\n}\\n\\n.p-paginator-page.p-paginator-page-selected {\\n background: \").concat(dt('paginator.nav.button.selected.background'), \";\\n color: \").concat(dt('paginator.nav.button.selected.color'), \";\\n}\\n\\n.p-paginator-current {\\n color: \").concat(dt('paginator.current.page.report.color'), \";\\n}\\n\\n.p-paginator-pages {\\n display: flex;\\n align-items: center;\\n gap: \").concat(dt('paginator.gap'), \";\\n}\\n\\n.p-paginator-jtp-input .p-inputtext {\\n max-width: \").concat(dt('paginator.jump.to.page.input.max.width'), \";\\n}\\n\");\n};\nvar classes = {\n paginator: function paginator(_ref2) {\n var instance = _ref2.instance,\n key = _ref2.key;\n return ['p-paginator p-component', _defineProperty({\n 'p-paginator-default': !instance.hasBreakpoints()\n }, \"p-paginator-\".concat(key), instance.hasBreakpoints())];\n },\n content: 'p-paginator-content',\n contentStart: 'p-paginator-content-start',\n contentEnd: 'p-paginator-content-end',\n first: function first(_ref4) {\n var instance = _ref4.instance;\n return ['p-paginator-first', {\n 'p-disabled': instance.$attrs.disabled\n }];\n },\n firstIcon: 'p-paginator-first-icon',\n prev: function prev(_ref5) {\n var instance = _ref5.instance;\n return ['p-paginator-prev', {\n 'p-disabled': instance.$attrs.disabled\n }];\n },\n prevIcon: 'p-paginator-prev-icon',\n next: function next(_ref6) {\n var instance = _ref6.instance;\n return ['p-paginator-next', {\n 'p-disabled': instance.$attrs.disabled\n }];\n },\n nextIcon: 'p-paginator-next-icon',\n last: function last(_ref7) {\n var instance = _ref7.instance;\n return ['p-paginator-last', {\n 'p-disabled': instance.$attrs.disabled\n }];\n },\n lastIcon: 'p-paginator-last-icon',\n pages: 'p-paginator-pages',\n page: function page(_ref8) {\n var props = _ref8.props,\n pageLink = _ref8.pageLink;\n return ['p-paginator-page', {\n 'p-paginator-page-selected': pageLink - 1 === props.page\n }];\n },\n current: 'p-paginator-current',\n pcRowPerPageDropdown: 'p-paginator-rpp-dropdown',\n pcJumpToPageDropdown: 'p-paginator-jtp-dropdown',\n pcJumpToPageInput: 'p-paginator-jtp-input'\n};\nvar PaginatorStyle = BaseStyle.extend({\n name: 'paginator',\n theme: theme,\n classes: classes\n});\n\nexport { PaginatorStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleDoubleLeftIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleDoubleRightIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleLeftIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { setAttribute } from '@primeuix/utils/dom';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport PaginatorStyle from 'primevue/paginator/style';\nimport { openBlock, createElementBlock, mergeProps, toDisplayString, resolveDirective, withDirectives, createBlock, resolveDynamicComponent, resolveComponent, normalizeClass, createSlots, withCtx, Fragment, renderList, createTextVNode, normalizeProps, renderSlot, createCommentVNode, createElementVNode } from 'vue';\nimport AngleDoubleLeftIcon from '@primevue/icons/angledoubleleft';\nimport Ripple from 'primevue/ripple';\nimport Select from 'primevue/select';\nimport InputNumber from 'primevue/inputnumber';\nimport AngleDoubleRightIcon from '@primevue/icons/angledoubleright';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport AngleLeftIcon from '@primevue/icons/angleleft';\n\nvar script$a = {\n name: 'BasePaginator',\n \"extends\": BaseComponent,\n props: {\n totalRecords: {\n type: Number,\n \"default\": 0\n },\n rows: {\n type: Number,\n \"default\": 0\n },\n first: {\n type: Number,\n \"default\": 0\n },\n pageLinkSize: {\n type: Number,\n \"default\": 5\n },\n rowsPerPageOptions: {\n type: Array,\n \"default\": null\n },\n template: {\n type: [Object, String],\n \"default\": 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown'\n },\n currentPageReportTemplate: {\n type: null,\n \"default\": '({currentPage} of {totalPages})'\n },\n alwaysShow: {\n type: Boolean,\n \"default\": true\n }\n },\n style: PaginatorStyle,\n provide: function provide() {\n return {\n $pcPaginator: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$9 = {\n name: 'CurrentPageReport',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n pageCount: {\n type: Number,\n \"default\": 0\n },\n currentPage: {\n type: Number,\n \"default\": 0\n },\n page: {\n type: Number,\n \"default\": 0\n },\n first: {\n type: Number,\n \"default\": 0\n },\n rows: {\n type: Number,\n \"default\": 0\n },\n totalRecords: {\n type: Number,\n \"default\": 0\n },\n template: {\n type: String,\n \"default\": '({currentPage} of {totalPages})'\n }\n },\n computed: {\n text: function text() {\n var text = this.template.replace('{currentPage}', this.currentPage).replace('{totalPages}', this.pageCount).replace('{first}', this.pageCount > 0 ? this.first + 1 : 0).replace('{last}', Math.min(this.first + this.rows, this.totalRecords)).replace('{rows}', this.rows).replace('{totalRecords}', this.totalRecords);\n return text;\n }\n }\n};\n\nfunction render$9(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('current')\n }, _ctx.ptm('current')), toDisplayString($options.text), 17);\n}\n\nscript$9.render = render$9;\n\nvar script$8 = {\n name: 'FirstPageLink',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n template: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n disabled: this.$attrs.disabled\n }\n });\n }\n },\n components: {\n AngleDoubleLeftIcon: AngleDoubleLeftIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render$8(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('first'),\n type: \"button\"\n }, $options.getPTOptions('first'), {\n \"data-pc-group-section\": \"pagebutton\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($props.template || 'AngleDoubleLeftIcon'), mergeProps({\n \"class\": _ctx.cx('firstIcon')\n }, $options.getPTOptions('firstIcon')), null, 16, [\"class\"]))], 16)), [[_directive_ripple]]);\n}\n\nscript$8.render = render$8;\n\nvar script$7 = {\n name: 'JumpToPageDropdown',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n emits: ['page-change'],\n props: {\n page: Number,\n pageCount: Number,\n disabled: Boolean,\n templates: null\n },\n methods: {\n onChange: function onChange(value) {\n this.$emit('page-change', value);\n }\n },\n computed: {\n pageOptions: function pageOptions() {\n var opts = [];\n for (var i = 0; i < this.pageCount; i++) {\n opts.push({\n label: String(i + 1),\n value: i\n });\n }\n return opts;\n }\n },\n components: {\n JTPSelect: Select\n }\n};\n\nfunction render$7(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_JTPSelect = resolveComponent(\"JTPSelect\");\n return openBlock(), createBlock(_component_JTPSelect, {\n modelValue: $props.page,\n options: $options.pageOptions,\n optionLabel: \"label\",\n optionValue: \"value\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function ($event) {\n return $options.onChange($event);\n }),\n \"class\": normalizeClass(_ctx.cx('pcJumpToPageDropdown')),\n disabled: $props.disabled,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcJumpToPageDropdown'),\n \"data-pc-group-section\": \"pagedropdown\"\n }, createSlots({\n _: 2\n }, [$props.templates['jumptopagedropdownicon'] ? {\n name: \"dropdownicon\",\n fn: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.templates['jumptopagedropdownicon']), {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"class\"]))];\n }),\n key: \"0\"\n } : undefined]), 1032, [\"modelValue\", \"options\", \"class\", \"disabled\", \"unstyled\", \"pt\"]);\n}\n\nscript$7.render = render$7;\n\nvar script$6 = {\n name: 'JumpToPageInput',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n inheritAttrs: false,\n emits: ['page-change'],\n props: {\n page: Number,\n pageCount: Number,\n disabled: Boolean\n },\n data: function data() {\n return {\n d_page: this.page\n };\n },\n watch: {\n page: function page(newValue) {\n this.d_page = newValue;\n }\n },\n methods: {\n onChange: function onChange(value) {\n if (value !== this.page) {\n this.d_page = value;\n this.$emit('page-change', value - 1);\n }\n }\n },\n computed: {\n inputArialabel: function inputArialabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.jumpToPageInputLabel : undefined;\n }\n },\n components: {\n JTPInput: InputNumber\n }\n};\n\nfunction render$6(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_JTPInput = resolveComponent(\"JTPInput\");\n return openBlock(), createBlock(_component_JTPInput, {\n ref: \"jtpInput\",\n modelValue: $data.d_page,\n \"class\": normalizeClass(_ctx.cx('pcJumpToPageInput')),\n \"aria-label\": $options.inputArialabel,\n disabled: $props.disabled,\n \"onUpdate:modelValue\": $options.onChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcJumpToPageInput')\n }, null, 8, [\"modelValue\", \"class\", \"aria-label\", \"disabled\", \"onUpdate:modelValue\", \"unstyled\", \"pt\"]);\n}\n\nscript$6.render = render$6;\n\nvar script$5 = {\n name: 'LastPageLink',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n template: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n disabled: this.$attrs.disabled\n }\n });\n }\n },\n components: {\n AngleDoubleRightIcon: AngleDoubleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render$5(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('last'),\n type: \"button\"\n }, $options.getPTOptions('last'), {\n \"data-pc-group-section\": \"pagebutton\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($props.template || 'AngleDoubleRightIcon'), mergeProps({\n \"class\": _ctx.cx('lastIcon')\n }, $options.getPTOptions('lastIcon')), null, 16, [\"class\"]))], 16)), [[_directive_ripple]]);\n}\n\nscript$5.render = render$5;\n\nvar script$4 = {\n name: 'NextPageLink',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n template: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n disabled: this.$attrs.disabled\n }\n });\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render$4(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('next'),\n type: \"button\"\n }, $options.getPTOptions('next'), {\n \"data-pc-group-section\": \"pagebutton\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($props.template || 'AngleRightIcon'), mergeProps({\n \"class\": _ctx.cx('nextIcon')\n }, $options.getPTOptions('nextIcon')), null, 16, [\"class\"]))], 16)), [[_directive_ripple]]);\n}\n\nscript$4.render = render$4;\n\nvar script$3 = {\n name: 'PageLinks',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n inheritAttrs: false,\n emits: ['click'],\n props: {\n value: Array,\n page: Number\n },\n methods: {\n getPTOptions: function getPTOptions(pageLink, key) {\n return this.ptm(key, {\n context: {\n active: pageLink === this.page\n }\n });\n },\n onPageLinkClick: function onPageLinkClick(event, pageLink) {\n this.$emit('click', {\n originalEvent: event,\n value: pageLink\n });\n },\n ariaPageLabel: function ariaPageLabel(value) {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.pageLabel.replace(/{page}/g, value) : undefined;\n }\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"aria-label\", \"aria-current\", \"onClick\", \"data-p-active\"];\nfunction render$3(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('pages')\n }, _ctx.ptm('pages')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.value, function (pageLink) {\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: pageLink,\n \"class\": _ctx.cx('page', {\n pageLink: pageLink\n }),\n type: \"button\",\n \"aria-label\": $options.ariaPageLabel(pageLink),\n \"aria-current\": pageLink - 1 === $props.page ? 'page' : undefined,\n onClick: function onClick($event) {\n return $options.onPageLinkClick($event, pageLink);\n },\n ref_for: true\n }, $options.getPTOptions(pageLink - 1, 'page'), {\n \"data-p-active\": pageLink - 1 === $props.page\n }), [createTextVNode(toDisplayString(pageLink), 1)], 16, _hoisted_1)), [[_directive_ripple]]);\n }), 128))], 16);\n}\n\nscript$3.render = render$3;\n\nvar script$2 = {\n name: 'PrevPageLink',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n props: {\n template: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n disabled: this.$attrs.disabled\n }\n });\n }\n },\n components: {\n AngleLeftIcon: AngleLeftIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction render$2(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('prev'),\n type: \"button\"\n }, $options.getPTOptions('prev'), {\n \"data-pc-group-section\": \"pagebutton\"\n }), [(openBlock(), createBlock(resolveDynamicComponent($props.template || 'AngleLeftIcon'), mergeProps({\n \"class\": _ctx.cx('prevIcon')\n }, $options.getPTOptions('prevIcon')), null, 16, [\"class\"]))], 16)), [[_directive_ripple]]);\n}\n\nscript$2.render = render$2;\n\nvar script$1 = {\n name: 'RowsPerPageDropdown',\n hostName: 'Paginator',\n \"extends\": BaseComponent,\n emits: ['rows-change'],\n props: {\n options: Array,\n rows: Number,\n disabled: Boolean,\n templates: null\n },\n methods: {\n onChange: function onChange(value) {\n this.$emit('rows-change', value);\n }\n },\n computed: {\n rowsOptions: function rowsOptions() {\n var opts = [];\n if (this.options) {\n for (var i = 0; i < this.options.length; i++) {\n opts.push({\n label: String(this.options[i]),\n value: this.options[i]\n });\n }\n }\n return opts;\n }\n },\n components: {\n RPPSelect: Select\n }\n};\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_RPPSelect = resolveComponent(\"RPPSelect\");\n return openBlock(), createBlock(_component_RPPSelect, {\n modelValue: $props.rows,\n options: $options.rowsOptions,\n optionLabel: \"label\",\n optionValue: \"value\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function ($event) {\n return $options.onChange($event);\n }),\n \"class\": normalizeClass(_ctx.cx('pcRowPerPageDropdown')),\n disabled: $props.disabled,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcRowPerPageDropdown'),\n \"data-pc-group-section\": \"pagedropdown\"\n }, createSlots({\n _: 2\n }, [$props.templates['rowsperpagedropdownicon'] ? {\n name: \"dropdownicon\",\n fn: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.templates['rowsperpagedropdownicon']), {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"class\"]))];\n }),\n key: \"0\"\n } : undefined]), 1032, [\"modelValue\", \"options\", \"class\", \"disabled\", \"unstyled\", \"pt\"]);\n}\n\nscript$1.render = render$1;\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nvar script = {\n name: 'Paginator',\n \"extends\": script$a,\n inheritAttrs: false,\n emits: ['update:first', 'update:rows', 'page'],\n data: function data() {\n return {\n d_first: this.first,\n d_rows: this.rows\n };\n },\n watch: {\n first: function first(newValue) {\n this.d_first = newValue;\n },\n rows: function rows(newValue) {\n this.d_rows = newValue;\n },\n totalRecords: function totalRecords(newValue) {\n if (this.page > 0 && newValue && this.d_first >= newValue) {\n this.changePage(this.pageCount - 1);\n }\n }\n },\n mounted: function mounted() {\n this.setPaginatorAttribute();\n this.createStyle();\n },\n methods: {\n changePage: function changePage(p) {\n var pc = this.pageCount;\n if (p >= 0 && p < pc) {\n this.d_first = this.d_rows * p;\n var state = {\n page: p,\n first: this.d_first,\n rows: this.d_rows,\n pageCount: pc\n };\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', state);\n }\n },\n changePageToFirst: function changePageToFirst(event) {\n if (!this.isFirstPage) {\n this.changePage(0);\n }\n event.preventDefault();\n },\n changePageToPrev: function changePageToPrev(event) {\n this.changePage(this.page - 1);\n event.preventDefault();\n },\n changePageLink: function changePageLink(event) {\n this.changePage(event.value - 1);\n event.originalEvent.preventDefault();\n },\n changePageToNext: function changePageToNext(event) {\n this.changePage(this.page + 1);\n event.preventDefault();\n },\n changePageToLast: function changePageToLast(event) {\n if (!this.isLastPage) {\n this.changePage(this.pageCount - 1);\n }\n event.preventDefault();\n },\n onRowChange: function onRowChange(value) {\n this.d_rows = value;\n this.changePage(this.page);\n },\n createStyle: function createStyle() {\n var _this = this;\n if (this.hasBreakpoints() && !this.isUnstyled) {\n var _this$$primevue;\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', (_this$$primevue = this.$primevue) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.config) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.csp) === null || _this$$primevue === void 0 ? void 0 : _this$$primevue.nonce);\n document.head.appendChild(this.styleElement);\n var innerHTML = '';\n var keys = Object.keys(this.template);\n var sortedBreakpoints = {};\n keys.sort(function (a, b) {\n return parseInt(a) - parseInt(b);\n }).forEach(function (key) {\n sortedBreakpoints[key] = _this.template[key];\n });\n for (var _i = 0, _Object$entries = Object.entries(Object.entries(sortedBreakpoints)); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n index = _Object$entries$_i[0],\n _Object$entries$_i$ = _slicedToArray(_Object$entries$_i[1], 1),\n key = _Object$entries$_i$[0];\n var minValue = void 0,\n calculatedMinValue = void 0;\n if (key !== 'default' && typeof Object.keys(sortedBreakpoints)[index - 1] === 'string') {\n calculatedMinValue = Number(Object.keys(sortedBreakpoints)[index - 1].slice(0, -2)) + 1 + 'px';\n } else {\n calculatedMinValue = Object.keys(sortedBreakpoints)[index - 1];\n }\n minValue = Object.entries(sortedBreakpoints)[index - 1] ? \"and (min-width:\".concat(calculatedMinValue, \")\") : '';\n if (key === 'default') {\n innerHTML += \"\\n @media screen \".concat(minValue, \" {\\n .paginator[\").concat(this.attributeSelector, \"],\\n display: flex;\\n }\\n }\\n \");\n } else {\n innerHTML += \"\\n.paginator[\".concat(this.attributeSelector, \"], .p-paginator-\").concat(key, \" {\\n display: none;\\n}\\n@media screen \").concat(minValue, \" and (max-width: \").concat(key, \") {\\n .paginator[\").concat(this.attributeSelector, \"], .p-paginator-\").concat(key, \" {\\n display: flex;\\n }\\n .paginator[\").concat(this.attributeSelector, \"],\\n .p-paginator-default{\\n display: none;\\n }\\n}\\n \");\n }\n }\n this.styleElement.innerHTML = innerHTML;\n }\n },\n hasBreakpoints: function hasBreakpoints() {\n return _typeof(this.template) === 'object';\n },\n setPaginatorAttribute: function setPaginatorAttribute() {\n var _this2 = this;\n if (this.$refs.paginator && this.$refs.paginator.length >= 0) {\n _toConsumableArray(this.$refs.paginator).forEach(function (el) {\n el.setAttribute(_this2.attributeSelector, '');\n });\n }\n },\n getAriaLabel: function getAriaLabel(labelType) {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria[labelType] : undefined;\n }\n },\n computed: {\n templateItems: function templateItems() {\n var keys = {};\n if (this.hasBreakpoints()) {\n keys = this.template;\n if (!keys[\"default\"]) {\n keys[\"default\"] = 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown';\n }\n for (var item in keys) {\n keys[item] = this.template[item].split(' ').map(function (value) {\n return value.trim();\n });\n }\n return keys;\n }\n keys['default'] = this.template.split(' ').map(function (value) {\n return value.trim();\n });\n return keys;\n },\n page: function page() {\n return Math.floor(this.d_first / this.d_rows);\n },\n pageCount: function pageCount() {\n return Math.ceil(this.totalRecords / this.d_rows);\n },\n isFirstPage: function isFirstPage() {\n return this.page === 0;\n },\n isLastPage: function isLastPage() {\n return this.page === this.pageCount - 1;\n },\n calculatePageLinkBoundaries: function calculatePageLinkBoundaries() {\n var numberOfPages = this.pageCount;\n var visiblePages = Math.min(this.pageLinkSize, numberOfPages);\n\n //calculate range, keep current in middle if necessary\n var start = Math.max(0, Math.ceil(this.page - visiblePages / 2));\n var end = Math.min(numberOfPages - 1, start + visiblePages - 1);\n\n //check when approaching to last page\n var delta = this.pageLinkSize - (end - start + 1);\n start = Math.max(0, start - delta);\n return [start, end];\n },\n pageLinks: function pageLinks() {\n var pageLinks = [];\n var boundaries = this.calculatePageLinkBoundaries;\n var start = boundaries[0];\n var end = boundaries[1];\n for (var i = start; i <= end; i++) {\n pageLinks.push(i + 1);\n }\n return pageLinks;\n },\n currentState: function currentState() {\n return {\n page: this.page,\n first: this.d_first,\n rows: this.d_rows\n };\n },\n empty: function empty() {\n return this.pageCount === 0;\n },\n currentPage: function currentPage() {\n return this.pageCount > 0 ? this.page + 1 : 0;\n },\n attributeSelector: function attributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n CurrentPageReport: script$9,\n FirstPageLink: script$8,\n LastPageLink: script$5,\n NextPageLink: script$4,\n PageLinks: script$3,\n PrevPageLink: script$2,\n RowsPerPageDropdown: script$1,\n JumpToPageDropdown: script$7,\n JumpToPageInput: script$6\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_FirstPageLink = resolveComponent(\"FirstPageLink\");\n var _component_PrevPageLink = resolveComponent(\"PrevPageLink\");\n var _component_NextPageLink = resolveComponent(\"NextPageLink\");\n var _component_LastPageLink = resolveComponent(\"LastPageLink\");\n var _component_PageLinks = resolveComponent(\"PageLinks\");\n var _component_CurrentPageReport = resolveComponent(\"CurrentPageReport\");\n var _component_RowsPerPageDropdown = resolveComponent(\"RowsPerPageDropdown\");\n var _component_JumpToPageDropdown = resolveComponent(\"JumpToPageDropdown\");\n var _component_JumpToPageInput = resolveComponent(\"JumpToPageInput\");\n return (_ctx.alwaysShow ? true : $options.pageLinks && $options.pageLinks.length > 1) ? (openBlock(), createElementBlock(\"nav\", normalizeProps(mergeProps({\n key: 0\n }, _ctx.ptmi('paginatorContainer'))), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.templateItems, function (value, key) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n key: key,\n ref_for: true,\n ref: \"paginator\",\n \"class\": _ctx.cx('paginator', {\n key: key\n })\n }, _ctx.ptm('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('contentStart'),\n ref_for: true\n }, _ctx.ptm('contentStart')), [renderSlot(_ctx.$slots, \"start\", {\n state: $options.currentState\n })], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content'),\n ref_for: true\n }, _ctx.ptm('content')), [(openBlock(true), createElementBlock(Fragment, null, renderList(value, function (item) {\n return openBlock(), createElementBlock(Fragment, {\n key: item\n }, [item === 'FirstPageLink' ? (openBlock(), createBlock(_component_FirstPageLink, {\n key: 0,\n \"aria-label\": $options.getAriaLabel('firstPageLabel'),\n template: _ctx.$slots.firsticon || _ctx.$slots.firstpagelinkicon,\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.changePageToFirst($event);\n }),\n disabled: $options.isFirstPage || $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"template\", \"disabled\", \"unstyled\", \"pt\"])) : item === 'PrevPageLink' ? (openBlock(), createBlock(_component_PrevPageLink, {\n key: 1,\n \"aria-label\": $options.getAriaLabel('prevPageLabel'),\n template: _ctx.$slots.previcon || _ctx.$slots.prevpagelinkicon,\n onClick: _cache[1] || (_cache[1] = function ($event) {\n return $options.changePageToPrev($event);\n }),\n disabled: $options.isFirstPage || $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"template\", \"disabled\", \"unstyled\", \"pt\"])) : item === 'NextPageLink' ? (openBlock(), createBlock(_component_NextPageLink, {\n key: 2,\n \"aria-label\": $options.getAriaLabel('nextPageLabel'),\n template: _ctx.$slots.nexticon || _ctx.$slots.nextpagelinkicon,\n onClick: _cache[2] || (_cache[2] = function ($event) {\n return $options.changePageToNext($event);\n }),\n disabled: $options.isLastPage || $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"template\", \"disabled\", \"unstyled\", \"pt\"])) : item === 'LastPageLink' ? (openBlock(), createBlock(_component_LastPageLink, {\n key: 3,\n \"aria-label\": $options.getAriaLabel('lastPageLabel'),\n template: _ctx.$slots.lasticon || _ctx.$slots.lastpagelinkicon,\n onClick: _cache[3] || (_cache[3] = function ($event) {\n return $options.changePageToLast($event);\n }),\n disabled: $options.isLastPage || $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"template\", \"disabled\", \"unstyled\", \"pt\"])) : item === 'PageLinks' ? (openBlock(), createBlock(_component_PageLinks, {\n key: 4,\n \"aria-label\": $options.getAriaLabel('pageLabel'),\n value: $options.pageLinks,\n page: $options.page,\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $options.changePageLink($event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"value\", \"page\", \"unstyled\", \"pt\"])) : item === 'CurrentPageReport' ? (openBlock(), createBlock(_component_CurrentPageReport, {\n key: 5,\n \"aria-live\": \"polite\",\n template: _ctx.currentPageReportTemplate,\n currentPage: $options.currentPage,\n page: $options.page,\n pageCount: $options.pageCount,\n first: $data.d_first,\n rows: $data.d_rows,\n totalRecords: _ctx.totalRecords,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"template\", \"currentPage\", \"page\", \"pageCount\", \"first\", \"rows\", \"totalRecords\", \"unstyled\", \"pt\"])) : item === 'RowsPerPageDropdown' && _ctx.rowsPerPageOptions ? (openBlock(), createBlock(_component_RowsPerPageDropdown, {\n key: 6,\n \"aria-label\": $options.getAriaLabel('rowsPerPageLabel'),\n rows: $data.d_rows,\n options: _ctx.rowsPerPageOptions,\n onRowsChange: _cache[5] || (_cache[5] = function ($event) {\n return $options.onRowChange($event);\n }),\n disabled: $options.empty,\n templates: _ctx.$slots,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"rows\", \"options\", \"disabled\", \"templates\", \"unstyled\", \"pt\"])) : item === 'JumpToPageDropdown' ? (openBlock(), createBlock(_component_JumpToPageDropdown, {\n key: 7,\n \"aria-label\": $options.getAriaLabel('jumpToPageDropdownLabel'),\n page: $options.page,\n pageCount: $options.pageCount,\n onPageChange: _cache[6] || (_cache[6] = function ($event) {\n return $options.changePage($event);\n }),\n disabled: $options.empty,\n templates: _ctx.$slots,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"aria-label\", \"page\", \"pageCount\", \"disabled\", \"templates\", \"unstyled\", \"pt\"])) : item === 'JumpToPageInput' ? (openBlock(), createBlock(_component_JumpToPageInput, {\n key: 8,\n page: $options.currentPage,\n onPageChange: _cache[7] || (_cache[7] = function ($event) {\n return $options.changePage($event);\n }),\n disabled: $options.empty,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"page\", \"disabled\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('contentEnd'),\n ref_for: true\n }, _ctx.ptm('contentEnd')), [renderSlot(_ctx.$slots, \"end\", {\n state: $options.currentState\n })], 16)) : createCommentVNode(\"\", true)], 16);\n }), 128))], 16)) : createCommentVNode(\"\", true);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-datatable {\\n position: relative;\\n}\\n\\n.p-datatable-table {\\n border-spacing: 0;\\n width: 100%;\\n}\\n\\n.p-datatable-scrollable > .p-datatable-table-container {\\n position: relative;\\n}\\n\\n.p-datatable-scrollable-table > .p-datatable-thead {\\n top: 0;\\n z-index: 1;\\n}\\n\\n.p-datatable-scrollable-table > .p-datatable-frozen-tbody {\\n position: sticky;\\n z-index: 1;\\n}\\n\\n.p-datatable-scrollable-table>.p-datatable-tfoot {\\n bottom: 0;\\n z-index: 1;\\n}\\n\\n.p-datatable-scrollable .p-datatable-frozen-column {\\n position: sticky;\\n background: \".concat(dt('datatable.header.cell.background'), \";\\n}\\n\\n.p-datatable-scrollable th.p-datatable-frozen-column {\\n z-index: 1;\\n}\\n\\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-thead,\\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-thead {\\n background: \").concat(dt('datatable.header.cell.background'), \";\\n}\\n\\n.p-datatable-scrollable > .p-datatable-table-container > .p-datatable-table > .p-datatable-tfoot,\\n.p-datatable-scrollable > .p-datatable-table-container > .p-virtualscroller > .p-datatable-table > .p-datatable-tfoot {\\n background: \").concat(dt('datatable.footer.cell.background'), \";\\n}\\n\\n.p-datatable-flex-scrollable {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n}\\n\\n.p-datatable-flex-scrollable > .p-datatable-table-container {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n height: 100%;\\n}\\n\\n.p-datatable-scrollable-table > .p-datatable-tbody > .p-datatable-row-group-header {\\n position: sticky;\\n z-index: 1;\\n}\\n\\n.p-datatable-resizable-table > .p-datatable-thead > tr > th,\\n.p-datatable-resizable-table > .p-datatable-tfoot > tr > td,\\n.p-datatable-resizable-table > .p-datatable-tbody > tr > td {\\n overflow: hidden;\\n white-space: nowrap;\\n}\\n\\n.p-datatable-resizable-table > .p-datatable-thead > tr > th.p-datatable-resizable-column:not(.p-datatable-frozen-column) {\\n background-clip: padding-box;\\n position: relative;\\n}\\n\\n.p-datatable-resizable-table-fit > .p-datatable-thead > tr > th.p-datatable-resizable-column:last-child .p-datatable-column-resizer {\\n display: none;\\n}\\n\\n.p-datatable-column-resizer {\\n display: block;\\n position: absolute;\\n top: 0;\\n right: 0;\\n margin: 0;\\n width: \").concat(dt('datatable.column.resizer.width'), \";\\n height: 100%;\\n padding: 0px;\\n cursor: col-resize;\\n border: 1px solid transparent;\\n}\\n\\n.p-datatable-column-header-content {\\n display: flex;\\n align-items: center;\\n gap: \").concat(dt('datatable.header.cell.gap'), \";\\n}\\n\\n.p-datatable-column-resize-indicator {\\n width: \").concat(dt('datatable.resize.indicator.width'), \";\\n position: absolute;\\n z-index: 10;\\n display: none;\\n background: \").concat(dt('datatable.resize.indicator.color'), \";\\n}\\n\\n.p-datatable-row-reorder-indicator-up,\\n.p-datatable-row-reorder-indicator-down {\\n position: absolute;\\n display: none;\\n}\\n\\n.p-datatable-reorderable-column,\\n.p-datatable-reorderable-row-handle {\\n cursor: move;\\n}\\n\\n.p-datatable-mask {\\n position: absolute;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 2;\\n}\\n\\n.p-datatable-inline-filter {\\n display: flex;\\n align-items: center;\\n width: 100%;\\n gap: \").concat(dt('datatable.filter.inline.gap'), \";\\n}\\n\\n.p-datatable-inline-filter .p-datatable-filter-element-container {\\n flex: 1 1 auto;\\n width: 1%;\\n}\\n\\n.p-datatable-filter-overlay {\\n background: \").concat(dt('datatable.filter.overlay.select.background'), \";\\n color: \").concat(dt('datatable.filter.overlay.select.color'), \";\\n border: 1px solid \").concat(dt('datatable.filter.overlay.select.border.color'), \";\\n border-radius: \").concat(dt('datatable.filter.overlay.select.border.radius'), \";\\n box-shadow: \").concat(dt('datatable.filter.overlay.select.shadow'), \";\\n min-width: 12.5rem;\\n}\\n\\n.p-datatable-filter-constraint-list {\\n margin: 0;\\n list-style: none;\\n display: flex;\\n flex-direction: column;\\n padding: \").concat(dt('datatable.filter.constraint.list.padding'), \";\\n gap: \").concat(dt('datatable.filter.constraint.list.gap'), \";\\n}\\n\\n.p-datatable-filter-constraint {\\n padding: \").concat(dt('datatable.filter.constraint.padding'), \";\\n color: \").concat(dt('datatable.filter.constraint.color'), \";\\n border-radius: \").concat(dt('datatable.filter.constraint.border.radius'), \";\\n cursor: pointer;\\n transition: background \").concat(dt('datatable.transition.duration'), \", color \").concat(dt('datatable.transition.duration'), \", border-color \").concat(dt('datatable.transition.duration'), \",\\n box-shadow \").concat(dt('datatable.transition.duration'), \";\\n}\\n\\n.p-datatable-filter-constraint-selected {\\n background: \").concat(dt('datatable.filter.constraint.selected.background'), \";\\n color: \").concat(dt('datatable.filter.constraint.selected.color'), \";\\n}\\n\\n.p-datatable-filter-constraint:not(.p-datatable-filter-constraint-selected):not(.p-disabled):hover {\\n background: \").concat(dt('datatable.filter.constraint.focus.background'), \";\\n color: \").concat(dt('datatable.filter.constraint.focus.color'), \";\\n}\\n\\n.p-datatable-filter-constraint:focus-visible {\\n outline: 0 none;\\n background: \").concat(dt('datatable.filter.constraint.focus.background'), \";\\n color: \").concat(dt('datatable.filter.constraint.focus.color'), \";\\n}\\n\\n.p-datatable-filter-constraint-selected:focus-visible {\\n outline: 0 none;\\n background: \").concat(dt('datatable.filter.constraint.selected.focus.background'), \";\\n color: \").concat(dt('datatable.filter.constraint.selected.focus.color'), \";\\n}\\n\\n.p-datatable-filter-constraint-separator {\\n border-top: 1px solid \").concat(dt('datatable.filter.constraint.separator.border.color'), \";\\n}\\n\\n.p-datatable-popover-filter {\\n display: inline-flex;\\n margin-left: auto;\\n}\\n\\n.p-datatable-filter-overlay-popover {\\n background: \").concat(dt('datatable.filter.overlay.popover.background'), \";\\n color: \").concat(dt('datatable.filter.overlay.popover.color'), \";\\n border: 1px solid \").concat(dt('datatable.filter.overlay.popover.border.color'), \";\\n border-radius: \").concat(dt('datatable.filter.overlay.popover.border.radius'), \";\\n box-shadow: \").concat(dt('datatable.filter.overlay.popover.shadow'), \";\\n min-width: 12.5rem;\\n padding: \").concat(dt('datatable.filter.overlay.popover.padding'), \";\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('datatable.filter.overlay.popover.gap'), \";\\n}\\n\\n.p-datatable-filter-operator-dropdown {\\n width: 100%;\\n}\\n\\n.p-datatable-filter-rule-list,\\n.p-datatable-filter-rule {\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('datatable.filter.overlay.popover.gap'), \";\\n}\\n\\n.p-datatable-filter-rule {\\n border-bottom: 1px solid \").concat(dt('datatable.filter.rule.border.color'), \";\\n}\\n\\n.p-datatable-filter-rule:last-child {\\n border-bottom: 0 none;\\n}\\n\\n.p-datatable-filter-add-rule-button {\\n width: 100%;\\n}\\n\\n.p-datatable-filter-remove-button {\\n width: 100%;\\n}\\n\\n.p-datatable-filter-buttonbar {\\n padding: 0;\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n}\\n\\n.p-datatable-virtualscroller-spacer {\\n display: flex;\\n}\\n\\n.p-datatable .p-virtualscroller .p-virtualscroller-loading {\\n transform: none !important;\\n min-height: 0;\\n position: sticky;\\n top: 0;\\n left: 0;\\n}\\n\\n.p-datatable-paginator-top {\\n border-color: \").concat(dt('datatable.paginator.top.border.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('datatable.paginator.top.border.width'), \";\\n}\\n\\n.p-datatable-paginator-bottom {\\n border-color: \").concat(dt('datatable.paginator.bottom.border.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('datatable.paginator.bottom.border.width'), \";\\n}\\n\\n.p-datatable-header {\\n background: \").concat(dt('datatable.header.background'), \";\\n color: \").concat(dt('datatable.header.color'), \";\\n border-color: \").concat(dt('datatable.header.border.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('datatable.header.border.width'), \";\\n padding: \").concat(dt('datatable.header.padding'), \";\\n}\\n\\n.p-datatable-footer {\\n background: \").concat(dt('datatable.footer.background'), \";\\n color: \").concat(dt('datatable.footer.color'), \";\\n border-color: \").concat(dt('datatable.footer.border.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('datatable.footer.border.width'), \";\\n padding: \").concat(dt('datatable.footer.padding'), \";\\n}\\n\\n.p-datatable-header-cell {\\n padding: \").concat(dt('datatable.header.cell.padding'), \";\\n background: \").concat(dt('datatable.header.cell.background'), \";\\n border-color: \").concat(dt('datatable.header.cell.border.color'), \";\\n border-style: solid;\\n border-width: 0 0 1px 0;\\n color: \").concat(dt('datatable.header.cell.color'), \";\\n font-weight: normal;\\n text-align: left;\\n transition: background \").concat(dt('datatable.transition.duration'), \", color \").concat(dt('datatable.transition.duration'), \", border-color \").concat(dt('datatable.transition.duration'), \",\\n outline-color \").concat(dt('datatable.transition.duration'), \", box-shadow \").concat(dt('datatable.transition.duration'), \";\\n}\\n\\n.p-datatable-column-title {\\n font-weight: \").concat(dt('datatable.column.title.font.weight'), \";\\n}\\n\\n.p-datatable-tbody > tr {\\n outline-color: transparent;\\n background: \").concat(dt('datatable.row.background'), \";\\n color: \").concat(dt('datatable.row.color'), \";\\n transition: background \").concat(dt('datatable.transition.duration'), \", color \").concat(dt('datatable.transition.duration'), \", border-color \").concat(dt('datatable.transition.duration'), \",\\n outline-color \").concat(dt('datatable.transition.duration'), \", box-shadow \").concat(dt('datatable.transition.duration'), \";\\n}\\n\\n.p-datatable-tbody > tr > td {\\n text-align: left;\\n border-color: \").concat(dt('datatable.body.cell.border.color'), \";\\n border-style: solid;\\n border-width: 0 0 1px 0;\\n padding: \").concat(dt('datatable.body.cell.padding'), \";\\n}\\n\\n.p-datatable-hoverable .p-datatable-tbody > tr:not(.p-datatable-row-selected):hover {\\n background: \").concat(dt('datatable.row.hover.background'), \";\\n color: \").concat(dt('datatable.row.hover.color'), \";\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-row-selected {\\n background: \").concat(dt('datatable.row.selected.background'), \";\\n color: \").concat(dt('datatable.row.selected.color'), \";\\n}\\n\\n.p-datatable-tbody > tr:has(+ .p-datatable-row-selected) > td {\\n border-bottom-color: \").concat(dt('datatable.body.cell.selected.border.color'), \";\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-row-selected > td {\\n border-bottom-color: \").concat(dt('datatable.body.cell.selected.border.color'), \";\\n}\\n\\n.p-datatable-tbody > tr:focus-visible,\\n.p-datatable-tbody > tr.p-datatable-contextmenu-row-selected {\\n box-shadow: \").concat(dt('datatable.body.cell.focus.ring.shadow'), \";\\n outline: \").concat(dt('datatable.body.cell.focus.ring.width'), \" \").concat(dt('datatable.body.cell.focus.ring.style'), \" \").concat(dt('datatable.body.cell.focus.ring.color'), \";\\n outline-offset: \").concat(dt('datatable.body.cell.focus.ring.offset'), \";\\n}\\n\\n.p-datatable-tfoot > tr > td {\\n text-align: left;\\n padding: \").concat(dt('datatable.footer.cell.padding'), \";\\n border-color: \").concat(dt('datatable.footer.cell.border.color'), \";\\n border-style: solid;\\n border-width: 0 0 1px 0;\\n color: \").concat(dt('datatable.footer.cell.color'), \";\\n background: \").concat(dt('datatable.footer.cell.background'), \";\\n}\\n\\n.p-datatable-column-footer {\\n font-weight: \").concat(dt('datatable.column.footer.font.weight'), \";\\n}\\n\\n.p-datatable-sortable-column {\\n cursor: pointer;\\n user-select: none;\\n outline-color: transparent;\\n}\\n\\n.p-datatable-column-title,\\n.p-datatable-sort-icon,\\n.p-datatable-sort-badge {\\n vertical-align: middle;\\n}\\n\\n.p-datatable-sort-icon {\\n color: \").concat(dt('datatable.sort.icon.color'), \";\\n transition: color \").concat(dt('datatable.transition.duration'), \";\\n}\\n\\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover {\\n background: \").concat(dt('datatable.header.cell.hover.background'), \";\\n color: \").concat(dt('datatable.header.cell.hover.color'), \";\\n}\\n\\n.p-datatable-sortable-column:not(.p-datatable-column-sorted):hover .p-datatable-sort-icon {\\n color: \").concat(dt('datatable.sort.icon.hover.color'), \";\\n}\\n\\n.p-datatable-column-sorted {\\n background: \").concat(dt('datatable.header.cell.selected.background'), \";\\n color: \").concat(dt('datatable.header.cell.selected.color'), \";\\n}\\n\\n.p-datatable-column-sorted .p-datatable-sort-icon {\\n color: \").concat(dt('datatable.header.cell.selected.color'), \";\\n}\\n\\n.p-datatable-sortable-column:focus-visible {\\n box-shadow: \").concat(dt('datatable.header.cell.focus.ring.shadow'), \";\\n outline: \").concat(dt('datatable.header.cell.focus.ring.width'), \" \").concat(dt('datatable.header.cell.focus.ring.style'), \" \").concat(dt('datatable.header.cell.focus.ring.color'), \";\\n outline-offset: \").concat(dt('datatable.header.cell.focus.ring.offset'), \";\\n}\\n\\n.p-datatable-hoverable .p-datatable-selectable-row {\\n cursor: pointer;\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-dragpoint-top > td {\\n box-shadow: inset 0 2px 0 0 \").concat(dt('datatable.drop.point.color'), \";\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-dragpoint-bottom > td {\\n box-shadow: inset 0 -2px 0 0 \").concat(dt('datatable.drop.point.color'), \";\\n}\\n\\n.p-datatable-loading-icon {\\n font-size: \").concat(dt('datatable.loading.icon.size'), \";\\n width: \").concat(dt('datatable.loading.icon.size'), \";\\n height: \").concat(dt('datatable.loading.icon.size'), \";\\n}\\n\\n.p-datatable-gridlines .p-datatable-header {\\n border-width: 1px 1px 0 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-footer {\\n border-width: 0 1px 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-paginator-top {\\n border-width: 1px 1px 0 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-paginator-bottom {\\n border-width: 0 1px 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-thead > tr > th {\\n border-width: 1px 0 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-thead > tr > th:last-child {\\n border-width: 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tbody > tr > td {\\n border-width: 1px 0 0 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {\\n border-width: 1px 1px 0 1px;\\n}\\n\\np-datatable-gridlines .p-datatable-tbody > tr:last-child > td {\\n border-width: 1px 0 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tbody > tr:last-child > td:last-child {\\n border-width: 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tfoot > tr > td {\\n border-width: 1px 0 1px 1px;\\n}\\n\\n.p-datatable-gridlines .p-datatable-tfoot > tr > td:last-child {\\n border-width: 1px 1px 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td {\\n border-width: 0 0 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td:last-child {\\n border-width: 0 1px 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td {\\n border-width: 0 0 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td:last-child {\\n border-width: 0 1px 1px 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td {\\n border-width: 0 0 0 1px;\\n}\\n\\n.p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td:last-child {\\n border-width: 0 1px 0 1px;\\n}\\n\\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd {\\n background: \").concat(dt('datatable.row.striped.background'), \";\\n}\\n\\n.p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd.p-datatable-row-selected {\\n background: \").concat(dt('datatable.row.selected.background'), \";\\n color: \").concat(dt('datatable.row.selected.color'), \";\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-header {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-thead > tr > th {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-tbody > tr > td {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-tfoot > tr > td {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-sm .p-datatable-footer {\\n padding: 0.375rem 0.5rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-header {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-thead > tr > th {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-tbody>tr>td {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-tfoot>tr>td {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable.p-datatable-lg .p-datatable-footer {\\n padding: 0.9375rem 1.25rem;\\n}\\n\\n.p-datatable-row-toggle-button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n width: \").concat(dt('datatable.row.toggle.button.size'), \";\\n height: \").concat(dt('datatable.row.toggle.button.size'), \";\\n color: \").concat(dt('datatable.row.toggle.button.color'), \";\\n border: 0 none;\\n background: transparent;\\n cursor: pointer;\\n border-radius: \").concat(dt('datatable.row.toggle.button.border.radius'), \";\\n transition: background \").concat(dt('datatable.transition.duration'), \", color \").concat(dt('datatable.transition.duration'), \", border-color \").concat(dt('datatable.transition.duration'), \",\\n outline-color \").concat(dt('datatable.transition.duration'), \", box-shadow \").concat(dt('datatable.transition.duration'), \";\\n outline-color: transparent;\\n user-select: none;\\n}\\n\\n.p-datatable-row-toggle-button:enabled:hover {\\n color: \").concat(dt('datatable.row.toggle.button.hover.color'), \";\\n background: \").concat(dt('datatable.row.toggle.button.hover.background'), \";\\n}\\n\\n.p-datatable-tbody > tr.p-datatable-row-selected .p-datatable-row-toggle-button:hover {\\n background: \").concat(dt('datatable.row.toggle.button.selected.hover.background'), \";\\n \").concat(dt('datatable.row.toggle.button.selected.hover.color'), \";\\n}\\n\\n.p-datatable-row-toggle-button:focus-visible {\\n box-shadow: \").concat(dt('datatable.row.toggle.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('datatable.row.toggle.button.focus.ring.width'), \" \").concat(dt('datatable.row.toggle.button.focus.ring.style'), \" \").concat(dt('datatable.row.toggle.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('datatable.row.toggle.button.focus.ring.offset'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-datatable p-component', {\n 'p-datatable-hoverable': props.rowHover || props.selectionMode,\n 'p-datatable-resizable': props.resizableColumns,\n 'p-datatable-resizable-fit': props.resizableColumns && props.columnResizeMode === 'fit',\n 'p-datatable-scrollable': props.scrollable,\n 'p-datatable-flex-scrollable': props.scrollable && props.scrollHeight === 'flex',\n 'p-datatable-striped': props.stripedRows,\n 'p-datatable-gridlines': props.showGridlines,\n 'p-datatable-sm': props.size === 'small',\n 'p-datatable-lg': props.size === 'large'\n }];\n },\n mask: 'p-datatable-mask p-overlay-mask',\n loadingIcon: 'p-datatable-loading-icon',\n header: 'p-datatable-header',\n pcPaginator: function pcPaginator(_ref3) {\n var position = _ref3.position;\n return 'p-datatable-paginator-' + position;\n },\n tableContainer: 'p-datatable-table-container',\n table: function table(_ref4) {\n var props = _ref4.props;\n return ['p-datatable-table', {\n 'p-datatable-scrollable-table': props.scrollable,\n 'p-datatable-resizable-table': props.resizableColumns,\n 'p-datatable-resizable-table-fit': props.resizableColumns && props.columnResizeMode === 'fit'\n }];\n },\n thead: 'p-datatable-thead',\n headerCell: function headerCell(_ref5) {\n var instance = _ref5.instance,\n props = _ref5.props,\n column = _ref5.column;\n return column && !instance.columnProp(column, 'hidden') && (props.rowGroupMode !== 'subheader' || props.groupRowsBy !== instance.columnProp(column, 'field')) ? ['p-datatable-header-cell', {\n 'p-datatable-frozen-column': instance.columnProp(column, 'frozen')\n }] : ['p-datatable-header-cell', {\n 'p-datatable-sortable-column': instance.columnProp('sortable'),\n 'p-datatable-resizable-column': instance.resizableColumns,\n 'p-datatable-column-sorted': instance.isColumnSorted(),\n 'p-datatable-frozen-column': instance.columnProp('frozen'),\n 'p-datatable-reorderable-column': props.reorderableColumns\n }];\n },\n columnResizer: 'p-datatable-column-resizer',\n columnHeaderContent: 'p-datatable-column-header-content',\n columnTitle: 'p-datatable-column-title',\n columnFooter: 'p-datatable-column-footer',\n sortIcon: 'p-datatable-sort-icon',\n pcSortBadge: 'p-datatable-sort-badge',\n filter: function filter(_ref6) {\n var props = _ref6.props;\n return ['p-datatable-filter', {\n 'p-datatable-inline-filter': props.display === 'row',\n 'p-datatable-popover-filter': props.display === 'menu'\n }];\n },\n filterElementContainer: 'p-datatable-filter-element-container',\n pcColumnFilterButton: 'p-datatable-column-filter-button',\n pcColumnFilterClearButton: 'p-datatable-column-filter-clear-button',\n filterOverlay: function filterOverlay(_ref7) {\n _ref7.instance;\n var props = _ref7.props;\n return ['p-datatable-filter-overlay p-component', {\n 'p-datatable-filter-overlay-popover': props.display === 'menu'\n }];\n },\n filterConstraintList: 'p-datatable-filter-constraint-list',\n filterConstraint: function filterConstraint(_ref8) {\n var instance = _ref8.instance,\n matchMode = _ref8.matchMode;\n return ['p-datatable-filter-constraint', {\n 'p-datatable-filter-constraint-selected': matchMode && instance.isRowMatchModeSelected(matchMode.value)\n }];\n },\n filterConstraintSeparator: 'p-datatable-filter-constraint-separator',\n filterOperator: 'p-datatable-filter-operator',\n pcFilterOperatorDropdown: 'p-datatable-filter-operator-dropdown',\n filterRuleList: 'p-datatable-filter-rule-list',\n filterRule: 'p-datatable-filter-rule',\n pcFilterConstraintDropdown: 'p-datatable-filter-constraint-dropdown',\n pcFilterRemoveRuleButton: 'p-datatable-filter-remove-rule-button',\n pcFilterAddRuleButton: 'p-datatable-filter-add-rule-button',\n filterButtonbar: 'p-datatable-filter-buttonbar',\n pcFilterClearButton: 'p-datatable-filter-clear-button',\n pcFilterApplyButton: 'p-datatable-filter-apply-button',\n tbody: function tbody(_ref9) {\n var props = _ref9.props;\n return props.frozenRow ? 'p-datatable-tbody p-datatable-frozen-tbody' : 'p-datatable-tbody';\n },\n rowGroupHeader: 'p-datatable-row-group-header',\n rowToggleButton: 'p-datatable-row-toggle-button',\n rowToggleIcon: 'p-datatable-row-toggle-icon',\n row: function row(_ref10) {\n var instance = _ref10.instance,\n props = _ref10.props,\n index = _ref10.index,\n columnSelectionMode = _ref10.columnSelectionMode;\n var rowStyleClass = [];\n if (props.selectionMode) {\n rowStyleClass.push('p-datatable-selectable-row');\n }\n if (props.selection) {\n rowStyleClass.push({\n 'p-datatable-row-selected': columnSelectionMode ? instance.isSelected && instance.$parentInstance.$parentInstance.highlightOnSelect : instance.isSelected\n });\n }\n if (props.contextMenuSelection) {\n rowStyleClass.push({\n 'p-datatable-contextmenu-row-selected': instance.isSelectedWithContextMenu\n });\n }\n rowStyleClass.push(index % 2 === 0 ? 'p-row-even' : 'p-row-odd');\n return rowStyleClass;\n },\n rowExpansion: 'p-datatable-row-expansion',\n rowGroupFooter: 'p-datatable-row-group-footer',\n emptyMessage: 'p-datatable-empty-message',\n bodyCell: function bodyCell(_ref11) {\n var instance = _ref11.instance;\n return [{\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }];\n },\n reorderableRowHandle: 'p-datatable-reorderable-row-handle',\n pcRowEditorInit: 'p-datatable-row-editor-init',\n pcRowEditorSave: 'p-datatable-row-editor-save',\n pcRowEditorCancel: 'p-datatable-row-editor-cancel',\n tfoot: 'p-datatable-tfoot',\n footerCell: function footerCell(_ref12) {\n var instance = _ref12.instance;\n return [{\n 'p-datatable-frozen-column': instance.columnProp('frozen')\n }];\n },\n virtualScrollerSpacer: 'p-datatable-virtualscroller-spacer',\n footer: 'p-datatable-footer',\n columnResizeIndicator: 'p-datatable-column-resize-indicator',\n rowReorderIndicatorUp: 'p-datatable-row-reorder-indicator-up',\n rowReorderIndicatorDown: 'p-datatable-row-reorder-indicator-down'\n};\nvar inlineStyles = {\n tableContainer: {\n overflow: 'auto'\n },\n thead: {\n position: 'sticky'\n },\n tfoot: {\n position: 'sticky'\n }\n};\nvar DataTableStyle = BaseStyle.extend({\n name: 'datatable',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { DataTableStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'PencilIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M0.609628 13.959C0.530658 13.9599 0.452305 13.9451 0.379077 13.9156C0.305849 13.8861 0.239191 13.8424 0.18294 13.787C0.118447 13.7234 0.0688234 13.6464 0.0376166 13.5614C0.00640987 13.4765 -0.00560954 13.3857 0.00241768 13.2956L0.25679 10.1501C0.267698 10.0041 0.331934 9.86709 0.437312 9.76516L9.51265 0.705715C10.0183 0.233014 10.6911 -0.0203041 11.3835 0.00127367C12.0714 0.00660201 12.7315 0.27311 13.2298 0.746671C13.7076 1.23651 13.9824 1.88848 13.9992 2.57201C14.0159 3.25554 13.7733 3.92015 13.32 4.4327L4.23648 13.5331C4.13482 13.6342 4.0017 13.6978 3.85903 13.7133L0.667067 14L0.609628 13.959ZM1.43018 10.4696L1.25787 12.714L3.50619 12.5092L12.4502 3.56444C12.6246 3.35841 12.7361 3.10674 12.7714 2.83933C12.8067 2.57193 12.7644 2.30002 12.6495 2.05591C12.5346 1.8118 12.3519 1.60575 12.1231 1.46224C11.8943 1.31873 11.6291 1.2438 11.3589 1.24633C11.1813 1.23508 11.0033 1.25975 10.8355 1.31887C10.6677 1.37798 10.5136 1.47033 10.3824 1.59036L1.43018 10.4696Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-radiobutton {\\n position: relative;\\n display: inline-flex;\\n user-select: none;\\n vertical-align: bottom;\\n width: \".concat(dt('radiobutton.width'), \";\\n height: \").concat(dt('radiobutton.height'), \";\\n}\\n\\n.p-radiobutton-input {\\n cursor: pointer;\\n appearance: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n padding: 0;\\n margin: 0;\\n opacity: 0;\\n z-index: 1;\\n outline: 0 none;\\n border: 1px solid transparent;\\n border-radius: 50%;\\n}\\n\\n.p-radiobutton-box {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: 50%;\\n border: 1px solid \").concat(dt('radiobutton.border.color'), \";\\n background: \").concat(dt('radiobutton.background'), \";\\n width: \").concat(dt('radiobutton.width'), \";\\n height: \").concat(dt('radiobutton.height'), \";\\n transition: background \").concat(dt('radiobutton.transition.duration'), \", color \").concat(dt('radiobutton.transition.duration'), \", border-color \").concat(dt('radiobutton.transition.duration'), \", box-shadow \").concat(dt('radiobutton.transition.duration'), \", outline-color \").concat(dt('radiobutton.transition.duration'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('radiobutton.shadow'), \";\\n}\\n\\n.p-radiobutton-icon {\\n transition-duration: \").concat(dt('radiobutton.transition.duration'), \";\\n background: transparent;\\n font-size: \").concat(dt('radiobutton.icon.size'), \";\\n width: \").concat(dt('radiobutton.icon.size'), \";\\n height: \").concat(dt('radiobutton.icon.size'), \";\\n border-radius: 50%;\\n backface-visibility: hidden;\\n transform: translateZ(0) scale(0.1);\\n}\\n\\n.p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.hover.border.color'), \";\\n}\\n\\n.p-radiobutton-checked .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.checked.border.color'), \";\\n background: \").concat(dt('radiobutton.checked.background'), \";\\n}\\n\\n.p-radiobutton-checked .p-radiobutton-box .p-radiobutton-icon {\\n background: \").concat(dt('radiobutton.icon.checked.color'), \";\\n transform: translateZ(0) scale(1, 1);\\n visibility: visible;\\n}\\n\\n.p-radiobutton-checked:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.checked.hover.border.color'), \";\\n background: \").concat(dt('radiobutton.checked.hover.background'), \";\\n}\\n\\n.p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-radiobutton-checked .p-radiobutton-box .p-radiobutton-icon {\\n background: \").concat(dt('radiobutton.icon.checked.hover.color'), \";\\n}\\n\\n.p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:focus-visible) .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.focus.border.color'), \";\\n box-shadow: \").concat(dt('radiobutton.focus.ring.shadow'), \";\\n outline: \").concat(dt('radiobutton.focus.ring.width'), \" \").concat(dt('radiobutton.focus.ring.style'), \" \").concat(dt('radiobutton.focus.ring.color'), \";\\n outline-offset: \").concat(dt('radiobutton.focus.ring.offset'), \";\\n}\\n\\n.p-radiobutton-checked:not(.p-disabled):has(.p-radiobutton-input:focus-visible) .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.checked.focus.border.color'), \";\\n}\\n\\n.p-radiobutton.p-invalid > .p-radiobutton-box {\\n border-color: \").concat(dt('radiobutton.invalid.border.color'), \";\\n}\\n\\n.p-radiobutton.p-variant-filled .p-radiobutton-box {\\n background: \").concat(dt('radiobutton.filled.background'), \";\\n}\\n\\n.p-radiobutton.p-variant-filled.p-radiobutton-checked .p-radiobutton-box {\\n background: \").concat(dt('radiobutton.checked.background'), \";\\n}\\n\\n.p-radiobutton.p-variant-filled:not(.p-disabled):has(.p-radiobutton-input:hover).p-radiobutton-checked .p-radiobutton-box {\\n background: \").concat(dt('radiobutton.checked.hover.background'), \";\\n}\\n\\n.p-radiobutton.p-disabled {\\n opacity: 1;\\n}\\n\\n.p-radiobutton.p-disabled .p-radiobutton-box {\\n background: \").concat(dt('radiobutton.disabled.background'), \";\\n border-color: \").concat(dt('radiobutton.checked.disabled.border.color'), \";\\n}\\n\\n.p-radiobutton-checked.p-disabled .p-radiobutton-box .p-radiobutton-icon {\\n background: \").concat(dt('radiobutton.icon.disabled.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-radiobutton p-component', {\n 'p-radiobutton-checked': instance.checked,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled'\n }];\n },\n box: 'p-radiobutton-box',\n input: 'p-radiobutton-input',\n icon: 'p-radiobutton-icon'\n};\nvar RadioButtonStyle = BaseStyle.extend({\n name: 'radiobutton',\n theme: theme,\n classes: classes\n});\n\nexport { RadioButtonStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { equals } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport RadioButtonStyle from 'primevue/radiobutton/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseRadioButton',\n \"extends\": BaseComponent,\n props: {\n value: null,\n modelValue: null,\n binary: Boolean,\n name: {\n type: String,\n \"default\": null\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: RadioButtonStyle,\n provide: function provide() {\n return {\n $pcRadioButton: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'RadioButton',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur'],\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n });\n },\n onChange: function onChange(event) {\n if (!this.disabled && !this.readonly) {\n var newModelValue = this.binary ? !this.checked : this.value;\n this.$emit('update:modelValue', newModelValue);\n this.$emit('change', event);\n }\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.$emit('blur', event);\n }\n },\n computed: {\n checked: function checked() {\n return this.modelValue != null && (this.binary ? !!this.modelValue : equals(this.modelValue, this.value));\n }\n }\n};\n\nvar _hoisted_1 = [\"data-p-checked\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"id\", \"value\", \"name\", \"checked\", \"tabindex\", \"disabled\", \"readonly\", \"aria-labelledby\", \"aria-label\", \"aria-invalid\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, $options.getPTOptions('root'), {\n \"data-p-checked\": $options.checked,\n \"data-p-disabled\": _ctx.disabled\n }), [createElementVNode(\"input\", mergeProps({\n id: _ctx.inputId,\n type: \"radio\",\n \"class\": [_ctx.cx('input'), _ctx.inputClass],\n style: _ctx.inputStyle,\n value: _ctx.value,\n name: _ctx.name,\n checked: $options.checked,\n tabindex: _ctx.tabindex,\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onChange: _cache[2] || (_cache[2] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, $options.getPTOptions('input')), null, 16, _hoisted_2), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('box')\n }, $options.getPTOptions('box')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('icon')\n }, $options.getPTOptions('icon')), null, 16)], 16)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'FilterIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'FilterSlashIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'TrashIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'SortAltIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_3 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_4 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_5 = [_hoisted_1, _hoisted_2, _hoisted_3, _hoisted_4];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_5, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'SortAmountDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'SortAmountUpAltIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { FilterOperator, FilterService, FilterMatchMode } from '@primevue/core/api';\nimport { getVNodeProp, UniqueComponentId, HelperSet, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport { getFirstFocusableElement, invokeElementMethod, getAttribute, getNextElementSibling, getOuterWidth, getPreviousElementSibling, getOuterHeight, focus, addStyle, absolutePosition, isTouchDevice, getIndex, isClickable, clearSelection, findSingle, find, exportCSV, getOffset, getHiddenElementOuterWidth, getHiddenElementOuterHeight, getWindowScrollTop, removeClass, addClass, setAttribute } from '@primeuix/utils/dom';\nimport { resolveFieldData, equals, isNotEmpty, localeComparator, sort, findIndexInList, reorderArray, isEmpty } from '@primeuix/utils/object';\nimport ArrowDownIcon from '@primevue/icons/arrowdown';\nimport ArrowUpIcon from '@primevue/icons/arrowup';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Paginator from 'primevue/paginator';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport DataTableStyle from 'primevue/datatable/style';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps, resolveComponent, openBlock, createBlock, withCtx, resolveDynamicComponent, normalizeClass, createCommentVNode, resolveDirective, createElementBlock, Fragment, withDirectives, createTextVNode, toDisplayString, createElementVNode, withModifiers, renderList, createVNode, Transition, withKeys, normalizeProps, renderSlot, createSlots } from 'vue';\nimport BarsIcon from '@primevue/icons/bars';\nimport CheckIcon from '@primevue/icons/check';\nimport PencilIcon from '@primevue/icons/pencil';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Ripple from 'primevue/ripple';\nimport Checkbox from 'primevue/checkbox';\nimport RadioButton from 'primevue/radiobutton';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FilterIcon from '@primevue/icons/filter';\nimport FilterSlashIcon from '@primevue/icons/filterslash';\nimport PlusIcon from '@primevue/icons/plus';\nimport TrashIcon from '@primevue/icons/trash';\nimport FocusTrap from 'primevue/focustrap';\nimport Portal from 'primevue/portal';\nimport Select from 'primevue/select';\nimport SortAltIcon from '@primevue/icons/sortalt';\nimport SortAmountDownIcon from '@primevue/icons/sortamountdown';\nimport SortAmountUpAltIcon from '@primevue/icons/sortamountupalt';\nimport Badge from 'primevue/badge';\n\nvar script$c = {\n name: 'BaseDataTable',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: Array,\n \"default\": null\n },\n dataKey: {\n type: [String, Function],\n \"default\": null\n },\n rows: {\n type: Number,\n \"default\": 0\n },\n first: {\n type: Number,\n \"default\": 0\n },\n totalRecords: {\n type: Number,\n \"default\": 0\n },\n paginator: {\n type: Boolean,\n \"default\": false\n },\n paginatorPosition: {\n type: String,\n \"default\": 'bottom'\n },\n alwaysShowPaginator: {\n type: Boolean,\n \"default\": true\n },\n paginatorTemplate: {\n type: [Object, String],\n \"default\": 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown'\n },\n pageLinkSize: {\n type: Number,\n \"default\": 5\n },\n rowsPerPageOptions: {\n type: Array,\n \"default\": null\n },\n currentPageReportTemplate: {\n type: String,\n \"default\": '({currentPage} of {totalPages})'\n },\n lazy: {\n type: Boolean,\n \"default\": false\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n loadingIcon: {\n type: String,\n \"default\": undefined\n },\n sortField: {\n type: [String, Function],\n \"default\": null\n },\n sortOrder: {\n type: Number,\n \"default\": null\n },\n defaultSortOrder: {\n type: Number,\n \"default\": 1\n },\n nullSortOrder: {\n type: Number,\n \"default\": 1\n },\n multiSortMeta: {\n type: Array,\n \"default\": null\n },\n sortMode: {\n type: String,\n \"default\": 'single'\n },\n removableSort: {\n type: Boolean,\n \"default\": false\n },\n filters: {\n type: Object,\n \"default\": null\n },\n filterDisplay: {\n type: String,\n \"default\": null\n },\n globalFilterFields: {\n type: Array,\n \"default\": null\n },\n filterLocale: {\n type: String,\n \"default\": undefined\n },\n selection: {\n type: [Array, Object],\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n compareSelectionBy: {\n type: String,\n \"default\": 'deepEquals'\n },\n metaKeySelection: {\n type: Boolean,\n \"default\": false\n },\n contextMenu: {\n type: Boolean,\n \"default\": false\n },\n contextMenuSelection: {\n type: Object,\n \"default\": null\n },\n selectAll: {\n type: Boolean,\n \"default\": null\n },\n rowHover: {\n type: Boolean,\n \"default\": false\n },\n csvSeparator: {\n type: String,\n \"default\": ','\n },\n exportFilename: {\n type: String,\n \"default\": 'download'\n },\n exportFunction: {\n type: Function,\n \"default\": null\n },\n resizableColumns: {\n type: Boolean,\n \"default\": false\n },\n columnResizeMode: {\n type: String,\n \"default\": 'fit'\n },\n reorderableColumns: {\n type: Boolean,\n \"default\": false\n },\n expandedRows: {\n type: [Array, Object],\n \"default\": null\n },\n expandedRowIcon: {\n type: String,\n \"default\": undefined\n },\n collapsedRowIcon: {\n type: String,\n \"default\": undefined\n },\n rowGroupMode: {\n type: String,\n \"default\": null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n expandableRowGroups: {\n type: Boolean,\n \"default\": false\n },\n expandedRowGroups: {\n type: Array,\n \"default\": null\n },\n stateStorage: {\n type: String,\n \"default\": 'session'\n },\n stateKey: {\n type: String,\n \"default\": null\n },\n editMode: {\n type: String,\n \"default\": null\n },\n editingRows: {\n type: Array,\n \"default\": null\n },\n rowClass: {\n type: Function,\n \"default\": null\n },\n rowStyle: {\n type: Function,\n \"default\": null\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n scrollHeight: {\n type: String,\n \"default\": null\n },\n frozenValue: {\n type: Array,\n \"default\": null\n },\n breakpoint: {\n type: String,\n \"default\": '960px'\n },\n showGridlines: {\n type: Boolean,\n \"default\": false\n },\n stripedRows: {\n type: Boolean,\n \"default\": false\n },\n highlightOnSelect: {\n type: Boolean,\n \"default\": false\n },\n size: {\n type: String,\n \"default\": null\n },\n tableStyle: {\n type: null,\n \"default\": null\n },\n tableClass: {\n type: [String, Object],\n \"default\": null\n },\n tableProps: {\n type: Object,\n \"default\": null\n },\n filterInputProps: {\n type: null,\n \"default\": null\n },\n filterButtonProps: {\n type: Object,\n \"default\": function _default() {\n return {\n filter: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n inline: {\n clear: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n },\n popover: {\n addRule: {\n severity: 'info',\n text: true,\n size: 'small'\n },\n removeRule: {\n severity: 'danger',\n text: true,\n size: 'small'\n },\n apply: {\n size: 'small'\n },\n clear: {\n outlined: true,\n size: 'small'\n }\n }\n };\n }\n },\n editButtonProps: {\n type: Object,\n \"default\": function _default() {\n return {\n init: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n save: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n cancel: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n };\n }\n }\n },\n style: DataTableStyle,\n provide: function provide() {\n return {\n $pcDataTable: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$b = {\n name: 'RowCheckbox',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n column: null,\n rowCheckboxIconTemplate: {\n type: Function,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": null\n }\n },\n methods: {\n getColumnPT: function getColumnPT(key) {\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange: function onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n computed: {\n checkboxAriaLabel: function checkboxAriaLabel() {\n return this.$primevue.config.locale.aria ? this.checked ? this.$primevue.config.locale.aria.selectRow : this.$primevue.config.locale.aria.unselectRow : undefined;\n }\n },\n components: {\n CheckIcon: CheckIcon,\n Checkbox: Checkbox\n }\n};\n\nfunction render$b(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_Checkbox = resolveComponent(\"Checkbox\");\n return openBlock(), createBlock(_component_Checkbox, {\n modelValue: $props.checked,\n binary: true,\n disabled: _ctx.$attrs.disabled,\n \"aria-label\": $options.checkboxAriaLabel,\n onChange: $options.onChange,\n unstyled: _ctx.unstyled,\n pt: $options.getColumnPT('pcRowCheckbox')\n }, {\n icon: withCtx(function (slotProps) {\n return [$props.rowCheckboxIconTemplate ? (openBlock(), createBlock(resolveDynamicComponent($props.rowCheckboxIconTemplate), {\n key: 0,\n checked: slotProps.checked,\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"checked\", \"class\"])) : !$props.rowCheckboxIconTemplate && slotProps.checked ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 1,\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcRowCheckbox')['icon']), null, 16, [\"class\"])) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 8, [\"modelValue\", \"disabled\", \"aria-label\", \"onChange\", \"unstyled\", \"pt\"]);\n}\n\nscript$b.render = render$b;\n\nvar script$a = {\n name: 'RowRadioButton',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['change'],\n props: {\n value: null,\n checked: null,\n name: null,\n column: null,\n index: {\n type: Number,\n \"default\": null\n }\n },\n methods: {\n getColumnPT: function getColumnPT(key) {\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n checked: this.checked,\n disabled: this.$attrs.disabled\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange: function onChange(event) {\n if (!this.$attrs.disabled) {\n this.$emit('change', {\n originalEvent: event,\n data: this.value\n });\n }\n }\n },\n components: {\n RadioButton: RadioButton\n }\n};\n\nfunction render$a(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_RadioButton = resolveComponent(\"RadioButton\");\n return openBlock(), createBlock(_component_RadioButton, {\n modelValue: $props.checked,\n binary: true,\n disabled: _ctx.$attrs.disabled,\n name: $props.name,\n onChange: $options.onChange,\n unstyled: _ctx.unstyled,\n pt: $options.getColumnPT('pcRowRadiobutton')\n }, null, 8, [\"modelValue\", \"disabled\", \"name\", \"onChange\", \"unstyled\", \"pt\"]);\n}\n\nscript$a.render = render$a;\n\nvar script$9 = {\n name: 'BodyCell',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'row-toggle', 'radio-change', 'checkbox-change', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n \"default\": null\n },\n column: {\n type: Object,\n \"default\": null\n },\n frozenRow: {\n type: Boolean,\n \"default\": false\n },\n rowIndex: {\n type: Number,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": null\n },\n isRowExpanded: {\n type: Boolean,\n \"default\": false\n },\n selected: {\n type: Boolean,\n \"default\": false\n },\n editing: {\n type: Boolean,\n \"default\": false\n },\n editingMeta: {\n type: Object,\n \"default\": null\n },\n editMode: {\n type: String,\n \"default\": null\n },\n virtualScrollerContentProps: {\n type: Object,\n \"default\": null\n },\n ariaControls: {\n type: String,\n \"default\": null\n },\n name: {\n type: String,\n \"default\": null\n },\n expandedRowIcon: {\n type: String,\n \"default\": null\n },\n collapsedRowIcon: {\n type: String,\n \"default\": null\n },\n editButtonProps: {\n type: Object,\n \"default\": null\n }\n },\n documentEditListener: null,\n selfClick: false,\n overlayEventListener: null,\n data: function data() {\n return {\n d_editing: this.editing,\n styleObject: {}\n };\n },\n watch: {\n editing: function editing(newValue) {\n this.d_editing = newValue;\n },\n '$data.d_editing': function $dataD_editing(newValue) {\n this.$emit('editing-meta-change', {\n data: this.rowData,\n field: this.field || \"field_\".concat(this.index),\n index: this.rowIndex,\n editing: newValue\n });\n }\n },\n mounted: function mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated: function updated() {\n var _this = this;\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n if (this.d_editing && (this.editMode === 'cell' || this.editMode === 'row' && this.columnProp('rowEditor'))) {\n setTimeout(function () {\n var focusableEl = getFirstFocusableElement(_this.$el);\n focusableEl && focusableEl.focus();\n }, 1);\n }\n },\n beforeUnmount: function beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n },\n methods: {\n columnProp: function columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT: function getColumnPT(key) {\n var _this$$parentInstance, _this$$parentInstance2;\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.size,\n showGridlines: (_this$$parentInstance2 = this.$parentInstance) === null || _this$$parentInstance2 === void 0 || (_this$$parentInstance2 = _this$$parentInstance2.$parentInstance) === null || _this$$parentInstance2 === void 0 ? void 0 : _this$$parentInstance2.showGridlines\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n resolveFieldData: function resolveFieldData$1() {\n return resolveFieldData(this.rowData, this.field);\n },\n toggleRow: function toggleRow(event) {\n this.$emit('row-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n toggleRowWithRadio: function toggleRowWithRadio(event, index) {\n this.$emit('radio-change', {\n originalEvent: event.originalEvent,\n index: index,\n data: event.data\n });\n },\n toggleRowWithCheckbox: function toggleRowWithCheckbox(event, index) {\n this.$emit('checkbox-change', {\n originalEvent: event.originalEvent,\n index: index,\n data: event.data\n });\n },\n isEditable: function isEditable() {\n return this.column.children && this.column.children.editor != null;\n },\n bindDocumentEditListener: function bindDocumentEditListener() {\n var _this2 = this;\n if (!this.documentEditListener) {\n this.documentEditListener = function (event) {\n if (!_this2.selfClick) {\n _this2.completeEdit(event, 'outside');\n }\n _this2.selfClick = false;\n };\n document.addEventListener('click', this.documentEditListener);\n }\n },\n unbindDocumentEditListener: function unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n this.selfClick = false;\n }\n },\n switchCellToViewMode: function switchCellToViewMode() {\n this.d_editing = false;\n this.unbindDocumentEditListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n onClick: function onClick(event) {\n var _this3 = this;\n if (this.editMode === 'cell' && this.isEditable()) {\n this.selfClick = true;\n if (!this.d_editing) {\n this.d_editing = true;\n this.bindDocumentEditListener();\n this.$emit('cell-edit-init', {\n originalEvent: event,\n data: this.rowData,\n field: this.field,\n index: this.rowIndex\n });\n this.overlayEventListener = function (e) {\n if (_this3.$el && _this3.$el.contains(e.target)) {\n _this3.selfClick = true;\n }\n };\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n }\n }\n },\n completeEdit: function completeEdit(event, type) {\n var completeEvent = {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n value: this.rowData[this.field],\n newValue: this.editingRowData[this.field],\n field: this.field,\n index: this.rowIndex,\n type: type,\n defaultPrevented: false,\n preventDefault: function preventDefault() {\n this.defaultPrevented = true;\n }\n };\n this.$emit('cell-edit-complete', completeEvent);\n if (!completeEvent.defaultPrevented) {\n this.switchCellToViewMode();\n }\n },\n onKeyDown: function onKeyDown(event) {\n if (this.editMode === 'cell') {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n this.completeEdit(event, 'enter');\n break;\n case 'Escape':\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', {\n originalEvent: event,\n data: this.rowData,\n field: this.field,\n index: this.rowIndex\n });\n break;\n case 'Tab':\n this.completeEdit(event, 'tab');\n if (event.shiftKey) this.moveToPreviousCell(event);else this.moveToNextCell(event);\n break;\n }\n }\n },\n moveToPreviousCell: function moveToPreviousCell(event) {\n var currentCell = this.findCell(event.target);\n var targetCell = this.findPreviousEditableColumn(currentCell);\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n moveToNextCell: function moveToNextCell(event) {\n var currentCell = this.findCell(event.target);\n var targetCell = this.findNextEditableColumn(currentCell);\n if (targetCell) {\n invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n },\n findCell: function findCell(element) {\n if (element) {\n var cell = element;\n while (cell && !getAttribute(cell, 'data-p-cell-editing')) {\n cell = cell.parentElement;\n }\n return cell;\n } else {\n return null;\n }\n },\n findPreviousEditableColumn: function findPreviousEditableColumn(cell) {\n var prevCell = cell.previousElementSibling;\n if (!prevCell) {\n var previousRow = cell.parentElement.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n if (prevCell) {\n if (getAttribute(prevCell, 'data-p-editable-column')) return prevCell;else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n },\n findNextEditableColumn: function findNextEditableColumn(cell) {\n var nextCell = cell.nextElementSibling;\n if (!nextCell) {\n var nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n if (nextCell) {\n if (getAttribute(nextCell, 'data-p-editable-column')) return nextCell;else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n },\n onRowEditInit: function onRowEditInit(event) {\n this.$emit('row-edit-init', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n },\n onRowEditSave: function onRowEditSave(event) {\n this.$emit('row-edit-save', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n },\n onRowEditCancel: function onRowEditCancel(event) {\n this.$emit('row-edit-cancel', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n },\n editorInitCallback: function editorInitCallback(event) {\n this.$emit('row-edit-init', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n },\n editorSaveCallback: function editorSaveCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-save', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n } else {\n this.completeEdit(event, 'enter');\n }\n },\n editorCancelCallback: function editorCancelCallback(event) {\n if (this.editMode === 'row') {\n this.$emit('row-edit-cancel', {\n originalEvent: event,\n data: this.rowData,\n newData: this.editingRowData,\n field: this.field,\n index: this.rowIndex\n });\n } else {\n this.switchCellToViewMode();\n this.$emit('cell-edit-cancel', {\n originalEvent: event,\n data: this.rowData,\n field: this.field,\n index: this.rowIndex\n });\n }\n },\n updateStickyPosition: function updateStickyPosition() {\n if (this.columnProp('frozen')) {\n var align = this.columnProp('alignFrozen');\n if (align === 'right') {\n var right = 0;\n var next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n this.styleObject.right = right + 'px';\n } else {\n var left = 0;\n var prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n this.styleObject.left = left + 'px';\n }\n }\n },\n getVirtualScrollerProp: function getVirtualScrollerProp(option) {\n return this.virtualScrollerContentProps ? this.virtualScrollerContentProps[option] : null;\n }\n },\n computed: {\n editingRowData: function editingRowData() {\n return this.editingMeta[this.rowIndex] ? this.editingMeta[this.rowIndex].data : this.rowData;\n },\n field: function field() {\n return this.columnProp('field');\n },\n containerClass: function containerClass() {\n return [this.columnProp('bodyClass'), this.columnProp('class'), this.cx('bodyCell')];\n },\n containerStyle: function containerStyle() {\n var bodyStyle = this.columnProp('bodyStyle');\n var columnStyle = this.columnProp('style');\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n },\n loading: function loading() {\n return this.getVirtualScrollerProp('loading');\n },\n loadingOptions: function loadingOptions() {\n var getLoaderOptions = this.getVirtualScrollerProp('getLoaderOptions');\n return getLoaderOptions && getLoaderOptions(this.rowIndex, {\n cellIndex: this.index,\n cellFirst: this.index === 0,\n cellLast: this.index === this.getVirtualScrollerProp('columns').length - 1,\n cellEven: this.index % 2 === 0,\n cellOdd: this.index % 2 !== 0,\n column: this.column,\n field: this.field\n });\n },\n expandButtonAriaLabel: function expandButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.isRowExpanded ? this.$primevue.config.locale.aria.expandRow : this.$primevue.config.locale.aria.collapseRow : undefined;\n },\n initButtonAriaLabel: function initButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.editRow : undefined;\n },\n saveButtonAriaLabel: function saveButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.saveEdit : undefined;\n },\n cancelButtonAriaLabel: function cancelButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.cancelEdit : undefined;\n }\n },\n components: {\n DTRadioButton: script$a,\n DTCheckbox: script$b,\n Button: Button,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon,\n BarsIcon: BarsIcon,\n PencilIcon: PencilIcon,\n CheckIcon: CheckIcon,\n TimesIcon: TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof$a(o) { \"@babel/helpers - typeof\"; return _typeof$a = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$a(o); }\nfunction ownKeys$a(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty$a(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$a(e, r, t) { return (r = _toPropertyKey$a(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$a(t) { var i = _toPrimitive$a(t, \"string\"); return \"symbol\" == _typeof$a(i) ? i : i + \"\"; }\nfunction _toPrimitive$a(t, r) { if (\"object\" != _typeof$a(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$a(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1$4 = [\"colspan\", \"rowspan\", \"data-p-selection-column\", \"data-p-editable-column\", \"data-p-cell-editing\", \"data-p-frozen-column\"];\nvar _hoisted_2$2 = [\"aria-expanded\", \"aria-controls\", \"aria-label\"];\nfunction render$9(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_DTRadioButton = resolveComponent(\"DTRadioButton\");\n var _component_DTCheckbox = resolveComponent(\"DTCheckbox\");\n var _component_BarsIcon = resolveComponent(\"BarsIcon\");\n var _component_ChevronDownIcon = resolveComponent(\"ChevronDownIcon\");\n var _component_ChevronRightIcon = resolveComponent(\"ChevronRightIcon\");\n var _component_Button = resolveComponent(\"Button\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return $options.loading ? (openBlock(), createElementBlock(\"td\", mergeProps({\n key: 0,\n style: $options.containerStyle,\n \"class\": $options.containerClass,\n role: \"cell\"\n }, _objectSpread$a(_objectSpread$a({}, $options.getColumnPT('root')), $options.getColumnPT('bodyCell'))), [(openBlock(), createBlock(resolveDynamicComponent($props.column.children.loading), {\n data: $props.rowData,\n column: $props.column,\n field: $options.field,\n index: $props.rowIndex,\n frozenRow: $props.frozenRow,\n loadingOptions: $options.loadingOptions\n }, null, 8, [\"data\", \"column\", \"field\", \"index\", \"frozenRow\", \"loadingOptions\"]))], 16)) : (openBlock(), createElementBlock(\"td\", mergeProps({\n key: 1,\n style: $options.containerStyle,\n \"class\": $options.containerClass,\n colspan: $options.columnProp('colspan'),\n rowspan: $options.columnProp('rowspan'),\n onClick: _cache[3] || (_cache[3] = function () {\n return $options.onClick && $options.onClick.apply($options, arguments);\n }),\n onKeydown: _cache[4] || (_cache[4] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n role: \"cell\"\n }, _objectSpread$a(_objectSpread$a({}, $options.getColumnPT('root')), $options.getColumnPT('bodyCell')), {\n \"data-p-selection-column\": $options.columnProp('selectionMode') != null,\n \"data-p-editable-column\": $options.isEditable(),\n \"data-p-cell-editing\": $data.d_editing,\n \"data-p-frozen-column\": $options.columnProp('frozen')\n }), [$props.column.children && $props.column.children.body && !$data.d_editing ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.body), {\n key: 0,\n data: $props.rowData,\n column: $props.column,\n field: $options.field,\n index: $props.rowIndex,\n frozenRow: $props.frozenRow,\n editorInitCallback: $options.editorInitCallback,\n rowTogglerCallback: $options.toggleRow\n }, null, 8, [\"data\", \"column\", \"field\", \"index\", \"frozenRow\", \"editorInitCallback\", \"rowTogglerCallback\"])) : $props.column.children && $props.column.children.editor && $data.d_editing ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.editor), {\n key: 1,\n data: $options.editingRowData,\n column: $props.column,\n field: $options.field,\n index: $props.rowIndex,\n frozenRow: $props.frozenRow,\n editorSaveCallback: $options.editorSaveCallback,\n editorCancelCallback: $options.editorCancelCallback\n }, null, 8, [\"data\", \"column\", \"field\", \"index\", \"frozenRow\", \"editorSaveCallback\", \"editorCancelCallback\"])) : $props.column.children && $props.column.children.body && !$props.column.children.editor && $data.d_editing ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.body), {\n key: 2,\n data: $options.editingRowData,\n column: $props.column,\n field: $options.field,\n index: $props.rowIndex,\n frozenRow: $props.frozenRow\n }, null, 8, [\"data\", \"column\", \"field\", \"index\", \"frozenRow\"])) : $options.columnProp('selectionMode') ? (openBlock(), createElementBlock(Fragment, {\n key: 3\n }, [$options.columnProp('selectionMode') === 'single' ? (openBlock(), createBlock(_component_DTRadioButton, {\n key: 0,\n value: $props.rowData,\n name: $props.name,\n checked: $props.selected,\n onChange: _cache[0] || (_cache[0] = function ($event) {\n return $options.toggleRowWithRadio($event, $props.rowIndex);\n }),\n column: $props.column,\n index: $props.index,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"value\", \"name\", \"checked\", \"column\", \"index\", \"unstyled\", \"pt\"])) : $options.columnProp('selectionMode') === 'multiple' ? (openBlock(), createBlock(_component_DTCheckbox, {\n key: 1,\n value: $props.rowData,\n checked: $props.selected,\n rowCheckboxIconTemplate: $props.column.children && $props.column.children.rowcheckboxicon,\n \"aria-selected\": $props.selected ? true : undefined,\n onChange: _cache[1] || (_cache[1] = function ($event) {\n return $options.toggleRowWithCheckbox($event, $props.rowIndex);\n }),\n column: $props.column,\n index: $props.index,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"value\", \"checked\", \"rowCheckboxIconTemplate\", \"aria-selected\", \"column\", \"index\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64)) : $options.columnProp('rowReorder') ? (openBlock(), createElementBlock(Fragment, {\n key: 4\n }, [$props.column.children && $props.column.children.rowreordericon ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.rowreordericon), {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('reorderableRowHandle'))\n }, null, 8, [\"class\"])) : $options.columnProp('rowReorderIcon') ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('reorderableRowHandle'), $options.columnProp('rowReorderIcon')]\n }, $options.getColumnPT('reorderableRowHandle')), null, 16)) : (openBlock(), createBlock(_component_BarsIcon, mergeProps({\n key: 2,\n \"class\": _ctx.cx('reorderableRowHandle')\n }, $options.getColumnPT('reorderableRowHandle')), null, 16, [\"class\"]))], 64)) : $options.columnProp('expander') ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 5,\n \"class\": _ctx.cx('rowToggleButton'),\n type: \"button\",\n \"aria-expanded\": $props.isRowExpanded,\n \"aria-controls\": $props.ariaControls,\n \"aria-label\": $options.expandButtonAriaLabel,\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.toggleRow && $options.toggleRow.apply($options, arguments);\n })\n }, $options.getColumnPT('rowToggleButton'), {\n \"data-pc-group-section\": \"rowactionbutton\"\n }), [$props.column.children && $props.column.children.rowtogglericon ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.rowtogglericon), {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('rowToggleIcon')),\n rowExpanded: $props.isRowExpanded\n }, null, 8, [\"class\", \"rowExpanded\"])) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [$props.isRowExpanded && $props.expandedRowIcon ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n \"class\": normalizeClass([_ctx.cx('rowToggleIcon'), $props.expandedRowIcon])\n }, null, 2)) : $props.isRowExpanded && !$props.expandedRowIcon ? (openBlock(), createBlock(_component_ChevronDownIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('rowToggleIcon')\n }, $options.getColumnPT('rowToggleIcon')), null, 16, [\"class\"])) : !$props.isRowExpanded && $props.collapsedRowIcon ? (openBlock(), createElementBlock(\"span\", {\n key: 2,\n \"class\": normalizeClass([_ctx.cx('rowToggleIcon'), $props.collapsedRowIcon])\n }, null, 2)) : !$props.isRowExpanded && !$props.collapsedRowIcon ? (openBlock(), createBlock(_component_ChevronRightIcon, mergeProps({\n key: 3,\n \"class\": _ctx.cx('rowToggleIcon')\n }, $options.getColumnPT('rowToggleIcon')), null, 16, [\"class\"])) : createCommentVNode(\"\", true)], 64))], 16, _hoisted_2$2)), [[_directive_ripple]]) : $props.editMode === 'row' && $options.columnProp('rowEditor') ? (openBlock(), createElementBlock(Fragment, {\n key: 6\n }, [!$data.d_editing ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n \"class\": _ctx.cx('pcRowEditorInit'),\n \"aria-label\": $options.initButtonAriaLabel,\n unstyled: _ctx.unstyled,\n onClick: $options.onRowEditInit\n }, $props.editButtonProps.init, {\n pt: $options.getColumnPT('pcRowEditorInit'),\n \"data-pc-group-section\": \"rowactionbutton\"\n }), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.column.children && $props.column.children.roweditoriniticon || 'PencilIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcRowEditorInit')['icon']), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"class\", \"aria-label\", \"unstyled\", \"onClick\", \"pt\"])) : createCommentVNode(\"\", true), $data.d_editing ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 1,\n \"class\": _ctx.cx('pcRowEditorSave'),\n \"aria-label\": $options.saveButtonAriaLabel,\n unstyled: _ctx.unstyled,\n onClick: $options.onRowEditSave\n }, $props.editButtonProps.save, {\n pt: $options.getColumnPT('pcRowEditorSave'),\n \"data-pc-group-section\": \"rowactionbutton\"\n }), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.column.children && $props.column.children.roweditorsaveicon || 'CheckIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcRowEditorSave')['icon']), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"class\", \"aria-label\", \"unstyled\", \"onClick\", \"pt\"])) : createCommentVNode(\"\", true), $data.d_editing ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 2,\n \"class\": _ctx.cx('pcRowEditorCancel'),\n \"aria-label\": $options.cancelButtonAriaLabel,\n unstyled: _ctx.unstyled,\n onClick: $options.onRowEditCancel\n }, $props.editButtonProps.cancel, {\n pt: $options.getColumnPT('pcRowEditorCancel'),\n \"data-pc-group-section\": \"rowactionbutton\"\n }), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.column.children && $props.column.children.roweditorcancelicon || 'TimesIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcRowEditorCancel')['icon']), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"class\", \"aria-label\", \"unstyled\", \"onClick\", \"pt\"])) : createCommentVNode(\"\", true)], 64)) : (openBlock(), createElementBlock(Fragment, {\n key: 7\n }, [createTextVNode(toDisplayString($options.resolveFieldData()), 1)], 64))], 16, _hoisted_1$4));\n}\n\nscript$9.render = render$9;\n\nfunction _typeof$9(o) { \"@babel/helpers - typeof\"; return _typeof$9 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$9(o); }\nfunction _createForOfIteratorHelper$2(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray$2(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray$2(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$2(r, a) : void 0; } }\nfunction _arrayLikeToArray$2(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys$9(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty$9(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$9(e, r, t) { return (r = _toPropertyKey$9(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$9(t) { var i = _toPrimitive$9(t, \"string\"); return \"symbol\" == _typeof$9(i) ? i : i + \"\"; }\nfunction _toPrimitive$9(t, r) { if (\"object\" != _typeof$9(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$9(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script$8 = {\n name: 'BodyRow',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['rowgroup-toggle', 'row-click', 'row-dblclick', 'row-rightclick', 'row-touchend', 'row-keydown', 'row-mousedown', 'row-dragstart', 'row-dragover', 'row-dragleave', 'row-dragend', 'row-drop', 'row-toggle', 'radio-change', 'checkbox-change', 'cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'editing-meta-change'],\n props: {\n rowData: {\n type: Object,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": 0\n },\n value: {\n type: Array,\n \"default\": null\n },\n columns: {\n type: null,\n \"default\": null\n },\n frozenRow: {\n type: Boolean,\n \"default\": false\n },\n empty: {\n type: Boolean,\n \"default\": false\n },\n rowGroupMode: {\n type: String,\n \"default\": null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n expandableRowGroups: {\n type: Boolean,\n \"default\": false\n },\n expandedRowGroups: {\n type: Array,\n \"default\": null\n },\n first: {\n type: Number,\n \"default\": 0\n },\n dataKey: {\n type: [String, Function],\n \"default\": null\n },\n expandedRowIcon: {\n type: String,\n \"default\": null\n },\n collapsedRowIcon: {\n type: String,\n \"default\": null\n },\n expandedRows: {\n type: [Array, Object],\n \"default\": null\n },\n selection: {\n type: [Array, Object],\n \"default\": null\n },\n selectionKeys: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n contextMenu: {\n type: Boolean,\n \"default\": false\n },\n contextMenuSelection: {\n type: Object,\n \"default\": null\n },\n rowClass: {\n type: null,\n \"default\": null\n },\n rowStyle: {\n type: null,\n \"default\": null\n },\n rowGroupHeaderStyle: {\n type: null,\n \"default\": null\n },\n editMode: {\n type: String,\n \"default\": null\n },\n compareSelectionBy: {\n type: String,\n \"default\": 'deepEquals'\n },\n editingRows: {\n type: Array,\n \"default\": null\n },\n editingRowKeys: {\n type: null,\n \"default\": null\n },\n editingMeta: {\n type: Object,\n \"default\": null\n },\n templates: {\n type: null,\n \"default\": null\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n editButtonProps: {\n type: Object,\n \"default\": null\n },\n virtualScrollerContentProps: {\n type: Object,\n \"default\": null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n \"default\": false\n },\n expandedRowId: {\n type: String,\n \"default\": null\n },\n nameAttributeSelector: {\n type: String,\n \"default\": null\n }\n },\n data: function data() {\n return {\n d_rowExpanded: false\n };\n },\n watch: {\n expandedRows: {\n deep: true,\n immediate: true,\n handler: function handler(newValue) {\n var _this = this;\n this.d_rowExpanded = this.dataKey ? (newValue === null || newValue === void 0 ? void 0 : newValue[resolveFieldData(this.rowData, this.dataKey)]) !== undefined : newValue === null || newValue === void 0 ? void 0 : newValue.some(function (d) {\n return _this.equals(_this.rowData, d);\n });\n }\n }\n },\n methods: {\n columnProp: function columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n //@todo - update this method\n getColumnPT: function getColumnPT(key) {\n var columnMetaData = {\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.columnProp({}, 'pt'), key, columnMetaData));\n },\n //@todo - update this method\n getBodyRowPTOptions: function getBodyRowPTOptions(key) {\n var _this$$parentInstance;\n var datatable = (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.$parentInstance;\n return this.ptm(key, {\n context: {\n index: this.rowIndex,\n selectable: (datatable === null || datatable === void 0 ? void 0 : datatable.rowHover) || (datatable === null || datatable === void 0 ? void 0 : datatable.selectionMode),\n selected: this.isSelected,\n stripedRows: (datatable === null || datatable === void 0 ? void 0 : datatable.stripedRows) || false\n }\n });\n },\n shouldRenderBodyCell: function shouldRenderBodyCell(column) {\n var isHidden = this.columnProp(column, 'hidden');\n if (this.rowGroupMode && !isHidden) {\n var field = this.columnProp(column, 'field');\n if (this.rowGroupMode === 'subheader') {\n return this.groupRowsBy !== field;\n } else if (this.rowGroupMode === 'rowspan') {\n if (this.isGrouped(column)) {\n var prevRowData = this.value[this.rowIndex - 1];\n if (prevRowData) {\n var currentRowFieldData = resolveFieldData(this.value[this.rowIndex], field);\n var previousRowFieldData = resolveFieldData(prevRowData, field);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n } else {\n return true;\n }\n }\n } else {\n return !isHidden;\n }\n },\n calculateRowGroupSize: function calculateRowGroupSize(column) {\n if (this.isGrouped(column)) {\n var index = this.rowIndex;\n var field = this.columnProp(column, 'field');\n var currentRowFieldData = resolveFieldData(this.value[index], field);\n var nextRowFieldData = currentRowFieldData;\n var groupRowSpan = 0;\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n var nextRowData = this.value[++index];\n if (nextRowData) {\n nextRowFieldData = resolveFieldData(nextRowData, field);\n } else {\n break;\n }\n }\n return groupRowSpan === 1 ? null : groupRowSpan;\n } else {\n return null;\n }\n },\n isGrouped: function isGrouped(column) {\n var field = this.columnProp(column, 'field');\n if (this.groupRowsBy && field) {\n if (Array.isArray(this.groupRowsBy)) return this.groupRowsBy.indexOf(field) > -1;else return this.groupRowsBy === field;\n } else {\n return false;\n }\n },\n findIndexInSelection: function findIndexInSelection(data) {\n return this.findIndex(data, this.selection);\n },\n findIndex: function findIndex(data, collection) {\n var index = -1;\n if (collection && collection.length) {\n for (var i = 0; i < collection.length; i++) {\n if (this.equals(data, collection[i])) {\n index = i;\n break;\n }\n }\n }\n return index;\n },\n equals: function equals$1(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n onRowGroupToggle: function onRowGroupToggle(event) {\n this.$emit('rowgroup-toggle', {\n originalEvent: event,\n data: this.rowData\n });\n },\n onRowClick: function onRowClick(event) {\n this.$emit('row-click', {\n originalEvent: event,\n data: this.rowData,\n index: this.rowIndex\n });\n },\n onRowDblClick: function onRowDblClick(event) {\n this.$emit('row-dblclick', {\n originalEvent: event,\n data: this.rowData,\n index: this.rowIndex\n });\n },\n onRowRightClick: function onRowRightClick(event) {\n this.$emit('row-rightclick', {\n originalEvent: event,\n data: this.rowData,\n index: this.rowIndex\n });\n },\n onRowTouchEnd: function onRowTouchEnd(event) {\n this.$emit('row-touchend', event);\n },\n onRowKeyDown: function onRowKeyDown(event) {\n this.$emit('row-keydown', {\n originalEvent: event,\n data: this.rowData,\n index: this.rowIndex\n });\n },\n onRowMouseDown: function onRowMouseDown(event) {\n this.$emit('row-mousedown', event);\n },\n onRowDragStart: function onRowDragStart(event) {\n this.$emit('row-dragstart', {\n originalEvent: event,\n index: this.rowIndex\n });\n },\n onRowDragOver: function onRowDragOver(event) {\n this.$emit('row-dragover', {\n originalEvent: event,\n index: this.rowIndex\n });\n },\n onRowDragLeave: function onRowDragLeave(event) {\n this.$emit('row-dragleave', event);\n },\n onRowDragEnd: function onRowDragEnd(event) {\n this.$emit('row-dragend', event);\n },\n onRowDrop: function onRowDrop(event) {\n this.$emit('row-drop', event);\n },\n onRowToggle: function onRowToggle(event) {\n this.d_rowExpanded = !this.d_rowExpanded;\n this.$emit('row-toggle', _objectSpread$9(_objectSpread$9({}, event), {}, {\n expanded: this.d_rowExpanded\n }));\n },\n onRadioChange: function onRadioChange(event) {\n this.$emit('radio-change', event);\n },\n onCheckboxChange: function onCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n onCellEditInit: function onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete: function onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel: function onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit: function onRowEditInit(event) {\n this.$emit('row-edit-init', event);\n },\n onRowEditSave: function onRowEditSave(event) {\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel: function onRowEditCancel(event) {\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange: function onEditingMetaChange(event) {\n this.$emit('editing-meta-change', event);\n },\n getVirtualScrollerProp: function getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n return options ? options[option] : null;\n }\n },\n computed: {\n rowIndex: function rowIndex() {\n var getItemOptions = this.getVirtualScrollerProp('getItemOptions');\n return getItemOptions ? getItemOptions(this.index).index : this.index;\n },\n rowStyles: function rowStyles() {\n var _this$rowStyle;\n return (_this$rowStyle = this.rowStyle) === null || _this$rowStyle === void 0 ? void 0 : _this$rowStyle.call(this, this.rowData);\n },\n rowClasses: function rowClasses() {\n var rowStyleClass = [];\n var columnSelectionMode = null;\n if (this.rowClass) {\n var rowClassValue = this.rowClass(this.rowData);\n if (rowClassValue) {\n rowStyleClass.push(rowClassValue);\n }\n }\n if (this.columns) {\n var _iterator = _createForOfIteratorHelper$2(this.columns),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var col = _step.value;\n var _selectionMode = this.columnProp(col, 'selectionMode');\n if (isNotEmpty(_selectionMode)) {\n columnSelectionMode = _selectionMode;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n return [this.cx('row', {\n rowData: this.rowData,\n index: this.rowIndex,\n columnSelectionMode: columnSelectionMode\n }), rowStyleClass];\n },\n rowTabindex: function rowTabindex() {\n if (this.selection === null && (this.selectionMode === 'single' || this.selectionMode === 'multiple')) {\n return this.rowIndex === 0 ? 0 : -1;\n }\n return -1;\n },\n isRowEditing: function isRowEditing() {\n if (this.rowData && this.editingRows) {\n if (this.dataKey) return this.editingRowKeys ? this.editingRowKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;else return this.findIndex(this.rowData, this.editingRows) > -1;\n }\n return false;\n },\n isRowGroupExpanded: function isRowGroupExpanded() {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n var groupFieldValue = resolveFieldData(this.rowData, this.groupRowsBy);\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n return false;\n },\n isSelected: function isSelected() {\n if (this.rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys ? this.selectionKeys[resolveFieldData(this.rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(this.rowData) > -1;else return this.equals(this.rowData, this.selection);\n }\n }\n return false;\n },\n isSelectedWithContextMenu: function isSelectedWithContextMenu() {\n if (this.rowData && this.contextMenuSelection) {\n return this.equals(this.rowData, this.contextMenuSelection, this.dataKey);\n }\n return false;\n },\n shouldRenderRowGroupHeader: function shouldRenderRowGroupHeader() {\n var currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n var prevRowData = this.value[this.rowIndex - 1];\n if (prevRowData) {\n var previousRowFieldData = resolveFieldData(prevRowData, this.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n },\n shouldRenderRowGroupFooter: function shouldRenderRowGroupFooter() {\n if (this.expandableRowGroups && !this.isRowGroupExpanded) {\n return false;\n } else {\n var currentRowFieldData = resolveFieldData(this.rowData, this.groupRowsBy);\n var nextRowData = this.value[this.rowIndex + 1];\n if (nextRowData) {\n var nextRowFieldData = resolveFieldData(nextRowData, this.groupRowsBy);\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n },\n columnsLength: function columnsLength() {\n var _this2 = this;\n if (this.columns) {\n var hiddenColLength = 0;\n this.columns.forEach(function (column) {\n if (_this2.columnProp(column, 'selectionMode') === 'single') hiddenColLength--;\n if (_this2.columnProp(column, 'hidden')) hiddenColLength++;\n });\n return this.columns.length - hiddenColLength;\n }\n return 0;\n }\n },\n components: {\n DTBodyCell: script$9,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n\nfunction _typeof$8(o) { \"@babel/helpers - typeof\"; return _typeof$8 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$8(o); }\nfunction ownKeys$8(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty$8(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$8(e, r, t) { return (r = _toPropertyKey$8(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$8(t) { var i = _toPrimitive$8(t, \"string\"); return \"symbol\" == _typeof$8(i) ? i : i + \"\"; }\nfunction _toPrimitive$8(t, r) { if (\"object\" != _typeof$8(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$8(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1$3 = [\"colspan\"];\nvar _hoisted_2$1 = [\"tabindex\", \"aria-selected\", \"data-p-index\", \"data-p-selectable-row\", \"data-p-selected\", \"data-p-selected-contextmenu\"];\nvar _hoisted_3 = [\"id\"];\nvar _hoisted_4 = [\"colspan\"];\nvar _hoisted_5 = [\"colspan\"];\nvar _hoisted_6 = [\"colspan\"];\nfunction render$8(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_ChevronDownIcon = resolveComponent(\"ChevronDownIcon\");\n var _component_ChevronRightIcon = resolveComponent(\"ChevronRightIcon\");\n var _component_DTBodyCell = resolveComponent(\"DTBodyCell\");\n return !$props.empty ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [$props.templates['groupheader'] && $props.rowGroupMode === 'subheader' && $options.shouldRenderRowGroupHeader ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('rowGroupHeader'),\n style: $props.rowGroupHeaderStyle,\n role: \"row\"\n }, _ctx.ptm('rowGroupHeader')), [createElementVNode(\"td\", mergeProps({\n colspan: $options.columnsLength - 1\n }, _objectSpread$8(_objectSpread$8({}, $options.getColumnPT('bodycell')), _ctx.ptm('rowGroupHeaderCell'))), [$props.expandableRowGroups ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('rowToggleButton'),\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onRowGroupToggle && $options.onRowGroupToggle.apply($options, arguments);\n }),\n type: \"button\"\n }, _ctx.ptm('rowToggleButton')), [$props.templates['rowtoggleicon'] || $props.templates['rowgrouptogglericon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['rowtoggleicon'] || $props.templates['rowgrouptogglericon']), {\n key: 0,\n expanded: $options.isRowGroupExpanded\n }, null, 8, [\"expanded\"])) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [$options.isRowGroupExpanded && $props.expandedRowIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('rowToggleIcon'), $props.expandedRowIcon]\n }, _ctx.ptm('rowToggleIcon')), null, 16)) : $options.isRowGroupExpanded && !$props.expandedRowIcon ? (openBlock(), createBlock(_component_ChevronDownIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('rowToggleIcon')\n }, _ctx.ptm('rowToggleIcon')), null, 16, [\"class\"])) : !$options.isRowGroupExpanded && $props.collapsedRowIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": [_ctx.cx('rowToggleIcon'), $props.collapsedRowIcon]\n }, _ctx.ptm('rowToggleIcon')), null, 16)) : !$options.isRowGroupExpanded && !$props.collapsedRowIcon ? (openBlock(), createBlock(_component_ChevronRightIcon, mergeProps({\n key: 3,\n \"class\": _ctx.cx('rowToggleIcon')\n }, _ctx.ptm('rowToggleIcon')), null, 16, [\"class\"])) : createCommentVNode(\"\", true)], 64))], 16)) : createCommentVNode(\"\", true), (openBlock(), createBlock(resolveDynamicComponent($props.templates['groupheader']), {\n data: $props.rowData,\n index: $options.rowIndex\n }, null, 8, [\"data\", \"index\"]))], 16, _hoisted_1$3)], 16)) : createCommentVNode(\"\", true), ($props.expandableRowGroups ? $options.isRowGroupExpanded : true) ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 1,\n \"class\": $options.rowClasses,\n style: $options.rowStyles,\n tabindex: $options.rowTabindex,\n role: \"row\",\n \"aria-selected\": $props.selectionMode ? $options.isSelected : null,\n onClick: _cache[1] || (_cache[1] = function () {\n return $options.onRowClick && $options.onRowClick.apply($options, arguments);\n }),\n onDblclick: _cache[2] || (_cache[2] = function () {\n return $options.onRowDblClick && $options.onRowDblClick.apply($options, arguments);\n }),\n onContextmenu: _cache[3] || (_cache[3] = function () {\n return $options.onRowRightClick && $options.onRowRightClick.apply($options, arguments);\n }),\n onTouchend: _cache[4] || (_cache[4] = function () {\n return $options.onRowTouchEnd && $options.onRowTouchEnd.apply($options, arguments);\n }),\n onKeydown: _cache[5] || (_cache[5] = withModifiers(function () {\n return $options.onRowKeyDown && $options.onRowKeyDown.apply($options, arguments);\n }, [\"self\"])),\n onMousedown: _cache[6] || (_cache[6] = function () {\n return $options.onRowMouseDown && $options.onRowMouseDown.apply($options, arguments);\n }),\n onDragstart: _cache[7] || (_cache[7] = function () {\n return $options.onRowDragStart && $options.onRowDragStart.apply($options, arguments);\n }),\n onDragover: _cache[8] || (_cache[8] = function () {\n return $options.onRowDragOver && $options.onRowDragOver.apply($options, arguments);\n }),\n onDragleave: _cache[9] || (_cache[9] = function () {\n return $options.onRowDragLeave && $options.onRowDragLeave.apply($options, arguments);\n }),\n onDragend: _cache[10] || (_cache[10] = function () {\n return $options.onRowDragEnd && $options.onRowDragEnd.apply($options, arguments);\n }),\n onDrop: _cache[11] || (_cache[11] = function () {\n return $options.onRowDrop && $options.onRowDrop.apply($options, arguments);\n })\n }, $options.getBodyRowPTOptions('bodyRow'), {\n \"data-p-index\": $options.rowIndex,\n \"data-p-selectable-row\": $props.selectionMode ? true : false,\n \"data-p-selected\": $props.selection && $options.isSelected,\n \"data-p-selected-contextmenu\": $props.contextMenuSelection && $options.isSelectedWithContextMenu\n }), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, function (col, i) {\n return openBlock(), createElementBlock(Fragment, null, [$options.shouldRenderBodyCell(col) ? (openBlock(), createBlock(_component_DTBodyCell, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || i,\n rowData: $props.rowData,\n column: col,\n rowIndex: $options.rowIndex,\n index: i,\n selected: $options.isSelected,\n frozenRow: $props.frozenRow,\n rowspan: $props.rowGroupMode === 'rowspan' ? $options.calculateRowGroupSize(col) : null,\n editMode: $props.editMode,\n editing: $props.editMode === 'row' && $options.isRowEditing,\n editingMeta: $props.editingMeta,\n virtualScrollerContentProps: $props.virtualScrollerContentProps,\n ariaControls: $props.expandedRowId + '_' + $options.rowIndex + '_expansion',\n name: $props.nameAttributeSelector,\n isRowExpanded: $data.d_rowExpanded,\n expandedRowIcon: $props.expandedRowIcon,\n collapsedRowIcon: $props.collapsedRowIcon,\n editButtonProps: $props.editButtonProps,\n onRadioChange: $options.onRadioChange,\n onCheckboxChange: $options.onCheckboxChange,\n onRowToggle: $options.onRowToggle,\n onCellEditInit: $options.onCellEditInit,\n onCellEditComplete: $options.onCellEditComplete,\n onCellEditCancel: $options.onCellEditCancel,\n onRowEditInit: $options.onRowEditInit,\n onRowEditSave: $options.onRowEditSave,\n onRowEditCancel: $options.onRowEditCancel,\n onEditingMetaChange: $options.onEditingMetaChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"rowData\", \"column\", \"rowIndex\", \"index\", \"selected\", \"frozenRow\", \"rowspan\", \"editMode\", \"editing\", \"editingMeta\", \"virtualScrollerContentProps\", \"ariaControls\", \"name\", \"isRowExpanded\", \"expandedRowIcon\", \"collapsedRowIcon\", \"editButtonProps\", \"onRadioChange\", \"onCheckboxChange\", \"onRowToggle\", \"onCellEditInit\", \"onCellEditComplete\", \"onCellEditCancel\", \"onRowEditInit\", \"onRowEditSave\", \"onRowEditCancel\", \"onEditingMetaChange\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 256))], 16, _hoisted_2$1)) : createCommentVNode(\"\", true), $props.templates['expansion'] && $props.expandedRows && $data.d_rowExpanded ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 2,\n id: $props.expandedRowId + '_' + $options.rowIndex + '_expansion',\n \"class\": _ctx.cx('rowExpansion'),\n role: \"row\"\n }, _ctx.ptm('rowExpansion')), [createElementVNode(\"td\", mergeProps({\n colspan: $options.columnsLength\n }, _objectSpread$8(_objectSpread$8({}, $options.getColumnPT('bodycell')), _ctx.ptm('rowExpansionCell'))), [(openBlock(), createBlock(resolveDynamicComponent($props.templates['expansion']), {\n data: $props.rowData,\n index: $options.rowIndex\n }, null, 8, [\"data\", \"index\"]))], 16, _hoisted_4)], 16, _hoisted_3)) : createCommentVNode(\"\", true), $props.templates['groupfooter'] && $props.rowGroupMode === 'subheader' && $options.shouldRenderRowGroupFooter ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 3,\n \"class\": _ctx.cx('rowGroupFooter'),\n role: \"row\"\n }, _ctx.ptm('rowGroupFooter')), [createElementVNode(\"td\", mergeProps({\n colspan: $options.columnsLength - 1\n }, _objectSpread$8(_objectSpread$8({}, $options.getColumnPT('bodycell')), _ctx.ptm('rowGroupFooterCell'))), [(openBlock(), createBlock(resolveDynamicComponent($props.templates['groupfooter']), {\n data: $props.rowData,\n index: $options.rowIndex\n }, null, 8, [\"data\", \"index\"]))], 16, _hoisted_5)], 16)) : createCommentVNode(\"\", true)], 64)) : (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"row\"\n }, _ctx.ptm('emptyMessage')), [createElementVNode(\"td\", mergeProps({\n colspan: $options.columnsLength\n }, _objectSpread$8(_objectSpread$8({}, $options.getColumnPT('bodycell')), _ctx.ptm('emptyMessageCell'))), [$props.templates.empty ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.empty), {\n key: 0\n })) : createCommentVNode(\"\", true)], 16, _hoisted_6)], 16));\n}\n\nscript$8.render = render$8;\n\nvar script$7 = {\n name: 'TableBody',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['rowgroup-toggle', 'row-click', 'row-dblclick', 'row-rightclick', 'row-touchend', 'row-keydown', 'row-mousedown', 'row-dragstart', 'row-dragover', 'row-dragleave', 'row-dragend', 'row-drop', 'row-toggle', 'radio-change', 'checkbox-change', 'cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'row-edit-init', 'row-edit-save', 'row-edit-cancel', 'editing-meta-change'],\n props: {\n value: {\n type: Array,\n \"default\": null\n },\n columns: {\n type: null,\n \"default\": null\n },\n frozenRow: {\n type: Boolean,\n \"default\": false\n },\n empty: {\n type: Boolean,\n \"default\": false\n },\n rowGroupMode: {\n type: String,\n \"default\": null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n expandableRowGroups: {\n type: Boolean,\n \"default\": false\n },\n expandedRowGroups: {\n type: Array,\n \"default\": null\n },\n first: {\n type: Number,\n \"default\": 0\n },\n dataKey: {\n type: [String, Function],\n \"default\": null\n },\n expandedRowIcon: {\n type: String,\n \"default\": null\n },\n collapsedRowIcon: {\n type: String,\n \"default\": null\n },\n expandedRows: {\n type: [Array, Object],\n \"default\": null\n },\n selection: {\n type: [Array, Object],\n \"default\": null\n },\n selectionKeys: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n contextMenu: {\n type: Boolean,\n \"default\": false\n },\n contextMenuSelection: {\n type: Object,\n \"default\": null\n },\n rowClass: {\n type: null,\n \"default\": null\n },\n rowStyle: {\n type: null,\n \"default\": null\n },\n editMode: {\n type: String,\n \"default\": null\n },\n compareSelectionBy: {\n type: String,\n \"default\": 'deepEquals'\n },\n editingRows: {\n type: Array,\n \"default\": null\n },\n editingRowKeys: {\n type: null,\n \"default\": null\n },\n editingMeta: {\n type: Object,\n \"default\": null\n },\n templates: {\n type: null,\n \"default\": null\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n editButtonProps: {\n type: Object,\n \"default\": null\n },\n virtualScrollerContentProps: {\n type: Object,\n \"default\": null\n },\n isVirtualScrollerDisabled: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n rowGroupHeaderStyleObject: {}\n };\n },\n mounted: function mounted() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n updated: function updated() {\n if (this.frozenRow) {\n this.updateFrozenRowStickyPosition();\n }\n if (this.scrollable && this.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n },\n methods: {\n getRowKey: function getRowKey(rowData, rowIndex) {\n return this.dataKey ? resolveFieldData(rowData, this.dataKey) : rowIndex;\n },\n updateFrozenRowStickyPosition: function updateFrozenRowStickyPosition() {\n this.$el.style.top = getOuterHeight(this.$el.previousElementSibling) + 'px';\n },\n updateFrozenRowGroupHeaderStickyPosition: function updateFrozenRowGroupHeaderStickyPosition() {\n var tableHeaderHeight = getOuterHeight(this.$el.previousElementSibling);\n this.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n },\n getVirtualScrollerProp: function getVirtualScrollerProp(option, options) {\n options = options || this.virtualScrollerContentProps;\n return options ? options[option] : null;\n },\n bodyRef: function bodyRef(el) {\n // For VirtualScroller\n var contentRef = this.getVirtualScrollerProp('contentRef');\n contentRef && contentRef(el);\n }\n },\n computed: {\n rowGroupHeaderStyle: function rowGroupHeaderStyle() {\n if (this.scrollable) {\n return {\n top: this.rowGroupHeaderStyleObject.top\n };\n }\n return null;\n },\n bodyContentStyle: function bodyContentStyle() {\n return this.getVirtualScrollerProp('contentStyle');\n },\n ptmTBodyOptions: function ptmTBodyOptions() {\n var _this$$parentInstance;\n return {\n context: {\n scrollable: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.scrollable\n }\n };\n },\n expandedRowId: function expandedRowId() {\n return UniqueComponentId();\n },\n nameAttributeSelector: function nameAttributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n DTBodyRow: script$8\n }\n};\n\nfunction render$7(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_DTBodyRow = resolveComponent(\"DTBodyRow\");\n return openBlock(), createElementBlock(\"tbody\", mergeProps({\n ref: $options.bodyRef,\n \"class\": _ctx.cx('tbody'),\n role: \"rowgroup\",\n style: $options.bodyContentStyle\n }, _ctx.ptm('tbody', $options.ptmTBodyOptions)), [!$props.empty ? (openBlock(true), createElementBlock(Fragment, {\n key: 0\n }, renderList($props.value, function (rowData, rowIndex) {\n return openBlock(), createBlock(_component_DTBodyRow, {\n key: $options.getRowKey(rowData, rowIndex),\n rowData: rowData,\n index: rowIndex,\n value: $props.value,\n columns: $props.columns,\n frozenRow: $props.frozenRow,\n empty: $props.empty,\n first: $props.first,\n dataKey: $props.dataKey,\n selection: $props.selection,\n selectionKeys: $props.selectionKeys,\n selectionMode: $props.selectionMode,\n contextMenu: $props.contextMenu,\n contextMenuSelection: $props.contextMenuSelection,\n rowGroupMode: $props.rowGroupMode,\n groupRowsBy: $props.groupRowsBy,\n expandableRowGroups: $props.expandableRowGroups,\n rowClass: $props.rowClass,\n rowStyle: $props.rowStyle,\n editMode: $props.editMode,\n compareSelectionBy: $props.compareSelectionBy,\n scrollable: $props.scrollable,\n expandedRowIcon: $props.expandedRowIcon,\n collapsedRowIcon: $props.collapsedRowIcon,\n expandedRows: $props.expandedRows,\n expandedRowGroups: $props.expandedRowGroups,\n editingRows: $props.editingRows,\n editingRowKeys: $props.editingRowKeys,\n templates: $props.templates,\n editButtonProps: $props.editButtonProps,\n virtualScrollerContentProps: $props.virtualScrollerContentProps,\n isVirtualScrollerDisabled: $props.isVirtualScrollerDisabled,\n editingMeta: $props.editingMeta,\n rowGroupHeaderStyle: $options.rowGroupHeaderStyle,\n expandedRowId: $options.expandedRowId,\n nameAttributeSelector: $options.nameAttributeSelector,\n onRowgroupToggle: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('rowgroup-toggle', $event);\n }),\n onRowClick: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('row-click', $event);\n }),\n onRowDblclick: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('row-dblclick', $event);\n }),\n onRowRightclick: _cache[3] || (_cache[3] = function ($event) {\n return _ctx.$emit('row-rightclick', $event);\n }),\n onRowTouchend: _cache[4] || (_cache[4] = function ($event) {\n return _ctx.$emit('row-touchend', $event);\n }),\n onRowKeydown: _cache[5] || (_cache[5] = function ($event) {\n return _ctx.$emit('row-keydown', $event);\n }),\n onRowMousedown: _cache[6] || (_cache[6] = function ($event) {\n return _ctx.$emit('row-mousedown', $event);\n }),\n onRowDragstart: _cache[7] || (_cache[7] = function ($event) {\n return _ctx.$emit('row-dragstart', $event);\n }),\n onRowDragover: _cache[8] || (_cache[8] = function ($event) {\n return _ctx.$emit('row-dragover', $event);\n }),\n onRowDragleave: _cache[9] || (_cache[9] = function ($event) {\n return _ctx.$emit('row-dragleave', $event);\n }),\n onRowDragend: _cache[10] || (_cache[10] = function ($event) {\n return _ctx.$emit('row-dragend', $event);\n }),\n onRowDrop: _cache[11] || (_cache[11] = function ($event) {\n return _ctx.$emit('row-drop', $event);\n }),\n onRowToggle: _cache[12] || (_cache[12] = function ($event) {\n return _ctx.$emit('row-toggle', $event);\n }),\n onRadioChange: _cache[13] || (_cache[13] = function ($event) {\n return _ctx.$emit('radio-change', $event);\n }),\n onCheckboxChange: _cache[14] || (_cache[14] = function ($event) {\n return _ctx.$emit('checkbox-change', $event);\n }),\n onCellEditInit: _cache[15] || (_cache[15] = function ($event) {\n return _ctx.$emit('cell-edit-init', $event);\n }),\n onCellEditComplete: _cache[16] || (_cache[16] = function ($event) {\n return _ctx.$emit('cell-edit-complete', $event);\n }),\n onCellEditCancel: _cache[17] || (_cache[17] = function ($event) {\n return _ctx.$emit('cell-edit-cancel', $event);\n }),\n onRowEditInit: _cache[18] || (_cache[18] = function ($event) {\n return _ctx.$emit('row-edit-init', $event);\n }),\n onRowEditSave: _cache[19] || (_cache[19] = function ($event) {\n return _ctx.$emit('row-edit-save', $event);\n }),\n onRowEditCancel: _cache[20] || (_cache[20] = function ($event) {\n return _ctx.$emit('row-edit-cancel', $event);\n }),\n onEditingMetaChange: _cache[21] || (_cache[21] = function ($event) {\n return _ctx.$emit('editing-meta-change', $event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"rowData\", \"index\", \"value\", \"columns\", \"frozenRow\", \"empty\", \"first\", \"dataKey\", \"selection\", \"selectionKeys\", \"selectionMode\", \"contextMenu\", \"contextMenuSelection\", \"rowGroupMode\", \"groupRowsBy\", \"expandableRowGroups\", \"rowClass\", \"rowStyle\", \"editMode\", \"compareSelectionBy\", \"scrollable\", \"expandedRowIcon\", \"collapsedRowIcon\", \"expandedRows\", \"expandedRowGroups\", \"editingRows\", \"editingRowKeys\", \"templates\", \"editButtonProps\", \"virtualScrollerContentProps\", \"isVirtualScrollerDisabled\", \"editingMeta\", \"rowGroupHeaderStyle\", \"expandedRowId\", \"nameAttributeSelector\", \"unstyled\", \"pt\"]);\n }), 128)) : (openBlock(), createBlock(_component_DTBodyRow, {\n key: 1,\n empty: $props.empty,\n columns: $props.columns,\n templates: $props.templates\n }, null, 8, [\"empty\", \"columns\", \"templates\"]))], 16);\n}\n\nscript$7.render = render$7;\n\nvar script$6 = {\n name: 'FooterCell',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n props: {\n column: {\n type: Object,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": null\n }\n },\n data: function data() {\n return {\n styleObject: {}\n };\n },\n mounted: function mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated: function updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp: function columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT: function getColumnPT(key) {\n var _this$$parentInstance, _this$$parentInstance2;\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n size: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.size,\n showGridlines: ((_this$$parentInstance2 = this.$parentInstance) === null || _this$$parentInstance2 === void 0 || (_this$$parentInstance2 = _this$$parentInstance2.$parentInstance) === null || _this$$parentInstance2 === void 0 ? void 0 : _this$$parentInstance2.showGridlines) || false\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n updateStickyPosition: function updateStickyPosition() {\n if (this.columnProp('frozen')) {\n var align = this.columnProp('alignFrozen');\n if (align === 'right') {\n var right = 0;\n var next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n this.styleObject.right = right + 'px';\n } else {\n var left = 0;\n var prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n this.styleObject.left = left + 'px';\n }\n }\n }\n },\n computed: {\n containerClass: function containerClass() {\n return [this.columnProp('footerClass'), this.columnProp('class'), this.cx('footerCell')];\n },\n containerStyle: function containerStyle() {\n var bodyStyle = this.columnProp('footerStyle');\n var columnStyle = this.columnProp('style');\n return this.columnProp('frozen') ? [columnStyle, bodyStyle, this.styleObject] : [columnStyle, bodyStyle];\n }\n }\n};\n\nfunction _typeof$7(o) { \"@babel/helpers - typeof\"; return _typeof$7 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$7(o); }\nfunction ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty$7(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$7(e, r, t) { return (r = _toPropertyKey$7(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$7(t) { var i = _toPrimitive$7(t, \"string\"); return \"symbol\" == _typeof$7(i) ? i : i + \"\"; }\nfunction _toPrimitive$7(t, r) { if (\"object\" != _typeof$7(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$7(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1$2 = [\"colspan\", \"rowspan\", \"data-p-frozen-column\"];\nfunction render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"td\", mergeProps({\n style: $options.containerStyle,\n \"class\": $options.containerClass,\n role: \"cell\",\n colspan: $options.columnProp('colspan'),\n rowspan: $options.columnProp('rowspan')\n }, _objectSpread$7(_objectSpread$7({}, $options.getColumnPT('root')), $options.getColumnPT('footerCell')), {\n \"data-p-frozen-column\": $options.columnProp('frozen')\n }), [$props.column.children && $props.column.children.footer ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.footer), {\n key: 0,\n column: $props.column\n }, null, 8, [\"column\"])) : createCommentVNode(\"\", true), $options.columnProp('footer') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('columnFooter')\n }, $options.getColumnPT('columnFooter')), toDisplayString($options.columnProp('footer')), 17)) : createCommentVNode(\"\", true)], 16, _hoisted_1$2);\n}\n\nscript$6.render = render$6;\n\nfunction _createForOfIteratorHelper$1(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray$1(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray$1(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; } }\nfunction _arrayLikeToArray$1(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script$5 = {\n name: 'TableFooter',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n props: {\n columnGroup: {\n type: null,\n \"default\": null\n },\n columns: {\n type: Object,\n \"default\": null\n }\n },\n provide: function provide() {\n return {\n $rows: this.d_footerRows,\n $columns: this.d_footerColumns\n };\n },\n data: function data() {\n return {\n d_footerRows: new HelperSet({\n type: 'Row'\n }),\n d_footerColumns: new HelperSet({\n type: 'Column'\n })\n };\n },\n beforeUnmount: function beforeUnmount() {\n this.d_footerRows.clear();\n this.d_footerColumns.clear();\n },\n methods: {\n columnProp: function columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT: function getColumnGroupPT(key) {\n var columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'footer',\n scrollable: this.ptmTFootOptions.context.scrollable\n }\n };\n return mergeProps(this.ptm(\"columnGroup.\".concat(key), {\n columnGroup: columnGroupMetaData\n }), this.ptm(\"columnGroup.\".concat(key), columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps: function getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT: function getRowPT(row, key, index) {\n var rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: index\n }\n };\n return mergeProps(this.ptm(\"row.\".concat(key), {\n row: rowMetaData\n }), this.ptm(\"row.\".concat(key), rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp: function getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getFooterRows: function getFooterRows() {\n var _this$d_footerRows;\n return (_this$d_footerRows = this.d_footerRows) === null || _this$d_footerRows === void 0 ? void 0 : _this$d_footerRows.get(this.columnGroup, this.columnGroup.children);\n },\n getFooterColumns: function getFooterColumns(row) {\n var _this$d_footerColumns;\n return (_this$d_footerColumns = this.d_footerColumns) === null || _this$d_footerColumns === void 0 ? void 0 : _this$d_footerColumns.get(row, row.children);\n }\n },\n computed: {\n hasFooter: function hasFooter() {\n var hasFooter = false;\n if (this.columnGroup) {\n hasFooter = true;\n } else if (this.columns) {\n var _iterator = _createForOfIteratorHelper$1(this.columns),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var col = _step.value;\n if (this.columnProp(col, 'footer') || col.children && col.children.footer) {\n hasFooter = true;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n return hasFooter;\n },\n ptmTFootOptions: function ptmTFootOptions() {\n var _this$$parentInstance;\n return {\n context: {\n scrollable: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.scrollable\n }\n };\n }\n },\n components: {\n DTFooterCell: script$6\n }\n};\n\nfunction _typeof$6(o) { \"@babel/helpers - typeof\"; return _typeof$6 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$6(o); }\nfunction ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty$6(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$6(e, r, t) { return (r = _toPropertyKey$6(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$6(t) { var i = _toPrimitive$6(t, \"string\"); return \"symbol\" == _typeof$6(i) ? i : i + \"\"; }\nfunction _toPrimitive$6(t, r) { if (\"object\" != _typeof$6(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$6(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render$5(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_DTFooterCell = resolveComponent(\"DTFooterCell\");\n return $options.hasFooter ? (openBlock(), createElementBlock(\"tfoot\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('tfoot'),\n style: _ctx.sx('tfoot'),\n role: \"rowgroup\"\n }, $props.columnGroup ? _objectSpread$6(_objectSpread$6({}, _ctx.ptm('tfoot', $options.ptmTFootOptions)), $options.getColumnGroupPT('root')) : _ctx.ptm('tfoot', $options.ptmTFootOptions), {\n \"data-pc-section\": \"tfoot\"\n }), [!$props.columnGroup ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 0,\n role: \"row\"\n }, _ctx.ptm('footerRow')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, function (col, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || i\n }, [!$options.columnProp(col, 'hidden') ? (openBlock(), createBlock(_component_DTFooterCell, {\n key: 0,\n column: col,\n pt: _ctx.pt\n }, null, 8, [\"column\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16)) : (openBlock(true), createElementBlock(Fragment, {\n key: 1\n }, renderList($options.getFooterRows(), function (row, i) {\n return openBlock(), createElementBlock(\"tr\", mergeProps({\n key: i,\n role: \"row\",\n ref_for: true\n }, _objectSpread$6(_objectSpread$6({}, _ctx.ptm('footerRow')), $options.getRowPT(row, 'root', i))), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.getFooterColumns(row), function (col, j) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || j\n }, [!$options.columnProp(col, 'hidden') ? (openBlock(), createBlock(_component_DTFooterCell, {\n key: 0,\n column: col,\n index: i,\n pt: _ctx.pt\n }, null, 8, [\"column\", \"index\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n }), 128))], 16)) : createCommentVNode(\"\", true);\n}\n\nscript$5.render = render$5;\n\nfunction _typeof$5(o) { \"@babel/helpers - typeof\"; return _typeof$5 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$5(o); }\nfunction ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty$5(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$5(e, r, t) { return (r = _toPropertyKey$5(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$5(t) { var i = _toPrimitive$5(t, \"string\"); return \"symbol\" == _typeof$5(i) ? i : i + \"\"; }\nfunction _toPrimitive$5(t, r) { if (\"object\" != _typeof$5(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$5(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script$4 = {\n name: 'ColumnFilter',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n field: {\n type: String,\n \"default\": null\n },\n type: {\n type: String,\n \"default\": 'text'\n },\n display: {\n type: String,\n \"default\": null\n },\n showMenu: {\n type: Boolean,\n \"default\": true\n },\n matchMode: {\n type: String,\n \"default\": null\n },\n showOperator: {\n type: Boolean,\n \"default\": true\n },\n showClearButton: {\n type: Boolean,\n \"default\": true\n },\n showApplyButton: {\n type: Boolean,\n \"default\": true\n },\n showMatchModes: {\n type: Boolean,\n \"default\": true\n },\n showAddButton: {\n type: Boolean,\n \"default\": true\n },\n matchModeOptions: {\n type: Array,\n \"default\": null\n },\n maxConstraints: {\n type: Number,\n \"default\": 2\n },\n filterElement: {\n type: Function,\n \"default\": null\n },\n filterHeaderTemplate: {\n type: Function,\n \"default\": null\n },\n filterFooterTemplate: {\n type: Function,\n \"default\": null\n },\n filterClearTemplate: {\n type: Function,\n \"default\": null\n },\n filterApplyTemplate: {\n type: Function,\n \"default\": null\n },\n filterIconTemplate: {\n type: Function,\n \"default\": null\n },\n filterAddIconTemplate: {\n type: Function,\n \"default\": null\n },\n filterRemoveIconTemplate: {\n type: Function,\n \"default\": null\n },\n filterClearIconTemplate: {\n type: Function,\n \"default\": null\n },\n filters: {\n type: Object,\n \"default\": null\n },\n filtersStore: {\n type: Object,\n \"default\": null\n },\n filterMenuClass: {\n type: String,\n \"default\": null\n },\n filterMenuStyle: {\n type: null,\n \"default\": null\n },\n filterInputProps: {\n type: null,\n \"default\": null\n },\n filterButtonProps: {\n type: null,\n \"default\": null\n },\n column: null\n },\n data: function data() {\n return {\n id: this.$attrs.id,\n overlayVisible: false,\n defaultMatchMode: null,\n defaultOperator: null\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n overlay: null,\n selfClick: false,\n overlayEventListener: null,\n beforeUnmount: function beforeUnmount() {\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.onOverlayHide();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n if (this.filters && this.filters[this.field]) {\n var fieldFilters = this.filters[this.field];\n if (fieldFilters.operator) {\n this.defaultMatchMode = fieldFilters.constraints[0].matchMode;\n this.defaultOperator = fieldFilters.operator;\n } else {\n this.defaultMatchMode = this.filters[this.field].matchMode;\n }\n }\n },\n methods: {\n getColumnPT: function getColumnPT(key, params) {\n var columnMetaData = _objectSpread$5({\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n }\n }, params);\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined;\n },\n ptmFilterConstraintOptions: function ptmFilterConstraintOptions(matchMode) {\n return {\n context: {\n highlighted: matchMode && this.isRowMatchModeSelected(matchMode.value)\n }\n };\n },\n clearFilter: function clearFilter() {\n var _filters = _objectSpread$5({}, this.filters);\n if (_filters[this.field].operator) {\n _filters[this.field].constraints.splice(1);\n _filters[this.field].operator = this.defaultOperator;\n _filters[this.field].constraints[0] = {\n value: null,\n matchMode: this.defaultMatchMode\n };\n } else {\n _filters[this.field].value = null;\n _filters[this.field].matchMode = this.defaultMatchMode;\n }\n this.$emit('filter-clear');\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n applyFilter: function applyFilter() {\n this.$emit('apply-click', {\n field: this.field,\n constraints: this.filters[this.field]\n });\n this.$emit('filter-apply');\n this.hide();\n },\n hasFilter: function hasFilter() {\n if (this.filtersStore) {\n var fieldFilter = this.filtersStore[this.field];\n if (fieldFilter) {\n if (fieldFilter.operator) return !this.isFilterBlank(fieldFilter.constraints[0].value);else return !this.isFilterBlank(fieldFilter.value);\n }\n }\n return false;\n },\n hasRowFilter: function hasRowFilter() {\n return this.filters[this.field] && !this.isFilterBlank(this.filters[this.field].value);\n },\n isFilterBlank: function isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if (typeof filter === 'string' && filter.trim().length == 0 || filter instanceof Array && filter.length == 0) return true;else return false;\n }\n return true;\n },\n toggleMenu: function toggleMenu(event) {\n this.overlayVisible = !this.overlayVisible;\n event.preventDefault();\n },\n onToggleButtonKeyDown: function onToggleButtonKeyDown(event) {\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.toggleMenu(event);\n break;\n case 'Escape':\n this.overlayVisible = false;\n break;\n }\n },\n onRowMatchModeChange: function onRowMatchModeChange(matchMode) {\n var _filters = _objectSpread$5({}, this.filters);\n _filters[this.field].matchMode = matchMode;\n this.$emit('matchmode-change', {\n field: this.field,\n matchMode: matchMode\n });\n this.$emit('filter-change', _filters);\n this.$emit('filter-apply');\n this.hide();\n },\n onRowMatchModeKeyDown: function onRowMatchModeKeyDown(event) {\n var item = event.target;\n switch (event.code) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n event.preventDefault();\n break;\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n event.preventDefault();\n break;\n }\n },\n isRowMatchModeSelected: function isRowMatchModeSelected(matchMode) {\n return this.filters[this.field].matchMode === matchMode;\n },\n onOperatorChange: function onOperatorChange(value) {\n var _filters = _objectSpread$5({}, this.filters);\n _filters[this.field].operator = value;\n this.$emit('filter-change', _filters);\n this.$emit('operator-change', {\n field: this.field,\n operator: value\n });\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n onMenuMatchModeChange: function onMenuMatchModeChange(value, index) {\n var _filters = _objectSpread$5({}, this.filters);\n _filters[this.field].constraints[index].matchMode = value;\n this.$emit('matchmode-change', {\n field: this.field,\n matchMode: value,\n index: index\n });\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n addConstraint: function addConstraint() {\n var _filters = _objectSpread$5({}, this.filters);\n var newConstraint = {\n value: null,\n matchMode: this.defaultMatchMode\n };\n _filters[this.field].constraints.push(newConstraint);\n this.$emit('constraint-add', {\n field: this.field,\n constraing: newConstraint\n });\n this.$emit('filter-change', _filters);\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n removeConstraint: function removeConstraint(index) {\n var _filters = _objectSpread$5({}, this.filters);\n var removedConstraint = _filters[this.field].constraints.splice(index, 1);\n this.$emit('constraint-remove', {\n field: this.field,\n constraing: removedConstraint\n });\n this.$emit('filter-change', _filters);\n if (!this.showApplyButton) {\n this.$emit('filter-apply');\n }\n },\n filterCallback: function filterCallback() {\n this.$emit('filter-apply');\n },\n findNextItem: function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n if (nextItem) return getAttribute(nextItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findNextItem(nextItem) : nextItem;else return item.parentElement.firstElementChild;\n },\n findPrevItem: function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n if (prevItem) return getAttribute(prevItem, 'data-pc-section') === 'filterconstraintseparator' ? this.findPrevItem(prevItem) : prevItem;else return item.parentElement.lastElementChild;\n },\n hide: function hide() {\n this.overlayVisible = false;\n this.showMenuButton && focus(this.$refs.icon.$el);\n },\n onContentClick: function onContentClick(event) {\n this.selfClick = true;\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.overlay\n });\n },\n onContentMouseDown: function onContentMouseDown() {\n this.selfClick = true;\n },\n onOverlayEnter: function onOverlayEnter(el) {\n var _this = this;\n if (this.filterMenuStyle) {\n addStyle(this.overlay, this.filterMenuStyle);\n }\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n absolutePosition(this.overlay, this.$refs.icon.$el);\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.overlayEventListener = function (e) {\n if (!_this.isOutsideClicked(e.target)) {\n _this.selfClick = true;\n }\n };\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n },\n onOverlayAfterEnter: function onOverlayAfterEnter() {\n var _this$overlay;\n (_this$overlay = this.overlay) === null || _this$overlay === void 0 || (_this$overlay = _this$overlay.$focustrap) === null || _this$overlay === void 0 || _this$overlay.autoFocus();\n },\n onOverlayLeave: function onOverlayLeave() {\n this.onOverlayHide();\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n onOverlayHide: function onOverlayHide() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n },\n overlayRef: function overlayRef(el) {\n this.overlay = el;\n },\n isOutsideClicked: function isOutsideClicked(target) {\n return !this.isTargetClicked(target) && this.overlay && !(this.overlay.isSameNode(target) || this.overlay.contains(target));\n },\n isTargetClicked: function isTargetClicked(target) {\n return this.$refs.icon && (this.$refs.icon.$el.isSameNode(target) || this.$refs.icon.$el.contains(target));\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this2 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this2.overlayVisible && !_this2.selfClick && _this2.isOutsideClicked(event.target)) {\n _this2.overlayVisible = false;\n }\n _this2.selfClick = false;\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this3 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.icon.$el, function () {\n if (_this3.overlayVisible) {\n _this3.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this4 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this4.overlayVisible && !isTouchDevice()) {\n _this4.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n },\n computed: {\n showMenuButton: function showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n },\n overlayId: function overlayId() {\n return this.id + '_overlay';\n },\n matchModes: function matchModes() {\n var _this5 = this;\n return this.matchModeOptions || this.$primevue.config.filterMatchModeOptions[this.type].map(function (key) {\n return {\n label: _this5.$primevue.config.locale[key],\n value: key\n };\n });\n },\n isShowMatchModes: function isShowMatchModes() {\n return this.type !== 'boolean' && this.showMatchModes && this.matchModes;\n },\n operatorOptions: function operatorOptions() {\n return [{\n label: this.$primevue.config.locale.matchAll,\n value: FilterOperator.AND\n }, {\n label: this.$primevue.config.locale.matchAny,\n value: FilterOperator.OR\n }];\n },\n noFilterLabel: function noFilterLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.noFilter : undefined;\n },\n isShowOperator: function isShowOperator() {\n return this.showOperator && this.filters[this.field].operator;\n },\n operator: function operator() {\n return this.filters[this.field].operator;\n },\n fieldConstraints: function fieldConstraints() {\n return this.filters[this.field].constraints || [this.filters[this.field]];\n },\n showRemoveIcon: function showRemoveIcon() {\n return this.fieldConstraints.length > 1;\n },\n removeRuleButtonLabel: function removeRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.removeRule : undefined;\n },\n addRuleButtonLabel: function addRuleButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.addRule : undefined;\n },\n isShowAddConstraint: function isShowAddConstraint() {\n return this.showAddButton && this.filters[this.field].operator && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n },\n clearButtonLabel: function clearButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.clear : undefined;\n },\n applyButtonLabel: function applyButtonLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.apply : undefined;\n },\n columnFilterButtonAriaLabel: function columnFilterButtonAriaLabel() {\n return this.$primevue.config.locale ? this.overlayVisible ? this.$primevue.config.locale.showFilterMenu : this.$primevue.config.locale.hideFilterMenu : undefined;\n },\n filterOperatorAriaLabel: function filterOperatorAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterOperator : undefined;\n },\n filterRuleAriaLabel: function filterRuleAriaLabel() {\n return this.$primevue.config.locale ? this.$primevue.config.locale.filterConstraint : undefined;\n },\n ptmHeaderFilterClearParams: function ptmHeaderFilterClearParams() {\n return {\n context: {\n hidden: this.hasRowFilter()\n }\n };\n },\n ptmFilterMenuParams: function ptmFilterMenuParams() {\n return {\n context: {\n overlayVisible: this.overlayVisible,\n active: this.hasFilter()\n }\n };\n }\n },\n components: {\n Select: Select,\n Button: Button,\n Portal: Portal,\n FilterSlashIcon: FilterSlashIcon,\n FilterIcon: FilterIcon,\n TrashIcon: TrashIcon,\n PlusIcon: PlusIcon\n },\n directives: {\n focustrap: FocusTrap\n }\n};\n\nfunction _typeof$4(o) { \"@babel/helpers - typeof\"; return _typeof$4 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$4(o); }\nfunction ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty$4(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$4(e, r, t) { return (r = _toPropertyKey$4(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$4(t) { var i = _toPrimitive$4(t, \"string\"); return \"symbol\" == _typeof$4(i) ? i : i + \"\"; }\nfunction _toPrimitive$4(t, r) { if (\"object\" != _typeof$4(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$4(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1$1 = [\"id\", \"aria-modal\"];\nvar _hoisted_2 = [\"onClick\", \"onKeydown\", \"tabindex\"];\nfunction render$4(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Button = resolveComponent(\"Button\");\n var _component_Select = resolveComponent(\"Select\");\n var _component_Portal = resolveComponent(\"Portal\");\n var _directive_focustrap = resolveDirective(\"focustrap\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('filter')\n }, $options.getColumnPT('filter')), [$props.display === 'row' ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('filterElementContainer')\n }, _objectSpread$4(_objectSpread$4({}, $props.filterInputProps), $options.getColumnPT('filterElementContainer'))), [(openBlock(), createBlock(resolveDynamicComponent($props.filterElement), {\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.filterCallback\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"]))], 16)) : createCommentVNode(\"\", true), $options.showMenuButton ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 1,\n ref: \"icon\",\n \"aria-label\": $options.columnFilterButtonAriaLabel,\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.overlayId,\n \"class\": _ctx.cx('pcColumnFilterButton'),\n unstyled: _ctx.unstyled,\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.toggleMenu($event);\n }),\n onKeydown: _cache[1] || (_cache[1] = function ($event) {\n return $options.onToggleButtonKeyDown($event);\n })\n }, _objectSpread$4(_objectSpread$4({}, $options.getColumnPT('pcColumnFilterButton', $options.ptmFilterMenuParams)), $props.filterButtonProps.filter)), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.filterIconTemplate || 'FilterIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('filterMenuIcon')), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"aria-label\", \"aria-expanded\", \"aria-controls\", \"class\", \"unstyled\"])) : createCommentVNode(\"\", true), $props.showClearButton && $props.display === 'row' && $options.hasRowFilter() ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 2,\n \"class\": _ctx.cx('pcColumnFilterClearButton'),\n unstyled: _ctx.unstyled,\n onClick: _cache[2] || (_cache[2] = function ($event) {\n return $options.clearFilter();\n })\n }, _objectSpread$4(_objectSpread$4({}, $options.getColumnPT('pcColumnFilterClearButton', $options.ptmHeaderFilterClearParams)), $props.filterButtonProps.inline.clear)), {\n icon: withCtx(function (slotProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.filterClearIconTemplate || 'FilterSlashIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('filterClearIcon')), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"class\", \"unstyled\"])) : createCommentVNode(\"\", true), createVNode(_component_Portal, null, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, $options.getColumnPT('transition')), {\n \"default\": withCtx(function () {\n return [$data.overlayVisible ? withDirectives((openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n id: $options.overlayId,\n \"aria-modal\": $data.overlayVisible,\n role: \"dialog\",\n \"class\": [_ctx.cx('filterOverlay'), $props.filterMenuClass],\n onKeydown: _cache[10] || (_cache[10] = withKeys(function () {\n return $options.hide && $options.hide.apply($options, arguments);\n }, [\"escape\"])),\n onClick: _cache[11] || (_cache[11] = function () {\n return $options.onContentClick && $options.onContentClick.apply($options, arguments);\n }),\n onMousedown: _cache[12] || (_cache[12] = function () {\n return $options.onContentMouseDown && $options.onContentMouseDown.apply($options, arguments);\n })\n }, $options.getColumnPT('filterOverlay')), [(openBlock(), createBlock(resolveDynamicComponent($props.filterHeaderTemplate), {\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.filterCallback\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"])), $props.display === 'row' ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('filterConstraintList')\n }, $options.getColumnPT('filterConstraintList')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.matchModes, function (matchMode, i) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: matchMode.label,\n \"class\": _ctx.cx('filterConstraint', {\n matchMode: matchMode\n }),\n onClick: function onClick($event) {\n return $options.onRowMatchModeChange(matchMode.value);\n },\n onKeydown: [_cache[3] || (_cache[3] = function ($event) {\n return $options.onRowMatchModeKeyDown($event);\n }), withKeys(withModifiers(function ($event) {\n return $options.onRowMatchModeChange(matchMode.value);\n }, [\"prevent\"]), [\"enter\"])],\n tabindex: i === 0 ? '0' : null,\n ref_for: true\n }, $options.getColumnPT('filterConstraint', $options.ptmFilterConstraintOptions(matchMode))), toDisplayString(matchMode.label), 17, _hoisted_2);\n }), 128)), createElementVNode(\"li\", mergeProps({\n \"class\": _ctx.cx('filterConstraintSeparator')\n }, $options.getColumnPT('filterConstraintSeparator')), null, 16), createElementVNode(\"li\", mergeProps({\n \"class\": _ctx.cx('filterConstraint'),\n onClick: _cache[4] || (_cache[4] = function ($event) {\n return $options.clearFilter();\n }),\n onKeydown: [_cache[5] || (_cache[5] = function ($event) {\n return $options.onRowMatchModeKeyDown($event);\n }), _cache[6] || (_cache[6] = withKeys(function ($event) {\n return _ctx.onRowClearItemClick();\n }, [\"enter\"]))]\n }, $options.getColumnPT('filterConstraint')), toDisplayString($options.noFilterLabel), 17)], 16)) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [$options.isShowOperator ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('filterOperator')\n }, $options.getColumnPT('filterOperator')), [createVNode(_component_Select, {\n options: $options.operatorOptions,\n modelValue: $options.operator,\n \"aria-label\": $options.filterOperatorAriaLabel,\n \"class\": normalizeClass(_ctx.cx('pcFilterOperatorDropdown')),\n optionLabel: \"label\",\n optionValue: \"value\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = function ($event) {\n return $options.onOperatorChange($event);\n }),\n unstyled: _ctx.unstyled,\n pt: $options.getColumnPT('pcFilterOperatorDropdown')\n }, null, 8, [\"options\", \"modelValue\", \"aria-label\", \"class\", \"unstyled\", \"pt\"])], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('filterRuleList')\n }, $options.getColumnPT('filterRuleList')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.fieldConstraints, function (fieldConstraint, i) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n key: i,\n \"class\": _ctx.cx('filterRule'),\n ref_for: true\n }, $options.getColumnPT('filterRule')), [$options.isShowMatchModes ? (openBlock(), createBlock(_component_Select, {\n key: 0,\n options: $options.matchModes,\n modelValue: fieldConstraint.matchMode,\n \"class\": normalizeClass(_ctx.cx('pcFilterConstraintDropdown')),\n optionLabel: \"label\",\n optionValue: \"value\",\n \"aria-label\": $options.filterRuleAriaLabel,\n \"onUpdate:modelValue\": function onUpdateModelValue($event) {\n return $options.onMenuMatchModeChange($event, i);\n },\n unstyled: _ctx.unstyled,\n pt: $options.getColumnPT('pcFilterConstraintDropdown')\n }, null, 8, [\"options\", \"modelValue\", \"class\", \"aria-label\", \"onUpdate:modelValue\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), $props.display === 'menu' ? (openBlock(), createBlock(resolveDynamicComponent($props.filterElement), {\n key: 1,\n field: $props.field,\n filterModel: fieldConstraint,\n filterCallback: $options.filterCallback,\n applyFilter: $options.applyFilter\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\", \"applyFilter\"])) : createCommentVNode(\"\", true), $options.showRemoveIcon ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 2,\n ref_for: true\n }, $options.getColumnPT('filterRemove')), [createVNode(_component_Button, mergeProps({\n type: \"button\",\n \"class\": _ctx.cx('pcFilterRemoveRuleButton'),\n onClick: function onClick($event) {\n return $options.removeConstraint(i);\n },\n label: $options.removeRuleButtonLabel,\n unstyled: _ctx.unstyled,\n ref_for: true\n }, $props.filterButtonProps.popover.removeRule, {\n pt: $options.getColumnPT('pcFilterRemoveRuleButton')\n }), {\n icon: withCtx(function (iconProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.filterRemoveIconTemplate || 'TrashIcon'), mergeProps({\n \"class\": iconProps[\"class\"],\n ref_for: true\n }, $options.getColumnPT('pcFilterRemoveRuleButton')['icon']), null, 16, [\"class\"]))];\n }),\n _: 2\n }, 1040, [\"class\", \"onClick\", \"label\", \"unstyled\", \"pt\"])], 16)) : createCommentVNode(\"\", true)], 16);\n }), 128))], 16), $options.isShowAddConstraint ? (openBlock(), createElementBlock(\"div\", normalizeProps(mergeProps({\n key: 1\n }, $options.getColumnPT('filterAddButtonContainer'))), [createVNode(_component_Button, mergeProps({\n type: \"button\",\n label: $options.addRuleButtonLabel,\n iconPos: \"left\",\n \"class\": _ctx.cx('pcFilterAddRuleButton'),\n onClick: _cache[8] || (_cache[8] = function ($event) {\n return $options.addConstraint();\n }),\n unstyled: _ctx.unstyled\n }, $props.filterButtonProps.popover.addRule, {\n pt: $options.getColumnPT('pcFilterAddRuleButton')\n }), {\n icon: withCtx(function (iconProps) {\n return [(openBlock(), createBlock(resolveDynamicComponent($props.filterAddIconTemplate || 'PlusIcon'), mergeProps({\n \"class\": iconProps[\"class\"]\n }, $options.getColumnPT('pcFilterAddRuleButton')['icon']), null, 16, [\"class\"]))];\n }),\n _: 1\n }, 16, [\"label\", \"class\", \"unstyled\", \"pt\"])], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('filterButtonbar')\n }, $options.getColumnPT('filterButtonbar')), [!$props.filterClearTemplate && $props.showClearButton ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n type: \"button\",\n \"class\": _ctx.cx('pcFilterClearButton'),\n label: $options.clearButtonLabel,\n onClick: $options.clearFilter,\n unstyled: _ctx.unstyled\n }, $props.filterButtonProps.popover.clear, {\n pt: $options.getColumnPT('pcFilterClearButton')\n }), null, 16, [\"class\", \"label\", \"onClick\", \"unstyled\", \"pt\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.filterClearTemplate), {\n key: 1,\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.clearFilter\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"])), $props.showApplyButton ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [!$props.filterApplyTemplate ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n type: \"button\",\n \"class\": _ctx.cx('pcFilterApplyButton'),\n label: $options.applyButtonLabel,\n onClick: _cache[9] || (_cache[9] = function ($event) {\n return $options.applyFilter();\n }),\n unstyled: _ctx.unstyled\n }, $props.filterButtonProps.popover.apply, {\n pt: $options.getColumnPT('pcFilterApplyButton')\n }), null, 16, [\"class\", \"label\", \"unstyled\", \"pt\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.filterApplyTemplate), {\n key: 1,\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.applyFilter\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"]))], 64)) : createCommentVNode(\"\", true)], 16)], 64)), (openBlock(), createBlock(resolveDynamicComponent($props.filterFooterTemplate), {\n field: $props.field,\n filterModel: $props.filters[$props.field],\n filterCallback: $options.filterCallback\n }, null, 8, [\"field\", \"filterModel\", \"filterCallback\"]))], 16, _hoisted_1$1)), [[_directive_focustrap]]) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 1\n })], 16);\n}\n\nscript$4.render = render$4;\n\nvar script$3 = {\n name: 'HeaderCheckbox',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['change'],\n props: {\n checked: null,\n disabled: null,\n column: null,\n headerCheckboxIconTemplate: {\n type: Function,\n \"default\": null\n }\n },\n methods: {\n getColumnPT: function getColumnPT(key) {\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onChange: function onChange(event) {\n this.$emit('change', {\n originalEvent: event,\n checked: !this.checked\n });\n }\n },\n computed: {\n headerCheckboxAriaLabel: function headerCheckboxAriaLabel() {\n return this.$primevue.config.locale.aria ? this.checked ? this.$primevue.config.locale.aria.selectAll : this.$primevue.config.locale.aria.unselectAll : undefined;\n }\n },\n components: {\n CheckIcon: CheckIcon,\n Checkbox: Checkbox\n }\n};\n\nfunction render$3(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_Checkbox = resolveComponent(\"Checkbox\");\n return openBlock(), createBlock(_component_Checkbox, {\n modelValue: $props.checked,\n binary: true,\n disabled: $props.disabled,\n \"aria-label\": $options.headerCheckboxAriaLabel,\n onChange: $options.onChange,\n pt: $options.getColumnPT('pcHeaderCheckbox')\n }, {\n icon: withCtx(function (slotProps) {\n return [$props.headerCheckboxIconTemplate ? (openBlock(), createBlock(resolveDynamicComponent($props.headerCheckboxIconTemplate), {\n key: 0,\n checked: slotProps.checked,\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"checked\", \"class\"])) : !$props.headerCheckboxIconTemplate && slotProps.checked ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 1,\n \"class\": slotProps[\"class\"]\n }, $options.getColumnPT('pcHeaderCheckbox')['icon']), null, 16, [\"class\"])) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 8, [\"modelValue\", \"disabled\", \"aria-label\", \"onChange\", \"pt\"]);\n}\n\nscript$3.render = render$3;\n\nvar script$2 = {\n name: 'HeaderCell',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['column-click', 'column-mousedown', 'column-dragstart', 'column-dragover', 'column-dragleave', 'column-drop', 'column-resizestart', 'checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n column: {\n type: Object,\n \"default\": null\n },\n index: {\n type: Number,\n \"default\": null\n },\n resizableColumns: {\n type: Boolean,\n \"default\": false\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n sortMode: {\n type: String,\n \"default\": 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n \"default\": null\n },\n sortField: {\n type: [String, Function],\n \"default\": null\n },\n sortOrder: {\n type: Number,\n \"default\": null\n },\n multiSortMeta: {\n type: Array,\n \"default\": null\n },\n allRowsSelected: {\n type: Boolean,\n \"default\": false\n },\n empty: {\n type: Boolean,\n \"default\": false\n },\n filterDisplay: {\n type: String,\n \"default\": null\n },\n filters: {\n type: Object,\n \"default\": null\n },\n filtersStore: {\n type: Object,\n \"default\": null\n },\n filterColumn: {\n type: Boolean,\n \"default\": false\n },\n reorderableColumns: {\n type: Boolean,\n \"default\": false\n },\n filterInputProps: {\n type: null,\n \"default\": null\n },\n filterButtonProps: {\n type: null,\n \"default\": null\n }\n },\n data: function data() {\n return {\n styleObject: {}\n };\n },\n mounted: function mounted() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n updated: function updated() {\n if (this.columnProp('frozen')) {\n this.updateStickyPosition();\n }\n },\n methods: {\n columnProp: function columnProp(prop) {\n return getVNodeProp(this.column, prop);\n },\n getColumnPT: function getColumnPT(key) {\n var _this$$parentInstance, _this$$parentInstance2;\n var columnMetaData = {\n props: this.column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: this.index,\n sortable: this.columnProp('sortable') === '' || this.columnProp('sortable'),\n sorted: this.isColumnSorted(),\n resizable: this.resizableColumns,\n size: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.size,\n showGridlines: ((_this$$parentInstance2 = this.$parentInstance) === null || _this$$parentInstance2 === void 0 || (_this$$parentInstance2 = _this$$parentInstance2.$parentInstance) === null || _this$$parentInstance2 === void 0 ? void 0 : _this$$parentInstance2.showGridlines) || false\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(), key, columnMetaData));\n },\n getColumnProp: function getColumnProp() {\n return this.column.props && this.column.props.pt ? this.column.props.pt : undefined; //@todo:\n },\n onClick: function onClick(event) {\n this.$emit('column-click', {\n originalEvent: event,\n column: this.column\n });\n },\n onKeyDown: function onKeyDown(event) {\n if ((event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && event.currentTarget.nodeName === 'TH' && getAttribute(event.currentTarget, 'data-p-sortable-column')) {\n this.$emit('column-click', {\n originalEvent: event,\n column: this.column\n });\n event.preventDefault();\n }\n },\n onMouseDown: function onMouseDown(event) {\n this.$emit('column-mousedown', {\n originalEvent: event,\n column: this.column\n });\n },\n onDragStart: function onDragStart(event) {\n this.$emit('column-dragstart', {\n originalEvent: event,\n column: this.column\n });\n },\n onDragOver: function onDragOver(event) {\n this.$emit('column-dragover', {\n originalEvent: event,\n column: this.column\n });\n },\n onDragLeave: function onDragLeave(event) {\n this.$emit('column-dragleave', {\n originalEvent: event,\n column: this.column\n });\n },\n onDrop: function onDrop(event) {\n this.$emit('column-drop', {\n originalEvent: event,\n column: this.column\n });\n },\n onResizeStart: function onResizeStart(event) {\n this.$emit('column-resizestart', event);\n },\n getMultiSortMetaIndex: function getMultiSortMetaIndex() {\n var _this = this;\n return this.multiSortMeta.findIndex(function (meta) {\n return meta.field === _this.columnProp('field') || meta.field === _this.columnProp('sortField');\n });\n },\n getBadgeValue: function getBadgeValue() {\n var index = this.getMultiSortMetaIndex();\n return this.groupRowsBy && this.groupRowsBy === this.groupRowSortField && index > -1 ? index : index + 1;\n },\n isMultiSorted: function isMultiSorted() {\n return this.sortMode === 'multiple' && this.columnProp('sortable') && this.getMultiSortMetaIndex() > -1;\n },\n isColumnSorted: function isColumnSorted() {\n return this.sortMode === 'single' ? this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField')) : this.isMultiSorted();\n },\n updateStickyPosition: function updateStickyPosition() {\n if (this.columnProp('frozen')) {\n var align = this.columnProp('alignFrozen');\n if (align === 'right') {\n var right = 0;\n var next = getNextElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (next) {\n right = getOuterWidth(next) + parseFloat(next.style.right || 0);\n }\n this.styleObject.right = right + 'px';\n } else {\n var left = 0;\n var prev = getPreviousElementSibling(this.$el, '[data-p-frozen-column=\"true\"]');\n if (prev) {\n left = getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n }\n this.styleObject.left = left + 'px';\n }\n var filterRow = this.$el.parentElement.nextElementSibling;\n if (filterRow) {\n var index = getIndex(this.$el);\n if (filterRow.children[index]) {\n filterRow.children[index].style.left = this.styleObject.left;\n filterRow.children[index].style.right = this.styleObject.right;\n }\n }\n }\n },\n onHeaderCheckboxChange: function onHeaderCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n }\n },\n computed: {\n containerClass: function containerClass() {\n return [this.cx('headerCell'), this.filterColumn ? this.columnProp('filterHeaderClass') : this.columnProp('headerClass'), this.columnProp('class')];\n },\n containerStyle: function containerStyle() {\n var headerStyle = this.filterColumn ? this.columnProp('filterHeaderStyle') : this.columnProp('headerStyle');\n var columnStyle = this.columnProp('style');\n return this.columnProp('frozen') ? [columnStyle, headerStyle, this.styleObject] : [columnStyle, headerStyle];\n },\n sortState: function sortState() {\n var sorted = false;\n var sortOrder = null;\n if (this.sortMode === 'single') {\n sorted = this.sortField && (this.sortField === this.columnProp('field') || this.sortField === this.columnProp('sortField'));\n sortOrder = sorted ? this.sortOrder : 0;\n } else if (this.sortMode === 'multiple') {\n var metaIndex = this.getMultiSortMetaIndex();\n if (metaIndex > -1) {\n sorted = true;\n sortOrder = this.multiSortMeta[metaIndex].order;\n }\n }\n return {\n sorted: sorted,\n sortOrder: sortOrder\n };\n },\n sortableColumnIcon: function sortableColumnIcon() {\n var _this$sortState = this.sortState,\n sorted = _this$sortState.sorted,\n sortOrder = _this$sortState.sortOrder;\n if (!sorted) return SortAltIcon;else if (sorted && sortOrder > 0) return SortAmountUpAltIcon;else if (sorted && sortOrder < 0) return SortAmountDownIcon;\n return null;\n },\n ariaSort: function ariaSort() {\n if (this.columnProp('sortable')) {\n var _this$sortState2 = this.sortState,\n sorted = _this$sortState2.sorted,\n sortOrder = _this$sortState2.sortOrder;\n if (sorted && sortOrder < 0) return 'descending';else if (sorted && sortOrder > 0) return 'ascending';else return 'none';\n } else {\n return null;\n }\n }\n },\n components: {\n Badge: Badge,\n DTHeaderCheckbox: script$3,\n DTColumnFilter: script$4,\n SortAltIcon: SortAltIcon,\n SortAmountUpAltIcon: SortAmountUpAltIcon,\n SortAmountDownIcon: SortAmountDownIcon\n }\n};\n\nfunction _typeof$3(o) { \"@babel/helpers - typeof\"; return _typeof$3 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$3(o); }\nfunction ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty$3(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$3(e, r, t) { return (r = _toPropertyKey$3(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$3(t) { var i = _toPrimitive$3(t, \"string\"); return \"symbol\" == _typeof$3(i) ? i : i + \"\"; }\nfunction _toPrimitive$3(t, r) { if (\"object\" != _typeof$3(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$3(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"tabindex\", \"colspan\", \"rowspan\", \"aria-sort\", \"data-p-sortable-column\", \"data-p-resizable-column\", \"data-p-sorted\", \"data-p-filter-column\", \"data-p-frozen-column\", \"data-p-reorderable-column\"];\nfunction render$2(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Badge = resolveComponent(\"Badge\");\n var _component_DTHeaderCheckbox = resolveComponent(\"DTHeaderCheckbox\");\n var _component_DTColumnFilter = resolveComponent(\"DTColumnFilter\");\n return openBlock(), createElementBlock(\"th\", mergeProps({\n style: $options.containerStyle,\n \"class\": $options.containerClass,\n tabindex: $options.columnProp('sortable') ? '0' : null,\n role: \"columnheader\",\n colspan: $options.columnProp('colspan'),\n rowspan: $options.columnProp('rowspan'),\n \"aria-sort\": $options.ariaSort,\n onClick: _cache[8] || (_cache[8] = function () {\n return $options.onClick && $options.onClick.apply($options, arguments);\n }),\n onKeydown: _cache[9] || (_cache[9] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n onMousedown: _cache[10] || (_cache[10] = function () {\n return $options.onMouseDown && $options.onMouseDown.apply($options, arguments);\n }),\n onDragstart: _cache[11] || (_cache[11] = function () {\n return $options.onDragStart && $options.onDragStart.apply($options, arguments);\n }),\n onDragover: _cache[12] || (_cache[12] = function () {\n return $options.onDragOver && $options.onDragOver.apply($options, arguments);\n }),\n onDragleave: _cache[13] || (_cache[13] = function () {\n return $options.onDragLeave && $options.onDragLeave.apply($options, arguments);\n }),\n onDrop: _cache[14] || (_cache[14] = function () {\n return $options.onDrop && $options.onDrop.apply($options, arguments);\n })\n }, _objectSpread$3(_objectSpread$3({}, $options.getColumnPT('root')), $options.getColumnPT('headerCell')), {\n \"data-p-sortable-column\": $options.columnProp('sortable'),\n \"data-p-resizable-column\": $props.resizableColumns,\n \"data-p-sorted\": $options.isColumnSorted(),\n \"data-p-filter-column\": $props.filterColumn,\n \"data-p-frozen-column\": $options.columnProp('frozen'),\n \"data-p-reorderable-column\": $props.reorderableColumns\n }), [$props.resizableColumns && !$options.columnProp('frozen') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('columnResizer'),\n onMousedown: _cache[0] || (_cache[0] = function () {\n return $options.onResizeStart && $options.onResizeStart.apply($options, arguments);\n })\n }, $options.getColumnPT('columnResizer')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('columnHeaderContent')\n }, $options.getColumnPT('columnHeaderContent')), [$props.column.children && $props.column.children.header ? (openBlock(), createBlock(resolveDynamicComponent($props.column.children.header), {\n key: 0,\n column: $props.column\n }, null, 8, [\"column\"])) : createCommentVNode(\"\", true), $options.columnProp('header') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('columnTitle')\n }, $options.getColumnPT('columnTitle')), toDisplayString($options.columnProp('header')), 17)) : createCommentVNode(\"\", true), $options.columnProp('sortable') ? (openBlock(), createElementBlock(\"span\", normalizeProps(mergeProps({\n key: 2\n }, $options.getColumnPT('sort'))), [(openBlock(), createBlock(resolveDynamicComponent($props.column.children && $props.column.children.sorticon || $options.sortableColumnIcon), mergeProps({\n sorted: $options.sortState.sorted,\n sortOrder: $options.sortState.sortOrder,\n \"class\": _ctx.cx('sortIcon')\n }, $options.getColumnPT('sorticon')), null, 16, [\"sorted\", \"sortOrder\", \"class\"]))], 16)) : createCommentVNode(\"\", true), $options.isMultiSorted() ? (openBlock(), createBlock(_component_Badge, {\n key: 3,\n \"class\": normalizeClass(_ctx.cx('pcSortBadge')),\n pt: $options.getColumnPT('pcSortBadge'),\n value: $options.getBadgeValue(),\n size: \"small\"\n }, null, 8, [\"class\", \"pt\", \"value\"])) : createCommentVNode(\"\", true), $options.columnProp('selectionMode') === 'multiple' && $props.filterDisplay !== 'row' ? (openBlock(), createBlock(_component_DTHeaderCheckbox, {\n key: 4,\n checked: $props.allRowsSelected,\n onChange: $options.onHeaderCheckboxChange,\n disabled: $props.empty,\n headerCheckboxIconTemplate: $props.column.children && $props.column.children.headercheckboxicon,\n column: $props.column,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"checked\", \"onChange\", \"disabled\", \"headerCheckboxIconTemplate\", \"column\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), $props.filterDisplay === 'menu' && $props.column.children && $props.column.children.filter ? (openBlock(), createBlock(_component_DTColumnFilter, {\n key: 5,\n field: $options.columnProp('filterField') || $options.columnProp('field'),\n type: $options.columnProp('dataType'),\n display: \"menu\",\n showMenu: $options.columnProp('showFilterMenu'),\n filterElement: $props.column.children && $props.column.children.filter,\n filterHeaderTemplate: $props.column.children && $props.column.children.filterheader,\n filterFooterTemplate: $props.column.children && $props.column.children.filterfooter,\n filterClearTemplate: $props.column.children && $props.column.children.filterclear,\n filterApplyTemplate: $props.column.children && $props.column.children.filterapply,\n filterIconTemplate: $props.column.children && $props.column.children.filtericon,\n filterAddIconTemplate: $props.column.children && $props.column.children.filteraddicon,\n filterRemoveIconTemplate: $props.column.children && $props.column.children.filterremoveicon,\n filterClearIconTemplate: $props.column.children && $props.column.children.filterclearicon,\n filters: $props.filters,\n filtersStore: $props.filtersStore,\n filterInputProps: $props.filterInputProps,\n filterButtonProps: $props.filterButtonProps,\n onFilterChange: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('filter-change', $event);\n }),\n onFilterApply: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('filter-apply');\n }),\n filterMenuStyle: $options.columnProp('filterMenuStyle'),\n filterMenuClass: $options.columnProp('filterMenuClass'),\n showOperator: $options.columnProp('showFilterOperator'),\n showClearButton: $options.columnProp('showClearButton'),\n showApplyButton: $options.columnProp('showApplyButton'),\n showMatchModes: $options.columnProp('showFilterMatchModes'),\n showAddButton: $options.columnProp('showAddButton'),\n matchModeOptions: $options.columnProp('filterMatchModeOptions'),\n maxConstraints: $options.columnProp('maxConstraints'),\n onOperatorChange: _cache[3] || (_cache[3] = function ($event) {\n return _ctx.$emit('operator-change', $event);\n }),\n onMatchmodeChange: _cache[4] || (_cache[4] = function ($event) {\n return _ctx.$emit('matchmode-change', $event);\n }),\n onConstraintAdd: _cache[5] || (_cache[5] = function ($event) {\n return _ctx.$emit('constraint-add', $event);\n }),\n onConstraintRemove: _cache[6] || (_cache[6] = function ($event) {\n return _ctx.$emit('constraint-remove', $event);\n }),\n onApplyClick: _cache[7] || (_cache[7] = function ($event) {\n return _ctx.$emit('apply-click', $event);\n }),\n column: $props.column,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"field\", \"type\", \"showMenu\", \"filterElement\", \"filterHeaderTemplate\", \"filterFooterTemplate\", \"filterClearTemplate\", \"filterApplyTemplate\", \"filterIconTemplate\", \"filterAddIconTemplate\", \"filterRemoveIconTemplate\", \"filterClearIconTemplate\", \"filters\", \"filtersStore\", \"filterInputProps\", \"filterButtonProps\", \"filterMenuStyle\", \"filterMenuClass\", \"showOperator\", \"showClearButton\", \"showApplyButton\", \"showMatchModes\", \"showAddButton\", \"matchModeOptions\", \"maxConstraints\", \"column\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 16)], 16, _hoisted_1);\n}\n\nscript$2.render = render$2;\n\nvar script$1 = {\n name: 'TableHeader',\n hostName: 'DataTable',\n \"extends\": BaseComponent,\n emits: ['column-click', 'column-mousedown', 'column-dragstart', 'column-dragover', 'column-dragleave', 'column-drop', 'column-resizestart', 'checkbox-change', 'filter-change', 'filter-apply', 'operator-change', 'matchmode-change', 'constraint-add', 'constraint-remove', 'filter-clear', 'apply-click'],\n props: {\n columnGroup: {\n type: null,\n \"default\": null\n },\n columns: {\n type: null,\n \"default\": null\n },\n rowGroupMode: {\n type: String,\n \"default\": null\n },\n groupRowsBy: {\n type: [Array, String, Function],\n \"default\": null\n },\n resizableColumns: {\n type: Boolean,\n \"default\": false\n },\n allRowsSelected: {\n type: Boolean,\n \"default\": false\n },\n empty: {\n type: Boolean,\n \"default\": false\n },\n sortMode: {\n type: String,\n \"default\": 'single'\n },\n groupRowSortField: {\n type: [String, Function],\n \"default\": null\n },\n sortField: {\n type: [String, Function],\n \"default\": null\n },\n sortOrder: {\n type: Number,\n \"default\": null\n },\n multiSortMeta: {\n type: Array,\n \"default\": null\n },\n filterDisplay: {\n type: String,\n \"default\": null\n },\n filters: {\n type: Object,\n \"default\": null\n },\n filtersStore: {\n type: Object,\n \"default\": null\n },\n reorderableColumns: {\n type: Boolean,\n \"default\": false\n },\n first: {\n type: Number,\n \"default\": 0\n },\n filterInputProps: {\n type: null,\n \"default\": null\n },\n filterButtonProps: {\n type: null,\n \"default\": null\n }\n },\n provide: function provide() {\n return {\n $rows: this.d_headerRows,\n $columns: this.d_headerColumns\n };\n },\n data: function data() {\n return {\n d_headerRows: new HelperSet({\n type: 'Row'\n }),\n d_headerColumns: new HelperSet({\n type: 'Column'\n })\n };\n },\n beforeUnmount: function beforeUnmount() {\n this.d_headerRows.clear();\n this.d_headerColumns.clear();\n },\n methods: {\n columnProp: function columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n getColumnGroupPT: function getColumnGroupPT(key) {\n var _this$$parentInstance;\n var columnGroupMetaData = {\n props: this.getColumnGroupProps(),\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n type: 'header',\n scrollable: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 || (_this$$parentInstance = _this$$parentInstance.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.scrollable\n }\n };\n return mergeProps(this.ptm(\"columnGroup.\".concat(key), {\n columnGroup: columnGroupMetaData\n }), this.ptm(\"columnGroup.\".concat(key), columnGroupMetaData), this.ptmo(this.getColumnGroupProps(), key, columnGroupMetaData));\n },\n getColumnGroupProps: function getColumnGroupProps() {\n return this.columnGroup && this.columnGroup.props && this.columnGroup.props.pt ? this.columnGroup.props.pt : undefined; //@todo\n },\n getRowPT: function getRowPT(row, key, index) {\n var rowMetaData = {\n props: row.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: index\n }\n };\n return mergeProps(this.ptm(\"row.\".concat(key), {\n row: rowMetaData\n }), this.ptm(\"row.\".concat(key), rowMetaData), this.ptmo(this.getRowProp(row), key, rowMetaData));\n },\n getRowProp: function getRowProp(row) {\n return row.props && row.props.pt ? row.props.pt : undefined; //@todo\n },\n getColumnPT: function getColumnPT(column, key, index) {\n var columnMetaData = {\n props: column.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: index\n }\n };\n return mergeProps(this.ptm(\"column.\".concat(key), {\n column: columnMetaData\n }), this.ptm(\"column.\".concat(key), columnMetaData), this.ptmo(this.getColumnProp(column), key, columnMetaData));\n },\n getColumnProp: function getColumnProp(column) {\n return column.props && column.props.pt ? column.props.pt : undefined; //@todo\n },\n getFilterColumnHeaderClass: function getFilterColumnHeaderClass(column) {\n return [this.cx('headerCell', {\n column: column\n }), this.columnProp(column, 'filterHeaderClass'), this.columnProp(column, 'class')];\n },\n getFilterColumnHeaderStyle: function getFilterColumnHeaderStyle(column) {\n return [this.columnProp(column, 'filterHeaderStyle'), this.columnProp(column, 'style')];\n },\n getHeaderRows: function getHeaderRows() {\n var _this$d_headerRows;\n return (_this$d_headerRows = this.d_headerRows) === null || _this$d_headerRows === void 0 ? void 0 : _this$d_headerRows.get(this.columnGroup, this.columnGroup.children);\n },\n getHeaderColumns: function getHeaderColumns(row) {\n var _this$d_headerColumns;\n return (_this$d_headerColumns = this.d_headerColumns) === null || _this$d_headerColumns === void 0 ? void 0 : _this$d_headerColumns.get(row, row.children);\n }\n },\n computed: {\n ptmTHeadOptions: function ptmTHeadOptions() {\n var _this$$parentInstance2;\n return {\n context: {\n scrollable: (_this$$parentInstance2 = this.$parentInstance) === null || _this$$parentInstance2 === void 0 || (_this$$parentInstance2 = _this$$parentInstance2.$parentInstance) === null || _this$$parentInstance2 === void 0 ? void 0 : _this$$parentInstance2.scrollable\n }\n };\n }\n },\n components: {\n DTHeaderCell: script$2,\n DTHeaderCheckbox: script$3,\n DTColumnFilter: script$4\n }\n};\n\nfunction _typeof$2(o) { \"@babel/helpers - typeof\"; return _typeof$2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$2(o); }\nfunction ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty$2(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$2(e, r, t) { return (r = _toPropertyKey$2(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$2(t) { var i = _toPrimitive$2(t, \"string\"); return \"symbol\" == _typeof$2(i) ? i : i + \"\"; }\nfunction _toPrimitive$2(t, r) { if (\"object\" != _typeof$2(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$2(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_DTHeaderCell = resolveComponent(\"DTHeaderCell\");\n var _component_DTHeaderCheckbox = resolveComponent(\"DTHeaderCheckbox\");\n var _component_DTColumnFilter = resolveComponent(\"DTColumnFilter\");\n return openBlock(), createElementBlock(\"thead\", mergeProps({\n \"class\": _ctx.cx('thead'),\n style: _ctx.sx('thead'),\n role: \"rowgroup\"\n }, $props.columnGroup ? _objectSpread$2(_objectSpread$2({}, _ctx.ptm('thead', $options.ptmTHeadOptions)), $options.getColumnGroupPT('root')) : _ctx.ptm('thead', $options.ptmTHeadOptions), {\n \"data-pc-section\": \"thead\"\n }), [!$props.columnGroup ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [createElementVNode(\"tr\", mergeProps({\n role: \"row\"\n }, _ctx.ptm('headerRow')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, function (col, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || i\n }, [!$options.columnProp(col, 'hidden') && ($props.rowGroupMode !== 'subheader' || $props.groupRowsBy !== $options.columnProp(col, 'field')) ? (openBlock(), createBlock(_component_DTHeaderCell, {\n key: 0,\n column: col,\n index: i,\n onColumnClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('column-click', $event);\n }),\n onColumnMousedown: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('column-mousedown', $event);\n }),\n onColumnDragstart: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('column-dragstart', $event);\n }),\n onColumnDragover: _cache[3] || (_cache[3] = function ($event) {\n return _ctx.$emit('column-dragover', $event);\n }),\n onColumnDragleave: _cache[4] || (_cache[4] = function ($event) {\n return _ctx.$emit('column-dragleave', $event);\n }),\n onColumnDrop: _cache[5] || (_cache[5] = function ($event) {\n return _ctx.$emit('column-drop', $event);\n }),\n groupRowsBy: $props.groupRowsBy,\n groupRowSortField: $props.groupRowSortField,\n reorderableColumns: $props.reorderableColumns,\n resizableColumns: $props.resizableColumns,\n onColumnResizestart: _cache[6] || (_cache[6] = function ($event) {\n return _ctx.$emit('column-resizestart', $event);\n }),\n sortMode: $props.sortMode,\n sortField: $props.sortField,\n sortOrder: $props.sortOrder,\n multiSortMeta: $props.multiSortMeta,\n allRowsSelected: $props.allRowsSelected,\n empty: $props.empty,\n onCheckboxChange: _cache[7] || (_cache[7] = function ($event) {\n return _ctx.$emit('checkbox-change', $event);\n }),\n filters: $props.filters,\n filterDisplay: $props.filterDisplay,\n filtersStore: $props.filtersStore,\n filterInputProps: $props.filterInputProps,\n filterButtonProps: $props.filterButtonProps,\n first: $props.first,\n onFilterChange: _cache[8] || (_cache[8] = function ($event) {\n return _ctx.$emit('filter-change', $event);\n }),\n onFilterApply: _cache[9] || (_cache[9] = function ($event) {\n return _ctx.$emit('filter-apply');\n }),\n onOperatorChange: _cache[10] || (_cache[10] = function ($event) {\n return _ctx.$emit('operator-change', $event);\n }),\n onMatchmodeChange: _cache[11] || (_cache[11] = function ($event) {\n return _ctx.$emit('matchmode-change', $event);\n }),\n onConstraintAdd: _cache[12] || (_cache[12] = function ($event) {\n return _ctx.$emit('constraint-add', $event);\n }),\n onConstraintRemove: _cache[13] || (_cache[13] = function ($event) {\n return _ctx.$emit('constraint-remove', $event);\n }),\n onApplyClick: _cache[14] || (_cache[14] = function ($event) {\n return _ctx.$emit('apply-click', $event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"column\", \"index\", \"groupRowsBy\", \"groupRowSortField\", \"reorderableColumns\", \"resizableColumns\", \"sortMode\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"allRowsSelected\", \"empty\", \"filters\", \"filterDisplay\", \"filtersStore\", \"filterInputProps\", \"filterButtonProps\", \"first\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16), $props.filterDisplay === 'row' ? (openBlock(), createElementBlock(\"tr\", mergeProps({\n key: 0,\n role: \"row\"\n }, _ctx.ptm('headerRow')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.columns, function (col, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || i\n }, [!$options.columnProp(col, 'hidden') && ($props.rowGroupMode !== 'subheader' || $props.groupRowsBy !== $options.columnProp(col, 'field')) ? (openBlock(), createElementBlock(\"th\", mergeProps({\n key: 0,\n style: $options.getFilterColumnHeaderStyle(col),\n \"class\": $options.getFilterColumnHeaderClass(col),\n ref_for: true\n }, _objectSpread$2(_objectSpread$2({}, $options.getColumnPT(col, 'root', i)), $options.getColumnPT(col, 'headerCell', i))), [$options.columnProp(col, 'selectionMode') === 'multiple' ? (openBlock(), createBlock(_component_DTHeaderCheckbox, {\n key: 0,\n checked: $props.allRowsSelected,\n disabled: $props.empty,\n onChange: _cache[15] || (_cache[15] = function ($event) {\n return _ctx.$emit('checkbox-change', $event);\n }),\n column: col,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"checked\", \"disabled\", \"column\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), col.children && col.children.filter ? (openBlock(), createBlock(_component_DTColumnFilter, {\n key: 1,\n field: $options.columnProp(col, 'filterField') || $options.columnProp(col, 'field'),\n type: $options.columnProp(col, 'dataType'),\n display: \"row\",\n showMenu: $options.columnProp(col, 'showFilterMenu'),\n filterElement: col.children && col.children.filter,\n filterHeaderTemplate: col.children && col.children.filterheader,\n filterFooterTemplate: col.children && col.children.filterfooter,\n filterClearTemplate: col.children && col.children.filterclear,\n filterApplyTemplate: col.children && col.children.filterapply,\n filterIconTemplate: col.children && col.children.filtericon,\n filterAddIconTemplate: col.children && col.children.filteraddicon,\n filterRemoveIconTemplate: col.children && col.children.filterremoveicon,\n filterClearIconTemplate: col.children && col.children.filterclearicon,\n filters: $props.filters,\n filtersStore: $props.filtersStore,\n filterInputProps: $props.filterInputProps,\n filterButtonProps: $props.filterButtonProps,\n onFilterChange: _cache[16] || (_cache[16] = function ($event) {\n return _ctx.$emit('filter-change', $event);\n }),\n onFilterApply: _cache[17] || (_cache[17] = function ($event) {\n return _ctx.$emit('filter-apply');\n }),\n filterMenuStyle: $options.columnProp(col, 'filterMenuStyle'),\n filterMenuClass: $options.columnProp(col, 'filterMenuClass'),\n showOperator: $options.columnProp(col, 'showFilterOperator'),\n showClearButton: $options.columnProp(col, 'showClearButton'),\n showApplyButton: $options.columnProp(col, 'showApplyButton'),\n showMatchModes: $options.columnProp(col, 'showFilterMatchModes'),\n showAddButton: $options.columnProp(col, 'showAddButton'),\n matchModeOptions: $options.columnProp(col, 'filterMatchModeOptions'),\n maxConstraints: $options.columnProp(col, 'maxConstraints'),\n onOperatorChange: _cache[18] || (_cache[18] = function ($event) {\n return _ctx.$emit('operator-change', $event);\n }),\n onMatchmodeChange: _cache[19] || (_cache[19] = function ($event) {\n return _ctx.$emit('matchmode-change', $event);\n }),\n onConstraintAdd: _cache[20] || (_cache[20] = function ($event) {\n return _ctx.$emit('constraint-add', $event);\n }),\n onConstraintRemove: _cache[21] || (_cache[21] = function ($event) {\n return _ctx.$emit('constraint-remove', $event);\n }),\n onApplyClick: _cache[22] || (_cache[22] = function ($event) {\n return _ctx.$emit('apply-click', $event);\n }),\n column: col,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"field\", \"type\", \"showMenu\", \"filterElement\", \"filterHeaderTemplate\", \"filterFooterTemplate\", \"filterClearTemplate\", \"filterApplyTemplate\", \"filterIconTemplate\", \"filterAddIconTemplate\", \"filterRemoveIconTemplate\", \"filterClearIconTemplate\", \"filters\", \"filtersStore\", \"filterInputProps\", \"filterButtonProps\", \"filterMenuStyle\", \"filterMenuClass\", \"showOperator\", \"showClearButton\", \"showApplyButton\", \"showMatchModes\", \"showAddButton\", \"matchModeOptions\", \"maxConstraints\", \"column\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 16)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16)) : createCommentVNode(\"\", true)], 64)) : (openBlock(true), createElementBlock(Fragment, {\n key: 1\n }, renderList($options.getHeaderRows(), function (row, i) {\n return openBlock(), createElementBlock(\"tr\", mergeProps({\n key: i,\n role: \"row\",\n ref_for: true\n }, _objectSpread$2(_objectSpread$2({}, _ctx.ptm('headerRow')), $options.getRowPT(row, 'root', i))), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.getHeaderColumns(row), function (col, j) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.columnProp(col, 'columnKey') || $options.columnProp(col, 'field') || j\n }, [!$options.columnProp(col, 'hidden') && ($props.rowGroupMode !== 'subheader' || $props.groupRowsBy !== $options.columnProp(col, 'field')) && typeof col.children !== 'string' ? (openBlock(), createBlock(_component_DTHeaderCell, {\n key: 0,\n column: col,\n onColumnClick: _cache[23] || (_cache[23] = function ($event) {\n return _ctx.$emit('column-click', $event);\n }),\n onColumnMousedown: _cache[24] || (_cache[24] = function ($event) {\n return _ctx.$emit('column-mousedown', $event);\n }),\n groupRowsBy: $props.groupRowsBy,\n groupRowSortField: $props.groupRowSortField,\n sortMode: $props.sortMode,\n sortField: $props.sortField,\n sortOrder: $props.sortOrder,\n multiSortMeta: $props.multiSortMeta,\n allRowsSelected: $props.allRowsSelected,\n empty: $props.empty,\n onCheckboxChange: _cache[25] || (_cache[25] = function ($event) {\n return _ctx.$emit('checkbox-change', $event);\n }),\n filters: $props.filters,\n filterDisplay: $props.filterDisplay,\n filtersStore: $props.filtersStore,\n onFilterChange: _cache[26] || (_cache[26] = function ($event) {\n return _ctx.$emit('filter-change', $event);\n }),\n onFilterApply: _cache[27] || (_cache[27] = function ($event) {\n return _ctx.$emit('filter-apply');\n }),\n onOperatorChange: _cache[28] || (_cache[28] = function ($event) {\n return _ctx.$emit('operator-change', $event);\n }),\n onMatchmodeChange: _cache[29] || (_cache[29] = function ($event) {\n return _ctx.$emit('matchmode-change', $event);\n }),\n onConstraintAdd: _cache[30] || (_cache[30] = function ($event) {\n return _ctx.$emit('constraint-add', $event);\n }),\n onConstraintRemove: _cache[31] || (_cache[31] = function ($event) {\n return _ctx.$emit('constraint-remove', $event);\n }),\n onApplyClick: _cache[32] || (_cache[32] = function ($event) {\n return _ctx.$emit('apply-click', $event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"column\", \"groupRowsBy\", \"groupRowSortField\", \"sortMode\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"allRowsSelected\", \"empty\", \"filters\", \"filterDisplay\", \"filtersStore\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n }), 128))], 16);\n}\n\nscript$1.render = render$1;\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nvar _excluded = [\"expanded\"];\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$1(e, r, t) { return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$1(t) { var i = _toPrimitive$1(t, \"string\"); return \"symbol\" == _typeof$1(i) ? i : i + \"\"; }\nfunction _toPrimitive$1(t, r) { if (\"object\" != _typeof$1(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$1(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'DataTable',\n \"extends\": script$c,\n inheritAttrs: false,\n emits: ['value-change', 'update:first', 'update:rows', 'page', 'update:sortField', 'update:sortOrder', 'update:multiSortMeta', 'sort', 'filter', 'row-click', 'row-dblclick', 'update:selection', 'row-select', 'row-unselect', 'update:contextMenuSelection', 'row-contextmenu', 'row-unselect-all', 'row-select-all', 'select-all-change', 'column-resize-end', 'column-reorder', 'row-reorder', 'update:expandedRows', 'row-collapse', 'row-expand', 'update:expandedRowGroups', 'rowgroup-collapse', 'rowgroup-expand', 'update:filters', 'state-restore', 'state-save', 'cell-edit-init', 'cell-edit-complete', 'cell-edit-cancel', 'update:editingRows', 'row-edit-init', 'row-edit-save', 'row-edit-cancel'],\n provide: function provide() {\n return {\n $columns: this.d_columns,\n $columnGroups: this.d_columnGroups\n };\n },\n data: function data() {\n return {\n d_first: this.first,\n d_rows: this.rows,\n d_sortField: this.sortField,\n d_sortOrder: this.sortOrder,\n d_nullSortOrder: this.nullSortOrder,\n d_multiSortMeta: this.multiSortMeta ? _toConsumableArray(this.multiSortMeta) : [],\n d_groupRowsSortMeta: null,\n d_selectionKeys: null,\n d_columnOrder: null,\n d_editingRowKeys: null,\n d_editingMeta: {},\n d_filters: this.cloneFilters(this.filters),\n d_columns: new HelperSet({\n type: 'Column'\n }),\n d_columnGroups: new HelperSet({\n type: 'ColumnGroup'\n })\n };\n },\n rowTouched: false,\n anchorRowIndex: null,\n rangeRowIndex: null,\n documentColumnResizeListener: null,\n documentColumnResizeEndListener: null,\n lastResizeHelperX: null,\n resizeColumnElement: null,\n columnResizing: false,\n colReorderIconWidth: null,\n colReorderIconHeight: null,\n draggedColumn: null,\n draggedColumnElement: null,\n draggedRowIndex: null,\n droppedRowIndex: null,\n rowDragging: null,\n columnWidthsState: null,\n tableWidthState: null,\n columnWidthsRestored: false,\n watch: {\n first: function first(newValue) {\n this.d_first = newValue;\n },\n rows: function rows(newValue) {\n this.d_rows = newValue;\n },\n sortField: function sortField(newValue) {\n this.d_sortField = newValue;\n },\n sortOrder: function sortOrder(newValue) {\n this.d_sortOrder = newValue;\n },\n nullSortOrder: function nullSortOrder(newValue) {\n this.d_nullSortOrder = newValue;\n },\n multiSortMeta: function multiSortMeta(newValue) {\n this.d_multiSortMeta = newValue;\n },\n selection: {\n immediate: true,\n handler: function handler(newValue) {\n if (this.dataKey) {\n this.updateSelectionKeys(newValue);\n }\n }\n },\n editingRows: {\n immediate: true,\n handler: function handler(newValue) {\n if (this.dataKey) {\n this.updateEditingRowKeys(newValue);\n }\n }\n },\n filters: {\n deep: true,\n handler: function handler(newValue) {\n this.d_filters = this.cloneFilters(newValue);\n }\n }\n },\n mounted: function mounted() {\n this.$el.setAttribute(this.attributeSelector, '');\n if (this.isStateful()) {\n this.restoreState();\n this.resizableColumns && this.restoreColumnWidths();\n }\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindColumnResizeEvents();\n this.destroyStyleElement();\n this.d_columns.clear();\n this.d_columnGroups.clear();\n },\n updated: function updated() {\n if (this.isStateful()) {\n this.saveState();\n }\n if (this.editMode === 'row' && this.dataKey && !this.d_editingRowKeys) {\n this.updateEditingRowKeys(this.editingRows);\n }\n },\n methods: {\n columnProp: function columnProp(col, prop) {\n return getVNodeProp(col, prop);\n },\n onPage: function onPage(event) {\n var _this = this;\n this.clearEditingMetaData();\n this.d_first = event.first;\n this.d_rows = event.rows;\n var pageEvent = this.createLazyLoadEvent(event);\n pageEvent.pageCount = event.pageCount;\n pageEvent.page = event.page;\n this.$emit('update:first', this.d_first);\n this.$emit('update:rows', this.d_rows);\n this.$emit('page', pageEvent);\n this.$nextTick(function () {\n _this.$emit('value-change', _this.processedData);\n });\n },\n onColumnHeaderClick: function onColumnHeaderClick(e) {\n var _this2 = this;\n var event = e.originalEvent;\n var column = e.column;\n if (this.columnProp(column, 'sortable')) {\n var targetNode = event.target;\n var columnField = this.columnProp(column, 'sortField') || this.columnProp(column, 'field');\n if (getAttribute(targetNode, 'data-p-sortable-column') === true || getAttribute(targetNode, 'data-pc-section') === 'columntitle' || getAttribute(targetNode, 'data-pc-section') === 'columnheadercontent' || getAttribute(targetNode, 'data-pc-section') === 'sorticon' || getAttribute(targetNode.parentElement, 'data-pc-section') === 'sorticon' || getAttribute(targetNode.parentElement.parentElement, 'data-pc-section') === 'sorticon' || targetNode.closest('[data-p-sortable-column=\"true\"]') && !targetNode.closest('[data-pc-section=\"columnfilterbutton\"]') && !isClickable(event.target)) {\n clearSelection();\n if (this.sortMode === 'single') {\n if (this.d_sortField === columnField) {\n if (this.removableSort && this.d_sortOrder * -1 === this.defaultSortOrder) {\n this.d_sortOrder = null;\n this.d_sortField = null;\n } else {\n this.d_sortOrder = this.d_sortOrder * -1;\n }\n } else {\n this.d_sortOrder = this.defaultSortOrder;\n this.d_sortField = columnField;\n }\n this.$emit('update:sortField', this.d_sortField);\n this.$emit('update:sortOrder', this.d_sortOrder);\n this.resetPage();\n } else if (this.sortMode === 'multiple') {\n var metaKey = event.metaKey || event.ctrlKey;\n if (!metaKey) {\n this.d_multiSortMeta = this.d_multiSortMeta.filter(function (meta) {\n return meta.field === columnField;\n });\n }\n this.addMultiSortField(columnField);\n this.$emit('update:multiSortMeta', this.d_multiSortMeta);\n }\n this.$emit('sort', this.createLazyLoadEvent(event));\n this.$nextTick(function () {\n _this2.$emit('value-change', _this2.processedData);\n });\n }\n }\n },\n sortSingle: function sortSingle(value) {\n var _this3 = this;\n this.clearEditingMetaData();\n if (this.groupRowsBy && this.groupRowsBy === this.sortField) {\n this.d_multiSortMeta = [{\n field: this.sortField,\n order: this.sortOrder || this.defaultSortOrder\n }, {\n field: this.d_sortField,\n order: this.d_sortOrder\n }];\n return this.sortMultiple(value);\n }\n var data = _toConsumableArray(value);\n var resolvedFieldData = new Map();\n var _iterator = _createForOfIteratorHelper(data),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n resolvedFieldData.set(item, resolveFieldData(item, this.d_sortField));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var comparer = localeComparator();\n data.sort(function (data1, data2) {\n var value1 = resolvedFieldData.get(data1);\n var value2 = resolvedFieldData.get(data2);\n return sort(value1, value2, _this3.d_sortOrder, comparer, _this3.d_nullSortOrder);\n });\n return data;\n },\n sortMultiple: function sortMultiple(value) {\n var _this4 = this;\n this.clearEditingMetaData();\n if (this.groupRowsBy && (this.d_groupRowsSortMeta || this.d_multiSortMeta.length && this.groupRowsBy === this.d_multiSortMeta[0].field)) {\n var firstSortMeta = this.d_multiSortMeta[0];\n !this.d_groupRowsSortMeta && (this.d_groupRowsSortMeta = firstSortMeta);\n if (firstSortMeta.field !== this.d_groupRowsSortMeta.field) {\n this.d_multiSortMeta = [this.d_groupRowsSortMeta].concat(_toConsumableArray(this.d_multiSortMeta));\n }\n }\n var data = _toConsumableArray(value);\n data.sort(function (data1, data2) {\n return _this4.multisortField(data1, data2, 0);\n });\n return data;\n },\n multisortField: function multisortField(data1, data2, index) {\n var value1 = resolveFieldData(data1, this.d_multiSortMeta[index].field);\n var value2 = resolveFieldData(data2, this.d_multiSortMeta[index].field);\n var comparer = localeComparator();\n if (value1 === value2) {\n return this.d_multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, index + 1) : 0;\n }\n return sort(value1, value2, this.d_multiSortMeta[index].order, comparer, this.d_nullSortOrder);\n },\n addMultiSortField: function addMultiSortField(field) {\n var index = this.d_multiSortMeta.findIndex(function (meta) {\n return meta.field === field;\n });\n if (index >= 0) {\n if (this.removableSort && this.d_multiSortMeta[index].order * -1 === this.defaultSortOrder) this.d_multiSortMeta.splice(index, 1);else this.d_multiSortMeta[index] = {\n field: field,\n order: this.d_multiSortMeta[index].order * -1\n };\n } else {\n this.d_multiSortMeta.push({\n field: field,\n order: this.defaultSortOrder\n });\n }\n this.d_multiSortMeta = _toConsumableArray(this.d_multiSortMeta);\n },\n getActiveFilters: function getActiveFilters(filters) {\n var removeEmptyFilters = function removeEmptyFilters(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (value.constraints) {\n var filteredConstraints = value.constraints.filter(function (constraint) {\n return constraint.value !== null;\n });\n if (filteredConstraints.length > 0) {\n return [key, _objectSpread$1(_objectSpread$1({}, value), {}, {\n constraints: filteredConstraints\n })];\n }\n } else if (value.value !== null) {\n return [key, value];\n }\n return undefined;\n };\n var filterValidEntries = function filterValidEntries(entry) {\n return entry !== undefined;\n };\n var entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n return Object.fromEntries(entries);\n },\n filter: function filter(data) {\n var _this5 = this;\n if (!data) {\n return;\n }\n this.clearEditingMetaData();\n var activeFilters = this.getActiveFilters(this.filters);\n var globalFilterFieldsArray;\n if (activeFilters['global']) {\n globalFilterFieldsArray = this.globalFilterFields || this.columns.map(function (col) {\n return _this5.columnProp(col, 'filterField') || _this5.columnProp(col, 'field');\n });\n }\n var filteredValue = [];\n for (var i = 0; i < data.length; i++) {\n var localMatch = true;\n var globalMatch = false;\n var localFiltered = false;\n for (var prop in activeFilters) {\n if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n localFiltered = true;\n var filterField = prop;\n var filterMeta = activeFilters[filterField];\n if (filterMeta.operator) {\n var _iterator2 = _createForOfIteratorHelper(filterMeta.constraints),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var filterConstraint = _step2.value;\n localMatch = this.executeLocalFilter(filterField, data[i], filterConstraint);\n if (filterMeta.operator === FilterOperator.OR && localMatch || filterMeta.operator === FilterOperator.AND && !localMatch) {\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, data[i], filterMeta);\n }\n if (!localMatch) {\n break;\n }\n }\n }\n if (localMatch && activeFilters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (var j = 0; j < globalFilterFieldsArray.length; j++) {\n var globalFilterField = globalFilterFieldsArray[j];\n globalMatch = FilterService.filters[activeFilters['global'].matchMode || FilterMatchMode.CONTAINS](resolveFieldData(data[i], globalFilterField), activeFilters['global'].value, this.filterLocale);\n if (globalMatch) {\n break;\n }\n }\n }\n var matches = void 0;\n if (activeFilters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n if (matches) {\n filteredValue.push(data[i]);\n }\n }\n if (filteredValue.length === this.value.length || Object.keys(activeFilters).length == 0) {\n filteredValue = data;\n }\n var filterEvent = this.createLazyLoadEvent();\n filterEvent.filteredValue = filteredValue;\n this.$emit('filter', filterEvent);\n this.$nextTick(function () {\n _this5.$emit('value-change', _this5.processedData);\n });\n return filteredValue;\n },\n executeLocalFilter: function executeLocalFilter(field, rowData, filterMeta) {\n var filterValue = filterMeta.value;\n var filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n var dataFieldValue = resolveFieldData(rowData, field);\n var filterConstraint = FilterService.filters[filterMatchMode];\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n },\n onRowClick: function onRowClick(e) {\n var event = e.originalEvent;\n var body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n var focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n if (isClickable(event.target)) {\n return;\n }\n this.$emit('row-click', e);\n if (this.selectionMode) {\n var rowData = e.data;\n var rowIndex = this.d_first + e.index;\n if (this.isMultipleSelectionMode() && event.shiftKey && this.anchorRowIndex != null) {\n clearSelection();\n this.rangeRowIndex = rowIndex;\n this.selectRange(event);\n } else {\n var selected = this.isSelected(rowData);\n var metaSelection = this.rowTouched ? false : this.metaKeySelection;\n this.anchorRowIndex = rowIndex;\n this.rangeRowIndex = rowIndex;\n if (metaSelection) {\n var metaKey = event.metaKey || event.ctrlKey;\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', null);\n } else {\n var selectionIndex = this.findIndexInSelection(rowData);\n var _selection = this.selection.filter(function (val, i) {\n return i != selectionIndex;\n });\n this.$emit('update:selection', _selection);\n }\n this.$emit('row-unselect', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n } else {\n if (this.isSingleSelectionMode()) {\n this.$emit('update:selection', rowData);\n } else if (this.isMultipleSelectionMode()) {\n var _selection2 = metaKey ? this.selection || [] : [];\n _selection2 = [].concat(_toConsumableArray(_selection2), [rowData]);\n this.$emit('update:selection', _selection2);\n }\n this.$emit('row-select', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n var _selectionIndex = this.findIndexInSelection(rowData);\n var _selection3 = this.selection.filter(function (val, i) {\n return i != _selectionIndex;\n });\n this.$emit('update:selection', _selection3);\n this.$emit('row-unselect', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n } else {\n var _selection4 = this.selection ? [].concat(_toConsumableArray(this.selection), [rowData]) : [rowData];\n this.$emit('update:selection', _selection4);\n this.$emit('row-select', {\n originalEvent: event,\n data: rowData,\n index: rowIndex,\n type: 'row'\n });\n }\n }\n }\n }\n }\n this.rowTouched = false;\n if (focusedItem) {\n var _event$target, _event$target2, _event$target3;\n if (((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.getAttribute('data-pc-section')) === 'rowtoggleicon' || ((_event$target2 = event.target) === null || _event$target2 === void 0 || (_event$target2 = _event$target2.parentElement) === null || _event$target2 === void 0 ? void 0 : _event$target2.getAttribute('data-pc-section')) === 'rowtoggleicon') return;\n var targetRow = (_event$target3 = event.target) === null || _event$target3 === void 0 ? void 0 : _event$target3.closest('tr[data-p-selectable-row=\"true\"]');\n focusedItem.tabIndex = '-1';\n targetRow.tabIndex = '0';\n }\n },\n onRowDblClick: function onRowDblClick(e) {\n var event = e.originalEvent;\n if (isClickable(event.target)) {\n return;\n }\n this.$emit('row-dblclick', e);\n },\n onRowRightClick: function onRowRightClick(event) {\n if (this.contextMenu) {\n clearSelection();\n event.originalEvent.target.focus();\n }\n this.$emit('update:contextMenuSelection', event.data);\n this.$emit('row-contextmenu', event);\n },\n onRowTouchEnd: function onRowTouchEnd() {\n this.rowTouched = true;\n },\n onRowKeyDown: function onRowKeyDown(e, slotProps) {\n var event = e.originalEvent;\n var rowData = e.data;\n var rowIndex = e.index;\n var metaKey = event.metaKey || event.ctrlKey;\n if (this.selectionMode) {\n var row = event.target;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event, row, rowIndex, slotProps);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, row, rowIndex, slotProps);\n break;\n case 'Home':\n this.onHomeKey(event, row, rowIndex, slotProps);\n break;\n case 'End':\n this.onEndKey(event, row, rowIndex, slotProps);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event, rowData, rowIndex);\n break;\n case 'Space':\n this.onSpaceKey(event, rowData, rowIndex, slotProps);\n break;\n case 'Tab':\n this.onTabKey(event, rowIndex);\n break;\n default:\n if (event.code === 'KeyA' && metaKey && this.isMultipleSelectionMode()) {\n var data = this.dataToRender(slotProps.rows);\n this.$emit('update:selection', data);\n }\n event.preventDefault();\n break;\n }\n }\n },\n onArrowDownKey: function onArrowDownKey(event, row, rowIndex, slotProps) {\n var nextRow = this.findNextSelectableRow(row);\n nextRow && this.focusRowChange(row, nextRow);\n if (event.shiftKey) {\n var data = this.dataToRender(slotProps.rows);\n var nextRowIndex = rowIndex + 1 >= data.length ? data.length - 1 : rowIndex + 1;\n this.onRowClick({\n originalEvent: event,\n data: data[nextRowIndex],\n index: nextRowIndex\n });\n }\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event, row, rowIndex, slotProps) {\n var prevRow = this.findPrevSelectableRow(row);\n prevRow && this.focusRowChange(row, prevRow);\n if (event.shiftKey) {\n var data = this.dataToRender(slotProps.rows);\n var prevRowIndex = rowIndex - 1 <= 0 ? 0 : rowIndex - 1;\n this.onRowClick({\n originalEvent: event,\n data: data[prevRowIndex],\n index: prevRowIndex\n });\n }\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event, row, rowIndex, slotProps) {\n var firstRow = this.findFirstSelectableRow();\n firstRow && this.focusRowChange(row, firstRow);\n if (event.ctrlKey && event.shiftKey) {\n var data = this.dataToRender(slotProps.rows);\n this.$emit('update:selection', data.slice(0, rowIndex + 1));\n }\n event.preventDefault();\n },\n onEndKey: function onEndKey(event, row, rowIndex, slotProps) {\n var lastRow = this.findLastSelectableRow();\n lastRow && this.focusRowChange(row, lastRow);\n if (event.ctrlKey && event.shiftKey) {\n var data = this.dataToRender(slotProps.rows);\n this.$emit('update:selection', data.slice(rowIndex, data.length));\n }\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event, rowData, rowIndex) {\n this.onRowClick({\n originalEvent: event,\n data: rowData,\n index: rowIndex\n });\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event, rowData, rowIndex, slotProps) {\n this.onEnterKey(event, rowData, rowIndex);\n if (event.shiftKey && this.selection !== null) {\n var data = this.dataToRender(slotProps.rows);\n var index;\n if (this.selection.length > 0) {\n var firstSelectedRowIndex, lastSelectedRowIndex;\n firstSelectedRowIndex = findIndexInList(this.selection[0], data);\n lastSelectedRowIndex = findIndexInList(this.selection[this.selection.length - 1], data);\n index = rowIndex <= firstSelectedRowIndex ? lastSelectedRowIndex : firstSelectedRowIndex;\n } else {\n index = findIndexInList(this.selection, data);\n }\n var _selection = index !== rowIndex ? data.slice(Math.min(index, rowIndex), Math.max(index, rowIndex) + 1) : rowData;\n this.$emit('update:selection', _selection);\n }\n },\n onTabKey: function onTabKey(event, rowIndex) {\n var body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n var rows = find(body, 'tr[data-p-selectable-row=\"true\"]');\n if (event.code === 'Tab' && rows && rows.length > 0) {\n var firstSelectedRow = findSingle(body, 'tr[data-p-selected=\"true\"]');\n var focusedItem = findSingle(body, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n if (firstSelectedRow) {\n firstSelectedRow.tabIndex = '0';\n focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n } else {\n rows[0].tabIndex = '0';\n focusedItem !== rows[0] && (rows[rowIndex].tabIndex = '-1');\n }\n }\n },\n findNextSelectableRow: function findNextSelectableRow(row) {\n var nextRow = row.nextElementSibling;\n if (nextRow) {\n if (getAttribute(nextRow, 'data-p-selectable-row') === true) return nextRow;else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n },\n findPrevSelectableRow: function findPrevSelectableRow(row) {\n var prevRow = row.previousElementSibling;\n if (prevRow) {\n if (getAttribute(prevRow, 'data-p-selectable-row') === true) return prevRow;else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n },\n findFirstSelectableRow: function findFirstSelectableRow() {\n var firstRow = findSingle(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n return firstRow;\n },\n findLastSelectableRow: function findLastSelectableRow() {\n var rows = find(this.$refs.table, 'tr[data-p-selectable-row=\"true\"]');\n return rows ? rows[rows.length - 1] : null;\n },\n focusRowChange: function focusRowChange(firstFocusableRow, currentFocusedRow) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n focus(currentFocusedRow);\n },\n toggleRowWithRadio: function toggleRowWithRadio(event) {\n var rowData = event.data;\n if (this.isSelected(rowData)) {\n this.$emit('update:selection', null);\n this.$emit('row-unselect', {\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.index,\n type: 'radiobutton'\n });\n } else {\n this.$emit('update:selection', rowData);\n this.$emit('row-select', {\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.index,\n type: 'radiobutton'\n });\n }\n },\n toggleRowWithCheckbox: function toggleRowWithCheckbox(event) {\n var rowData = event.data;\n if (this.isSelected(rowData)) {\n var selectionIndex = this.findIndexInSelection(rowData);\n var _selection = this.selection.filter(function (val, i) {\n return i != selectionIndex;\n });\n this.$emit('update:selection', _selection);\n this.$emit('row-unselect', {\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.index,\n type: 'checkbox'\n });\n } else {\n var _selection5 = this.selection ? _toConsumableArray(this.selection) : [];\n _selection5 = [].concat(_toConsumableArray(_selection5), [rowData]);\n this.$emit('update:selection', _selection5);\n this.$emit('row-select', {\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.index,\n type: 'checkbox'\n });\n }\n },\n toggleRowsWithCheckbox: function toggleRowsWithCheckbox(event) {\n if (this.selectAll !== null) {\n this.$emit('select-all-change', event);\n } else {\n var originalEvent = event.originalEvent,\n checked = event.checked;\n var _selection = [];\n if (checked) {\n _selection = this.frozenValue ? [].concat(_toConsumableArray(this.frozenValue), _toConsumableArray(this.processedData)) : this.processedData;\n this.$emit('row-select-all', {\n originalEvent: originalEvent,\n data: _selection\n });\n } else {\n this.$emit('row-unselect-all', {\n originalEvent: originalEvent\n });\n }\n this.$emit('update:selection', _selection);\n }\n },\n isSingleSelectionMode: function isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode: function isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isSelected: function isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.d_selectionKeys ? this.d_selectionKeys[resolveFieldData(rowData, this.dataKey)] !== undefined : false;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;else return this.equals(rowData, this.selection);\n }\n }\n return false;\n },\n findIndexInSelection: function findIndexInSelection(rowData) {\n return this.findIndex(rowData, this.selection);\n },\n findIndex: function findIndex(rowData, collection) {\n var index = -1;\n if (collection && collection.length) {\n for (var i = 0; i < collection.length; i++) {\n if (this.equals(rowData, collection[i])) {\n index = i;\n break;\n }\n }\n }\n return index;\n },\n updateSelectionKeys: function updateSelectionKeys(selection) {\n this.d_selectionKeys = {};\n if (Array.isArray(selection)) {\n var _iterator3 = _createForOfIteratorHelper(selection),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var data = _step3.value;\n this.d_selectionKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } else {\n this.d_selectionKeys[String(resolveFieldData(selection, this.dataKey))] = 1;\n }\n },\n updateEditingRowKeys: function updateEditingRowKeys(editingRows) {\n if (editingRows && editingRows.length) {\n this.d_editingRowKeys = {};\n var _iterator4 = _createForOfIteratorHelper(editingRows),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var data = _step4.value;\n this.d_editingRowKeys[String(resolveFieldData(data, this.dataKey))] = 1;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n } else {\n this.d_editingRowKeys = null;\n }\n },\n equals: function equals$1(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : equals(data1, data2, this.dataKey);\n },\n selectRange: function selectRange(event) {\n var rangeStart, rangeEnd;\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n var value = this.processedData;\n var _selection = [];\n for (var i = rangeStart; i <= rangeEnd; i++) {\n var rangeRowData = value[i];\n _selection.push(rangeRowData);\n this.$emit('row-select', {\n originalEvent: event,\n data: rangeRowData,\n type: 'row'\n });\n }\n this.$emit('update:selection', _selection);\n },\n exportCSV: function exportCSV$1(options, data) {\n var _this6 = this;\n var csv = \"\\uFEFF\";\n if (!data) {\n data = this.processedData;\n if (options && options.selectionOnly) data = this.selection || [];else if (this.frozenValue) data = data ? [].concat(_toConsumableArray(this.frozenValue), _toConsumableArray(data)) : this.frozenValue;\n }\n\n //headers\n var headerInitiated = false;\n for (var i = 0; i < this.columns.length; i++) {\n var column = this.columns[i];\n if (this.columnProp(column, 'exportable') !== false && this.columnProp(column, 'field')) {\n if (headerInitiated) csv += this.csvSeparator;else headerInitiated = true;\n csv += '\"' + (this.columnProp(column, 'exportHeader') || this.columnProp(column, 'header') || this.columnProp(column, 'field')) + '\"';\n }\n }\n\n //body\n if (data) {\n data.forEach(function (record) {\n csv += '\\n';\n var rowInitiated = false;\n for (var _i = 0; _i < _this6.columns.length; _i++) {\n var _column = _this6.columns[_i];\n if (_this6.columnProp(_column, 'exportable') !== false && _this6.columnProp(_column, 'field')) {\n if (rowInitiated) csv += _this6.csvSeparator;else rowInitiated = true;\n var cellData = resolveFieldData(record, _this6.columnProp(_column, 'field'));\n if (cellData != null) {\n if (_this6.exportFunction) {\n cellData = _this6.exportFunction({\n data: cellData,\n field: _this6.columnProp(_column, 'field')\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n csv += '\"' + cellData + '\"';\n }\n }\n });\n }\n\n //footers\n var footerInitiated = false;\n for (var _i2 = 0; _i2 < this.columns.length; _i2++) {\n var _column2 = this.columns[_i2];\n if (_i2 === 0) csv += '\\n';\n if (this.columnProp(_column2, 'exportable') !== false && this.columnProp(_column2, 'exportFooter')) {\n if (footerInitiated) csv += this.csvSeparator;else footerInitiated = true;\n csv += '\"' + (this.columnProp(_column2, 'exportFooter') || this.columnProp(_column2, 'footer') || this.columnProp(_column2, 'field')) + '\"';\n }\n }\n exportCSV(csv, this.exportFilename);\n },\n resetPage: function resetPage() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n },\n onColumnResizeStart: function onColumnResizeStart(event) {\n var containerLeft = getOffset(this.$el).left;\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizeHelperX = event.pageX - containerLeft + this.$el.scrollLeft;\n this.bindColumnResizeEvents();\n },\n onColumnResize: function onColumnResize(event) {\n var containerLeft = getOffset(this.$el).left;\n this.$el.setAttribute('data-p-unselectable-text', 'true');\n !this.isUnstyled && addStyle(this.$el, {\n 'user-select': 'none'\n });\n this.$refs.resizeHelper.style.height = this.$el.offsetHeight + 'px';\n this.$refs.resizeHelper.style.top = 0 + 'px';\n this.$refs.resizeHelper.style.left = event.pageX - containerLeft + this.$el.scrollLeft + 'px';\n this.$refs.resizeHelper.style.display = 'block';\n },\n onColumnResizeEnd: function onColumnResizeEnd() {\n var delta = this.$refs.resizeHelper.offsetLeft - this.lastResizeHelperX;\n var columnWidth = this.resizeColumnElement.offsetWidth;\n var newColumnWidth = columnWidth + delta;\n var minWidth = this.resizeColumnElement.style.minWidth || 15;\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.columnResizeMode === 'fit') {\n var nextColumn = this.resizeColumnElement.nextElementSibling;\n var nextColumnWidth = nextColumn.offsetWidth - delta;\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n } else if (this.columnResizeMode === 'expand') {\n var tableWidth = this.$refs.table.offsetWidth + delta + 'px';\n var updateTableWidth = function updateTableWidth(el) {\n !!el && (el.style.width = el.style.minWidth = tableWidth);\n };\n\n // Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n this.resizeTableCells(newColumnWidth);\n updateTableWidth(this.$refs.table);\n if (!this.virtualScrollerDisabled) {\n var body = this.$refs.bodyRef && this.$refs.bodyRef.$el;\n var frozenBody = this.$refs.frozenBodyRef && this.$refs.frozenBodyRef.$el;\n updateTableWidth(body);\n updateTableWidth(frozenBody);\n }\n }\n this.$emit('column-resize-end', {\n element: this.resizeColumnElement,\n delta: delta\n });\n }\n this.$refs.resizeHelper.style.display = 'none';\n this.resizeColumn = null;\n this.$el.removeAttribute('data-p-unselectable-text');\n !this.isUnstyled && (this.$el.style['user-select'] = '');\n this.unbindColumnResizeEvents();\n if (this.isStateful()) {\n this.saveState();\n }\n },\n resizeTableCells: function resizeTableCells(newColumnWidth, nextColumnWidth) {\n var colIndex = getIndex(this.resizeColumnElement);\n var widths = [];\n var headers = find(this.$refs.table, 'thead[data-pc-section=\"thead\"] > tr > th');\n headers.forEach(function (header) {\n return widths.push(getOuterWidth(header));\n });\n this.destroyStyleElement();\n this.createStyleElement();\n var innerHTML = '';\n var selector = \"[data-pc-name=\\\"datatable\\\"][\".concat(this.attributeSelector, \"] > [data-pc-section=\\\"tablecontainer\\\"] \").concat(this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]', \" > table[data-pc-section=\\\"table\\\"]\");\n widths.forEach(function (width, index) {\n var colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n var style = \"width: \".concat(colWidth, \"px !important; max-width: \").concat(colWidth, \"px !important\");\n innerHTML += \"\\n \".concat(selector, \" > thead[data-pc-section=\\\"thead\\\"] > tr > th:nth-child(\").concat(index + 1, \"),\\n \").concat(selector, \" > tbody[data-pc-section=\\\"tbody\\\"] > tr > td:nth-child(\").concat(index + 1, \"),\\n \").concat(selector, \" > tfoot[data-pc-section=\\\"tfoot\\\"] > tr > td:nth-child(\").concat(index + 1, \") {\\n \").concat(style, \"\\n }\\n \");\n });\n this.styleElement.innerHTML = innerHTML;\n },\n bindColumnResizeEvents: function bindColumnResizeEvents() {\n var _this7 = this;\n if (!this.documentColumnResizeListener) {\n this.documentColumnResizeListener = document.addEventListener('mousemove', function () {\n if (_this7.columnResizing) {\n _this7.onColumnResize(event);\n }\n });\n }\n if (!this.documentColumnResizeEndListener) {\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', function () {\n if (_this7.columnResizing) {\n _this7.columnResizing = false;\n _this7.onColumnResizeEnd();\n }\n });\n }\n },\n unbindColumnResizeEvents: function unbindColumnResizeEvents() {\n if (this.documentColumnResizeListener) {\n document.removeEventListener('document', this.documentColumnResizeListener);\n this.documentColumnResizeListener = null;\n }\n if (this.documentColumnResizeEndListener) {\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n this.documentColumnResizeEndListener = null;\n }\n },\n onColumnHeaderMouseDown: function onColumnHeaderMouseDown(e) {\n var event = e.originalEvent;\n var column = e.column;\n if (this.reorderableColumns && this.columnProp(column, 'reorderableColumn') !== false) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) event.currentTarget.draggable = false;else event.currentTarget.draggable = true;\n }\n },\n onColumnHeaderDragStart: function onColumnHeaderDragStart(e) {\n var event = e.originalEvent,\n column = e.column;\n if (this.columnResizing) {\n event.preventDefault();\n return;\n }\n this.colReorderIconWidth = getHiddenElementOuterWidth(this.$refs.reorderIndicatorUp);\n this.colReorderIconHeight = getHiddenElementOuterHeight(this.$refs.reorderIndicatorUp);\n this.draggedColumn = column;\n this.draggedColumnElement = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n },\n onColumnHeaderDragOver: function onColumnHeaderDragOver(e) {\n var event = e.originalEvent,\n column = e.column;\n var dropHeader = this.findParentHeader(event.target);\n if (this.reorderableColumns && this.draggedColumnElement && dropHeader && !this.columnProp(column, 'frozen')) {\n event.preventDefault();\n var containerOffset = getOffset(this.$el);\n var dropHeaderOffset = getOffset(dropHeader);\n if (this.draggedColumnElement !== dropHeader) {\n var targetLeft = dropHeaderOffset.left - containerOffset.left;\n var columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n this.$refs.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.colReorderIconHeight - 1) + 'px';\n this.$refs.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n if (event.pageX > columnCenter) {\n this.$refs.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.$refs.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.$refs.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.colReorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n this.$refs.reorderIndicatorUp.style.display = 'block';\n this.$refs.reorderIndicatorDown.style.display = 'block';\n }\n }\n },\n onColumnHeaderDragLeave: function onColumnHeaderDragLeave(e) {\n var event = e.originalEvent;\n if (this.reorderableColumns && this.draggedColumnElement) {\n event.preventDefault();\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n }\n },\n onColumnHeaderDrop: function onColumnHeaderDrop(e) {\n var _this8 = this;\n var event = e.originalEvent,\n column = e.column;\n event.preventDefault();\n if (this.draggedColumnElement) {\n var dragIndex = getIndex(this.draggedColumnElement);\n var dropIndex = getIndex(this.findParentHeader(event.target));\n var allowDrop = dragIndex !== dropIndex;\n if (allowDrop && (dropIndex - dragIndex === 1 && this.dropPosition === -1 || dropIndex - dragIndex === -1 && this.dropPosition === 1)) {\n allowDrop = false;\n }\n if (allowDrop) {\n var isSameColumn = function isSameColumn(col1, col2) {\n return _this8.columnProp(col1, 'columnKey') || _this8.columnProp(col2, 'columnKey') ? _this8.columnProp(col1, 'columnKey') === _this8.columnProp(col2, 'columnKey') : _this8.columnProp(col1, 'field') === _this8.columnProp(col2, 'field');\n };\n var dragColIndex = this.columns.findIndex(function (child) {\n return isSameColumn(child, _this8.draggedColumn);\n });\n var dropColIndex = this.columns.findIndex(function (child) {\n return isSameColumn(child, column);\n });\n var widths = [];\n var headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n headers.forEach(function (header) {\n return widths.push(getOuterWidth(header));\n });\n var movedItem = widths.find(function (_, index) {\n return index === dragColIndex;\n });\n var remainingItems = widths.filter(function (_, index) {\n return index !== dragColIndex;\n });\n var reorderedWidths = [].concat(_toConsumableArray(remainingItems.slice(0, dropColIndex)), [movedItem], _toConsumableArray(remainingItems.slice(dropColIndex)));\n this.addColumnWidthStyles(reorderedWidths);\n if (dropColIndex < dragColIndex && this.dropPosition === 1) {\n dropColIndex++;\n }\n if (dropColIndex > dragColIndex && this.dropPosition === -1) {\n dropColIndex--;\n }\n reorderArray(this.columns, dragColIndex, dropColIndex);\n this.updateReorderableColumns();\n this.$emit('column-reorder', {\n originalEvent: event,\n dragIndex: dragColIndex,\n dropIndex: dropColIndex\n });\n }\n this.$refs.reorderIndicatorUp.style.display = 'none';\n this.$refs.reorderIndicatorDown.style.display = 'none';\n this.draggedColumnElement.draggable = false;\n this.draggedColumnElement = null;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n },\n findParentHeader: function findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n var parent = element.parentElement;\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n return parent;\n }\n },\n findColumnByKey: function findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (var i = 0; i < columns.length; i++) {\n var column = columns[i];\n if (this.columnProp(column, 'columnKey') === key || this.columnProp(column, 'field') === key) {\n return column;\n }\n }\n }\n return null;\n },\n onRowMouseDown: function onRowMouseDown(event) {\n if (getAttribute(event.target, 'data-pc-section') === 'reorderablerowhandle' || getAttribute(event.target.parentElement, 'data-pc-section') === 'reorderablerowhandle') event.currentTarget.draggable = true;else event.currentTarget.draggable = false;\n },\n onRowDragStart: function onRowDragStart(e) {\n var event = e.originalEvent;\n var index = e.index;\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n },\n onRowDragOver: function onRowDragOver(e) {\n var event = e.originalEvent;\n var index = e.index;\n if (this.rowDragging && this.draggedRowIndex !== index) {\n var rowElement = event.currentTarget;\n var rowY = getOffset(rowElement).top + getWindowScrollTop();\n var pageY = event.pageY;\n var rowMidY = rowY + getOuterHeight(rowElement) / 2;\n var prevRowElement = rowElement.previousElementSibling;\n if (pageY < rowMidY) {\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n this.droppedRowIndex = index;\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n } else {\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n } else {\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n this.droppedRowIndex = index + 1;\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n !this.isUnstyled && addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n event.preventDefault();\n }\n },\n onRowDragLeave: function onRowDragLeave(event) {\n var rowElement = event.currentTarget;\n var prevRowElement = rowElement.previousElementSibling;\n if (prevRowElement) {\n prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n !this.isUnstyled && removeClass(rowElement, 'p-datatable-dragpoint-top');\n },\n onRowDragEnd: function onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n event.currentTarget.draggable = false;\n },\n onRowDrop: function onRowDrop(event) {\n if (this.droppedRowIndex != null) {\n var dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n var processedData = _toConsumableArray(this.processedData);\n reorderArray(processedData, this.draggedRowIndex + this.d_first, dropIndex + this.d_first);\n this.$emit('row-reorder', {\n originalEvent: event,\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex,\n value: processedData\n });\n }\n\n //cleanup\n this.onRowDragLeave(event);\n this.onRowDragEnd(event);\n event.preventDefault();\n },\n toggleRow: function toggleRow(event) {\n var _this9 = this;\n var expanded = event.expanded,\n rest = _objectWithoutProperties(event, _excluded);\n var rowData = event.data;\n var expandedRows;\n if (this.dataKey) {\n var value = resolveFieldData(rowData, this.dataKey);\n expandedRows = this.expandedRows ? _objectSpread$1({}, this.expandedRows) : {};\n expanded ? expandedRows[value] = true : delete expandedRows[value];\n } else {\n expandedRows = this.expandedRows ? _toConsumableArray(this.expandedRows) : [];\n expanded ? expandedRows.push(rowData) : expandedRows = expandedRows.filter(function (d) {\n return !_this9.equals(rowData, d);\n });\n }\n this.$emit('update:expandedRows', expandedRows);\n expanded ? this.$emit('row-expand', rest) : this.$emit('row-collapse', rest);\n },\n toggleRowGroup: function toggleRowGroup(e) {\n var event = e.originalEvent;\n var data = e.data;\n var groupFieldValue = resolveFieldData(data, this.groupRowsBy);\n var _expandedRowGroups = this.expandedRowGroups ? _toConsumableArray(this.expandedRowGroups) : [];\n if (this.isRowGroupExpanded(data)) {\n _expandedRowGroups = _expandedRowGroups.filter(function (group) {\n return group !== groupFieldValue;\n });\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-collapse', {\n originalEvent: event,\n data: groupFieldValue\n });\n } else {\n _expandedRowGroups.push(groupFieldValue);\n this.$emit('update:expandedRowGroups', _expandedRowGroups);\n this.$emit('rowgroup-expand', {\n originalEvent: event,\n data: groupFieldValue\n });\n }\n },\n isRowGroupExpanded: function isRowGroupExpanded(rowData) {\n if (this.expandableRowGroups && this.expandedRowGroups) {\n var groupFieldValue = resolveFieldData(rowData, this.groupRowsBy);\n return this.expandedRowGroups.indexOf(groupFieldValue) > -1;\n }\n return false;\n },\n isStateful: function isStateful() {\n return this.stateKey != null;\n },\n getStorage: function getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n case 'session':\n return window.sessionStorage;\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState: function saveState() {\n var storage = this.getStorage();\n var state = {};\n if (this.paginator) {\n state.first = this.d_first;\n state.rows = this.d_rows;\n }\n if (this.d_sortField) {\n state.sortField = this.d_sortField;\n state.sortOrder = this.d_sortOrder;\n }\n if (this.d_multiSortMeta) {\n state.multiSortMeta = this.d_multiSortMeta;\n }\n if (this.hasFilters) {\n state.filters = this.filters;\n }\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n if (this.reorderableColumns) {\n state.columnOrder = this.d_columnOrder;\n }\n if (this.expandedRows) {\n state.expandedRows = this.expandedRows;\n }\n if (this.expandedRowGroups) {\n state.expandedRowGroups = this.expandedRowGroups;\n }\n if (this.selection) {\n state.selection = this.selection;\n state.selectionKeys = this.d_selectionKeys;\n }\n if (Object.keys(state).length) {\n storage.setItem(this.stateKey, JSON.stringify(state));\n }\n this.$emit('state-save', state);\n },\n restoreState: function restoreState() {\n var storage = this.getStorage();\n var stateString = storage.getItem(this.stateKey);\n var dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n var reviver = function reviver(key, value) {\n if (typeof value === 'string' && dateFormat.test(value)) {\n return new Date(value);\n }\n return value;\n };\n if (stateString) {\n var restoredState = JSON.parse(stateString, reviver);\n if (this.paginator) {\n this.d_first = restoredState.first;\n this.d_rows = restoredState.rows;\n }\n if (restoredState.sortField) {\n this.d_sortField = restoredState.sortField;\n this.d_sortOrder = restoredState.sortOrder;\n }\n if (restoredState.multiSortMeta) {\n this.d_multiSortMeta = restoredState.multiSortMeta;\n }\n if (restoredState.filters) {\n this.$emit('update:filters', restoredState.filters);\n }\n if (this.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n if (this.reorderableColumns) {\n this.d_columnOrder = restoredState.columnOrder;\n }\n if (restoredState.expandedRows) {\n this.$emit('update:expandedRows', restoredState.expandedRows);\n }\n if (restoredState.expandedRowGroups) {\n this.$emit('update:expandedRowGroups', restoredState.expandedRowGroups);\n }\n if (restoredState.selection) {\n this.d_selectionKeys = restoredState.d_selectionKeys;\n this.$emit('update:selection', restoredState.selection);\n }\n this.$emit('state-restore', restoredState);\n }\n },\n saveColumnWidths: function saveColumnWidths(state) {\n var widths = [];\n var headers = find(this.$el, 'thead[data-pc-section=\"thead\"] > tr > th');\n headers.forEach(function (header) {\n return widths.push(getOuterWidth(header));\n });\n state.columnWidths = widths.join(',');\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = getOuterWidth(this.$refs.table) + 'px';\n }\n },\n addColumnWidthStyles: function addColumnWidthStyles(widths) {\n this.createStyleElement();\n var innerHTML = '';\n var selector = \"[data-pc-name=\\\"datatable\\\"][\".concat(this.attributeSelector, \"] > [data-pc-section=\\\"tablecontainer\\\"] \").concat(this.virtualScrollerDisabled ? '' : '> [data-pc-name=\"virtualscroller\"]', \" > table[data-pc-section=\\\"table\\\"]\");\n widths.forEach(function (width, index) {\n var style = \"width: \".concat(width, \"px !important; max-width: \").concat(width, \"px !important\");\n innerHTML += \"\\n \".concat(selector, \" > thead[data-pc-section=\\\"thead\\\"] > tr > th:nth-child(\").concat(index + 1, \"),\\n \").concat(selector, \" > tbody[data-pc-section=\\\"tbody\\\"] > tr > td:nth-child(\").concat(index + 1, \"),\\n \").concat(selector, \" > tfoot[data-pc-section=\\\"tfoot\\\"] > tr > td:nth-child(\").concat(index + 1, \") {\\n \").concat(style, \"\\n }\\n \");\n });\n this.styleElement.innerHTML = innerHTML;\n },\n restoreColumnWidths: function restoreColumnWidths() {\n if (this.columnWidthsState) {\n var widths = this.columnWidthsState.split(',');\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.$refs.table.style.width = this.tableWidthState;\n this.$refs.table.style.minWidth = this.tableWidthState;\n }\n if (isNotEmpty(widths)) {\n this.addColumnWidthStyles(widths);\n }\n }\n },\n onCellEditInit: function onCellEditInit(event) {\n this.$emit('cell-edit-init', event);\n },\n onCellEditComplete: function onCellEditComplete(event) {\n this.$emit('cell-edit-complete', event);\n },\n onCellEditCancel: function onCellEditCancel(event) {\n this.$emit('cell-edit-cancel', event);\n },\n onRowEditInit: function onRowEditInit(event) {\n var _editingRows = this.editingRows ? _toConsumableArray(this.editingRows) : [];\n _editingRows.push(event.data);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-init', event);\n },\n onRowEditSave: function onRowEditSave(event) {\n var _editingRows = _toConsumableArray(this.editingRows);\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-save', event);\n },\n onRowEditCancel: function onRowEditCancel(event) {\n var _editingRows = _toConsumableArray(this.editingRows);\n _editingRows.splice(this.findIndex(event.data, _editingRows), 1);\n this.$emit('update:editingRows', _editingRows);\n this.$emit('row-edit-cancel', event);\n },\n onEditingMetaChange: function onEditingMetaChange(event) {\n var data = event.data,\n field = event.field,\n index = event.index,\n editing = event.editing;\n var editingMeta = _objectSpread$1({}, this.d_editingMeta);\n var meta = editingMeta[index];\n if (editing) {\n !meta && (meta = editingMeta[index] = {\n data: _objectSpread$1({}, data),\n fields: []\n });\n meta['fields'].push(field);\n } else if (meta) {\n var fields = meta['fields'].filter(function (f) {\n return f !== field;\n });\n !fields.length ? delete editingMeta[index] : meta['fields'] = fields;\n }\n this.d_editingMeta = editingMeta;\n },\n clearEditingMetaData: function clearEditingMetaData() {\n if (this.editMode) {\n this.d_editingMeta = {};\n }\n },\n createLazyLoadEvent: function createLazyLoadEvent(event) {\n return {\n originalEvent: event,\n first: this.d_first,\n rows: this.d_rows,\n sortField: this.d_sortField,\n sortOrder: this.d_sortOrder,\n multiSortMeta: this.d_multiSortMeta,\n filters: this.d_filters\n };\n },\n hasGlobalFilter: function hasGlobalFilter() {\n return this.filters && Object.prototype.hasOwnProperty.call(this.filters, 'global');\n },\n onFilterChange: function onFilterChange(filters) {\n this.d_filters = filters;\n },\n onFilterApply: function onFilterApply() {\n this.d_first = 0;\n this.$emit('update:first', this.d_first);\n this.$emit('update:filters', this.d_filters);\n if (this.lazy) {\n this.$emit('filter', this.createLazyLoadEvent());\n }\n },\n cloneFilters: function cloneFilters() {\n var cloned = {};\n if (this.filters) {\n Object.entries(this.filters).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n prop = _ref4[0],\n value = _ref4[1];\n cloned[prop] = value.operator ? {\n operator: value.operator,\n constraints: value.constraints.map(function (constraint) {\n return _objectSpread$1({}, constraint);\n })\n } : _objectSpread$1({}, value);\n });\n }\n return cloned;\n },\n updateReorderableColumns: function updateReorderableColumns() {\n var _this10 = this;\n var columnOrder = [];\n this.columns.forEach(function (col) {\n return columnOrder.push(_this10.columnProp(col, 'columnKey') || _this10.columnProp(col, 'field'));\n });\n this.d_columnOrder = columnOrder;\n },\n createStyleElement: function createStyleElement() {\n var _this$$primevue;\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', (_this$$primevue = this.$primevue) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.config) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.csp) === null || _this$$primevue === void 0 ? void 0 : _this$$primevue.nonce);\n document.head.appendChild(this.styleElement);\n },\n destroyStyleElement: function destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n dataToRender: function dataToRender(data) {\n var _data = data || this.processedData;\n if (_data && this.paginator) {\n var first = this.lazy ? 0 : this.d_first;\n return _data.slice(first, first + this.d_rows);\n }\n return _data;\n },\n getVirtualScrollerRef: function getVirtualScrollerRef() {\n return this.$refs.virtualScroller;\n },\n hasSpacerStyle: function hasSpacerStyle(style) {\n return isNotEmpty(style);\n }\n },\n computed: {\n columns: function columns() {\n var cols = this.d_columns.get(this);\n if (this.reorderableColumns && this.d_columnOrder) {\n var orderedColumns = [];\n var _iterator5 = _createForOfIteratorHelper(this.d_columnOrder),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var columnKey = _step5.value;\n var column = this.findColumnByKey(cols, columnKey);\n if (column && !this.columnProp(column, 'hidden')) {\n orderedColumns.push(column);\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n return [].concat(orderedColumns, _toConsumableArray(cols.filter(function (item) {\n return orderedColumns.indexOf(item) < 0;\n })));\n }\n return cols;\n },\n columnGroups: function columnGroups() {\n return this.d_columnGroups.get(this);\n },\n headerColumnGroup: function headerColumnGroup() {\n var _this$columnGroups,\n _this11 = this;\n return (_this$columnGroups = this.columnGroups) === null || _this$columnGroups === void 0 ? void 0 : _this$columnGroups.find(function (group) {\n return _this11.columnProp(group, 'type') === 'header';\n });\n },\n footerColumnGroup: function footerColumnGroup() {\n var _this$columnGroups2,\n _this12 = this;\n return (_this$columnGroups2 = this.columnGroups) === null || _this$columnGroups2 === void 0 ? void 0 : _this$columnGroups2.find(function (group) {\n return _this12.columnProp(group, 'type') === 'footer';\n });\n },\n hasFilters: function hasFilters() {\n return this.filters && Object.keys(this.filters).length > 0 && this.filters.constructor === Object;\n },\n processedData: function processedData() {\n var _this$virtualScroller;\n var data = this.value || [];\n if (!this.lazy && !((_this$virtualScroller = this.virtualScrollerOptions) !== null && _this$virtualScroller !== void 0 && _this$virtualScroller.lazy)) {\n if (data && data.length) {\n if (this.hasFilters) {\n data = this.filter(data);\n }\n if (this.sorted) {\n if (this.sortMode === 'single') data = this.sortSingle(data);else if (this.sortMode === 'multiple') data = this.sortMultiple(data);\n }\n }\n }\n return data;\n },\n totalRecordsLength: function totalRecordsLength() {\n if (this.lazy) {\n return this.totalRecords;\n } else {\n var data = this.processedData;\n return data ? data.length : 0;\n }\n },\n empty: function empty() {\n var data = this.processedData;\n return !data || data.length === 0;\n },\n paginatorTop: function paginatorTop() {\n return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both');\n },\n paginatorBottom: function paginatorBottom() {\n return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both');\n },\n sorted: function sorted() {\n return this.d_sortField || this.d_multiSortMeta && this.d_multiSortMeta.length > 0;\n },\n allRowsSelected: function allRowsSelected() {\n var _this13 = this;\n if (this.selectAll !== null) {\n return this.selectAll;\n } else {\n var val = this.frozenValue ? [].concat(_toConsumableArray(this.frozenValue), _toConsumableArray(this.processedData)) : this.processedData;\n return isNotEmpty(val) && this.selection && Array.isArray(this.selection) && val.every(function (v) {\n return _this13.selection.some(function (s) {\n return _this13.equals(s, v);\n });\n });\n }\n },\n attributeSelector: function attributeSelector() {\n return UniqueComponentId();\n },\n groupRowSortField: function groupRowSortField() {\n return this.sortMode === 'single' ? this.sortField : this.d_groupRowsSortMeta ? this.d_groupRowsSortMeta.field : null;\n },\n headerFilterButtonProps: function headerFilterButtonProps() {\n return _objectSpread$1(_objectSpread$1({\n filter: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n }, this.filterButtonProps), {}, {\n inline: _objectSpread$1({\n clear: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n }, this.filterButtonProps.inline),\n popover: _objectSpread$1({\n addRule: {\n severity: 'info',\n text: true,\n size: 'small'\n },\n removeRule: {\n severity: 'danger',\n text: true,\n size: 'small'\n },\n apply: {\n size: 'small'\n },\n clear: {\n outlined: true,\n size: 'small'\n }\n }, this.filterButtonProps.popover)\n });\n },\n rowEditButtonProps: function rowEditButtonProps() {\n return _objectSpread$1(_objectSpread$1({}, {\n init: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n save: {\n severity: 'secondary',\n text: true,\n rounded: true\n },\n cancel: {\n severity: 'secondary',\n text: true,\n rounded: true\n }\n }), this.editButtonProps);\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return isEmpty(this.virtualScrollerOptions) || !this.scrollable;\n }\n },\n components: {\n DTPaginator: Paginator,\n DTTableHeader: script$1,\n DTTableBody: script$7,\n DTTableFooter: script$5,\n DTVirtualScroller: VirtualScroller,\n ArrowDownIcon: ArrowDownIcon,\n ArrowUpIcon: ArrowUpIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_DTPaginator = resolveComponent(\"DTPaginator\");\n var _component_DTTableHeader = resolveComponent(\"DTTableHeader\");\n var _component_DTTableBody = resolveComponent(\"DTTableBody\");\n var _component_DTTableFooter = resolveComponent(\"DTTableFooter\");\n var _component_DTVirtualScroller = resolveComponent(\"DTVirtualScroller\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n \"data-scrollselectors\": \".p-datatable-wrapper\"\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\"), _ctx.loading ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('mask')\n }, _ctx.ptm('mask')), [_ctx.$slots.loading ? renderSlot(_ctx.$slots, \"loading\", {\n key: 0\n }) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [_ctx.$slots.loadingicon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.loadingicon), {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('loadingIcon'))\n }, null, 8, [\"class\"])) : _ctx.loadingIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('loadingIcon'), 'pi-spin', _ctx.loadingIcon]\n }, _ctx.ptm('loadingIcon')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 2,\n spin: \"\",\n \"class\": _ctx.cx('loadingIcon')\n }, _ctx.ptm('loadingIcon')), null, 16, [\"class\"]))], 64))], 16)) : createCommentVNode(\"\", true), _ctx.$slots.header ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, \"header\")], 16)) : createCommentVNode(\"\", true), $options.paginatorTop ? (openBlock(), createBlock(_component_DTPaginator, {\n key: 2,\n rows: $data.d_rows,\n first: $data.d_first,\n totalRecords: $options.totalRecordsLength,\n pageLinkSize: _ctx.pageLinkSize,\n template: _ctx.paginatorTemplate,\n rowsPerPageOptions: _ctx.rowsPerPageOptions,\n currentPageReportTemplate: _ctx.currentPageReportTemplate,\n \"class\": normalizeClass(_ctx.cx('pcPaginator', {\n position: 'top'\n })),\n onPage: _cache[0] || (_cache[0] = function ($event) {\n return $options.onPage($event);\n }),\n alwaysShow: _ctx.alwaysShowPaginator,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcPaginator')\n }, createSlots({\n _: 2\n }, [_ctx.$slots.paginatorstart ? {\n name: \"start\",\n fn: withCtx(function () {\n return [renderSlot(_ctx.$slots, \"paginatorstart\")];\n }),\n key: \"0\"\n } : undefined, _ctx.$slots.paginatorend ? {\n name: \"end\",\n fn: withCtx(function () {\n return [renderSlot(_ctx.$slots, \"paginatorend\")];\n }),\n key: \"1\"\n } : undefined, _ctx.$slots.paginatorfirstpagelinkicon ? {\n name: \"firstpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorfirstpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"2\"\n } : undefined, _ctx.$slots.paginatorprevpagelinkicon ? {\n name: \"prevpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorprevpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"3\"\n } : undefined, _ctx.$slots.paginatornextpagelinkicon ? {\n name: \"nextpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatornextpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"4\"\n } : undefined, _ctx.$slots.paginatorlastpagelinkicon ? {\n name: \"lastpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorlastpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"5\"\n } : undefined, _ctx.$slots.paginatorjumptopagedropdownicon ? {\n name: \"jumptopagedropdownicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorjumptopagedropdownicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"6\"\n } : undefined, _ctx.$slots.paginatorrowsperpagedropdownicon ? {\n name: \"rowsperpagedropdownicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorrowsperpagedropdownicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"7\"\n } : undefined]), 1032, [\"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"template\", \"rowsPerPageOptions\", \"currentPageReportTemplate\", \"class\", \"alwaysShow\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('tableContainer'),\n style: [_ctx.sx('tableContainer'), {\n maxHeight: $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }]\n }, _ctx.ptm('tableContainer')), [createVNode(_component_DTVirtualScroller, mergeProps({\n ref: \"virtualScroller\"\n }, _ctx.virtualScrollerOptions, {\n items: $options.processedData,\n columns: $options.columns,\n style: _ctx.scrollHeight !== 'flex' ? {\n height: _ctx.scrollHeight\n } : undefined,\n scrollHeight: _ctx.scrollHeight !== 'flex' ? undefined : '100%',\n disabled: $options.virtualScrollerDisabled,\n loaderDisabled: \"\",\n inline: \"\",\n autoSize: \"\",\n showSpacer: false,\n pt: _ctx.ptm('virtualScroller')\n }), {\n content: withCtx(function (slotProps) {\n return [createElementVNode(\"table\", mergeProps({\n ref: \"table\",\n role: \"table\",\n \"class\": [_ctx.cx('table'), _ctx.tableClass],\n style: [_ctx.tableStyle, slotProps.spacerStyle]\n }, _objectSpread(_objectSpread({}, _ctx.tableProps), _ctx.ptm('table'))), [createVNode(_component_DTTableHeader, {\n columnGroup: $options.headerColumnGroup,\n columns: slotProps.columns,\n rowGroupMode: _ctx.rowGroupMode,\n groupRowsBy: _ctx.groupRowsBy,\n groupRowSortField: $options.groupRowSortField,\n reorderableColumns: _ctx.reorderableColumns,\n resizableColumns: _ctx.resizableColumns,\n allRowsSelected: $options.allRowsSelected,\n empty: $options.empty,\n sortMode: _ctx.sortMode,\n sortField: $data.d_sortField,\n sortOrder: $data.d_sortOrder,\n multiSortMeta: $data.d_multiSortMeta,\n filters: $data.d_filters,\n filtersStore: _ctx.filters,\n filterDisplay: _ctx.filterDisplay,\n filterButtonProps: $options.headerFilterButtonProps,\n filterInputProps: _ctx.filterInputProps,\n first: $data.d_first,\n onColumnClick: _cache[1] || (_cache[1] = function ($event) {\n return $options.onColumnHeaderClick($event);\n }),\n onColumnMousedown: _cache[2] || (_cache[2] = function ($event) {\n return $options.onColumnHeaderMouseDown($event);\n }),\n onFilterChange: $options.onFilterChange,\n onFilterApply: $options.onFilterApply,\n onColumnDragstart: _cache[3] || (_cache[3] = function ($event) {\n return $options.onColumnHeaderDragStart($event);\n }),\n onColumnDragover: _cache[4] || (_cache[4] = function ($event) {\n return $options.onColumnHeaderDragOver($event);\n }),\n onColumnDragleave: _cache[5] || (_cache[5] = function ($event) {\n return $options.onColumnHeaderDragLeave($event);\n }),\n onColumnDrop: _cache[6] || (_cache[6] = function ($event) {\n return $options.onColumnHeaderDrop($event);\n }),\n onColumnResizestart: _cache[7] || (_cache[7] = function ($event) {\n return $options.onColumnResizeStart($event);\n }),\n onCheckboxChange: _cache[8] || (_cache[8] = function ($event) {\n return $options.toggleRowsWithCheckbox($event);\n }),\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"columnGroup\", \"columns\", \"rowGroupMode\", \"groupRowsBy\", \"groupRowSortField\", \"reorderableColumns\", \"resizableColumns\", \"allRowsSelected\", \"empty\", \"sortMode\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"filters\", \"filtersStore\", \"filterDisplay\", \"filterButtonProps\", \"filterInputProps\", \"first\", \"onFilterChange\", \"onFilterApply\", \"unstyled\", \"pt\"]), _ctx.frozenValue ? (openBlock(), createBlock(_component_DTTableBody, {\n key: 0,\n ref: \"frozenBodyRef\",\n value: _ctx.frozenValue,\n frozenRow: true,\n columns: slotProps.columns,\n first: $data.d_first,\n dataKey: _ctx.dataKey,\n selection: _ctx.selection,\n selectionKeys: $data.d_selectionKeys,\n selectionMode: _ctx.selectionMode,\n contextMenu: _ctx.contextMenu,\n contextMenuSelection: _ctx.contextMenuSelection,\n rowGroupMode: _ctx.rowGroupMode,\n groupRowsBy: _ctx.groupRowsBy,\n expandableRowGroups: _ctx.expandableRowGroups,\n rowClass: _ctx.rowClass,\n rowStyle: _ctx.rowStyle,\n editMode: _ctx.editMode,\n compareSelectionBy: _ctx.compareSelectionBy,\n scrollable: _ctx.scrollable,\n expandedRowIcon: _ctx.expandedRowIcon,\n collapsedRowIcon: _ctx.collapsedRowIcon,\n expandedRows: _ctx.expandedRows,\n expandedRowGroups: _ctx.expandedRowGroups,\n editingRows: _ctx.editingRows,\n editingRowKeys: $data.d_editingRowKeys,\n templates: _ctx.$slots,\n editButtonProps: $options.rowEditButtonProps,\n isVirtualScrollerDisabled: true,\n onRowgroupToggle: $options.toggleRowGroup,\n onRowClick: _cache[9] || (_cache[9] = function ($event) {\n return $options.onRowClick($event);\n }),\n onRowDblclick: _cache[10] || (_cache[10] = function ($event) {\n return $options.onRowDblClick($event);\n }),\n onRowRightclick: _cache[11] || (_cache[11] = function ($event) {\n return $options.onRowRightClick($event);\n }),\n onRowTouchend: $options.onRowTouchEnd,\n onRowKeydown: $options.onRowKeyDown,\n onRowMousedown: $options.onRowMouseDown,\n onRowDragstart: _cache[12] || (_cache[12] = function ($event) {\n return $options.onRowDragStart($event);\n }),\n onRowDragover: _cache[13] || (_cache[13] = function ($event) {\n return $options.onRowDragOver($event);\n }),\n onRowDragleave: _cache[14] || (_cache[14] = function ($event) {\n return $options.onRowDragLeave($event);\n }),\n onRowDragend: _cache[15] || (_cache[15] = function ($event) {\n return $options.onRowDragEnd($event);\n }),\n onRowDrop: _cache[16] || (_cache[16] = function ($event) {\n return $options.onRowDrop($event);\n }),\n onRowToggle: _cache[17] || (_cache[17] = function ($event) {\n return $options.toggleRow($event);\n }),\n onRadioChange: _cache[18] || (_cache[18] = function ($event) {\n return $options.toggleRowWithRadio($event);\n }),\n onCheckboxChange: _cache[19] || (_cache[19] = function ($event) {\n return $options.toggleRowWithCheckbox($event);\n }),\n onCellEditInit: _cache[20] || (_cache[20] = function ($event) {\n return $options.onCellEditInit($event);\n }),\n onCellEditComplete: _cache[21] || (_cache[21] = function ($event) {\n return $options.onCellEditComplete($event);\n }),\n onCellEditCancel: _cache[22] || (_cache[22] = function ($event) {\n return $options.onCellEditCancel($event);\n }),\n onRowEditInit: _cache[23] || (_cache[23] = function ($event) {\n return $options.onRowEditInit($event);\n }),\n onRowEditSave: _cache[24] || (_cache[24] = function ($event) {\n return $options.onRowEditSave($event);\n }),\n onRowEditCancel: _cache[25] || (_cache[25] = function ($event) {\n return $options.onRowEditCancel($event);\n }),\n editingMeta: $data.d_editingMeta,\n onEditingMetaChange: $options.onEditingMetaChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"value\", \"columns\", \"first\", \"dataKey\", \"selection\", \"selectionKeys\", \"selectionMode\", \"contextMenu\", \"contextMenuSelection\", \"rowGroupMode\", \"groupRowsBy\", \"expandableRowGroups\", \"rowClass\", \"rowStyle\", \"editMode\", \"compareSelectionBy\", \"scrollable\", \"expandedRowIcon\", \"collapsedRowIcon\", \"expandedRows\", \"expandedRowGroups\", \"editingRows\", \"editingRowKeys\", \"templates\", \"editButtonProps\", \"onRowgroupToggle\", \"onRowTouchend\", \"onRowKeydown\", \"onRowMousedown\", \"editingMeta\", \"onEditingMetaChange\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), createVNode(_component_DTTableBody, {\n ref: \"bodyRef\",\n value: $options.dataToRender(slotProps.rows),\n \"class\": normalizeClass(slotProps.styleClass),\n columns: slotProps.columns,\n empty: $options.empty,\n first: $data.d_first,\n dataKey: _ctx.dataKey,\n selection: _ctx.selection,\n selectionKeys: $data.d_selectionKeys,\n selectionMode: _ctx.selectionMode,\n contextMenu: _ctx.contextMenu,\n contextMenuSelection: _ctx.contextMenuSelection,\n rowGroupMode: _ctx.rowGroupMode,\n groupRowsBy: _ctx.groupRowsBy,\n expandableRowGroups: _ctx.expandableRowGroups,\n rowClass: _ctx.rowClass,\n rowStyle: _ctx.rowStyle,\n editMode: _ctx.editMode,\n compareSelectionBy: _ctx.compareSelectionBy,\n scrollable: _ctx.scrollable,\n expandedRowIcon: _ctx.expandedRowIcon,\n collapsedRowIcon: _ctx.collapsedRowIcon,\n expandedRows: _ctx.expandedRows,\n expandedRowGroups: _ctx.expandedRowGroups,\n editingRows: _ctx.editingRows,\n editingRowKeys: $data.d_editingRowKeys,\n templates: _ctx.$slots,\n editButtonProps: $options.rowEditButtonProps,\n virtualScrollerContentProps: slotProps,\n isVirtualScrollerDisabled: $options.virtualScrollerDisabled,\n onRowgroupToggle: $options.toggleRowGroup,\n onRowClick: _cache[26] || (_cache[26] = function ($event) {\n return $options.onRowClick($event);\n }),\n onRowDblclick: _cache[27] || (_cache[27] = function ($event) {\n return $options.onRowDblClick($event);\n }),\n onRowRightclick: _cache[28] || (_cache[28] = function ($event) {\n return $options.onRowRightClick($event);\n }),\n onRowTouchend: $options.onRowTouchEnd,\n onRowKeydown: function onRowKeydown($event) {\n return $options.onRowKeyDown($event, slotProps);\n },\n onRowMousedown: $options.onRowMouseDown,\n onRowDragstart: _cache[29] || (_cache[29] = function ($event) {\n return $options.onRowDragStart($event);\n }),\n onRowDragover: _cache[30] || (_cache[30] = function ($event) {\n return $options.onRowDragOver($event);\n }),\n onRowDragleave: _cache[31] || (_cache[31] = function ($event) {\n return $options.onRowDragLeave($event);\n }),\n onRowDragend: _cache[32] || (_cache[32] = function ($event) {\n return $options.onRowDragEnd($event);\n }),\n onRowDrop: _cache[33] || (_cache[33] = function ($event) {\n return $options.onRowDrop($event);\n }),\n onRowToggle: _cache[34] || (_cache[34] = function ($event) {\n return $options.toggleRow($event);\n }),\n onRadioChange: _cache[35] || (_cache[35] = function ($event) {\n return $options.toggleRowWithRadio($event);\n }),\n onCheckboxChange: _cache[36] || (_cache[36] = function ($event) {\n return $options.toggleRowWithCheckbox($event);\n }),\n onCellEditInit: _cache[37] || (_cache[37] = function ($event) {\n return $options.onCellEditInit($event);\n }),\n onCellEditComplete: _cache[38] || (_cache[38] = function ($event) {\n return $options.onCellEditComplete($event);\n }),\n onCellEditCancel: _cache[39] || (_cache[39] = function ($event) {\n return $options.onCellEditCancel($event);\n }),\n onRowEditInit: _cache[40] || (_cache[40] = function ($event) {\n return $options.onRowEditInit($event);\n }),\n onRowEditSave: _cache[41] || (_cache[41] = function ($event) {\n return $options.onRowEditSave($event);\n }),\n onRowEditCancel: _cache[42] || (_cache[42] = function ($event) {\n return $options.onRowEditCancel($event);\n }),\n editingMeta: $data.d_editingMeta,\n onEditingMetaChange: $options.onEditingMetaChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"value\", \"class\", \"columns\", \"empty\", \"first\", \"dataKey\", \"selection\", \"selectionKeys\", \"selectionMode\", \"contextMenu\", \"contextMenuSelection\", \"rowGroupMode\", \"groupRowsBy\", \"expandableRowGroups\", \"rowClass\", \"rowStyle\", \"editMode\", \"compareSelectionBy\", \"scrollable\", \"expandedRowIcon\", \"collapsedRowIcon\", \"expandedRows\", \"expandedRowGroups\", \"editingRows\", \"editingRowKeys\", \"templates\", \"editButtonProps\", \"virtualScrollerContentProps\", \"isVirtualScrollerDisabled\", \"onRowgroupToggle\", \"onRowTouchend\", \"onRowKeydown\", \"onRowMousedown\", \"editingMeta\", \"onEditingMetaChange\", \"unstyled\", \"pt\"]), $options.hasSpacerStyle(slotProps.spacerStyle) ? (openBlock(), createElementBlock(\"tbody\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('virtualScrollerSpacer'),\n style: {\n height: \"calc(\".concat(slotProps.spacerStyle.height, \" - \").concat(slotProps.rows.length * slotProps.itemSize, \"px)\")\n }\n }, _ctx.ptm('virtualScrollerSpacer')), null, 16)) : createCommentVNode(\"\", true), createVNode(_component_DTTableFooter, {\n columnGroup: $options.footerColumnGroup,\n columns: slotProps.columns,\n pt: _ctx.pt\n }, null, 8, [\"columnGroup\", \"columns\", \"pt\"])], 16)];\n }),\n _: 1\n }, 16, [\"items\", \"columns\", \"style\", \"scrollHeight\", \"disabled\", \"pt\"])], 16), $options.paginatorBottom ? (openBlock(), createBlock(_component_DTPaginator, {\n key: 3,\n rows: $data.d_rows,\n first: $data.d_first,\n totalRecords: $options.totalRecordsLength,\n pageLinkSize: _ctx.pageLinkSize,\n template: _ctx.paginatorTemplate,\n rowsPerPageOptions: _ctx.rowsPerPageOptions,\n currentPageReportTemplate: _ctx.currentPageReportTemplate,\n \"class\": normalizeClass(_ctx.cx('pcPaginator', {\n position: 'bottom'\n })),\n onPage: _cache[43] || (_cache[43] = function ($event) {\n return $options.onPage($event);\n }),\n alwaysShow: _ctx.alwaysShowPaginator,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcPaginator')\n }, createSlots({\n _: 2\n }, [_ctx.$slots.paginatorstart ? {\n name: \"start\",\n fn: withCtx(function () {\n return [renderSlot(_ctx.$slots, \"paginatorstart\")];\n }),\n key: \"0\"\n } : undefined, _ctx.$slots.paginatorend ? {\n name: \"end\",\n fn: withCtx(function () {\n return [renderSlot(_ctx.$slots, \"paginatorend\")];\n }),\n key: \"1\"\n } : undefined, _ctx.$slots.paginatorfirstpagelinkicon ? {\n name: \"firstpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorfirstpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"2\"\n } : undefined, _ctx.$slots.paginatorprevpagelinkicon ? {\n name: \"prevpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorprevpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"3\"\n } : undefined, _ctx.$slots.paginatornextpagelinkicon ? {\n name: \"nextpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatornextpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"4\"\n } : undefined, _ctx.$slots.paginatorlastpagelinkicon ? {\n name: \"lastpagelinkicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorlastpagelinkicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"5\"\n } : undefined, _ctx.$slots.paginatorjumptopagedropdownicon ? {\n name: \"jumptopagedropdownicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorjumptopagedropdownicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"6\"\n } : undefined, _ctx.$slots.paginatorrowsperpagedropdownicon ? {\n name: \"rowsperpagedropdownicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"paginatorrowsperpagedropdownicon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"7\"\n } : undefined]), 1032, [\"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"template\", \"rowsPerPageOptions\", \"currentPageReportTemplate\", \"class\", \"alwaysShow\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), _ctx.$slots.footer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 4,\n \"class\": _ctx.cx('footer')\n }, _ctx.ptm('footer')), [renderSlot(_ctx.$slots, \"footer\")], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n ref: \"resizeHelper\",\n \"class\": _ctx.cx('columnResizeIndicator'),\n style: {\n \"display\": \"none\"\n }\n }, _ctx.ptm('columnResizeIndicator')), null, 16), _ctx.reorderableColumns ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 5,\n ref: \"reorderIndicatorUp\",\n \"class\": _ctx.cx('rowReorderIndicatorUp'),\n style: {\n \"position\": \"absolute\",\n \"display\": \"none\"\n }\n }, _ctx.ptm('rowReorderIndicatorUp')), [(openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.rowreorderindicatorupicon || _ctx.$slots.reorderindicatorupicon || 'ArrowDownIcon')))], 16)) : createCommentVNode(\"\", true), _ctx.reorderableColumns ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 6,\n ref: \"reorderIndicatorDown\",\n \"class\": _ctx.cx('rowReorderIndicatorDown'),\n style: {\n \"position\": \"absolute\",\n \"display\": \"none\"\n }\n }, _ctx.ptm('rowReorderIndicatorDown')), [(openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.rowreorderindicatordownicon || _ctx.$slots.reorderindicatordownicon || 'ArrowUpIcon')))], 16)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar ColumnStyle = BaseStyle.extend({\n name: 'column'\n});\n\nexport { ColumnStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ColumnStyle from 'primevue/column/style';\n\nvar script$1 = {\n name: 'BaseColumn',\n \"extends\": BaseComponent,\n props: {\n columnKey: {\n type: null,\n \"default\": null\n },\n field: {\n type: [String, Function],\n \"default\": null\n },\n sortField: {\n type: [String, Function],\n \"default\": null\n },\n filterField: {\n type: [String, Function],\n \"default\": null\n },\n dataType: {\n type: String,\n \"default\": 'text'\n },\n sortable: {\n type: Boolean,\n \"default\": false\n },\n header: {\n type: null,\n \"default\": null\n },\n footer: {\n type: null,\n \"default\": null\n },\n style: {\n type: null,\n \"default\": null\n },\n \"class\": {\n type: String,\n \"default\": null\n },\n headerStyle: {\n type: null,\n \"default\": null\n },\n headerClass: {\n type: String,\n \"default\": null\n },\n bodyStyle: {\n type: null,\n \"default\": null\n },\n bodyClass: {\n type: String,\n \"default\": null\n },\n footerStyle: {\n type: null,\n \"default\": null\n },\n footerClass: {\n type: String,\n \"default\": null\n },\n showFilterMenu: {\n type: Boolean,\n \"default\": true\n },\n showFilterOperator: {\n type: Boolean,\n \"default\": true\n },\n showClearButton: {\n type: Boolean,\n \"default\": true\n },\n showApplyButton: {\n type: Boolean,\n \"default\": true\n },\n showFilterMatchModes: {\n type: Boolean,\n \"default\": true\n },\n showAddButton: {\n type: Boolean,\n \"default\": true\n },\n filterMatchModeOptions: {\n type: Array,\n \"default\": null\n },\n maxConstraints: {\n type: Number,\n \"default\": 2\n },\n excludeGlobalFilter: {\n type: Boolean,\n \"default\": false\n },\n filterHeaderClass: {\n type: String,\n \"default\": null\n },\n filterHeaderStyle: {\n type: null,\n \"default\": null\n },\n filterMenuClass: {\n type: String,\n \"default\": null\n },\n filterMenuStyle: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n expander: {\n type: Boolean,\n \"default\": false\n },\n colspan: {\n type: Number,\n \"default\": null\n },\n rowspan: {\n type: Number,\n \"default\": null\n },\n rowReorder: {\n type: Boolean,\n \"default\": false\n },\n rowReorderIcon: {\n type: String,\n \"default\": undefined\n },\n reorderableColumn: {\n type: Boolean,\n \"default\": true\n },\n rowEditor: {\n type: Boolean,\n \"default\": false\n },\n frozen: {\n type: Boolean,\n \"default\": false\n },\n alignFrozen: {\n type: String,\n \"default\": 'left'\n },\n exportable: {\n type: Boolean,\n \"default\": true\n },\n exportHeader: {\n type: String,\n \"default\": null\n },\n exportFooter: {\n type: String,\n \"default\": null\n },\n filterMatchMode: {\n type: String,\n \"default\": null\n },\n hidden: {\n type: Boolean,\n \"default\": false\n }\n },\n style: ColumnStyle,\n provide: function provide() {\n return {\n $pcColumn: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Column',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$columns'],\n mounted: function mounted() {\n var _this$$columns;\n (_this$$columns = this.$columns) === null || _this$$columns === void 0 || _this$$columns.add(this.$);\n },\n unmounted: function unmounted() {\n var _this$$columns2;\n (_this$$columns2 = this.$columns) === null || _this$$columns2 === void 0 || _this$$columns2[\"delete\"](this.$);\n },\n render: function render() {\n return null;\n }\n};\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n"],"names":["script","BaseIcon","_hoisted_1","createElementVNode","_hoisted_2","render","_typeof","o","_defineProperty","_toPropertyKey","_toPrimitive","theme","classes","script$a","BaseComponent","script$9","text","render$9","script$8","AngleDoubleLeftIcon","render$8","script$7","Select","render$7","script$6","page","onChange","InputNumber","render$6","script$5","getPTOptions","AngleDoubleRightIcon","render$5","script$4","AngleRightIcon","render$4","script$3","event","render$3","onClick","script$2","AngleLeftIcon","render$2","script$1","render$1","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","r","data","first","key","pageLinks","root","provide","_hoisted_3","_hoisted_4","_hoisted_5","_default","CheckIcon","Checkbox","getColumnPT","getColumnProp","RadioButton","mounted","next","prev","Button","ChevronDownIcon","ChevronRightIcon","BarsIcon","PencilIcon","TimesIcon","F","e","columnProp","field","data2","onRowEditInit","onRowEditSave","onRowEditCancel","getVirtualScrollerProp","updated","rowIndex","updateStickyPosition","containerClass","containerStyle","HelperSet","beforeUnmount","row","hasFooter","filter","Portal","FilterSlashIcon","FilterIcon","TrashIcon","PlusIcon","onKeyDown","sorted","sortOrder","SortAltIcon","SortAmountUpAltIcon","SortAmountDownIcon","Badge","getColumnGroupPT","getColumnGroupProps","getRowPT","getRowProp","rows","handler","removeEmptyFilters","filterValidEntries","filterConstraint","onRowClick","onRowDblClick","onRowRightClick","onRowTouchEnd","onRowKeyDown","toggleRowWithRadio","toggleRowWithCheckbox","checked","isSelected","findIndexInSelection","findIndex","equals$1","updateTableWidth","isSameColumn","columns","onRowMouseDown","onRowDragStart","onRowDragOver","onRowDragLeave","onRowDragEnd","onRowDrop","processedData","toggleRow","isRowGroupExpanded","reviver","onCellEditInit","onCellEditComplete","onCellEditCancel","onEditingMetaChange","editing","empty","attributeSelector","Paginator","VirtualScroller","ArrowDownIcon","ArrowUpIcon","SpinnerIcon"],"mappings":";;;;AAGA,IAAIA,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACtBhB,IAAIL,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACvBhB,SAASC,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUC,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAID,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASE,kBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3KD;AACT,SAASC,iBAAe,GAAG;AAAE,MAAI,IAAIC,eAAa,GAAG,QAAQ;AAAG,SAAO,YAAYJ,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGG;AACT,SAASC,eAAa,GAAG,GAAG;AAAE,MAAI,YAAYJ,UAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAYA,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnTI;AACT,IAAIC,UAAQ,gCAAS,MAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,uIAAuI,OAAO,GAAG,sBAAsB,GAAG,gBAAgB,EAAE,OAAO,GAAG,iBAAiB,GAAG,kBAAkB,EAAE,OAAO,GAAG,mBAAmB,GAAG,wBAAwB,EAAE,OAAO,GAAG,yBAAyB,GAAG,cAAc,EAAE,OAAO,GAAG,eAAe,GAAG,6IAA6I,EAAE,OAAO,GAAG,eAAe,GAAG,2bAA2b,EAAE,OAAO,GAAG,iCAAiC,GAAG,qCAAqC,EAAE,OAAO,GAAG,4BAA4B,GAAG,oBAAoB,EAAE,OAAO,GAAG,4BAA4B,GAAG,iBAAiB,EAAE,OAAO,GAAG,6BAA6B,GAAG,gCAAgC,EAAE,OAAO,GAAG,+BAA+B,GAAG,UAAU,EAAE,OAAO,GAAG,+BAA+B,GAAG,kBAAkB,EAAE,OAAO,GAAG,+BAA+B,GAAG,eAAe,EAAE,OAAO,GAAG,+BAA+B,GAAG,wBAAwB,EAAE,OAAO,GAAG,oCAAoC,GAAG,uOAAuO,EAAE,OAAO,GAAG,wCAAwC,GAAG,kBAAkB,EAAE,OAAO,GAAG,uCAAuC,GAAG,GAAG,EAAE,OAAO,GAAG,uCAAuC,GAAG,GAAG,EAAE,OAAO,GAAG,uCAAuC,GAAG,yBAAyB,EAAE,OAAO,GAAG,wCAAwC,GAAG,mRAAmR,EAAE,OAAO,GAAG,uCAAuC,GAAG,gBAAgB,EAAE,OAAO,GAAG,kCAAkC,GAAG,yEAAyE,EAAE,OAAO,GAAG,0CAA0C,GAAG,gBAAgB,EAAE,OAAO,GAAG,qCAAqC,GAAG,6CAA6C,EAAE,OAAO,GAAG,qCAAqC,GAAG,uFAAuF,EAAE,OAAO,GAAG,eAAe,GAAG,gEAAgE,EAAE,OAAO,GAAG,wCAAwC,GAAG,QAAQ;AAChgG,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,WAAW,gCAAS,UAAU,OAAO;AACnC,QAAI,WAAW,MAAM,UACnB,MAAM,MAAM;AACd,WAAO,CAAC,2BAA2BJ,kBAAgB;AAAA,MACjD,uBAAuB,CAAC,SAAS,eAAgB;AAAA,IACvD,GAAO,eAAe,OAAO,GAAG,GAAG,SAAS,eAAgB,CAAA,CAAC;AAAA,EAC1D,GANU;AAAA,EAOX,SAAS;AAAA,EACT,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,OAAO,gCAAS,MAAM,OAAO;AAC3B,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,qBAAqB;AAAA,MAC3B,cAAc,SAAS,OAAO;AAAA,IACpC,CAAK;AAAA,EACF,GALM;AAAA,EAMP,WAAW;AAAA,EACX,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,oBAAoB;AAAA,MAC1B,cAAc,SAAS,OAAO;AAAA,IACpC,CAAK;AAAA,EACF,GALK;AAAA,EAMN,UAAU;AAAA,EACV,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,oBAAoB;AAAA,MAC1B,cAAc,SAAS,OAAO;AAAA,IACpC,CAAK;AAAA,EACF,GALK;AAAA,EAMN,UAAU;AAAA,EACV,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,oBAAoB;AAAA,MAC1B,cAAc,SAAS,OAAO;AAAA,IACpC,CAAK;AAAA,EACF,GALK;AAAA,EAMN,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAI,QAAQ,MAAM,OAChB,WAAW,MAAM;AACnB,WAAO,CAAC,oBAAoB;AAAA,MAC1B,6BAA6B,WAAW,MAAM,MAAM;AAAA,IAC1D,CAAK;AAAA,EACF,GANK;AAAA,EAON,SAAS;AAAA,EACT,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,mBAAmB;AACrB;AACA,IAAI,iBAAiB,UAAU,OAAO;AAAA,EACpC,MAAM;AAAA,EACN,OAAOG;AAAAA,EACP,SAASC;AACX,CAAC;AC/DD,IAAIZ,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACtBhB,IAAIL,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACtBhB,IAAIL,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACVhB,IAAIQ,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWC;AAAAA,EACX,OAAO;AAAA,IACL,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,2BAA2B;AAAA,MACzB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAAS,UAAU;AAC1B,WAAO;AAAA,MACL,cAAc;AAAA,MACd,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWD;AAAAA,EACX,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,MAAM,gCAAS,OAAO;AACpB,UAAIE,QAAO,KAAK,SAAS,QAAQ,iBAAiB,KAAK,WAAW,EAAE,QAAQ,gBAAgB,KAAK,SAAS,EAAE,QAAQ,WAAW,KAAK,YAAY,IAAI,KAAK,QAAQ,IAAI,CAAC,EAAE,QAAQ,UAAU,KAAK,IAAI,KAAK,QAAQ,KAAK,MAAM,KAAK,YAAY,CAAC,EAAE,QAAQ,UAAU,KAAK,IAAI,EAAE,QAAQ,kBAAkB,KAAK,YAAY;AACvT,aAAOA;AAAA,IACR,GAHK;AAAA,EAIP;AACH;AAEA,SAASC,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,SAAO,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,IACxD,SAAS,KAAK,GAAG,SAAS;AAAA,EAC9B,GAAK,KAAK,IAAI,SAAS,CAAC,GAAG,gBAAgB,SAAS,IAAI,GAAG,EAAE;AAC7D;AAJSA;AAMTF,WAAS,SAASE;AAElB,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWJ;AAAAA,EACX,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,cAAc,gCAAS,aAAa,KAAK;AACvC,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,UAAU,KAAK,OAAO;AAAA,QACvB;AAAA,MACT,CAAO;AAAA,IACF,GANa;AAAA,EAOf;AAAA,EACD,YAAY;AAAA,IACV,qBAAqBK;AAAAA,EACtB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAASC,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,gBAAgB,UAAS,GAAI,mBAAmB,UAAU,WAAW;AAAA,IAC1E,SAAS,KAAK,GAAG,OAAO;AAAA,IACxB,MAAM;AAAA,EACV,GAAK,SAAS,aAAa,OAAO,GAAG;AAAA,IACjC,yBAAyB;AAAA,EAC7B,CAAG,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,YAAY,qBAAqB,GAAG,WAAW;AAAA,IAC3G,SAAS,KAAK,GAAG,WAAW;AAAA,EAChC,GAAK,SAAS,aAAa,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,GAAI,EAAE,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC7F;AAVSA;AAYTF,WAAS,SAASE;AAElB,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWP;AAAAA,EACX,OAAO,CAAC,aAAa;AAAA,EACrB,OAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,EACZ;AAAA,EACD,SAAS;AAAA,IACP,UAAU,gCAAS,SAAS,OAAO;AACjC,WAAK,MAAM,eAAe,KAAK;AAAA,IAChC,GAFS;AAAA,EAGX;AAAA,EACD,UAAU;AAAA,IACR,aAAa,gCAAS,cAAc;AAClC,UAAI,OAAO,CAAA;AACX,eAAS,IAAI,GAAG,IAAI,KAAK,WAAW,KAAK;AACvC,aAAK,KAAK;AAAA,UACR,OAAO,OAAO,IAAI,CAAC;AAAA,UACnB,OAAO;AAAA,QACjB,CAAS;AAAA,MACF;AACD,aAAO;AAAA,IACR,GATY;AAAA,EAUd;AAAA,EACD,YAAY;AAAA,IACV,WAAWQ;AAAAA,EACZ;AACH;AAEA,SAASC,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,SAAO,UAAS,GAAI,YAAY,sBAAsB;AAAA,IACpD,YAAY,OAAO;AAAA,IACnB,SAAS,SAAS;AAAA,IAClB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,uBAAuB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACjE,aAAO,SAAS,SAAS,MAAM;AAAA,IACrC;AAAA,IACI,SAAS,eAAe,KAAK,GAAG,sBAAsB,CAAC;AAAA,IACvD,UAAU,OAAO;AAAA,IACjB,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,sBAAsB;AAAA,IACnC,yBAAyB;AAAA,EAC1B,GAAE,YAAY;AAAA,IACb,GAAG;AAAA,EACJ,GAAE,CAAC,OAAO,UAAU,wBAAwB,IAAI;AAAA,IAC/C,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,wBAAwB,CAAC,GAAG;AAAA,QACrG,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,GAAE,MAAM,GAAG,CAAC,OAAO,CAAC,EAAC;AAAA,IAC5B,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,cAAc,WAAW,SAAS,YAAY,YAAY,IAAI,CAAC;AACzF;AA1BSA;AA4BTF,WAAS,SAASE;AAElB,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWV;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,aAAa;AAAA,EACrB,OAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EACX;AAAA,EACD,MAAM,gCAAS,OAAO;AACpB,WAAO;AAAA,MACL,QAAQ,KAAK;AAAA,IACnB;AAAA,EACG,GAJK;AAAA,EAKN,OAAO;AAAA,IACL,MAAM,gCAASW,MAAK,UAAU;AAC5B,WAAK,SAAS;AAAA,IACf,GAFK;AAAA,EAGP;AAAA,EACD,SAAS;AAAA,IACP,UAAU,gCAASC,UAAS,OAAO;AACjC,UAAI,UAAU,KAAK,MAAM;AACvB,aAAK,SAAS;AACd,aAAK,MAAM,eAAe,QAAQ,CAAC;AAAA,MACpC;AAAA,IACF,GALS;AAAA,EAMX;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,uBAAuB;AAAA,IACrG,GAFe;AAAA,EAGjB;AAAA,EACD,YAAY;AAAA,IACV,UAAUC;AAAAA,EACX;AACH;AAEA,SAASC,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,sBAAsB,iBAAiB,UAAU;AACrD,SAAO,UAAS,GAAI,YAAY,qBAAqB;AAAA,IACnD,KAAK;AAAA,IACL,YAAY,MAAM;AAAA,IAClB,SAAS,eAAe,KAAK,GAAG,mBAAmB,CAAC;AAAA,IACpD,cAAc,SAAS;AAAA,IACvB,UAAU,OAAO;AAAA,IACjB,uBAAuB,SAAS;AAAA,IAChC,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,mBAAmB;AAAA,EACjC,GAAE,MAAM,GAAG,CAAC,cAAc,SAAS,cAAc,YAAY,uBAAuB,YAAY,IAAI,CAAC;AACxG;AAZSA;AAcTJ,WAAS,SAASI;AAElB,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWf;AAAAA,EACX,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,cAAc,gCAASgB,cAAa,KAAK;AACvC,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,UAAU,KAAK,OAAO;AAAA,QACvB;AAAA,MACT,CAAO;AAAA,IACF,GANa;AAAA,EAOf;AAAA,EACD,YAAY;AAAA,IACV,sBAAsBC;AAAAA,EACvB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAASC,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,gBAAgB,UAAS,GAAI,mBAAmB,UAAU,WAAW;AAAA,IAC1E,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,MAAM;AAAA,EACV,GAAK,SAAS,aAAa,MAAM,GAAG;AAAA,IAChC,yBAAyB;AAAA,EAC7B,CAAG,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,YAAY,sBAAsB,GAAG,WAAW;AAAA,IAC5G,SAAS,KAAK,GAAG,UAAU;AAAA,EAC/B,GAAK,SAAS,aAAa,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,GAAI,EAAE,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC5F;AAVSA;AAYTH,WAAS,SAASG;AAElB,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWnB;AAAAA,EACX,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,cAAc,gCAASgB,cAAa,KAAK;AACvC,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,UAAU,KAAK,OAAO;AAAA,QACvB;AAAA,MACT,CAAO;AAAA,IACF,GANa;AAAA,EAOf;AAAA,EACD,YAAY;AAAA,IACV,gBAAgBI;AAAAA,EACjB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAASC,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,gBAAgB,UAAS,GAAI,mBAAmB,UAAU,WAAW;AAAA,IAC1E,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,MAAM;AAAA,EACV,GAAK,SAAS,aAAa,MAAM,GAAG;AAAA,IAChC,yBAAyB;AAAA,EAC7B,CAAG,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,YAAY,gBAAgB,GAAG,WAAW;AAAA,IACtG,SAAS,KAAK,GAAG,UAAU;AAAA,EAC/B,GAAK,SAAS,aAAa,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,GAAI,EAAE,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC5F;AAVSA;AAYTF,WAAS,SAASE;AAElB,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWtB;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,OAAO;AAAA,EACf,OAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACD,SAAS;AAAA,IACP,cAAc,gCAASgB,cAAa,UAAU,KAAK;AACjD,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,QAAQ,aAAa,KAAK;AAAA,QAC3B;AAAA,MACT,CAAO;AAAA,IACF,GANa;AAAA,IAOd,iBAAiB,gCAAS,gBAAgBO,QAAO,UAAU;AACzD,WAAK,MAAM,SAAS;AAAA,QAClB,eAAeA;AAAA,QACf,OAAO;AAAA,MACf,CAAO;AAAA,IACF,GALgB;AAAA,IAMjB,eAAe,gCAAS,cAAc,OAAO;AAC3C,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,UAAU,QAAQ,WAAW,KAAK,IAAI;AAAA,IACpH,GAFc;AAAA,EAGhB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAInC,eAAa,CAAC,cAAc,gBAAgB,WAAW,eAAe;AAC1E,SAASoC,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,IACxD,SAAS,KAAK,GAAG,OAAO;AAAA,EAC5B,GAAK,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,OAAO,SAAU,UAAU;AACxH,WAAO,gBAAgB,UAAS,GAAI,mBAAmB,UAAU,WAAW;AAAA,MAC1E,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,QAAQ;AAAA,QACvB;AAAA,MACR,CAAO;AAAA,MACD,MAAM;AAAA,MACN,cAAc,SAAS,cAAc,QAAQ;AAAA,MAC7C,gBAAgB,WAAW,MAAM,OAAO,OAAO,SAAS;AAAA,MACxD,SAAS,gCAASC,SAAQ,QAAQ;AAChC,eAAO,SAAS,gBAAgB,QAAQ,QAAQ;AAAA,MACjD,GAFQ;AAAA,MAGT,SAAS;AAAA,IACV,GAAE,SAAS,aAAa,WAAW,GAAG,MAAM,GAAG;AAAA,MAC9C,iBAAiB,WAAW,MAAM,OAAO;AAAA,IAC1C,CAAA,GAAG,CAAC,gBAAgB,gBAAgB,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAIrC,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAAA,EAC7F,CAAA,GAAG,GAAG,KAAK,EAAE;AAChB;AArBSoC;AAuBTF,WAAS,SAASE;AAElB,IAAIE,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW1B;AAAAA,EACX,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,cAAc,gCAASgB,cAAa,KAAK;AACvC,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,UAAU,KAAK,OAAO;AAAA,QACvB;AAAA,MACT,CAAO;AAAA,IACF,GANa;AAAA,EAOf;AAAA,EACD,YAAY;AAAA,IACV,eAAeW;AAAAA,EAChB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAASC,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,gBAAgB,UAAS,GAAI,mBAAmB,UAAU,WAAW;AAAA,IAC1E,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,MAAM;AAAA,EACV,GAAK,SAAS,aAAa,MAAM,GAAG;AAAA,IAChC,yBAAyB;AAAA,EAC7B,CAAG,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,YAAY,eAAe,GAAG,WAAW;AAAA,IACrG,SAAS,KAAK,GAAG,UAAU;AAAA,EAC/B,GAAK,SAAS,aAAa,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,GAAI,EAAE,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC5F;AAVSA;AAYTF,WAAS,SAASE;AAElB,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW7B;AAAAA,EACX,OAAO,CAAC,aAAa;AAAA,EACrB,OAAO;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,WAAW;AAAA,EACZ;AAAA,EACD,SAAS;AAAA,IACP,UAAU,gCAASY,UAAS,OAAO;AACjC,WAAK,MAAM,eAAe,KAAK;AAAA,IAChC,GAFS;AAAA,EAGX;AAAA,EACD,UAAU;AAAA,IACR,aAAa,gCAAS,cAAc;AAClC,UAAI,OAAO,CAAA;AACX,UAAI,KAAK,SAAS;AAChB,iBAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,QAAQ,KAAK;AAC5C,eAAK,KAAK;AAAA,YACR,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC;AAAA,YAC7B,OAAO,KAAK,QAAQ,CAAC;AAAA,UACjC,CAAW;AAAA,QACF;AAAA,MACF;AACD,aAAO;AAAA,IACR,GAXY;AAAA,EAYd;AAAA,EACD,YAAY;AAAA,IACV,WAAWJ;AAAAA,EACZ;AACH;AAEA,SAASsB,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,SAAO,UAAS,GAAI,YAAY,sBAAsB;AAAA,IACpD,YAAY,OAAO;AAAA,IACnB,SAAS,SAAS;AAAA,IAClB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,uBAAuB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACjE,aAAO,SAAS,SAAS,MAAM;AAAA,IACrC;AAAA,IACI,SAAS,eAAe,KAAK,GAAG,sBAAsB,CAAC;AAAA,IACvD,UAAU,OAAO;AAAA,IACjB,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,sBAAsB;AAAA,IACnC,yBAAyB;AAAA,EAC1B,GAAE,YAAY;AAAA,IACb,GAAG;AAAA,EACJ,GAAE,CAAC,OAAO,UAAU,yBAAyB,IAAI;AAAA,IAChD,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,yBAAyB,CAAC,GAAG;AAAA,QACtG,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,GAAE,MAAM,GAAG,CAAC,OAAO,CAAC,EAAC;AAAA,IAC5B,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,cAAc,WAAW,SAAS,YAAY,YAAY,IAAI,CAAC;AACzF;AA1BSA;AA4BTD,WAAS,SAASC;AAElB,SAASC,qBAAmB,GAAG;AAAE,SAAOC,qBAAmB,CAAC,KAAKC,mBAAiB,CAAC,KAAKC,8BAA4B,CAAC,KAAKC,qBAAoB;AAAG;AAAxIJ;AACT,SAASI,uBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArLA;AACT,SAASF,mBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxIA;AACT,SAASD,qBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOI,oBAAkB,CAAC;AAAI;AAA5EJ;AACT,SAASxC,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUC,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAID,UAAQ,CAAC;AAAI;AAArTA;AACT,SAAS6C,iBAAe,GAAG,GAAG;AAAE,SAAOC,kBAAgB,CAAC,KAAKC,wBAAsB,GAAG,CAAC,KAAKL,8BAA4B,GAAG,CAAC,KAAKM,mBAAgB;AAAK;AAA7IH;AACT,SAASG,qBAAmB;AAAE,QAAM,IAAI,UAAU,2IAA2I;AAAI;AAAxLA;AACT,SAASN,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOE,oBAAkB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXF;AACT,SAASE,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA3IA;AACT,SAASG,wBAAsB,GAAG,GAAG;AAAE,MAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,QAAQ,GAAG;AAAE,QAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAE,GAAE,IAAI,MAAI,IAAI;AAAI,QAAI;AAAE,UAAI,KAAK,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,MAAM,GAAG;AAAE,YAAI,OAAO,CAAC,MAAM,EAAG;AAAQ,YAAI;AAAA,MAAK,MAAM,QAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,KAAG;AAAA,aAAWE,IAAG;AAAE,UAAI,MAAI,IAAIA;AAAA,IAAE;AAAa,UAAI;AAAE,YAAI,CAAC,KAAK,QAAQ,EAAE,QAAQ,MAAM,IAAI,EAAE,QAAQ,EAAG,GAAE,OAAO,CAAC,MAAM,GAAI;AAAA,MAAS,UAAA;AAAW,YAAI,EAAG,OAAM;AAAA,MAAI;AAAA,IAAA;AAAG,WAAO;AAAA,EAAE;AAAI;AAAjhBF;AACT,SAASD,kBAAgB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAO;AAAI;AAAtDA;AACT,IAAIpD,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWa;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,gBAAgB,eAAe,MAAM;AAAA,EAC7C,MAAM,gCAAS2C,QAAO;AACpB,WAAO;AAAA,MACL,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,IACnB;AAAA,EACG,GALK;AAAA,EAMN,OAAO;AAAA,IACL,OAAO,gCAASC,OAAM,UAAU;AAC9B,WAAK,UAAU;AAAA,IAChB,GAFM;AAAA,IAGP,MAAM,gCAAS,KAAK,UAAU;AAC5B,WAAK,SAAS;AAAA,IACf,GAFK;AAAA,IAGN,cAAc,gCAAS,aAAa,UAAU;AAC5C,UAAI,KAAK,OAAO,KAAK,YAAY,KAAK,WAAW,UAAU;AACzD,aAAK,WAAW,KAAK,YAAY,CAAC;AAAA,MACnC;AAAA,IACF,GAJa;AAAA,EAKf;AAAA,EACD,SAAS,gCAAS,UAAU;AAC1B,SAAK,sBAAqB;AAC1B,SAAK,YAAW;AAAA,EACjB,GAHQ;AAAA,EAIT,SAAS;AAAA,IACP,YAAY,gCAAS,WAAW,GAAG;AACjC,UAAI,KAAK,KAAK;AACd,UAAI,KAAK,KAAK,IAAI,IAAI;AACpB,aAAK,UAAU,KAAK,SAAS;AAC7B,YAAI,QAAQ;AAAA,UACV,MAAM;AAAA,UACN,OAAO,KAAK;AAAA,UACZ,MAAM,KAAK;AAAA,UACX,WAAW;AAAA,QACrB;AACQ,aAAK,MAAM,gBAAgB,KAAK,OAAO;AACvC,aAAK,MAAM,eAAe,KAAK,MAAM;AACrC,aAAK,MAAM,QAAQ,KAAK;AAAA,MACzB;AAAA,IACF,GAdW;AAAA,IAeZ,mBAAmB,gCAAS,kBAAkBpB,QAAO;AACnD,UAAI,CAAC,KAAK,aAAa;AACrB,aAAK,WAAW,CAAC;AAAA,MAClB;AACD,MAAAA,OAAM,eAAc;AAAA,IACrB,GALkB;AAAA,IAMnB,kBAAkB,gCAAS,iBAAiBA,QAAO;AACjD,WAAK,WAAW,KAAK,OAAO,CAAC;AAC7B,MAAAA,OAAM,eAAc;AAAA,IACrB,GAHiB;AAAA,IAIlB,gBAAgB,gCAAS,eAAeA,QAAO;AAC7C,WAAK,WAAWA,OAAM,QAAQ,CAAC;AAC/B,MAAAA,OAAM,cAAc;IACrB,GAHe;AAAA,IAIhB,kBAAkB,gCAAS,iBAAiBA,QAAO;AACjD,WAAK,WAAW,KAAK,OAAO,CAAC;AAC7B,MAAAA,OAAM,eAAc;AAAA,IACrB,GAHiB;AAAA,IAIlB,kBAAkB,gCAAS,iBAAiBA,QAAO;AACjD,UAAI,CAAC,KAAK,YAAY;AACpB,aAAK,WAAW,KAAK,YAAY,CAAC;AAAA,MACnC;AACD,MAAAA,OAAM,eAAc;AAAA,IACrB,GALiB;AAAA,IAMlB,aAAa,gCAAS,YAAY,OAAO;AACvC,WAAK,SAAS;AACd,WAAK,WAAW,KAAK,IAAI;AAAA,IAC1B,GAHY;AAAA,IAIb,aAAa,gCAAS,cAAc;AAClC,UAAI,QAAQ;AACZ,UAAI,KAAK,eAAc,KAAM,CAAC,KAAK,YAAY;AAC7C,YAAI;AACJ,aAAK,eAAe,SAAS,cAAc,OAAO;AAClD,aAAK,aAAa,OAAO;AACzB,qBAAa,KAAK,cAAc,UAAU,kBAAkB,KAAK,eAAe,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,YAAY,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,SAAS,QAAQ,oBAAoB,SAAS,SAAS,gBAAgB,KAAK;AAC1T,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,YAAI,YAAY;AAChB,YAAI,OAAO,OAAO,KAAK,KAAK,QAAQ;AACpC,YAAI,oBAAoB,CAAA;AACxB,aAAK,KAAK,SAAU,GAAG,GAAG;AACxB,iBAAO,SAAS,CAAC,IAAI,SAAS,CAAC;AAAA,QACzC,CAAS,EAAE,QAAQ,SAAUqB,MAAK;AACxB,4BAAkBA,IAAG,IAAI,MAAM,SAASA,IAAG;AAAA,QACrD,CAAS;AACD,iBAAS,KAAK,GAAG,kBAAkB,OAAO,QAAQ,OAAO,QAAQ,iBAAiB,CAAC,GAAG,KAAK,gBAAgB,QAAQ,MAAM;AACvH,cAAI,qBAAqBP,iBAAe,gBAAgB,EAAE,GAAG,CAAC,GAC5D,QAAQ,mBAAmB,CAAC,GAC5B,sBAAsBA,iBAAe,mBAAmB,CAAC,GAAG,CAAC,GAC7D,MAAM,oBAAoB,CAAC;AAC7B,cAAI,WAAW,QACb,qBAAqB;AACvB,cAAI,QAAQ,aAAa,OAAO,OAAO,KAAK,iBAAiB,EAAE,QAAQ,CAAC,MAAM,UAAU;AACtF,iCAAqB,OAAO,OAAO,KAAK,iBAAiB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,IAAI,IAAI;AAAA,UACtG,OAAiB;AACL,iCAAqB,OAAO,KAAK,iBAAiB,EAAE,QAAQ,CAAC;AAAA,UAC9D;AACD,qBAAW,OAAO,QAAQ,iBAAiB,EAAE,QAAQ,CAAC,IAAI,kBAAkB,OAAO,oBAAoB,GAAG,IAAI;AAC9G,cAAI,QAAQ,WAAW;AACrB,yBAAa,+CAA+C,OAAO,UAAU,iDAAiD,EAAE,OAAO,KAAK,mBAAmB,oJAAoJ;AAAA,UAC/T,OAAiB;AACL,yBAAa,gBAAgB,OAAO,KAAK,mBAAmB,kBAAkB,EAAE,OAAO,KAAK,2CAA2C,EAAE,OAAO,UAAU,mBAAmB,EAAE,OAAO,KAAK,sBAAsB,EAAE,OAAO,KAAK,mBAAmB,kBAAkB,EAAE,OAAO,KAAK,oDAAoD,EAAE,OAAO,KAAK,mBAAmB,uFAAuF;AAAA,UAC/b;AAAA,QACF;AACD,aAAK,aAAa,YAAY;AAAA,MAC/B;AAAA,IACF,GArCY;AAAA,IAsCb,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO7C,UAAQ,KAAK,QAAQ,MAAM;AAAA,IACnC,GAFe;AAAA,IAGhB,uBAAuB,gCAAS,wBAAwB;AACtD,UAAI,SAAS;AACb,UAAI,KAAK,MAAM,aAAa,KAAK,MAAM,UAAU,UAAU,GAAG;AAC5DuC,6BAAmB,KAAK,MAAM,SAAS,EAAE,QAAQ,SAAU,IAAI;AAC7D,aAAG,aAAa,OAAO,mBAAmB,EAAE;AAAA,QACtD,CAAS;AAAA,MACF;AAAA,IACF,GAPsB;AAAA,IAQvB,cAAc,gCAAS,aAAa,WAAW;AAC7C,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,SAAS,IAAI;AAAA,IAC3F,GAFa;AAAA,EAGf;AAAA,EACD,UAAU;AAAA,IACR,eAAe,gCAAS,gBAAgB;AACtC,UAAI,OAAO,CAAA;AACX,UAAI,KAAK,kBAAkB;AACzB,eAAO,KAAK;AACZ,YAAI,CAAC,KAAK,SAAS,GAAG;AACpB,eAAK,SAAS,IAAI;AAAA,QACnB;AACD,iBAAS,QAAQ,MAAM;AACrB,eAAK,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,MAAM,GAAG,EAAE,IAAI,SAAU,OAAO;AAC/D,mBAAO,MAAM;UACzB,CAAW;AAAA,QACF;AACD,eAAO;AAAA,MACR;AACD,WAAK,SAAS,IAAI,KAAK,SAAS,MAAM,GAAG,EAAE,IAAI,SAAU,OAAO;AAC9D,eAAO,MAAM;MACrB,CAAO;AACD,aAAO;AAAA,IACR,GAlBc;AAAA,IAmBf,MAAM,gCAASpB,QAAO;AACpB,aAAO,KAAK,MAAM,KAAK,UAAU,KAAK,MAAM;AAAA,IAC7C,GAFK;AAAA,IAGN,WAAW,gCAAS,YAAY;AAC9B,aAAO,KAAK,KAAK,KAAK,eAAe,KAAK,MAAM;AAAA,IACjD,GAFU;AAAA,IAGX,aAAa,gCAAS,cAAc;AAClC,aAAO,KAAK,SAAS;AAAA,IACtB,GAFY;AAAA,IAGb,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,SAAS,KAAK,YAAY;AAAA,IACvC,GAFW;AAAA,IAGZ,6BAA6B,gCAAS,8BAA8B;AAClE,UAAI,gBAAgB,KAAK;AACzB,UAAI,eAAe,KAAK,IAAI,KAAK,cAAc,aAAa;AAG5D,UAAI,QAAQ,KAAK,IAAI,GAAG,KAAK,KAAK,KAAK,OAAO,eAAe,CAAC,CAAC;AAC/D,UAAI,MAAM,KAAK,IAAI,gBAAgB,GAAG,QAAQ,eAAe,CAAC;AAG9D,UAAI,QAAQ,KAAK,gBAAgB,MAAM,QAAQ;AAC/C,cAAQ,KAAK,IAAI,GAAG,QAAQ,KAAK;AACjC,aAAO,CAAC,OAAO,GAAG;AAAA,IACnB,GAZ4B;AAAA,IAa7B,WAAW,gCAAS,YAAY;AAC9B,UAAIkC,aAAY,CAAA;AAChB,UAAI,aAAa,KAAK;AACtB,UAAI,QAAQ,WAAW,CAAC;AACxB,UAAI,MAAM,WAAW,CAAC;AACtB,eAAS,IAAI,OAAO,KAAK,KAAK,KAAK;AACjC,QAAAA,WAAU,KAAK,IAAI,CAAC;AAAA,MACrB;AACD,aAAOA;AAAA,IACR,GATU;AAAA,IAUX,cAAc,gCAAS,eAAe;AACpC,aAAO;AAAA,QACL,MAAM,KAAK;AAAA,QACX,OAAO,KAAK;AAAA,QACZ,MAAM,KAAK;AAAA,MACnB;AAAA,IACK,GANa;AAAA,IAOd,OAAO,gCAAS,QAAQ;AACtB,aAAO,KAAK,cAAc;AAAA,IAC3B,GAFM;AAAA,IAGP,aAAa,gCAAS,cAAc;AAClC,aAAO,KAAK,YAAY,IAAI,KAAK,OAAO,IAAI;AAAA,IAC7C,GAFY;AAAA,IAGb,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,kBAAiB;AAAA,IACzB,GAFkB;AAAA,EAGpB;AAAA,EACD,YAAY;AAAA,IACV,mBAAmB5C;AAAAA,IACnB,eAAeG;AAAAA,IACf,cAAcW;AAAAA,IACd,cAAcI;AAAAA,IACd,WAAWG;AAAAA,IACX,cAAcI;AAAAA,IACd,qBAAqBG;AAAAA,IACrB,oBAAoBtB;AAAAA,IACpB,iBAAiBG;AAAAA,EAClB;AACH;AAEA,SAASnB,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,2BAA2B,iBAAiB,eAAe;AAC/D,MAAI,0BAA0B,iBAAiB,cAAc;AAC7D,MAAI,0BAA0B,iBAAiB,cAAc;AAC7D,MAAI,0BAA0B,iBAAiB,cAAc;AAC7D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,+BAA+B,iBAAiB,mBAAmB;AACvE,MAAI,iCAAiC,iBAAiB,qBAAqB;AAC3E,MAAI,gCAAgC,iBAAiB,oBAAoB;AACzE,MAAI,6BAA6B,iBAAiB,iBAAiB;AACnE,UAAQ,KAAK,aAAa,OAAO,SAAS,aAAa,SAAS,UAAU,SAAS,MAAM,UAAW,GAAE,mBAAmB,OAAO,eAAe,WAAW;AAAA,IACxJ,KAAK;AAAA,EACT,GAAK,KAAK,KAAK,oBAAoB,CAAC,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,SAAS,eAAe,SAAU,OAAO,KAAK;AACnJ,WAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,MACvD;AAAA,MACA,SAAS;AAAA,MACT,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,aAAa;AAAA,QAC5B;AAAA,MACR,CAAO;AAAA,IACF,GAAE,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,SAAS,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,MAC5F,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,cAAc;AAAA,MAC/B,SAAS;AAAA,IACf,GAAO,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS;AAAA,MAC9D,OAAO,SAAS;AAAA,IACtB,CAAK,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGF,gBAAmB,OAAO,WAAW;AAAA,MAC7E,SAAS,KAAK,GAAG,SAAS;AAAA,MAC1B,SAAS;AAAA,IACV,GAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,SAAU,MAAM;AAC/G,aAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,QAC/C,KAAK;AAAA,MACb,GAAS,CAAC,SAAS,mBAAmB,UAAS,GAAI,YAAY,0BAA0B;AAAA,QACjF,KAAK;AAAA,QACL,cAAc,SAAS,aAAa,gBAAgB;AAAA,QACpD,UAAU,KAAK,OAAO,aAAa,KAAK,OAAO;AAAA,QAC/C,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,iBAAO,SAAS,kBAAkB,MAAM;AAAA,QAClD;AAAA,QACQ,UAAU,SAAS,eAAe,SAAS;AAAA,QAC3C,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,cAAc,YAAY,YAAY,YAAY,IAAI,CAAC,KAAK,SAAS,kBAAkB,UAAS,GAAI,YAAY,yBAAyB;AAAA,QACpJ,KAAK;AAAA,QACL,cAAc,SAAS,aAAa,eAAe;AAAA,QACnD,UAAU,KAAK,OAAO,YAAY,KAAK,OAAO;AAAA,QAC9C,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,iBAAO,SAAS,iBAAiB,MAAM;AAAA,QACjD;AAAA,QACQ,UAAU,SAAS,eAAe,SAAS;AAAA,QAC3C,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,cAAc,YAAY,YAAY,YAAY,IAAI,CAAC,KAAK,SAAS,kBAAkB,UAAS,GAAI,YAAY,yBAAyB;AAAA,QACpJ,KAAK;AAAA,QACL,cAAc,SAAS,aAAa,eAAe;AAAA,QACnD,UAAU,KAAK,OAAO,YAAY,KAAK,OAAO;AAAA,QAC9C,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,iBAAO,SAAS,iBAAiB,MAAM;AAAA,QACjD;AAAA,QACQ,UAAU,SAAS,cAAc,SAAS;AAAA,QAC1C,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,cAAc,YAAY,YAAY,YAAY,IAAI,CAAC,KAAK,SAAS,kBAAkB,UAAS,GAAI,YAAY,yBAAyB;AAAA,QACpJ,KAAK;AAAA,QACL,cAAc,SAAS,aAAa,eAAe;AAAA,QACnD,UAAU,KAAK,OAAO,YAAY,KAAK,OAAO;AAAA,QAC9C,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,iBAAO,SAAS,iBAAiB,MAAM;AAAA,QACjD;AAAA,QACQ,UAAU,SAAS,cAAc,SAAS;AAAA,QAC1C,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,cAAc,YAAY,YAAY,YAAY,IAAI,CAAC,KAAK,SAAS,eAAe,UAAS,GAAI,YAAY,sBAAsB;AAAA,QAC9I,KAAK;AAAA,QACL,cAAc,SAAS,aAAa,WAAW;AAAA,QAC/C,OAAO,SAAS;AAAA,QAChB,MAAM,SAAS;AAAA,QACf,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,iBAAO,SAAS,eAAe,MAAM;AAAA,QAC/C;AAAA,QACQ,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,cAAc,SAAS,QAAQ,YAAY,IAAI,CAAC,KAAK,SAAS,uBAAuB,UAAS,GAAI,YAAY,8BAA8B;AAAA,QACvJ,KAAK;AAAA,QACL,aAAa;AAAA,QACb,UAAU,KAAK;AAAA,QACf,aAAa,SAAS;AAAA,QACtB,MAAM,SAAS;AAAA,QACf,WAAW,SAAS;AAAA,QACpB,OAAO,MAAM;AAAA,QACb,MAAM,MAAM;AAAA,QACZ,cAAc,KAAK;AAAA,QACnB,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,YAAY,eAAe,QAAQ,aAAa,SAAS,QAAQ,gBAAgB,YAAY,IAAI,CAAC,KAAK,SAAS,yBAAyB,KAAK,sBAAsB,UAAS,GAAI,YAAY,gCAAgC;AAAA,QACxO,KAAK;AAAA,QACL,cAAc,SAAS,aAAa,kBAAkB;AAAA,QACtD,MAAM,MAAM;AAAA,QACZ,SAAS,KAAK;AAAA,QACd,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,iBAAO,SAAS,YAAY,MAAM;AAAA,QAC5C;AAAA,QACQ,UAAU,SAAS;AAAA,QACnB,WAAW,KAAK;AAAA,QAChB,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,cAAc,QAAQ,WAAW,YAAY,aAAa,YAAY,IAAI,CAAC,KAAK,SAAS,wBAAwB,UAAW,GAAE,YAAY,+BAA+B;AAAA,QACpL,KAAK;AAAA,QACL,cAAc,SAAS,aAAa,yBAAyB;AAAA,QAC7D,MAAM,SAAS;AAAA,QACf,WAAW,SAAS;AAAA,QACpB,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,iBAAO,SAAS,WAAW,MAAM;AAAA,QAC3C;AAAA,QACQ,UAAU,SAAS;AAAA,QACnB,WAAW,KAAK;AAAA,QAChB,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,cAAc,QAAQ,aAAa,YAAY,aAAa,YAAY,IAAI,CAAC,KAAK,SAAS,qBAAqB,UAAW,GAAE,YAAY,4BAA4B;AAAA,QAChL,KAAK;AAAA,QACL,MAAM,SAAS;AAAA,QACf,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,iBAAO,SAAS,WAAW,MAAM;AAAA,QAC3C;AAAA,QACQ,UAAU,SAAS;AAAA,QACnB,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACV,GAAE,MAAM,GAAG,CAAC,QAAQ,YAAY,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,IACzF,CAAA,GAAG,GAAG,KAAK,EAAE,GAAG,KAAK,OAAO,OAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,MACpF,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,YAAY;AAAA,MAC7B,SAAS;AAAA,IACf,GAAO,KAAK,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,OAAO;AAAA,MAC1D,OAAO,SAAS;AAAA,IACtB,CAAK,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,EACjD,CAAG,GAAG,GAAG,KAAK,EAAE,KAAK,mBAAmB,IAAI,IAAI;AAChD;AAxISE;AA0ITL,SAAO,SAASK;ACx2BhB,IAAIM,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,0kBAA0kB,OAAO,GAAG,kCAAkC,GAAG,oUAAoU,EAAE,OAAO,GAAG,kCAAkC,GAAG,sPAAsP,EAAE,OAAO,GAAG,kCAAkC,GAAG,8lCAA8lC,EAAE,OAAO,GAAG,gCAAgC,GAAG,0MAA0M,EAAE,OAAO,GAAG,2BAA2B,GAAG,6DAA6D,EAAE,OAAO,GAAG,kCAAkC,GAAG,oFAAoF,EAAE,OAAO,GAAG,kCAAkC,GAAG,ueAAue,EAAE,OAAO,GAAG,6BAA6B,GAAG,uKAAuK,EAAE,OAAO,GAAG,4CAA4C,GAAG,gBAAgB,EAAE,OAAO,GAAG,uCAAuC,GAAG,2BAA2B,EAAE,OAAO,GAAG,8CAA8C,GAAG,wBAAwB,EAAE,OAAO,GAAG,+CAA+C,GAAG,qBAAqB,EAAE,OAAO,GAAG,wCAAwC,GAAG,+KAA+K,EAAE,OAAO,GAAG,0CAA0C,GAAG,cAAc,EAAE,OAAO,GAAG,sCAAsC,GAAG,yDAAyD,EAAE,OAAO,GAAG,qCAAqC,GAAG,gBAAgB,EAAE,OAAO,GAAG,mCAAmC,GAAG,wBAAwB,EAAE,OAAO,GAAG,2CAA2C,GAAG,sDAAsD,EAAE,OAAO,GAAG,+BAA+B,GAAG,UAAU,EAAE,OAAO,GAAG,+BAA+B,GAAG,iBAAiB,EAAE,OAAO,GAAG,+BAA+B,GAAG,wBAAwB,EAAE,OAAO,GAAG,+BAA+B,GAAG,qEAAqE,EAAE,OAAO,GAAG,iDAAiD,GAAG,gBAAgB,EAAE,OAAO,GAAG,4CAA4C,GAAG,gIAAgI,EAAE,OAAO,GAAG,8CAA8C,GAAG,gBAAgB,EAAE,OAAO,GAAG,yCAAyC,GAAG,gGAAgG,EAAE,OAAO,GAAG,8CAA8C,GAAG,gBAAgB,EAAE,OAAO,GAAG,yCAAyC,GAAG,yGAAyG,EAAE,OAAO,GAAG,uDAAuD,GAAG,gBAAgB,EAAE,OAAO,GAAG,kDAAkD,GAAG,gFAAgF,EAAE,OAAO,GAAG,oDAAoD,GAAG,wJAAwJ,EAAE,OAAO,GAAG,6CAA6C,GAAG,gBAAgB,EAAE,OAAO,GAAG,wCAAwC,GAAG,2BAA2B,EAAE,OAAO,GAAG,+CAA+C,GAAG,wBAAwB,EAAE,OAAO,GAAG,gDAAgD,GAAG,qBAAqB,EAAE,OAAO,GAAG,yCAAyC,GAAG,2CAA2C,EAAE,OAAO,GAAG,0CAA0C,GAAG,+DAA+D,EAAE,OAAO,GAAG,sCAAsC,GAAG,gMAAgM,EAAE,OAAO,GAAG,sCAAsC,GAAG,mEAAmE,EAAE,OAAO,GAAG,oCAAoC,GAAG,gnBAAgnB,EAAE,OAAO,GAAG,sCAAsC,GAAG,iDAAiD,EAAE,OAAO,GAAG,sCAAsC,GAAG,6DAA6D,EAAE,OAAO,GAAG,yCAAyC,GAAG,iDAAiD,EAAE,OAAO,GAAG,yCAAyC,GAAG,iDAAiD,EAAE,OAAO,GAAG,6BAA6B,GAAG,gBAAgB,EAAE,OAAO,GAAG,wBAAwB,GAAG,uBAAuB,EAAE,OAAO,GAAG,+BAA+B,GAAG,iDAAiD,EAAE,OAAO,GAAG,+BAA+B,GAAG,kBAAkB,EAAE,OAAO,GAAG,0BAA0B,GAAG,iDAAiD,EAAE,OAAO,GAAG,6BAA6B,GAAG,gBAAgB,EAAE,OAAO,GAAG,wBAAwB,GAAG,uBAAuB,EAAE,OAAO,GAAG,+BAA+B,GAAG,iDAAiD,EAAE,OAAO,GAAG,+BAA+B,GAAG,kBAAkB,EAAE,OAAO,GAAG,0BAA0B,GAAG,mDAAmD,EAAE,OAAO,GAAG,+BAA+B,GAAG,qBAAqB,EAAE,OAAO,GAAG,kCAAkC,GAAG,uBAAuB,EAAE,OAAO,GAAG,oCAAoC,GAAG,wEAAwE,EAAE,OAAO,GAAG,6BAA6B,GAAG,iFAAiF,EAAE,OAAO,GAAG,+BAA+B,GAAG,UAAU,EAAE,OAAO,GAAG,+BAA+B,GAAG,iBAAiB,EAAE,OAAO,GAAG,+BAA+B,GAAG,+BAA+B,EAAE,OAAO,GAAG,+BAA+B,GAAG,eAAe,EAAE,OAAO,GAAG,+BAA+B,GAAG,wDAAwD,EAAE,OAAO,GAAG,oCAAoC,GAAG,sFAAsF,EAAE,OAAO,GAAG,0BAA0B,GAAG,gBAAgB,EAAE,OAAO,GAAG,qBAAqB,GAAG,gCAAgC,EAAE,OAAO,GAAG,+BAA+B,GAAG,UAAU,EAAE,OAAO,GAAG,+BAA+B,GAAG,iBAAiB,EAAE,OAAO,GAAG,+BAA+B,GAAG,+BAA+B,EAAE,OAAO,GAAG,+BAA+B,GAAG,eAAe,EAAE,OAAO,GAAG,+BAA+B,GAAG,mFAAmF,EAAE,OAAO,GAAG,kCAAkC,GAAG,0EAA0E,EAAE,OAAO,GAAG,6BAA6B,GAAG,iHAAiH,EAAE,OAAO,GAAG,gCAAgC,GAAG,gBAAgB,EAAE,OAAO,GAAG,2BAA2B,GAAG,8EAA8E,EAAE,OAAO,GAAG,mCAAmC,GAAG,gBAAgB,EAAE,OAAO,GAAG,8BAA8B,GAAG,oGAAoG,EAAE,OAAO,GAAG,2CAA2C,GAAG,4FAA4F,EAAE,OAAO,GAAG,2CAA2C,GAAG,kIAAkI,EAAE,OAAO,GAAG,uCAAuC,GAAG,kBAAkB,EAAE,OAAO,GAAG,sCAAsC,GAAG,GAAG,EAAE,OAAO,GAAG,sCAAsC,GAAG,GAAG,EAAE,OAAO,GAAG,sCAAsC,GAAG,yBAAyB,EAAE,OAAO,GAAG,uCAAuC,GAAG,8EAA8E,EAAE,OAAO,GAAG,+BAA+B,GAAG,uBAAuB,EAAE,OAAO,GAAG,oCAAoC,GAAG,wEAAwE,EAAE,OAAO,GAAG,6BAA6B,GAAG,qBAAqB,EAAE,OAAO,GAAG,kCAAkC,GAAG,yDAAyD,EAAE,OAAO,GAAG,qCAAqC,GAAG,qRAAqR,EAAE,OAAO,GAAG,2BAA2B,GAAG,2BAA2B,EAAE,OAAO,GAAG,+BAA+B,GAAG,gGAAgG,EAAE,OAAO,GAAG,wCAAwC,GAAG,gBAAgB,EAAE,OAAO,GAAG,mCAAmC,GAAG,kHAAkH,EAAE,OAAO,GAAG,iCAAiC,GAAG,wDAAwD,EAAE,OAAO,GAAG,2CAA2C,GAAG,gBAAgB,EAAE,OAAO,GAAG,sCAAsC,GAAG,0EAA0E,EAAE,OAAO,GAAG,sCAAsC,GAAG,wEAAwE,EAAE,OAAO,GAAG,yCAAyC,GAAG,kBAAkB,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,yBAAyB,EAAE,OAAO,GAAG,yCAAyC,GAAG,qLAAqL,EAAE,OAAO,GAAG,4BAA4B,GAAG,wGAAwG,EAAE,OAAO,GAAG,4BAA4B,GAAG,sDAAsD,EAAE,OAAO,GAAG,6BAA6B,GAAG,gBAAgB,EAAE,OAAO,GAAG,6BAA6B,GAAG,iBAAiB,EAAE,OAAO,GAAG,6BAA6B,GAAG,qnEAAqnE,EAAE,OAAO,GAAG,kCAAkC,GAAG,yHAAyH,EAAE,OAAO,GAAG,mCAAmC,GAAG,gBAAgB,EAAE,OAAO,GAAG,8BAA8B,GAAG,wlCAAwlC,EAAE,OAAO,GAAG,kCAAkC,GAAG,iBAAiB,EAAE,OAAO,GAAG,kCAAkC,GAAG,gBAAgB,EAAE,OAAO,GAAG,mCAAmC,GAAG,iGAAiG,EAAE,OAAO,GAAG,2CAA2C,GAAG,gCAAgC,EAAE,OAAO,GAAG,+BAA+B,GAAG,UAAU,EAAE,OAAO,GAAG,+BAA+B,GAAG,iBAAiB,EAAE,OAAO,GAAG,+BAA+B,GAAG,+BAA+B,EAAE,OAAO,GAAG,+BAA+B,GAAG,eAAe,EAAE,OAAO,GAAG,+BAA+B,GAAG,8HAA8H,EAAE,OAAO,GAAG,yCAAyC,GAAG,qBAAqB,EAAE,OAAO,GAAG,8CAA8C,GAAG,mHAAmH,EAAE,OAAO,GAAG,uDAAuD,GAAG,SAAS,EAAE,OAAO,GAAG,kDAAkD,GAAG,0EAA0E,EAAE,OAAO,GAAG,+CAA+C,GAAG,kBAAkB,EAAE,OAAO,GAAG,8CAA8C,GAAG,GAAG,EAAE,OAAO,GAAG,8CAA8C,GAAG,GAAG,EAAE,OAAO,GAAG,8CAA8C,GAAG,yBAAyB,EAAE,OAAO,GAAG,+CAA+C,GAAG,QAAQ;AACx6lB,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,2BAA2B;AAAA,MACjC,yBAAyB,MAAM,YAAY,MAAM;AAAA,MACjD,yBAAyB,MAAM;AAAA,MAC/B,6BAA6B,MAAM,oBAAoB,MAAM,qBAAqB;AAAA,MAClF,0BAA0B,MAAM;AAAA,MAChC,+BAA+B,MAAM,cAAc,MAAM,iBAAiB;AAAA,MAC1E,uBAAuB,MAAM;AAAA,MAC7B,yBAAyB,MAAM;AAAA,MAC/B,kBAAkB,MAAM,SAAS;AAAA,MACjC,kBAAkB,MAAM,SAAS;AAAA,IACvC,CAAK;AAAA,EACF,GAbK;AAAA,EAcN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,aAAa,gCAAS,YAAY,OAAO;AACvC,QAAI,WAAW,MAAM;AACrB,WAAO,2BAA2B;AAAA,EACnC,GAHY;AAAA,EAIb,gBAAgB;AAAA,EAChB,OAAO,gCAAS,MAAM,OAAO;AAC3B,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,qBAAqB;AAAA,MAC3B,gCAAgC,MAAM;AAAA,MACtC,+BAA+B,MAAM;AAAA,MACrC,mCAAmC,MAAM,oBAAoB,MAAM,qBAAqB;AAAA,IAC9F,CAAK;AAAA,EACF,GAPM;AAAA,EAQP,OAAO;AAAA,EACP,YAAY,gCAAS,WAAW,OAAO;AACrC,QAAI,WAAW,MAAM,UACnB,QAAQ,MAAM,OACd,SAAS,MAAM;AACjB,WAAO,UAAU,CAAC,SAAS,WAAW,QAAQ,QAAQ,MAAM,MAAM,iBAAiB,eAAe,MAAM,gBAAgB,SAAS,WAAW,QAAQ,OAAO,KAAK,CAAC,2BAA2B;AAAA,MAC1L,6BAA6B,SAAS,WAAW,QAAQ,QAAQ;AAAA,IACvE,CAAK,IAAI,CAAC,2BAA2B;AAAA,MAC/B,+BAA+B,SAAS,WAAW,UAAU;AAAA,MAC7D,gCAAgC,SAAS;AAAA,MACzC,6BAA6B,SAAS,eAAgB;AAAA,MACtD,6BAA6B,SAAS,WAAW,QAAQ;AAAA,MACzD,kCAAkC,MAAM;AAAA,IAC9C,CAAK;AAAA,EACF,GAbW;AAAA,EAcZ,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,UAAU;AAAA,EACV,aAAa;AAAA,EACb,QAAQ,gCAAS,OAAO,OAAO;AAC7B,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,sBAAsB;AAAA,MAC5B,6BAA6B,MAAM,YAAY;AAAA,MAC/C,8BAA8B,MAAM,YAAY;AAAA,IACtD,CAAK;AAAA,EACF,GANO;AAAA,EAOR,wBAAwB;AAAA,EACxB,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,eAAe,gCAAS,cAAc,OAAO;AAC3C,UAAM;AACJ,QAAI,QAAQ,MAAM;AACpB,WAAO,CAAC,0CAA0C;AAAA,MAChD,sCAAsC,MAAM,YAAY;AAAA,IAC9D,CAAK;AAAA,EACF,GANc;AAAA,EAOf,sBAAsB;AAAA,EACtB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,QAAI,WAAW,MAAM,UACnB,YAAY,MAAM;AACpB,WAAO,CAAC,iCAAiC;AAAA,MACvC,0CAA0C,aAAa,SAAS,uBAAuB,UAAU,KAAK;AAAA,IAC5G,CAAK;AAAA,EACF,GANiB;AAAA,EAOlB,2BAA2B;AAAA,EAC3B,gBAAgB;AAAA,EAChB,0BAA0B;AAAA,EAC1B,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,4BAA4B;AAAA,EAC5B,0BAA0B;AAAA,EAC1B,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,OAAO,gCAAS,MAAM,OAAO;AAC3B,QAAI,QAAQ,MAAM;AAClB,WAAO,MAAM,YAAY,+CAA+C;AAAA,EACzE,GAHM;AAAA,EAIP,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,KAAK,gCAAS,IAAI,QAAQ;AACxB,QAAI,WAAW,OAAO,UACpB,QAAQ,OAAO,OACf,QAAQ,OAAO,OACf,sBAAsB,OAAO;AAC/B,QAAI,gBAAgB,CAAA;AACpB,QAAI,MAAM,eAAe;AACvB,oBAAc,KAAK,4BAA4B;AAAA,IAChD;AACD,QAAI,MAAM,WAAW;AACnB,oBAAc,KAAK;AAAA,QACjB,4BAA4B,sBAAsB,SAAS,cAAc,SAAS,gBAAgB,gBAAgB,oBAAoB,SAAS;AAAA,MACvJ,CAAO;AAAA,IACF;AACD,QAAI,MAAM,sBAAsB;AAC9B,oBAAc,KAAK;AAAA,QACjB,wCAAwC,SAAS;AAAA,MACzD,CAAO;AAAA,IACF;AACD,kBAAc,KAAK,QAAQ,MAAM,IAAI,eAAe,WAAW;AAC/D,WAAO;AAAA,EACR,GArBI;AAAA,EAsBL,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,UAAU,gCAAS,SAAS,QAAQ;AAClC,QAAI,WAAW,OAAO;AACtB,WAAO,CAAC;AAAA,MACN,6BAA6B,SAAS,WAAW,QAAQ;AAAA,IAC/D,CAAK;AAAA,EACF,GALS;AAAA,EAMV,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,YAAY,gCAAS,WAAW,QAAQ;AACtC,QAAI,WAAW,OAAO;AACtB,WAAO,CAAC;AAAA,MACN,6BAA6B,SAAS,WAAW,QAAQ;AAAA,IAC/D,CAAK;AAAA,EACF,GALW;AAAA,EAMZ,uBAAuB;AAAA,EACvB,QAAQ;AAAA,EACR,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,yBAAyB;AAC3B;AACA,IAAI,eAAe;AAAA,EACjB,gBAAgB;AAAA,IACd,UAAU;AAAA,EACX;AAAA,EACD,OAAO;AAAA,IACL,UAAU;AAAA,EACX;AAAA,EACD,OAAO;AAAA,IACL,UAAU;AAAA,EACX;AACH;AACA,IAAI,iBAAiB,UAAU,OAAO;AAAA,EACpC,MAAM;AAAA,EACN,OAAOD;AAAAA,EACP,SAASC;AAAAA,EACT;AACF,CAAC;AClKD,IAAIZ,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACrBhB,IAAIM,SAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,2IAA2I,OAAO,GAAG,mBAAmB,GAAG,iBAAiB,EAAE,OAAO,GAAG,oBAAoB,GAAG,odAAod,EAAE,OAAO,GAAG,0BAA0B,GAAG,qBAAqB,EAAE,OAAO,GAAG,wBAAwB,GAAG,gBAAgB,EAAE,OAAO,GAAG,mBAAmB,GAAG,iBAAiB,EAAE,OAAO,GAAG,oBAAoB,GAAG,gCAAgC,EAAE,OAAO,GAAG,iCAAiC,GAAG,UAAU,EAAE,OAAO,GAAG,iCAAiC,GAAG,iBAAiB,EAAE,OAAO,GAAG,iCAAiC,GAAG,eAAe,EAAE,OAAO,GAAG,iCAAiC,GAAG,kBAAkB,EAAE,OAAO,GAAG,iCAAiC,GAAG,sDAAsD,EAAE,OAAO,GAAG,oBAAoB,GAAG,0DAA0D,EAAE,OAAO,GAAG,iCAAiC,GAAG,kDAAkD,EAAE,OAAO,GAAG,uBAAuB,GAAG,gBAAgB,EAAE,OAAO,GAAG,uBAAuB,GAAG,iBAAiB,EAAE,OAAO,GAAG,uBAAuB,GAAG,uNAAuN,EAAE,OAAO,GAAG,gCAAgC,GAAG,yEAAyE,EAAE,OAAO,GAAG,kCAAkC,GAAG,qBAAqB,EAAE,OAAO,GAAG,gCAAgC,GAAG,2FAA2F,EAAE,OAAO,GAAG,gCAAgC,GAAG,+LAA+L,EAAE,OAAO,GAAG,wCAAwC,GAAG,qBAAqB,EAAE,OAAO,GAAG,sCAAsC,GAAG,0JAA0J,EAAE,OAAO,GAAG,sCAAsC,GAAG,0HAA0H,EAAE,OAAO,GAAG,gCAAgC,GAAG,qBAAqB,EAAE,OAAO,GAAG,+BAA+B,GAAG,kBAAkB,EAAE,OAAO,GAAG,8BAA8B,GAAG,GAAG,EAAE,OAAO,GAAG,8BAA8B,GAAG,GAAG,EAAE,OAAO,GAAG,8BAA8B,GAAG,yBAAyB,EAAE,OAAO,GAAG,+BAA+B,GAAG,kIAAkI,EAAE,OAAO,GAAG,wCAAwC,GAAG,6EAA6E,EAAE,OAAO,GAAG,kCAAkC,GAAG,gFAAgF,EAAE,OAAO,GAAG,+BAA+B,GAAG,sGAAsG,EAAE,OAAO,GAAG,gCAAgC,GAAG,uJAAuJ,EAAE,OAAO,GAAG,sCAAsC,GAAG,6HAA6H,EAAE,OAAO,GAAG,iCAAiC,GAAG,uBAAuB,EAAE,OAAO,GAAG,2CAA2C,GAAG,sGAAsG,EAAE,OAAO,GAAG,iCAAiC,GAAG,QAAQ;AAC5zI,GAHY;AAIZ,IAAI,UAAU;AAAA,EACZ,MAAM,gCAASiD,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,QAAQ,MAAM;AAChB,WAAO,CAAC,6BAA6B;AAAA,MACnC,yBAAyB,SAAS;AAAA,MAClC,cAAc,MAAM;AAAA,MACpB,aAAa,MAAM;AAAA,MACnB,oBAAoB,MAAM,UAAU,MAAM,YAAY,WAAW,SAAS,UAAU,OAAO,eAAe,YAAY,SAAS,UAAU,OAAO,iBAAiB;AAAA,IACvK,CAAK;AAAA,EACF,GATK;AAAA,EAUN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,MAAM;AACR;AACA,IAAI,mBAAmB,UAAU,OAAO;AAAA,EACtC,MAAM;AAAA,EACN,OAAOjD;AAAA,EACP;AACF,CAAC;ACpBD,IAAIgC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAW7B;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAAS+C,WAAU;AAC1B,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAI7D,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAW2C;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,qBAAqB,UAAU,SAAS,MAAM;AAAA,EACtD,SAAS;AAAA,IACP,cAAc,gCAASb,cAAa,KAAK;AACvC,UAAI,OAAO,QAAQ,SAAS,KAAK,OAAO,KAAK;AAC7C,aAAO,KAAK,KAAK;AAAA,QACf,SAAS;AAAA,UACP,SAAS,KAAK;AAAA,UACd,UAAU,KAAK;AAAA,QAChB;AAAA,MACT,CAAO;AAAA,IACF,GARa;AAAA,IASd,UAAU,gCAASJ,UAASW,QAAO;AACjC,UAAI,CAAC,KAAK,YAAY,CAAC,KAAK,UAAU;AACpC,YAAI,gBAAgB,KAAK,SAAS,CAAC,KAAK,UAAU,KAAK;AACvD,aAAK,MAAM,qBAAqB,aAAa;AAC7C,aAAK,MAAM,UAAUA,MAAK;AAAA,MAC3B;AAAA,IACF,GANS;AAAA,IAOV,SAAS,gCAAS,QAAQA,QAAO;AAC/B,WAAK,MAAM,SAASA,MAAK;AAAA,IAC1B,GAFQ;AAAA,IAGT,QAAQ,gCAAS,OAAOA,QAAO;AAC7B,WAAK,MAAM,QAAQA,MAAK;AAAA,IACzB,GAFO;AAAA,EAGT;AAAA,EACD,UAAU;AAAA,IACR,SAAS,gCAAS,UAAU;AAC1B,aAAO,KAAK,cAAc,SAAS,KAAK,SAAS,CAAC,CAAC,KAAK,aAAa,OAAO,KAAK,YAAY,KAAK,KAAK;AAAA,IACxG,GAFQ;AAAA,EAGV;AACH;AAEA,IAAInC,eAAa,CAAC,kBAAkB,iBAAiB;AACrD,IAAIE,eAAa,CAAC,MAAM,SAAS,QAAQ,WAAW,YAAY,YAAY,YAAY,mBAAmB,cAAc,cAAc;AACvI,SAASC,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,EAC3B,GAAK,SAAS,aAAa,MAAM,GAAG;AAAA,IAChC,kBAAkB,SAAS;AAAA,IAC3B,mBAAmB,KAAK;AAAA,EACzB,CAAA,GAAG,CAACF,gBAAmB,SAAS,WAAW;AAAA,IAC1C,IAAI,KAAK;AAAA,IACT,MAAM;AAAA,IACN,SAAS,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,UAAU;AAAA,IAC3C,OAAO,KAAK;AAAA,IACZ,OAAO,KAAK;AAAA,IACZ,MAAM,KAAK;AAAA,IACX,SAAS,SAAS;AAAA,IAClB,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,mBAAmB,KAAK;AAAA,IACxB,cAAc,KAAK;AAAA,IACnB,gBAAgB,KAAK,WAAW;AAAA,IAChC,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,WAAW,SAAS,QAAQ,MAAM,UAAU,SAAS;AAAA,IAC3E;AAAA,IACI,QAAQ,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC5C,aAAO,SAAS,UAAU,SAAS,OAAO,MAAM,UAAU,SAAS;AAAA,IACzE;AAAA,IACI,UAAU,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC9C,aAAO,SAAS,YAAY,SAAS,SAAS,MAAM,UAAU,SAAS;AAAA,IAC7E;AAAA,EACG,GAAE,SAAS,aAAa,OAAO,CAAC,GAAG,MAAM,IAAIC,YAAU,GAAGD,gBAAmB,OAAO,WAAW;AAAA,IAC9F,SAAS,KAAK,GAAG,KAAK;AAAA,EAC1B,GAAK,SAAS,aAAa,KAAK,CAAC,GAAG,CAACA,gBAAmB,OAAO,WAAW;AAAA,IACtE,SAAS,KAAK,GAAG,MAAM;AAAA,EACxB,GAAE,SAAS,aAAa,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,IAAID,YAAU;AACrE;AAlCSG;AAoCTL,SAAO,SAASK;ACzIhB,IAAIL,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACpBhB,IAAIL,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACtBhB,IAAIL,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACtBhB,IAAIL,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAA0BD,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAI2D,eAA0B3D,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAI4D,eAA0B5D,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAI6D,eAAa,CAAC9D,cAAYE,cAAY0D,cAAYC,YAAU;AAChE,SAAS1D,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAG2D,cAAY,EAAE;AAChC;AARS3D;AAUTL,SAAO,SAASK;AChChB,IAAIL,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACpBhB,IAAIL,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWC;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGD,cAAY,EAAE;AAChC;AARSC;AAUTL,SAAO,SAASK;ACahB,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWS;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,2BAA2B;AAAA,MACzB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM,CAAC,OAAO,MAAM;AAAA,MACpB,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM,CAAC,OAAO,MAAM;AAAA,MACpB,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM,CAAC,OAAO,QAAQ,QAAQ;AAAA,MAC9B,WAAW;AAAA,IACZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW,gCAASmD,YAAW;AAC7B,eAAO;AAAA,UACL,QAAQ;AAAA,YACN,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACV;AAAA,UACD,QAAQ;AAAA,YACN,OAAO;AAAA,cACL,UAAU;AAAA,cACV,MAAM;AAAA,cACN,SAAS;AAAA,YACV;AAAA,UACF;AAAA,UACD,SAAS;AAAA,YACP,SAAS;AAAA,cACP,UAAU;AAAA,cACV,MAAM;AAAA,cACN,MAAM;AAAA,YACP;AAAA,YACD,YAAY;AAAA,cACV,UAAU;AAAA,cACV,MAAM;AAAA,cACN,MAAM;AAAA,YACP;AAAA,YACD,OAAO;AAAA,cACL,MAAM;AAAA,YACP;AAAA,YACD,OAAO;AAAA,cACL,UAAU;AAAA,cACV,MAAM;AAAA,YACP;AAAA,UACF;AAAA,QACX;AAAA,MACO,GAlCU;AAAA,IAmCZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW,gCAASA,YAAW;AAC7B,eAAO;AAAA,UACL,MAAM;AAAA,YACJ,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACV;AAAA,UACD,MAAM;AAAA,YACJ,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACV;AAAA,UACD,QAAQ;AAAA,YACN,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACV;AAAA,QACX;AAAA,MACO,GAlBU;AAAA,IAmBZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASJ,WAAU;AAC1B,WAAO;AAAA,MACL,cAAc;AAAA,MACd,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW/C;AAAAA,EACX,OAAO,CAAC,QAAQ;AAAA,EAChB,OAAO;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,yBAAyB;AAAA,MACvB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,aAAa,gCAAS,YAAY,KAAK;AACrC,UAAI,iBAAiB;AAAA,QACnB,OAAO,KAAK,OAAO;AAAA,QACnB,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,OAAO,KAAK;AAAA,UACZ,SAAS,KAAK;AAAA,UACd,UAAU,KAAK,OAAO;AAAA,QACvB;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG;AAAA,QAChD,QAAQ;AAAA,MAChB,CAAO,GAAG,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG,cAAc,GAAG,KAAK,KAAK,KAAK,cAAe,GAAE,KAAK,cAAc,CAAC;AAAA,IAC1G,GAjBY;AAAA,IAkBb,eAAe,gCAAS,gBAAgB;AACtC,aAAO,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK;AAAA,IAC3E,GAFc;AAAA,IAGf,UAAU,gCAASY,UAASW,QAAO;AACjC,UAAI,CAAC,KAAK,OAAO,UAAU;AACzB,aAAK,MAAM,UAAU;AAAA,UACnB,eAAeA;AAAA,UACf,MAAM,KAAK;AAAA,QACrB,CAAS;AAAA,MACF;AAAA,IACF,GAPS;AAAA,EAQX;AAAA,EACD,UAAU;AAAA,IACR,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,KAAK,UAAU,OAAO,OAAO,KAAK,YAAY,KAAK,UAAU,OAAO,OAAO,KAAK,cAAc;AAAA,IACzJ,GAFkB;AAAA,EAGpB;AAAA,EACD,YAAY;AAAA,IACV,WAAW6B;AAAAA,IACX,UAAUC;AAAAA,EACX;AACH;AAEA,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,sBAAsB,iBAAiB,UAAU;AACrD,SAAO,UAAS,GAAI,YAAY,qBAAqB;AAAA,IACnD,YAAY,OAAO;AAAA,IACnB,QAAQ;AAAA,IACR,UAAU,KAAK,OAAO;AAAA,IACtB,cAAc,SAAS;AAAA,IACvB,UAAU,SAAS;AAAA,IACnB,UAAU,KAAK;AAAA,IACf,IAAI,SAAS,YAAY,eAAe;AAAA,EAC5C,GAAK;AAAA,IACD,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,CAAC,OAAO,2BAA2B,UAAS,GAAI,YAAY,wBAAwB,OAAO,uBAAuB,GAAG;AAAA,QAC1H,KAAK;AAAA,QACL,SAAS,UAAU;AAAA,QACnB,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAClD,GAAS,MAAM,GAAG,CAAC,WAAW,OAAO,CAAC,KAAK,CAAC,OAAO,2BAA2B,UAAU,WAAW,UAAW,GAAE,YAAY,sBAAsB,WAAW;AAAA,QACrJ,KAAK;AAAA,QACL,SAAS,UAAU,OAAO;AAAA,MAClC,GAAS,SAAS,YAAY,eAAe,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IAC7G,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,GAAG,CAAC,cAAc,YAAY,cAAc,YAAY,YAAY,IAAI,CAAC;AAC9E;AAxBS;AA0BT,SAAS,SAAS;AAElB,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWrD;AAAAA,EACX,OAAO,CAAC,QAAQ;AAAA,EAChB,OAAO;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,aAAa,gCAASsD,aAAY,KAAK;AACrC,UAAI,iBAAiB;AAAA,QACnB,OAAO,KAAK,OAAO;AAAA,QACnB,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,OAAO,KAAK;AAAA,UACZ,SAAS,KAAK;AAAA,UACd,UAAU,KAAK,OAAO;AAAA,QACvB;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG;AAAA,QAChD,QAAQ;AAAA,MAChB,CAAO,GAAG,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG,cAAc,GAAG,KAAK,KAAK,KAAK,cAAe,GAAE,KAAK,cAAc,CAAC;AAAA,IAC1G,GAjBY;AAAA,IAkBb,eAAe,gCAASC,iBAAgB;AACtC,aAAO,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK;AAAA,IAC3E,GAFc;AAAA,IAGf,UAAU,gCAAS3C,UAASW,QAAO;AACjC,UAAI,CAAC,KAAK,OAAO,UAAU;AACzB,aAAK,MAAM,UAAU;AAAA,UACnB,eAAeA;AAAA,UACf,MAAM,KAAK;AAAA,QACrB,CAAS;AAAA,MACF;AAAA,IACF,GAPS;AAAA,EAQX;AAAA,EACD,YAAY;AAAA,IACV,aAAaiC;AAAAA,EACd;AACH;AAEA,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,yBAAyB,iBAAiB,aAAa;AAC3D,SAAO,UAAS,GAAI,YAAY,wBAAwB;AAAA,IACtD,YAAY,OAAO;AAAA,IACnB,QAAQ;AAAA,IACR,UAAU,KAAK,OAAO;AAAA,IACtB,MAAM,OAAO;AAAA,IACb,UAAU,SAAS;AAAA,IACnB,UAAU,KAAK;AAAA,IACf,IAAI,SAAS,YAAY,kBAAkB;AAAA,EAC/C,GAAK,MAAM,GAAG,CAAC,cAAc,YAAY,QAAQ,YAAY,YAAY,IAAI,CAAC;AAC9E;AAXS;AAaT,SAAS,SAAS;AAElB,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWxD;AAAAA,EACX,OAAO,CAAC,kBAAkB,sBAAsB,oBAAoB,iBAAiB,iBAAiB,mBAAmB,cAAc,gBAAgB,mBAAmB,qBAAqB;AAAA,EAC/L,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,6BAA6B;AAAA,MAC3B,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,MAAM,gCAAS0C,QAAO;AACpB,WAAO;AAAA,MACL,WAAW,KAAK;AAAA,MAChB,aAAa,CAAE;AAAA,IACrB;AAAA,EACG,GALK;AAAA,EAMN,OAAO;AAAA,IACL,SAAS,gCAAS,QAAQ,UAAU;AAClC,WAAK,YAAY;AAAA,IAClB,GAFQ;AAAA,IAGT,mBAAmB,gCAAS,eAAe,UAAU;AACnD,WAAK,MAAM,uBAAuB;AAAA,QAChC,MAAM,KAAK;AAAA,QACX,OAAO,KAAK,SAAS,SAAS,OAAO,KAAK,KAAK;AAAA,QAC/C,OAAO,KAAK;AAAA,QACZ,SAAS;AAAA,MACjB,CAAO;AAAA,IACF,GAPkB;AAAA,EAQpB;AAAA,EACD,SAAS,gCAASe,WAAU;AAC1B,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,WAAK,qBAAoB;AAAA,IAC1B;AAAA,EACF,GAJQ;AAAA,EAKT,SAAS,gCAAS,UAAU;AAC1B,QAAI,QAAQ;AACZ,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,WAAK,qBAAoB;AAAA,IAC1B;AACD,QAAI,KAAK,cAAc,KAAK,aAAa,UAAU,KAAK,aAAa,SAAS,KAAK,WAAW,WAAW,IAAI;AAC3G,iBAAW,WAAY;AACrB,YAAI,cAAc,yBAAyB,MAAM,GAAG;AACpD,uBAAe,YAAY;MAC5B,GAAE,CAAC;AAAA,IACL;AAAA,EACF,GAXQ;AAAA,EAYT,eAAe,gCAAS,gBAAgB;AACtC,QAAI,KAAK,sBAAsB;AAC7B,sBAAgB,IAAI,iBAAiB,KAAK,oBAAoB;AAC9D,WAAK,uBAAuB;AAAA,IAC7B;AAAA,EACF,GALc;AAAA,EAMf,SAAS;AAAA,IACP,YAAY,gCAAS,WAAW,MAAM;AACpC,aAAO,aAAa,KAAK,QAAQ,IAAI;AAAA,IACtC,GAFW;AAAA,IAGZ,aAAa,gCAASH,aAAY,KAAK;AACrC,UAAI,uBAAuB;AAC3B,UAAI,iBAAiB;AAAA,QACnB,OAAO,KAAK,OAAO;AAAA,QACnB,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,OAAO,KAAK;AAAA,UACZ,OAAO,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,WAAW,wBAAwB,sBAAsB,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,UACnP,gBAAgB,yBAAyB,KAAK,qBAAqB,QAAQ,2BAA2B,WAAW,yBAAyB,uBAAuB,qBAAqB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB;AAAA,QACnQ;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG;AAAA,QAChD,QAAQ;AAAA,MAChB,CAAO,GAAG,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG,cAAc,GAAG,KAAK,KAAK,KAAK,cAAe,GAAE,KAAK,cAAc,CAAC;AAAA,IAC1G,GAlBY;AAAA,IAmBb,eAAe,gCAASC,iBAAgB;AACtC,aAAO,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK;AAAA,IAC3E,GAFc;AAAA,IAGf,kBAAkB,gCAAS,qBAAqB;AAC9C,aAAO,iBAAiB,KAAK,SAAS,KAAK,KAAK;AAAA,IACjD,GAFiB;AAAA,IAGlB,WAAW,gCAAS,UAAUhC,QAAO;AACnC,WAAK,MAAM,cAAc;AAAA,QACvB,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,MACnB,CAAO;AAAA,IACF,GALU;AAAA,IAMX,oBAAoB,gCAAS,mBAAmBA,QAAO,OAAO;AAC5D,WAAK,MAAM,gBAAgB;AAAA,QACzB,eAAeA,OAAM;AAAA,QACrB;AAAA,QACA,MAAMA,OAAM;AAAA,MACpB,CAAO;AAAA,IACF,GANmB;AAAA,IAOpB,uBAAuB,gCAAS,sBAAsBA,QAAO,OAAO;AAClE,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAeA,OAAM;AAAA,QACrB;AAAA,QACA,MAAMA,OAAM;AAAA,MACpB,CAAO;AAAA,IACF,GANsB;AAAA,IAOvB,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,OAAO,YAAY,KAAK,OAAO,SAAS,UAAU;AAAA,IAC/D,GAFW;AAAA,IAGZ,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAUA,QAAO;AAC3C,cAAI,CAAC,OAAO,WAAW;AACrB,mBAAO,aAAaA,QAAO,SAAS;AAAA,UACrC;AACD,iBAAO,YAAY;AAAA,QAC7B;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAXyB;AAAA,IAY1B,4BAA4B,gCAAS,6BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAC5B,aAAK,YAAY;AAAA,MAClB;AAAA,IACF,GAN2B;AAAA,IAO5B,sBAAsB,gCAAS,uBAAuB;AACpD,WAAK,YAAY;AACjB,WAAK,2BAA0B;AAC/B,sBAAgB,IAAI,iBAAiB,KAAK,oBAAoB;AAC9D,WAAK,uBAAuB;AAAA,IAC7B,GALqB;AAAA,IAMtB,SAAS,gCAAS,QAAQA,QAAO;AAC/B,UAAI,SAAS;AACb,UAAI,KAAK,aAAa,UAAU,KAAK,WAAU,GAAI;AACjD,aAAK,YAAY;AACjB,YAAI,CAAC,KAAK,WAAW;AACnB,eAAK,YAAY;AACjB,eAAK,yBAAwB;AAC7B,eAAK,MAAM,kBAAkB;AAAA,YAC3B,eAAeA;AAAA,YACf,MAAM,KAAK;AAAA,YACX,OAAO,KAAK;AAAA,YACZ,OAAO,KAAK;AAAA,UACxB,CAAW;AACD,eAAK,uBAAuB,SAAU,GAAG;AACvC,gBAAI,OAAO,OAAO,OAAO,IAAI,SAAS,EAAE,MAAM,GAAG;AAC/C,qBAAO,YAAY;AAAA,YACpB;AAAA,UACb;AACU,0BAAgB,GAAG,iBAAiB,KAAK,oBAAoB;AAAA,QAC9D;AAAA,MACF;AAAA,IACF,GArBQ;AAAA,IAsBT,cAAc,gCAAS,aAAaA,QAAO,MAAM;AAC/C,UAAI,gBAAgB;AAAA,QAClB,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,QACX,SAAS,KAAK;AAAA,QACd,OAAO,KAAK,QAAQ,KAAK,KAAK;AAAA,QAC9B,UAAU,KAAK,eAAe,KAAK,KAAK;AAAA,QACxC,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,kBAAkB;AAAA,QAClB,gBAAgB,gCAAS,iBAAiB;AACxC,eAAK,mBAAmB;AAAA,QACzB,GAFe;AAAA,MAGxB;AACM,WAAK,MAAM,sBAAsB,aAAa;AAC9C,UAAI,CAAC,cAAc,kBAAkB;AACnC,aAAK,qBAAoB;AAAA,MAC1B;AAAA,IACF,GAnBa;AAAA,IAoBd,WAAW,gCAAS,UAAUA,QAAO;AACnC,UAAI,KAAK,aAAa,QAAQ;AAC5B,gBAAQA,OAAM,MAAI;AAAA,UAChB,KAAK;AAAA,UACL,KAAK;AACH,iBAAK,aAAaA,QAAO,OAAO;AAChC;AAAA,UACF,KAAK;AACH,iBAAK,qBAAoB;AACzB,iBAAK,MAAM,oBAAoB;AAAA,cAC7B,eAAeA;AAAA,cACf,MAAM,KAAK;AAAA,cACX,OAAO,KAAK;AAAA,cACZ,OAAO,KAAK;AAAA,YAC1B,CAAa;AACD;AAAA,UACF,KAAK;AACH,iBAAK,aAAaA,QAAO,KAAK;AAC9B,gBAAIA,OAAM,SAAU,MAAK,mBAAmBA,MAAK;AAAA,gBAAO,MAAK,eAAeA,MAAK;AACjF;AAAA,QACH;AAAA,MACF;AAAA,IACF,GAtBU;AAAA,IAuBX,oBAAoB,gCAAS,mBAAmBA,QAAO;AACrD,UAAI,cAAc,KAAK,SAASA,OAAM,MAAM;AAC5C,UAAI,aAAa,KAAK,2BAA2B,WAAW;AAC5D,UAAI,YAAY;AACd,4BAAoB,YAAY,OAAO;AACvC,QAAAA,OAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAPmB;AAAA,IAQpB,gBAAgB,gCAAS,eAAeA,QAAO;AAC7C,UAAI,cAAc,KAAK,SAASA,OAAM,MAAM;AAC5C,UAAI,aAAa,KAAK,uBAAuB,WAAW;AACxD,UAAI,YAAY;AACd,4BAAoB,YAAY,OAAO;AACvC,QAAAA,OAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAPe;AAAA,IAQhB,UAAU,gCAAS,SAAS,SAAS;AACnC,UAAI,SAAS;AACX,YAAI,OAAO;AACX,eAAO,QAAQ,CAAC,aAAa,MAAM,qBAAqB,GAAG;AACzD,iBAAO,KAAK;AAAA,QACb;AACD,eAAO;AAAA,MACf,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAVS;AAAA,IAWV,4BAA4B,gCAAS,2BAA2B,MAAM;AACpE,UAAI,WAAW,KAAK;AACpB,UAAI,CAAC,UAAU;AACb,YAAI,cAAc,KAAK,cAAc;AACrC,YAAI,aAAa;AACf,qBAAW,YAAY;AAAA,QACxB;AAAA,MACF;AACD,UAAI,UAAU;AACZ,YAAI,aAAa,UAAU,wBAAwB,EAAG,QAAO;AAAA,YAAc,QAAO,KAAK,2BAA2B,QAAQ;AAAA,MAClI,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAb2B;AAAA,IAc5B,wBAAwB,gCAAS,uBAAuB,MAAM;AAC5D,UAAI,WAAW,KAAK;AACpB,UAAI,CAAC,UAAU;AACb,YAAI,UAAU,KAAK,cAAc;AACjC,YAAI,SAAS;AACX,qBAAW,QAAQ;AAAA,QACpB;AAAA,MACF;AACD,UAAI,UAAU;AACZ,YAAI,aAAa,UAAU,wBAAwB,EAAG,QAAO;AAAA,YAAc,QAAO,KAAK,uBAAuB,QAAQ;AAAA,MAC9H,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAbuB;AAAA,IAcxB,eAAe,gCAAS,cAAcA,QAAO;AAC3C,WAAK,MAAM,iBAAiB;AAAA,QAC1B,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,QACX,SAAS,KAAK;AAAA,QACd,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GARc;AAAA,IASf,eAAe,gCAAS,cAAcA,QAAO;AAC3C,WAAK,MAAM,iBAAiB;AAAA,QAC1B,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,QACX,SAAS,KAAK;AAAA,QACd,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GARc;AAAA,IASf,iBAAiB,gCAAS,gBAAgBA,QAAO;AAC/C,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,QACX,SAAS,KAAK;AAAA,QACd,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GARgB;AAAA,IASjB,oBAAoB,gCAAS,mBAAmBA,QAAO;AACrD,WAAK,MAAM,iBAAiB;AAAA,QAC1B,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,QACX,SAAS,KAAK;AAAA,QACd,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GARmB;AAAA,IASpB,oBAAoB,gCAAS,mBAAmBA,QAAO;AACrD,UAAI,KAAK,aAAa,OAAO;AAC3B,aAAK,MAAM,iBAAiB;AAAA,UAC1B,eAAeA;AAAA,UACf,MAAM,KAAK;AAAA,UACX,SAAS,KAAK;AAAA,UACd,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACtB,CAAS;AAAA,MACT,OAAa;AACL,aAAK,aAAaA,QAAO,OAAO;AAAA,MACjC;AAAA,IACF,GAZmB;AAAA,IAapB,sBAAsB,gCAAS,qBAAqBA,QAAO;AACzD,UAAI,KAAK,aAAa,OAAO;AAC3B,aAAK,MAAM,mBAAmB;AAAA,UAC5B,eAAeA;AAAA,UACf,MAAM,KAAK;AAAA,UACX,SAAS,KAAK;AAAA,UACd,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACtB,CAAS;AAAA,MACT,OAAa;AACL,aAAK,qBAAoB;AACzB,aAAK,MAAM,oBAAoB;AAAA,UAC7B,eAAeA;AAAA,UACf,MAAM,KAAK;AAAA,UACX,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACtB,CAAS;AAAA,MACF;AAAA,IACF,GAlBqB;AAAA,IAmBtB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,YAAI,QAAQ,KAAK,WAAW,aAAa;AACzC,YAAI,UAAU,SAAS;AACrB,cAAI,QAAQ;AACZ,cAAImC,QAAO,sBAAsB,KAAK,KAAK,+BAA+B;AAC1E,cAAIA,OAAM;AACR,oBAAQ,cAAcA,KAAI,IAAI,WAAWA,MAAK,MAAM,SAAS,CAAC;AAAA,UAC/D;AACD,eAAK,YAAY,QAAQ,QAAQ;AAAA,QAC3C,OAAe;AACL,cAAI,OAAO;AACX,cAAIC,QAAO,0BAA0B,KAAK,KAAK,+BAA+B;AAC9E,cAAIA,OAAM;AACR,mBAAO,cAAcA,KAAI,IAAI,WAAWA,MAAK,MAAM,QAAQ,CAAC;AAAA,UAC7D;AACD,eAAK,YAAY,OAAO,OAAO;AAAA,QAChC;AAAA,MACF;AAAA,IACF,GAnBqB;AAAA,IAoBtB,wBAAwB,gCAAS,uBAAuB,QAAQ;AAC9D,aAAO,KAAK,8BAA8B,KAAK,4BAA4B,MAAM,IAAI;AAAA,IACtF,GAFuB;AAAA,EAGzB;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,YAAY,KAAK,QAAQ,IAAI,KAAK,YAAY,KAAK,QAAQ,EAAE,OAAO,KAAK;AAAA,IACtF,GAFe;AAAA,IAGhB,OAAO,gCAAS,QAAQ;AACtB,aAAO,KAAK,WAAW,OAAO;AAAA,IAC/B,GAFM;AAAA,IAGP,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,CAAC,KAAK,WAAW,WAAW,GAAG,KAAK,WAAW,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;AAAA,IACpF,GAFe;AAAA,IAGhB,gBAAgB,gCAAS,iBAAiB;AACxC,UAAI,YAAY,KAAK,WAAW,WAAW;AAC3C,UAAI,cAAc,KAAK,WAAW,OAAO;AACzC,aAAO,KAAK,WAAW,QAAQ,IAAI,CAAC,aAAa,WAAW,KAAK,WAAW,IAAI,CAAC,aAAa,SAAS;AAAA,IACxG,GAJe;AAAA,IAKhB,SAAS,gCAAS,UAAU;AAC1B,aAAO,KAAK,uBAAuB,SAAS;AAAA,IAC7C,GAFQ;AAAA,IAGT,gBAAgB,gCAAS,iBAAiB;AACxC,UAAI,mBAAmB,KAAK,uBAAuB,kBAAkB;AACrE,aAAO,oBAAoB,iBAAiB,KAAK,UAAU;AAAA,QACzD,WAAW,KAAK;AAAA,QAChB,WAAW,KAAK,UAAU;AAAA,QAC1B,UAAU,KAAK,UAAU,KAAK,uBAAuB,SAAS,EAAE,SAAS;AAAA,QACzE,UAAU,KAAK,QAAQ,MAAM;AAAA,QAC7B,SAAS,KAAK,QAAQ,MAAM;AAAA,QAC5B,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GAXe;AAAA,IAYhB,uBAAuB,gCAAS,wBAAwB;AACtD,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,gBAAgB,KAAK,UAAU,OAAO,OAAO,KAAK,YAAY,KAAK,UAAU,OAAO,OAAO,KAAK,cAAc;AAAA,IAC/J,GAFsB;AAAA,IAGvB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,UAAU;AAAA,IACxF,GAFoB;AAAA,IAGrB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,WAAW;AAAA,IACzF,GAFoB;AAAA,IAGrB,uBAAuB,gCAAS,wBAAwB;AACtD,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,aAAa;AAAA,IAC3F,GAFsB;AAAA,EAGxB;AAAA,EACD,YAAY;AAAA,IACV,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,QAAQC;AAAAA,IACR,iBAAiBC;AAAAA,IACjB,kBAAkBC;AAAAA,IAClB,UAAUC;AAAAA,IACV,YAAYC;AAAAA,IACZ,WAAWZ;AAAAA,IACX,WAAWa;AAAAA,EACZ;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUxE,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,IAAI,eAAe,CAAC,WAAW,WAAW,2BAA2B,0BAA0B,uBAAuB,sBAAsB;AAC5I,IAAI,eAAe,CAAC,iBAAiB,iBAAiB,YAAY;AAClE,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,2BAA2B,iBAAiB,eAAe;AAC/D,MAAI,wBAAwB,iBAAiB,YAAY;AACzD,MAAI,sBAAsB,iBAAiB,UAAU;AACrD,MAAI,6BAA6B,iBAAiB,iBAAiB;AACnE,MAAI,8BAA8B,iBAAiB,kBAAkB;AACrE,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,SAAS,WAAW,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IAC1E,KAAK;AAAA,IACL,OAAO,SAAS;AAAA,IAChB,SAAS,SAAS;AAAA,IAClB,MAAM;AAAA,EACV,GAAK,gBAAgB,gBAAgB,CAAA,GAAI,SAAS,YAAY,MAAM,CAAC,GAAG,SAAS,YAAY,UAAU,CAAC,CAAC,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,SAAS,OAAO,GAAG;AAAA,IAC5L,MAAM,OAAO;AAAA,IACb,QAAQ,OAAO;AAAA,IACf,OAAO,SAAS;AAAA,IAChB,OAAO,OAAO;AAAA,IACd,WAAW,OAAO;AAAA,IAClB,gBAAgB,SAAS;AAAA,EAC7B,GAAK,MAAM,GAAG,CAAC,QAAQ,UAAU,SAAS,SAAS,aAAa,gBAAgB,CAAC,EAAC,GAAI,EAAE,MAAM,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IAC3I,KAAK;AAAA,IACL,OAAO,SAAS;AAAA,IAChB,SAAS,SAAS;AAAA,IAClB,SAAS,SAAS,WAAW,SAAS;AAAA,IACtC,SAAS,SAAS,WAAW,SAAS;AAAA,IACtC,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,WAAW,SAAS,QAAQ,MAAM,UAAU,SAAS;AAAA,IAC3E;AAAA,IACI,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,aAAO,SAAS,aAAa,SAAS,UAAU,MAAM,UAAU,SAAS;AAAA,IAC/E;AAAA,IACI,MAAM;AAAA,EACP,GAAE,gBAAgB,gBAAgB,CAAE,GAAE,SAAS,YAAY,MAAM,CAAC,GAAG,SAAS,YAAY,UAAU,CAAC,GAAG;AAAA,IACvG,2BAA2B,SAAS,WAAW,eAAe,KAAK;AAAA,IACnE,0BAA0B,SAAS,WAAY;AAAA,IAC/C,uBAAuB,MAAM;AAAA,IAC7B,wBAAwB,SAAS,WAAW,QAAQ;AAAA,EACxD,CAAG,GAAG,CAAC,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,QAAQ,CAAC,MAAM,aAAa,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,SAAS,IAAI,GAAG;AAAA,IAC/J,KAAK;AAAA,IACL,MAAM,OAAO;AAAA,IACb,QAAQ,OAAO;AAAA,IACf,OAAO,SAAS;AAAA,IAChB,OAAO,OAAO;AAAA,IACd,WAAW,OAAO;AAAA,IAClB,oBAAoB,SAAS;AAAA,IAC7B,oBAAoB,SAAS;AAAA,EAC9B,GAAE,MAAM,GAAG,CAAC,QAAQ,UAAU,SAAS,SAAS,aAAa,sBAAsB,oBAAoB,CAAC,KAAK,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,UAAU,MAAM,aAAa,UAAS,GAAI,YAAY,wBAAwB,OAAO,OAAO,SAAS,MAAM,GAAG;AAAA,IAC3Q,KAAK;AAAA,IACL,MAAM,SAAS;AAAA,IACf,QAAQ,OAAO;AAAA,IACf,OAAO,SAAS;AAAA,IAChB,OAAO,OAAO;AAAA,IACd,WAAW,OAAO;AAAA,IAClB,oBAAoB,SAAS;AAAA,IAC7B,sBAAsB,SAAS;AAAA,EACnC,GAAK,MAAM,GAAG,CAAC,QAAQ,UAAU,SAAS,SAAS,aAAa,sBAAsB,sBAAsB,CAAC,KAAK,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,QAAQ,CAAC,OAAO,OAAO,SAAS,UAAU,MAAM,aAAa,UAAS,GAAI,YAAY,wBAAwB,OAAO,OAAO,SAAS,IAAI,GAAG;AAAA,IAC3S,KAAK;AAAA,IACL,MAAM,SAAS;AAAA,IACf,QAAQ,OAAO;AAAA,IACf,OAAO,SAAS;AAAA,IAChB,OAAO,OAAO;AAAA,IACd,WAAW,OAAO;AAAA,EACtB,GAAK,MAAM,GAAG,CAAC,QAAQ,UAAU,SAAS,SAAS,WAAW,CAAC,KAAK,SAAS,WAAW,eAAe,KAAK,UAAW,GAAE,mBAAmB,UAAU;AAAA,IAClJ,KAAK;AAAA,EACT,GAAK,CAAC,SAAS,WAAW,eAAe,MAAM,YAAY,UAAS,GAAI,YAAY,0BAA0B;AAAA,IAC1G,KAAK;AAAA,IACL,OAAO,OAAO;AAAA,IACd,MAAM,OAAO;AAAA,IACb,SAAS,OAAO;AAAA,IAChB,UAAU,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACpD,aAAO,SAAS,mBAAmB,QAAQ,OAAO,QAAQ;AAAA,IAChE;AAAA,IACI,QAAQ,OAAO;AAAA,IACf,OAAO,OAAO;AAAA,IACd,UAAU,KAAK;AAAA,IACf,IAAI,KAAK;AAAA,EACb,GAAK,MAAM,GAAG,CAAC,SAAS,QAAQ,WAAW,UAAU,SAAS,YAAY,IAAI,CAAC,KAAK,SAAS,WAAW,eAAe,MAAM,cAAc,UAAS,GAAI,YAAY,uBAAuB;AAAA,IACvL,KAAK;AAAA,IACL,OAAO,OAAO;AAAA,IACd,SAAS,OAAO;AAAA,IAChB,yBAAyB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IAC1E,iBAAiB,OAAO,WAAW,OAAO;AAAA,IAC1C,UAAU,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACpD,aAAO,SAAS,sBAAsB,QAAQ,OAAO,QAAQ;AAAA,IACnE;AAAA,IACI,QAAQ,OAAO;AAAA,IACf,OAAO,OAAO;AAAA,IACd,UAAU,KAAK;AAAA,IACf,IAAI,KAAK;AAAA,EACV,GAAE,MAAM,GAAG,CAAC,SAAS,WAAW,2BAA2B,iBAAiB,UAAU,SAAS,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,SAAS,WAAW,YAAY,KAAK,aAAa,mBAAmB,UAAU;AAAA,IACzO,KAAK;AAAA,EACT,GAAK,CAAC,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,kBAAkB,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,SAAS,cAAc,GAAG;AAAA,IAC9J,KAAK;AAAA,IACL,SAAS,eAAe,KAAK,GAAG,sBAAsB,CAAC;AAAA,EACxD,GAAE,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,WAAW,gBAAgB,KAAK,UAAS,GAAI,mBAAmB,KAAK,WAAW;AAAA,IACjH,KAAK;AAAA,IACL,SAAS,CAAC,KAAK,GAAG,sBAAsB,GAAG,SAAS,WAAW,gBAAgB,CAAC;AAAA,EACjF,GAAE,SAAS,YAAY,sBAAsB,CAAC,GAAG,MAAM,EAAE,MAAM,UAAW,GAAE,YAAY,qBAAqB,WAAW;AAAA,IACvH,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,sBAAsB;AAAA,EAC3C,GAAK,SAAS,YAAY,sBAAsB,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,SAAS,WAAW,UAAU,IAAI,gBAAgB,aAAa,mBAAmB,UAAU,WAAW;AAAA,IACtL,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,iBAAiB;AAAA,IAClC,MAAM;AAAA,IACN,iBAAiB,OAAO;AAAA,IACxB,iBAAiB,OAAO;AAAA,IACxB,cAAc,SAAS;AAAA,IACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,aAAa,SAAS,UAAU,MAAM,UAAU,SAAS;AAAA,IAC/E;AAAA,EACA,GAAK,SAAS,YAAY,iBAAiB,GAAG;AAAA,IAC1C,yBAAyB;AAAA,EAC7B,CAAG,GAAG,CAAC,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,kBAAkB,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,SAAS,cAAc,GAAG;AAAA,IAC/J,KAAK;AAAA,IACL,SAAS,eAAe,KAAK,GAAG,eAAe,CAAC;AAAA,IAChD,aAAa,OAAO;AAAA,EACxB,GAAK,MAAM,GAAG,CAAC,SAAS,aAAa,CAAC,MAAM,UAAS,GAAI,mBAAmB,UAAU;AAAA,IAClF,KAAK;AAAA,EACT,GAAK,CAAC,OAAO,iBAAiB,OAAO,mBAAmB,UAAW,GAAE,mBAAmB,QAAQ;AAAA,IAC5F,KAAK;AAAA,IACL,SAAS,eAAe,CAAC,KAAK,GAAG,eAAe,GAAG,OAAO,eAAe,CAAC;AAAA,EAC3E,GAAE,MAAM,CAAC,KAAK,OAAO,iBAAiB,CAAC,OAAO,mBAAmB,UAAW,GAAE,YAAY,4BAA4B,WAAW;AAAA,IAChI,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,eAAe;AAAA,EACpC,GAAK,SAAS,YAAY,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,iBAAiB,OAAO,oBAAoB,UAAW,GAAE,mBAAmB,QAAQ;AAAA,IAC7J,KAAK;AAAA,IACL,SAAS,eAAe,CAAC,KAAK,GAAG,eAAe,GAAG,OAAO,gBAAgB,CAAC;AAAA,EAC5E,GAAE,MAAM,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,OAAO,oBAAoB,UAAW,GAAE,YAAY,6BAA6B,WAAW;AAAA,IACnI,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,eAAe;AAAA,EACpC,GAAK,SAAS,YAAY,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,YAAY,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,OAAO,aAAa,SAAS,SAAS,WAAW,WAAW,KAAK,UAAW,GAAE,mBAAmB,UAAU;AAAA,IAC/P,KAAK;AAAA,EACT,GAAK,CAAC,CAAC,MAAM,aAAa,UAAS,GAAI,YAAY,mBAAmB,WAAW;AAAA,IAC7E,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,iBAAiB;AAAA,IAClC,cAAc,SAAS;AAAA,IACvB,UAAU,KAAK;AAAA,IACf,SAAS,SAAS;AAAA,EACtB,GAAK,OAAO,gBAAgB,MAAM;AAAA,IAC9B,IAAI,SAAS,YAAY,iBAAiB;AAAA,IAC1C,yBAAyB;AAAA,EAC7B,CAAG,GAAG;AAAA,IACF,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,qBAAqB,YAAY,GAAG,WAAW;AAAA,QACxJ,SAAS,UAAU,OAAO;AAAA,MAC3B,GAAE,SAAS,YAAY,iBAAiB,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,IAC/E,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,IAAI,CAAC,SAAS,cAAc,YAAY,WAAW,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,MAAM,aAAa,UAAS,GAAI,YAAY,mBAAmB,WAAW;AAAA,IACtK,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,iBAAiB;AAAA,IAClC,cAAc,SAAS;AAAA,IACvB,UAAU,KAAK;AAAA,IACf,SAAS,SAAS;AAAA,EACtB,GAAK,OAAO,gBAAgB,MAAM;AAAA,IAC9B,IAAI,SAAS,YAAY,iBAAiB;AAAA,IAC1C,yBAAyB;AAAA,EAC7B,CAAG,GAAG;AAAA,IACF,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,qBAAqB,WAAW,GAAG,WAAW;AAAA,QACvJ,SAAS,UAAU,OAAO;AAAA,MAC3B,GAAE,SAAS,YAAY,iBAAiB,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,IAC/E,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,IAAI,CAAC,SAAS,cAAc,YAAY,WAAW,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,MAAM,aAAa,UAAS,GAAI,YAAY,mBAAmB,WAAW;AAAA,IACtK,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,mBAAmB;AAAA,IACpC,cAAc,SAAS;AAAA,IACvB,UAAU,KAAK;AAAA,IACf,SAAS,SAAS;AAAA,EACtB,GAAK,OAAO,gBAAgB,QAAQ;AAAA,IAChC,IAAI,SAAS,YAAY,mBAAmB;AAAA,IAC5C,yBAAyB;AAAA,EAC7B,CAAG,GAAG;AAAA,IACF,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,uBAAuB,WAAW,GAAG,WAAW;AAAA,QACzJ,SAAS,UAAU,OAAO;AAAA,MAC3B,GAAE,SAAS,YAAY,mBAAmB,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,IACjF,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,IAAI,CAAC,SAAS,cAAc,YAAY,WAAW,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,UAAW,GAAE,mBAAmB,UAAU;AAAA,IAC/I,KAAK;AAAA,EACN,GAAE,CAAC,gBAAgB,gBAAgB,SAAS,iBAAkB,CAAA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,YAAY;AAChG;AAxLS;AA0LT,SAAS,SAAS;AAElB,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUhD,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,6BAA6B,GAAG,GAAG;AAAE,MAAI,IAAI,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,CAAC,GAAG;AAAE,QAAI,MAAM,QAAQ,CAAC,MAAM,IAAI,8BAA8B,CAAC,MAAM,GAAG;AAAE,YAAM,IAAI;AAAI,UAAI,KAAK,GAAG,IAAI,gCAASyE,KAAI;AAAA,MAAA,GAAb;AAAiB,aAAO,EAAE,GAAG,GAAG,GAAG,gCAAS,IAAI;AAAE,eAAO,MAAM,EAAE,SAAS,EAAE,MAAM,KAAE,IAAK,EAAE,MAAM,OAAI,OAAO,EAAE,IAAI,EAAG;AAAA,MAAG,GAArF,MAAuF,GAAG,gCAASC,GAAE1B,IAAG;AAAE,cAAMA;AAAA,MAAI,GAA1B,MAA4B,GAAG,EAAC;AAAA,IAAG;AAAG,UAAM,IAAI,UAAU,uIAAuI;AAAA,EAAI;AAAC,MAAI,GAAG,IAAI,MAAI,IAAI;AAAI,SAAO,EAAE,GAAG,gCAAS,IAAI;AAAE,QAAI,EAAE,KAAK,CAAC;AAAA,EAAI,GAA/B,MAAiC,GAAG,gCAAS,IAAI;AAAE,QAAIA,KAAI,EAAE,KAAM;AAAE,WAAO,IAAIA,GAAE,MAAMA;AAAA,EAAE,GAAtD,MAA0D,GAAG,gCAAS0B,GAAE1B,IAAG;AAAE,QAAI,MAAI,IAAIA;AAAA,EAAI,GAAhC,MAAkC,GAAG,gCAAS,IAAI;AAAE,QAAI;AAAE,WAAK,QAAQ,EAAE,QAAQ,KAAK,EAAE,QAAQ,EAAG;AAAA,IAAG,UAAA;AAAW,UAAI,EAAG,OAAM;AAAA,IAAE;AAAA,EAAI,GAA/F,KAA+F;AAAK;AAAnzB;AACT,SAAS,8BAA8B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAO,oBAAoB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAI,oBAAoB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAvX;AACT,SAAS,oBAAoB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA7I;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUA,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWzC;AAAAA,EACX,OAAO,CAAC,mBAAmB,aAAa,gBAAgB,kBAAkB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,iBAAiB,eAAe,YAAY,cAAc,gBAAgB,mBAAmB,kBAAkB,sBAAsB,oBAAoB,iBAAiB,iBAAiB,mBAAmB,qBAAqB;AAAA,EAC9X,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM,CAAC,OAAO,QAAQ,QAAQ;AAAA,MAC9B,WAAW;AAAA,IACZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM,CAAC,OAAO,MAAM;AAAA,MACpB,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM,CAAC,OAAO,MAAM;AAAA,MACpB,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,6BAA6B;AAAA,MAC3B,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,2BAA2B;AAAA,MACzB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,MAAM,gCAAS0C,QAAO;AACpB,WAAO;AAAA,MACL,eAAe;AAAA,IACrB;AAAA,EACG,GAJK;AAAA,EAKN,OAAO;AAAA,IACL,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,MACX,SAAS,gCAAS,QAAQ,UAAU;AAClC,YAAI,QAAQ;AACZ,aAAK,gBAAgB,KAAK,WAAW,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,iBAAiB,KAAK,SAAS,KAAK,OAAO,CAAC,OAAO,SAAY,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,KAAK,SAAU,GAAG;AAC9O,iBAAO,MAAM,OAAO,MAAM,SAAS,CAAC;AAAA,QAC9C,CAAS;AAAA,MACF,GALQ;AAAA,IAMV;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,YAAY,gCAAS0B,YAAW,KAAK,MAAM;AACzC,aAAO,aAAa,KAAK,IAAI;AAAA,IAC9B,GAFW;AAAA;AAAA,IAIZ,aAAa,gCAASd,aAAY,KAAK;AACrC,UAAI,iBAAiB;AAAA,QACnB,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG;AAAA,QAChD,QAAQ;AAAA,MAChB,CAAO,GAAG,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG,cAAc,GAAG,KAAK,KAAK,KAAK,WAAW,CAAE,GAAE,IAAI,GAAG,KAAK,cAAc,CAAC;AAAA,IAC/G,GAXY;AAAA;AAAA,IAab,qBAAqB,gCAAS,oBAAoB,KAAK;AACrD,UAAI;AACJ,UAAI,aAAa,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAC7I,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,OAAO,KAAK;AAAA,UACZ,aAAa,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,cAAc,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU;AAAA,UAC3J,UAAU,KAAK;AAAA,UACf,cAAc,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,gBAAgB;AAAA,QAC/F;AAAA,MACT,CAAO;AAAA,IACF,GAXoB;AAAA,IAYrB,sBAAsB,gCAAS,qBAAqB,QAAQ;AAC1D,UAAI,WAAW,KAAK,WAAW,QAAQ,QAAQ;AAC/C,UAAI,KAAK,gBAAgB,CAAC,UAAU;AAClC,YAAIe,SAAQ,KAAK,WAAW,QAAQ,OAAO;AAC3C,YAAI,KAAK,iBAAiB,aAAa;AACrC,iBAAO,KAAK,gBAAgBA;AAAA,QACtC,WAAmB,KAAK,iBAAiB,WAAW;AAC1C,cAAI,KAAK,UAAU,MAAM,GAAG;AAC1B,gBAAI,cAAc,KAAK,MAAM,KAAK,WAAW,CAAC;AAC9C,gBAAI,aAAa;AACf,kBAAI,sBAAsB,iBAAiB,KAAK,MAAM,KAAK,QAAQ,GAAGA,MAAK;AAC3E,kBAAI,uBAAuB,iBAAiB,aAAaA,MAAK;AAC9D,qBAAO,wBAAwB;AAAA,YAC7C,OAAmB;AACL,qBAAO;AAAA,YACR;AAAA,UACb,OAAiB;AACL,mBAAO;AAAA,UACR;AAAA,QACF;AAAA,MACT,OAAa;AACL,eAAO,CAAC;AAAA,MACT;AAAA,IACF,GAvBqB;AAAA,IAwBtB,uBAAuB,gCAAS,sBAAsB,QAAQ;AAC5D,UAAI,KAAK,UAAU,MAAM,GAAG;AAC1B,YAAI,QAAQ,KAAK;AACjB,YAAIA,SAAQ,KAAK,WAAW,QAAQ,OAAO;AAC3C,YAAI,sBAAsB,iBAAiB,KAAK,MAAM,KAAK,GAAGA,MAAK;AACnE,YAAI,mBAAmB;AACvB,YAAI,eAAe;AACnB,eAAO,wBAAwB,kBAAkB;AAC/C;AACA,cAAI,cAAc,KAAK,MAAM,EAAE,KAAK;AACpC,cAAI,aAAa;AACf,+BAAmB,iBAAiB,aAAaA,MAAK;AAAA,UAClE,OAAiB;AACL;AAAA,UACD;AAAA,QACF;AACD,eAAO,iBAAiB,IAAI,OAAO;AAAA,MAC3C,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GApBsB;AAAA,IAqBvB,WAAW,gCAAS,UAAU,QAAQ;AACpC,UAAIA,SAAQ,KAAK,WAAW,QAAQ,OAAO;AAC3C,UAAI,KAAK,eAAeA,QAAO;AAC7B,YAAI,MAAM,QAAQ,KAAK,WAAW,EAAG,QAAO,KAAK,YAAY,QAAQA,MAAK,IAAI;AAAA,YAAQ,QAAO,KAAK,gBAAgBA;AAAA,MAC1H,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAPU;AAAA,IAQX,sBAAsB,gCAAS,qBAAqB3B,QAAM;AACxD,aAAO,KAAK,UAAUA,QAAM,KAAK,SAAS;AAAA,IAC3C,GAFqB;AAAA,IAGtB,WAAW,gCAAS,UAAUA,QAAM,YAAY;AAC9C,UAAI,QAAQ;AACZ,UAAI,cAAc,WAAW,QAAQ;AACnC,iBAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC1C,cAAI,KAAK,OAAOA,QAAM,WAAW,CAAC,CAAC,GAAG;AACpC,oBAAQ;AACR;AAAA,UACD;AAAA,QACF;AAAA,MACF;AACD,aAAO;AAAA,IACR,GAXU;AAAA,IAYX,QAAQ,gCAAS,SAAS,OAAO4B,QAAO;AACtC,aAAO,KAAK,uBAAuB,WAAW,UAAUA,SAAQ,OAAO,OAAOA,QAAO,KAAK,OAAO;AAAA,IAClG,GAFO;AAAA,IAGR,kBAAkB,gCAAS,iBAAiB/C,QAAO;AACjD,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,MACnB,CAAO;AAAA,IACF,GALiB;AAAA,IAMlB,YAAY,gCAAS,WAAWA,QAAO;AACrC,WAAK,MAAM,aAAa;AAAA,QACtB,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,QACX,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GANW;AAAA,IAOZ,eAAe,gCAAS,cAAcA,QAAO;AAC3C,WAAK,MAAM,gBAAgB;AAAA,QACzB,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,QACX,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GANc;AAAA,IAOf,iBAAiB,gCAAS,gBAAgBA,QAAO;AAC/C,WAAK,MAAM,kBAAkB;AAAA,QAC3B,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,QACX,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GANgB;AAAA,IAOjB,eAAe,gCAAS,cAAcA,QAAO;AAC3C,WAAK,MAAM,gBAAgBA,MAAK;AAAA,IACjC,GAFc;AAAA,IAGf,cAAc,gCAAS,aAAaA,QAAO;AACzC,WAAK,MAAM,eAAe;AAAA,QACxB,eAAeA;AAAA,QACf,MAAM,KAAK;AAAA,QACX,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GANa;AAAA,IAOd,gBAAgB,gCAAS,eAAeA,QAAO;AAC7C,WAAK,MAAM,iBAAiBA,MAAK;AAAA,IAClC,GAFe;AAAA,IAGhB,gBAAgB,gCAAS,eAAeA,QAAO;AAC7C,WAAK,MAAM,iBAAiB;AAAA,QAC1B,eAAeA;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GALe;AAAA,IAMhB,eAAe,gCAAS,cAAcA,QAAO;AAC3C,WAAK,MAAM,gBAAgB;AAAA,QACzB,eAAeA;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GALc;AAAA,IAMf,gBAAgB,gCAAS,eAAeA,QAAO;AAC7C,WAAK,MAAM,iBAAiBA,MAAK;AAAA,IAClC,GAFe;AAAA,IAGhB,cAAc,gCAAS,aAAaA,QAAO;AACzC,WAAK,MAAM,eAAeA,MAAK;AAAA,IAChC,GAFa;AAAA,IAGd,WAAW,gCAAS,UAAUA,QAAO;AACnC,WAAK,MAAM,YAAYA,MAAK;AAAA,IAC7B,GAFU;AAAA,IAGX,aAAa,gCAAS,YAAYA,QAAO;AACvC,WAAK,gBAAgB,CAAC,KAAK;AAC3B,WAAK,MAAM,cAAc,gBAAgB,gBAAgB,IAAIA,MAAK,GAAG,IAAI;AAAA,QACvE,UAAU,KAAK;AAAA,MAChB,CAAA,CAAC;AAAA,IACH,GALY;AAAA,IAMb,eAAe,gCAAS,cAAcA,QAAO;AAC3C,WAAK,MAAM,gBAAgBA,MAAK;AAAA,IACjC,GAFc;AAAA,IAGf,kBAAkB,gCAAS,iBAAiBA,QAAO;AACjD,WAAK,MAAM,mBAAmBA,MAAK;AAAA,IACpC,GAFiB;AAAA,IAGlB,gBAAgB,gCAAS,eAAeA,QAAO;AAC7C,WAAK,MAAM,kBAAkBA,MAAK;AAAA,IACnC,GAFe;AAAA,IAGhB,oBAAoB,gCAAS,mBAAmBA,QAAO;AACrD,WAAK,MAAM,sBAAsBA,MAAK;AAAA,IACvC,GAFmB;AAAA,IAGpB,kBAAkB,gCAAS,iBAAiBA,QAAO;AACjD,WAAK,MAAM,oBAAoBA,MAAK;AAAA,IACrC,GAFiB;AAAA,IAGlB,eAAe,gCAASgD,eAAchD,QAAO;AAC3C,WAAK,MAAM,iBAAiBA,MAAK;AAAA,IAClC,GAFc;AAAA,IAGf,eAAe,gCAASiD,eAAcjD,QAAO;AAC3C,WAAK,MAAM,iBAAiBA,MAAK;AAAA,IAClC,GAFc;AAAA,IAGf,iBAAiB,gCAASkD,iBAAgBlD,QAAO;AAC/C,WAAK,MAAM,mBAAmBA,MAAK;AAAA,IACpC,GAFgB;AAAA,IAGjB,qBAAqB,gCAAS,oBAAoBA,QAAO;AACvD,WAAK,MAAM,uBAAuBA,MAAK;AAAA,IACxC,GAFoB;AAAA,IAGrB,wBAAwB,gCAASmD,wBAAuB,QAAQ,SAAS;AACvE,gBAAU,WAAW,KAAK;AAC1B,aAAO,UAAU,QAAQ,MAAM,IAAI;AAAA,IACpC,GAHuB;AAAA,EAIzB;AAAA,EACD,UAAU;AAAA,IACR,UAAU,gCAAS,WAAW;AAC5B,UAAI,iBAAiB,KAAK,uBAAuB,gBAAgB;AACjE,aAAO,iBAAiB,eAAe,KAAK,KAAK,EAAE,QAAQ,KAAK;AAAA,IACjE,GAHS;AAAA,IAIV,WAAW,gCAAS,YAAY;AAC9B,UAAI;AACJ,cAAQ,iBAAiB,KAAK,cAAc,QAAQ,mBAAmB,SAAS,SAAS,eAAe,KAAK,MAAM,KAAK,OAAO;AAAA,IAChI,GAHU;AAAA,IAIX,YAAY,gCAAS,aAAa;AAChC,UAAI,gBAAgB,CAAA;AACpB,UAAI,sBAAsB;AAC1B,UAAI,KAAK,UAAU;AACjB,YAAI,gBAAgB,KAAK,SAAS,KAAK,OAAO;AAC9C,YAAI,eAAe;AACjB,wBAAc,KAAK,aAAa;AAAA,QACjC;AAAA,MACF;AACD,UAAI,KAAK,SAAS;AAChB,YAAI,YAAY,6BAA6B,KAAK,OAAO,GACvD;AACF,YAAI;AACF,eAAK,UAAU,EAAC,GAAI,EAAE,QAAQ,UAAU,EAAG,GAAE,QAAO;AAClD,gBAAI,MAAM,MAAM;AAChB,gBAAI,iBAAiB,KAAK,WAAW,KAAK,eAAe;AACzD,gBAAI,WAAW,cAAc,GAAG;AAC9B,oCAAsB;AACtB;AAAA,YACD;AAAA,UACF;AAAA,QACF,SAAQ,KAAK;AACZ,oBAAU,EAAE,GAAG;AAAA,QACzB,UAAkB;AACR,oBAAU,EAAC;AAAA,QACZ;AAAA,MACF;AACD,aAAO,CAAC,KAAK,GAAG,OAAO;AAAA,QACrB,SAAS,KAAK;AAAA,QACd,OAAO,KAAK;AAAA,QACZ;AAAA,MACR,CAAO,GAAG,aAAa;AAAA,IAClB,GAhCW;AAAA,IAiCZ,aAAa,gCAAS,cAAc;AAClC,UAAI,KAAK,cAAc,SAAS,KAAK,kBAAkB,YAAY,KAAK,kBAAkB,aAAa;AACrG,eAAO,KAAK,aAAa,IAAI,IAAI;AAAA,MAClC;AACD,aAAO;AAAA,IACR,GALY;AAAA,IAMb,cAAc,gCAAS,eAAe;AACpC,UAAI,KAAK,WAAW,KAAK,aAAa;AACpC,YAAI,KAAK,QAAS,QAAO,KAAK,iBAAiB,KAAK,eAAe,iBAAiB,KAAK,SAAS,KAAK,OAAO,CAAC,MAAM,SAAY;AAAA,YAAW,QAAO,KAAK,UAAU,KAAK,SAAS,KAAK,WAAW,IAAI;AAAA,MACrM;AACD,aAAO;AAAA,IACR,GALa;AAAA,IAMd,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,KAAK,uBAAuB,KAAK,mBAAmB;AACtD,YAAI,kBAAkB,iBAAiB,KAAK,SAAS,KAAK,WAAW;AACrE,eAAO,KAAK,kBAAkB,QAAQ,eAAe,IAAI;AAAA,MAC1D;AACD,aAAO;AAAA,IACR,GANmB;AAAA,IAOpB,YAAY,gCAAS,aAAa;AAChC,UAAI,KAAK,WAAW,KAAK,WAAW;AAClC,YAAI,KAAK,SAAS;AAChB,iBAAO,KAAK,gBAAgB,KAAK,cAAc,iBAAiB,KAAK,SAAS,KAAK,OAAO,CAAC,MAAM,SAAY;AAAA,QACvH,OAAe;AACL,cAAI,KAAK,qBAAqB,MAAO,QAAO,KAAK,qBAAqB,KAAK,OAAO,IAAI;AAAA,cAAQ,QAAO,KAAK,OAAO,KAAK,SAAS,KAAK,SAAS;AAAA,QAC9I;AAAA,MACF;AACD,aAAO;AAAA,IACR,GATW;AAAA,IAUZ,2BAA2B,gCAAS,4BAA4B;AAC9D,UAAI,KAAK,WAAW,KAAK,sBAAsB;AAC7C,eAAO,KAAK,OAAO,KAAK,SAAS,KAAK,sBAAsB,KAAK,OAAO;AAAA,MACzE;AACD,aAAO;AAAA,IACR,GAL0B;AAAA,IAM3B,4BAA4B,gCAAS,6BAA6B;AAChE,UAAI,sBAAsB,iBAAiB,KAAK,SAAS,KAAK,WAAW;AACzE,UAAI,cAAc,KAAK,MAAM,KAAK,WAAW,CAAC;AAC9C,UAAI,aAAa;AACf,YAAI,uBAAuB,iBAAiB,aAAa,KAAK,WAAW;AACzE,eAAO,wBAAwB;AAAA,MACvC,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAT2B;AAAA,IAU5B,4BAA4B,gCAAS,6BAA6B;AAChE,UAAI,KAAK,uBAAuB,CAAC,KAAK,oBAAoB;AACxD,eAAO;AAAA,MACf,OAAa;AACL,YAAI,sBAAsB,iBAAiB,KAAK,SAAS,KAAK,WAAW;AACzE,YAAI,cAAc,KAAK,MAAM,KAAK,WAAW,CAAC;AAC9C,YAAI,aAAa;AACf,cAAI,mBAAmB,iBAAiB,aAAa,KAAK,WAAW;AACrE,iBAAO,wBAAwB;AAAA,QACzC,OAAe;AACL,iBAAO;AAAA,QACR;AAAA,MACF;AAAA,IACF,GAb2B;AAAA,IAc5B,eAAe,gCAAS,gBAAgB;AACtC,UAAI,SAAS;AACb,UAAI,KAAK,SAAS;AAChB,YAAI,kBAAkB;AACtB,aAAK,QAAQ,QAAQ,SAAU,QAAQ;AACrC,cAAI,OAAO,WAAW,QAAQ,eAAe,MAAM,SAAU;AAC7D,cAAI,OAAO,WAAW,QAAQ,QAAQ,EAAG;AAAA,QACnD,CAAS;AACD,eAAO,KAAK,QAAQ,SAAS;AAAA,MAC9B;AACD,aAAO;AAAA,IACR,GAXc;AAAA,EAYhB;AAAA,EACD,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,iBAAiBb;AAAAA,IACjB,kBAAkBC;AAAAA,EACnB;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUrE,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,IAAI,eAAe,CAAC,SAAS;AAC7B,IAAI,eAAe,CAAC,YAAY,iBAAiB,gBAAgB,yBAAyB,mBAAmB,6BAA6B;AAC1I,IAAI,aAAa,CAAC,IAAI;AACtB,IAAI,aAAa,CAAC,SAAS;AAC3B,IAAI,aAAa,CAAC,SAAS;AAC3B,IAAI,aAAa,CAAC,SAAS;AAC3B,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,6BAA6B,iBAAiB,iBAAiB;AACnE,MAAI,8BAA8B,iBAAiB,kBAAkB;AACrE,MAAI,wBAAwB,iBAAiB,YAAY;AACzD,SAAO,CAAC,OAAO,SAAS,UAAS,GAAI,mBAAmB,UAAU;AAAA,IAChE,KAAK;AAAA,EACN,GAAE,CAAC,OAAO,UAAU,aAAa,KAAK,OAAO,iBAAiB,eAAe,SAAS,8BAA8B,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,IACpK,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,gBAAgB;AAAA,IACjC,OAAO,OAAO;AAAA,IACd,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAACpD,gBAAmB,MAAM,WAAW;AAAA,IACnE,SAAS,SAAS,gBAAgB;AAAA,EACtC,GAAK,gBAAgB,gBAAgB,IAAI,SAAS,YAAY,UAAU,CAAC,GAAG,KAAK,IAAI,oBAAoB,CAAC,CAAC,GAAG,CAAC,OAAO,uBAAuB,aAAa,mBAAmB,UAAU,WAAW;AAAA,IAC9L,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,iBAAiB;AAAA,IAClC,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,oBAAoB,SAAS,iBAAiB,MAAM,UAAU,SAAS;AAAA,IAC7F;AAAA,IACI,MAAM;AAAA,EACP,GAAE,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,UAAU,eAAe,KAAK,OAAO,UAAU,qBAAqB,KAAK,aAAa,YAAY,wBAAwB,OAAO,UAAU,eAAe,KAAK,OAAO,UAAU,qBAAqB,CAAC,GAAG;AAAA,IAChP,KAAK;AAAA,IACL,UAAU,SAAS;AAAA,EACvB,GAAK,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,UAAW,GAAE,mBAAmB,UAAU;AAAA,IACtE,KAAK;AAAA,EACT,GAAK,CAAC,SAAS,sBAAsB,OAAO,mBAAmB,aAAa,mBAAmB,QAAQ,WAAW;AAAA,IAC9G,KAAK;AAAA,IACL,SAAS,CAAC,KAAK,GAAG,eAAe,GAAG,OAAO,eAAe;AAAA,EAC9D,GAAK,KAAK,IAAI,eAAe,CAAC,GAAG,MAAM,EAAE,KAAK,SAAS,sBAAsB,CAAC,OAAO,mBAAmB,UAAW,GAAE,YAAY,4BAA4B,WAAW;AAAA,IACpK,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,eAAe;AAAA,EACpC,GAAK,KAAK,IAAI,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,sBAAsB,OAAO,oBAAoB,UAAS,GAAI,mBAAmB,QAAQ,WAAW;AAAA,IACnK,KAAK;AAAA,IACL,SAAS,CAAC,KAAK,GAAG,eAAe,GAAG,OAAO,gBAAgB;AAAA,EAC/D,GAAK,KAAK,IAAI,eAAe,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,SAAS,sBAAsB,CAAC,OAAO,oBAAoB,UAAW,GAAE,YAAY,6BAA6B,WAAW;AAAA,IACvK,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,eAAe;AAAA,EACjC,GAAE,KAAK,IAAI,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,IAAI,aAAa,YAAY,wBAAwB,OAAO,UAAU,aAAa,CAAC,GAAG;AAAA,IACpN,MAAM,OAAO;AAAA,IACb,OAAO,SAAS;AAAA,EACjB,GAAE,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,IAAI,OAAO,sBAAsB,SAAS,qBAAqB,SAAS,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IAC/M,KAAK;AAAA,IACL,SAAS,SAAS;AAAA,IAClB,OAAO,SAAS;AAAA,IAChB,UAAU,SAAS;AAAA,IACnB,MAAM;AAAA,IACN,iBAAiB,OAAO,gBAAgB,SAAS,aAAa;AAAA,IAC9D,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,cAAc,SAAS,WAAW,MAAM,UAAU,SAAS;AAAA,IACjF;AAAA,IACI,YAAY,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAChD,aAAO,SAAS,iBAAiB,SAAS,cAAc,MAAM,UAAU,SAAS;AAAA,IACvF;AAAA,IACI,eAAe,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AACnD,aAAO,SAAS,mBAAmB,SAAS,gBAAgB,MAAM,UAAU,SAAS;AAAA,IAC3F;AAAA,IACI,YAAY,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAChD,aAAO,SAAS,iBAAiB,SAAS,cAAc,MAAM,UAAU,SAAS;AAAA,IACvF;AAAA,IACI,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,cAAc,WAAY;AAC7D,aAAO,SAAS,gBAAgB,SAAS,aAAa,MAAM,UAAU,SAAS;AAAA,IACrF,GAAO,CAAC,MAAM,CAAC;AAAA,IACX,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AACjD,aAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,IACzF;AAAA,IACI,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AACjD,aAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,IACzF;AAAA,IACI,YAAY,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAChD,aAAO,SAAS,iBAAiB,SAAS,cAAc,MAAM,UAAU,SAAS;AAAA,IACvF;AAAA,IACI,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AACjD,aAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,IACzF;AAAA,IACI,WAAW,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AACjD,aAAO,SAAS,gBAAgB,SAAS,aAAa,MAAM,UAAU,SAAS;AAAA,IACrF;AAAA,IACI,QAAQ,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AAC9C,aAAO,SAAS,aAAa,SAAS,UAAU,MAAM,UAAU,SAAS;AAAA,IAC/E;AAAA,EACA,GAAK,SAAS,oBAAoB,SAAS,GAAG;AAAA,IAC1C,gBAAgB,SAAS;AAAA,IACzB,yBAAyB,OAAO,gBAAgB,OAAO;AAAA,IACvD,mBAAmB,OAAO,aAAa,SAAS;AAAA,IAChD,+BAA+B,OAAO,wBAAwB,SAAS;AAAA,EACxE,CAAA,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,SAAS,SAAU,KAAK,GAAG;AACrG,WAAO,UAAS,GAAI,mBAAmB,UAAU,MAAM,CAAC,SAAS,qBAAqB,GAAG,KAAK,aAAa,YAAY,uBAAuB;AAAA,MAC5I,KAAK,SAAS,WAAW,KAAK,WAAW,KAAK,SAAS,WAAW,KAAK,OAAO,KAAK;AAAA,MACnF,SAAS,OAAO;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU,SAAS;AAAA,MACnB,OAAO;AAAA,MACP,UAAU,SAAS;AAAA,MACnB,WAAW,OAAO;AAAA,MAClB,SAAS,OAAO,iBAAiB,YAAY,SAAS,sBAAsB,GAAG,IAAI;AAAA,MACnF,UAAU,OAAO;AAAA,MACjB,SAAS,OAAO,aAAa,SAAS,SAAS;AAAA,MAC/C,aAAa,OAAO;AAAA,MACpB,6BAA6B,OAAO;AAAA,MACpC,cAAc,OAAO,gBAAgB,MAAM,SAAS,WAAW;AAAA,MAC/D,MAAM,OAAO;AAAA,MACb,eAAe,MAAM;AAAA,MACrB,iBAAiB,OAAO;AAAA,MACxB,kBAAkB,OAAO;AAAA,MACzB,iBAAiB,OAAO;AAAA,MACxB,eAAe,SAAS;AAAA,MACxB,kBAAkB,SAAS;AAAA,MAC3B,aAAa,SAAS;AAAA,MACtB,gBAAgB,SAAS;AAAA,MACzB,oBAAoB,SAAS;AAAA,MAC7B,kBAAkB,SAAS;AAAA,MAC3B,eAAe,SAAS;AAAA,MACxB,eAAe,SAAS;AAAA,MACxB,iBAAiB,SAAS;AAAA,MAC1B,qBAAqB,SAAS;AAAA,MAC9B,UAAU,KAAK;AAAA,MACf,IAAI,KAAK;AAAA,IACf,GAAO,MAAM,GAAG,CAAC,WAAW,UAAU,YAAY,SAAS,YAAY,aAAa,WAAW,YAAY,WAAW,eAAe,+BAA+B,gBAAgB,QAAQ,iBAAiB,mBAAmB,oBAAoB,mBAAmB,iBAAiB,oBAAoB,eAAe,kBAAkB,sBAAsB,oBAAoB,iBAAiB,iBAAiB,mBAAmB,uBAAuB,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,EAC1f,CAAG,GAAG,GAAG,EAAG,GAAE,IAAI,YAAY,KAAK,mBAAmB,IAAI,IAAI,GAAG,OAAO,UAAU,WAAW,KAAK,OAAO,gBAAgB,MAAM,iBAAiB,aAAa,mBAAmB,MAAM,WAAW;AAAA,IAC7L,KAAK;AAAA,IACL,IAAI,OAAO,gBAAgB,MAAM,SAAS,WAAW;AAAA,IACrD,SAAS,KAAK,GAAG,cAAc;AAAA,IAC/B,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,cAAc,CAAC,GAAG,CAACA,gBAAmB,MAAM,WAAW;AAAA,IACjE,SAAS,SAAS;AAAA,EACtB,GAAK,gBAAgB,gBAAgB,IAAI,SAAS,YAAY,UAAU,CAAC,GAAG,KAAK,IAAI,kBAAkB,CAAC,CAAC,GAAG,EAAE,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,WAAW,CAAC,GAAG;AAAA,IAC3L,MAAM,OAAO;AAAA,IACb,OAAO,SAAS;AAAA,EACjB,GAAE,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC,EAAG,GAAE,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,KAAK,mBAAmB,IAAI,IAAI,GAAG,OAAO,UAAU,aAAa,KAAK,OAAO,iBAAiB,eAAe,SAAS,8BAA8B,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,IACrQ,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,gBAAgB;AAAA,IACjC,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAACA,gBAAmB,MAAM,WAAW;AAAA,IACnE,SAAS,SAAS,gBAAgB;AAAA,EACtC,GAAK,gBAAgB,gBAAgB,IAAI,SAAS,YAAY,UAAU,CAAC,GAAG,KAAK,IAAI,oBAAoB,CAAC,CAAC,GAAG,EAAE,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,aAAa,CAAC,GAAG;AAAA,IAC/L,MAAM,OAAO;AAAA,IACb,OAAO,SAAS;AAAA,EACpB,GAAK,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,aAAa,mBAAmB,MAAM,WAAW;AAAA,IACjJ,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,cAAc;AAAA,IAC/B,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,cAAc,CAAC,GAAG,CAACA,gBAAmB,MAAM,WAAW;AAAA,IACjE,SAAS,SAAS;AAAA,EACnB,GAAE,gBAAgB,gBAAgB,CAAE,GAAE,SAAS,YAAY,UAAU,CAAC,GAAG,KAAK,IAAI,kBAAkB,CAAC,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,KAAK,GAAG;AAAA,IAC7M,KAAK;AAAA,EACT,CAAG,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE;AAC3D;AAlJS;AAoJT,SAAS,SAAS;AAElB,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWW;AAAAA,EACX,OAAO,CAAC,mBAAmB,aAAa,gBAAgB,kBAAkB,gBAAgB,eAAe,iBAAiB,iBAAiB,gBAAgB,iBAAiB,eAAe,YAAY,cAAc,gBAAgB,mBAAmB,kBAAkB,sBAAsB,oBAAoB,iBAAiB,iBAAiB,mBAAmB,qBAAqB;AAAA,EAC9X,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM,CAAC,OAAO,QAAQ,QAAQ;AAAA,MAC9B,WAAW;AAAA,IACZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM,CAAC,OAAO,MAAM;AAAA,MACpB,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM,CAAC,OAAO,MAAM;AAAA,MACpB,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,6BAA6B;AAAA,MAC3B,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,2BAA2B;AAAA,MACzB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,MAAM,gCAAS0C,QAAO;AACpB,WAAO;AAAA,MACL,2BAA2B,CAAE;AAAA,IACnC;AAAA,EACG,GAJK;AAAA,EAKN,SAAS,gCAASe,WAAU;AAC1B,QAAI,KAAK,WAAW;AAClB,WAAK,8BAA6B;AAAA,IACnC;AACD,QAAI,KAAK,cAAc,KAAK,iBAAiB,aAAa;AACxD,WAAK,yCAAwC;AAAA,IAC9C;AAAA,EACF,GAPQ;AAAA,EAQT,SAAS,gCAASkB,WAAU;AAC1B,QAAI,KAAK,WAAW;AAClB,WAAK,8BAA6B;AAAA,IACnC;AACD,QAAI,KAAK,cAAc,KAAK,iBAAiB,aAAa;AACxD,WAAK,yCAAwC;AAAA,IAC9C;AAAA,EACF,GAPQ;AAAA,EAQT,SAAS;AAAA,IACP,WAAW,gCAAS,UAAU,SAASC,WAAU;AAC/C,aAAO,KAAK,UAAU,iBAAiB,SAAS,KAAK,OAAO,IAAIA;AAAA,IACjE,GAFU;AAAA,IAGX,+BAA+B,gCAAS,gCAAgC;AACtE,WAAK,IAAI,MAAM,MAAM,eAAe,KAAK,IAAI,sBAAsB,IAAI;AAAA,IACxE,GAF8B;AAAA,IAG/B,0CAA0C,gCAAS,2CAA2C;AAC5F,UAAI,oBAAoB,eAAe,KAAK,IAAI,sBAAsB;AACtE,WAAK,0BAA0B,MAAM,oBAAoB;AAAA,IAC1D,GAHyC;AAAA,IAI1C,wBAAwB,gCAASF,wBAAuB,QAAQ,SAAS;AACvE,gBAAU,WAAW,KAAK;AAC1B,aAAO,UAAU,QAAQ,MAAM,IAAI;AAAA,IACpC,GAHuB;AAAA,IAIxB,SAAS,gCAAS,QAAQ,IAAI;AAE5B,UAAI,aAAa,KAAK,uBAAuB,YAAY;AACzD,oBAAc,WAAW,EAAE;AAAA,IAC5B,GAJQ;AAAA,EAKV;AAAA,EACD,UAAU;AAAA,IACR,qBAAqB,gCAAS,sBAAsB;AAClD,UAAI,KAAK,YAAY;AACnB,eAAO;AAAA,UACL,KAAK,KAAK,0BAA0B;AAAA,QAC9C;AAAA,MACO;AACD,aAAO;AAAA,IACR,GAPoB;AAAA,IAQrB,kBAAkB,gCAAS,mBAAmB;AAC5C,aAAO,KAAK,uBAAuB,cAAc;AAAA,IAClD,GAFiB;AAAA,IAGlB,iBAAiB,gCAAS,kBAAkB;AAC1C,UAAI;AACJ,aAAO;AAAA,QACL,SAAS;AAAA,UACP,aAAa,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,WAAW,wBAAwB,sBAAsB,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,QAC1P;AAAA,MACT;AAAA,IACK,GAPgB;AAAA,IAQjB,eAAe,gCAAS,gBAAgB;AACtC,aAAO,kBAAiB;AAAA,IACzB,GAFc;AAAA,IAGf,uBAAuB,gCAAS,wBAAwB;AACtD,aAAO,kBAAiB;AAAA,IACzB,GAFsB;AAAA,EAGxB;AAAA,EACD,YAAY;AAAA,IACV,WAAW;AAAA,EACZ;AACH;AAEA,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,SAAO,UAAW,GAAE,mBAAmB,SAAS,WAAW;AAAA,IACzD,KAAK,SAAS;AAAA,IACd,SAAS,KAAK,GAAG,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,OAAO,SAAS;AAAA,EACjB,GAAE,KAAK,IAAI,SAAS,SAAS,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,SAAS,UAAU,IAAI,GAAG,mBAAmB,UAAU;AAAA,IAC/G,KAAK;AAAA,EACN,GAAE,WAAW,OAAO,OAAO,SAAU,SAASE,WAAU;AACvD,WAAO,UAAS,GAAI,YAAY,sBAAsB;AAAA,MACpD,KAAK,SAAS,UAAU,SAASA,SAAQ;AAAA,MACzC;AAAA,MACA,OAAOA;AAAA,MACP,OAAO,OAAO;AAAA,MACd,SAAS,OAAO;AAAA,MAChB,WAAW,OAAO;AAAA,MAClB,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,SAAS,OAAO;AAAA,MAChB,WAAW,OAAO;AAAA,MAClB,eAAe,OAAO;AAAA,MACtB,eAAe,OAAO;AAAA,MACtB,aAAa,OAAO;AAAA,MACpB,sBAAsB,OAAO;AAAA,MAC7B,cAAc,OAAO;AAAA,MACrB,aAAa,OAAO;AAAA,MACpB,qBAAqB,OAAO;AAAA,MAC5B,UAAU,OAAO;AAAA,MACjB,UAAU,OAAO;AAAA,MACjB,UAAU,OAAO;AAAA,MACjB,oBAAoB,OAAO;AAAA,MAC3B,YAAY,OAAO;AAAA,MACnB,iBAAiB,OAAO;AAAA,MACxB,kBAAkB,OAAO;AAAA,MACzB,cAAc,OAAO;AAAA,MACrB,mBAAmB,OAAO;AAAA,MAC1B,aAAa,OAAO;AAAA,MACpB,gBAAgB,OAAO;AAAA,MACvB,WAAW,OAAO;AAAA,MAClB,iBAAiB,OAAO;AAAA,MACxB,6BAA6B,OAAO;AAAA,MACpC,2BAA2B,OAAO;AAAA,MAClC,aAAa,OAAO;AAAA,MACpB,qBAAqB,SAAS;AAAA,MAC9B,eAAe,SAAS;AAAA,MACxB,uBAAuB,SAAS;AAAA,MAChC,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,YAAY,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACtD,eAAO,KAAK,MAAM,aAAa,MAAM;AAAA,MAC7C;AAAA,MACM,eAAe,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACzD,eAAO,KAAK,MAAM,gBAAgB,MAAM;AAAA,MAChD;AAAA,MACM,iBAAiB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC3D,eAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,MAClD;AAAA,MACM,eAAe,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACzD,eAAO,KAAK,MAAM,gBAAgB,MAAM;AAAA,MAChD;AAAA,MACM,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,eAAO,KAAK,MAAM,eAAe,MAAM;AAAA,MAC/C;AAAA,MACM,gBAAgB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC1D,eAAO,KAAK,MAAM,iBAAiB,MAAM;AAAA,MACjD;AAAA,MACM,gBAAgB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC1D,eAAO,KAAK,MAAM,iBAAiB,MAAM;AAAA,MACjD;AAAA,MACM,eAAe,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACzD,eAAO,KAAK,MAAM,gBAAgB,MAAM;AAAA,MAChD;AAAA,MACM,gBAAgB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC1D,eAAO,KAAK,MAAM,iBAAiB,MAAM;AAAA,MACjD;AAAA,MACM,cAAc,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC1D,eAAO,KAAK,MAAM,eAAe,MAAM;AAAA,MAC/C;AAAA,MACM,WAAW,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACvD,eAAO,KAAK,MAAM,YAAY,MAAM;AAAA,MAC5C;AAAA,MACM,aAAa,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACzD,eAAO,KAAK,MAAM,cAAc,MAAM;AAAA,MAC9C;AAAA,MACM,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,eAAO,KAAK,MAAM,gBAAgB,MAAM;AAAA,MAChD;AAAA,MACM,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,gBAAgB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC5D,eAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,MAClD;AAAA,MACM,oBAAoB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAChE,eAAO,KAAK,MAAM,sBAAsB,MAAM;AAAA,MACtD;AAAA,MACM,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,eAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,MACpD;AAAA,MACM,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,eAAO,KAAK,MAAM,iBAAiB,MAAM;AAAA,MACjD;AAAA,MACM,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,eAAO,KAAK,MAAM,iBAAiB,MAAM;AAAA,MACjD;AAAA,MACM,iBAAiB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC7D,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,qBAAqB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACjE,eAAO,KAAK,MAAM,uBAAuB,MAAM;AAAA,MACvD;AAAA,MACM,UAAU,KAAK;AAAA,MACf,IAAI,KAAK;AAAA,IACf,GAAO,MAAM,GAAG,CAAC,WAAW,SAAS,SAAS,WAAW,aAAa,SAAS,SAAS,WAAW,aAAa,iBAAiB,iBAAiB,eAAe,wBAAwB,gBAAgB,eAAe,uBAAuB,YAAY,YAAY,YAAY,sBAAsB,cAAc,mBAAmB,oBAAoB,gBAAgB,qBAAqB,eAAe,kBAAkB,aAAa,mBAAmB,+BAA+B,6BAA6B,eAAe,uBAAuB,iBAAiB,yBAAyB,YAAY,IAAI,CAAC;AAAA,EAC9lB,CAAA,GAAG,GAAG,MAAM,UAAS,GAAI,YAAY,sBAAsB;AAAA,IAC1D,KAAK;AAAA,IACL,OAAO,OAAO;AAAA,IACd,SAAS,OAAO;AAAA,IAChB,WAAW,OAAO;AAAA,EACtB,GAAK,MAAM,GAAG,CAAC,SAAS,WAAW,WAAW,CAAC,EAAE,GAAG,EAAE;AACtD;AA1HS;AA4HT,SAAS,SAAS;AAElB,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW5E;AAAAA,EACX,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,MAAM,gCAAS0C,QAAO;AACpB,WAAO;AAAA,MACL,aAAa,CAAE;AAAA,IACrB;AAAA,EACG,GAJK;AAAA,EAKN,SAAS,gCAASe,WAAU;AAC1B,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,WAAK,qBAAoB;AAAA,IAC1B;AAAA,EACF,GAJQ;AAAA,EAKT,SAAS,gCAASkB,WAAU;AAC1B,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,WAAK,qBAAoB;AAAA,IAC1B;AAAA,EACF,GAJQ;AAAA,EAKT,SAAS;AAAA,IACP,YAAY,gCAASP,YAAW,MAAM;AACpC,aAAO,aAAa,KAAK,QAAQ,IAAI;AAAA,IACtC,GAFW;AAAA,IAGZ,aAAa,gCAASd,aAAY,KAAK;AACrC,UAAI,uBAAuB;AAC3B,UAAI,iBAAiB;AAAA,QACnB,OAAO,KAAK,OAAO;AAAA,QACnB,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,OAAO,KAAK;AAAA,UACZ,OAAO,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,WAAW,wBAAwB,sBAAsB,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,UACnP,iBAAiB,yBAAyB,KAAK,qBAAqB,QAAQ,2BAA2B,WAAW,yBAAyB,uBAAuB,qBAAqB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB,kBAAkB;AAAA,QACtR;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG;AAAA,QAChD,QAAQ;AAAA,MAChB,CAAO,GAAG,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG,cAAc,GAAG,KAAK,KAAK,KAAK,cAAe,GAAE,KAAK,cAAc,CAAC;AAAA,IAC1G,GAlBY;AAAA,IAmBb,eAAe,gCAASC,iBAAgB;AACtC,aAAO,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK;AAAA,IAC3E,GAFc;AAAA,IAGf,sBAAsB,gCAASsB,wBAAuB;AACpD,UAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,YAAI,QAAQ,KAAK,WAAW,aAAa;AACzC,YAAI,UAAU,SAAS;AACrB,cAAI,QAAQ;AACZ,cAAInB,QAAO,sBAAsB,KAAK,KAAK,+BAA+B;AAC1E,cAAIA,OAAM;AACR,oBAAQ,cAAcA,KAAI,IAAI,WAAWA,MAAK,MAAM,SAAS,CAAC;AAAA,UAC/D;AACD,eAAK,YAAY,QAAQ,QAAQ;AAAA,QAC3C,OAAe;AACL,cAAI,OAAO;AACX,cAAIC,QAAO,0BAA0B,KAAK,KAAK,+BAA+B;AAC9E,cAAIA,OAAM;AACR,mBAAO,cAAcA,KAAI,IAAI,WAAWA,MAAK,MAAM,QAAQ,CAAC;AAAA,UAC7D;AACD,eAAK,YAAY,OAAO,OAAO;AAAA,QAChC;AAAA,MACF;AAAA,IACF,GAnBqB;AAAA,EAoBvB;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAASmB,kBAAiB;AACxC,aAAO,CAAC,KAAK,WAAW,aAAa,GAAG,KAAK,WAAW,OAAO,GAAG,KAAK,GAAG,YAAY,CAAC;AAAA,IACxF,GAFe;AAAA,IAGhB,gBAAgB,gCAASC,kBAAiB;AACxC,UAAI,YAAY,KAAK,WAAW,aAAa;AAC7C,UAAI,cAAc,KAAK,WAAW,OAAO;AACzC,aAAO,KAAK,WAAW,QAAQ,IAAI,CAAC,aAAa,WAAW,KAAK,WAAW,IAAI,CAAC,aAAa,SAAS;AAAA,IACxG,GAJe;AAAA,EAKjB;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUtF,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,IAAI,eAAe,CAAC,WAAW,WAAW,sBAAsB;AAChE,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,SAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IACtD,OAAO,SAAS;AAAA,IAChB,SAAS,SAAS;AAAA,IAClB,MAAM;AAAA,IACN,SAAS,SAAS,WAAW,SAAS;AAAA,IACtC,SAAS,SAAS,WAAW,SAAS;AAAA,EACvC,GAAE,gBAAgB,gBAAgB,CAAE,GAAE,SAAS,YAAY,MAAM,CAAC,GAAG,SAAS,YAAY,YAAY,CAAC,GAAG;AAAA,IACzG,wBAAwB,SAAS,WAAW,QAAQ;AAAA,EACxD,CAAG,GAAG,CAAC,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,UAAU,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,SAAS,MAAM,GAAG;AAAA,IAC/I,KAAK;AAAA,IACL,QAAQ,OAAO;AAAA,EACnB,GAAK,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,WAAW,QAAQ,KAAK,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,IAC3I,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,cAAc;AAAA,EACnC,GAAK,SAAS,YAAY,cAAc,CAAC,GAAG,gBAAgB,SAAS,WAAW,QAAQ,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAI,YAAY;AAClJ;AAhBS;AAkBT,SAAS,SAAS;AAElB,SAAS,6BAA6B,GAAG,GAAG;AAAE,MAAI,IAAI,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,CAAC,GAAG;AAAE,QAAI,MAAM,QAAQ,CAAC,MAAM,IAAI,8BAA8B,CAAC,MAAM,GAAG;AAAE,YAAM,IAAI;AAAI,UAAI,KAAK,GAAG,IAAI,gCAASyB,KAAI;AAAA,MAAA,GAAb;AAAiB,aAAO,EAAE,GAAG,GAAG,GAAG,gCAAS,IAAI;AAAE,eAAO,MAAM,EAAE,SAAS,EAAE,MAAM,KAAE,IAAK,EAAE,MAAM,OAAI,OAAO,EAAE,IAAI,EAAG;AAAA,MAAG,GAArF,MAAuF,GAAG,gCAASC,GAAE1B,IAAG;AAAE,cAAMA;AAAA,MAAI,GAA1B,MAA4B,GAAG,EAAC;AAAA,IAAG;AAAG,UAAM,IAAI,UAAU,uIAAuI;AAAA,EAAI;AAAC,MAAI,GAAG,IAAI,MAAI,IAAI;AAAI,SAAO,EAAE,GAAG,gCAAS,IAAI;AAAE,QAAI,EAAE,KAAK,CAAC;AAAA,EAAI,GAA/B,MAAiC,GAAG,gCAAS,IAAI;AAAE,QAAIA,KAAI,EAAE,KAAM;AAAE,WAAO,IAAIA,GAAE,MAAMA;AAAA,EAAE,GAAtD,MAA0D,GAAG,gCAAS0B,GAAE1B,IAAG;AAAE,QAAI,MAAI,IAAIA;AAAA,EAAI,GAAhC,MAAkC,GAAG,gCAAS,IAAI;AAAE,QAAI;AAAE,WAAK,QAAQ,EAAE,QAAQ,KAAK,EAAE,QAAQ,EAAG;AAAA,IAAG,UAAA;AAAW,UAAI,EAAG,OAAM;AAAA,IAAE;AAAA,EAAI,GAA/F,KAA+F;AAAK;AAAnzB;AACT,SAAS,8BAA8B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAO,oBAAoB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAI,oBAAoB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAvX;AACT,SAAS,oBAAoB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA7I;AACT,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWzC;AAAAA,EACX,OAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS,gCAAS+C,WAAU;AAC1B,WAAO;AAAA,MACL,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,IACrB;AAAA,EACG,GALQ;AAAA,EAMT,MAAM,gCAASL,QAAO;AACpB,WAAO;AAAA,MACL,cAAc,IAAIsC,SAAU;AAAA,QAC1B,MAAM;AAAA,MACd,CAAO;AAAA,MACD,iBAAiB,IAAIA,SAAU;AAAA,QAC7B,MAAM;AAAA,MACd,CAAO;AAAA,IACP;AAAA,EACG,GATK;AAAA,EAUN,eAAe,gCAASC,iBAAgB;AACtC,SAAK,aAAa;AAClB,SAAK,gBAAgB;EACtB,GAHc;AAAA,EAIf,SAAS;AAAA,IACP,YAAY,gCAASb,YAAW,KAAK,MAAM;AACzC,aAAO,aAAa,KAAK,IAAI;AAAA,IAC9B,GAFW;AAAA,IAGZ,kBAAkB,gCAAS,iBAAiB,KAAK;AAC/C,UAAI,sBAAsB;AAAA,QACxB,OAAO,KAAK,oBAAqB;AAAA,QACjC,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,MAAM;AAAA,UACN,YAAY,KAAK,gBAAgB,QAAQ;AAAA,QAC1C;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,eAAe,OAAO,GAAG,GAAG;AAAA,QACrD,aAAa;AAAA,MACrB,CAAO,GAAG,KAAK,IAAI,eAAe,OAAO,GAAG,GAAG,mBAAmB,GAAG,KAAK,KAAK,KAAK,oBAAqB,GAAE,KAAK,mBAAmB,CAAC;AAAA,IAC/H,GAhBiB;AAAA,IAiBlB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,eAAe,KAAK,YAAY,SAAS,KAAK,YAAY,MAAM,KAAK,KAAK,YAAY,MAAM,KAAK;AAAA,IAC9G,GAFoB;AAAA,IAGrB,UAAU,gCAAS,SAASc,MAAK,KAAK,OAAO;AAC3C,UAAI,cAAc;AAAA,QAChB,OAAOA,KAAI;AAAA,QACX,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP;AAAA,QACD;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,OAAO,OAAO,GAAG,GAAG;AAAA,QAC7C,KAAK;AAAA,MACb,CAAO,GAAG,KAAK,IAAI,OAAO,OAAO,GAAG,GAAG,WAAW,GAAG,KAAK,KAAK,KAAK,WAAWA,IAAG,GAAG,KAAK,WAAW,CAAC;AAAA,IACjG,GAfS;AAAA,IAgBV,YAAY,gCAAS,WAAWA,MAAK;AACnC,aAAOA,KAAI,SAASA,KAAI,MAAM,KAAKA,KAAI,MAAM,KAAK;AAAA,IACnD,GAFW;AAAA,IAGZ,eAAe,gCAAS,gBAAgB;AACtC,UAAI;AACJ,cAAQ,qBAAqB,KAAK,kBAAkB,QAAQ,uBAAuB,SAAS,SAAS,mBAAmB,IAAI,KAAK,aAAa,KAAK,YAAY,QAAQ;AAAA,IACxK,GAHc;AAAA,IAIf,kBAAkB,gCAAS,iBAAiBA,MAAK;AAC/C,UAAI;AACJ,cAAQ,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,IAAIA,MAAKA,KAAI,QAAQ;AAAA,IAC1J,GAHiB;AAAA,EAInB;AAAA,EACD,UAAU;AAAA,IACR,WAAW,gCAAS,YAAY;AAC9B,UAAIC,aAAY;AAChB,UAAI,KAAK,aAAa;AACpB,QAAAA,aAAY;AAAA,MACpB,WAAiB,KAAK,SAAS;AACvB,YAAI,YAAY,6BAA6B,KAAK,OAAO,GACvD;AACF,YAAI;AACF,eAAK,UAAU,EAAC,GAAI,EAAE,QAAQ,UAAU,EAAG,GAAE,QAAO;AAClD,gBAAI,MAAM,MAAM;AAChB,gBAAI,KAAK,WAAW,KAAK,QAAQ,KAAK,IAAI,YAAY,IAAI,SAAS,QAAQ;AACzE,cAAAA,aAAY;AACZ;AAAA,YACD;AAAA,UACF;AAAA,QACF,SAAQ,KAAK;AACZ,oBAAU,EAAE,GAAG;AAAA,QACzB,UAAkB;AACR,oBAAU,EAAC;AAAA,QACZ;AAAA,MACF;AACD,aAAOA;AAAA,IACR,GAtBU;AAAA,IAuBX,iBAAiB,gCAAS,kBAAkB;AAC1C,UAAI;AACJ,aAAO;AAAA,QACL,SAAS;AAAA,UACP,aAAa,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,WAAW,wBAAwB,sBAAsB,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,QAC1P;AAAA,MACT;AAAA,IACK,GAPgB;AAAA,EAQlB;AAAA,EACD,YAAY;AAAA,IACV,cAAc;AAAA,EACf;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAU1F,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,0BAA0B,iBAAiB,cAAc;AAC7D,SAAO,SAAS,aAAa,UAAW,GAAE,mBAAmB,SAAS,WAAW;AAAA,IAC/E,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,OAAO;AAAA,IACxB,OAAO,KAAK,GAAG,OAAO;AAAA,IACtB,MAAM;AAAA,EACV,GAAK,OAAO,cAAc,gBAAgB,gBAAgB,CAAE,GAAE,KAAK,IAAI,SAAS,SAAS,eAAe,CAAC,GAAG,SAAS,iBAAiB,MAAM,CAAC,IAAI,KAAK,IAAI,SAAS,SAAS,eAAe,GAAG;AAAA,IAC1L,mBAAmB;AAAA,EACvB,CAAG,GAAG,CAAC,CAAC,OAAO,eAAe,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,IAC3E,KAAK;AAAA,IACL,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,SAAS,SAAU,KAAK,GAAG;AAC5H,WAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,MAC/C,KAAK,SAAS,WAAW,KAAK,WAAW,KAAK,SAAS,WAAW,KAAK,OAAO,KAAK;AAAA,IACzF,GAAO,CAAC,CAAC,SAAS,WAAW,KAAK,QAAQ,KAAK,UAAS,GAAI,YAAY,yBAAyB;AAAA,MAC3F,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,IAAI,KAAK;AAAA,IACV,GAAE,MAAM,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,EACtE,CAAG,GAAG,GAAG,EAAC,GAAI,EAAE,MAAM,UAAU,IAAI,GAAG,mBAAmB,UAAU;AAAA,IAChE,KAAK;AAAA,EACT,GAAK,WAAW,SAAS,cAAe,GAAE,SAAUyC,MAAK,GAAG;AACxD,WAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,MACtD,KAAK;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACV,GAAE,gBAAgB,gBAAgB,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,SAAS,SAASA,MAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,SAAS,iBAAiBA,IAAG,GAAG,SAAU,KAAK,GAAG;AACrN,aAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,QAC/C,KAAK,SAAS,WAAW,KAAK,WAAW,KAAK,SAAS,WAAW,KAAK,OAAO,KAAK;AAAA,MAC3F,GAAS,CAAC,CAAC,SAAS,WAAW,KAAK,QAAQ,KAAK,UAAS,GAAI,YAAY,yBAAyB;AAAA,QAC3F,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,IAAI,KAAK;AAAA,MACV,GAAE,MAAM,GAAG,CAAC,UAAU,SAAS,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,IAC5E,CAAA,GAAG,GAAG,KAAK,EAAE;AAAA,EAClB,CAAG,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI;AAChD;AAtCS;AAwCT,SAAS,SAAS;AAElB,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUzF,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWzC;AAAAA,EACX,OAAO,CAAC,iBAAiB,gBAAgB,mBAAmB,oBAAoB,kBAAkB,qBAAqB,gBAAgB,aAAa;AAAA,EACpJ,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,0BAA0B;AAAA,MACxB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,yBAAyB;AAAA,MACvB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,EACT;AAAA,EACD,MAAM,gCAAS0C,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,IACvB;AAAA,EACG,GAPK;AAAA,EAQN,OAAO;AAAA,IACL,aAAa,gCAAS,SAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,EAGd;AAAA,EACD,SAAS;AAAA,EACT,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,eAAe,gCAASuC,iBAAgB;AACtC,QAAI,KAAK,sBAAsB;AAC7B,sBAAgB,IAAI,iBAAiB,KAAK,oBAAoB;AAC9D,WAAK,uBAAuB;AAAA,IAC7B;AACD,QAAI,KAAK,SAAS;AAChB,aAAO,MAAM,KAAK,OAAO;AACzB,WAAK,cAAa;AAAA,IACnB;AAAA,EACF,GATc;AAAA,EAUf,SAAS,gCAASxB,WAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AACtC,QAAI,KAAK,WAAW,KAAK,QAAQ,KAAK,KAAK,GAAG;AAC5C,UAAI,eAAe,KAAK,QAAQ,KAAK,KAAK;AAC1C,UAAI,aAAa,UAAU;AACzB,aAAK,mBAAmB,aAAa,YAAY,CAAC,EAAE;AACpD,aAAK,kBAAkB,aAAa;AAAA,MAC5C,OAAa;AACL,aAAK,mBAAmB,KAAK,QAAQ,KAAK,KAAK,EAAE;AAAA,MAClD;AAAA,IACF;AAAA,EACF,GAXQ;AAAA,EAYT,SAAS;AAAA,IACP,aAAa,gCAASH,aAAY,KAAK,QAAQ;AAC7C,UAAI,iBAAiB,gBAAgB;AAAA,QACnC,OAAO,KAAK,OAAO;AAAA,QACnB,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,MACF,GAAE,MAAM;AACT,aAAO,WAAW,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG;AAAA,QAChD,QAAQ;AAAA,MAChB,CAAO,GAAG,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG,cAAc,GAAG,KAAK,KAAK,KAAK,cAAe,GAAE,KAAK,cAAc,CAAC;AAAA,IAC1G,GAZY;AAAA,IAab,eAAe,gCAASC,iBAAgB;AACtC,aAAO,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK;AAAA,IAC3E,GAFc;AAAA,IAGf,4BAA4B,gCAAS,2BAA2B,WAAW;AACzE,aAAO;AAAA,QACL,SAAS;AAAA,UACP,aAAa,aAAa,KAAK,uBAAuB,UAAU,KAAK;AAAA,QACtE;AAAA,MACT;AAAA,IACK,GAN2B;AAAA,IAO5B,aAAa,gCAAS,cAAc;AAClC,UAAI,WAAW,gBAAgB,CAAE,GAAE,KAAK,OAAO;AAC/C,UAAI,SAAS,KAAK,KAAK,EAAE,UAAU;AACjC,iBAAS,KAAK,KAAK,EAAE,YAAY,OAAO,CAAC;AACzC,iBAAS,KAAK,KAAK,EAAE,WAAW,KAAK;AACrC,iBAAS,KAAK,KAAK,EAAE,YAAY,CAAC,IAAI;AAAA,UACpC,OAAO;AAAA,UACP,WAAW,KAAK;AAAA,QAC1B;AAAA,MACA,OAAa;AACL,iBAAS,KAAK,KAAK,EAAE,QAAQ;AAC7B,iBAAS,KAAK,KAAK,EAAE,YAAY,KAAK;AAAA,MACvC;AACD,WAAK,MAAM,cAAc;AACzB,WAAK,MAAM,iBAAiB,QAAQ;AACpC,WAAK,MAAM,cAAc;AACzB,WAAK,KAAI;AAAA,IACV,GAjBY;AAAA,IAkBb,aAAa,gCAAS,cAAc;AAClC,WAAK,MAAM,eAAe;AAAA,QACxB,OAAO,KAAK;AAAA,QACZ,aAAa,KAAK,QAAQ,KAAK,KAAK;AAAA,MAC5C,CAAO;AACD,WAAK,MAAM,cAAc;AACzB,WAAK,KAAI;AAAA,IACV,GAPY;AAAA,IAQb,WAAW,gCAAS,YAAY;AAC9B,UAAI,KAAK,cAAc;AACrB,YAAI,cAAc,KAAK,aAAa,KAAK,KAAK;AAC9C,YAAI,aAAa;AACf,cAAI,YAAY,SAAU,QAAO,CAAC,KAAK,cAAc,YAAY,YAAY,CAAC,EAAE,KAAK;AAAA,cAAO,QAAO,CAAC,KAAK,cAAc,YAAY,KAAK;AAAA,QACzI;AAAA,MACF;AACD,aAAO;AAAA,IACR,GARU;AAAA,IASX,cAAc,gCAAS,eAAe;AACpC,aAAO,KAAK,QAAQ,KAAK,KAAK,KAAK,CAAC,KAAK,cAAc,KAAK,QAAQ,KAAK,KAAK,EAAE,KAAK;AAAA,IACtF,GAFa;AAAA,IAGd,eAAe,gCAAS,cAAc6B,SAAQ;AAC5C,UAAIA,YAAW,QAAQA,YAAW,QAAW;AAC3C,YAAI,OAAOA,YAAW,YAAYA,QAAO,KAAI,EAAG,UAAU,KAAKA,mBAAkB,SAASA,QAAO,UAAU,EAAG,QAAO;AAAA,YAAU,QAAO;AAAA,MACvI;AACD,aAAO;AAAA,IACR,GALc;AAAA,IAMf,YAAY,gCAAS,WAAW7D,QAAO;AACrC,WAAK,iBAAiB,CAAC,KAAK;AAC5B,MAAAA,OAAM,eAAc;AAAA,IACrB,GAHW;AAAA,IAIZ,uBAAuB,gCAAS,sBAAsBA,QAAO;AAC3D,cAAQA,OAAM,MAAI;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAWA,MAAK;AACrB;AAAA,QACF,KAAK;AACH,eAAK,iBAAiB;AACtB;AAAA,MACH;AAAA,IACF,GAXsB;AAAA,IAYvB,sBAAsB,gCAAS,qBAAqB,WAAW;AAC7D,UAAI,WAAW,gBAAgB,CAAE,GAAE,KAAK,OAAO;AAC/C,eAAS,KAAK,KAAK,EAAE,YAAY;AACjC,WAAK,MAAM,oBAAoB;AAAA,QAC7B,OAAO,KAAK;AAAA,QACZ;AAAA,MACR,CAAO;AACD,WAAK,MAAM,iBAAiB,QAAQ;AACpC,WAAK,MAAM,cAAc;AACzB,WAAK,KAAI;AAAA,IACV,GAVqB;AAAA,IAWtB,uBAAuB,gCAAS,sBAAsBA,QAAO;AAC3D,UAAI,OAAOA,OAAM;AACjB,cAAQA,OAAM,MAAI;AAAA,QAChB,KAAK;AACH,cAAI,WAAW,KAAK,aAAa,IAAI;AACrC,cAAI,UAAU;AACZ,iBAAK,gBAAgB,UAAU;AAC/B,qBAAS,WAAW;AACpB,qBAAS,MAAK;AAAA,UACf;AACD,UAAAA,OAAM,eAAc;AACpB;AAAA,QACF,KAAK;AACH,cAAI,WAAW,KAAK,aAAa,IAAI;AACrC,cAAI,UAAU;AACZ,iBAAK,gBAAgB,UAAU;AAC/B,qBAAS,WAAW;AACpB,qBAAS,MAAK;AAAA,UACf;AACD,UAAAA,OAAM,eAAc;AACpB;AAAA,MACH;AAAA,IACF,GAtBsB;AAAA,IAuBvB,wBAAwB,gCAAS,uBAAuB,WAAW;AACjE,aAAO,KAAK,QAAQ,KAAK,KAAK,EAAE,cAAc;AAAA,IAC/C,GAFuB;AAAA,IAGxB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,UAAI,WAAW,gBAAgB,CAAE,GAAE,KAAK,OAAO;AAC/C,eAAS,KAAK,KAAK,EAAE,WAAW;AAChC,WAAK,MAAM,iBAAiB,QAAQ;AACpC,WAAK,MAAM,mBAAmB;AAAA,QAC5B,OAAO,KAAK;AAAA,QACZ,UAAU;AAAA,MAClB,CAAO;AACD,UAAI,CAAC,KAAK,iBAAiB;AACzB,aAAK,MAAM,cAAc;AAAA,MAC1B;AAAA,IACF,GAXiB;AAAA,IAYlB,uBAAuB,gCAAS,sBAAsB,OAAO,OAAO;AAClE,UAAI,WAAW,gBAAgB,CAAE,GAAE,KAAK,OAAO;AAC/C,eAAS,KAAK,KAAK,EAAE,YAAY,KAAK,EAAE,YAAY;AACpD,WAAK,MAAM,oBAAoB;AAAA,QAC7B,OAAO,KAAK;AAAA,QACZ,WAAW;AAAA,QACX;AAAA,MACR,CAAO;AACD,UAAI,CAAC,KAAK,iBAAiB;AACzB,aAAK,MAAM,cAAc;AAAA,MAC1B;AAAA,IACF,GAXsB;AAAA,IAYvB,eAAe,gCAAS,gBAAgB;AACtC,UAAI,WAAW,gBAAgB,CAAE,GAAE,KAAK,OAAO;AAC/C,UAAI,gBAAgB;AAAA,QAClB,OAAO;AAAA,QACP,WAAW,KAAK;AAAA,MACxB;AACM,eAAS,KAAK,KAAK,EAAE,YAAY,KAAK,aAAa;AACnD,WAAK,MAAM,kBAAkB;AAAA,QAC3B,OAAO,KAAK;AAAA,QACZ,YAAY;AAAA,MACpB,CAAO;AACD,WAAK,MAAM,iBAAiB,QAAQ;AACpC,UAAI,CAAC,KAAK,iBAAiB;AACzB,aAAK,MAAM,cAAc;AAAA,MAC1B;AAAA,IACF,GAfc;AAAA,IAgBf,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,UAAI,WAAW,gBAAgB,CAAE,GAAE,KAAK,OAAO;AAC/C,UAAI,oBAAoB,SAAS,KAAK,KAAK,EAAE,YAAY,OAAO,OAAO,CAAC;AACxE,WAAK,MAAM,qBAAqB;AAAA,QAC9B,OAAO,KAAK;AAAA,QACZ,YAAY;AAAA,MACpB,CAAO;AACD,WAAK,MAAM,iBAAiB,QAAQ;AACpC,UAAI,CAAC,KAAK,iBAAiB;AACzB,aAAK,MAAM,cAAc;AAAA,MAC1B;AAAA,IACF,GAXiB;AAAA,IAYlB,gBAAgB,gCAAS,iBAAiB;AACxC,WAAK,MAAM,cAAc;AAAA,IAC1B,GAFe;AAAA,IAGhB,cAAc,gCAAS,aAAa,MAAM;AACxC,UAAI,WAAW,KAAK;AACpB,UAAI,SAAU,QAAO,aAAa,UAAU,iBAAiB,MAAM,8BAA8B,KAAK,aAAa,QAAQ,IAAI;AAAA,UAAc,QAAO,KAAK,cAAc;AAAA,IACxK,GAHa;AAAA,IAId,cAAc,gCAAS,aAAa,MAAM;AACxC,UAAI,WAAW,KAAK;AACpB,UAAI,SAAU,QAAO,aAAa,UAAU,iBAAiB,MAAM,8BAA8B,KAAK,aAAa,QAAQ,IAAI;AAAA,UAAc,QAAO,KAAK,cAAc;AAAA,IACxK,GAHa;AAAA,IAId,MAAM,gCAAS,OAAO;AACpB,WAAK,iBAAiB;AACtB,WAAK,kBAAkB,MAAM,KAAK,MAAM,KAAK,GAAG;AAAA,IACjD,GAHK;AAAA,IAIN,gBAAgB,gCAAS,eAAeA,QAAO;AAC7C,WAAK,YAAY;AACjB,sBAAgB,KAAK,iBAAiB;AAAA,QACpC,eAAeA;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GANe;AAAA,IAOhB,oBAAoB,gCAAS,qBAAqB;AAChD,WAAK,YAAY;AAAA,IAClB,GAFmB;AAAA,IAGpB,gBAAgB,gCAAS,eAAe,IAAI;AAC1C,UAAI,QAAQ;AACZ,UAAI,KAAK,iBAAiB;AACxB,iBAAS,KAAK,SAAS,KAAK,eAAe;AAAA,MAC5C;AACD,aAAO,IAAI,WAAW,IAAI,KAAK,UAAU,OAAO,OAAO,OAAO;AAC9D,eAAS,IAAI;AAAA,QACX,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,MACd,CAAO;AACD,uBAAiB,KAAK,SAAS,KAAK,MAAM,KAAK,GAAG;AAClD,WAAK,yBAAwB;AAC7B,WAAK,mBAAkB;AACvB,WAAK,mBAAkB;AACvB,WAAK,uBAAuB,SAAU,GAAG;AACvC,YAAI,CAAC,MAAM,iBAAiB,EAAE,MAAM,GAAG;AACrC,gBAAM,YAAY;AAAA,QACnB;AAAA,MACT;AACM,sBAAgB,GAAG,iBAAiB,KAAK,oBAAoB;AAAA,IAC9D,GArBe;AAAA,IAsBhB,qBAAqB,gCAAS,sBAAsB;AAClD,UAAI;AACJ,OAAC,gBAAgB,KAAK,aAAa,QAAQ,kBAAkB,WAAW,gBAAgB,cAAc,gBAAgB,QAAQ,kBAAkB,UAAU,cAAc;IACzK,GAHoB;AAAA,IAIrB,gBAAgB,gCAAS,iBAAiB;AACxC,WAAK,cAAa;AAAA,IACnB,GAFe;AAAA,IAGhB,qBAAqB,gCAAS,oBAAoB,IAAI;AACpD,aAAO,MAAM,EAAE;AAAA,IAChB,GAFoB;AAAA,IAGrB,eAAe,gCAAS,gBAAgB;AACtC,WAAK,2BAA0B;AAC/B,WAAK,qBAAoB;AACzB,WAAK,qBAAoB;AACzB,WAAK,UAAU;AACf,sBAAgB,IAAI,iBAAiB,KAAK,oBAAoB;AAC9D,WAAK,uBAAuB;AAAA,IAC7B,GAPc;AAAA,IAQf,YAAY,gCAAS,WAAW,IAAI;AAClC,WAAK,UAAU;AAAA,IAChB,GAFW;AAAA,IAGZ,kBAAkB,gCAAS,iBAAiB,QAAQ;AAClD,aAAO,CAAC,KAAK,gBAAgB,MAAM,KAAK,KAAK,WAAW,EAAE,KAAK,QAAQ,WAAW,MAAM,KAAK,KAAK,QAAQ,SAAS,MAAM;AAAA,IAC1H,GAFiB;AAAA,IAGlB,iBAAiB,gCAAS,gBAAgB,QAAQ;AAChD,aAAO,KAAK,MAAM,SAAS,KAAK,MAAM,KAAK,IAAI,WAAW,MAAM,KAAK,KAAK,MAAM,KAAK,IAAI,SAAS,MAAM;AAAA,IACzG,GAFgB;AAAA,IAGjB,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAUA,QAAO;AAC3C,cAAI,OAAO,kBAAkB,CAAC,OAAO,aAAa,OAAO,iBAAiBA,OAAM,MAAM,GAAG;AACvF,mBAAO,iBAAiB;AAAA,UACzB;AACD,iBAAO,YAAY;AAAA,QAC7B;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAXyB;AAAA,IAY1B,4BAA4B,gCAAS,6BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAC5B,aAAK,YAAY;AAAA,MAClB;AAAA,IACF,GAN2B;AAAA,IAO5B,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,eAAe;AACvB,aAAK,gBAAgB,IAAI,8BAA8B,KAAK,MAAM,KAAK,KAAK,WAAY;AACtF,cAAI,OAAO,gBAAgB;AACzB,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX,CAAS;AAAA,MACF;AACD,WAAK,cAAc;IACpB,GAVmB;AAAA,IAWpB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;MACpB;AAAA,IACF,GAJqB;AAAA,IAKtB,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,WAAY;AAChC,cAAI,OAAO,kBAAkB,CAAC,iBAAiB;AAC7C,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAVmB;AAAA,IAWpB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,EAMvB;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,aAAa,KAAK,YAAY,QAAQ,KAAK,SAAS,YAAY;AAAA,IAC7E,GAFe;AAAA,IAGhB,WAAW,gCAAS,YAAY;AAC9B,aAAO,KAAK,KAAK;AAAA,IAClB,GAFU;AAAA,IAGX,YAAY,gCAAS,aAAa;AAChC,UAAI,SAAS;AACb,aAAO,KAAK,oBAAoB,KAAK,UAAU,OAAO,uBAAuB,KAAK,IAAI,EAAE,IAAI,SAAU,KAAK;AACzG,eAAO;AAAA,UACL,OAAO,OAAO,UAAU,OAAO,OAAO,GAAG;AAAA,UACzC,OAAO;AAAA,QACjB;AAAA,MACA,CAAO;AAAA,IACF,GARW;AAAA,IASZ,kBAAkB,gCAAS,mBAAmB;AAC5C,aAAO,KAAK,SAAS,aAAa,KAAK,kBAAkB,KAAK;AAAA,IAC/D,GAFiB;AAAA,IAGlB,iBAAiB,gCAAS,kBAAkB;AAC1C,aAAO,CAAC;AAAA,QACN,OAAO,KAAK,UAAU,OAAO,OAAO;AAAA,QACpC,OAAO,eAAe;AAAA,MAC9B,GAAS;AAAA,QACD,OAAO,KAAK,UAAU,OAAO,OAAO;AAAA,QACpC,OAAO,eAAe;AAAA,MAC9B,CAAO;AAAA,IACF,GARgB;AAAA,IASjB,eAAe,gCAAS,gBAAgB;AACtC,aAAO,KAAK,UAAU,OAAO,SAAS,KAAK,UAAU,OAAO,OAAO,WAAW;AAAA,IAC/E,GAFc;AAAA,IAGf,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,gBAAgB,KAAK,QAAQ,KAAK,KAAK,EAAE;AAAA,IACtD,GAFe;AAAA,IAGhB,UAAU,gCAAS,WAAW;AAC5B,aAAO,KAAK,QAAQ,KAAK,KAAK,EAAE;AAAA,IACjC,GAFS;AAAA,IAGV,kBAAkB,gCAAS,mBAAmB;AAC5C,aAAO,KAAK,QAAQ,KAAK,KAAK,EAAE,eAAe,CAAC,KAAK,QAAQ,KAAK,KAAK,CAAC;AAAA,IACzE,GAFiB;AAAA,IAGlB,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,iBAAiB,SAAS;AAAA,IACvC,GAFe;AAAA,IAGhB,uBAAuB,gCAAS,wBAAwB;AACtD,aAAO,KAAK,UAAU,OAAO,SAAS,KAAK,UAAU,OAAO,OAAO,aAAa;AAAA,IACjF,GAFsB;AAAA,IAGvB,oBAAoB,gCAAS,qBAAqB;AAChD,aAAO,KAAK,UAAU,OAAO,SAAS,KAAK,UAAU,OAAO,OAAO,UAAU;AAAA,IAC9E,GAFmB;AAAA,IAGpB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,iBAAiB,KAAK,QAAQ,KAAK,KAAK,EAAE,YAAY,KAAK,oBAAoB,KAAK,iBAAiB,SAAS,KAAK;AAAA,IAChI,GAFoB;AAAA,IAGrB,kBAAkB,gCAAS,mBAAmB;AAC5C,aAAO,KAAK,UAAU,OAAO,SAAS,KAAK,UAAU,OAAO,OAAO,QAAQ;AAAA,IAC5E,GAFiB;AAAA,IAGlB,kBAAkB,gCAAS,mBAAmB;AAC5C,aAAO,KAAK,UAAU,OAAO,SAAS,KAAK,UAAU,OAAO,OAAO,QAAQ;AAAA,IAC5E,GAFiB;AAAA,IAGlB,6BAA6B,gCAAS,8BAA8B;AAClE,aAAO,KAAK,UAAU,OAAO,SAAS,KAAK,iBAAiB,KAAK,UAAU,OAAO,OAAO,iBAAiB,KAAK,UAAU,OAAO,OAAO,iBAAiB;AAAA,IACzJ,GAF4B;AAAA,IAG7B,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,KAAK,UAAU,OAAO,SAAS,KAAK,UAAU,OAAO,OAAO,iBAAiB;AAAA,IACrF,GAFwB;AAAA,IAGzB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,UAAU,OAAO,SAAS,KAAK,UAAU,OAAO,OAAO,mBAAmB;AAAA,IACvF,GAFoB;AAAA,IAGrB,4BAA4B,gCAAS,6BAA6B;AAChE,aAAO;AAAA,QACL,SAAS;AAAA,UACP,QAAQ,KAAK,aAAc;AAAA,QAC5B;AAAA,MACT;AAAA,IACK,GAN2B;AAAA,IAO5B,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO;AAAA,QACL,SAAS;AAAA,UACP,gBAAgB,KAAK;AAAA,UACrB,QAAQ,KAAK,UAAW;AAAA,QACzB;AAAA,MACT;AAAA,IACK,GAPoB;AAAA,EAQtB;AAAA,EACD,YAAY;AAAA,IACV,QAAQf;AAAAA,IACR,QAAQoD;AAAAA,IACR,QAAQyB;AAAAA,IACR,iBAAiBC;AAAAA,IACjB,YAAYC;AAAAA,IACZ,WAAWC;AAAAA,IACX,UAAUC;AAAAA,EACX;AAAA,EACD,YAAY;AAAA,IACV,WAAW;AAAA,EACZ;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUhG,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,IAAI,eAAe,CAAC,MAAM,YAAY;AACtC,IAAI,aAAa,CAAC,WAAW,aAAa,UAAU;AACpD,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC1B,GAAE,SAAS,YAAY,QAAQ,CAAC,GAAG,CAAC,OAAO,YAAY,SAAS,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACjH,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,wBAAwB;AAAA,EAC7C,GAAK,gBAAgB,gBAAgB,CAAE,GAAE,OAAO,gBAAgB,GAAG,SAAS,YAAY,wBAAwB,CAAC,CAAC,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,aAAa,GAAG;AAAA,IAC3L,OAAO,OAAO;AAAA,IACd,aAAa,OAAO,QAAQ,OAAO,KAAK;AAAA,IACxC,gBAAgB,SAAS;AAAA,EAC7B,GAAK,MAAM,GAAG,CAAC,SAAS,eAAe,gBAAgB,CAAC,EAAG,GAAE,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,kBAAkB,aAAa,YAAY,mBAAmB,WAAW;AAAA,IAChL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,cAAc,SAAS;AAAA,IACvB,iBAAiB;AAAA,IACjB,iBAAiB,MAAM;AAAA,IACvB,iBAAiB,SAAS;AAAA,IAC1B,SAAS,KAAK,GAAG,sBAAsB;AAAA,IACvC,UAAU,KAAK;AAAA,IACf,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,aAAO,SAAS,WAAW,MAAM;AAAA,IACvC;AAAA,IACI,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACrD,aAAO,SAAS,sBAAsB,MAAM;AAAA,IAClD;AAAA,EACG,GAAE,gBAAgB,gBAAgB,CAAE,GAAE,SAAS,YAAY,wBAAwB,SAAS,mBAAmB,CAAC,GAAG,OAAO,kBAAkB,MAAM,CAAC,GAAG;AAAA,IACrJ,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,sBAAsB,YAAY,GAAG,WAAW;AAAA,QAC/G,SAAS,UAAU,OAAO;AAAA,MAClC,GAAS,SAAS,YAAY,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;IACrE,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,IAAI,CAAC,cAAc,iBAAiB,iBAAiB,SAAS,UAAU,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,OAAO,mBAAmB,OAAO,YAAY,SAAS,SAAS,aAAc,KAAI,UAAW,GAAE,YAAY,mBAAmB,WAAW;AAAA,IACrP,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,2BAA2B;AAAA,IAC5C,UAAU,KAAK;AAAA,IACf,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,aAAO,SAAS;IACtB;AAAA,EACA,GAAK,gBAAgB,gBAAgB,CAAA,GAAI,SAAS,YAAY,6BAA6B,SAAS,0BAA0B,CAAC,GAAG,OAAO,kBAAkB,OAAO,KAAK,CAAC,GAAG;AAAA,IACvK,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,2BAA2B,iBAAiB,GAAG,WAAW;AAAA,QACzH,SAAS,UAAU,OAAO;AAAA,MAClC,GAAS,SAAS,YAAY,iBAAiB,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;IACtE,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,IAAI,CAAC,SAAS,UAAU,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,YAAY,mBAAmB,MAAM;AAAA,IAClG,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,YAAY,WAAW;AAAA,QACzC,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,QACvB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,MACxB,GAAE,SAAS,YAAY,YAAY,CAAC,GAAG;AAAA,QACtC,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,MAAM,iBAAiB,gBAAgB,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,YAC/F,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,IAAI,SAAS;AAAA,YACb,cAAc,MAAM;AAAA,YACpB,MAAM;AAAA,YACN,SAAS,CAAC,KAAK,GAAG,eAAe,GAAG,OAAO,eAAe;AAAA,YAC1D,WAAW,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAS,WAAY;AAC1D,qBAAO,SAAS,QAAQ,SAAS,KAAK,MAAM,UAAU,SAAS;AAAA,YAC7E,GAAe,CAAC,QAAQ,CAAC;AAAA,YACb,SAAS,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AAC/C,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,YACY,aAAa,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AACnD,qBAAO,SAAS,sBAAsB,SAAS,mBAAmB,MAAM,UAAU,SAAS;AAAA,YACzG;AAAA,UACW,GAAE,SAAS,YAAY,eAAe,CAAC,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,oBAAoB,GAAG;AAAA,YAC1H,OAAO,OAAO;AAAA,YACd,aAAa,OAAO,QAAQ,OAAO,KAAK;AAAA,YACxC,gBAAgB,SAAS;AAAA,UACrC,GAAa,MAAM,GAAG,CAAC,SAAS,eAAe,gBAAgB,CAAC,IAAI,OAAO,YAAY,SAAS,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,YACrI,KAAK;AAAA,YACL,SAAS,KAAK,GAAG,sBAAsB;AAAA,UACnD,GAAa,SAAS,YAAY,sBAAsB,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,SAAS,YAAY,SAAU,WAAW,GAAG;AAC9J,mBAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,cACtD,KAAK,UAAU;AAAA,cACf,SAAS,KAAK,GAAG,oBAAoB;AAAA,gBACnC;AAAA,cAChB,CAAe;AAAA,cACD,SAAS,gCAAShB,SAAQ,QAAQ;AAChC,uBAAO,SAAS,qBAAqB,UAAU,KAAK;AAAA,cACrD,GAFQ;AAAA,cAGT,WAAW,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACtD,uBAAO,SAAS,sBAAsB,MAAM;AAAA,cAC7C,IAAG,SAAS,cAAc,SAAU,QAAQ;AAC3C,uBAAO,SAAS,qBAAqB,UAAU,KAAK;AAAA,cACrD,GAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAAA,cAC3B,UAAU,MAAM,IAAI,MAAM;AAAA,cAC1B,SAAS;AAAA,YACV,GAAE,SAAS,YAAY,oBAAoB,SAAS,2BAA2B,SAAS,CAAC,CAAC,GAAG,gBAAgB,UAAU,KAAK,GAAG,IAAI,UAAU;AAAA,UAC/I,CAAA,GAAG,GAAG,IAAIpC,gBAAmB,MAAM,WAAW;AAAA,YAC7C,SAAS,KAAK,GAAG,2BAA2B;AAAA,UACxD,GAAa,SAAS,YAAY,2BAA2B,CAAC,GAAG,MAAM,EAAE,GAAGA,gBAAmB,MAAM,WAAW;AAAA,YACpG,SAAS,KAAK,GAAG,kBAAkB;AAAA,YACnC,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,qBAAO,SAAS;YAC9B;AAAA,YACY,WAAW,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACtD,qBAAO,SAAS,sBAAsB,MAAM;AAAA,YAC1D,IAAgB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAS,SAAU,QAAQ;AACvD,qBAAO,KAAK;YAC1B,GAAe,CAAC,OAAO,CAAC,EAAE;AAAA,UAC1B,GAAa,SAAS,YAAY,kBAAkB,CAAC,GAAG,gBAAgB,SAAS,aAAa,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,UAAW,GAAE,mBAAmB,UAAU;AAAA,YAC7I,KAAK;AAAA,UACjB,GAAa,CAAC,SAAS,kBAAkB,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YAC/E,KAAK;AAAA,YACL,SAAS,KAAK,GAAG,gBAAgB;AAAA,UAC7C,GAAa,SAAS,YAAY,gBAAgB,CAAC,GAAG,CAAC,YAAY,mBAAmB;AAAA,YAC1E,SAAS,SAAS;AAAA,YAClB,YAAY,SAAS;AAAA,YACrB,cAAc,SAAS;AAAA,YACvB,SAAS,eAAe,KAAK,GAAG,0BAA0B,CAAC;AAAA,YAC3D,aAAa;AAAA,YACb,aAAa;AAAA,YACb,uBAAuB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACjE,qBAAO,SAAS,iBAAiB,MAAM;AAAA,YACrD;AAAA,YACY,UAAU,KAAK;AAAA,YACf,IAAI,SAAS,YAAY,0BAA0B;AAAA,UAC/D,GAAa,MAAM,GAAG,CAAC,WAAW,cAAc,cAAc,SAAS,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGA,gBAAmB,OAAO,WAAW;AAAA,YAC1J,SAAS,KAAK,GAAG,gBAAgB;AAAA,UAC7C,GAAa,SAAS,YAAY,gBAAgB,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,SAAS,kBAAkB,SAAU,iBAAiB,GAAG;AACpK,mBAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,cACvD,KAAK;AAAA,cACL,SAAS,KAAK,GAAG,YAAY;AAAA,cAC7B,SAAS;AAAA,YACV,GAAE,SAAS,YAAY,YAAY,CAAC,GAAG,CAAC,SAAS,oBAAoB,UAAS,GAAI,YAAY,mBAAmB;AAAA,cAChH,KAAK;AAAA,cACL,SAAS,SAAS;AAAA,cAClB,YAAY,gBAAgB;AAAA,cAC5B,SAAS,eAAe,KAAK,GAAG,4BAA4B,CAAC;AAAA,cAC7D,aAAa;AAAA,cACb,aAAa;AAAA,cACb,cAAc,SAAS;AAAA,cACvB,uBAAuB,gCAAS,mBAAmB,QAAQ;AACzD,uBAAO,SAAS,sBAAsB,QAAQ,CAAC;AAAA,cAChD,GAFsB;AAAA,cAGvB,UAAU,KAAK;AAAA,cACf,IAAI,SAAS,YAAY,4BAA4B;AAAA,YACtD,GAAE,MAAM,GAAG,CAAC,WAAW,cAAc,SAAS,cAAc,uBAAuB,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,OAAO,YAAY,UAAU,UAAW,GAAE,YAAY,wBAAwB,OAAO,aAAa,GAAG;AAAA,cAC3O,KAAK;AAAA,cACL,OAAO,OAAO;AAAA,cACd,aAAa;AAAA,cACb,gBAAgB,SAAS;AAAA,cACzB,aAAa,SAAS;AAAA,YACpC,GAAe,MAAM,GAAG,CAAC,SAAS,eAAe,kBAAkB,aAAa,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,kBAAkB,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,cACnL,KAAK;AAAA,cACL,SAAS;AAAA,YACvB,GAAe,SAAS,YAAY,cAAc,CAAC,GAAG,CAAC,YAAY,mBAAmB,WAAW;AAAA,cACnF,MAAM;AAAA,cACN,SAAS,KAAK,GAAG,0BAA0B;AAAA,cAC3C,SAAS,gCAASoC,SAAQ,QAAQ;AAChC,uBAAO,SAAS,iBAAiB,CAAC;AAAA,cACnC,GAFQ;AAAA,cAGT,OAAO,SAAS;AAAA,cAChB,UAAU,KAAK;AAAA,cACf,SAAS;AAAA,YACV,GAAE,OAAO,kBAAkB,QAAQ,YAAY;AAAA,cAC9C,IAAI,SAAS,YAAY,0BAA0B;AAAA,YACjE,CAAa,GAAG;AAAA,cACF,MAAM,QAAQ,SAAU,WAAW;AACjC,uBAAO,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,4BAA4B,WAAW,GAAG,WAAW;AAAA,kBACpH,SAAS,UAAU,OAAO;AAAA,kBAC1B,SAAS;AAAA,gBACV,GAAE,SAAS,YAAY,0BAA0B,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,cAClG,CAAe;AAAA,cACD,GAAG;AAAA,YACjB,GAAe,MAAM,CAAC,SAAS,WAAW,SAAS,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,UACrG,CAAA,GAAG,GAAG,KAAK,EAAE,GAAG,SAAS,uBAAuB,UAAW,GAAE,mBAAmB,OAAO,eAAe,WAAW;AAAA,YAChH,KAAK;AAAA,UACjB,GAAa,SAAS,YAAY,0BAA0B,CAAC,CAAC,GAAG,CAAC,YAAY,mBAAmB,WAAW;AAAA,YAChG,MAAM;AAAA,YACN,OAAO,SAAS;AAAA,YAChB,SAAS;AAAA,YACT,SAAS,KAAK,GAAG,uBAAuB;AAAA,YACxC,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,qBAAO,SAAS;YAC9B;AAAA,YACY,UAAU,KAAK;AAAA,UAChB,GAAE,OAAO,kBAAkB,QAAQ,SAAS;AAAA,YAC3C,IAAI,SAAS,YAAY,uBAAuB;AAAA,UAC5D,CAAW,GAAG;AAAA,YACF,MAAM,QAAQ,SAAU,WAAW;AACjC,qBAAO,EAAE,UAAW,GAAE,YAAY,wBAAwB,OAAO,yBAAyB,UAAU,GAAG,WAAW;AAAA,gBAChH,SAAS,UAAU,OAAO;AAAA,cAC3B,GAAE,SAAS,YAAY,uBAAuB,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,YAC7F,CAAa;AAAA,YACD,GAAG;AAAA,UACf,GAAa,IAAI,CAAC,SAAS,SAAS,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGpC,gBAAmB,OAAO,WAAW;AAAA,YACvH,SAAS,KAAK,GAAG,iBAAiB;AAAA,UACnC,GAAE,SAAS,YAAY,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,uBAAuB,OAAO,mBAAmB,UAAS,GAAI,YAAY,mBAAmB,WAAW;AAAA,YAC5J,KAAK;AAAA,YACL,MAAM;AAAA,YACN,SAAS,KAAK,GAAG,qBAAqB;AAAA,YACtC,OAAO,SAAS;AAAA,YAChB,SAAS,SAAS;AAAA,YAClB,UAAU,KAAK;AAAA,UAChB,GAAE,OAAO,kBAAkB,QAAQ,OAAO;AAAA,YACzC,IAAI,SAAS,YAAY,qBAAqB;AAAA,UAC1D,CAAW,GAAG,MAAM,IAAI,CAAC,SAAS,SAAS,WAAW,YAAY,IAAI,CAAC,MAAM,UAAS,GAAI,YAAY,wBAAwB,OAAO,mBAAmB,GAAG;AAAA,YAC/I,KAAK;AAAA,YACL,OAAO,OAAO;AAAA,YACd,aAAa,OAAO,QAAQ,OAAO,KAAK;AAAA,YACxC,gBAAgB,SAAS;AAAA,UAC1B,GAAE,MAAM,GAAG,CAAC,SAAS,eAAe,gBAAgB,CAAC,IAAI,OAAO,mBAAmB,UAAS,GAAI,mBAAmB,UAAU;AAAA,YAC5H,KAAK;AAAA,UACjB,GAAa,CAAC,CAAC,OAAO,uBAAuB,UAAS,GAAI,YAAY,mBAAmB,WAAW;AAAA,YACxF,KAAK;AAAA,YACL,MAAM;AAAA,YACN,SAAS,KAAK,GAAG,qBAAqB;AAAA,YACtC,OAAO,SAAS;AAAA,YAChB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,qBAAO,SAAS;YAC9B;AAAA,YACY,UAAU,KAAK;AAAA,UAChB,GAAE,OAAO,kBAAkB,QAAQ,OAAO;AAAA,YACzC,IAAI,SAAS,YAAY,qBAAqB;AAAA,UAC1D,CAAW,GAAG,MAAM,IAAI,CAAC,SAAS,SAAS,YAAY,IAAI,CAAC,MAAM,UAAW,GAAE,YAAY,wBAAwB,OAAO,mBAAmB,GAAG;AAAA,YACpI,KAAK;AAAA,YACL,OAAO,OAAO;AAAA,YACd,aAAa,OAAO,QAAQ,OAAO,KAAK;AAAA,YACxC,gBAAgB,SAAS;AAAA,UAC1B,GAAE,MAAM,GAAG,CAAC,SAAS,eAAe,gBAAgB,CAAC,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,UAAW,GAAE,YAAY,wBAAwB,OAAO,oBAAoB,GAAG;AAAA,YAC3L,OAAO,OAAO;AAAA,YACd,aAAa,OAAO,QAAQ,OAAO,KAAK;AAAA,YACxC,gBAAgB,SAAS;AAAA,UACrC,GAAa,MAAM,GAAG,CAAC,SAAS,eAAe,gBAAgB,CAAC,EAAC,GAAI,IAAI,YAAY,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC;AAAA,QACjJ,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,gBAAgB,WAAW,cAAc,CAAC,CAAC;AAAA,IACpE,CAAK;AAAA,IACD,GAAG;AAAA,EACP,CAAG,CAAC,GAAG,EAAE;AACT;AAnPS;AAqPT,SAAS,SAAS;AAElB,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWW;AAAAA,EACX,OAAO,CAAC,QAAQ;AAAA,EAChB,OAAO;AAAA,IACL,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,4BAA4B;AAAA,MAC1B,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,aAAa,gCAASsD,aAAY,KAAK;AACrC,UAAI,iBAAiB;AAAA,QACnB,OAAO,KAAK,OAAO;AAAA,QACnB,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,SAAS,KAAK;AAAA,UACd,UAAU,KAAK;AAAA,QAChB;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG;AAAA,QAChD,QAAQ;AAAA,MAChB,CAAO,GAAG,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG,cAAc,GAAG,KAAK,KAAK,KAAK,cAAe,GAAE,KAAK,cAAc,CAAC;AAAA,IAC1G,GAhBY;AAAA,IAiBb,eAAe,gCAASC,iBAAgB;AACtC,aAAO,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK;AAAA,IAC3E,GAFc;AAAA,IAGf,UAAU,gCAAS3C,UAASW,QAAO;AACjC,WAAK,MAAM,UAAU;AAAA,QACnB,eAAeA;AAAA,QACf,SAAS,CAAC,KAAK;AAAA,MACvB,CAAO;AAAA,IACF,GALS;AAAA,EAMX;AAAA,EACD,UAAU;AAAA,IACR,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,KAAK,UAAU,OAAO,OAAO,KAAK,YAAY,KAAK,UAAU,OAAO,OAAO,KAAK,cAAc;AAAA,IACzJ,GAFwB;AAAA,EAG1B;AAAA,EACD,YAAY;AAAA,IACV,WAAW6B;AAAAA,IACX,UAAUC;AAAAA,EACX;AACH;AAEA,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,sBAAsB,iBAAiB,UAAU;AACrD,SAAO,UAAS,GAAI,YAAY,qBAAqB;AAAA,IACnD,YAAY,OAAO;AAAA,IACnB,QAAQ;AAAA,IACR,UAAU,OAAO;AAAA,IACjB,cAAc,SAAS;AAAA,IACvB,UAAU,SAAS;AAAA,IACnB,IAAI,SAAS,YAAY,kBAAkB;AAAA,EAC/C,GAAK;AAAA,IACD,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,CAAC,OAAO,8BAA8B,UAAS,GAAI,YAAY,wBAAwB,OAAO,0BAA0B,GAAG;AAAA,QAChI,KAAK;AAAA,QACL,SAAS,UAAU;AAAA,QACnB,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAClD,GAAS,MAAM,GAAG,CAAC,WAAW,OAAO,CAAC,KAAK,CAAC,OAAO,8BAA8B,UAAU,WAAW,UAAW,GAAE,YAAY,sBAAsB,WAAW;AAAA,QACxJ,KAAK;AAAA,QACL,SAAS,UAAU,OAAO;AAAA,MAClC,GAAS,SAAS,YAAY,kBAAkB,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IAChH,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,GAAG,CAAC,cAAc,YAAY,cAAc,YAAY,IAAI,CAAC;AAClE;AAvBS;AAyBT,SAAS,SAAS;AAElB,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWrD;AAAAA,EACX,OAAO,CAAC,gBAAgB,oBAAoB,oBAAoB,mBAAmB,oBAAoB,eAAe,sBAAsB,mBAAmB,iBAAiB,gBAAgB,mBAAmB,oBAAoB,kBAAkB,qBAAqB,gBAAgB,aAAa;AAAA,EAC3S,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM,CAAC,OAAO,QAAQ,QAAQ;AAAA,MAC9B,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,MAAM,gCAAS0C,QAAO;AACpB,WAAO;AAAA,MACL,aAAa,CAAE;AAAA,IACrB;AAAA,EACG,GAJK;AAAA,EAKN,SAAS,gCAASe,WAAU;AAC1B,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,WAAK,qBAAoB;AAAA,IAC1B;AAAA,EACF,GAJQ;AAAA,EAKT,SAAS,gCAASkB,WAAU;AAC1B,QAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,WAAK,qBAAoB;AAAA,IAC1B;AAAA,EACF,GAJQ;AAAA,EAKT,SAAS;AAAA,IACP,YAAY,gCAASP,YAAW,MAAM;AACpC,aAAO,aAAa,KAAK,QAAQ,IAAI;AAAA,IACtC,GAFW;AAAA,IAGZ,aAAa,gCAASd,aAAY,KAAK;AACrC,UAAI,uBAAuB;AAC3B,UAAI,iBAAiB;AAAA,QACnB,OAAO,KAAK,OAAO;AAAA,QACnB,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,OAAO,KAAK;AAAA,UACZ,UAAU,KAAK,WAAW,UAAU,MAAM,MAAM,KAAK,WAAW,UAAU;AAAA,UAC1E,QAAQ,KAAK,eAAgB;AAAA,UAC7B,WAAW,KAAK;AAAA,UAChB,OAAO,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,WAAW,wBAAwB,sBAAsB,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,UACnP,iBAAiB,yBAAyB,KAAK,qBAAqB,QAAQ,2BAA2B,WAAW,yBAAyB,uBAAuB,qBAAqB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB,kBAAkB;AAAA,QACtR;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG;AAAA,QAChD,QAAQ;AAAA,MAChB,CAAO,GAAG,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG,cAAc,GAAG,KAAK,KAAK,KAAK,cAAe,GAAE,KAAK,cAAc,CAAC;AAAA,IAC1G,GArBY;AAAA,IAsBb,eAAe,gCAASC,iBAAgB;AACtC,aAAO,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK;AAAA,IAC3E,GAFc;AAAA,IAGf,SAAS,gCAAS9B,SAAQF,QAAO;AAC/B,WAAK,MAAM,gBAAgB;AAAA,QACzB,eAAeA;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALQ;AAAA,IAMT,WAAW,gCAASmE,WAAUnE,QAAO;AACnC,WAAKA,OAAM,SAAS,WAAWA,OAAM,SAAS,iBAAiBA,OAAM,SAAS,YAAYA,OAAM,cAAc,aAAa,QAAQ,aAAaA,OAAM,eAAe,wBAAwB,GAAG;AAC9L,aAAK,MAAM,gBAAgB;AAAA,UACzB,eAAeA;AAAA,UACf,QAAQ,KAAK;AAAA,QACvB,CAAS;AACD,QAAAA,OAAM,eAAc;AAAA,MACrB;AAAA,IACF,GARU;AAAA,IASX,aAAa,gCAAS,YAAYA,QAAO;AACvC,WAAK,MAAM,oBAAoB;AAAA,QAC7B,eAAeA;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALY;AAAA,IAMb,aAAa,gCAAS,YAAYA,QAAO;AACvC,WAAK,MAAM,oBAAoB;AAAA,QAC7B,eAAeA;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALY;AAAA,IAMb,YAAY,gCAAS,WAAWA,QAAO;AACrC,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAeA;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALW;AAAA,IAMZ,aAAa,gCAAS,YAAYA,QAAO;AACvC,WAAK,MAAM,oBAAoB;AAAA,QAC7B,eAAeA;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALY;AAAA,IAMb,QAAQ,gCAAS,OAAOA,QAAO;AAC7B,WAAK,MAAM,eAAe;AAAA,QACxB,eAAeA;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALO;AAAA,IAMR,eAAe,gCAAS,cAAcA,QAAO;AAC3C,WAAK,MAAM,sBAAsBA,MAAK;AAAA,IACvC,GAFc;AAAA,IAGf,uBAAuB,gCAAS,wBAAwB;AACtD,UAAI,QAAQ;AACZ,aAAO,KAAK,cAAc,UAAU,SAAU,MAAM;AAClD,eAAO,KAAK,UAAU,MAAM,WAAW,OAAO,KAAK,KAAK,UAAU,MAAM,WAAW,WAAW;AAAA,MACtG,CAAO;AAAA,IACF,GALsB;AAAA,IAMvB,eAAe,gCAAS,gBAAgB;AACtC,UAAI,QAAQ,KAAK;AACjB,aAAO,KAAK,eAAe,KAAK,gBAAgB,KAAK,qBAAqB,QAAQ,KAAK,QAAQ,QAAQ;AAAA,IACxG,GAHc;AAAA,IAIf,eAAe,gCAAS,gBAAgB;AACtC,aAAO,KAAK,aAAa,cAAc,KAAK,WAAW,UAAU,KAAK,KAAK,sBAAuB,IAAG;AAAA,IACtG,GAFc;AAAA,IAGf,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,aAAa,WAAW,KAAK,cAAc,KAAK,cAAc,KAAK,WAAW,OAAO,KAAK,KAAK,cAAc,KAAK,WAAW,WAAW,KAAK,KAAK;IAC/J,GAFe;AAAA,IAGhB,sBAAsB,gCAASsD,wBAAuB;AACpD,UAAI,KAAK,WAAW,QAAQ,GAAG;AAC7B,YAAI,QAAQ,KAAK,WAAW,aAAa;AACzC,YAAI,UAAU,SAAS;AACrB,cAAI,QAAQ;AACZ,cAAInB,QAAO,sBAAsB,KAAK,KAAK,+BAA+B;AAC1E,cAAIA,OAAM;AACR,oBAAQ,cAAcA,KAAI,IAAI,WAAWA,MAAK,MAAM,SAAS,CAAC;AAAA,UAC/D;AACD,eAAK,YAAY,QAAQ,QAAQ;AAAA,QAC3C,OAAe;AACL,cAAI,OAAO;AACX,cAAIC,QAAO,0BAA0B,KAAK,KAAK,+BAA+B;AAC9E,cAAIA,OAAM;AACR,mBAAO,cAAcA,KAAI,IAAI,WAAWA,MAAK,MAAM,QAAQ,CAAC;AAAA,UAC7D;AACD,eAAK,YAAY,OAAO,OAAO;AAAA,QAChC;AACD,YAAI,YAAY,KAAK,IAAI,cAAc;AACvC,YAAI,WAAW;AACb,cAAI,QAAQ,SAAS,KAAK,GAAG;AAC7B,cAAI,UAAU,SAAS,KAAK,GAAG;AAC7B,sBAAU,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK,YAAY;AACxD,sBAAU,SAAS,KAAK,EAAE,MAAM,QAAQ,KAAK,YAAY;AAAA,UAC1D;AAAA,QACF;AAAA,MACF;AAAA,IACF,GA3BqB;AAAA,IA4BtB,wBAAwB,gCAAS,uBAAuBpC,QAAO;AAC7D,WAAK,MAAM,mBAAmBA,MAAK;AAAA,IACpC,GAFuB;AAAA,EAGzB;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAASuD,kBAAiB;AACxC,aAAO,CAAC,KAAK,GAAG,YAAY,GAAG,KAAK,eAAe,KAAK,WAAW,mBAAmB,IAAI,KAAK,WAAW,aAAa,GAAG,KAAK,WAAW,OAAO,CAAC;AAAA,IACnJ,GAFe;AAAA,IAGhB,gBAAgB,gCAASC,kBAAiB;AACxC,UAAI,cAAc,KAAK,eAAe,KAAK,WAAW,mBAAmB,IAAI,KAAK,WAAW,aAAa;AAC1G,UAAI,cAAc,KAAK,WAAW,OAAO;AACzC,aAAO,KAAK,WAAW,QAAQ,IAAI,CAAC,aAAa,aAAa,KAAK,WAAW,IAAI,CAAC,aAAa,WAAW;AAAA,IAC5G,GAJe;AAAA,IAKhB,WAAW,gCAAS,YAAY;AAC9B,UAAIY,UAAS;AACb,UAAIC,aAAY;AAChB,UAAI,KAAK,aAAa,UAAU;AAC9B,QAAAD,UAAS,KAAK,cAAc,KAAK,cAAc,KAAK,WAAW,OAAO,KAAK,KAAK,cAAc,KAAK,WAAW,WAAW;AACzH,QAAAC,aAAYD,UAAS,KAAK,YAAY;AAAA,MAC9C,WAAiB,KAAK,aAAa,YAAY;AACvC,YAAI,YAAY,KAAK;AACrB,YAAI,YAAY,IAAI;AAClB,UAAAA,UAAS;AACT,UAAAC,aAAY,KAAK,cAAc,SAAS,EAAE;AAAA,QAC3C;AAAA,MACF;AACD,aAAO;AAAA,QACL,QAAQD;AAAA,QACR,WAAWC;AAAA,MACnB;AAAA,IACK,GAjBU;AAAA,IAkBX,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,kBAAkB,KAAK,WACzBD,UAAS,gBAAgB,QACzBC,aAAY,gBAAgB;AAC9B,UAAI,CAACD,QAAQ,QAAOE;AAAAA,eAAqBF,WAAUC,aAAY,EAAG,QAAOE;AAAAA,eAA6BH,WAAUC,aAAY,EAAG,QAAOG;AACtI,aAAO;AAAA,IACR,GANmB;AAAA,IAOpB,UAAU,gCAAS,WAAW;AAC5B,UAAI,KAAK,WAAW,UAAU,GAAG;AAC/B,YAAI,mBAAmB,KAAK,WAC1BJ,UAAS,iBAAiB,QAC1BC,aAAY,iBAAiB;AAC/B,YAAID,WAAUC,aAAY,EAAG,QAAO;AAAA,iBAAsBD,WAAUC,aAAY,EAAG,QAAO;AAAA,YAAiB,QAAO;AAAA,MAC1H,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GATS;AAAA,EAUX;AAAA,EACD,YAAY;AAAA,IACV,OAAOI;AAAAA,IACP,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,aAAaH;AAAAA,IACb,qBAAqBC;AAAAA,IACrB,oBAAoBC;AAAAA,EACrB;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUtG,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,IAAI,aAAa,CAAC,YAAY,WAAW,WAAW,aAAa,0BAA0B,2BAA2B,iBAAiB,wBAAwB,wBAAwB,2BAA2B;AAClN,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,mBAAmB,iBAAiB,OAAO;AAC/C,MAAI,8BAA8B,iBAAiB,kBAAkB;AACrE,MAAI,4BAA4B,iBAAiB,gBAAgB;AACjE,SAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IACtD,OAAO,SAAS;AAAA,IAChB,SAAS,SAAS;AAAA,IAClB,UAAU,SAAS,WAAW,UAAU,IAAI,MAAM;AAAA,IAClD,MAAM;AAAA,IACN,SAAS,SAAS,WAAW,SAAS;AAAA,IACtC,SAAS,SAAS,WAAW,SAAS;AAAA,IACtC,aAAa,SAAS;AAAA,IACtB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,WAAW,SAAS,QAAQ,MAAM,UAAU,SAAS;AAAA,IAC3E;AAAA,IACI,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,aAAO,SAAS,aAAa,SAAS,UAAU,MAAM,UAAU,SAAS;AAAA,IAC/E;AAAA,IACI,aAAa,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AACnD,aAAO,SAAS,eAAe,SAAS,YAAY,MAAM,UAAU,SAAS;AAAA,IACnF;AAAA,IACI,aAAa,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AACnD,aAAO,SAAS,eAAe,SAAS,YAAY,MAAM,UAAU,SAAS;AAAA,IACnF;AAAA,IACI,YAAY,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AAClD,aAAO,SAAS,cAAc,SAAS,WAAW,MAAM,UAAU,SAAS;AAAA,IACjF;AAAA,IACI,aAAa,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AACnD,aAAO,SAAS,eAAe,SAAS,YAAY,MAAM,UAAU,SAAS;AAAA,IACnF;AAAA,IACI,QAAQ,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AAC9C,aAAO,SAAS,UAAU,SAAS,OAAO,MAAM,UAAU,SAAS;AAAA,IACzE;AAAA,EACG,GAAE,gBAAgB,gBAAgB,CAAE,GAAE,SAAS,YAAY,MAAM,CAAC,GAAG,SAAS,YAAY,YAAY,CAAC,GAAG;AAAA,IACzG,0BAA0B,SAAS,WAAW,UAAU;AAAA,IACxD,2BAA2B,OAAO;AAAA,IAClC,iBAAiB,SAAS,eAAgB;AAAA,IAC1C,wBAAwB,OAAO;AAAA,IAC/B,wBAAwB,SAAS,WAAW,QAAQ;AAAA,IACpD,6BAA6B,OAAO;AAAA,EACrC,CAAA,GAAG,CAAC,OAAO,oBAAoB,CAAC,SAAS,WAAW,QAAQ,KAAK,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,IACnH,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,eAAe;AAAA,IAChC,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AACjD,aAAO,SAAS,iBAAiB,SAAS,cAAc,MAAM,UAAU,SAAS;AAAA,IACvF;AAAA,EACG,GAAE,SAAS,YAAY,eAAe,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGpD,gBAAmB,OAAO,WAAW;AAAA,IACzH,SAAS,KAAK,GAAG,qBAAqB;AAAA,EAC1C,GAAK,SAAS,YAAY,qBAAqB,CAAC,GAAG,CAAC,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,UAAU,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,SAAS,MAAM,GAAG;AAAA,IAC5L,KAAK;AAAA,IACL,QAAQ,OAAO;AAAA,EACnB,GAAK,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,WAAW,QAAQ,KAAK,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,IAC3I,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,aAAa;AAAA,EAC/B,GAAE,SAAS,YAAY,aAAa,CAAC,GAAG,gBAAgB,SAAS,WAAW,QAAQ,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,WAAW,UAAU,KAAK,UAAS,GAAI,mBAAmB,QAAQ,eAAe,WAAW;AAAA,IACjO,KAAK;AAAA,EACT,GAAK,SAAS,YAAY,MAAM,CAAC,CAAC,GAAG,EAAE,UAAS,GAAI,YAAY,wBAAwB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,YAAY,SAAS,kBAAkB,GAAG,WAAW;AAAA,IAC1L,QAAQ,SAAS,UAAU;AAAA,IAC3B,WAAW,SAAS,UAAU;AAAA,IAC9B,SAAS,KAAK,GAAG,UAAU;AAAA,EAC5B,GAAE,SAAS,YAAY,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,aAAa,OAAO,CAAC,EAAC,GAAI,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,cAAa,KAAM,UAAS,GAAI,YAAY,kBAAkB;AAAA,IAC/L,KAAK;AAAA,IACL,SAAS,eAAe,KAAK,GAAG,aAAa,CAAC;AAAA,IAC9C,IAAI,SAAS,YAAY,aAAa;AAAA,IACtC,OAAO,SAAS,cAAe;AAAA,IAC/B,MAAM;AAAA,EACV,GAAK,MAAM,GAAG,CAAC,SAAS,MAAM,OAAO,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,WAAW,eAAe,MAAM,cAAc,OAAO,kBAAkB,SAAS,UAAS,GAAI,YAAY,6BAA6B;AAAA,IACpN,KAAK;AAAA,IACL,SAAS,OAAO;AAAA,IAChB,UAAU,SAAS;AAAA,IACnB,UAAU,OAAO;AAAA,IACjB,4BAA4B,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IAC7E,QAAQ,OAAO;AAAA,IACf,UAAU,KAAK;AAAA,IACf,IAAI,KAAK;AAAA,EACV,GAAE,MAAM,GAAG,CAAC,WAAW,YAAY,YAAY,8BAA8B,UAAU,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,OAAO,kBAAkB,UAAU,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS,UAAU,UAAS,GAAI,YAAY,2BAA2B;AAAA,IAC5R,KAAK;AAAA,IACL,OAAO,SAAS,WAAW,aAAa,KAAK,SAAS,WAAW,OAAO;AAAA,IACxE,MAAM,SAAS,WAAW,UAAU;AAAA,IACpC,SAAS;AAAA,IACT,UAAU,SAAS,WAAW,gBAAgB;AAAA,IAC9C,eAAe,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IAChE,sBAAsB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IACvE,sBAAsB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IACvE,qBAAqB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IACtE,qBAAqB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IACtE,oBAAoB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IACrE,uBAAuB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IACxE,0BAA0B,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IAC3E,yBAAyB,OAAO,OAAO,YAAY,OAAO,OAAO,SAAS;AAAA,IAC1E,SAAS,OAAO;AAAA,IAChB,cAAc,OAAO;AAAA,IACrB,kBAAkB,OAAO;AAAA,IACzB,mBAAmB,OAAO;AAAA,IAC1B,gBAAgB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC1D,aAAO,KAAK,MAAM,iBAAiB,MAAM;AAAA,IAC/C;AAAA,IACI,eAAe,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACzD,aAAO,KAAK,MAAM,cAAc;AAAA,IACtC;AAAA,IACI,iBAAiB,SAAS,WAAW,iBAAiB;AAAA,IACtD,iBAAiB,SAAS,WAAW,iBAAiB;AAAA,IACtD,cAAc,SAAS,WAAW,oBAAoB;AAAA,IACtD,iBAAiB,SAAS,WAAW,iBAAiB;AAAA,IACtD,iBAAiB,SAAS,WAAW,iBAAiB;AAAA,IACtD,gBAAgB,SAAS,WAAW,sBAAsB;AAAA,IAC1D,eAAe,SAAS,WAAW,eAAe;AAAA,IAClD,kBAAkB,SAAS,WAAW,wBAAwB;AAAA,IAC9D,gBAAgB,SAAS,WAAW,gBAAgB;AAAA,IACpD,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,aAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,IACjD;AAAA,IACI,mBAAmB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC7D,aAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,IAClD;AAAA,IACI,iBAAiB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC3D,aAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,IAChD;AAAA,IACI,oBAAoB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC9D,aAAO,KAAK,MAAM,qBAAqB,MAAM;AAAA,IACnD;AAAA,IACI,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,aAAO,KAAK,MAAM,eAAe,MAAM;AAAA,IAC7C;AAAA,IACI,QAAQ,OAAO;AAAA,IACf,UAAU,KAAK;AAAA,IACf,IAAI,KAAK;AAAA,EACb,GAAK,MAAM,GAAG,CAAC,SAAS,QAAQ,YAAY,iBAAiB,wBAAwB,wBAAwB,uBAAuB,uBAAuB,sBAAsB,yBAAyB,4BAA4B,2BAA2B,WAAW,gBAAgB,oBAAoB,qBAAqB,mBAAmB,mBAAmB,gBAAgB,mBAAmB,mBAAmB,kBAAkB,iBAAiB,oBAAoB,kBAAkB,UAAU,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,UAAU;AAC7jB;AAhIS;AAkIT,SAAS,SAAS;AAElB,IAAIwC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW7B;AAAAA,EACX,OAAO,CAAC,gBAAgB,oBAAoB,oBAAoB,mBAAmB,oBAAoB,eAAe,sBAAsB,mBAAmB,iBAAiB,gBAAgB,mBAAmB,oBAAoB,kBAAkB,qBAAqB,gBAAgB,aAAa;AAAA,EAC3S,OAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM,CAAC,OAAO,QAAQ,QAAQ;AAAA,MAC9B,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS,gCAAS+C,WAAU;AAC1B,WAAO;AAAA,MACL,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,IACrB;AAAA,EACG,GALQ;AAAA,EAMT,MAAM,gCAASL,SAAO;AACpB,WAAO;AAAA,MACL,cAAc,IAAIsC,SAAU;AAAA,QAC1B,MAAM;AAAA,MACd,CAAO;AAAA,MACD,iBAAiB,IAAIA,SAAU;AAAA,QAC7B,MAAM;AAAA,MACd,CAAO;AAAA,IACP;AAAA,EACG,GATK;AAAA,EAUN,eAAe,gCAASC,iBAAgB;AACtC,SAAK,aAAa;AAClB,SAAK,gBAAgB;EACtB,GAHc;AAAA,EAIf,SAAS;AAAA,IACP,YAAY,gCAASb,YAAW,KAAK,MAAM;AACzC,aAAO,aAAa,KAAK,IAAI;AAAA,IAC9B,GAFW;AAAA,IAGZ,kBAAkB,gCAAS6B,kBAAiB,KAAK;AAC/C,UAAI;AACJ,UAAI,sBAAsB;AAAA,QACxB,OAAO,KAAK,oBAAqB;AAAA,QACjC,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,MAAM;AAAA,UACN,aAAa,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,WAAW,wBAAwB,sBAAsB,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,QAC1P;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,eAAe,OAAO,GAAG,GAAG;AAAA,QACrD,aAAa;AAAA,MACrB,CAAO,GAAG,KAAK,IAAI,eAAe,OAAO,GAAG,GAAG,mBAAmB,GAAG,KAAK,KAAK,KAAK,oBAAqB,GAAE,KAAK,mBAAmB,CAAC;AAAA,IAC/H,GAjBiB;AAAA,IAkBlB,qBAAqB,gCAASC,uBAAsB;AAClD,aAAO,KAAK,eAAe,KAAK,YAAY,SAAS,KAAK,YAAY,MAAM,KAAK,KAAK,YAAY,MAAM,KAAK;AAAA,IAC9G,GAFoB;AAAA,IAGrB,UAAU,gCAASC,UAASjB,MAAK,KAAK,OAAO;AAC3C,UAAI,cAAc;AAAA,QAChB,OAAOA,KAAI;AAAA,QACX,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP;AAAA,QACD;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,OAAO,OAAO,GAAG,GAAG;AAAA,QAC7C,KAAK;AAAA,MACb,CAAO,GAAG,KAAK,IAAI,OAAO,OAAO,GAAG,GAAG,WAAW,GAAG,KAAK,KAAK,KAAK,WAAWA,IAAG,GAAG,KAAK,WAAW,CAAC;AAAA,IACjG,GAfS;AAAA,IAgBV,YAAY,gCAASkB,YAAWlB,MAAK;AACnC,aAAOA,KAAI,SAASA,KAAI,MAAM,KAAKA,KAAI,MAAM,KAAK;AAAA,IACnD,GAFW;AAAA,IAGZ,aAAa,gCAAS5B,aAAY,QAAQ,KAAK,OAAO;AACpD,UAAI,iBAAiB;AAAA,QACnB,OAAO,OAAO;AAAA,QACd,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP;AAAA,QACD;AAAA,MACT;AACM,aAAO,WAAW,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG;AAAA,QAChD,QAAQ;AAAA,MAChB,CAAO,GAAG,KAAK,IAAI,UAAU,OAAO,GAAG,GAAG,cAAc,GAAG,KAAK,KAAK,KAAK,cAAc,MAAM,GAAG,KAAK,cAAc,CAAC;AAAA,IAChH,GAfY;AAAA,IAgBb,eAAe,gCAASC,eAAc,QAAQ;AAC5C,aAAO,OAAO,SAAS,OAAO,MAAM,KAAK,OAAO,MAAM,KAAK;AAAA,IAC5D,GAFc;AAAA,IAGf,4BAA4B,gCAAS,2BAA2B,QAAQ;AACtE,aAAO,CAAC,KAAK,GAAG,cAAc;AAAA,QAC5B;AAAA,MACD,CAAA,GAAG,KAAK,WAAW,QAAQ,mBAAmB,GAAG,KAAK,WAAW,QAAQ,OAAO,CAAC;AAAA,IACnF,GAJ2B;AAAA,IAK5B,4BAA4B,gCAAS,2BAA2B,QAAQ;AACtE,aAAO,CAAC,KAAK,WAAW,QAAQ,mBAAmB,GAAG,KAAK,WAAW,QAAQ,OAAO,CAAC;AAAA,IACvF,GAF2B;AAAA,IAG5B,eAAe,gCAAS,gBAAgB;AACtC,UAAI;AACJ,cAAQ,qBAAqB,KAAK,kBAAkB,QAAQ,uBAAuB,SAAS,SAAS,mBAAmB,IAAI,KAAK,aAAa,KAAK,YAAY,QAAQ;AAAA,IACxK,GAHc;AAAA,IAIf,kBAAkB,gCAAS,iBAAiB2B,MAAK;AAC/C,UAAI;AACJ,cAAQ,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,IAAIA,MAAKA,KAAI,QAAQ;AAAA,IAC1J,GAHiB;AAAA,EAInB;AAAA,EACD,UAAU;AAAA,IACR,iBAAiB,gCAAS,kBAAkB;AAC1C,UAAI;AACJ,aAAO;AAAA,QACL,SAAS;AAAA,UACP,aAAa,yBAAyB,KAAK,qBAAqB,QAAQ,2BAA2B,WAAW,yBAAyB,uBAAuB,qBAAqB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB;AAAA,QAChQ;AAAA,MACT;AAAA,IACK,GAPgB;AAAA,EAQlB;AAAA,EACD,YAAY;AAAA,IACV,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,EACjB;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUzF,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,0BAA0B,iBAAiB,cAAc;AAC7D,MAAI,8BAA8B,iBAAiB,kBAAkB;AACrE,MAAI,4BAA4B,iBAAiB,gBAAgB;AACjE,SAAO,UAAW,GAAE,mBAAmB,SAAS,WAAW;AAAA,IACzD,SAAS,KAAK,GAAG,OAAO;AAAA,IACxB,OAAO,KAAK,GAAG,OAAO;AAAA,IACtB,MAAM;AAAA,EACV,GAAK,OAAO,cAAc,gBAAgB,gBAAgB,CAAE,GAAE,KAAK,IAAI,SAAS,SAAS,eAAe,CAAC,GAAG,SAAS,iBAAiB,MAAM,CAAC,IAAI,KAAK,IAAI,SAAS,SAAS,eAAe,GAAG;AAAA,IAC1L,mBAAmB;AAAA,EACvB,CAAG,GAAG,CAAC,CAAC,OAAO,eAAe,UAAW,GAAE,mBAAmB,UAAU;AAAA,IACpE,KAAK;AAAA,EACT,GAAK,CAACpD,gBAAmB,MAAM,WAAW;AAAA,IACtC,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,SAAS,SAAU,KAAK,GAAG;AAC5H,WAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,MAC/C,KAAK,SAAS,WAAW,KAAK,WAAW,KAAK,SAAS,WAAW,KAAK,OAAO,KAAK;AAAA,IACzF,GAAO,CAAC,CAAC,SAAS,WAAW,KAAK,QAAQ,MAAM,OAAO,iBAAiB,eAAe,OAAO,gBAAgB,SAAS,WAAW,KAAK,OAAO,MAAM,UAAS,GAAI,YAAY,yBAAyB;AAAA,MAChM,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,eAAe,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACzD,eAAO,KAAK,MAAM,gBAAgB,MAAM;AAAA,MAChD;AAAA,MACM,mBAAmB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC7D,eAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,MACpD;AAAA,MACM,mBAAmB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC7D,eAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,MACpD;AAAA,MACM,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,mBAAmB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC7D,eAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,MACpD;AAAA,MACM,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,eAAO,KAAK,MAAM,eAAe,MAAM;AAAA,MAC/C;AAAA,MACM,aAAa,OAAO;AAAA,MACpB,mBAAmB,OAAO;AAAA,MAC1B,oBAAoB,OAAO;AAAA,MAC3B,kBAAkB,OAAO;AAAA,MACzB,qBAAqB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC/D,eAAO,KAAK,MAAM,sBAAsB,MAAM;AAAA,MACtD;AAAA,MACM,UAAU,OAAO;AAAA,MACjB,WAAW,OAAO;AAAA,MAClB,WAAW,OAAO;AAAA,MAClB,eAAe,OAAO;AAAA,MACtB,iBAAiB,OAAO;AAAA,MACxB,OAAO,OAAO;AAAA,MACd,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,SAAS,OAAO;AAAA,MAChB,eAAe,OAAO;AAAA,MACtB,cAAc,OAAO;AAAA,MACrB,kBAAkB,OAAO;AAAA,MACzB,mBAAmB,OAAO;AAAA,MAC1B,OAAO,OAAO;AAAA,MACd,gBAAgB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC1D,eAAO,KAAK,MAAM,iBAAiB,MAAM;AAAA,MACjD;AAAA,MACM,eAAe,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACzD,eAAO,KAAK,MAAM,cAAc;AAAA,MACxC;AAAA,MACM,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,mBAAmB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC/D,eAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,MACpD;AAAA,MACM,iBAAiB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC7D,eAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,MAClD;AAAA,MACM,oBAAoB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAChE,eAAO,KAAK,MAAM,qBAAqB,MAAM;AAAA,MACrD;AAAA,MACM,cAAc,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC1D,eAAO,KAAK,MAAM,eAAe,MAAM;AAAA,MAC/C;AAAA,MACM,UAAU,KAAK;AAAA,MACf,IAAI,KAAK;AAAA,IACV,GAAE,MAAM,GAAG,CAAC,UAAU,SAAS,eAAe,qBAAqB,sBAAsB,oBAAoB,YAAY,aAAa,aAAa,iBAAiB,mBAAmB,SAAS,WAAW,iBAAiB,gBAAgB,oBAAoB,qBAAqB,SAAS,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,EACvV,CAAA,GAAG,GAAG,KAAK,EAAE,GAAG,OAAO,kBAAkB,SAAS,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IAClG,KAAK;AAAA,IACL,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,SAAS,SAAU,KAAK,GAAG;AAC5H,WAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,MAC/C,KAAK,SAAS,WAAW,KAAK,WAAW,KAAK,SAAS,WAAW,KAAK,OAAO,KAAK;AAAA,IACzF,GAAO,CAAC,CAAC,SAAS,WAAW,KAAK,QAAQ,MAAM,OAAO,iBAAiB,eAAe,OAAO,gBAAgB,SAAS,WAAW,KAAK,OAAO,MAAM,aAAa,mBAAmB,MAAM,WAAW;AAAA,MAC/L,KAAK;AAAA,MACL,OAAO,SAAS,2BAA2B,GAAG;AAAA,MAC9C,SAAS,SAAS,2BAA2B,GAAG;AAAA,MAChD,SAAS;AAAA,IACV,GAAE,gBAAgB,gBAAgB,CAAE,GAAE,SAAS,YAAY,KAAK,QAAQ,CAAC,CAAC,GAAG,SAAS,YAAY,KAAK,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,WAAW,KAAK,eAAe,MAAM,cAAc,aAAa,YAAY,6BAA6B;AAAA,MAC7O,KAAK;AAAA,MACL,SAAS,OAAO;AAAA,MAChB,UAAU,OAAO;AAAA,MACjB,UAAU,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACtD,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,QAAQ;AAAA,MACR,UAAU,KAAK;AAAA,MACf,IAAI,KAAK;AAAA,IACf,GAAO,MAAM,GAAG,CAAC,WAAW,YAAY,UAAU,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,IAAI,YAAY,IAAI,SAAS,UAAU,UAAS,GAAI,YAAY,2BAA2B;AAAA,MAC3L,KAAK;AAAA,MACL,OAAO,SAAS,WAAW,KAAK,aAAa,KAAK,SAAS,WAAW,KAAK,OAAO;AAAA,MAClF,MAAM,SAAS,WAAW,KAAK,UAAU;AAAA,MACzC,SAAS;AAAA,MACT,UAAU,SAAS,WAAW,KAAK,gBAAgB;AAAA,MACnD,eAAe,IAAI,YAAY,IAAI,SAAS;AAAA,MAC5C,sBAAsB,IAAI,YAAY,IAAI,SAAS;AAAA,MACnD,sBAAsB,IAAI,YAAY,IAAI,SAAS;AAAA,MACnD,qBAAqB,IAAI,YAAY,IAAI,SAAS;AAAA,MAClD,qBAAqB,IAAI,YAAY,IAAI,SAAS;AAAA,MAClD,oBAAoB,IAAI,YAAY,IAAI,SAAS;AAAA,MACjD,uBAAuB,IAAI,YAAY,IAAI,SAAS;AAAA,MACpD,0BAA0B,IAAI,YAAY,IAAI,SAAS;AAAA,MACvD,yBAAyB,IAAI,YAAY,IAAI,SAAS;AAAA,MACtD,SAAS,OAAO;AAAA,MAChB,cAAc,OAAO;AAAA,MACrB,kBAAkB,OAAO;AAAA,MACzB,mBAAmB,OAAO;AAAA,MAC1B,gBAAgB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC5D,eAAO,KAAK,MAAM,iBAAiB,MAAM;AAAA,MACjD;AAAA,MACM,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,eAAO,KAAK,MAAM,cAAc;AAAA,MACxC;AAAA,MACM,iBAAiB,SAAS,WAAW,KAAK,iBAAiB;AAAA,MAC3D,iBAAiB,SAAS,WAAW,KAAK,iBAAiB;AAAA,MAC3D,cAAc,SAAS,WAAW,KAAK,oBAAoB;AAAA,MAC3D,iBAAiB,SAAS,WAAW,KAAK,iBAAiB;AAAA,MAC3D,iBAAiB,SAAS,WAAW,KAAK,iBAAiB;AAAA,MAC3D,gBAAgB,SAAS,WAAW,KAAK,sBAAsB;AAAA,MAC/D,eAAe,SAAS,WAAW,KAAK,eAAe;AAAA,MACvD,kBAAkB,SAAS,WAAW,KAAK,wBAAwB;AAAA,MACnE,gBAAgB,SAAS,WAAW,KAAK,gBAAgB;AAAA,MACzD,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,mBAAmB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC/D,eAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,MACpD;AAAA,MACM,iBAAiB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC7D,eAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,MAClD;AAAA,MACM,oBAAoB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAChE,eAAO,KAAK,MAAM,qBAAqB,MAAM;AAAA,MACrD;AAAA,MACM,cAAc,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC1D,eAAO,KAAK,MAAM,eAAe,MAAM;AAAA,MAC/C;AAAA,MACM,QAAQ;AAAA,MACR,UAAU,KAAK;AAAA,MACf,IAAI,KAAK;AAAA,IACf,GAAO,MAAM,GAAG,CAAC,SAAS,QAAQ,YAAY,iBAAiB,wBAAwB,wBAAwB,uBAAuB,uBAAuB,sBAAsB,yBAAyB,4BAA4B,2BAA2B,WAAW,gBAAgB,oBAAoB,qBAAqB,mBAAmB,mBAAmB,gBAAgB,mBAAmB,mBAAmB,kBAAkB,iBAAiB,oBAAoB,kBAAkB,UAAU,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,EACnlB,CAAG,GAAG,GAAG,EAAG,GAAE,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,UAAU,IAAI,GAAG,mBAAmB,UAAU;AAAA,IACtG,KAAK;AAAA,EACT,GAAK,WAAW,SAAS,cAAe,GAAE,SAAU6F,MAAK,GAAG;AACxD,WAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,MACtD,KAAK;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACV,GAAE,gBAAgB,gBAAgB,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,SAAS,SAASA,MAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,SAAS,iBAAiBA,IAAG,GAAG,SAAU,KAAK,GAAG;AACrN,aAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,QAC/C,KAAK,SAAS,WAAW,KAAK,WAAW,KAAK,SAAS,WAAW,KAAK,OAAO,KAAK;AAAA,MACpF,GAAE,CAAC,CAAC,SAAS,WAAW,KAAK,QAAQ,MAAM,OAAO,iBAAiB,eAAe,OAAO,gBAAgB,SAAS,WAAW,KAAK,OAAO,MAAM,OAAO,IAAI,aAAa,YAAY,aAAa,YAAY,yBAAyB;AAAA,QACpO,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,KAAK,MAAM,gBAAgB,MAAM;AAAA,QAClD;AAAA,QACQ,mBAAmB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC/D,iBAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,QACtD;AAAA,QACQ,aAAa,OAAO;AAAA,QACpB,mBAAmB,OAAO;AAAA,QAC1B,UAAU,OAAO;AAAA,QACjB,WAAW,OAAO;AAAA,QAClB,WAAW,OAAO;AAAA,QAClB,eAAe,OAAO;AAAA,QACtB,iBAAiB,OAAO;AAAA,QACxB,OAAO,OAAO;AAAA,QACd,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,iBAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,QACrD;AAAA,QACQ,SAAS,OAAO;AAAA,QAChB,eAAe,OAAO;AAAA,QACtB,cAAc,OAAO;AAAA,QACrB,gBAAgB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC5D,iBAAO,KAAK,MAAM,iBAAiB,MAAM;AAAA,QACnD;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,KAAK,MAAM,cAAc;AAAA,QAC1C;AAAA,QACQ,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,iBAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,QACrD;AAAA,QACQ,mBAAmB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC/D,iBAAO,KAAK,MAAM,oBAAoB,MAAM;AAAA,QACtD;AAAA,QACQ,iBAAiB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC7D,iBAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,QACpD;AAAA,QACQ,oBAAoB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAChE,iBAAO,KAAK,MAAM,qBAAqB,MAAM;AAAA,QACvD;AAAA,QACQ,cAAc,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC1D,iBAAO,KAAK,MAAM,eAAe,MAAM;AAAA,QACjD;AAAA,QACQ,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACV,GAAE,MAAM,GAAG,CAAC,UAAU,eAAe,qBAAqB,YAAY,aAAa,aAAa,iBAAiB,mBAAmB,SAAS,WAAW,iBAAiB,gBAAgB,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,IAClP,CAAA,GAAG,GAAG,KAAK,EAAE;AAAA,EACf,CAAA,GAAG,GAAG,EAAE,GAAG,EAAE;AAChB;AA1NS;AA4NTrD,WAAS,SAAS;AAElB,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUpC,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,IAAI,YAAY,CAAC,UAAU;AAC3B,SAAS,yBAAyB,GAAG,GAAG;AAAE,MAAI,QAAQ,EAAG,QAAO,CAAA;AAAI,MAAI,GAAG,GAAG,IAAI,8BAA8B,GAAG,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,SAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,IAAK,KAAI,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAE,EAAC,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA;AAAM,SAAO;AAAI;AAAvT;AACT,SAAS,8BAA8B,GAAG,GAAG;AAAE,MAAI,QAAQ,EAAG,QAAO,CAAE;AAAE,MAAI,IAAI,CAAE;AAAE,WAAS,KAAK,EAAG,KAAI,CAAA,EAAG,eAAe,KAAK,GAAG,CAAC,GAAG;AAAE,QAAI,EAAE,SAAS,CAAC,EAAG;AAAU,MAAE,CAAC,IAAI,EAAE,CAAC;AAAA,EAAI;AAAC,SAAO;AAAI;AAAxL;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,SAAO,gBAAgB,CAAC,KAAK,sBAAsB,GAAG,CAAC,KAAK,4BAA4B,GAAG,CAAC,KAAK,iBAAgB;AAAK;AAA7I;AACT,SAAS,mBAAmB;AAAE,QAAM,IAAI,UAAU,2IAA2I;AAAI;AAAxL;AACT,SAAS,sBAAsB,GAAG,GAAG;AAAE,MAAI,IAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,QAAQ,GAAG;AAAE,QAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA,GAAI,IAAI,MAAI,IAAI;AAAI,QAAI;AAAE,UAAI,KAAK,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,MAAM,EAAG;AAAA,UAAO,QAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,KAAG;AAAA,IAAG,SAAQA,IAAG;AAAE,UAAI,MAAI,IAAIA;AAAA,IAAI,UAAA;AAAW,UAAI;AAAE,YAAI,CAAC,KAAK,QAAQ,EAAE,QAAQ,MAAM,IAAI,EAAE,QAAQ,EAAC,GAAI,OAAO,CAAC,MAAM,GAAI;AAAA,MAAS,UAAA;AAAW,YAAI,EAAG,OAAM;AAAA,MAAI;AAAA,IAAA;AAAG,WAAO;AAAA,EAAE;AAAI;AAA1e;AACT,SAAS,gBAAgB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAO;AAAI;AAAtD;AACT,SAAS,2BAA2B,GAAG,GAAG;AAAE,MAAI,IAAI,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,CAAC,GAAG;AAAE,QAAI,MAAM,QAAQ,CAAC,MAAM,IAAI,4BAA4B,CAAC,MAAM,GAAG;AAAE,YAAM,IAAI;AAAI,UAAI,KAAK,GAAG,IAAI,gCAASyB,KAAI;AAAA,MAAA,GAAb;AAAiB,aAAO,EAAE,GAAG,GAAG,GAAG,gCAAS,IAAI;AAAE,eAAO,MAAM,EAAE,SAAS,EAAE,MAAM,KAAE,IAAK,EAAE,MAAM,OAAI,OAAO,EAAE,IAAI,EAAG;AAAA,MAAG,GAArF,MAAuF,GAAG,gCAASC,GAAE1B,IAAG;AAAE,cAAMA;AAAA,MAAI,GAA1B,MAA4B,GAAG,EAAC;AAAA,IAAG;AAAG,UAAM,IAAI,UAAU,uIAAuI;AAAA,EAAI;AAAC,MAAI,GAAG,IAAI,MAAI,IAAI;AAAI,SAAO,EAAE,GAAG,gCAAS,IAAI;AAAE,QAAI,EAAE,KAAK,CAAC;AAAA,EAAI,GAA/B,MAAiC,GAAG,gCAAS,IAAI;AAAE,QAAIA,KAAI,EAAE,KAAM;AAAE,WAAO,IAAIA,GAAE,MAAMA;AAAA,EAAE,GAAtD,MAA0D,GAAG,gCAAS0B,GAAE1B,IAAG;AAAE,QAAI,MAAI,IAAIA;AAAA,EAAI,GAAhC,MAAkC,GAAG,gCAAS,IAAI;AAAE,QAAI;AAAE,WAAK,QAAQ,EAAE,QAAQ,KAAK,EAAE,QAAQ,EAAG;AAAA,IAAG,UAAA;AAAW,UAAI,EAAG,OAAM;AAAA,IAAE;AAAA,EAAI,GAA/F,KAA+F;AAAK;AAA/yB;AACT,SAAS,mBAAmB,GAAG;AAAE,SAAO,mBAAmB,CAAC,KAAK,iBAAiB,CAAC,KAAK,4BAA4B,CAAC,KAAK,mBAAoB;AAAG;AAAxI;AACT,SAAS,qBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArL;AACT,SAAS,4BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAO,kBAAkB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjX;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxI;AACT,SAAS,mBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAO,kBAAkB,CAAC;AAAI;AAA5E;AACT,SAAS,kBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA3I;AACN,IAACvD,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,gBAAgB,gBAAgB,eAAe,QAAQ,oBAAoB,oBAAoB,wBAAwB,QAAQ,UAAU,aAAa,gBAAgB,oBAAoB,cAAc,gBAAgB,+BAA+B,mBAAmB,oBAAoB,kBAAkB,qBAAqB,qBAAqB,kBAAkB,eAAe,uBAAuB,gBAAgB,cAAc,4BAA4B,qBAAqB,mBAAmB,kBAAkB,iBAAiB,cAAc,kBAAkB,sBAAsB,oBAAoB,sBAAsB,iBAAiB,iBAAiB,iBAAiB;AAAA,EAClrB,SAAS,gCAAS6D,WAAU;AAC1B,WAAO;AAAA,MACL,UAAU,KAAK;AAAA,MACf,eAAe,KAAK;AAAA,IAC1B;AAAA,EACG,GALQ;AAAA,EAMT,MAAM,gCAASL,SAAO;AACpB,WAAO;AAAA,MACL,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,MACb,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,iBAAiB,KAAK;AAAA,MACtB,iBAAiB,KAAK,gBAAgB,mBAAmB,KAAK,aAAa,IAAI,CAAE;AAAA,MACjF,qBAAqB;AAAA,MACrB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,eAAe,CAAE;AAAA,MACjB,WAAW,KAAK,aAAa,KAAK,OAAO;AAAA,MACzC,WAAW,IAAIsC,SAAU;AAAA,QACvB,MAAM;AAAA,MACd,CAAO;AAAA,MACD,gBAAgB,IAAIA,SAAU;AAAA,QAC5B,MAAM;AAAA,MACd,CAAO;AAAA,IACP;AAAA,EACG,GArBK;AAAA,EAsBN,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,8BAA8B;AAAA,EAC9B,iCAAiC;AAAA,EACjC,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,OAAO;AAAA,IACL,OAAO,gCAASrC,OAAM,UAAU;AAC9B,WAAK,UAAU;AAAA,IAChB,GAFM;AAAA,IAGP,MAAM,gCAAS0D,MAAK,UAAU;AAC5B,WAAK,SAAS;AAAA,IACf,GAFK;AAAA,IAGN,WAAW,gCAAS,UAAU,UAAU;AACtC,WAAK,cAAc;AAAA,IACpB,GAFU;AAAA,IAGX,WAAW,gCAAS,UAAU,UAAU;AACtC,WAAK,cAAc;AAAA,IACpB,GAFU;AAAA,IAGX,eAAe,gCAAS,cAAc,UAAU;AAC9C,WAAK,kBAAkB;AAAA,IACxB,GAFc;AAAA,IAGf,eAAe,gCAAS,cAAc,UAAU;AAC9C,WAAK,kBAAkB;AAAA,IACxB,GAFc;AAAA,IAGf,WAAW;AAAA,MACT,WAAW;AAAA,MACX,SAAS,gCAASC,SAAQ,UAAU;AAClC,YAAI,KAAK,SAAS;AAChB,eAAK,oBAAoB,QAAQ;AAAA,QAClC;AAAA,MACF,GAJQ;AAAA,IAKV;AAAA,IACD,aAAa;AAAA,MACX,WAAW;AAAA,MACX,SAAS,gCAASA,SAAQ,UAAU;AAClC,YAAI,KAAK,SAAS;AAChB,eAAK,qBAAqB,QAAQ;AAAA,QACnC;AAAA,MACF,GAJQ;AAAA,IAKV;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,gCAASA,SAAQ,UAAU;AAClC,aAAK,YAAY,KAAK,aAAa,QAAQ;AAAA,MAC5C,GAFQ;AAAA,IAGV;AAAA,EACF;AAAA,EACD,SAAS,gCAAS7C,WAAU;AAC1B,SAAK,IAAI,aAAa,KAAK,mBAAmB,EAAE;AAChD,QAAI,KAAK,cAAc;AACrB,WAAK,aAAY;AACjB,WAAK,oBAAoB,KAAK;IAC/B;AACD,QAAI,KAAK,aAAa,SAAS,KAAK,WAAW,CAAC,KAAK,kBAAkB;AACrE,WAAK,qBAAqB,KAAK,WAAW;AAAA,IAC3C;AAAA,EACF,GATQ;AAAA,EAUT,eAAe,gCAASwB,iBAAgB;AACtC,SAAK,yBAAwB;AAC7B,SAAK,oBAAmB;AACxB,SAAK,UAAU;AACf,SAAK,eAAe;EACrB,GALc;AAAA,EAMf,SAAS,gCAASN,WAAU;AAC1B,QAAI,KAAK,cAAc;AACrB,WAAK,UAAS;AAAA,IACf;AACD,QAAI,KAAK,aAAa,SAAS,KAAK,WAAW,CAAC,KAAK,kBAAkB;AACrE,WAAK,qBAAqB,KAAK,WAAW;AAAA,IAC3C;AAAA,EACF,GAPQ;AAAA,EAQT,SAAS;AAAA,IACP,YAAY,gCAASP,YAAW,KAAK,MAAM;AACzC,aAAO,aAAa,KAAK,IAAI;AAAA,IAC9B,GAFW;AAAA,IAGZ,QAAQ,gCAAS,OAAO7C,QAAO;AAC7B,UAAI,QAAQ;AACZ,WAAK,qBAAoB;AACzB,WAAK,UAAUA,OAAM;AACrB,WAAK,SAASA,OAAM;AACpB,UAAI,YAAY,KAAK,oBAAoBA,MAAK;AAC9C,gBAAU,YAAYA,OAAM;AAC5B,gBAAU,OAAOA,OAAM;AACvB,WAAK,MAAM,gBAAgB,KAAK,OAAO;AACvC,WAAK,MAAM,eAAe,KAAK,MAAM;AACrC,WAAK,MAAM,QAAQ,SAAS;AAC5B,WAAK,UAAU,WAAY;AACzB,cAAM,MAAM,gBAAgB,MAAM,aAAa;AAAA,MACvD,CAAO;AAAA,IACF,GAdO;AAAA,IAeR,qBAAqB,gCAAS,oBAAoB,GAAG;AACnD,UAAI,SAAS;AACb,UAAIA,SAAQ,EAAE;AACd,UAAI,SAAS,EAAE;AACf,UAAI,KAAK,WAAW,QAAQ,UAAU,GAAG;AACvC,YAAI,aAAaA,OAAM;AACvB,YAAI,cAAc,KAAK,WAAW,QAAQ,WAAW,KAAK,KAAK,WAAW,QAAQ,OAAO;AACzF,YAAI,aAAa,YAAY,wBAAwB,MAAM,QAAQ,aAAa,YAAY,iBAAiB,MAAM,iBAAiB,aAAa,YAAY,iBAAiB,MAAM,yBAAyB,aAAa,YAAY,iBAAiB,MAAM,cAAc,aAAa,WAAW,eAAe,iBAAiB,MAAM,cAAc,aAAa,WAAW,cAAc,eAAe,iBAAiB,MAAM,cAAc,WAAW,QAAQ,iCAAiC,KAAK,CAAC,WAAW,QAAQ,wCAAwC,KAAK,CAAC,YAAYA,OAAM,MAAM,GAAG;AACrkB;AACA,cAAI,KAAK,aAAa,UAAU;AAC9B,gBAAI,KAAK,gBAAgB,aAAa;AACpC,kBAAI,KAAK,iBAAiB,KAAK,cAAc,OAAO,KAAK,kBAAkB;AACzE,qBAAK,cAAc;AACnB,qBAAK,cAAc;AAAA,cACnC,OAAqB;AACL,qBAAK,cAAc,KAAK,cAAc;AAAA,cACvC;AAAA,YACf,OAAmB;AACL,mBAAK,cAAc,KAAK;AACxB,mBAAK,cAAc;AAAA,YACpB;AACD,iBAAK,MAAM,oBAAoB,KAAK,WAAW;AAC/C,iBAAK,MAAM,oBAAoB,KAAK,WAAW;AAC/C,iBAAK,UAAS;AAAA,UAC1B,WAAqB,KAAK,aAAa,YAAY;AACvC,gBAAI,UAAUA,OAAM,WAAWA,OAAM;AACrC,gBAAI,CAAC,SAAS;AACZ,mBAAK,kBAAkB,KAAK,gBAAgB,OAAO,SAAU,MAAM;AACjE,uBAAO,KAAK,UAAU;AAAA,cACtC,CAAe;AAAA,YACF;AACD,iBAAK,kBAAkB,WAAW;AAClC,iBAAK,MAAM,wBAAwB,KAAK,eAAe;AAAA,UACxD;AACD,eAAK,MAAM,QAAQ,KAAK,oBAAoBA,MAAK,CAAC;AAClD,eAAK,UAAU,WAAY;AACzB,mBAAO,MAAM,gBAAgB,OAAO,aAAa;AAAA,UAC7D,CAAW;AAAA,QACF;AAAA,MACF;AAAA,IACF,GAxCoB;AAAA,IAyCrB,YAAY,gCAAS,WAAW,OAAO;AACrC,UAAI,SAAS;AACb,WAAK,qBAAoB;AACzB,UAAI,KAAK,eAAe,KAAK,gBAAgB,KAAK,WAAW;AAC3D,aAAK,kBAAkB,CAAC;AAAA,UACtB,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK,aAAa,KAAK;AAAA,QACxC,GAAW;AAAA,UACD,OAAO,KAAK;AAAA,UACZ,OAAO,KAAK;AAAA,QACtB,CAAS;AACD,eAAO,KAAK,aAAa,KAAK;AAAA,MAC/B;AACD,UAAImB,SAAO,mBAAmB,KAAK;AACnC,UAAI,oBAAoB,oBAAI;AAC5B,UAAI,YAAY,2BAA2BA,MAAI,GAC7C;AACF,UAAI;AACF,aAAK,UAAU,EAAC,GAAI,EAAE,QAAQ,UAAU,EAAG,GAAE,QAAO;AAClD,cAAI,OAAO,MAAM;AACjB,4BAAkB,IAAI,MAAM,iBAAiB,MAAM,KAAK,WAAW,CAAC;AAAA,QACrE;AAAA,MACF,SAAQ,KAAK;AACZ,kBAAU,EAAE,GAAG;AAAA,MACvB,UAAgB;AACR,kBAAU,EAAC;AAAA,MACZ;AACD,UAAI,WAAW;AACf,MAAAA,OAAK,KAAK,SAAU,OAAO4B,QAAO;AAChC,YAAI,SAAS,kBAAkB,IAAI,KAAK;AACxC,YAAI,SAAS,kBAAkB,IAAIA,MAAK;AACxC,eAAO,KAAK,QAAQ,QAAQ,OAAO,aAAa,UAAU,OAAO,eAAe;AAAA,MACxF,CAAO;AACD,aAAO5B;AAAA,IACR,GAlCW;AAAA,IAmCZ,cAAc,gCAAS,aAAa,OAAO;AACzC,UAAI,SAAS;AACb,WAAK,qBAAoB;AACzB,UAAI,KAAK,gBAAgB,KAAK,uBAAuB,KAAK,gBAAgB,UAAU,KAAK,gBAAgB,KAAK,gBAAgB,CAAC,EAAE,QAAQ;AACvI,YAAI,gBAAgB,KAAK,gBAAgB,CAAC;AAC1C,SAAC,KAAK,wBAAwB,KAAK,sBAAsB;AACzD,YAAI,cAAc,UAAU,KAAK,oBAAoB,OAAO;AAC1D,eAAK,kBAAkB,CAAC,KAAK,mBAAmB,EAAE,OAAO,mBAAmB,KAAK,eAAe,CAAC;AAAA,QAClG;AAAA,MACF;AACD,UAAIA,SAAO,mBAAmB,KAAK;AACnC,MAAAA,OAAK,KAAK,SAAU,OAAO4B,QAAO;AAChC,eAAO,OAAO,eAAe,OAAOA,QAAO,CAAC;AAAA,MACpD,CAAO;AACD,aAAO5B;AAAA,IACR,GAfa;AAAA,IAgBd,gBAAgB,gCAAS,eAAe,OAAO4B,QAAO,OAAO;AAC3D,UAAI,SAAS,iBAAiB,OAAO,KAAK,gBAAgB,KAAK,EAAE,KAAK;AACtE,UAAI,SAAS,iBAAiBA,QAAO,KAAK,gBAAgB,KAAK,EAAE,KAAK;AACtE,UAAI,WAAW;AACf,UAAI,WAAW,QAAQ;AACrB,eAAO,KAAK,gBAAgB,SAAS,IAAI,QAAQ,KAAK,eAAe,OAAOA,QAAO,QAAQ,CAAC,IAAI;AAAA,MACjG;AACD,aAAO,KAAK,QAAQ,QAAQ,KAAK,gBAAgB,KAAK,EAAE,OAAO,UAAU,KAAK,eAAe;AAAA,IAC9F,GARe;AAAA,IAShB,mBAAmB,gCAAS,kBAAkBD,QAAO;AACnD,UAAI,QAAQ,KAAK,gBAAgB,UAAU,SAAU,MAAM;AACzD,eAAO,KAAK,UAAUA;AAAA,MAC9B,CAAO;AACD,UAAI,SAAS,GAAG;AACd,YAAI,KAAK,iBAAiB,KAAK,gBAAgB,KAAK,EAAE,QAAQ,OAAO,KAAK,iBAAkB,MAAK,gBAAgB,OAAO,OAAO,CAAC;AAAA,YAAO,MAAK,gBAAgB,KAAK,IAAI;AAAA,UACnK,OAAOA;AAAA,UACP,OAAO,KAAK,gBAAgB,KAAK,EAAE,QAAQ;AAAA,QACrD;AAAA,MACA,OAAa;AACL,aAAK,gBAAgB,KAAK;AAAA,UACxB,OAAOA;AAAA,UACP,OAAO,KAAK;AAAA,QACtB,CAAS;AAAA,MACF;AACD,WAAK,kBAAkB,mBAAmB,KAAK,eAAe;AAAA,IAC/D,GAhBkB;AAAA,IAiBnB,kBAAkB,gCAAS,iBAAiB,SAAS;AACnD,UAAI,qBAAqB,gCAASkC,oBAAmB,MAAM;AACzD,YAAI,QAAQ,eAAe,MAAM,CAAC,GAChC,MAAM,MAAM,CAAC,GACb,QAAQ,MAAM,CAAC;AACjB,YAAI,MAAM,aAAa;AACrB,cAAI,sBAAsB,MAAM,YAAY,OAAO,SAAU,YAAY;AACvE,mBAAO,WAAW,UAAU;AAAA,UACxC,CAAW;AACD,cAAI,oBAAoB,SAAS,GAAG;AAClC,mBAAO,CAAC,KAAK,gBAAgB,gBAAgB,CAAA,GAAI,KAAK,GAAG,IAAI;AAAA,cAC3D,aAAa;AAAA,YACd,CAAA,CAAC;AAAA,UACH;AAAA,QACX,WAAmB,MAAM,UAAU,MAAM;AAC/B,iBAAO,CAAC,KAAK,KAAK;AAAA,QACnB;AACD,eAAO;AAAA,MACf,GAjB+B;AAkBzB,UAAI,qBAAqB,gCAASC,oBAAmB,OAAO;AAC1D,eAAO,UAAU;AAAA,MACzB,GAF+B;AAGzB,UAAI,UAAU,OAAO,QAAQ,OAAO,EAAE,IAAI,kBAAkB,EAAE,OAAO,kBAAkB;AACvF,aAAO,OAAO,YAAY,OAAO;AAAA,IAClC,GAxBiB;AAAA,IAyBlB,QAAQ,gCAASpB,QAAO1C,QAAM;AAC5B,UAAI,SAAS;AACb,UAAI,CAACA,QAAM;AACT;AAAA,MACD;AACD,WAAK,qBAAoB;AACzB,UAAI,gBAAgB,KAAK,iBAAiB,KAAK,OAAO;AACtD,UAAI;AACJ,UAAI,cAAc,QAAQ,GAAG;AAC3B,kCAA0B,KAAK,sBAAsB,KAAK,QAAQ,IAAI,SAAU,KAAK;AACnF,iBAAO,OAAO,WAAW,KAAK,aAAa,KAAK,OAAO,WAAW,KAAK,OAAO;AAAA,QACxF,CAAS;AAAA,MACF;AACD,UAAI,gBAAgB,CAAA;AACpB,eAAS,IAAI,GAAG,IAAIA,OAAK,QAAQ,KAAK;AACpC,YAAI,aAAa;AACjB,YAAI,cAAc;AAClB,YAAI,gBAAgB;AACpB,iBAAS,QAAQ,eAAe;AAC9B,cAAI,OAAO,UAAU,eAAe,KAAK,eAAe,IAAI,KAAK,SAAS,UAAU;AAClF,4BAAgB;AAChB,gBAAI,cAAc;AAClB,gBAAI,aAAa,cAAc,WAAW;AAC1C,gBAAI,WAAW,UAAU;AACvB,kBAAI,aAAa,2BAA2B,WAAW,WAAW,GAChE;AACF,kBAAI;AACF,qBAAK,WAAW,EAAC,GAAI,EAAE,SAAS,WAAW,EAAG,GAAE,QAAO;AACrD,sBAAI+D,oBAAmB,OAAO;AAC9B,+BAAa,KAAK,mBAAmB,aAAa/D,OAAK,CAAC,GAAG+D,iBAAgB;AAC3E,sBAAI,WAAW,aAAa,eAAe,MAAM,cAAc,WAAW,aAAa,eAAe,OAAO,CAAC,YAAY;AACxH;AAAA,kBACD;AAAA,gBACF;AAAA,cACF,SAAQ,KAAK;AACZ,2BAAW,EAAE,GAAG;AAAA,cAChC,UAAwB;AACR,2BAAW,EAAC;AAAA,cACb;AAAA,YACf,OAAmB;AACL,2BAAa,KAAK,mBAAmB,aAAa/D,OAAK,CAAC,GAAG,UAAU;AAAA,YACtE;AACD,gBAAI,CAAC,YAAY;AACf;AAAA,YACD;AAAA,UACF;AAAA,QACF;AACD,YAAI,cAAc,cAAc,QAAQ,KAAK,CAAC,eAAe,yBAAyB;AACpF,mBAAS,IAAI,GAAG,IAAI,wBAAwB,QAAQ,KAAK;AACvD,gBAAI,oBAAoB,wBAAwB,CAAC;AACjD,0BAAc,cAAc,QAAQ,cAAc,QAAQ,EAAE,aAAa,gBAAgB,QAAQ,EAAE,iBAAiBA,OAAK,CAAC,GAAG,iBAAiB,GAAG,cAAc,QAAQ,EAAE,OAAO,KAAK,YAAY;AACjM,gBAAI,aAAa;AACf;AAAA,YACD;AAAA,UACF;AAAA,QACF;AACD,YAAI,UAAU;AACd,YAAI,cAAc,QAAQ,GAAG;AAC3B,oBAAU,gBAAgB,iBAAiB,cAAc,cAAc;AAAA,QACjF,OAAe;AACL,oBAAU,iBAAiB;AAAA,QAC5B;AACD,YAAI,SAAS;AACX,wBAAc,KAAKA,OAAK,CAAC,CAAC;AAAA,QAC3B;AAAA,MACF;AACD,UAAI,cAAc,WAAW,KAAK,MAAM,UAAU,OAAO,KAAK,aAAa,EAAE,UAAU,GAAG;AACxF,wBAAgBA;AAAA,MACjB;AACD,UAAI,cAAc,KAAK;AACvB,kBAAY,gBAAgB;AAC5B,WAAK,MAAM,UAAU,WAAW;AAChC,WAAK,UAAU,WAAY;AACzB,eAAO,MAAM,gBAAgB,OAAO,aAAa;AAAA,MACzD,CAAO;AACD,aAAO;AAAA,IACR,GA5EO;AAAA,IA6ER,oBAAoB,gCAAS,mBAAmB2B,QAAO,SAAS,YAAY;AAC1E,UAAI,cAAc,WAAW;AAC7B,UAAI,kBAAkB,WAAW,aAAa,gBAAgB;AAC9D,UAAI,iBAAiB,iBAAiB,SAASA,MAAK;AACpD,UAAIoC,oBAAmB,cAAc,QAAQ,eAAe;AAC5D,aAAOA,kBAAiB,gBAAgB,aAAa,KAAK,YAAY;AAAA,IACvE,GANmB;AAAA,IAOpB,YAAY,gCAASC,YAAW,GAAG;AACjC,UAAInF,SAAQ,EAAE;AACd,UAAI,OAAO,KAAK,MAAM,WAAW,KAAK,MAAM,QAAQ;AACpD,UAAI,cAAc,WAAW,MAAM,gDAAgD;AACnF,UAAI,YAAYA,OAAM,MAAM,GAAG;AAC7B;AAAA,MACD;AACD,WAAK,MAAM,aAAa,CAAC;AACzB,UAAI,KAAK,eAAe;AACtB,YAAI,UAAU,EAAE;AAChB,YAAIqD,YAAW,KAAK,UAAU,EAAE;AAChC,YAAI,KAAK,6BAA6BrD,OAAM,YAAY,KAAK,kBAAkB,MAAM;AACnF;AACA,eAAK,gBAAgBqD;AACrB,eAAK,YAAYrD,MAAK;AAAA,QAChC,OAAe;AACL,cAAI,WAAW,KAAK,WAAW,OAAO;AACtC,cAAI,gBAAgB,KAAK,aAAa,QAAQ,KAAK;AACnD,eAAK,iBAAiBqD;AACtB,eAAK,gBAAgBA;AACrB,cAAI,eAAe;AACjB,gBAAI,UAAUrD,OAAM,WAAWA,OAAM;AACrC,gBAAI,YAAY,SAAS;AACvB,kBAAI,KAAK,yBAAyB;AAChC,qBAAK,MAAM,oBAAoB,IAAI;AAAA,cACnD,OAAqB;AACL,oBAAI,iBAAiB,KAAK,qBAAqB,OAAO;AACtD,oBAAI,aAAa,KAAK,UAAU,OAAO,SAAU,KAAK,GAAG;AACvD,yBAAO,KAAK;AAAA,gBAC9B,CAAiB;AACD,qBAAK,MAAM,oBAAoB,UAAU;AAAA,cAC1C;AACD,mBAAK,MAAM,gBAAgB;AAAA,gBACzB,eAAeA;AAAA,gBACf,MAAM;AAAA,gBACN,OAAOqD;AAAA,gBACP,MAAM;AAAA,cACtB,CAAe;AAAA,YACf,OAAmB;AACL,kBAAI,KAAK,yBAAyB;AAChC,qBAAK,MAAM,oBAAoB,OAAO;AAAA,cACtD,WAAyB,KAAK,2BAA2B;AACzC,oBAAI,cAAc,UAAU,KAAK,aAAa,CAAA,IAAK,CAAA;AACnD,8BAAc,CAAE,EAAC,OAAO,mBAAmB,WAAW,GAAG,CAAC,OAAO,CAAC;AAClE,qBAAK,MAAM,oBAAoB,WAAW;AAAA,cAC3C;AACD,mBAAK,MAAM,cAAc;AAAA,gBACvB,eAAerD;AAAA,gBACf,MAAM;AAAA,gBACN,OAAOqD;AAAA,gBACP,MAAM;AAAA,cACtB,CAAe;AAAA,YACF;AAAA,UACb,OAAiB;AACL,gBAAI,KAAK,kBAAkB,UAAU;AACnC,kBAAI,UAAU;AACZ,qBAAK,MAAM,oBAAoB,IAAI;AACnC,qBAAK,MAAM,gBAAgB;AAAA,kBACzB,eAAerD;AAAA,kBACf,MAAM;AAAA,kBACN,OAAOqD;AAAA,kBACP,MAAM;AAAA,gBACxB,CAAiB;AAAA,cACjB,OAAqB;AACL,qBAAK,MAAM,oBAAoB,OAAO;AACtC,qBAAK,MAAM,cAAc;AAAA,kBACvB,eAAerD;AAAA,kBACf,MAAM;AAAA,kBACN,OAAOqD;AAAA,kBACP,MAAM;AAAA,gBACxB,CAAiB;AAAA,cACF;AAAA,YACf,WAAuB,KAAK,kBAAkB,YAAY;AAC5C,kBAAI,UAAU;AACZ,oBAAI,kBAAkB,KAAK,qBAAqB,OAAO;AACvD,oBAAI,cAAc,KAAK,UAAU,OAAO,SAAU,KAAK,GAAG;AACxD,yBAAO,KAAK;AAAA,gBAC9B,CAAiB;AACD,qBAAK,MAAM,oBAAoB,WAAW;AAC1C,qBAAK,MAAM,gBAAgB;AAAA,kBACzB,eAAerD;AAAA,kBACf,MAAM;AAAA,kBACN,OAAOqD;AAAA,kBACP,MAAM;AAAA,gBACxB,CAAiB;AAAA,cACjB,OAAqB;AACL,oBAAI,cAAc,KAAK,YAAY,CAAE,EAAC,OAAO,mBAAmB,KAAK,SAAS,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;AACtG,qBAAK,MAAM,oBAAoB,WAAW;AAC1C,qBAAK,MAAM,cAAc;AAAA,kBACvB,eAAerD;AAAA,kBACf,MAAM;AAAA,kBACN,OAAOqD;AAAA,kBACP,MAAM;AAAA,gBACxB,CAAiB;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACD,WAAK,aAAa;AAClB,UAAI,aAAa;AACf,YAAI,eAAe,gBAAgB;AACnC,cAAM,gBAAgBrD,OAAM,YAAY,QAAQ,kBAAkB,SAAS,SAAS,cAAc,aAAa,iBAAiB,OAAO,qBAAqB,iBAAiBA,OAAM,YAAY,QAAQ,mBAAmB,WAAW,iBAAiB,eAAe,mBAAmB,QAAQ,mBAAmB,SAAS,SAAS,eAAe,aAAa,iBAAiB,OAAO,gBAAiB;AAC1Y,YAAI,aAAa,iBAAiBA,OAAM,YAAY,QAAQ,mBAAmB,SAAS,SAAS,eAAe,QAAQ,kCAAkC;AAC1J,oBAAY,WAAW;AACvB,kBAAU,WAAW;AAAA,MACtB;AAAA,IACF,GA3GW;AAAA,IA4GZ,eAAe,gCAASoF,eAAc,GAAG;AACvC,UAAIpF,SAAQ,EAAE;AACd,UAAI,YAAYA,OAAM,MAAM,GAAG;AAC7B;AAAA,MACD;AACD,WAAK,MAAM,gBAAgB,CAAC;AAAA,IAC7B,GANc;AAAA,IAOf,iBAAiB,gCAASqF,iBAAgBrF,QAAO;AAC/C,UAAI,KAAK,aAAa;AACpB;AACA,QAAAA,OAAM,cAAc,OAAO;MAC5B;AACD,WAAK,MAAM,+BAA+BA,OAAM,IAAI;AACpD,WAAK,MAAM,mBAAmBA,MAAK;AAAA,IACpC,GAPgB;AAAA,IAQjB,eAAe,gCAASsF,iBAAgB;AACtC,WAAK,aAAa;AAAA,IACnB,GAFc;AAAA,IAGf,cAAc,gCAASC,cAAa,GAAG,WAAW;AAChD,UAAIvF,SAAQ,EAAE;AACd,UAAI,UAAU,EAAE;AAChB,UAAIqD,YAAW,EAAE;AACjB,UAAI,UAAUrD,OAAM,WAAWA,OAAM;AACrC,UAAI,KAAK,eAAe;AACtB,YAAI2D,OAAM3D,OAAM;AAChB,gBAAQA,OAAM,MAAI;AAAA,UAChB,KAAK;AACH,iBAAK,eAAeA,QAAO2D,MAAKN,WAAU,SAAS;AACnD;AAAA,UACF,KAAK;AACH,iBAAK,aAAarD,QAAO2D,MAAKN,WAAU,SAAS;AACjD;AAAA,UACF,KAAK;AACH,iBAAK,UAAUrD,QAAO2D,MAAKN,WAAU,SAAS;AAC9C;AAAA,UACF,KAAK;AACH,iBAAK,SAASrD,QAAO2D,MAAKN,WAAU,SAAS;AAC7C;AAAA,UACF,KAAK;AAAA,UACL,KAAK;AACH,iBAAK,WAAWrD,QAAO,SAASqD,SAAQ;AACxC;AAAA,UACF,KAAK;AACH,iBAAK,WAAWrD,QAAO,SAASqD,WAAU,SAAS;AACnD;AAAA,UACF,KAAK;AACH,iBAAK,SAASrD,QAAOqD,SAAQ;AAC7B;AAAA,UACF;AACE,gBAAIrD,OAAM,SAAS,UAAU,WAAW,KAAK,2BAA2B;AACtE,kBAAImB,SAAO,KAAK,aAAa,UAAU,IAAI;AAC3C,mBAAK,MAAM,oBAAoBA,MAAI;AAAA,YACpC;AACD,YAAAnB,OAAM,eAAc;AACpB;AAAA,QACH;AAAA,MACF;AAAA,IACF,GAvCa;AAAA,IAwCd,gBAAgB,gCAAS,eAAeA,QAAO2D,MAAKN,WAAU,WAAW;AACvE,UAAI,UAAU,KAAK,sBAAsBM,IAAG;AAC5C,iBAAW,KAAK,eAAeA,MAAK,OAAO;AAC3C,UAAI3D,OAAM,UAAU;AAClB,YAAImB,SAAO,KAAK,aAAa,UAAU,IAAI;AAC3C,YAAI,eAAekC,YAAW,KAAKlC,OAAK,SAASA,OAAK,SAAS,IAAIkC,YAAW;AAC9E,aAAK,WAAW;AAAA,UACd,eAAerD;AAAA,UACf,MAAMmB,OAAK,YAAY;AAAA,UACvB,OAAO;AAAA,QACjB,CAAS;AAAA,MACF;AACD,MAAAnB,OAAM,eAAc;AAAA,IACrB,GAbe;AAAA,IAchB,cAAc,gCAAS,aAAaA,QAAO2D,MAAKN,WAAU,WAAW;AACnE,UAAI,UAAU,KAAK,sBAAsBM,IAAG;AAC5C,iBAAW,KAAK,eAAeA,MAAK,OAAO;AAC3C,UAAI3D,OAAM,UAAU;AAClB,YAAImB,SAAO,KAAK,aAAa,UAAU,IAAI;AAC3C,YAAI,eAAekC,YAAW,KAAK,IAAI,IAAIA,YAAW;AACtD,aAAK,WAAW;AAAA,UACd,eAAerD;AAAA,UACf,MAAMmB,OAAK,YAAY;AAAA,UACvB,OAAO;AAAA,QACjB,CAAS;AAAA,MACF;AACD,MAAAnB,OAAM,eAAc;AAAA,IACrB,GAba;AAAA,IAcd,WAAW,gCAAS,UAAUA,QAAO2D,MAAKN,WAAU,WAAW;AAC7D,UAAI,WAAW,KAAK;AACpB,kBAAY,KAAK,eAAeM,MAAK,QAAQ;AAC7C,UAAI3D,OAAM,WAAWA,OAAM,UAAU;AACnC,YAAImB,SAAO,KAAK,aAAa,UAAU,IAAI;AAC3C,aAAK,MAAM,oBAAoBA,OAAK,MAAM,GAAGkC,YAAW,CAAC,CAAC;AAAA,MAC3D;AACD,MAAArD,OAAM,eAAc;AAAA,IACrB,GARU;AAAA,IASX,UAAU,gCAAS,SAASA,QAAO2D,MAAKN,WAAU,WAAW;AAC3D,UAAI,UAAU,KAAK;AACnB,iBAAW,KAAK,eAAeM,MAAK,OAAO;AAC3C,UAAI3D,OAAM,WAAWA,OAAM,UAAU;AACnC,YAAImB,SAAO,KAAK,aAAa,UAAU,IAAI;AAC3C,aAAK,MAAM,oBAAoBA,OAAK,MAAMkC,WAAUlC,OAAK,MAAM,CAAC;AAAA,MACjE;AACD,MAAAnB,OAAM,eAAc;AAAA,IACrB,GARS;AAAA,IASV,YAAY,gCAAS,WAAWA,QAAO,SAASqD,WAAU;AACxD,WAAK,WAAW;AAAA,QACd,eAAerD;AAAA,QACf,MAAM;AAAA,QACN,OAAOqD;AAAA,MACf,CAAO;AACD,MAAArD,OAAM,eAAc;AAAA,IACrB,GAPW;AAAA,IAQZ,YAAY,gCAAS,WAAWA,QAAO,SAASqD,WAAU,WAAW;AACnE,WAAK,WAAWrD,QAAO,SAASqD,SAAQ;AACxC,UAAIrD,OAAM,YAAY,KAAK,cAAc,MAAM;AAC7C,YAAImB,SAAO,KAAK,aAAa,UAAU,IAAI;AAC3C,YAAI;AACJ,YAAI,KAAK,UAAU,SAAS,GAAG;AAC7B,cAAI,uBAAuB;AAC3B,kCAAwB,gBAAgB,KAAK,UAAU,CAAC,GAAGA,MAAI;AAC/D,iCAAuB,gBAAgB,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC,GAAGA,MAAI;AACtF,kBAAQkC,aAAY,wBAAwB,uBAAuB;AAAA,QAC7E,OAAe;AACL,kBAAQ,gBAAgB,KAAK,WAAWlC,MAAI;AAAA,QAC7C;AACD,YAAI,aAAa,UAAUkC,YAAWlC,OAAK,MAAM,KAAK,IAAI,OAAOkC,SAAQ,GAAG,KAAK,IAAI,OAAOA,SAAQ,IAAI,CAAC,IAAI;AAC7G,aAAK,MAAM,oBAAoB,UAAU;AAAA,MAC1C;AAAA,IACF,GAhBW;AAAA,IAiBZ,UAAU,gCAAS,SAASrD,QAAOqD,WAAU;AAC3C,UAAI,OAAO,KAAK,MAAM,WAAW,KAAK,MAAM,QAAQ;AACpD,UAAIyB,QAAO,KAAK,MAAM,kCAAkC;AACxD,UAAI9E,OAAM,SAAS,SAAS8E,SAAQA,MAAK,SAAS,GAAG;AACnD,YAAI,mBAAmB,WAAW,MAAM,4BAA4B;AACpE,YAAI,cAAc,WAAW,MAAM,gDAAgD;AACnF,YAAI,kBAAkB;AACpB,2BAAiB,WAAW;AAC5B,yBAAe,gBAAgB,qBAAqB,YAAY,WAAW;AAAA,QACrF,OAAe;AACL,UAAAA,MAAK,CAAC,EAAE,WAAW;AACnB,0BAAgBA,MAAK,CAAC,MAAMA,MAAKzB,SAAQ,EAAE,WAAW;AAAA,QACvD;AAAA,MACF;AAAA,IACF,GAdS;AAAA,IAeV,uBAAuB,gCAAS,sBAAsBM,MAAK;AACzD,UAAI,UAAUA,KAAI;AAClB,UAAI,SAAS;AACX,YAAI,aAAa,SAAS,uBAAuB,MAAM,KAAM,QAAO;AAAA,YAAa,QAAO,KAAK,sBAAsB,OAAO;AAAA,MAClI,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAPsB;AAAA,IAQvB,uBAAuB,gCAAS,sBAAsBA,MAAK;AACzD,UAAI,UAAUA,KAAI;AAClB,UAAI,SAAS;AACX,YAAI,aAAa,SAAS,uBAAuB,MAAM,KAAM,QAAO;AAAA,YAAa,QAAO,KAAK,sBAAsB,OAAO;AAAA,MAClI,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAPsB;AAAA,IAQvB,wBAAwB,gCAAS,yBAAyB;AACxD,UAAI,WAAW,WAAW,KAAK,MAAM,OAAO,kCAAkC;AAC9E,aAAO;AAAA,IACR,GAHuB;AAAA,IAIxB,uBAAuB,gCAAS,wBAAwB;AACtD,UAAImB,QAAO,KAAK,KAAK,MAAM,OAAO,kCAAkC;AACpE,aAAOA,QAAOA,MAAKA,MAAK,SAAS,CAAC,IAAI;AAAA,IACvC,GAHsB;AAAA,IAIvB,gBAAgB,gCAAS,eAAe,mBAAmB,mBAAmB;AAC5E,wBAAkB,WAAW;AAC7B,wBAAkB,WAAW;AAC7B,YAAM,iBAAiB;AAAA,IACxB,GAJe;AAAA,IAKhB,oBAAoB,gCAASU,oBAAmBxF,QAAO;AACrD,UAAI,UAAUA,OAAM;AACpB,UAAI,KAAK,WAAW,OAAO,GAAG;AAC5B,aAAK,MAAM,oBAAoB,IAAI;AACnC,aAAK,MAAM,gBAAgB;AAAA,UACzB,eAAeA,OAAM;AAAA,UACrB,MAAM;AAAA,UACN,OAAOA,OAAM;AAAA,UACb,MAAM;AAAA,QAChB,CAAS;AAAA,MACT,OAAa;AACL,aAAK,MAAM,oBAAoB,OAAO;AACtC,aAAK,MAAM,cAAc;AAAA,UACvB,eAAeA,OAAM;AAAA,UACrB,MAAM;AAAA,UACN,OAAOA,OAAM;AAAA,UACb,MAAM;AAAA,QAChB,CAAS;AAAA,MACF;AAAA,IACF,GAnBmB;AAAA,IAoBpB,uBAAuB,gCAASyF,uBAAsBzF,QAAO;AAC3D,UAAI,UAAUA,OAAM;AACpB,UAAI,KAAK,WAAW,OAAO,GAAG;AAC5B,YAAI,iBAAiB,KAAK,qBAAqB,OAAO;AACtD,YAAI,aAAa,KAAK,UAAU,OAAO,SAAU,KAAK,GAAG;AACvD,iBAAO,KAAK;AAAA,QACtB,CAAS;AACD,aAAK,MAAM,oBAAoB,UAAU;AACzC,aAAK,MAAM,gBAAgB;AAAA,UACzB,eAAeA,OAAM;AAAA,UACrB,MAAM;AAAA,UACN,OAAOA,OAAM;AAAA,UACb,MAAM;AAAA,QAChB,CAAS;AAAA,MACT,OAAa;AACL,YAAI,cAAc,KAAK,YAAY,mBAAmB,KAAK,SAAS,IAAI;AACxE,sBAAc,CAAE,EAAC,OAAO,mBAAmB,WAAW,GAAG,CAAC,OAAO,CAAC;AAClE,aAAK,MAAM,oBAAoB,WAAW;AAC1C,aAAK,MAAM,cAAc;AAAA,UACvB,eAAeA,OAAM;AAAA,UACrB,MAAM;AAAA,UACN,OAAOA,OAAM;AAAA,UACb,MAAM;AAAA,QAChB,CAAS;AAAA,MACF;AAAA,IACF,GAzBsB;AAAA,IA0BvB,wBAAwB,gCAAS,uBAAuBA,QAAO;AAC7D,UAAI,KAAK,cAAc,MAAM;AAC3B,aAAK,MAAM,qBAAqBA,MAAK;AAAA,MAC7C,OAAa;AACL,YAAI,gBAAgBA,OAAM,eACxB0F,WAAU1F,OAAM;AAClB,YAAI,aAAa,CAAA;AACjB,YAAI0F,UAAS;AACX,uBAAa,KAAK,cAAc,CAAE,EAAC,OAAO,mBAAmB,KAAK,WAAW,GAAG,mBAAmB,KAAK,aAAa,CAAC,IAAI,KAAK;AAC/H,eAAK,MAAM,kBAAkB;AAAA,YAC3B;AAAA,YACA,MAAM;AAAA,UAClB,CAAW;AAAA,QACX,OAAe;AACL,eAAK,MAAM,oBAAoB;AAAA,YAC7B;AAAA,UACZ,CAAW;AAAA,QACF;AACD,aAAK,MAAM,oBAAoB,UAAU;AAAA,MAC1C;AAAA,IACF,GApBuB;AAAA,IAqBxB,uBAAuB,gCAAS,wBAAwB;AACtD,aAAO,KAAK,kBAAkB;AAAA,IAC/B,GAFsB;AAAA,IAGvB,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,KAAK,kBAAkB;AAAA,IAC/B,GAFwB;AAAA,IAGzB,YAAY,gCAASC,YAAW,SAAS;AACvC,UAAI,WAAW,KAAK,WAAW;AAC7B,YAAI,KAAK,SAAS;AAChB,iBAAO,KAAK,kBAAkB,KAAK,gBAAgB,iBAAiB,SAAS,KAAK,OAAO,CAAC,MAAM,SAAY;AAAA,QACtH,OAAe;AACL,cAAI,KAAK,qBAAqB,MAAO,QAAO,KAAK,qBAAqB,OAAO,IAAI;AAAA,cAAQ,QAAO,KAAK,OAAO,SAAS,KAAK,SAAS;AAAA,QACpI;AAAA,MACF;AACD,aAAO;AAAA,IACR,GATW;AAAA,IAUZ,sBAAsB,gCAASC,sBAAqB,SAAS;AAC3D,aAAO,KAAK,UAAU,SAAS,KAAK,SAAS;AAAA,IAC9C,GAFqB;AAAA,IAGtB,WAAW,gCAASC,WAAU,SAAS,YAAY;AACjD,UAAI,QAAQ;AACZ,UAAI,cAAc,WAAW,QAAQ;AACnC,iBAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC1C,cAAI,KAAK,OAAO,SAAS,WAAW,CAAC,CAAC,GAAG;AACvC,oBAAQ;AACR;AAAA,UACD;AAAA,QACF;AAAA,MACF;AACD,aAAO;AAAA,IACR,GAXU;AAAA,IAYX,qBAAqB,gCAAS,oBAAoB,WAAW;AAC3D,WAAK,kBAAkB;AACvB,UAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,YAAI,aAAa,2BAA2B,SAAS,GACnD;AACF,YAAI;AACF,eAAK,WAAW,EAAC,GAAI,EAAE,SAAS,WAAW,EAAG,GAAE,QAAO;AACrD,gBAAI1E,SAAO,OAAO;AAClB,iBAAK,gBAAgB,OAAO,iBAAiBA,QAAM,KAAK,OAAO,CAAC,CAAC,IAAI;AAAA,UACtE;AAAA,QACF,SAAQ,KAAK;AACZ,qBAAW,EAAE,GAAG;AAAA,QAC1B,UAAkB;AACR,qBAAW,EAAC;AAAA,QACb;AAAA,MACT,OAAa;AACL,aAAK,gBAAgB,OAAO,iBAAiB,WAAW,KAAK,OAAO,CAAC,CAAC,IAAI;AAAA,MAC3E;AAAA,IACF,GAlBoB;AAAA,IAmBrB,sBAAsB,gCAAS,qBAAqB,aAAa;AAC/D,UAAI,eAAe,YAAY,QAAQ;AACrC,aAAK,mBAAmB;AACxB,YAAI,aAAa,2BAA2B,WAAW,GACrD;AACF,YAAI;AACF,eAAK,WAAW,EAAC,GAAI,EAAE,SAAS,WAAW,EAAG,GAAE,QAAO;AACrD,gBAAIA,SAAO,OAAO;AAClB,iBAAK,iBAAiB,OAAO,iBAAiBA,QAAM,KAAK,OAAO,CAAC,CAAC,IAAI;AAAA,UACvE;AAAA,QACF,SAAQ,KAAK;AACZ,qBAAW,EAAE,GAAG;AAAA,QAC1B,UAAkB;AACR,qBAAW,EAAC;AAAA,QACb;AAAA,MACT,OAAa;AACL,aAAK,mBAAmB;AAAA,MACzB;AAAA,IACF,GAlBqB;AAAA,IAmBtB,QAAQ,gCAAS2E,UAAS,OAAO/C,QAAO;AACtC,aAAO,KAAK,uBAAuB,WAAW,UAAUA,SAAQ,OAAO,OAAOA,QAAO,KAAK,OAAO;AAAA,IAClG,GAFO;AAAA,IAGR,aAAa,gCAAS,YAAY/C,QAAO;AACvC,UAAI,YAAY;AAChB,UAAI,KAAK,gBAAgB,KAAK,gBAAgB;AAC5C,qBAAa,KAAK;AAClB,mBAAW,KAAK;AAAA,MACjB,WAAU,KAAK,gBAAgB,KAAK,gBAAgB;AACnD,qBAAa,KAAK;AAClB,mBAAW,KAAK;AAAA,MACxB,OAAa;AACL,qBAAa,KAAK;AAClB,mBAAW,KAAK;AAAA,MACjB;AACD,UAAI,KAAK,QAAQ,KAAK,WAAW;AAC/B,sBAAc,KAAK;AACnB,oBAAY,KAAK;AAAA,MAClB;AACD,UAAI,QAAQ,KAAK;AACjB,UAAI,aAAa,CAAA;AACjB,eAAS,IAAI,YAAY,KAAK,UAAU,KAAK;AAC3C,YAAI,eAAe,MAAM,CAAC;AAC1B,mBAAW,KAAK,YAAY;AAC5B,aAAK,MAAM,cAAc;AAAA,UACvB,eAAeA;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,QAChB,CAAS;AAAA,MACF;AACD,WAAK,MAAM,oBAAoB,UAAU;AAAA,IAC1C,GA5BY;AAAA,IA6Bb,WAAW,gCAAS,YAAY,SAASmB,QAAM;AAC7C,UAAI,SAAS;AACb,UAAI,MAAM;AACV,UAAI,CAACA,QAAM;AACT,QAAAA,SAAO,KAAK;AACZ,YAAI,WAAW,QAAQ,cAAe,CAAAA,SAAO,KAAK,aAAa;iBAAY,KAAK,YAAa,CAAAA,SAAOA,SAAO,GAAG,OAAO,mBAAmB,KAAK,WAAW,GAAG,mBAAmBA,MAAI,CAAC,IAAI,KAAK;AAAA,MAC7L;AAGD,UAAI,kBAAkB;AACtB,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,QAAQ,KAAK;AAC5C,YAAI,SAAS,KAAK,QAAQ,CAAC;AAC3B,YAAI,KAAK,WAAW,QAAQ,YAAY,MAAM,SAAS,KAAK,WAAW,QAAQ,OAAO,GAAG;AACvF,cAAI,gBAAiB,QAAO,KAAK;AAAA,cAAkB,mBAAkB;AACrE,iBAAO,OAAO,KAAK,WAAW,QAAQ,cAAc,KAAK,KAAK,WAAW,QAAQ,QAAQ,KAAK,KAAK,WAAW,QAAQ,OAAO,KAAK;AAAA,QACnI;AAAA,MACF;AAGD,UAAIA,QAAM;AACR,QAAAA,OAAK,QAAQ,SAAU,QAAQ;AAC7B,iBAAO;AACP,cAAI,eAAe;AACnB,mBAAS,KAAK,GAAG,KAAK,OAAO,QAAQ,QAAQ,MAAM;AACjD,gBAAI,UAAU,OAAO,QAAQ,EAAE;AAC/B,gBAAI,OAAO,WAAW,SAAS,YAAY,MAAM,SAAS,OAAO,WAAW,SAAS,OAAO,GAAG;AAC7F,kBAAI,aAAc,QAAO,OAAO;AAAA,kBAAkB,gBAAe;AACjE,kBAAI,WAAW,iBAAiB,QAAQ,OAAO,WAAW,SAAS,OAAO,CAAC;AAC3E,kBAAI,YAAY,MAAM;AACpB,oBAAI,OAAO,gBAAgB;AACzB,6BAAW,OAAO,eAAe;AAAA,oBAC/B,MAAM;AAAA,oBACN,OAAO,OAAO,WAAW,SAAS,OAAO;AAAA,kBAC7D,CAAmB;AAAA,gBACnB,MAAuB,YAAW,OAAO,QAAQ,EAAE,QAAQ,MAAM,IAAI;AAAA,cACrE,MAAqB,YAAW;AAClB,qBAAO,MAAM,WAAW;AAAA,YACzB;AAAA,UACF;AAAA,QACX,CAAS;AAAA,MACF;AAGD,UAAI,kBAAkB;AACtB,eAAS,MAAM,GAAG,MAAM,KAAK,QAAQ,QAAQ,OAAO;AAClD,YAAI,WAAW,KAAK,QAAQ,GAAG;AAC/B,YAAI,QAAQ,EAAG,QAAO;AACtB,YAAI,KAAK,WAAW,UAAU,YAAY,MAAM,SAAS,KAAK,WAAW,UAAU,cAAc,GAAG;AAClG,cAAI,gBAAiB,QAAO,KAAK;AAAA,cAAkB,mBAAkB;AACrE,iBAAO,OAAO,KAAK,WAAW,UAAU,cAAc,KAAK,KAAK,WAAW,UAAU,QAAQ,KAAK,KAAK,WAAW,UAAU,OAAO,KAAK;AAAA,QACzI;AAAA,MACF;AACD,gBAAU,KAAK,KAAK,cAAc;AAAA,IACnC,GArDU;AAAA,IAsDX,WAAW,gCAAS,YAAY;AAC9B,WAAK,UAAU;AACf,WAAK,MAAM,gBAAgB,KAAK,OAAO;AAAA,IACxC,GAHU;AAAA,IAIX,qBAAqB,gCAAS,oBAAoBnB,QAAO;AACvD,UAAI,gBAAgB,UAAU,KAAK,GAAG,EAAE;AACxC,WAAK,sBAAsBA,OAAM,OAAO;AACxC,WAAK,iBAAiB;AACtB,WAAK,oBAAoBA,OAAM,QAAQ,gBAAgB,KAAK,IAAI;AAChE,WAAK,uBAAsB;AAAA,IAC5B,GANoB;AAAA,IAOrB,gBAAgB,gCAAS,eAAeA,QAAO;AAC7C,UAAI,gBAAgB,UAAU,KAAK,GAAG,EAAE;AACxC,WAAK,IAAI,aAAa,4BAA4B,MAAM;AACxD,OAAC,KAAK,cAAc,SAAS,KAAK,KAAK;AAAA,QACrC,eAAe;AAAA,MACvB,CAAO;AACD,WAAK,MAAM,aAAa,MAAM,SAAS,KAAK,IAAI,eAAe;AAC/D,WAAK,MAAM,aAAa,MAAM,MAAM;AACpC,WAAK,MAAM,aAAa,MAAM,OAAOA,OAAM,QAAQ,gBAAgB,KAAK,IAAI,aAAa;AACzF,WAAK,MAAM,aAAa,MAAM,UAAU;AAAA,IACzC,GAVe;AAAA,IAWhB,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,QAAQ,KAAK,MAAM,aAAa,aAAa,KAAK;AACtD,UAAI,cAAc,KAAK,oBAAoB;AAC3C,UAAI,iBAAiB,cAAc;AACnC,UAAI,WAAW,KAAK,oBAAoB,MAAM,YAAY;AAC1D,UAAI,cAAc,QAAQ,SAAS,UAAU,EAAE,GAAG;AAChD,YAAI,KAAK,qBAAqB,OAAO;AACnC,cAAI,aAAa,KAAK,oBAAoB;AAC1C,cAAI,kBAAkB,WAAW,cAAc;AAC/C,cAAI,iBAAiB,MAAM,kBAAkB,IAAI;AAC/C,iBAAK,iBAAiB,gBAAgB,eAAe;AAAA,UACtD;AAAA,QACX,WAAmB,KAAK,qBAAqB,UAAU;AAC7C,cAAI,aAAa,KAAK,MAAM,MAAM,cAAc,QAAQ;AACxD,cAAI,mBAAmB,gCAAS+F,kBAAiB,IAAI;AACnD,aAAC,CAAC,OAAO,GAAG,MAAM,QAAQ,GAAG,MAAM,WAAW;AAAA,UAC1D,GAFiC;AAKvB,eAAK,iBAAiB,cAAc;AACpC,2BAAiB,KAAK,MAAM,KAAK;AACjC,cAAI,CAAC,KAAK,yBAAyB;AACjC,gBAAI,OAAO,KAAK,MAAM,WAAW,KAAK,MAAM,QAAQ;AACpD,gBAAI,aAAa,KAAK,MAAM,iBAAiB,KAAK,MAAM,cAAc;AACtE,6BAAiB,IAAI;AACrB,6BAAiB,UAAU;AAAA,UAC5B;AAAA,QACF;AACD,aAAK,MAAM,qBAAqB;AAAA,UAC9B,SAAS,KAAK;AAAA,UACd;AAAA,QACV,CAAS;AAAA,MACF;AACD,WAAK,MAAM,aAAa,MAAM,UAAU;AACxC,WAAK,eAAe;AACpB,WAAK,IAAI,gBAAgB,0BAA0B;AACnD,OAAC,KAAK,eAAe,KAAK,IAAI,MAAM,aAAa,IAAI;AACrD,WAAK,yBAAwB;AAC7B,UAAI,KAAK,cAAc;AACrB,aAAK,UAAS;AAAA,MACf;AAAA,IACF,GAzCkB;AAAA,IA0CnB,kBAAkB,gCAAS,iBAAiB,gBAAgB,iBAAiB;AAC3E,UAAI,WAAW,SAAS,KAAK,mBAAmB;AAChD,UAAI,SAAS,CAAA;AACb,UAAI,UAAU,KAAK,KAAK,MAAM,OAAO,0CAA0C;AAC/E,cAAQ,QAAQ,SAAU,QAAQ;AAChC,eAAO,OAAO,KAAK,cAAc,MAAM,CAAC;AAAA,MAChD,CAAO;AACD,WAAK,oBAAmB;AACxB,WAAK,mBAAkB;AACvB,UAAI,YAAY;AAChB,UAAI,WAAW,8BAAgC,OAAO,KAAK,mBAAmB,yCAA2C,EAAE,OAAO,KAAK,0BAA0B,KAAK,sCAAsC,mCAAqC;AACjP,aAAO,QAAQ,SAAU,OAAO,OAAO;AACrC,YAAI,WAAW,UAAU,WAAW,iBAAiB,mBAAmB,UAAU,WAAW,IAAI,kBAAkB;AACnH,YAAI,QAAQ,UAAU,OAAO,UAAU,4BAA4B,EAAE,OAAO,UAAU,eAAe;AACrG,qBAAa,yBAAyB,OAAO,UAAU,wDAA0D,EAAE,OAAO,QAAQ,GAAG,0BAA0B,EAAE,OAAO,UAAU,wDAA0D,EAAE,OAAO,QAAQ,GAAG,0BAA0B,EAAE,OAAO,UAAU,wDAA0D,EAAE,OAAO,QAAQ,GAAG,+BAA+B,EAAE,OAAO,OAAO,2CAA2C;AAAA,MAC7d,CAAO;AACD,WAAK,aAAa,YAAY;AAAA,IAC/B,GAjBiB;AAAA,IAkBlB,wBAAwB,gCAAS,yBAAyB;AACxD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,8BAA8B;AACtC,aAAK,+BAA+B,SAAS,iBAAiB,aAAa,WAAY;AACrF,cAAI,OAAO,gBAAgB;AACzB,mBAAO,eAAe,KAAK;AAAA,UAC5B;AAAA,QACX,CAAS;AAAA,MACF;AACD,UAAI,CAAC,KAAK,iCAAiC;AACzC,aAAK,kCAAkC,SAAS,iBAAiB,WAAW,WAAY;AACtF,cAAI,OAAO,gBAAgB;AACzB,mBAAO,iBAAiB;AACxB,mBAAO,kBAAiB;AAAA,UACzB;AAAA,QACX,CAAS;AAAA,MACF;AAAA,IACF,GAjBuB;AAAA,IAkBxB,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,KAAK,8BAA8B;AACrC,iBAAS,oBAAoB,YAAY,KAAK,4BAA4B;AAC1E,aAAK,+BAA+B;AAAA,MACrC;AACD,UAAI,KAAK,iCAAiC;AACxC,iBAAS,oBAAoB,YAAY,KAAK,+BAA+B;AAC7E,aAAK,kCAAkC;AAAA,MACxC;AAAA,IACF,GATyB;AAAA,IAU1B,yBAAyB,gCAAS,wBAAwB,GAAG;AAC3D,UAAI/F,SAAQ,EAAE;AACd,UAAI,SAAS,EAAE;AACf,UAAI,KAAK,sBAAsB,KAAK,WAAW,QAAQ,mBAAmB,MAAM,OAAO;AACrF,YAAIA,OAAM,OAAO,aAAa,WAAWA,OAAM,OAAO,aAAa,cAAc,aAAaA,OAAM,QAAQ,mCAAmC,EAAG,CAAAA,OAAM,cAAc,YAAY;AAAA,YAAW,CAAAA,OAAM,cAAc,YAAY;AAAA,MAC9N;AAAA,IACF,GANwB;AAAA,IAOzB,yBAAyB,gCAAS,wBAAwB,GAAG;AAC3D,UAAIA,SAAQ,EAAE,eACZ,SAAS,EAAE;AACb,UAAI,KAAK,gBAAgB;AACvB,QAAAA,OAAM,eAAc;AACpB;AAAA,MACD;AACD,WAAK,sBAAsB,2BAA2B,KAAK,MAAM,kBAAkB;AACnF,WAAK,uBAAuB,4BAA4B,KAAK,MAAM,kBAAkB;AACrF,WAAK,gBAAgB;AACrB,WAAK,uBAAuB,KAAK,iBAAiBA,OAAM,MAAM;AAC9D,MAAAA,OAAM,aAAa,QAAQ,QAAQ,GAAG;AAAA,IACvC,GAZwB;AAAA,IAazB,wBAAwB,gCAAS,uBAAuB,GAAG;AACzD,UAAIA,SAAQ,EAAE,eACZ,SAAS,EAAE;AACb,UAAI,aAAa,KAAK,iBAAiBA,OAAM,MAAM;AACnD,UAAI,KAAK,sBAAsB,KAAK,wBAAwB,cAAc,CAAC,KAAK,WAAW,QAAQ,QAAQ,GAAG;AAC5G,QAAAA,OAAM,eAAc;AACpB,YAAI,kBAAkB,UAAU,KAAK,GAAG;AACxC,YAAI,mBAAmB,UAAU,UAAU;AAC3C,YAAI,KAAK,yBAAyB,YAAY;AAC5C,cAAI,aAAa,iBAAiB,OAAO,gBAAgB;AACzD,cAAI,eAAe,iBAAiB,OAAO,WAAW,cAAc;AACpE,eAAK,MAAM,mBAAmB,MAAM,MAAM,iBAAiB,MAAM,gBAAgB,OAAO,KAAK,uBAAuB,KAAK;AACzH,eAAK,MAAM,qBAAqB,MAAM,MAAM,iBAAiB,MAAM,gBAAgB,MAAM,WAAW,eAAe;AACnH,cAAIA,OAAM,QAAQ,cAAc;AAC9B,iBAAK,MAAM,mBAAmB,MAAM,OAAO,aAAa,WAAW,cAAc,KAAK,KAAK,KAAK,sBAAsB,CAAC,IAAI;AAC3H,iBAAK,MAAM,qBAAqB,MAAM,OAAO,aAAa,WAAW,cAAc,KAAK,KAAK,KAAK,sBAAsB,CAAC,IAAI;AAC7H,iBAAK,eAAe;AAAA,UAChC,OAAiB;AACL,iBAAK,MAAM,mBAAmB,MAAM,OAAO,aAAa,KAAK,KAAK,KAAK,sBAAsB,CAAC,IAAI;AAClG,iBAAK,MAAM,qBAAqB,MAAM,OAAO,aAAa,KAAK,KAAK,KAAK,sBAAsB,CAAC,IAAI;AACpG,iBAAK,eAAe;AAAA,UACrB;AACD,eAAK,MAAM,mBAAmB,MAAM,UAAU;AAC9C,eAAK,MAAM,qBAAqB,MAAM,UAAU;AAAA,QACjD;AAAA,MACF;AAAA,IACF,GA1BuB;AAAA,IA2BxB,yBAAyB,gCAAS,wBAAwB,GAAG;AAC3D,UAAIA,SAAQ,EAAE;AACd,UAAI,KAAK,sBAAsB,KAAK,sBAAsB;AACxD,QAAAA,OAAM,eAAc;AACpB,aAAK,MAAM,mBAAmB,MAAM,UAAU;AAC9C,aAAK,MAAM,qBAAqB,MAAM,UAAU;AAAA,MACjD;AAAA,IACF,GAPwB;AAAA,IAQzB,oBAAoB,gCAAS,mBAAmB,GAAG;AACjD,UAAI,SAAS;AACb,UAAIA,SAAQ,EAAE,eACZ,SAAS,EAAE;AACb,MAAAA,OAAM,eAAc;AACpB,UAAI,KAAK,sBAAsB;AAC7B,YAAI,YAAY,SAAS,KAAK,oBAAoB;AAClD,YAAI,YAAY,SAAS,KAAK,iBAAiBA,OAAM,MAAM,CAAC;AAC5D,YAAI,YAAY,cAAc;AAC9B,YAAI,cAAc,YAAY,cAAc,KAAK,KAAK,iBAAiB,MAAM,YAAY,cAAc,MAAM,KAAK,iBAAiB,IAAI;AACrI,sBAAY;AAAA,QACb;AACD,YAAI,WAAW;AACb,cAAI,eAAe,gCAASgG,cAAa,MAAM,MAAM;AACnD,mBAAO,OAAO,WAAW,MAAM,WAAW,KAAK,OAAO,WAAW,MAAM,WAAW,IAAI,OAAO,WAAW,MAAM,WAAW,MAAM,OAAO,WAAW,MAAM,WAAW,IAAI,OAAO,WAAW,MAAM,OAAO,MAAM,OAAO,WAAW,MAAM,OAAO;AAAA,UACtP,GAF6B;AAGnB,cAAI,eAAe,KAAK,QAAQ,UAAU,SAAU,OAAO;AACzD,mBAAO,aAAa,OAAO,OAAO,aAAa;AAAA,UAC3D,CAAW;AACD,cAAI,eAAe,KAAK,QAAQ,UAAU,SAAU,OAAO;AACzD,mBAAO,aAAa,OAAO,MAAM;AAAA,UAC7C,CAAW;AACD,cAAI,SAAS,CAAA;AACb,cAAI,UAAU,KAAK,KAAK,KAAK,0CAA0C;AACvE,kBAAQ,QAAQ,SAAU,QAAQ;AAChC,mBAAO,OAAO,KAAK,cAAc,MAAM,CAAC;AAAA,UACpD,CAAW;AACD,cAAI,YAAY,OAAO,KAAK,SAAU,GAAG,OAAO;AAC9C,mBAAO,UAAU;AAAA,UAC7B,CAAW;AACD,cAAI,iBAAiB,OAAO,OAAO,SAAU,GAAG,OAAO;AACrD,mBAAO,UAAU;AAAA,UAC7B,CAAW;AACD,cAAI,kBAAkB,CAAA,EAAG,OAAO,mBAAmB,eAAe,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,GAAG,mBAAmB,eAAe,MAAM,YAAY,CAAC,CAAC;AAC9J,eAAK,qBAAqB,eAAe;AACzC,cAAI,eAAe,gBAAgB,KAAK,iBAAiB,GAAG;AAC1D;AAAA,UACD;AACD,cAAI,eAAe,gBAAgB,KAAK,iBAAiB,IAAI;AAC3D;AAAA,UACD;AACD,uBAAa,KAAK,SAAS,cAAc,YAAY;AACrD,eAAK,yBAAwB;AAC7B,eAAK,MAAM,kBAAkB;AAAA,YAC3B,eAAehG;AAAA,YACf,WAAW;AAAA,YACX,WAAW;AAAA,UACvB,CAAW;AAAA,QACF;AACD,aAAK,MAAM,mBAAmB,MAAM,UAAU;AAC9C,aAAK,MAAM,qBAAqB,MAAM,UAAU;AAChD,aAAK,qBAAqB,YAAY;AACtC,aAAK,uBAAuB;AAC5B,aAAK,gBAAgB;AACrB,aAAK,eAAe;AAAA,MACrB;AAAA,IACF,GAxDmB;AAAA,IAyDpB,kBAAkB,gCAAS,iBAAiB,SAAS;AACnD,UAAI,QAAQ,aAAa,MAAM;AAC7B,eAAO;AAAA,MACf,OAAa;AACL,YAAI,SAAS,QAAQ;AACrB,eAAO,OAAO,aAAa,MAAM;AAC/B,mBAAS,OAAO;AAChB,cAAI,CAAC,OAAQ;AAAA,QACd;AACD,eAAO;AAAA,MACR;AAAA,IACF,GAXiB;AAAA,IAYlB,iBAAiB,gCAAS,gBAAgBiG,UAAS,KAAK;AACtD,UAAIA,YAAWA,SAAQ,QAAQ;AAC7B,iBAAS,IAAI,GAAG,IAAIA,SAAQ,QAAQ,KAAK;AACvC,cAAI,SAASA,SAAQ,CAAC;AACtB,cAAI,KAAK,WAAW,QAAQ,WAAW,MAAM,OAAO,KAAK,WAAW,QAAQ,OAAO,MAAM,KAAK;AAC5F,mBAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACD,aAAO;AAAA,IACR,GAVgB;AAAA,IAWjB,gBAAgB,gCAASC,gBAAelG,QAAO;AAC7C,UAAI,aAAaA,OAAM,QAAQ,iBAAiB,MAAM,0BAA0B,aAAaA,OAAM,OAAO,eAAe,iBAAiB,MAAM,uBAAwB,CAAAA,OAAM,cAAc,YAAY;AAAA,UAAU,CAAAA,OAAM,cAAc,YAAY;AAAA,IACnP,GAFe;AAAA,IAGhB,gBAAgB,gCAASmG,gBAAe,GAAG;AACzC,UAAInG,SAAQ,EAAE;AACd,UAAI,QAAQ,EAAE;AACd,WAAK,cAAc;AACnB,WAAK,kBAAkB;AACvB,MAAAA,OAAM,aAAa,QAAQ,QAAQ,GAAG;AAAA,IACvC,GANe;AAAA,IAOhB,eAAe,gCAASoG,eAAc,GAAG;AACvC,UAAIpG,SAAQ,EAAE;AACd,UAAI,QAAQ,EAAE;AACd,UAAI,KAAK,eAAe,KAAK,oBAAoB,OAAO;AACtD,YAAI,aAAaA,OAAM;AACvB,YAAI,OAAO,UAAU,UAAU,EAAE,MAAM,mBAAkB;AACzD,YAAI,QAAQA,OAAM;AAClB,YAAI,UAAU,OAAO,eAAe,UAAU,IAAI;AAClD,YAAI,iBAAiB,WAAW;AAChC,YAAI,QAAQ,SAAS;AACnB,qBAAW,aAAa,qCAAqC,OAAO;AACpE,WAAC,KAAK,cAAc,YAAY,YAAY,8BAA8B;AAC1E,eAAK,kBAAkB;AACvB,cAAI,gBAAgB;AAClB,2BAAe,aAAa,qCAAqC,MAAM;AACvE,aAAC,KAAK,cAAc,SAAS,gBAAgB,8BAA8B;AAAA,UACvF,OAAiB;AACL,uBAAW,aAAa,kCAAkC,MAAM;AAChE,aAAC,KAAK,cAAc,SAAS,YAAY,2BAA2B;AAAA,UACrE;AAAA,QACX,OAAe;AACL,cAAI,gBAAgB;AAClB,2BAAe,aAAa,qCAAqC,OAAO;AACxE,aAAC,KAAK,cAAc,YAAY,gBAAgB,8BAA8B;AAAA,UAC1F,OAAiB;AACL,uBAAW,aAAa,kCAAkC,MAAM;AAChE,aAAC,KAAK,cAAc,SAAS,YAAY,2BAA2B;AAAA,UACrE;AACD,eAAK,kBAAkB,QAAQ;AAC/B,qBAAW,aAAa,qCAAqC,MAAM;AACnE,WAAC,KAAK,cAAc,SAAS,YAAY,8BAA8B;AAAA,QACxE;AACD,QAAAA,OAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAlCc;AAAA,IAmCf,gBAAgB,gCAASqG,gBAAerG,QAAO;AAC7C,UAAI,aAAaA,OAAM;AACvB,UAAI,iBAAiB,WAAW;AAChC,UAAI,gBAAgB;AAClB,uBAAe,aAAa,qCAAqC,OAAO;AACxE,SAAC,KAAK,cAAc,YAAY,gBAAgB,8BAA8B;AAAA,MAC/E;AACD,iBAAW,aAAa,qCAAqC,OAAO;AACpE,OAAC,KAAK,cAAc,YAAY,YAAY,8BAA8B;AAC1E,iBAAW,aAAa,kCAAkC,OAAO;AACjE,OAAC,KAAK,cAAc,YAAY,YAAY,2BAA2B;AAAA,IACxE,GAXe;AAAA,IAYhB,cAAc,gCAASsG,cAAatG,QAAO;AACzC,WAAK,cAAc;AACnB,WAAK,kBAAkB;AACvB,WAAK,kBAAkB;AACvB,MAAAA,OAAM,cAAc,YAAY;AAAA,IACjC,GALa;AAAA,IAMd,WAAW,gCAASuG,WAAUvG,QAAO;AACnC,UAAI,KAAK,mBAAmB,MAAM;AAChC,YAAI,YAAY,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,oBAAoB,IAAI,IAAI,KAAK,kBAAkB;AAC7I,YAAIwG,iBAAgB,mBAAmB,KAAK,aAAa;AACzD,qBAAaA,gBAAe,KAAK,kBAAkB,KAAK,SAAS,YAAY,KAAK,OAAO;AACzF,aAAK,MAAM,eAAe;AAAA,UACxB,eAAexG;AAAA,UACf,WAAW,KAAK;AAAA,UAChB;AAAA,UACA,OAAOwG;AAAA,QACjB,CAAS;AAAA,MACF;AAGD,WAAK,eAAexG,MAAK;AACzB,WAAK,aAAaA,MAAK;AACvB,MAAAA,OAAM,eAAc;AAAA,IACrB,GAjBU;AAAA,IAkBX,WAAW,gCAASyG,WAAUzG,QAAO;AACnC,UAAI,SAAS;AACb,UAAI,WAAWA,OAAM,UACnB,OAAO,yBAAyBA,QAAO,SAAS;AAClD,UAAI,UAAUA,OAAM;AACpB,UAAI;AACJ,UAAI,KAAK,SAAS;AAChB,YAAI,QAAQ,iBAAiB,SAAS,KAAK,OAAO;AAClD,uBAAe,KAAK,eAAe,gBAAgB,CAAE,GAAE,KAAK,YAAY,IAAI;AAC5E,mBAAW,aAAa,KAAK,IAAI,OAAO,OAAO,aAAa,KAAK;AAAA,MACzE,OAAa;AACL,uBAAe,KAAK,eAAe,mBAAmB,KAAK,YAAY,IAAI;AAC3E,mBAAW,aAAa,KAAK,OAAO,IAAI,eAAe,aAAa,OAAO,SAAU,GAAG;AACtF,iBAAO,CAAC,OAAO,OAAO,SAAS,CAAC;AAAA,QAC1C,CAAS;AAAA,MACF;AACD,WAAK,MAAM,uBAAuB,YAAY;AAC9C,iBAAW,KAAK,MAAM,cAAc,IAAI,IAAI,KAAK,MAAM,gBAAgB,IAAI;AAAA,IAC5E,GAlBU;AAAA,IAmBX,gBAAgB,gCAAS,eAAe,GAAG;AACzC,UAAIA,SAAQ,EAAE;AACd,UAAImB,SAAO,EAAE;AACb,UAAI,kBAAkB,iBAAiBA,QAAM,KAAK,WAAW;AAC7D,UAAI,qBAAqB,KAAK,oBAAoB,mBAAmB,KAAK,iBAAiB,IAAI;AAC/F,UAAI,KAAK,mBAAmBA,MAAI,GAAG;AACjC,6BAAqB,mBAAmB,OAAO,SAAU,OAAO;AAC9D,iBAAO,UAAU;AAAA,QAC3B,CAAS;AACD,aAAK,MAAM,4BAA4B,kBAAkB;AACzD,aAAK,MAAM,qBAAqB;AAAA,UAC9B,eAAenB;AAAA,UACf,MAAM;AAAA,QAChB,CAAS;AAAA,MACT,OAAa;AACL,2BAAmB,KAAK,eAAe;AACvC,aAAK,MAAM,4BAA4B,kBAAkB;AACzD,aAAK,MAAM,mBAAmB;AAAA,UAC5B,eAAeA;AAAA,UACf,MAAM;AAAA,QAChB,CAAS;AAAA,MACF;AAAA,IACF,GAtBe;AAAA,IAuBhB,oBAAoB,gCAAS0G,oBAAmB,SAAS;AACvD,UAAI,KAAK,uBAAuB,KAAK,mBAAmB;AACtD,YAAI,kBAAkB,iBAAiB,SAAS,KAAK,WAAW;AAChE,eAAO,KAAK,kBAAkB,QAAQ,eAAe,IAAI;AAAA,MAC1D;AACD,aAAO;AAAA,IACR,GANmB;AAAA,IAOpB,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,YAAY;AAAA,IACzB,GAFW;AAAA,IAGZ,YAAY,gCAAS,aAAa;AAChC,cAAQ,KAAK,cAAY;AAAA,QACvB,KAAK;AACH,iBAAO,OAAO;AAAA,QAChB,KAAK;AACH,iBAAO,OAAO;AAAA,QAChB;AACE,gBAAM,IAAI,MAAM,KAAK,eAAe,0FAA0F;AAAA,MACjI;AAAA,IACF,GATW;AAAA,IAUZ,WAAW,gCAAS,YAAY;AAC9B,UAAI,UAAU,KAAK;AACnB,UAAI,QAAQ,CAAA;AACZ,UAAI,KAAK,WAAW;AAClB,cAAM,QAAQ,KAAK;AACnB,cAAM,OAAO,KAAK;AAAA,MACnB;AACD,UAAI,KAAK,aAAa;AACpB,cAAM,YAAY,KAAK;AACvB,cAAM,YAAY,KAAK;AAAA,MACxB;AACD,UAAI,KAAK,iBAAiB;AACxB,cAAM,gBAAgB,KAAK;AAAA,MAC5B;AACD,UAAI,KAAK,YAAY;AACnB,cAAM,UAAU,KAAK;AAAA,MACtB;AACD,UAAI,KAAK,kBAAkB;AACzB,aAAK,iBAAiB,KAAK;AAAA,MAC5B;AACD,UAAI,KAAK,oBAAoB;AAC3B,cAAM,cAAc,KAAK;AAAA,MAC1B;AACD,UAAI,KAAK,cAAc;AACrB,cAAM,eAAe,KAAK;AAAA,MAC3B;AACD,UAAI,KAAK,mBAAmB;AAC1B,cAAM,oBAAoB,KAAK;AAAA,MAChC;AACD,UAAI,KAAK,WAAW;AAClB,cAAM,YAAY,KAAK;AACvB,cAAM,gBAAgB,KAAK;AAAA,MAC5B;AACD,UAAI,OAAO,KAAK,KAAK,EAAE,QAAQ;AAC7B,gBAAQ,QAAQ,KAAK,UAAU,KAAK,UAAU,KAAK,CAAC;AAAA,MACrD;AACD,WAAK,MAAM,cAAc,KAAK;AAAA,IAC/B,GArCU;AAAA,IAsCX,cAAc,gCAAS,eAAe;AACpC,UAAI,UAAU,KAAK;AACnB,UAAI,cAAc,QAAQ,QAAQ,KAAK,QAAQ;AAC/C,UAAI,aAAa;AACjB,UAAI,UAAU,gCAASC,SAAQ,KAAK,OAAO;AACzC,YAAI,OAAO,UAAU,YAAY,WAAW,KAAK,KAAK,GAAG;AACvD,iBAAO,IAAI,KAAK,KAAK;AAAA,QACtB;AACD,eAAO;AAAA,MACf,GALoB;AAMd,UAAI,aAAa;AACf,YAAI,gBAAgB,KAAK,MAAM,aAAa,OAAO;AACnD,YAAI,KAAK,WAAW;AAClB,eAAK,UAAU,cAAc;AAC7B,eAAK,SAAS,cAAc;AAAA,QAC7B;AACD,YAAI,cAAc,WAAW;AAC3B,eAAK,cAAc,cAAc;AACjC,eAAK,cAAc,cAAc;AAAA,QAClC;AACD,YAAI,cAAc,eAAe;AAC/B,eAAK,kBAAkB,cAAc;AAAA,QACtC;AACD,YAAI,cAAc,SAAS;AACzB,eAAK,MAAM,kBAAkB,cAAc,OAAO;AAAA,QACnD;AACD,YAAI,KAAK,kBAAkB;AACzB,eAAK,oBAAoB,cAAc;AACvC,eAAK,kBAAkB,cAAc;AAAA,QACtC;AACD,YAAI,KAAK,oBAAoB;AAC3B,eAAK,gBAAgB,cAAc;AAAA,QACpC;AACD,YAAI,cAAc,cAAc;AAC9B,eAAK,MAAM,uBAAuB,cAAc,YAAY;AAAA,QAC7D;AACD,YAAI,cAAc,mBAAmB;AACnC,eAAK,MAAM,4BAA4B,cAAc,iBAAiB;AAAA,QACvE;AACD,YAAI,cAAc,WAAW;AAC3B,eAAK,kBAAkB,cAAc;AACrC,eAAK,MAAM,oBAAoB,cAAc,SAAS;AAAA,QACvD;AACD,aAAK,MAAM,iBAAiB,aAAa;AAAA,MAC1C;AAAA,IACF,GA7Ca;AAAA,IA8Cd,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,UAAI,SAAS,CAAA;AACb,UAAI,UAAU,KAAK,KAAK,KAAK,0CAA0C;AACvE,cAAQ,QAAQ,SAAU,QAAQ;AAChC,eAAO,OAAO,KAAK,cAAc,MAAM,CAAC;AAAA,MAChD,CAAO;AACD,YAAM,eAAe,OAAO,KAAK,GAAG;AACpC,UAAI,KAAK,qBAAqB,UAAU;AACtC,cAAM,aAAa,cAAc,KAAK,MAAM,KAAK,IAAI;AAAA,MACtD;AAAA,IACF,GAViB;AAAA,IAWlB,sBAAsB,gCAAS,qBAAqB,QAAQ;AAC1D,WAAK,mBAAkB;AACvB,UAAI,YAAY;AAChB,UAAI,WAAW,8BAAgC,OAAO,KAAK,mBAAmB,yCAA2C,EAAE,OAAO,KAAK,0BAA0B,KAAK,sCAAsC,mCAAqC;AACjP,aAAO,QAAQ,SAAU,OAAO,OAAO;AACrC,YAAI,QAAQ,UAAU,OAAO,OAAO,4BAA4B,EAAE,OAAO,OAAO,eAAe;AAC/F,qBAAa,aAAa,OAAO,UAAU,wDAA0D,EAAE,OAAO,QAAQ,GAAG,cAAc,EAAE,OAAO,UAAU,wDAA0D,EAAE,OAAO,QAAQ,GAAG,cAAc,EAAE,OAAO,UAAU,wDAA0D,EAAE,OAAO,QAAQ,GAAG,mBAAmB,EAAE,OAAO,OAAO,mBAAmB;AAAA,MACrZ,CAAO;AACD,WAAK,aAAa,YAAY;AAAA,IAC/B,GATqB;AAAA,IAUtB,qBAAqB,gCAAS,sBAAsB;AAClD,UAAI,KAAK,mBAAmB;AAC1B,YAAI,SAAS,KAAK,kBAAkB,MAAM,GAAG;AAC7C,YAAI,KAAK,qBAAqB,YAAY,KAAK,iBAAiB;AAC9D,eAAK,MAAM,MAAM,MAAM,QAAQ,KAAK;AACpC,eAAK,MAAM,MAAM,MAAM,WAAW,KAAK;AAAA,QACxC;AACD,YAAI,WAAW,MAAM,GAAG;AACtB,eAAK,qBAAqB,MAAM;AAAA,QACjC;AAAA,MACF;AAAA,IACF,GAXoB;AAAA,IAYrB,gBAAgB,gCAASC,gBAAe5G,QAAO;AAC7C,WAAK,MAAM,kBAAkBA,MAAK;AAAA,IACnC,GAFe;AAAA,IAGhB,oBAAoB,gCAAS6G,oBAAmB7G,QAAO;AACrD,WAAK,MAAM,sBAAsBA,MAAK;AAAA,IACvC,GAFmB;AAAA,IAGpB,kBAAkB,gCAAS8G,kBAAiB9G,QAAO;AACjD,WAAK,MAAM,oBAAoBA,MAAK;AAAA,IACrC,GAFiB;AAAA,IAGlB,eAAe,gCAASgD,eAAchD,QAAO;AAC3C,UAAI,eAAe,KAAK,cAAc,mBAAmB,KAAK,WAAW,IAAI;AAC7E,mBAAa,KAAKA,OAAM,IAAI;AAC5B,WAAK,MAAM,sBAAsB,YAAY;AAC7C,WAAK,MAAM,iBAAiBA,MAAK;AAAA,IAClC,GALc;AAAA,IAMf,eAAe,gCAASiD,eAAcjD,QAAO;AAC3C,UAAI,eAAe,mBAAmB,KAAK,WAAW;AACtD,mBAAa,OAAO,KAAK,UAAUA,OAAM,MAAM,YAAY,GAAG,CAAC;AAC/D,WAAK,MAAM,sBAAsB,YAAY;AAC7C,WAAK,MAAM,iBAAiBA,MAAK;AAAA,IAClC,GALc;AAAA,IAMf,iBAAiB,gCAASkD,iBAAgBlD,QAAO;AAC/C,UAAI,eAAe,mBAAmB,KAAK,WAAW;AACtD,mBAAa,OAAO,KAAK,UAAUA,OAAM,MAAM,YAAY,GAAG,CAAC;AAC/D,WAAK,MAAM,sBAAsB,YAAY;AAC7C,WAAK,MAAM,mBAAmBA,MAAK;AAAA,IACpC,GALgB;AAAA,IAMjB,qBAAqB,gCAAS+G,qBAAoB/G,QAAO;AACvD,UAAImB,SAAOnB,OAAM,MACf8C,SAAQ9C,OAAM,OACd,QAAQA,OAAM,OACdgH,WAAUhH,OAAM;AAClB,UAAI,cAAc,gBAAgB,CAAE,GAAE,KAAK,aAAa;AACxD,UAAI,OAAO,YAAY,KAAK;AAC5B,UAAIgH,UAAS;AACX,SAAC,SAAS,OAAO,YAAY,KAAK,IAAI;AAAA,UACpC,MAAM,gBAAgB,CAAE,GAAE7F,MAAI;AAAA,UAC9B,QAAQ,CAAE;AAAA,QACpB;AACQ,aAAK,QAAQ,EAAE,KAAK2B,MAAK;AAAA,MAC1B,WAAU,MAAM;AACf,YAAI,SAAS,KAAK,QAAQ,EAAE,OAAO,SAAU,GAAG;AAC9C,iBAAO,MAAMA;AAAA,QACvB,CAAS;AACD,SAAC,OAAO,SAAS,OAAO,YAAY,KAAK,IAAI,KAAK,QAAQ,IAAI;AAAA,MAC/D;AACD,WAAK,gBAAgB;AAAA,IACtB,GApBoB;AAAA,IAqBrB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,UAAU;AACjB,aAAK,gBAAgB;MACtB;AAAA,IACF,GAJqB;AAAA,IAKtB,qBAAqB,gCAAS,oBAAoB9C,QAAO;AACvD,aAAO;AAAA,QACL,eAAeA;AAAA,QACf,OAAO,KAAK;AAAA,QACZ,MAAM,KAAK;AAAA,QACX,WAAW,KAAK;AAAA,QAChB,WAAW,KAAK;AAAA,QAChB,eAAe,KAAK;AAAA,QACpB,SAAS,KAAK;AAAA,MACtB;AAAA,IACK,GAVoB;AAAA,IAWrB,iBAAiB,gCAAS,kBAAkB;AAC1C,aAAO,KAAK,WAAW,OAAO,UAAU,eAAe,KAAK,KAAK,SAAS,QAAQ;AAAA,IACnF,GAFgB;AAAA,IAGjB,gBAAgB,gCAAS,eAAe,SAAS;AAC/C,WAAK,YAAY;AAAA,IAClB,GAFe;AAAA,IAGhB,eAAe,gCAAS,gBAAgB;AACtC,WAAK,UAAU;AACf,WAAK,MAAM,gBAAgB,KAAK,OAAO;AACvC,WAAK,MAAM,kBAAkB,KAAK,SAAS;AAC3C,UAAI,KAAK,MAAM;AACb,aAAK,MAAM,UAAU,KAAK,oBAAqB,CAAA;AAAA,MAChD;AAAA,IACF,GAPc;AAAA,IAQf,cAAc,gCAAS,eAAe;AACpC,UAAI,SAAS,CAAA;AACb,UAAI,KAAK,SAAS;AAChB,eAAO,QAAQ,KAAK,OAAO,EAAE,QAAQ,SAAU,OAAO;AACpD,cAAI,QAAQ,eAAe,OAAO,CAAC,GACjC,OAAO,MAAM,CAAC,GACd,QAAQ,MAAM,CAAC;AACjB,iBAAO,IAAI,IAAI,MAAM,WAAW;AAAA,YAC9B,UAAU,MAAM;AAAA,YAChB,aAAa,MAAM,YAAY,IAAI,SAAU,YAAY;AACvD,qBAAO,gBAAgB,IAAI,UAAU;AAAA,YACnD,CAAa;AAAA,UACb,IAAc,gBAAgB,IAAI,KAAK;AAAA,QACvC,CAAS;AAAA,MACF;AACD,aAAO;AAAA,IACR,GAhBa;AAAA,IAiBd,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,UAAU;AACd,UAAI,cAAc,CAAA;AAClB,WAAK,QAAQ,QAAQ,SAAU,KAAK;AAClC,eAAO,YAAY,KAAK,QAAQ,WAAW,KAAK,WAAW,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MACxG,CAAO;AACD,WAAK,gBAAgB;AAAA,IACtB,GAPyB;AAAA,IAQ1B,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI;AACJ,WAAK,eAAe,SAAS,cAAc,OAAO;AAClD,WAAK,aAAa,OAAO;AACzB,mBAAa,KAAK,cAAc,UAAU,kBAAkB,KAAK,eAAe,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,YAAY,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,SAAS,QAAQ,oBAAoB,SAAS,SAAS,gBAAgB,KAAK;AAC1T,eAAS,KAAK,YAAY,KAAK,YAAY;AAAA,IAC5C,GANmB;AAAA,IAOpB,qBAAqB,gCAAS,sBAAsB;AAClD,UAAI,KAAK,cAAc;AACrB,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,aAAK,eAAe;AAAA,MACrB;AAAA,IACF,GALoB;AAAA,IAMrB,cAAc,gCAAS,aAAamB,QAAM;AACxC,UAAI,QAAQA,UAAQ,KAAK;AACzB,UAAI,SAAS,KAAK,WAAW;AAC3B,YAAIC,SAAQ,KAAK,OAAO,IAAI,KAAK;AACjC,eAAO,MAAM,MAAMA,QAAOA,SAAQ,KAAK,MAAM;AAAA,MAC9C;AACD,aAAO;AAAA,IACR,GAPa;AAAA,IAQd,uBAAuB,gCAAS,wBAAwB;AACtD,aAAO,KAAK,MAAM;AAAA,IACnB,GAFsB;AAAA,IAGvB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,aAAO,WAAW,KAAK;AAAA,IACxB,GAFe;AAAA,EAGjB;AAAA,EACD,UAAU;AAAA,IACR,SAAS,gCAAS,UAAU;AAC1B,UAAI,OAAO,KAAK,UAAU,IAAI,IAAI;AAClC,UAAI,KAAK,sBAAsB,KAAK,eAAe;AACjD,YAAI,iBAAiB,CAAA;AACrB,YAAI,aAAa,2BAA2B,KAAK,aAAa,GAC5D;AACF,YAAI;AACF,eAAK,WAAW,EAAC,GAAI,EAAE,SAAS,WAAW,EAAG,GAAE,QAAO;AACrD,gBAAI,YAAY,OAAO;AACvB,gBAAI,SAAS,KAAK,gBAAgB,MAAM,SAAS;AACjD,gBAAI,UAAU,CAAC,KAAK,WAAW,QAAQ,QAAQ,GAAG;AAChD,6BAAe,KAAK,MAAM;AAAA,YAC3B;AAAA,UACF;AAAA,QACF,SAAQ,KAAK;AACZ,qBAAW,EAAE,GAAG;AAAA,QAC1B,UAAkB;AACR,qBAAW,EAAC;AAAA,QACb;AACD,eAAO,CAAA,EAAG,OAAO,gBAAgB,mBAAmB,KAAK,OAAO,SAAU,MAAM;AAC9E,iBAAO,eAAe,QAAQ,IAAI,IAAI;AAAA,QACvC,CAAA,CAAC,CAAC;AAAA,MACJ;AACD,aAAO;AAAA,IACR,GAxBQ;AAAA,IAyBT,cAAc,gCAAS,eAAe;AACpC,aAAO,KAAK,eAAe,IAAI,IAAI;AAAA,IACpC,GAFa;AAAA,IAGd,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,oBACF,UAAU;AACZ,cAAQ,qBAAqB,KAAK,kBAAkB,QAAQ,uBAAuB,SAAS,SAAS,mBAAmB,KAAK,SAAU,OAAO;AAC5I,eAAO,QAAQ,WAAW,OAAO,MAAM,MAAM;AAAA,MACrD,CAAO;AAAA,IACF,GANkB;AAAA,IAOnB,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,qBACF,UAAU;AACZ,cAAQ,sBAAsB,KAAK,kBAAkB,QAAQ,wBAAwB,SAAS,SAAS,oBAAoB,KAAK,SAAU,OAAO;AAC/I,eAAO,QAAQ,WAAW,OAAO,MAAM,MAAM;AAAA,MACrD,CAAO;AAAA,IACF,GANkB;AAAA,IAOnB,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,WAAW,OAAO,KAAK,KAAK,OAAO,EAAE,SAAS,KAAK,KAAK,QAAQ,gBAAgB;AAAA,IAC7F,GAFW;AAAA,IAGZ,eAAe,gCAAS,gBAAgB;AACtC,UAAI;AACJ,UAAID,SAAO,KAAK,SAAS;AACzB,UAAI,CAAC,KAAK,QAAQ,GAAG,wBAAwB,KAAK,4BAA4B,QAAQ,0BAA0B,UAAU,sBAAsB,OAAO;AACrJ,YAAIA,UAAQA,OAAK,QAAQ;AACvB,cAAI,KAAK,YAAY;AACnB,YAAAA,SAAO,KAAK,OAAOA,MAAI;AAAA,UACxB;AACD,cAAI,KAAK,QAAQ;AACf,gBAAI,KAAK,aAAa,SAAU,CAAAA,SAAO,KAAK,WAAWA,MAAI;AAAA,qBAAW,KAAK,aAAa,WAAY,CAAAA,SAAO,KAAK,aAAaA,MAAI;AAAA,UAClI;AAAA,QACF;AAAA,MACF;AACD,aAAOA;AAAA,IACR,GAdc;AAAA,IAef,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,KAAK,MAAM;AACb,eAAO,KAAK;AAAA,MACpB,OAAa;AACL,YAAIA,SAAO,KAAK;AAChB,eAAOA,SAAOA,OAAK,SAAS;AAAA,MAC7B;AAAA,IACF,GAPmB;AAAA,IAQpB,OAAO,gCAAS8F,SAAQ;AACtB,UAAI9F,SAAO,KAAK;AAChB,aAAO,CAACA,UAAQA,OAAK,WAAW;AAAA,IACjC,GAHM;AAAA,IAIP,cAAc,gCAAS,eAAe;AACpC,aAAO,KAAK,cAAc,KAAK,sBAAsB,YAAY,KAAK,sBAAsB;AAAA,IAC7F,GAFa;AAAA,IAGd,iBAAiB,gCAAS,kBAAkB;AAC1C,aAAO,KAAK,cAAc,KAAK,sBAAsB,SAAS,KAAK,sBAAsB;AAAA,IAC1F,GAFgB;AAAA,IAGjB,QAAQ,gCAAS,SAAS;AACxB,aAAO,KAAK,eAAe,KAAK,mBAAmB,KAAK,gBAAgB,SAAS;AAAA,IAClF,GAFO;AAAA,IAGR,iBAAiB,gCAAS,kBAAkB;AAC1C,UAAI,UAAU;AACd,UAAI,KAAK,cAAc,MAAM;AAC3B,eAAO,KAAK;AAAA,MACpB,OAAa;AACL,YAAI,MAAM,KAAK,cAAc,CAAA,EAAG,OAAO,mBAAmB,KAAK,WAAW,GAAG,mBAAmB,KAAK,aAAa,CAAC,IAAI,KAAK;AAC5H,eAAO,WAAW,GAAG,KAAK,KAAK,aAAa,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,MAAM,SAAU,GAAG;AAClG,iBAAO,QAAQ,UAAU,KAAK,SAAU,GAAG;AACzC,mBAAO,QAAQ,OAAO,GAAG,CAAC;AAAA,UACtC,CAAW;AAAA,QACX,CAAS;AAAA,MACF;AAAA,IACF,GAZgB;AAAA,IAajB,mBAAmB,gCAAS+F,qBAAoB;AAC9C,aAAO,kBAAiB;AAAA,IACzB,GAFkB;AAAA,IAGnB,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,KAAK,aAAa,WAAW,KAAK,YAAY,KAAK,sBAAsB,KAAK,oBAAoB,QAAQ;AAAA,IAClH,GAFkB;AAAA,IAGnB,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,gBAAgB,gBAAgB;AAAA,QACrC,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,QACV;AAAA,MACT,GAAS,KAAK,iBAAiB,GAAG,IAAI;AAAA,QAC9B,QAAQ,gBAAgB;AAAA,UACtB,OAAO;AAAA,YACL,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACV;AAAA,QACX,GAAW,KAAK,kBAAkB,MAAM;AAAA,QAChC,SAAS,gBAAgB;AAAA,UACvB,SAAS;AAAA,YACP,UAAU;AAAA,YACV,MAAM;AAAA,YACN,MAAM;AAAA,UACP;AAAA,UACD,YAAY;AAAA,YACV,UAAU;AAAA,YACV,MAAM;AAAA,YACN,MAAM;AAAA,UACP;AAAA,UACD,OAAO;AAAA,YACL,MAAM;AAAA,UACP;AAAA,UACD,OAAO;AAAA,YACL,UAAU;AAAA,YACV,MAAM;AAAA,UACP;AAAA,QACX,GAAW,KAAK,kBAAkB,OAAO;AAAA,MACzC,CAAO;AAAA,IACF,GAnCwB;AAAA,IAoCzB,oBAAoB,gCAAS,qBAAqB;AAChD,aAAO,gBAAgB,gBAAgB,IAAI;AAAA,QACzC,MAAM;AAAA,UACJ,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,QACV;AAAA,QACD,MAAM;AAAA,UACJ,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,QACV;AAAA,QACD,QAAQ;AAAA,UACN,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,QACV;AAAA,MACT,CAAO,GAAG,KAAK,eAAe;AAAA,IACzB,GAlBmB;AAAA,IAmBpB,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,QAAQ,KAAK,sBAAsB,KAAK,CAAC,KAAK;AAAA,IACtD,GAFwB;AAAA,EAG1B;AAAA,EACD,YAAY;AAAA,IACV,aAAaC;AAAAA,IACb,eAAe7G;AAAAA,IACf,aAAa;AAAA,IACb,eAAe;AAAA,IACf,mBAAmB8G;AAAAA,IACnB,eAAeC;AAAAA,IACf,aAAaC;AAAAA,IACb,aAAaC;AAAAA,EACd;AACH;AAEA,SAAS,QAAQ,GAAG;AAAE;AAA2B,SAAO,UAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUrJ,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,QAAQ,CAAC;AAAI;AAArT;AACT,SAAS,QAAQ,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUgD,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAtP;AACT,SAAS,cAAc,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,sBAAgB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,QAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAA9a;AACT,SAAS,gBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,eAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3K;AACT,SAAS,eAAe,GAAG;AAAE,MAAI,IAAI,aAAa,GAAG,QAAQ;AAAG,SAAO,YAAY,QAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApG;AACT,SAAS,aAAa,GAAG,GAAG;AAAE,MAAI,YAAY,QAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,QAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnT;AACT,SAAS,OAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,yBAAyB,iBAAiB,aAAa;AAC3D,MAAI,yBAAyB,iBAAiB,aAAa;AAC3D,MAAI,2BAA2B,iBAAiB,eAAe;AAC/D,MAAI,yBAAyB,iBAAiB,aAAa;AAC3D,MAAI,2BAA2B,iBAAiB,eAAe;AAC/D,MAAI,+BAA+B,iBAAiB,mBAAmB;AACvE,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,wBAAwB;AAAA,EAC5B,GAAK,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,GAAG,KAAK,WAAW,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IAC5H,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,EACxB,GAAE,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,UAAU,WAAW,KAAK,QAAQ,WAAW;AAAA,IAC9E,KAAK;AAAA,EACN,CAAA,KAAK,UAAS,GAAI,mBAAmB,UAAU;AAAA,IAC9C,KAAK;AAAA,EACN,GAAE,CAAC,KAAK,OAAO,eAAe,UAAS,GAAI,YAAY,wBAAwB,KAAK,OAAO,WAAW,GAAG;AAAA,IACxG,KAAK;AAAA,IACL,SAAS,eAAe,KAAK,GAAG,aAAa,CAAC;AAAA,EAC/C,GAAE,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,eAAe,UAAW,GAAE,mBAAmB,KAAK,WAAW;AAAA,IAC5F,KAAK;AAAA,IACL,SAAS,CAAC,KAAK,GAAG,aAAa,GAAG,WAAW,KAAK,WAAW;AAAA,EAC9D,GAAE,KAAK,IAAI,aAAa,CAAC,GAAG,MAAM,EAAE,MAAM,UAAW,GAAE,YAAY,wBAAwB,WAAW;AAAA,IACrG,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,aAAa;AAAA,EAC/B,GAAE,KAAK,IAAI,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,KAAK,OAAO,UAAU,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvK,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC7B,GAAK,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,QAAQ,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,gBAAgB,UAAS,GAAI,YAAY,wBAAwB;AAAA,IAC1K,KAAK;AAAA,IACL,MAAM,MAAM;AAAA,IACZ,OAAO,MAAM;AAAA,IACb,cAAc,SAAS;AAAA,IACvB,cAAc,KAAK;AAAA,IACnB,UAAU,KAAK;AAAA,IACf,oBAAoB,KAAK;AAAA,IACzB,2BAA2B,KAAK;AAAA,IAChC,SAAS,eAAe,KAAK,GAAG,eAAe;AAAA,MAC7C,UAAU;AAAA,IAChB,CAAK,CAAC;AAAA,IACF,QAAQ,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAClD,aAAO,SAAS,OAAO,MAAM;AAAA,IACnC;AAAA,IACI,YAAY,KAAK;AAAA,IACjB,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,aAAa;AAAA,EAC3B,GAAE,YAAY;AAAA,IACb,GAAG;AAAA,EACP,GAAK,CAAC,KAAK,OAAO,iBAAiB;AAAA,IAC/B,MAAM;AAAA,IACN,IAAI,QAAQ,WAAY;AACtB,aAAO,CAAC,WAAW,KAAK,QAAQ,gBAAgB,CAAC;AAAA,IACvD,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,eAAe;AAAA,IACxC,MAAM;AAAA,IACN,IAAI,QAAQ,WAAY;AACtB,aAAO,CAAC,WAAW,KAAK,QAAQ,cAAc,CAAC;AAAA,IACrD,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,6BAA6B;AAAA,IACtD,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,8BAA8B;AAAA,QAC5D,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,4BAA4B;AAAA,IACrD,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,6BAA6B;AAAA,QAC3D,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,4BAA4B;AAAA,IACrD,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,6BAA6B;AAAA,QAC3D,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,4BAA4B;AAAA,IACrD,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,6BAA6B;AAAA,QAC3D,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,kCAAkC;AAAA,IAC3D,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,mCAAmC;AAAA,QACjE,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,mCAAmC;AAAA,IAC5D,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,oCAAoC;AAAA,QAClE,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,SAAS,gBAAgB,gBAAgB,YAAY,sBAAsB,6BAA6B,SAAS,cAAc,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAGpD,gBAAmB,OAAO,WAAW;AAAA,IACtP,SAAS,KAAK,GAAG,gBAAgB;AAAA,IACjC,OAAO,CAAC,KAAK,GAAG,gBAAgB,GAAG;AAAA,MACjC,WAAW,SAAS,0BAA0B,KAAK,eAAe;AAAA,IACxE,CAAK;AAAA,EACL,GAAK,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,YAAY,8BAA8B,WAAW;AAAA,IACpF,KAAK;AAAA,EACT,GAAK,KAAK,wBAAwB;AAAA,IAC9B,OAAO,SAAS;AAAA,IAChB,SAAS,SAAS;AAAA,IAClB,OAAO,KAAK,iBAAiB,SAAS;AAAA,MACpC,QAAQ,KAAK;AAAA,IACnB,IAAQ;AAAA,IACJ,cAAc,KAAK,iBAAiB,SAAS,SAAY;AAAA,IACzD,UAAU,SAAS;AAAA,IACnB,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,IAAI,KAAK,IAAI,iBAAiB;AAAA,EAClC,CAAG,GAAG;AAAA,IACF,SAAS,QAAQ,SAAU,WAAW;AACpC,aAAO,CAACA,gBAAmB,SAAS,WAAW;AAAA,QAC7C,KAAK;AAAA,QACL,MAAM;AAAA,QACN,SAAS,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,UAAU;AAAA,QAC3C,OAAO,CAAC,KAAK,YAAY,UAAU,WAAW;AAAA,MAC/C,GAAE,cAAc,cAAc,IAAI,KAAK,UAAU,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,YAAY,0BAA0B;AAAA,QAC/G,aAAa,SAAS;AAAA,QACtB,SAAS,UAAU;AAAA,QACnB,cAAc,KAAK;AAAA,QACnB,aAAa,KAAK;AAAA,QAClB,mBAAmB,SAAS;AAAA,QAC5B,oBAAoB,KAAK;AAAA,QACzB,kBAAkB,KAAK;AAAA,QACvB,iBAAiB,SAAS;AAAA,QAC1B,OAAO,SAAS;AAAA,QAChB,UAAU,KAAK;AAAA,QACf,WAAW,MAAM;AAAA,QACjB,WAAW,MAAM;AAAA,QACjB,eAAe,MAAM;AAAA,QACrB,SAAS,MAAM;AAAA,QACf,cAAc,KAAK;AAAA,QACnB,eAAe,KAAK;AAAA,QACpB,mBAAmB,SAAS;AAAA,QAC5B,kBAAkB,KAAK;AAAA,QACvB,OAAO,MAAM;AAAA,QACb,eAAe,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACzD,iBAAO,SAAS,oBAAoB,MAAM;AAAA,QACpD;AAAA,QACQ,mBAAmB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC7D,iBAAO,SAAS,wBAAwB,MAAM;AAAA,QACxD;AAAA,QACQ,gBAAgB,SAAS;AAAA,QACzB,eAAe,SAAS;AAAA,QACxB,mBAAmB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC7D,iBAAO,SAAS,wBAAwB,MAAM;AAAA,QACxD;AAAA,QACQ,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,iBAAO,SAAS,uBAAuB,MAAM;AAAA,QACvD;AAAA,QACQ,mBAAmB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC7D,iBAAO,SAAS,wBAAwB,MAAM;AAAA,QACxD;AAAA,QACQ,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,iBAAO,SAAS,mBAAmB,MAAM;AAAA,QACnD;AAAA,QACQ,qBAAqB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC/D,iBAAO,SAAS,oBAAoB,MAAM;AAAA,QACpD;AAAA,QACQ,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,iBAAO,SAAS,uBAAuB,MAAM;AAAA,QACvD;AAAA,QACQ,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,eAAe,WAAW,gBAAgB,eAAe,qBAAqB,sBAAsB,oBAAoB,mBAAmB,SAAS,YAAY,aAAa,aAAa,iBAAiB,WAAW,gBAAgB,iBAAiB,qBAAqB,oBAAoB,SAAS,kBAAkB,iBAAiB,YAAY,IAAI,CAAC,GAAG,KAAK,eAAe,UAAW,GAAE,YAAY,wBAAwB;AAAA,QAChb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,OAAO,KAAK;AAAA,QACZ,WAAW;AAAA,QACX,SAAS,UAAU;AAAA,QACnB,OAAO,MAAM;AAAA,QACb,SAAS,KAAK;AAAA,QACd,WAAW,KAAK;AAAA,QAChB,eAAe,MAAM;AAAA,QACrB,eAAe,KAAK;AAAA,QACpB,aAAa,KAAK;AAAA,QAClB,sBAAsB,KAAK;AAAA,QAC3B,cAAc,KAAK;AAAA,QACnB,aAAa,KAAK;AAAA,QAClB,qBAAqB,KAAK;AAAA,QAC1B,UAAU,KAAK;AAAA,QACf,UAAU,KAAK;AAAA,QACf,UAAU,KAAK;AAAA,QACf,oBAAoB,KAAK;AAAA,QACzB,YAAY,KAAK;AAAA,QACjB,iBAAiB,KAAK;AAAA,QACtB,kBAAkB,KAAK;AAAA,QACvB,cAAc,KAAK;AAAA,QACnB,mBAAmB,KAAK;AAAA,QACxB,aAAa,KAAK;AAAA,QAClB,gBAAgB,MAAM;AAAA,QACtB,WAAW,KAAK;AAAA,QAChB,iBAAiB,SAAS;AAAA,QAC1B,2BAA2B;AAAA,QAC3B,kBAAkB,SAAS;AAAA,QAC3B,YAAY,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACtD,iBAAO,SAAS,WAAW,MAAM;AAAA,QAC3C;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,cAAc,MAAM;AAAA,QAC9C;AAAA,QACQ,iBAAiB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC7D,iBAAO,SAAS,gBAAgB,MAAM;AAAA,QAChD;AAAA,QACQ,eAAe,SAAS;AAAA,QACxB,cAAc,SAAS;AAAA,QACvB,gBAAgB,SAAS;AAAA,QACzB,gBAAgB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC5D,iBAAO,SAAS,eAAe,MAAM;AAAA,QAC/C;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,cAAc,MAAM;AAAA,QAC9C;AAAA,QACQ,gBAAgB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC5D,iBAAO,SAAS,eAAe,MAAM;AAAA,QAC/C;AAAA,QACQ,cAAc,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC1D,iBAAO,SAAS,aAAa,MAAM;AAAA,QAC7C;AAAA,QACQ,WAAW,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACvD,iBAAO,SAAS,UAAU,MAAM;AAAA,QAC1C;AAAA,QACQ,aAAa,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACzD,iBAAO,SAAS,UAAU,MAAM;AAAA,QAC1C;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,mBAAmB,MAAM;AAAA,QACnD;AAAA,QACQ,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,iBAAO,SAAS,sBAAsB,MAAM;AAAA,QACtD;AAAA,QACQ,gBAAgB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC5D,iBAAO,SAAS,eAAe,MAAM;AAAA,QAC/C;AAAA,QACQ,oBAAoB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAChE,iBAAO,SAAS,mBAAmB,MAAM;AAAA,QACnD;AAAA,QACQ,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,iBAAO,SAAS,iBAAiB,MAAM;AAAA,QACjD;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,cAAc,MAAM;AAAA,QAC9C;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,cAAc,MAAM;AAAA,QAC9C;AAAA,QACQ,iBAAiB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC7D,iBAAO,SAAS,gBAAgB,MAAM;AAAA,QAChD;AAAA,QACQ,aAAa,MAAM;AAAA,QACnB,qBAAqB,SAAS;AAAA,QAC9B,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,SAAS,WAAW,SAAS,WAAW,aAAa,iBAAiB,iBAAiB,eAAe,wBAAwB,gBAAgB,eAAe,uBAAuB,YAAY,YAAY,YAAY,sBAAsB,cAAc,mBAAmB,oBAAoB,gBAAgB,qBAAqB,eAAe,kBAAkB,aAAa,mBAAmB,oBAAoB,iBAAiB,gBAAgB,kBAAkB,eAAe,uBAAuB,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,YAAY,wBAAwB;AAAA,QACzlB,KAAK;AAAA,QACL,OAAO,SAAS,aAAa,UAAU,IAAI;AAAA,QAC3C,SAAS,eAAe,UAAU,UAAU;AAAA,QAC5C,SAAS,UAAU;AAAA,QACnB,OAAO,SAAS;AAAA,QAChB,OAAO,MAAM;AAAA,QACb,SAAS,KAAK;AAAA,QACd,WAAW,KAAK;AAAA,QAChB,eAAe,MAAM;AAAA,QACrB,eAAe,KAAK;AAAA,QACpB,aAAa,KAAK;AAAA,QAClB,sBAAsB,KAAK;AAAA,QAC3B,cAAc,KAAK;AAAA,QACnB,aAAa,KAAK;AAAA,QAClB,qBAAqB,KAAK;AAAA,QAC1B,UAAU,KAAK;AAAA,QACf,UAAU,KAAK;AAAA,QACf,UAAU,KAAK;AAAA,QACf,oBAAoB,KAAK;AAAA,QACzB,YAAY,KAAK;AAAA,QACjB,iBAAiB,KAAK;AAAA,QACtB,kBAAkB,KAAK;AAAA,QACvB,cAAc,KAAK;AAAA,QACnB,mBAAmB,KAAK;AAAA,QACxB,aAAa,KAAK;AAAA,QAClB,gBAAgB,MAAM;AAAA,QACtB,WAAW,KAAK;AAAA,QAChB,iBAAiB,SAAS;AAAA,QAC1B,6BAA6B;AAAA,QAC7B,2BAA2B,SAAS;AAAA,QACpC,kBAAkB,SAAS;AAAA,QAC3B,YAAY,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACxD,iBAAO,SAAS,WAAW,MAAM;AAAA,QAC3C;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,cAAc,MAAM;AAAA,QAC9C;AAAA,QACQ,iBAAiB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC7D,iBAAO,SAAS,gBAAgB,MAAM;AAAA,QAChD;AAAA,QACQ,eAAe,SAAS;AAAA,QACxB,cAAc,gCAAS,aAAa,QAAQ;AAC1C,iBAAO,SAAS,aAAa,QAAQ,SAAS;AAAA,QAC/C,GAFa;AAAA,QAGd,gBAAgB,SAAS;AAAA,QACzB,gBAAgB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC5D,iBAAO,SAAS,eAAe,MAAM;AAAA,QAC/C;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,cAAc,MAAM;AAAA,QAC9C;AAAA,QACQ,gBAAgB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC5D,iBAAO,SAAS,eAAe,MAAM;AAAA,QAC/C;AAAA,QACQ,cAAc,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC1D,iBAAO,SAAS,aAAa,MAAM;AAAA,QAC7C;AAAA,QACQ,WAAW,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACvD,iBAAO,SAAS,UAAU,MAAM;AAAA,QAC1C;AAAA,QACQ,aAAa,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACzD,iBAAO,SAAS,UAAU,MAAM;AAAA,QAC1C;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,mBAAmB,MAAM;AAAA,QACnD;AAAA,QACQ,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,iBAAO,SAAS,sBAAsB,MAAM;AAAA,QACtD;AAAA,QACQ,gBAAgB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC5D,iBAAO,SAAS,eAAe,MAAM;AAAA,QAC/C;AAAA,QACQ,oBAAoB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAChE,iBAAO,SAAS,mBAAmB,MAAM;AAAA,QACnD;AAAA,QACQ,kBAAkB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC9D,iBAAO,SAAS,iBAAiB,MAAM;AAAA,QACjD;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,cAAc,MAAM;AAAA,QAC9C;AAAA,QACQ,eAAe,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC3D,iBAAO,SAAS,cAAc,MAAM;AAAA,QAC9C;AAAA,QACQ,iBAAiB,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AAC7D,iBAAO,SAAS,gBAAgB,MAAM;AAAA,QAChD;AAAA,QACQ,aAAa,MAAM;AAAA,QACnB,qBAAqB,SAAS;AAAA,QAC9B,UAAU,KAAK;AAAA,QACf,IAAI,KAAK;AAAA,MACV,GAAE,MAAM,GAAG,CAAC,SAAS,SAAS,WAAW,SAAS,SAAS,WAAW,aAAa,iBAAiB,iBAAiB,eAAe,wBAAwB,gBAAgB,eAAe,uBAAuB,YAAY,YAAY,YAAY,sBAAsB,cAAc,mBAAmB,oBAAoB,gBAAgB,qBAAqB,eAAe,kBAAkB,aAAa,mBAAmB,+BAA+B,6BAA6B,oBAAoB,iBAAiB,gBAAgB,kBAAkB,eAAe,uBAAuB,YAAY,IAAI,CAAC,GAAG,SAAS,eAAe,UAAU,WAAW,KAAK,UAAW,GAAE,mBAAmB,SAAS,WAAW;AAAA,QACzsB,KAAK;AAAA,QACL,SAAS,KAAK,GAAG,uBAAuB;AAAA,QACxC,OAAO;AAAA,UACL,QAAQ,QAAQ,OAAO,UAAU,YAAY,QAAQ,KAAK,EAAE,OAAO,UAAU,KAAK,SAAS,UAAU,UAAU,KAAK;AAAA,QACrH;AAAA,MACF,GAAE,KAAK,IAAI,uBAAuB,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,YAAY,0BAA0B;AAAA,QACtH,aAAa,SAAS;AAAA,QACtB,SAAS,UAAU;AAAA,QACnB,IAAI,KAAK;AAAA,MACjB,GAAS,MAAM,GAAG,CAAC,eAAe,WAAW,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AAAA,IACzD,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,IAAI,CAAC,SAAS,WAAW,SAAS,gBAAgB,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,mBAAmB,UAAW,GAAE,YAAY,wBAAwB;AAAA,IAC1J,KAAK;AAAA,IACL,MAAM,MAAM;AAAA,IACZ,OAAO,MAAM;AAAA,IACb,cAAc,SAAS;AAAA,IACvB,cAAc,KAAK;AAAA,IACnB,UAAU,KAAK;AAAA,IACf,oBAAoB,KAAK;AAAA,IACzB,2BAA2B,KAAK;AAAA,IAChC,SAAS,eAAe,KAAK,GAAG,eAAe;AAAA,MAC7C,UAAU;AAAA,IAChB,CAAK,CAAC;AAAA,IACF,QAAQ,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,SAAU,QAAQ;AACpD,aAAO,SAAS,OAAO,MAAM;AAAA,IACnC;AAAA,IACI,YAAY,KAAK;AAAA,IACjB,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,aAAa;AAAA,EAC3B,GAAE,YAAY;AAAA,IACb,GAAG;AAAA,EACP,GAAK,CAAC,KAAK,OAAO,iBAAiB;AAAA,IAC/B,MAAM;AAAA,IACN,IAAI,QAAQ,WAAY;AACtB,aAAO,CAAC,WAAW,KAAK,QAAQ,gBAAgB,CAAC;AAAA,IACvD,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,eAAe;AAAA,IACxC,MAAM;AAAA,IACN,IAAI,QAAQ,WAAY;AACtB,aAAO,CAAC,WAAW,KAAK,QAAQ,cAAc,CAAC;AAAA,IACrD,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,6BAA6B;AAAA,IACtD,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,8BAA8B;AAAA,QAC5D,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,4BAA4B;AAAA,IACrD,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,6BAA6B;AAAA,QAC3D,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,4BAA4B;AAAA,IACrD,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,6BAA6B;AAAA,QAC3D,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,4BAA4B;AAAA,IACrD,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,6BAA6B;AAAA,QAC3D,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,kCAAkC;AAAA,IAC3D,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,mCAAmC;AAAA,QACjE,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,mCAAmC;AAAA,IAC5D,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,oCAAoC;AAAA,QAClE,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,SAAS,gBAAgB,gBAAgB,YAAY,sBAAsB,6BAA6B,SAAS,cAAc,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,KAAK,OAAO,UAAU,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,IACzR,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC7B,GAAK,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,QAAQ,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGA,gBAAmB,OAAO,WAAW;AAAA,IACrI,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,uBAAuB;AAAA,IACxC,OAAO;AAAA,MACL,WAAW;AAAA,IACZ;AAAA,EACF,GAAE,KAAK,IAAI,uBAAuB,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,sBAAsB,UAAS,GAAI,mBAAmB,QAAQ,WAAW;AAAA,IAC9H,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,uBAAuB;AAAA,IACxC,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,WAAW;AAAA,IACZ;AAAA,EACF,GAAE,KAAK,IAAI,uBAAuB,CAAC,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,KAAK,OAAO,6BAA6B,KAAK,OAAO,0BAA0B,eAAe,CAAC,EAAC,GAAI,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,KAAK,sBAAsB,UAAS,GAAI,mBAAmB,QAAQ,WAAW;AAAA,IAC/S,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,yBAAyB;AAAA,IAC1C,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,WAAW;AAAA,IACZ;AAAA,EACF,GAAE,KAAK,IAAI,yBAAyB,CAAC,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,KAAK,OAAO,+BAA+B,KAAK,OAAO,4BAA4B,aAAa,CAAC,EAAG,GAAE,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAC5O;AAreS;AAueTH,SAAO,SAAS;AC3uMhB,IAAI,cAAc,UAAU,OAAO;AAAA,EACjC,MAAM;AACR,CAAC;ACDD,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWc;AAAAA,EACX,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM,CAAC,QAAQ,QAAQ;AAAA,MACvB,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAAS+C,WAAU;AAC1B,WAAO;AAAA,MACL,WAAW;AAAA,MACX,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEG,IAAC,SAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,QAAQ,CAAC,UAAU;AAAA,EACnB,SAAS,gCAASU,WAAU;AAC1B,QAAI;AACJ,KAAC,iBAAiB,KAAK,cAAc,QAAQ,mBAAmB,UAAU,eAAe,IAAI,KAAK,CAAC;AAAA,EACpG,GAHQ;AAAA,EAIT,WAAW,gCAAS,YAAY;AAC9B,QAAI;AACJ,KAAC,kBAAkB,KAAK,cAAc,QAAQ,oBAAoB,UAAU,gBAAgB,QAAQ,EAAE,KAAK,CAAC;AAAA,EAC7G,GAHU;AAAA,EAIX,QAAQ,gCAASlE,UAAS;AACxB,WAAO;AAAA,EACR,GAFO;AAGV;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]} \ No newline at end of file diff --git a/web/assets/index-CSl7lfOs.js b/web/assets/index-DIU5yZe9.js similarity index 99% rename from web/assets/index-CSl7lfOs.js rename to web/assets/index-DIU5yZe9.js index 0f81947f..256357f3 100644 --- a/web/assets/index-CSl7lfOs.js +++ b/web/assets/index-DIU5yZe9.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./KeybindingPanel-BlOA8Yhu.js","./index-CgmI-OoW.js","./index-aSkd2KAK.js","./KeybindingPanel-C3wT8hYZ.css","./ExtensionPanel-DgaZovwi.js","./ServerConfigPanel-6N6BTSXC.js","./serverConfigStore-D4vD2qBB.js","./index-BNMdgttb.js","./widgetInputs-4aSRGZNs.js","./index-BRhY6FpL.css","./GraphView-DMP_lefG.js","./GraphView-B3TpSwhZ.css","./ServerStartView-BykYRkoj.js","./ServerStartView-BHqjjHcl.css","./InstallView-D4T0qJ1I.js","./InstallView-8N2LdZUx.css","./WelcomeView-D6WEsVyp.js","./WelcomeView-BD34JMsC.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./KeybindingPanel-DC2AxNNa.js","./index-D3u7l7ha.js","./index-d698Brhb.js","./KeybindingPanel-C3wT8hYZ.css","./ExtensionPanel-ByeZ01RF.js","./ServerConfigPanel-CvXC1Xmx.js","./serverConfigStore-DYv7_Nld.js","./index-p6KSJ2Zq.js","./widgetInputs-Bvm3AgOa.js","./index-BRhY6FpL.css","./GraphView-BWxgNrh6.js","./GraphView-B3TpSwhZ.css","./ServerStartView-BvuHEhuL.js","./ServerStartView-BHqjjHcl.css","./InstallView-DbHtR5YG.js","./InstallView-8N2LdZUx.css","./WelcomeView-Db7ZDfZo.js","./WelcomeView-BD34JMsC.css"])))=>i.map(i=>d[i]); var __defProp2 = Object.defineProperty; var __name = (target, value3) => __defProp2(target, "name", { value: value3, configurable: true }); (/* @__PURE__ */ __name(function polyfill() { @@ -12004,7 +12004,7 @@ const vue_runtime_esmBundler = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Obj }, Symbol.toStringTag, { value: "Module" })); const config = { app_title: "ComfyUI", - app_version: "1.5.18" + app_version: "1.5.19" }; var isVue2$2 = false; var isVue3$2 = true; @@ -76365,7 +76365,7 @@ const useExtensionStore = /* @__PURE__ */ defineStore("extension", () => { }; }); const useAboutPanelStore = /* @__PURE__ */ defineStore("aboutPanel", () => { - const frontendVersion = "1.5.18"; + const frontendVersion = "1.5.19"; const extensionStore = useExtensionStore(); const systemStatsStore = useSystemStatsStore(); const coreVersion = computed( @@ -77623,13 +77623,13 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({ __name: "SettingDialogContent", setup(__props) { const KeybindingPanel = /* @__PURE__ */ defineAsyncComponent( - () => __vitePreload(() => import("./KeybindingPanel-BlOA8Yhu.js"), true ? __vite__mapDeps([0,1,2,3]) : void 0, import.meta.url) + () => __vitePreload(() => import("./KeybindingPanel-DC2AxNNa.js"), true ? __vite__mapDeps([0,1,2,3]) : void 0, import.meta.url) ); const ExtensionPanel = /* @__PURE__ */ defineAsyncComponent( - () => __vitePreload(() => import("./ExtensionPanel-DgaZovwi.js"), true ? __vite__mapDeps([4,1,2]) : void 0, import.meta.url) + () => __vitePreload(() => import("./ExtensionPanel-ByeZ01RF.js"), true ? __vite__mapDeps([4,1,2]) : void 0, import.meta.url) ); const ServerConfigPanel = /* @__PURE__ */ defineAsyncComponent( - () => __vitePreload(() => import("./ServerConfigPanel-6N6BTSXC.js"), true ? __vite__mapDeps([5,6]) : void 0, import.meta.url) + () => __vitePreload(() => import("./ServerConfigPanel-CvXC1Xmx.js"), true ? __vite__mapDeps([5,6]) : void 0, import.meta.url) ); const aboutPanelNode = { key: "about", @@ -120923,7 +120923,7 @@ class ComfyApp { async (e2) => { if (e2.detail.subType === "connectingWidgetLink") { const { convertToInput } = await __vitePreload(async () => { - const { convertToInput: convertToInput2 } = await import("./widgetInputs-4aSRGZNs.js"); + const { convertToInput: convertToInput2 } = await import("./widgetInputs-Bvm3AgOa.js"); return { convertToInput: convertToInput2 }; }, true ? [] : void 0, import.meta.url); const { node: node3, link, widget: widget2 } = e2.detail; @@ -120964,7 +120964,7 @@ class ComfyApp { async #loadExtensions() { useExtensionStore().loadDisabledExtensionNames(); const extensions = await api.getExtensions(); - await __vitePreload(() => import("./index-BNMdgttb.js"), true ? __vite__mapDeps([7,8,9]) : void 0, import.meta.url); + await __vitePreload(() => import("./index-p6KSJ2Zq.js"), true ? __vite__mapDeps([7,8,9]) : void 0, import.meta.url); await Promise.all( extensions.filter((extension) => !extension.includes("extensions/core")).map(async (ext) => { try { @@ -139430,7 +139430,7 @@ const router = createRouter({ { path: "", name: "GraphView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./GraphView-DMP_lefG.js"), true ? __vite__mapDeps([10,2,6,11]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./GraphView-BWxgNrh6.js"), true ? __vite__mapDeps([10,2,6,11]) : void 0, import.meta.url), "component"), beforeEnter: /* @__PURE__ */ __name(async (to, from, next2) => { const userStore = useUserStore(); await userStore.initialize(); @@ -139444,36 +139444,36 @@ const router = createRouter({ { path: "user-select", name: "UserSelectView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./UserSelectView-DMDUPUPX.js"), true ? [] : void 0, import.meta.url), "component") + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./UserSelectView-C_4L-Yqf.js"), true ? [] : void 0, import.meta.url), "component") }, { path: "server-start", name: "ServerStartView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ServerStartView-BykYRkoj.js"), true ? __vite__mapDeps([12,13]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./ServerStartView-BvuHEhuL.js"), true ? __vite__mapDeps([12,13]) : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess }, { path: "install", name: "InstallView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./InstallView-D4T0qJ1I.js"), true ? __vite__mapDeps([14,15]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./InstallView-DbHtR5YG.js"), true ? __vite__mapDeps([14,15]) : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess }, { path: "welcome", name: "WelcomeView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./WelcomeView-D6WEsVyp.js"), true ? __vite__mapDeps([16,17]) : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./WelcomeView-Db7ZDfZo.js"), true ? __vite__mapDeps([16,17]) : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess }, { path: "not-supported", name: "NotSupportedView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./NotSupportedView-Dhitj9aO.js"), true ? [] : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./NotSupportedView-C8O1Ed5c.js"), true ? [] : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess }, { path: "download-git", name: "DownloadGitView", - component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./DownloadGitView-DyhrHmlh.js"), true ? [] : void 0, import.meta.url), "component"), + component: /* @__PURE__ */ __name(() => __vitePreload(() => import("./DownloadGitView-B3f7KHY3.js"), true ? [] : void 0, import.meta.url), "component"), beforeEnter: guardElectronAccess } ] @@ -145181,4 +145181,4 @@ export { withCtx as y, unref as z }; -//# sourceMappingURL=index-CSl7lfOs.js.map +//# sourceMappingURL=index-DIU5yZe9.js.map diff --git a/web/assets/index-CSl7lfOs.js.map b/web/assets/index-DIU5yZe9.js.map similarity index 99% rename from web/assets/index-CSl7lfOs.js.map rename to web/assets/index-DIU5yZe9.js.map index 89c3b67e..a93b33e6 100644 --- a/web/assets/index-CSl7lfOs.js.map +++ b/web/assets/index-DIU5yZe9.js.map @@ -1 +1 @@ -{"version":3,"mappings":"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AAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACvE,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACvE,KAAU;AAAA,MAAM,KAAU;AAAA,MAC1B,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACvE,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACvE,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACxD,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MACzC,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MACtF,KAAU;AAAA,MAAM,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MAAK,KAAU;AAAA,MA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AAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,GAAE,CAAC,OAAM,KAAK,CAAC,GAAE,IAAE,CAAC,CAAC,OAAM,KAAK,GAAE,CAAC,O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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1DlB,SAAS,YAAqB,MAAS,OAAU,UAAa;AACrD;AAAA,IACL,GAAG;AAAA,IACH,UAAU;AAAA,IACV;AAAA;AAEJ;AANS;AAQT,MAAM,WAAW;AAAA,EACf,IAAI,YAAY,IAAI,SAAS,UAAU;AAAA,EACvC,IAAI,YAAY,IAAI,SAAS,UAAU;AAAA,EACvC,IAAI,YAAY,IAAI,SAAS,UAAU;AAAA,EACvC,IAAI,YAAY,IAAI,SAAS,UAAU;AAAA,EACvC,IAAI,YAAY,IAAI,SAAS,UAAU;AACzC;AAEO,MAAM,OAAO,WAAW;AAAA;AAAA,EAE7B,QAAQ;AAAA,EACR,QAAQ,UAAU,SAAS,MAAM,GAAG,EAAE,CAAC,KAAK;AAAA,EAC5C,gBAAgB;AAAA,EAChB;AAAA;AAAA;AAAA,EAGA,aAAa;AAAA,EACb,cAAc;AAChB,CAAC;AAGM,MAAM,EAAE,GAAG,OAAO,KAAK;AAQd,YAAG,KAAa,iBAAyB;AACvD,SAAO,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI;AAC5B;AAFgB;ACtCT,SAAS,wBAAwB,OAGrC;AACD,QAAM,cAAc;AACpB,cAAY,WAAW;AAAA,IACrB,KAAK;AAAA,IACL,WAAW;AAAA,IACX;AAAA,GACD;AACH;AAVgB;AAYT,SAAS,yBAAyB,OAItC;AACD,QAAM,cAAc;AACpB,cAAY,WAAW;AAAA,IACrB,KAAK;AAAA,IACL,WAAW;AAAA,IACX;AAAA,GACD;AACH;AAXgB;AAaT,SAAS,qBAAqB;AACnC,mBAAiB,WAAW;AAAA,IAC1B,KAAK;AAAA,IACL,iBAAiB;AAAA,IACjB,WAAW;AAAA,GACZ;AACH;AANgB;AAQT,SAAS,yBAAyB,OAAgC;AACvE,mBAAiB,WAAW;AAAA,IAC1B,KAAK;AAAA,IACL,WAAW;AAAA,IACX,OAAO;AAAA,MACL;AAAA,IACF;AAAA,GACD;AACH;AARgB;AAUT,SAAS,8BAA8B;AAC5C,mBAAiB,WAAW;AAAA,IAC1B,KAAK;AAAA,IACL,OAAO,EAAE,yBAAyB;AAAA,IAClC,WAAW;AAAA,GACZ;AACH;AANgB;AAQhB,eAAsB,iBAAiB;AAAA,EACrC;AAAA,EACA,SAAAkC;AAAA,EACA,eAAe;AACjB,GAI2B;AACzB,QAAM,cAAc;AAEb,aAAI,QAAQ,CAAC7B,aAAY;AAC9B,gBAAY,WAAW;AAAA,MACrB,KAAK;AAAA,MACL;AAAA,MACA,WAAWgmB;AAAAA,MACX,OAAO;AAAA,QACL,SAAAnkB;AAAA,QACA;AAAA,QACA,WAAW,wBAAC7F,WAAkB;AAC5B,UAAAgE,SAAQhE,MAAK;AAAA,QACf,GAFW;AAAA,MAGb;AAAA,MACA,sBAAsB;AAAA,QACpB,SAAS,6BAAM;AACb,UAAAgE,SAAQ,IAAI;AAAA,QACd,GAFS;AAAA,MAGX;AAAA,KACD;AAAA,GACF;AACH;AA9BsB;AA4CtB,eAAsB,uBAAuB;AAAA,EAC3C;AAAA,EACA;AAAA,EACA,SAAA6B;AAAA,EACA,WAAW,CAAC;AACd,GAS4B;AACnB,aAAI,QAAQ,CAAC7B,aAAY;AAC9B,UAAMvC,WAA6B;AAAA,MACjC,KAAK;AAAA,MACL;AAAA,MACA,WAAW;AAAA,MACX,OAAO;AAAA,QACL,SAAAoE;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW7B;AAAA,MACb;AAAA,MACA,sBAAsB;AAAA,QACpB,SAAS,6BAAMA,SAAQ,IAAI,GAAlB;AAAA,MACX;AAAA;AAGa,qBAAE,WAAWvC,QAAO;AAAA,GACpC;AACH;AAjCsB;ACnGf,MAAM,cAAcwoB;AAuBX,aACd,KACA,iBACA,UACmB;AACb,gBAAQ,IAAI,MAAM,GAAG;AAC3B,QAAM,UAAU,SAAS,cAAc,MAAM,MAAiB;AAC1D,YAAM,SAAS,GAAG;AACZ,sBAAU,IAAI,GAAG,KAAK;AAAA,EAChC;AAEA,MAAI,iBAAiB;AACf,eAAO,oBAAoB,UAAU;AACrB,0BAAE,aAAa;IAAgB,WACxC,2BAA2B,SAAS;AAC7C,wBAAkB,CAAC,eAAe;AAAA,IACpC;AACI,cAAM,QAAQ,eAAe,GAAG;AAC1B,qBAAO,GAAG,eAAe;AAAA,WAC5B;AACC;AAAA,QACJ;AAAA,QACA,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACD;AAEJ,UAAI,KAAK,KAAK;AACJ,6BAAa,OAAO,KAAK,GAAG;AAAA,MACtC;AAEA,UAAI,OAAO;AACF,sBAAO,QAAQ,OAAO,KAAK;AAAA,MACpC;AAEA,UAAI,SAAS;AACJ,sBAAO,QAAQ,SAAS,OAAO;AAAA,MACxC;AAEO,oBAAO,SAAS,IAAI;AAC3B,UAAI,UAAU;AACJ,uBAAO,GAAI,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAE;AAAA,MACrE;AAEA,UAAI,QAAQ;AACV,eAAO,OAAO,OAAO;AAAA,MACvB;AAEA,UAAI,IAAI;AACN,WAAG,OAAO;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACO;AACT;AAvDgB;AAyDhB,SAAS,YAAY,QAAQ,UAAsB;AAC7C,iBAAW,GACb,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,UAAU;AACZ,MAAI,OAAO,uBAAuB,aAAa,EAAE,CAAC,GAAG;AAEnD,WAAO,uBAAuB,aAAa,EAAE,CAAC,EAAE,cAAc;AAAA,SACzD;AAEL,WAAO,cAAc;AAAA,EACvB;AAGM,yBAAiB,IAAI,eAAe,MAAM;AAC/B;EAAA,CAChB,EAAE,QAAQ,MAAM;AAEjB,WAAS,iBAAiB;AACpB;AACF,gBAAU,KAAK;AAAA,QACb,SAAS,KAAK,cAAc,OAAO;AAAA,QACnC,KAAK,IAAI,GAAG,OAAO,UAAU;AAAA;AAE/B,gBAAU,KAAK;AAAA,QACb,SAAS,KAAK,eAAe,OAAO;AAAA,QACpC,KAAK,IAAI,GAAG,OAAO,SAAS;AAAA;AAGd;aACT,WAAW;AAAA,IAEpB;AAAA,EACF;AAfS;AAiBT,WAAS,kBAAkB;AACrB,eAAO,MAAM,YAAY,OAAQ;AAE/B,sBAAY,SAAS,KAAK,cAAc;AAC9C,UAAM,cAAc,UAAU,OAAO,cAAc,IAAI;AAGvD,QAAI,aAAa;AACf,aAAO,MAAM,OAAO;AACpB,aAAO,MAAM,QACX,SAAS,KAAK,cAAc,UAAU,OAAO,cAAc;AAAA,WACxD;AACE,mBAAM,OAAO,UAAU;AAC9B,aAAO,MAAM,QAAQ;AAAA,IACvB;AAEO,iBAAM,MAAM,UAAU;AAC7B,WAAO,MAAM,SAAS;AAEtB,QAAI,SAAS;AACE;AAAA,QACX;AAAA,QACA,KAAK,UAAU;AAAA,UACb,GAAG,OAAO;AAAA,UACV,GAAG,OAAO;AAAA,SACX;AAAA;AAAA,IAEL;AAAA,EACF;AA5BS;AA8BT,WAAS,aAAa;AAChB,oBAAY,aAAa,QAAQ,oBAAoB;AACzD,QAAI,WAAW;AACP,YAAArc,OAAM,KAAK,MAAM,SAAS;AAChC,gBAAUA,KAAI;AACd,gBAAUA,KAAI;AACE;AACD;IACjB;AAAA,EACF;AATS;AAWT,MAAI,UAAU;AACd,WAAS,WAAW;AAAA,IAClB,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,QAAQ,cAAc;AAAA,IAC1C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,SAAS5N,QAAO;AACV,sBAAY,UAAaA,QAAO;AACvB;MACb;AACU,gBAAAA;AAAA,IACZ;AAAA,GACD;AAED,WAAS,cAAc6C,IAAG;AACxB,IAAAA,KAAIA,MAAK,OAAO;AAChB,IAAAA,GAAE,eAAe;AAEjB,gBAAYA,GAAE;AACd,gBAAYA,GAAE;AACd,aAAS,YAAY;AAErB,aAAS,cAAc;AAAA,EACzB;AATS;AAWT,WAAS,YAAYA,IAAG;AACtB,IAAAA,KAAIA,MAAK,OAAO;AAChB,IAAAA,GAAE,eAAe;AAEV,qBAAU,IAAI,uBAAuB;AAG5C,eAAWA,GAAE,UAAU;AACvB,eAAWA,GAAE,UAAU;AACvB,gBAAYA,GAAE;AACd,gBAAYA,GAAE;AAEd,cAAU,KAAK;AAAA,MACb,SAAS,KAAK,cAAc,OAAO;AAAA,MACnC,KAAK,IAAI,GAAG,OAAO,aAAa,QAAQ;AAAA;AAE1C,cAAU,KAAK;AAAA,MACb,SAAS,KAAK,eAAe,OAAO;AAAA,MACpC,KAAK,IAAI,GAAG,OAAO,YAAY,QAAQ;AAAA;AAGzB;EAClB;AAtBS;AAwBF,0BAAiB,UAAU,MAAM;AACvB;EAAA,CAChB;AAED,WAAS,mBAAmB;AAE1B,aAAS,YAAY;AACrB,aAAS,cAAc;AAAA,EACzB;AAJS;AAMF;AACT;AA3IS;AA6IT,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,MAAM,MAAO+O,UAAU;AACjC,SAAK,QAAQ;AACR,iBAAQ,QAAQ,KAAK,YAAY;AACtC,SAAK,WAAWA,YAAW;AACtB,mBAAU,IAAI,gBAAgB;AAC9B,iBAAQ,MAAM,UAAU;AAAA,EAC/B;AAAA,EAEA,IAAI,UAAU;AACL,gBAAK,QAAQ,MAAM,YAAY;AAAA,EACxC;AAAA,EAEA,MAAM,OAAO;AACX,UAAM9H,SAAQ,MAAM,IAAI,SAAS,KAAK,KAAK;AAC3C,SAAK,QAAQ;AAAA,MACX,GAAG,OAAO,KAAKA,MAAK,EAAE,QAAQ,CAAC,YAAY;AAAA,QACzC,IAAI,MAAM;AAAA,UACR,aAAa;AAAA,SACd;AAAA,QACD,IAAI,wBAAwB;AAAA,UAC1B,IAAI,KAAK,WAAWA,OAAM,OAAO,EAAE,YAAYA,OAAM,OAAO,GAAG;AAAA,YAC7D,CAAC/I,UAAmB;AAElB,oBAAM,eACJ,YAAYA,QACRA,MAAK,SACL;AAAA,gBACE,MAAM;AAAA,gBACN,IAAI,6BAAM,IAAI,WAAW,KAAK,OAAOA,MAAK,OAAO,CAAC,CAAC,GAA/C;AAAA,cAA+C;AAEpD,yBAAI,OAAO,EAAE,aAAaA,MAAK,OAAO,CAAC,IAAI,QAAQ;AAAA,gBACxD,IAAI,UAAU;AAAA,kBACZ,aAAa;AAAA,kBACb,SAAS,mCAAY;AACnB,0BAAM+B,MAAI;AAAA,sBACR/B,MAAK,OAAO,CAAC,EAAE,cAAc;AAAA,sBAC7B;AAAA,sBACA;AAAA;AAEF,wBAAI,aAAaA,OAAM;AACrB+B,4BAAI,cAAc;AACP,kCAAC,KAAK9C,MAAK,KAAK,OAAO,QAAQe,MAAK,OAAO,GAAG;AACvD,8BAAM,UAAUA,MAAK,MAAM,IAAI,GAAG,GAAG,gBAAgB;AACjD+B,8BAAA,YAAY,OAAO,IAAI9C;AAAA,sBAC7B;AAAA,oBACF;AAAA,kBACF,GAbS;AAAA,gBAaT,CACD;AAAA,gBACD,IAAI,UAAU;AAAA,kBACZ,aAAa,aAAa;AAAA,kBAC1B,SAAS,mCAAY;AACnB,0BAAM,aAAa;AACnB,0BAAM,KAAK;kBACb,GAHS;AAAA,gBAGT,CACD;AAAA,eACF;AAAA,YACH;AAAA,UACF;AAAA,SACD;AAAA,OACF;AAAA,MACD,IAAI,0BAA0B;AAAA,QAC5B,IAAI,UAAU;AAAA,UACZ,aAAa,WAAW,KAAK;AAAA,UAC7B,SAAS,mCAAY;AACb,sBAAI,WAAW,KAAK,KAAK;AAC/B,kBAAM,KAAK;UACb,GAHS;AAAA,QAGT,CACD;AAAA,QACD,IAAI,UAAU,EAAE,aAAa,WAAW,SAAS,6BAAM,KAAK,KAAK,GAAhB,YAAmB;AAAA,OACrE;AAAA;AAAA,EAEL;AAAA,EAEA,MAAM,SAAS;AACb,QAAI,KAAK,SAAS;AAChB,YAAM,KAAK;IACb;AAAA,EACF;AAAA,EAEA,MAAM,OAAO;AACN,iBAAQ,MAAM,UAAU;AAC7B,SAAK,OAAO,cAAc;AAE1B,UAAM,KAAK;EACb;AAAA,EAEA,OAAO;AACA,iBAAQ,MAAM,UAAU;AACxB,gBAAO,cAAc,UAAU,KAAK;AAAA,EAC3C;AAAA,EAEA,SAAS;AACP,QAAI,KAAK,SAAS;AAChB,WAAK,KAAK;AACH;AAAA,WACF;AACL,WAAK,KAAK;AACH;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY8C,MAAK;AACf,SAAK,MAAMA;AACN,kBAAS,IAAI;AACb,oBAAW,IAAI,oBAAoBA,IAAG;AAE3C,SAAK,aAAa;AAClB,SAAK,gBAAgB;AAChB,iBAAQ,IAAI,UAAU,OAAO;AAClC,SAAK,UAAU,IAAI,UAAU,WAAW,WAAW,IAAI;AAEnD,yBAAiB,UAAU,MAAM;AACnC,WAAK,MAAM;AACX,WAAK,QAAQ;IAAO,CACrB;AAEI,eAAM,SAAS,IAAI;AAAA,EAC1B;AAAA,EAEA,MAAM,kBAA+B;AAC7B,UAAAoU,aAAY,IAAI,SAAS;AAAA,MAC7B,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO,EAAE,SAAS,OAAO;AAAA,MACzB,QAAQ,SAAS;AAAA,MACjB,UAAU,mCAAY;AACpB,cAAMpU,MAAI,WAAWoU,WAAU,MAAM,CAAC,CAAC;AACvC,QAAAA,WAAU,QAAQ;AAAA,MACpB,GAHU;AAAA,IAGV,CACD;AAEI,oBAAW,MAAMA,WAAU,MAAM;AAEtC,UAAM,kBAAkB;AAAA,MACtB;AAAA,MACA;AAAA,QACE;AAAA,UACE,MAAM;AAAA,UACN,SAAS;AAAA,QACX;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,SACE;AAAA,QACJ;AAAA,MACF;AAAA,MACA;AAAA,QACE,UAAU,wBAAClX,WAAU;AACd,+BAAgBA,OAAM,KAAK;AAAA,QAClC,GAFU;AAAA,MAGZ;AAAA;AAEF,oBAAgB,MAAM,UAAU;AAE5B,yBAAiB,gBAAgB,MAAM;AACzC,UAAI,KAAK,kBAAkB,YAAY,KAAK,qBAAqB,MAAM;AACjE,iBAAK,kBAAkB,GAAG;AAC5B,eAAK,kBAAkB;AACnB8C,gBAAA,YAAY,GAAG,KAAK,UAAU;AAAA,eAC7B;AACL,eAAK,kBAAkB;AAAA,QACzB;AAAA,MACF;AAAA,KACD;AAED,SAAK,gBAAgB,IAAI,kBAAkB,EAAE,QAAQ,oBAAoB;AAAA,MACvE;AAAA,QACE;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,UAAU;AAAA,YACV,UAAU;AAAA,YACV,OAAO;AAAA,YACP,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAI,kBAAkB;AAAA,UACtB,IAAI,8BAA8B,EAAE,GAAG,wBAAC,MAAO,KAAK,YAAY,GAAzB,MAA6B;AAAA,UACpE,IAAI,0BAA0B;AAAA,YAC5B,IAAI,6BAA6B;AAAA,cAC/B,aAAa;AAAA,cACb,SAAS;AAAA,aACV;AAAA,YACD,IAAI,+BAA+B;AAAA,cACjC,aAAa;AAAA,cACb,SAAS,6BAAM;AACb,oCAAoB,YAAY;AAAA,cAClC,GAFS;AAAA,YAET,CACD;AAAA,WACF;AAAA,QACH;AAAA,MACF;AAAA,MACA,IAAI,0BAA0B;AAAA,QAC5B,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,SAAS,6BAAMA,MAAI,YAAY,GAAG,KAAK,UAAU,GAAxC;AAAA,MAAwC,CAClD;AAAA,MACD,IAAI,OAAO,IAAI;AAAA,QACb,IAAI,SAAS,EAAE,WAAW,mBAAmB;AAAA,UAC3C,IAAI,SAAS;AAAA,YACX,MAAM;AAAA,YACN,UAAU,wBAAC,MAAM;AACN,sCAAe,cAAc,EAAE,MAAM,UAAU,EACrD,WAAW,UACV,UACA;AACJ,mBAAK,aAAa,EAAE,WAAW,UAC3B,OAAO;AAAA,gBAEH,SAAS;AAAA,kBACP;AAAA,kBAEF;AAAA,cAEJ;AAEF,uBAAS,eAAe,mBAAmB,EAC3C,UAAU;AACZ,mBAAK,mBAAmB;AAAA,YAC1B,GAlBU;AAAA,UAkBV,CACD;AAAA,SACF;AAAA,OACF;AAAA,MACD;AAAA,QACE;AAAA,QACA,EAAE,IAAI,gBAAgB,OAAO,EAAE,OAAO,QAAQ,SAAS,SAAS;AAAA,QAChE;AAAA,UACE,IAAI,OAAO;AAAA,YACT,IAAI,SAAS,EAAE,WAAW,eAAe;AAAA,YACzC,IAAI,SAAS;AAAA,cACX,IAAI;AAAA,cACJ,MAAM;AAAA,cACN,OAAO,KAAK;AAAA,cACZ,KAAK;AAAA,cACL,OAAO,EAAE,OAAO,OAAO,YAAY,QAAQ;AAAA,cAC3C,SAAS,wBAAC,MAAM;AACT,kCAAa,EAAE,OAAO;AAMzB,yBAAS;AAAA,kBACP;AAAA,gBAEF,UAAQ,KAAK,WAAW,SAAS;AAAA,cACrC,GAXS;AAAA,YAWT,CACD;AAAA,YACD,IAAI,SAAS;AAAA,cACX,IAAI;AAAA,cACJ,MAAM;AAAA,cACN,KAAK;AAAA,cACL,KAAK;AAAA,cACL,OAAO,KAAK;AAAA,cACZ,SAAS,wBAAC,MAAM;AACT,kCAAa,EAAE,WAAW;AAG7B,yBAAS;AAAA,kBACP;AAAA,gBACF,EACA,QAAQ,EAAE,WAAW;AAAA,cACzB,GARS;AAAA,YAQT,CACD;AAAA,WACF;AAAA,UACD,IAAI,OAAO;AAAA,YACT,IAAI,SAAS;AAAA,cACX,KAAK;AAAA,cACL,WAAW;AAAA,aACZ;AAAA,YACD,IAAI,SAAS;AAAA,cACX,IAAI;AAAA,cACJ,MAAM;AAAA,cACN,SAAS;AAAA,cACT,OAAO;AAAA,cACP,UAAU,wBAACD,OAAM;AACV,wCAAmBA,GAAE,OAAO;AACjC,gCAAgB,MAAM,UAAU,KAAK,mBACjC,KACA;AAAA,cACN,GALU;AAAA,YAKV,CACD;AAAA,YACD;AAAA,WACD;AAAA,QACH;AAAA,MACF;AAAA,MACA,IAAI,uBAAuB;AAAA,QACzB,IAAI,UAAU;AAAA,UACZ,IAAI;AAAA,UACJ,aAAa;AAAA,UACb,SAAS,6BAAMC,MAAI,YAAY,IAAI,KAAK,UAAU,GAAzC;AAAA,QAAyC,CACnD;AAAA,QACD,IAAI,UAAU;AAAA,UACZ,GAAG,wBAAC,MAAO,KAAK,MAAM,SAAS,GAA5B;AAAA,UACH,IAAI;AAAA,UACJ,aAAa;AAAA,UACb,SAAS,6BAAM;AACb,iBAAK,QAAQ;AACb,iBAAK,MAAM;UACb,GAHS;AAAA,QAGT,CACD;AAAA,QACD,IAAI,UAAU;AAAA,UACZ,GAAG,wBAAC,MAAO,KAAK,QAAQ,SAAS,GAA9B;AAAA,UACH,IAAI;AAAA,UACJ,aAAa;AAAA,UACb,SAAS,6BAAM;AACb,iBAAK,MAAM;AACX,iBAAK,QAAQ;UACf,GAHS;AAAA,QAGT,CACD;AAAA,OACF;AAAA,MACD,KAAK,MAAM;AAAA,MACX,KAAK,QAAQ;AAAA,MACb,IAAI,UAAU;AAAA,QACZ,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,SAAS,6BAAM;AACG,4BAAE,QAAQ,sBAAsB;AAAA,QAClD,GAFS;AAAA,MAET,CACD;AAAA,MACD,IAAI,UAAU;AAAA,QACZ,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,OAAO,EAAE,OAAO,QAAQ,SAAS,OAAO;AAAA,QACxC,SAAS,6BAAM;AACG,4BAAE,QAAQ,yBAAyB;AAAA,QACrD,GAFS;AAAA,MAET,CACD;AAAA,MACD,IAAI,UAAU;AAAA,QACZ,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,SAAS,6BAAMoU,WAAU,MAAM,GAAtB;AAAA,MAAsB,CAChC;AAAA,MACD,IAAI,UAAU;AAAA,QACZ,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,SAAS,6BAAMpU,MAAI,oBAAoB,GAA9B;AAAA,MAA8B,CACxC;AAAA,MACD,IAAI,UAAU;AAAA,QACZ,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,SAAS,6BAAMA,MAAI,cAAc,GAAxB;AAAA,MAAwB,CAClC;AAAA,MACD,IAAI,UAAU;AAAA,QACZ,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,SAAS,6BAAM;AAEX,eAAC,kBAAkB,IAAI,oBAAoB,KAC3C,QAAQ,iBAAiB,GACzB;AACAA,kBAAI,MAAM;AACVA,kBAAI,MAAM;AACVA,kBAAI,UAAU;AACd,gBAAI,oBAAoB,cAAc;AAAA,UACxC;AAAA,QACF,GAVS;AAAA,MAUT,CACD;AAAA,MACD,IAAI,UAAU;AAAA,QACZ,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,SAAS,mCAAY;AAEjB,eAAC,kBAAkB,IAAI,oBAAoB,KAC3C,QAAQ,wBAAwB,GAChC;AACAA,kBAAI,UAAU;AACd,kBAAMA,MAAI;UACZ;AAAA,QACF,GARS;AAAA,MAQT,CACD;AAAA,MACD,IAAI,UAAU;AAAA,QACZ,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,SAAS,mCAAY;AACnBA,gBAAI,UAAU;AAAA,QAChB,GAFS;AAAA,MAET,CACD;AAAA,KACF;AAEI,uBAAc,MAAM,UAAU;AAEnC,SAAK,sBAAsB,YAAY,KAAK,eAAe,KAAK,QAAQ;AAGxE,SAAK,UAAU,EAAE,WAAW,EAAE,iBAAiB,OAAO;AAAA,EACxD;AAAA,EAEA,UAAU,QAAsC;AAC9C,SAAK,UAAU,cACb,kBAAkB,SAAS,OAAO,UAAU,kBAAkB;AAChE,QAAI,QAAQ;AACV,UACE,KAAK,iBAAiB,KACtB,OAAO,UAAU,mBAAmB,KACpC,KAAK,qBACJ,KAAK,kBAAkB,aAAa,KAAK,oBAC1C,CAACA,MAAI,oBACL;AACIA,cAAA,YAAY,GAAG,KAAK,UAAU;AAC3B,yBAAU,mBAAmB,KAAK;AACzC,aAAK,kBAAkB;AAAA,MACzB;AACK,2BAAgB,OAAO,UAAU;AAAA,IACxC;AAAA,EACF;AACF;;;;;;ACvpBO,MAAM,eAAkC;AAAA,EAC7C,cAAc;AAAA,EACd,cAAc;AAAA,EACd,OAAO;AAAA,IACL;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,KAAK,CAAC,KAAK,GAAG;AAAA,MACd,MAAM,CAAC,oBAAoB,iBAAiB;AAAA,MAC5C,OAAO,CAAC;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ,CAAC,EAAE,MAAM,QAAQ,MAAM,QAAQ,MAAM,GAAG;AAAA,MAChD,SAAS;AAAA,QACP;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,OAAO,CAAC,CAAC;AAAA,UACT,YAAY;AAAA,QACd;AAAA,MACF;AAAA,MACA,YAAY,CAAC;AAAA,MACb,gBAAgB,CAAC,iBAAiB;AAAA,IACpC;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,KAAK,CAAC,KAAK,GAAG;AAAA,MACd,MAAM,CAAC,oBAAoB,kBAAkB;AAAA,MAC7C,OAAO,CAAC;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ,CAAC,EAAE,MAAM,QAAQ,MAAM,QAAQ,MAAM,GAAG;AAAA,MAChD,SAAS;AAAA,QACP;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,OAAO,CAAC,CAAC;AAAA,UACT,YAAY;AAAA,QACd;AAAA,MACF;AAAA,MACA,YAAY,CAAC;AAAA,MACb,gBAAgB;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,KAAK,CAAC,KAAK,GAAG;AAAA,MACd,MAAM,CAAC,KAAK,GAAG;AAAA,MACf,OAAO,CAAC;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,UAAU,MAAM,UAAU,OAAO,CAAC,CAAC,GAAG,YAAY,GAAG;AAAA,MACvE,YAAY,CAAC;AAAA,MACb,gBAAgB,CAAC,KAAK,KAAK,CAAC;AAAA,IAC9B;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,KAAK,CAAC,KAAK,GAAG;AAAA,MACd,MAAM,CAAC,KAAK,GAAG;AAAA,MACf,OAAO,CAAC;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,EAAE,MAAM,SAAS,MAAM,SAAS,MAAM,EAAE;AAAA,QACxC,EAAE,MAAM,YAAY,MAAM,gBAAgB,MAAM,EAAE;AAAA,QAClD,EAAE,MAAM,YAAY,MAAM,gBAAgB,MAAM,EAAE;AAAA,QAClD,EAAE,MAAM,gBAAgB,MAAM,UAAU,MAAM,EAAE;AAAA,MAClD;AAAA,MACA,SAAS,CAAC,EAAE,MAAM,UAAU,MAAM,UAAU,OAAO,CAAC,CAAC,GAAG,YAAY,GAAG;AAAA,MACvE,YAAY,CAAC;AAAA,MACb,gBAAgB,CAAC,iBAAiB,MAAM,IAAI,GAAG,SAAS,UAAU,CAAC;AAAA,IACrE;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,KAAK,CAAC,MAAM,GAAG;AAAA,MACf,MAAM,CAAC,KAAK,EAAE;AAAA,MACd,OAAO,CAAC;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,EAAE,MAAM,WAAW,MAAM,UAAU,MAAM,EAAE;AAAA,QAC3C,EAAE,MAAM,OAAO,MAAM,OAAO,MAAM,EAAE;AAAA,MACtC;AAAA,MACA,SAAS,CAAC,EAAE,MAAM,SAAS,MAAM,SAAS,OAAO,CAAC,CAAC,GAAG,YAAY,GAAG;AAAA,MACrE,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,KAAK,CAAC,MAAM,GAAG;AAAA,MACf,MAAM,CAAC,KAAK,EAAE;AAAA,MACd,OAAO,CAAC;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ,CAAC,EAAE,MAAM,UAAU,MAAM,SAAS,MAAM,GAAG;AAAA,MACnD,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,KAAK,CAAC,IAAI,GAAG;AAAA,MACb,MAAM,CAAC,KAAK,EAAE;AAAA,MACd,OAAO,CAAC;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,QACP,EAAE,MAAM,SAAS,MAAM,SAAS,OAAO,CAAC,CAAC,GAAG,YAAY,EAAE;AAAA,QAC1D,EAAE,MAAM,QAAQ,MAAM,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE;AAAA,QAC3D,EAAE,MAAM,OAAO,MAAM,OAAO,OAAO,CAAC,CAAC,GAAG,YAAY,EAAE;AAAA,MACxD;AAAA,MACA,YAAY,CAAC;AAAA,MACb,gBAAgB,CAAC,0BAA0B;AAAA,IAC7C;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO;AAAA,IACvB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ;AAAA,IACxB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM;AAAA,IACtB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,cAAc;AAAA,IAC9B,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM;AAAA,IACtB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,cAAc;AAAA,IAC9B,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ;AAAA,IACxB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK;AAAA,IACrB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO;AAAA,EACzB;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,OAAO,CAAC;AAAA,EACR,SAAS;AACX;AAEa,yBAAmB,KAAK,UAAU,YAAY;AAEpD,MAAM,aAAgC;AAAA,EAC3C,cAAc;AAAA,EACd,cAAc;AAAA,EACd,OAAO,CAAC;AAAA,EACR,OAAO,CAAC;AAAA,EACR,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,OAAO,CAAC;AAAA,EACR,SAAS;AACX;;;;;;ACpJO,SAAS,iBAAiB4L,SAAqB;AAE9C,kBAAU,IAAI,WAAWA,OAAM;AACrC,QAAM,WAAW,IAAI,SAAS,QAAQ,MAAM;AAG5C,MAAI,SAAS,UAAU,CAAC,MAAM,YAAY;AACxC,YAAQ,MAAM,sBAAsB;AACpC;AAAA,EACF;AAGA,MAAI,SAAS;AACb,MAAI,aAAqC;AAElC,kBAAS,QAAQ,QAAQ;AAExB,mBAAS,SAAS,UAAU,MAAM;AAElC,iBAAO,OAAO,aAAa,GAAG,QAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC;AACzE,QAAI,SAAS,UAAU,QAAQ,UAAU,SAAS,QAAQ;AAExD,UAAI,cAAc,SAAS;AACpB,qBAAQ,WAAW,MAAM,GAAG;AACjC;AAAA,MACF;AACA,YAAM,UAAU,OAAO;AAAA,QACrB,GAAG,QAAQ,MAAM,SAAS,GAAG,WAAW;AAAA;AAG1C,YAAM,sBAAsB,QAAQ;AAAA,QAClC,cAAc;AAAA,QACd,SAAS,IAAI;AAAA;AAEf,YAAM,cAAc,IAAI,YAAY,OAAO,EAAE,OAAO,mBAAmB;AACvE,iBAAW,OAAO,IAAI;AAAA,IACxB;AAEA,cAAU,KAAK;AAAA,EACjB;AACO;AACT;AAzCgB;AA2CT,SAAS,eAAe,MAAY;AAClC,aAAI,QAAgC,CAAC,MAAM;AAC1C,mBAAS,IAAI;AACZ,oBAAS,CAAC,UAAU;AACzB,QAAE,iBAAiB,MAAM,OAAO,MAAqB,CAAC;AAAA;AAGxD,WAAO,kBAAkB,IAAI;AAAA,GAC9B;AACH;AATgB;;;;;AC3CT,SAAS,kBAAkBA,SAA6C;AACvE,mBAAW,IAAI,SAASA,OAAM;AAG9B,oBAAY,OAAO,aAAa,GAAG,IAAI,WAAWA,SAAQ,GAAG,CAAC,CAAC;AACrE,MAAI,cAAc,QAAQ;AACxB,YAAQ,MAAM,uBAAuB;AACrC;AAAA,EACF;AAGA,MAAI,SAAS;AACb,MAAI,gBAAgB;AACb,kBAAS,SAAS,YAAY;AACnC,UAAM,cAAc,SAAS,SAAS,MAAM,IAAI;AAChD,UAAM,YAAY,SAAS,SAAS,MAAM,IAAI;AAC9C,UAAM,YAAY,SAAS,UAAU,QAAQ,KAAK,IAAI;AAC5C;AAEV,QAAI,cAAc,GAAG;AAEH;AAAA,QACd,IAAI,SAASA,SAAQ,QAAQ,SAAS;AAAA;AAAA,IAE1C;AAEU;AACV,QAAI,YAAa;AAAA,EACnB;AAEO;AACT;AA/BgB;AAiCT,SAAS,gBAAgB,MAA6C;AACpE,aAAI,QAAQ,CAAC,MAAM;AAClB,mBAAS,IAAI;AACZ,oBAAS,SAAU,OAAO;AACzB,0BAAc,MAAM,OAAO;AAC/B,0BAAkB,WAAW,CAAC;AAAA;AAElC,WAAO,kBAAkB,IAAI;AAAA,GAC9B;AACH;AATgB;AAYhB,SAAS,mBAAmB,UAA4C;AACtE,MAAI,SAAS;AACb,QAAM,eAAe,SAAS,UAAU,QAAQ,IAAI;AAC1C;AACV,QAAM,eAAe,UAAU,UAAU,QAAQ,YAAY;AACnD;AAEV,QAAM,wBAAwB,SAAS,UAAU,QAAQ,IAAI;AACnD;AACV,QAAM,WAAW;AACjB,WAAS,IAAI,GAAG,IAAI,uBAAuB,KAAK;AAC9C,UAAM,gBAAgB,SAAS,UAAU,QAAQ,IAAI;AAC3C;AACV,UAAM,UAAU,UAAU,UAAU,QAAQ,aAAa;AAC/C;AAEJ,gBAAM,QAAQ,QAAQ,GAAG;AAC/B,UAAM,MAAM,QAAQ,UAAU,GAAG,GAAG;AAEpC,aAAS,GAAG,IAAI,QAAQ,UAAU,MAAM,CAAC;AAAA,EAC3C;AAEO;AACT;AAvBS;AAyBT,SAAS,UAAU,UAAoB,QAAgB,QAAwB;AAC7E,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC/B,cAAU,OAAO,aAAa,SAAS,SAAS,SAAS,CAAC,CAAC;AAAA,EAC7D;AACO;AACT;AANS;;;;;AC/DF,SAAS,eAAe,MAA6C;AAC1E,SAAO,eAAe,IAAI;AAC5B;AAFgB;AAIT,SAAS,gBAAgB,MAA6C;AAC3E,SAAO,gBAAgB,IAAI;AAC7B;AAFgB;AAIhB,SAAS,cAAc,UAAU;AAEzB,yBAAiB,OAAO,aAAa,GAAG,SAAS,MAAM,GAAG,CAAC,CAAC,MAAM;AAG/D,mBAAQ,QAAQwb,iBAAgB,QAAQ;AAC/C,QAAI,MAAM,SAAS,MAAM,QAAQ,SAAS,MAAM;AAChD,QAAI,WAAW,GAAG;AACT,iBAAI,SAAS,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU,EAAE;AAAA,QAC9D;AAAA,QACAA;AAAAA,MAAA;AAAA,IACF,WACS,WAAW,GAAG;AAChB,iBAAI,SAAS,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU,EAAE;AAAA,QAC9D;AAAA,QACAA;AAAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AAbS;AAgBT,QAAM,YAAY,QAAQ,GAAG,gBAAgB,CAAC;AAE9C,WAAS,SAAS,QAAQ;AACxB,UAAM,aAAa,QAAQ,QAAQ,gBAAgB,CAAC;AACpD,UAAM,SAAS;AAEf,aAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AAC7B,0BAAc,SAAS,IAAI,IAAI;AACrC,YAAM,MAAM,QAAQ,aAAa,gBAAgB,CAAC;AAClD,YAAM,OAAO,QAAQ,cAAc,GAAG,gBAAgB,CAAC;AACvD,YAAM,YAAY,QAAQ,cAAc,GAAG,gBAAgB,CAAC;AAC5D,YAAM,cAAc,QAAQ,cAAc,GAAG,gBAAgB,CAAC;AAG1D,UAAAlqB;AACJ,UAAI,SAAS,GAAG;AAEN,QAAAA,SAAA,IAAI,YAAY,OAAO,EAAE;AAAA,UAC/B,SAAS,SAAS,aAAa,cAAc,YAAY,CAAC;AAAA;AAAA,MAE9D;AAEA,aAAO,GAAG,IAAIA;AAAA,IAChB;AAEO;AAAA,EACT;AAxBS;AA2BH,kBAAU,SAAS,SAAS;AAC3B;AACT;AApDS;AAsDT,SAAS,YAAY,OAAO;AAC1B,MAAI,SAAS;AACb,WAAS,OAAO,OAAO;AACjB,QAAAA,SAAQ,MAAM,GAAG;AACrB,QAAImqB,eAAcnqB,OAAM,MAAM,KAAK,CAAC;AACpC,WAAOmqB,aAAY,CAAC,CAAC,IAAIA,aAAY,CAAC;AAAA,EACxC;AACO;AACT;AARS;AAUF,SAAS,gBAAgB,MAAM;AAC7B,aAAI,QAAgC,CAAC,MAAM;AAC1C,mBAAS,IAAI;AACZ,oBAAS,CAAC,UAAU;AACzB,YAAM,OAAO,IAAI,WAAW,MAAM,OAAO,MAAqB;AAC9D,YAAM,WAAW,IAAI,SAAS,KAAK,MAAM;AAIvC,mBAAS,UAAU,CAAC,MAAM,cAC1B,SAAS,UAAU,CAAC,MAAM,YAC1B;AACA,gBAAQ,MAAM,uBAAuB;AACrC,UAAE,CAAE;AACJ;AAAA,MACF;AAGA,UAAI,SAAS;AACb,UAAI,aAAa;AAEV,sBAAS,KAAK,QAAQ;AAC3B,cAAM,eAAe,SAAS,UAAU,SAAS,GAAG,IAAI;AACxD,cAAM,aAAa,OAAO;AAAA,UACxB,GAAG,KAAK,MAAM,QAAQ,SAAS,CAAC;AAAA;AAElC,YAAI,eAAe,QAAQ;AACzB,cACE,OAAO,aAAa,GAAG,KAAK,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,KAC7D,YACA;AACU;AAAA,UACZ;AACA,cAAIvmB,SAAO;AAAA,YACT,KAAK,MAAM,SAAS,GAAG,SAAS,IAAI,YAAY;AAAA;AAElD,mBAAS,OAAOA,QAAM;AACd,kBAAA5D,SAAQ4D,OAAK,GAAG;AAClB,uBAAO5D,WAAU,UAAU;AACvB,oBAAAiB,SAAQjB,OAAM,QAAQ,GAAG;AACpB,yBAAAA,OAAM,MAAM,GAAGiB,MAAK,CAAC,IAAIjB,OAAM,MAAMiB,SAAQ,CAAC;AAAA,YAC3D;AAAA,UACF;AACA;AAAA,QACF;AAEA,kBAAU,IAAI;AAAA,MAChB;AAEA,QAAE,UAAU;AAAA;AAGd,WAAO,kBAAkB,IAAI;AAAA,GAC9B;AACH;AAtDgB;AAwDT,SAAS,kBAAkB,MAAM;AAC/B,aAAI,QAAQ,CAAC,MAAM;AAClB,mBAAS,IAAI;AACZ,oBAAS,CAAC,UAAU;AACzB,YAAM,kBAAkB,IAAI,WAAW,MAAM,OAAO,MAAqB;AACzE,YAAM,WAAW,IAAI,SAAS,gBAAgB,MAAM;AACpD,UAAI,cAAc,SAAS,UAAU,GAAG,IAAI;AAC5C,UAAI,SAAS;AACb,UAAI8L,UAAS,KAAK;AAAA,QAChB,IAAI,YAAc;AAAA,UAChB,gBAAgB,MAAM,QAAQ,SAAS,WAAW;AAAA,QACpD;AAAA;AAEF,QAAEA,QAAO,YAAY;AAAA;AAGvB,QAAI,QAAQ,KAAK,MAAM,GAAG,OAAO,OAAO,CAAC;AACzC,WAAO,kBAAkB,KAAK;AAAA,GAC/B;AACH;AAnBgB;AAqBM,2BAAY,OAAO,YAAY;AAC7C,QAAAvK,KAAI,WAAW,YAAY,UAAU;AAC3C,MAAIA,KAAI,IAAI;AACJ,uBAAa,MAAM,IAAI;AACvB,iBAAO,WACV,OAAOA,EAAC,EACR,MAAM,IAAI,EAAE,CAAC,EACb;AAAA,MACC,IAAI,OAAO,yDAAyD,GAAG;AAAA,MAExE,OAAO,CAACA,IAAG,MAAM;AACV,gBAAI,EAAE,MAAM,GAAG;AACrB,UAAI,EAAE,CAAC,EAAE,SAAS,GAAG,GAAG;AACpB,WAAC,IAAI,EAAE,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC;AAAA,MACvC;AACAA,SAAE,EAAE,CAAC,EAAE,KAAK,EAAE,YAAa,KAAI,EAAE,CAAC,EAAE,KAAK;AAClCA;AAAAA,IACT,GAAG,CAAE;AACP,UAAMqI,MAAK,WAAW,YAAY,sBAAsBrI,EAAC;AACzD,QAAIqI,MAAK,IAAI;AACX,UAAI,WAAW,WAAW,OAAO,GAAGA,GAAE,EAAE;AACxC,UAAI,WAAW,WAAW,UAAUA,MAAK,IAAIrI,EAAC,EAAE;AAE1C,uBAAW,UAAU,WAAW,wBAAwB;AACxD,2BAAe,UAAU,WAAW,kBAAkB;AACtD,2BAAe,UAAU,WAAW,gBAAgB;AACpD,2BAAe,UAAU,WAAW,gBAAgB;AACpD,0BAAc,UAAU,WAAW,UAAU;AAC7C,wBAAY,UAAU,WAAW,kBAAkB;AACnD,sBAAU,UAAU,WAAW,WAAW;AAC1C,4BAAgB,UAAU,WAAW,WAAW;AAChD,uBAAW,UAAU,WAAW,WAAW;AACjD,UAAI,gBAAgB;AACpB,UAAI,UAAU;AAEd,YAAM,SAAS,wBAACpB,OAAM,KAAK,KAAKA,KAAI,EAAE,IAAI,IAA3B;AAET,wBAAY,wBAACiD,OAAM,SAAS;AAChC,eAAOA,MAAK,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI;AAAA,SAD/B;AAIlB,YAAM+lB,kBAAiB,wBAAC/lB,OAAM,MAAMrE,QAAO,mBAAoB;AACvD,kBAAI,UAAUqE,OAAM,IAAI;AAC9B,YAAI,gBAAgB;AACZ,oBAAI,EAAE,QAAQ,OAAO,KAAK,CAAC0kB,OAAMA,GAAE,WAAW/oB,MAAK,CAAC;AAC1D,cAAI,GAAG;AACL,cAAE,QAAQ;AAAA,iBACL;AACL,oBAAQ,KAAK,kBAAkBA,MAAK,iBAAiB,IAAI,KAAKqE,KAAI;AAClE,cAAE,QAAQrE;AAAA,UACZ;AAAA,eACK;AACL,YAAE,QAAQA;AAAA,QACZ;AAAA,SAZqB;AAevB,YAAM,kBAAkB,wBAAC,UAAU,MAAM,UAAU,cAAc;AAC/D,cAAM,QAAQ;AACd,eAAO,KAAK,QAAQ,yBAAyB,SAAU,GAAG,GAAG;AACrD,oBAAI,EAAE,MAAM,GAAG;AACrB,gBAAM,SAAS,WAAW,EAAE,CAAC,CAAC;AAC1B,oBAAM,MAAM,GAAG;AACT,yBAAK,gBAAgB,CAAC;AAAA,iBACzB;AACL,kBAAM,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ;AAAA,UACnC;AACO;AAAA,SACR;AAED,mBAAW,KAAK,OAAO;AACf,2BAAW,UAAU,WAAW,YAAY;AAClD,gBAAM,IAAI,QAAQ;AAClB,UAAAoqB,gBAAe,UAAU,aAAa,EAAE,MAAM,IAAI;AACnC,UAAAA,gBAAA,UAAU,kBAAkB,EAAE,MAAM;AACpC,UAAAA,gBAAA,UAAU,iBAAiB,EAAE,MAAM;AAClD,oBAAU,KAAK,QAAQ,UAAU,OAAO,UAAU,CAAC;AACnD,mBAAS,KAAK,QAAQ,SAAS,OAAO,UAAU,CAAC;AACjD,sBAAY,EAAE,MAAM,UAAU,OAAO,EAAE;AACvC,qBAAW,EAAE,MAAM,UAAU,OAAO,EAAE;AAAA,QACxC;AAEA,iBAAS,KAAK,QAAQ,GAAG,UAAU,CAAC;AACpC,kBAAU,KAAK,QAAQ,GAAG,aAAa,CAAC;AACxC,YAAI,eAAe;AACjB,oBAAU,KAAK,QAAQ,GAAG,eAAe,CAAC;AAAA,QAC5C;AAEO,iBAAE,MAAM,WAAW;MAAS,GA/Bb;AAkClB,gCAAoB,wBAAC,SAAS;AAC9B,aAAC,WAAW,OAAe;AAC/B,eAAO,KAAK;AAAA,UACV,IAAI;AAAA,YACF,SACE,WACG,IAAI,CAACvnB,OAAMA,GAAE,QAAQ,uBAAuB,MAAM,CAAC,EACnD,KAAK,SAAS,IACjB;AAAA,YACF;AAAA,UACF;AAAA,UACA;AAAA;AAAA,MACF,GAZwB;AAepB,qBAAS,wBAAC,SAAS;AACjB,cAAAzB,KAAI,KAAK,IAAI;AACnB,eAAO,KAAK,IAAI;AACT,eAAAA;AAAA,SAHM;AAMf,YAAM,MAAM;AACZ,YAAM,IAAI,QAAQ;AAClB,YAAM,IAAI,YAAY;AACtB,YAAM,IAAI,YAAY;AACtB,YAAM,IAAI,YAAY;AACtB,YAAM,IAAI,WAAW;AACrB,YAAM,IAAI,SAAS;AACnB,YAAM,IAAI,OAAO;AACjB,YAAM,IAAI,aAAa;AACvB,YAAM,IAAI,QAAQ;AAET,uBAAQ,GAAG,cAAc,CAAC;AACtB,2BAAQ,GAAG,cAAc,CAAC;AAC1B,2BAAQ,GAAG,cAAc,CAAC;AAC9B,uBAAQ,GAAG,aAAa,CAAC;AACrB,2BAAQ,GAAG,aAAa,CAAC;AACzB,2BAAQ,GAAG,aAAa,CAAC;AAC5B,wBAAQ,GAAG,aAAa,CAAC;AAC3B,sBAAQ,GAAG,UAAU,CAAC;AAClB,0BAAQ,GAAG,SAAS,CAAC;AACnB,4BAAQ,GAAG,SAAS,CAAC;AAEnC,YAAMgT,YAAW;AAAA,QACf,MAAMhT,IAAG;AACQ,UAAAgpB,gBAAA,UAAU,aAAahpB,IAAG,IAAI;AAAA,QAC/C;AAAA,QACA,IAAIA,IAAG;AACU,UAAAgpB,gBAAA,eAAe,YAAYhpB,IAAG,IAAI;AAAA,QACnD;AAAA,QACA,YAAYA,IAAG;AACE,UAAAgpB,gBAAA,aAAa,OAAO,CAAChpB,EAAC;AAAA,QACvC;AAAA,QACA,YAAYA,IAAG;AACE,UAAAgpB,gBAAA,cAAc,sBAAsB,CAAChpB,EAAC;AAAA,QACvD;AAAA,QACA,QAAQA,IAAG;AACL,qBAAOA,GAAE,cAAc,QAAQ,MAAM,IAAI,EAAE,WAAW,KAAK,GAAG;AAC9D,mBAAK,SAAS,QAAQ,GAAG;AAC3B,mBAAO,KAAK,QAAQ,UAAU,EAAE,EAAE,QAAQ,OAAO,EAAE;AACpC,YAAAgpB,gBAAA,aAAa,aAAa,QAAQ;AAAA,iBAC5C;AACU,YAAAA,gBAAA,aAAa,aAAa,QAAQ;AAAA,UACnD;AACM,oBAAI,UAAU,aAAa,cAAc;AACzC,oBAAI,EAAE,QAAQ,OAAO;AAAA,YACzB,CAACrB,OAAMA,OAAM,QAAQA,OAAM,YAAY;AAAA;AAEzC,cAAI,GAAG;AACU,YAAAqB,gBAAA,aAAa,gBAAgB,CAAC;AAAA,UAC/C;AAAA,QACF;AAAA,QACA,KAAKhpB,IAAG;AACA,sBAAMA,GAAE,MAAM,GAAG;AACvB,gBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AACxB,gBAAMmE,KAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB,uBAAO,OAAO,eAAe;AAC7B,uBAAO,OAAO,cAAc;AAClC,oBAAU,OAAO,aAAa;AAC1B,yBAAW,OAAO,gBAAgB;AAEvB,UAAA6kB,gBAAA,WAAW,SAAS,CAAC;AACrB,UAAAA,gBAAA,WAAW,UAAU7kB,EAAC;AAErC,cAAI,QAAQ,MAAM;AAChB,gBAAI,IAAI;AACR,gBAAI,MAAM;AACR,mBAAK,IAAI;AACT,mBAAKA,KAAI;AAAA,mBACJ;AACC,wBAAI,KAAK,MAAM,GAAG;AACnB,oBAAC,EAAE,CAAC;AACJ,oBAAC,EAAE,CAAC;AAAA,YACX;AAEI;AACA;AAEA,yBAAS,WAAW,QAAQ,GAAG;AACpB,yCAAc,UAAU,WAAW,eAAe;AAC/D,oBAAM,IAAI,WAAW;AACT,kCAAQ,GAAG,aAAa,CAAC;AAErC,sBAAQ,UAAU;AAAA,gBAChB,KAAK;AACQ;AACX;AAAA,cACJ;AACe,cAAA6kB,gBAAA,aAAa,kBAAkB,UAAU,IAAI;AAAA,mBACvD;AACC,oBAAAC,UAAS,UAAU,WAAW,gBAAgB;AACpD,oBAAM,IAAIA,OAAM;AACJ,kCAAQ,GAAGA,SAAQ,CAAC;AAClB,oCAAQ,GAAGA,SAAQ,CAAC;AAE5B,wCACJ,UAAU,WAAW,oBAAoB;AAC3C,oBAAM,IAAI,iBAAiB;AACZ,cAAAD,gBAAA,mBAAmB,cAAc,UAAU,IAAI;AAE9D,oBAAM,mBAAmB,UAAU;AAAA,gBACjC;AAAA;AAEF,oBAAM,IAAI,gBAAgB;AACnB,cAAAC,QAAA,QAAQ,GAAG,kBAAkB,CAAC;AACnB,wCAAQ,GAAG,kBAAkB,CAAC;AAElC,sCAAU,WAAW,YAAY;AAC/C,oBAAM,IAAI,WAAW;AACJ,uCAAQ,GAAG,aAAa,CAAC;AAE1C,oBAAM,gBAAiB,aACrB,UAAU,WAAW,gBAAgB;AACvC,oBAAM,IAAI,aAAa;AACX,kCAAQ,GAAG,eAAe,CAAC;AACzB,oCAAQ,GAAG,eAAe,CAAC;AAAA,YAC3C;AAEA,YAAAD,gBAAe,aAAa,SAAS,OAAO,EAAE,CAAC;AAC/C,YAAAA,gBAAe,aAAa,UAAU,OAAO,EAAE,CAAC;AAEhC,sCAAU,WAAW,UAAU;AAC/C,kBAAM,IAAI,aAAa;AACd,6BAAQ,GAAG,eAAe,CAAC;AACvB,iCAAQ,GAAG,eAAe,CAAC;AAC3B,iCAAQ,GAAG,eAAe,CAAC;AAC7B,+BAAQ,GAAG,eAAe,CAAC;AACxB,kCAAQ,GAAG,SAAS,CAAC;AAAA,UACrC;AAAA,QACF;AAAA,QACA,MAAMhpB,IAAG;AACQ,UAAAgpB,gBAAA,aAAa,SAAS,CAAChpB,EAAC;AAAA,QACzC;AAAA,QACA,KAAKA,IAAG;AACS,UAAAgpB,gBAAA,aAAa,QAAQ,CAAChpB,EAAC;AAAA,QACxC;AAAA;AAGF,iBAAW,OAAO,MAAM;AACtB,YAAI,OAAOgT,WAAU;AACnB,UAAAA,UAAS,GAAG,EAAE,OAAO,GAAG,CAAC;AAAA,QAC3B;AAAA,MACF;AAEA,UAAI,eAAe;AACjB,QAAAgW;AAAA,UACE;AAAA,UACA;AAAA,UACA,UAAU,CAAC,UAAU,UAAU,aAAa,OAAO,EAAE;AAAA;AAEvD,QAAAA;AAAA,UACE;AAAA,UACA;AAAA,UACA,UAAU,aAAa,KAAK,EAAE;AAAA;AAEhC,QAAAA;AAAA,UACE;AAAA,UACA;AAAA,UACA,UAAU,aAAa,WAAW,EAAE;AAAA;AAEtC,QAAAA;AAAA,UACE;AAAA,UACA;AAAA,UACA,UAAU,aAAa,cAAc,EAAE;AAAA;AAEzC,QAAAA;AAAA,UACE;AAAA,UACA;AAAA,UACA,EAAE,OAAO,oBAAoB,KAAK;AAAA;AAAA,MAEtC;AAEA,UAAI,IAAI;AAAA,QACN;AAAA,QACA;AAAA,QACA,EAAE,MAAM,cAAc,OAAO,EAAE;AAAA,QAC/B,EAAE,MAAM,UAAU,OAAO,EAAE;AAAA;AAE7B,iBAAW,EAAE;AACb,UAAI,gBAAgB,cAAc,UAAU,EAAE,UAAU,EAAE,SAAS;AACnE,iBAAW,EAAE;AAEb,MAAAA,gBAAe,cAAc,QAAQ,kBAAkB,QAAQ,CAAC;AAChE,MAAAA,gBAAe,cAAc,QAAQ,kBAAkB,QAAQ,CAAC;AAEhE,YAAM,QAAQ;AAEd,iBAAW,OAAO;AAAA,QAChB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,SACC;AACD,eAAO,KAAK,GAAG;AAAA,MACjB;AAEQ,mBAAK,yBAAyB,IAAI;AAAA,IAC5C;AAAA,EACF;AACF;AAxTsB;;;;;;;;ACzJN,4BAAmB,MAAM,IAAI,IAAI;AAC/C,MAAI,OAAO;AACP,UAAI,KAAK,CAAC,EAAE;AACZ,MAAA7kB,KAAI,KAAK,CAAC,EAAE;AAChB,QAAM,YAAY,KAAK;AAEnB,iBAAW,YAAY,MAAM,MAAM;AAEvC,WAAS,IAAI,GAAG,KAAK,WAAW,KAAK;AACnC,UAAM,IAAI,KAAK,KAAK,YAAY,CAAC;AACjC,UAAM,KAAK,KAAK;AAChB,UAAM,KAAK,KAAK;AAChB,UAAM,SAAS,KAAK;AACpB,UAAM,SAAS,KAAKA;AAEpB,UAAM,QAAQ,KAAK,IAAI,QAAQ,QAAQ,CAAC;AACxC,UAAM,SAAS,IAAI;AACnB,UAAM,SAASA,KAAI;AACb,iBAAO,SAAS,SAAS;AAE/B,QAAI,OAAO,MAAM;AACR;AACK;AACC;AACN;AACA;AACE,qBAAM,KAAK,UAAU;AAAA,IAChC;AAAA,EACF;AAEA,SAAO,EAAE,WAAW,YAAY,MAAM,MAAM,OAAO;AACrD;AA/BgB;AAiCT,SAAS,gBAAgBlB,OAAM;AAC9B,aAAK,IAAI,uBAAuB;AAClC;AACJ,MAAI,QAAQ;AAEZ,WAAS,aAAa;AACpB,QAAI,IAAI;AACR,QAAIkB,KAAI;AAER,QAAI,aAAa;AACf,UAAI,MAAM,GAAG;AACb,UAAI,OAAO;AACD;AAER,YAAI,MAAM,KAAK;AACP;AAAA,QACR;AACA,WAAG,MAAM,YAAY,6BAA6B,IAAI,UAAU;AAAA,aAC3D;AACF,iBAAM,YAAY,6BAA6B,IAAI;AAAA,MACxD;AAEM,iBAAKlB,MAAK,KAAK,CAAC;AACrB,OAAC,EAAE,WAAW,GAAG,YAAYkB,GAAM;AAAA,QAClC;AAAA,QACA,KAAK;AAAA,QACL;AAAA;AAEG;AACA,MAAAA,MAAA;AAEF,eAAM,YAAY,6BAA6B,CAAC;AAChD,eAAM,YAAY,8BAA8BA,EAAC;AAAA,IACtD;AAAA,EACF;AA7BS;AA8BF;AAAA,IACL;AAAA,IACA,aAAa,MAAM;AACjB,UAAI,SAAS,aAAa;AACxB,YAAI,eAAe,MAAM;AACvB,gCAAsB,MAAM;AACf;UAAA,CACZ;AAAA,QACH;AACG,2BAAgB,GAAG,IAAI;AACZ;AACT,QAAAlB,MAAA,SAASA,MAAK,IAAI;AAClB,QAAAA,MAAA,MAAM,eAAe,MAAM,IAAI;AAAA,MACtC;AAAA,IACF;AAAA,IACA,YAAY;AACC;IACb;AAAA,IACA,SAAS;AAEP,SAAG,MAAM,gBAAgB;AACzB,YAAM,OAAO,SAAS;AAAA,QACpBvB,MAAI,OAAO,MAAM,CAAC;AAAA,QAClBA,MAAI,OAAO,MAAM,CAAC;AAAA;AAEpB,SAAG,MAAM,gBAAgB;AAEzB,UAAI,CAAC,KAAM;AAEL,kBAAM,YAAY,QAAQ,IAAI;AACpC,MAAAuB,MAAK,YAAY;AAAA,IACnB;AAAA;AAEJ;AApEgB;;;;;ACzBhB,SAAS,SAAS,EAAE,GAAG,GAAAkD,IAAG,KAAe;AAClC;AACA,EAAAA,MAAA;AACA;AACL,QAAM,MAAM,KAAK,IAAI,GAAGA,IAAG,CAAC,GAC1B,MAAM,KAAK,IAAI,GAAGA,IAAG,CAAC;AACpB,MAAAhC,KAAI,GACN,IAAI;AACA,aAAa,MAAM,OAAO;AAEhC,MAAI,QAAQ,KAAK;AACf,UAAM,IAAI,MAAM;AAChB,QAAI,IAAI,MAAM,KAAK,IAAI,MAAM,OAAO,KAAK,MAAM;AAC/C,YAAQ,KAAK;AAAA,MACX,KAAK;AACH,QAAAA,MAAKgC,KAAI,KAAK,KAAKA,KAAI,IAAI,IAAI;AAC/B;AAAA,MACF,KAAKA;AACE,QAAAhC,MAAA,IAAI,KAAK,IAAI;AAClB;AAAA,MACF,KAAK;AACE,QAAAA,MAAA,IAAIgC,MAAK,IAAI;AAClB;AAAA,IACJ;AACK,IAAAhC,MAAA;AAAA,EACP;AAEO,WAAE,GAAAA,IAAG,GAAG;AACjB;AA5BS;AA8BT,SAAS,SAAS,KAAkB;AAClC,MAAI,IAAI,GACNgC,KAAI,GACJ,IAAI;AAEF,UAAI,UAAU,GAAG;AACnB,QAAI,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;AAChC,IAAAA,KAAI,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;AAChC,QAAI,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,aAGzB,IAAI,UAAU,GAAG;AACxB,QAAI,SAAS,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAChC,IAAAA,KAAI,SAAS,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAChC,QAAI,SAAS,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAAA,EAClC;AACO,WAAE,GAAG,GAAAA,IAAG;AACjB;AAjBS;AAmBT,MAAM,sBAAsB,wBAAC8O,WAAsC;AAC7D,OAACA,OAAc;AACf,MAAAA,OAAM,WAAW,GAAG,MAAMA,OAAM,WAAW,KAAKA,OAAM,WAAW;AAC5D;AACL,6CAAuC,KAAKA,MAAK;AACnD,WAAOA,OAAM,SAAS,MAAM,IAAI,SAAS;AACvC,oEAA8D,KAAKA,MAAK;AAC1E,WAAOA,OAAM,SAAS,MAAM,IAAI,SAAS;AACpC;AACT,GAT4B;AAW5B,MAAM,SAAS,wBAACA,WAAkC;AAChD,MAAI,OAAOA,WAAU,YAAYA,WAAU,KAAa;AAExD,SAAO,CAAC,KAAK,KAAK,KAAK,GAAG,EAAE;AAAA,IAC1B,CAAC,QACC,OAAQA,OAAkC,GAAG,MAAM,YACnD,CAAC,MAAOA,OAAiC,GAAG,CAAC;AAAA;AAEnD,GARe;AAUf,SAAS,YAAYA,QAAehQ,SAAkC;AAChE;AAEJ,UAAQA,SAAQ;AAAA,IACd,KAAK,OAAO;AACV,YAAM,MAAM,SAAS,SAASgQ,MAAK,CAAC;AAC7B;AAAA,QACL,GAAG,KAAK,MAAM,IAAI,IAAI,GAAG;AAAA,QACzB,GAAG,EAAE,IAAI,IAAI,KAAK,QAAQ,CAAC;AAAA,QAC3B,GAAG,EAAE,IAAI,IAAI,KAAK,QAAQ,CAAC;AAAA,QAC3B,GAAG;AAAA;AAAA,IAEP;AAAA,IAEA,KAAK;AAAA,IACL,KAAK,QAAQ;AACH,cAAAA,OAAM,MAAM,cAAc;AAClC,UAAI,CAAC,SAAS,MAAM,SAAS,EAAU;AACvC,YAAM,CAAC,GAAG9O,IAAG,CAAC,IAAI,MAAM,IAAI,MAAM;AAClC,YAAM,MAAM,SAAS,EAAE,GAAG,GAAAA,IAAG,GAAG;AAE1B,gBAAIlB,YAAW,UAAU,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,CAAC,IAAI;AAE1D;AAAA,QACL,GAAG,KAAK,MAAM,IAAI,IAAI,GAAG;AAAA,QACzB,GAAG,EAAE,IAAI,IAAI,KAAK,QAAQ,CAAC;AAAA,QAC3B,GAAG,EAAE,IAAI,IAAI,KAAK,QAAQ,CAAC;AAAA,QAC3B;AAAA;AAAA,IAEJ;AAAA,IAEA,KAAK;AAAA,IACL,KAAK,QAAQ;AACH,cAAAgQ,OAAM,MAAM,cAAc;AAClC,UAAI,CAAC,SAAS,MAAM,SAAS,EAAU;AACvC,YAAM,CAAC9Q,IAAG,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM;AAC5B,gBAAIc,YAAW,UAAU,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,CAAC,IAAI;AACjE,aAAO,EAAE,GAAAd,IAAG,GAAG,GAAG,EAAE;AAAA,IACtB;AAAA,IACA;AACS;AAAA,EACX;AACF;AA1CS;AA4CT,MAAM,wBAAwB,wBAC5B8Q,QACA5U,aACW;AACX,MAAI,CAAC,OAAO,KAAKA,QAAO,EAAE,OAAe,QAAA4U;AAEnC,QAAAhQ,UAAS,oBAAoBgQ,MAAK;AACxC,MAAI,CAAChQ,SAAQ;AACH,iBAAK,8CAA8CgQ,MAAK,EAAE;AAC3D,WAAAA;AAAA,EACT;AAEM,eAAO,YAAYA,QAAOhQ,OAAM;AAClC,OAAC,OAAO,IAAI,GAAG;AACT,iBAAK,0CAA0CgQ,MAAK,EAAE;AACvD,WAAAA;AAAA,EACT;AAEA,MAAI5U,SAAQ,WAAW;AACrB,SAAK,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,IAAIA,SAAQ,YAAY,GAAK,CAAC;AAAA,EACxE;AAEA,MAAIA,SAAQ,SAAS;AACd,aAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGA,SAAQ,OAAO,CAAC;AAAA,EACnD;AAEO,iBAAQ,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC;AAC1D,GA3B8B;AA6BvB,MAAM,cAGC6oB,cAAA;AAAA,EACZ;AAAA,EACA,CAACjU,QAAe5U,aACd,GAAG4U,MAAK,IAAI,KAAK,UAAU5U,QAAO,CAAC;AACvC;AC5JA,MAAM,QAAQ;AAAA,EACZ,GAAG,wBAAC,MAAM,EAAE,QAAQ,GAAjB;AAAA,EACH,GAAG,wBAAC,MAAM,EAAE,SAAa,OAAtB;AAAA,EACH,GAAG,wBAAC,MAAM,EAAE,SAAS,GAAlB;AAAA,EACH,GAAG,wBAAC,MAAM,EAAE,WAAW,GAApB;AAAA,EACH,GAAG,wBAAC,MAAM,EAAE,WAAW,GAApB;AACL;AACA,MAAM4E,WACJ,OAAO,KAAK,KAAK,EACd,IAAI,CAAC,MAAM,IAAI,IAAI,GAAG,EACtB,KAAK,GAAG,IAAI;AAEjB,SAAS,WAAW,MAAc,MAAY;AACrC,cAAK,QAAQ,IAAI,OAAOA,UAAQ,GAAG,GAAG,CAACkkB,UAAyB;AACjEA,kBAAS,KAAc,cAAK,gBAAgB,IAAI,UAAU,CAAC;AAC/D,QAAIA,UAAS,OAAQ,QAAO,KAAK,cAAc;AAC3CA,cAAK,CAAC,KAAK,OAAO;AACpB,YAAM/nB,KAAI,MAAM+nB,MAAK,CAAC,CAAC,EAAE,IAAI;AAC7B,cAAQ/nB,KAAI,IAAI,SAAS+nB,MAAK,QAAQ,GAAG;AAAA,IAC3C;AACOA;AAAAA,EAAA,CACR;AACH;AAVS;AAYF,SAAStiB,QAAM,KAAU;AAC1B;AACE,eAAO,oBAAoB,aAAa;AAC1C,aAAO,gBAAgB,GAAG;AAAA,IAC5B;AAAA,WACO,OAAO;AAAA,EAEhB;AAEA,SAAO,KAAK,MAAM,KAAK,UAAU,GAAG,CAAC;AACvC;AAVgBA;AAYA,+BAAsBnF,MAAe9C,QAAuB;AAC1E,SAAOA,OAAM,QAAQ,cAAc,SAAU,OAAO,MAAM;AAClD,kBAAQ,KAAK,MAAM,GAAG;AACxB,cAAM,WAAW,GAAG;AAEtB,UAAI,MAAM,CAAC,EAAE,WAAW,OAAO,GAAG;AACzB,0BAAW,MAAM,CAAC,EAAE,UAAU,CAAC,GAAO,0BAAM;AAAA,MACrD;AAEI,mBAAS,WAAW,SAAS,UAAU;AAEjC,qBAAK,+BAA+B,IAAI;AAAA,MAClD;AACO;AAAA,IACT;AAGI,gBAAQ8C,KAAI,MAAM,MAAM;AAAA,MAC1B,CAAC,MAAM,EAAE,aAAa,mBAAmB,MAAM,MAAM,CAAC;AAAA;AAGpD,SAAC,MAAM,QAAQ;AACT,cAAAA,KAAI,MAAM,MAAM,OAAO,CAAC,MAAM,EAAE,UAAU,MAAM,CAAC,CAAC;AAAA,IAC5D;AACI,SAAC,MAAM,QAAQ;AACjB,cAAQ,KAAK,uBAAuB,MAAM,CAAC,CAAC;AACrC;AAAA,IACT;AAEI,cAAM,SAAS,GAAG;AACpB,cAAQ,KAAK,0BAA0B,MAAM,CAAC,GAAG,mBAAmB;AAAA,IACtE;AAEM,UAAAuB,QAAO,MAAM,CAAC;AAEd,UAAA2S,UAAS3S,MAAK,SAAS,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,CAAC,CAAC;AAC5D,QAAI,CAAC2S,SAAQ;AACH,mBAAK,yBAAyB,MAAM,CAAC,GAAG,WAAW,MAAM,CAAC,GAAG3S,KAAI;AAClE;AAAA,IACT;AAEA,aAAS2S,QAAO,SAAS,MAAM,IAAI,WAAW,UAAU,GAAG;AAAA,GAC5D;AACH;AA3CgB;AA6CM,6BACpB,WACA,YACe;AACf,SAAO,IAAI,QAAQ,CAAC,KAAK,QAAQ;AAC3B;AACA,kBAAU,SAAS,KAAK,GAAG;AAC7B,YAAM,UAAU,OAAO,GAAG,UAAU,SAAS,CAAC,IAAI;AAAA,WAC7C;AACL,YAAM,IAAI;AAAA,QACR;AAAA,QACA,cAAc,GAAG,OAAO,SAAS,QAAQ,KAAK,OAAO,SAAS,IAAI;AAAA,QAClE,SAAS;AAAA,IACb;AACA,QAAI,QAAQ;AAAA,MACV,QAAQ,SAAS;AAAA,MACjB,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS;AAAA,KACV;AAAA,GACF;AACH;AAvBsB;AA6BN,sBAAa,UAAU,MAAM;AACrC,cAAM,IAAI,gBAAgB,IAAI;AAC9B,YAAI,IAAI,KAAK;AAAA,IACjB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO,EAAE,SAAS,OAAO;AAAA,IACzB,QAAQ,SAAS;AAAA,GAClB;AACD,IAAE,MAAM;AACR,aAAW,WAAY;AACrB,MAAE,OAAO;AACF,eAAI,gBAAgB,GAAG;AAAA,KAC7B,CAAC;AACN;AAbgB;AAeT,SAAS,KACd,QACA,MACA,cACA,WAMG;AACC;AACG,wBAAe,QAAQ,MAAM;AAAA,IAClC,MAAM;AACG;AAAA,IACT;AAAA,IACA,IAAItV,WAAU;AACZ,YAAM,YAAY;AACH,qBAAAA;AACH,gCAAc,WAAW,QAAQ,IAAI;AAAA,IACnD;AAAA,GACD;AACM;AACT;AAvBgB;AAyBT,SAAS,gBAAgBgB,KAAY;AACpC,mBAAW,IAAI,YAAY,IAAI;AAElC,sBAAY,eAAe,QAAQ,GAAGA,GAAE,IAAI,QAAQ,EAAE,MACvD,aAAa,QAAQA,GAAE;AAE3B;AANgB;AAQA,yBAAgBA,KAAY1C,QAAe;AACnD,mBAAW,IAAI,YAAY,IAAI;AACrC,MAAI,UAAU;AACZ,mBAAe,QAAQ,GAAG0C,GAAE,IAAI,QAAQ,IAAI1C,MAAK;AAAA,EACnD;AACa,uBAAQ0C,KAAI1C,MAAK;AAChC;AANgB;;;;;;;;;;AC/JT,MAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAC5B,UAAU,IAAI,0BAA0B;AAAA,EACxC;AAAA,EAEA,eAAe,SAAwC;AAChD,mBAAU,KAAK,MAAM,WAAW,SAAS,MAAM,KAAK,QAAQ;AAAA,EACnE;AAAA,EAEA,OAAO,QAAqBiB,QAAe;AACzC,SAAK,QAAQ,OAAOA,QAAO,GAAG,MAAM;AACpC,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,OAAO,QAAqB;AACrB,iBAAQ,KAAK,MAAM;AACxB,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,OAAO,eAAqC;AACtC,eAAO,kBAAkB,UAAU;AACrB,2BAAK,QAAQ,QAAQ,aAAa;AAAA,IACpD;AACA,QAAI,gBAAgB,IAAI;AACtB,YAAM,IAAI,KAAK,QAAQ,OAAO,eAAe,CAAC;AAC9C,WAAK,OAAO;AACL;AAAA,IACT;AAAA,EACF;AAAA,EAEA,SAAS;AACP,SAAK,QAAQ,gBAAgB,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC;AAAA,EAC5E;AACF;;;;AClCgB,sBACd,SACA,cACG,iBACH;AACc;AAEV;AACA,aAAO,cAAc,UAAU;AAC3B;AAAA,aACG,qBAAqB,OAAO;AAC/B,oBAAU,KAAK,GAAG;AAAA,SACnB;AACL,UAAM,OAAO,QAAQ,SAAS,EAAE,OAAO,CAACuB,IAAG,MAAM;AAC3C,YAAE,CAAC,GAAG;AACR,QAAAA,OAAMA,GAAE,SAAS,MAAM,MAAM,EAAE,CAAC;AAAA,MAClC;AACO,aAAAA;AAAA,OACN,EAAE;AAAA,EACP;AACA,UAAQ,YAAY;AACpB,MAAI,iBAAiB;AACX,sBAAU,IAAI,GAAG,eAAe;AAAA,EAC1C;AACF;AAxBgB;AA0BT,SAAS,cACd,SACA;AAAA,EACE,QAAAgoB;AAAA,EACA;AACF,IAGI,IACJ;AACI;AACA;AACJ,SAAO,CAACxqB,WAAU;AAChB,QAAIA,QAAO;AACT,UAAI,QAAQ;AACD;AACT,oBAAY,YAAY,OAAO;AAAA,MACjC;AACA,eAAS,SAASA,MAAK;AAAA,WAClB;AACL,UAAI,CAAC,aAAa;AACF,+BAAS,cAAc,EAAE;AAAA,MACzC;AACS;AACT,cAAQ,YAAY,WAAW;AAC/B,MAAAwqB,UAAS,OAAO;AAAA,IAClB;AAAA;AAEJ;AA5BgB;;;;;ACPT,MAAM,YAAmD;AAAA;AAAA;AAAA;AAAA,EAC9D,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAS;AAAA,EACT,cAAc,IAAI,OAAO;AAAA,EACzB,iBAAiB,IAAI,MAAM;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY;AAAA,IACV,MAAA7K;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAAxZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,KAAArD;AAAA,IACA,UAAU;AAAA,KACS;AACnB,SAAK,UAAU;AAAA,MACb;AAAA,MACA;AAAA,QACE,cAAc,6BAAM;AAClB,eAAK,SAAS;AACd,cAAI,KAAK,UAAU;AACjB,iBAAK,WAAW;AAAA,UAClB;AAAA,QACF,GALc;AAAA,QAMd,cAAc,6BAAM;AAClB,eAAK,SAAS;AACd,cAAI,KAAK,UAAU;AACjB,iBAAK,WAAW;AAAA,UAClB;AAAA,QACF,GALc;AAAA,MAMhB;AAAA,MACA,CAAC,KAAK,aAAa,KAAK,cAAc;AAAA;AAGxC,SAAK,OAAO;AAAA,MACV;AAAA,MACA;AAAA,MACA6c;AAAA,MACA,cAAc,KAAK,aAAa,EAAE,QAAQ,KAAK,YAAY;AAAA;AAE7D,SAAK,WAAW,KAAK,MAAM,YAAY,UAAU,MAAM;AACrD,UAAI,KAAK,QAAQ;AACf,aAAK,WAAW;AAAA,MAClB;AAAA,KACD;AACD,SAAK,WAAW,KAAK,MAAM,YAAY,UAAU,KAAK,UAAU;AAChE,SAAK,UAAU;AAAA,MACb;AAAA,MACA;AAAA,MACAxZ;AAAA,MACA,cAAc,KAAK,gBAAgB;AAAA,QACjC,QAAQ,wBAAC,IAAI/E,OAAM;AACb,qBAAOA,OAAM,UAAU;AACzB,eAAG,cAAcA;AAAA,iBACZ;AACL,eAAG,gBAAgBA,EAAC;AAAA,UACtB;AAAA,QACF,GANQ;AAAA,MAMR,CACD;AAAA;AAGH,SAAK,UAAU,KAAK,MAAM,WAAW,SAAS,CAACA,OAAM;AACnD,UAAIA,IAAG;AACL,aAAK,QAAQ,QAAQA;AAAA,aAChB;AACA,qBAAQ,gBAAgB,OAAO;AAAA,MACtC;AAAA,KACD;AACD,QAAI,YAAY,QAAW;AACpB,mBAAQ,aAAa,cAAc,OAAO;AAAA,IACjD;AACA,SAAK,YAAY,KAAK,MAAM,aAAa,WAAW,KAAK,aAAa;AACtE,SAAK,SAAS,KAAK,MAAM,UAAU,OAAO,KAAK,aAAa;AAC5D,SAAK,UAAU,KAAK,MAAM,WAAW,SAAS,MAAM;AAClD,WAAK,cAAc;AACjB,WAAK,QAA8B,WAAW,CAAC,KAAK;AAAA,KACvD;AACD,SAAK,SAAS,KAAK,MAAM,UAAU,MAAM;AACzC,SAAK,QAAQ,iBAAiB,SAAS,CAACyB,OAAM;AAC5C,UAAI,KAAK,OAAO;AAEV,aAAC,KAAK,OAAO;AACf,eAAK,MAAM;QACb;AAAA,MACF;AACK,oBAASA,IAAG,IAAI;AAAA,KACtB;AAED,QAAI,mBAAmB,IAAI;AACzB,YAAM,iBAAiB,6BAAM;AACtB,sBACHC,KAAI,GAAG,SAAS,gBAAgB,kBAAkB,EAAE,MACpD,kBAAkB;AAAA,SAHC;AAKvB,MAAAA,KAAI,GAAG,SAAS;AAAA,QACd,kBAAkB,KAAK;AAAA,QACvB;AAAA;AAEa;IACjB;AAAA,EACF;AAAA,EAEA,aAAa,6BACV,KAAK,YAAY,YAAY,WAAY,KAAK,UAAU,KAAK,YAAa,KAAK,IAAI,GAAG,KAAK,WAAW,UAAU,KAAK,WAAW,OAAO,EAAE,IAD/H;AAAA,EAEb,gBAAgB,6BAAM;AACpB,UAAM,kBAAkB;AACxB,QAAI,KAAK,QAAQ;AACf,sBAAgB,KAAK,QAAQ;AAAA,IAC/B;AACI,SAAC,KAAK,SAAS;AACjB,sBAAgB,KAAK,UAAU;AAAA,IACjC;AACA,QAAI,KAAK,OAAO;AACd,UAAI,KAAK,YAAY;AACnB,wBAAgB,KAAK,YAAY;AAAA,aAC5B;AACL,wBAAgB,KAAK,cAAc;AAAA,MACrC;AAAA,IACF;AACA,iBAAa,KAAK,SAAS,KAAK,WAAW,GAAG,eAAe;AAAA,KAf/C;AAAA,EAkBhB,UAAU,OAAmBgE,QAA0B,SAAS;AAC9D,SAAK,QAAQ;AAEb,QAAIA,UAAS,SAAS;AACpB,iBAAW,MAAM,CAAC,KAAK,SAAS,KAAK,MAAM,OAAO,GAAG;AAChD,4BAAiB,cAAc,MAAM;AACtC,eAAK,MAAM,OAAO,CAAC,CAAC,EAAE,KAAK;AAAA,SAC5B;AACE,4BAAiB,cAAc,MAAM;AACtC,eAAK,MAAM,OAAO,CAAC,CAAC,EAAE,KAAK;AAAA,SAC5B;AAAA,MACH;AAAA,IACF;AAEM,2BAAiB,UAAU,MAAM;AACrC,WAAK,aAAa,MAAM;AACxB,WAAK,cAAc;AAAA,KACpB;AAEM;AAAA,EACT;AACF;;;;AC/KO,MAAM,mBAAmB,YAAY;AAAA;AAAA;AAAA;AAAA,EAC1C,UAAU,IAAI,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YACE;AAAA,IACE;AAAA,IACA,YAAY,SAAS;AAAA,IACrB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,eAAA2jB,iBAAgB;AAAA,IAChB,UAAA5e,YAAW;AAAA,IACX,YAAAmK,cAAa;AAAA,QAUZ,UACH;AACM;AACN,SAAK,SAAS;AACd,SAAK,eAAe;AACpB,SAAK,YAAY;AACjB,SAAK,WAAWnK;AAChB,SAAK,gBAAgB4e;AACrB,SAAK,aAAazU;AAER,qBAAO,KAAK,OAAO;AAE7B,SAAK,WAAW,KAAK,MAAM,YAAY,UAAU,MAAM;AACrD,WAAK,QAAQ,gBAAgB,GAAG,KAAK,QAAQ;AAC7C,WAAK,OAAO;AAAA,KACb;AACD,SAAK,YAAY;AAAA,MAAK;AAAA,MAAM;AAAA,MAAa;AAAA,MAAW,MAClD,aAAa,KAAK,SAAS,KAAK,WAAW,iBAAiBA,WAAU;AAAA;AAExE,SAAK,OAAO,KAAK,MAAM,QAAQ,OAAO,CAAC5U,IAAG,MAAM;AAC9C,UAAIA,OAAM,EAAG;AACb,UAAIA,IAAG;AACL,aAAK,MAAM;AAAA,aACN;AACL,aAAK,MAAM;AAAA,MACb;AAAA,KACD;AAAA,EACH;AAAA,EAEA,SAAS;AACF,gBAAO,CAAC,KAAK;AAAA,EACpB;AAAA,EAEA,QAAQ;AACD,iBAAQ,UAAU,OAAO,MAAM;AAC7B,+BAAoB,UAAU,KAAK,MAAM;AAChD,WAAO,oBAAoB,SAAS,KAAK,eAAe,EAAE,SAAS,MAAM;AACzE,WAAO,oBAAoB,WAAW,KAAK,aAAa,EAAE,SAAS,MAAM;AAEzE,SAAK,cAAc,IAAI,YAAY,OAAO,CAAC;AAC3C,SAAK,cAAc,IAAI,YAAY,QAAQ,CAAC;AAAA,EAC9C;AAAA,EAEA,QAAQ;AACD,iBAAQ,UAAU,IAAI,MAAM;AACjC,SAAK,OAAO;AAEL,4BAAiB,UAAU,KAAK,MAAM;AAC7C,WAAO,iBAAiB,SAAS,KAAK,eAAe,EAAE,SAAS,MAAM;AACtE,QAAI,KAAK,eAAe;AACtB,aAAO,iBAAiB,WAAW,KAAK,aAAa,EAAE,SAAS,MAAM;AAAA,IACxE;AAEA,SAAK,cAAc,IAAI,YAAY,MAAM,CAAC;AAC1C,SAAK,cAAc,IAAI,YAAY,QAAQ,CAAC;AAAA,EAC9C;AAAA,EAEA,cAAc,wBAACyB,OAAM;AACf,QAAAA,GAAE,QAAQ,UAAU;AACtB,WAAK,OAAO;AACZ,MAAAA,GAAE,eAAe;AACjB,MAAAA,GAAE,yBAAyB;AAAA,IAC7B;AAAA,KALY;AAAA,EAQd,gBAAgB,wBAACA,OAAM;AAErB,UAAM,SAASA,GAAE;AACjB,QACE,CAAC,KAAK,QAAQ,SAAS,MAAM,KAC7B,KAAK,gBACL,CAAC,KAAK,OAAO,SAAS,MAAM,GAC5B;AACA,WAAK,OAAO;AAAA,IACd;AAAA,KATc;AAAA,EAYhB,SAAS,6BAAM;AACP,iBAAO,KAAK,OAAO,sBAAsB;AAC/C,SAAK,QAAQ,MAAM,YAAY,YAAY,OAAO;AAC9C,aAAK,aAAa,YAAY;AAC5B,eAAK,eAAe,QAAQ;AAC9B,aAAK,QAAQ,MAAM,YAAY,UAAU,KAAK,OAAO,IAAI;AAAA,aACpD;AACL,aAAK,QAAQ,MAAM;AAAA,UACjB;AAAA,UACA,KAAK,QAAQ,KAAK,QAAQ,cAAc;AAAA;AAAA,MAE5C;AACA,WAAK,QAAQ,MAAM,YAAY,SAAS,KAAK,SAAS,IAAI;AAC1D,WAAK,QAAQ,MAAM,YAAY,WAAW,KAAK,SAAS,IAAI;AAAA,WACvD;AACL,WAAK,QAAQ,MAAM,YAAY,UAAU,KAAQ;AACjD,WAAK,QAAQ,MAAM,YAAY,SAAS,KAAK,SAAS,IAAI;AAC1D,WAAK,QAAQ,MAAM,YAAY,WAAW,KAAK,SAAS,IAAI;AAAA,IAC9D;AAEM,qBAAW,KAAK,QAAQ,sBAAsB;AAChD,iBAAS,SAAS,IAAI;AAExB,WAAK,QAAQ,MAAM,YAAY,SAAS,OAAO;AAC/C,WAAK,QAAQ,MAAM,YAAY,YAAY,KAAK,SAAS,IAAI,IAAI;AACjE,WAAK,QAAQ,MAAM,YAAY,WAAW,KAAK,SAAS,IAAI,IAAI;AAAA,IAClE;AAAA,KA1BO;AA4BX;;;;ACvIO,MAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YACE;AAAA,IACE;AAAA,IACA,MAAAiE;AAAA,IACA,YAAAkP,cAAa;AAAA,IACb,UAAAnK,YAAW;AAAA,QAOV/B,QACH;AACK,iBAAQ,IAAI,YAAY;AAAA,MAC3B,MAAM;AAAA,KACP;AACD,SAAK,UAAU;AAAA,MACb,8BAA8BhD,UAAS,UAAU,WAAW;AAAA,MAC5D;AAAA,QACE;AAAA,UACE;AAAA,UACA;AAAA,YACE,WAAW;AAAA,UACb;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA,YACE,WAAW;AAAA,YACX,cAAc;AAAA,UAChB;AAAA,UACA,KAAK,MAAM;AAAA,QACb;AAAA,MACF;AAAA;AAEG,iBAAQ,IAAI,WAAW;AAAA,MAC1B,QAAQ,KAAK;AAAA,MACb,WAAW+E,cAAa,aAAa,KAAK,UAAU,SAAS;AAAA,MAC7D,WACE,gCAAgC/E,UAAS,UAAU,WAAW;AAAA,MAChE,eAAeA,UAAS;AAAA,MACxB,UAAA+E;AAAA,MACA,YAAAmK;AAAA,KACD;AAED,SAAK,MAAM,UAAU,KAAK,OAAOlP,KAAI;AAEhC,iBAAQ,KAAK,MAAM,SAASgD,QAAO,MAAM,KAAK,QAAQ;AAAA,EAC7D;AAAA,EAEA,SAAS;AACP,SAAK,MAAM,QAAQ;AAAA,MACjB,GAAG,KAAK,MAAM,IAAI,CAAC,MAAO,aAAa,IAAI,EAAE,UAAU,CAAE;AAAA;AAAA,EAE7D;AACF;;;;AChEO,MAAM,yBAAyBqN,cAA+B;AAAA;AAAA;AAAA;AAAA,EACnE;AAAA,EAEA,YAAY,SAAyD;AACnE;AAAA,MACE;AAAA,MACA,SAAS,IAAI,CAAC,QAAQ;AAChB,mBAAO,QAAQ,UAAU;AACrB,kBAAE,MAAM;QAChB;AACA,eAAO,IAAI,yBAAyB;AAAA,UAClC,MAAM;AAAA,UACN,aAAa,IAAI;AAAA,UACjB,SAAS,6BAAM,KAAK,MAAM,IAAI,SAAS,IAAI,IAAI,GAAtC;AAAA,QAAsC,CAChD;AAAA,OACF;AAAA;AAAA,EAEL;AAAA,EAEA,KAAK,MAA4C;AAC1C,iBAAQ,iBAAiB,SAAS,MAAM;AAC3C,WAAK,MAAM;AAAA,KACZ;AAED,UAAM,KAAK,IAAI;AAER,eAAI,QAAQ,CAACnT,aAAY;AAC9B,WAAK,WAAWA;AAAA,KACjB;AAAA,EACH;AAAA,EAEA,UAAU,MAA4C;AAC/C,iBAAQ,iBAAiB,SAAS,MAAM;AAC3C,WAAK,MAAM;AAAA,KACZ;AAED,UAAM,KAAK,IAAI;AACf,SAAK,QAAQ;AAEN,eAAI,QAAQ,CAACA,aAAY;AAC9B,WAAK,WAAWA;AAAA,KACjB;AAAA,EACH;AAAA,EAEA,MAAM,SAAS,MAAM;AACnB,SAAK,SAAS,MAAM;AACpB,SAAK,QAAQ;AACb,UAAM,MAAM;AAAA,EACd;AAAA,EAEA,aAAa,OAAO;AAAA,IAClB,QAAQ;AAAA,IACR,SAAA6B;AAAA,IACA;AAAA,KAKC;AACK,mBAAS,IAAI,iBAAiB,OAAO;AAC3C,UAAMM,WAAU,CAAC,IAAI,QAAQN,QAAO,CAAC;AACrC,QAAI,OAAO;AACT,MAAAM,SAAQ,QAAQ,IAAI,MAAM,KAAK,CAAC;AAAA,IAClC;AACA,UAAM,MAAM,MAAM,OAAO,UAAUA,QAAO;AAC1C,WAAO,QAAQ;AACR;AAAA,EACT;AACF;;;;AC3CA,IAAI,SAAS;AAAA,EACX,QAAQ,SAAS;AAAA,EACjB,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaf,CAAC;AAEM,MAAM,sBAAsB,YAAY;AAAA;AAAA;AAAA;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,QAAQ;AAAA,EACR;AAAA,EACA,cAAc;AAAA,EACd,MAAM;AAAA,EACN,UAAU;AAAA,EAEV,YAAY,SAAS,cAAc;AAC3B;AACN,SAAK,gBAAgB;AACrB,SAAK,eAAe;AAEhB,SAAC,KAAK,cAAe;AAEpB,aAAI,KAAK,KAAK,GAAG,KAAK,eAAe,aAAa,KAAK,SAAS,CAAC;AACjE,aAAI,KAAK,KAAK,GAAG,KAAK,eAAe,cAAc,KAAK,SAAS,CAAC;AAClE,aAAI,KAAK,KAAK,GAAG,UAAU,WAAW,KAAK,OAAO,CAAC;AACnD,aAAI,KAAK,KAAK,GAAG,UAAU,YAAY,KAAK,OAAO,CAAC;AAAA,EAC3D;AAAA,EAEA,cAAc;AACR,SAAC,KAAK,OAAO,QAAQ;AACvB,WAAK,QAAQ,MAAM;AAAA,QACjB,KAAK,cAAc,iBAAiB,KAAK,YAAY;AAAA;AAElD,iBAAM,QAAQ,CAAC,YAAY;AACtB,0BAAU,IAAI,SAAS;AAAA,OAChC;AAAA,IACH;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,eAAe;AACN,gBAAK,cAAc;AAAA,MAAO,CAACpF,UAChCA,MAAK,UAAU,SAAS,SAAS;AAAA;AAAA,EAErC;AAAA,EAEA,YAAYA,OAAM;AACT,WAAAA,MAAK,aAAa,eAAe;AAAA,EAC1C;AAAA,EAEA,cAAcA,OAAM;AACX,WAAAA,MAAK,aAAa,iBAAiB;AAAA,EAC5C;AAAA,EAEA,GAAG,QAAQ,OAAO,UAAUU,UAAU;AACzB,wBAAS,KAAK,IAAI;AACtB,4BAAiB,OAAO,UAAUA,QAAO;AAChD,WAAO,MAAM,OAAO,oBAAoB,OAAO,QAAQ;AAAA,EACzD;AAAA,EAEA,UAAUoB,IAAG;AACX,QAAIA,GAAE,OAAO,UAAU,SAAS,KAAK,WAAW,GAAG;AACjD,WAAK,gBAAgBA,GAAE,OAAO,QAAQ,KAAK,YAAY;AAAA,IACzD;AAEI,SAAC,KAAK,cAAe;AAEzB,SAAK,gBAAgBA,GAAE,WAAWA,GAAE,QAAQ,CAAC,EAAE;AAC/C,SAAK,gBAAgBA,GAAE,WAAWA,GAAE,QAAQ,CAAC,EAAE;AAC/C,SAAK,aACH,KAAK,cAAc,eAAe,KAAK,cAAc;AAEvD,SAAK,YAAY;AACjB,SAAK,kBAAkB;AACvB,SAAK,eAAe;AAEf,iBAAQ,KAAK,KAAK,GAAG,UAAU,aAAa,KAAK,IAAI,CAAC;AAC3D,SAAK,QAAQ;AAAA,MACX,KAAK,GAAG,UAAU,aAAa,KAAK,MAAM,EAAE,SAAS,OAAO;AAAA;AAGzD;AAAA,MACH,IAAI,YAAY,aAAa;AAAA,QAC3B,QAAQ;AAAA,UACN,SAAS,KAAK;AAAA,UACd,UAAU,KAAK,cAAc,QAAQ,KAAK,aAAa;AAAA,QACzD;AAAA,OACD;AAAA;AAAA,EAEL;AAAA,EAEA,cAAc;AACZ,QAAI,KAAK,eAAe,UAAU,GAAG;AACnC,WAAK,WAAW;AAChB;AAAA,IACF;AAEA,UAAM,QAAQ,KAAK,aAAa,EAAE,CAAC;AACnC,UAAM,QAAQ,KAAK,aAAa,EAAE,CAAC;AAE7B,sBAAY,MAAM;AAClB,sBAAY,MAAM;AAExB,SAAK,WAAW,KAAK,IAAI,UAAU,SAAS,UAAU,GAAG;AAAA,EAC3D;AAAA,EAEA,iBAAiB;AACf,SAAK,aAAa,EAAE,QAAQ,CAAC9B,OAAM,MAAM;AACvC,UAAI,KAAK,cAAc,QAAQ,KAAK,aAAa,IAAI,GAAG;AACtD,QAAAA,MAAK,QAAQ,UAAU;AAAA,MACzB;AAAA,KACD;AAAA,EACH;AAAA,EAEA,oBAAoB;AACb,uBAAc,UAAU,OAAO,SAAS;AACxC,uBAAc,UAAU,IAAI,cAAc;AAAA,EACjD;AAAA,EAEA,KAAK8B,IAAG;AACF,SAAC,KAAK,cAAe;AAEzB,IAAAA,GAAE,eAAe;AAEjB,UAAM,UAAUA,GAAE,WAAWA,GAAE,QAAQ,CAAC,EAAE;AAC1C,UAAM,UAAUA,GAAE,WAAWA,GAAE,QAAQ,CAAC,EAAE;AAEpC,qBAAW,KAAK,cAAc,sBAAsB;AAEtD,kBAAU,SAAS,QAAQ;AAC7B,UAAI,KAAK,cAAc,YAAY,KAAK,YAAY;AAC7C,2BAAc,SAAS,GAAG,EAAE;AACjC,aAAK,iBAAiB;AAAA,MACxB;AAAA,eACS,UAAU,SAAS,OAAO,KAAK,cAAc,YAAY,GAAG;AACrE,WAAK,iBAAiB;AACjB,yBAAc,SAAS,GAAG,GAAG;AAAA,IACpC;AAEM,2BAAiB,UAAU,KAAK;AAChC,2BAAiB,UAAU,KAAK;AAEtC,SAAK,gCAAgC;AACrC,SAAK,cAAc,MAAM,YAAY,aAAa,cAAc,OAAO,cAAc;AAAA,EACvF;AAAA,EAEA,kCAAkC;AAC1B,8BAAoB,KAAK,cAAc,sBAAsB;AACnE,UAAM,iBAAiB,kBAAkB,MAAM,kBAAkB,SAAS;AAG1E,SAAK,aAAa,EAAE,QAAQ,CAAC9B,UAAS;AAC9B,uBAAWA,MAAK;AACtB,YAAM,QAAQ,SAAS,MAAM,SAAS,SAAS;AAC3C,eAAK,YAAYA,KAAI,GAAG;AAC1B,YAAI,kBAAkB,OAAO;AAC3B,UAAAA,MAAK,QAAQ,YAAY;AAAA,eACpB;AACL,iBAAOA,MAAK,QAAQ;AAAA,QACtB;AAAA,aACK;AACL,YAAI,kBAAkB,OAAO;AAC3B,UAAAA,MAAK,QAAQ,YAAY;AAAA,eACpB;AACL,iBAAOA,MAAK,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,KACD;AAGD,SAAK,aAAa,EAAE,QAAQ,CAACA,UAAS;AAChC,eAAK,cAAcA,KAAI,GAAG;AAC5B,cAAM,YAAY,KAAK,YAAYA,KAAI,IAAI,IAAI;AAC/C,QAAAA,MAAK,MAAM,YAAY,cAAc,aAAa,kBAAkB,SAAS,KAAK,SAAS;AAAA,aACtF;AACL,QAAAA,MAAK,MAAM,YAAY;AAAA,MACzB;AAAA,KACD;AAAA,EACH;AAAA,EAEA,UAAU;AACJ,SAAC,KAAK,cAAe;AAEzB,SAAK,mBAAmB;AACxB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,qBAAqB;AACnB,UAAM,iBAAiB;AAEvB,QAAI,cAAc;AAClB,SAAK,YAAY,EAAE,QAAQ,CAACA,OAAME,WAAU;AACtC,UAAAF,UAAS,KAAK,eAAe;AACjB,sBAAAE;AACd;AAAA,MACF;AACA,UAAI,CAAC,KAAK,cAAcF,KAAI,GAAG;AAC7B,uBAAeE,MAAK,IAAIF;AACxB;AAAA,MACF;AACA,YAAM,WAAW,KAAK,YAAYA,KAAI,IAAIE,SAAQ,IAAIA,SAAQ;AAC9D,qBAAe,QAAQ,IAAIF;AAAA,KAC5B;AAED,aAASE,SAAQ,GAAGA,SAAQ,KAAK,YAAY,EAAE,QAAQA,UAAS;AACxD,YAAAF,QAAO,eAAeE,MAAK;AAC7B,iBAAOF,UAAS,aAAa;AAChB,uBAAAE,MAAK,IAAI,KAAK;AAAA,MAC/B;AAAA,IACF;AAEe,2BAAQ,CAACF,UAAS;AAC1B,yBAAc,YAAYA,KAAI;AAAA,KACpC;AAED,SAAK,QAAQ;AAER;AAAA,MACH,IAAI,YAAY,WAAW;AAAA,QACzB,QAAQ;AAAA,UACN,SAAS,KAAK;AAAA,UACd;AAAA,UACA,aAAa,eAAe,QAAQ,KAAK,aAAa;AAAA,QACxD;AAAA,OACD;AAAA;AAAA,EAEL;AAAA,EAEA,UAAU;AACR,SAAK,WAAW;AAChB,SAAK,QAAQ;AACb,SAAK,mBAAmB;AACxB,SAAK,eAAe;AAEpB,SAAK,QAAQ,QAAQ,CAAC,MAAM,EAAG;AAC/B,SAAK,UAAU;EACjB;AAAA,EAEA,qBAAqB;AACnB,SAAK,cAAc,QAAQ;AACtB,uBAAc,UAAU,OAAO,cAAc;AAC7C,uBAAc,UAAU,IAAI,SAAS;AAC1C,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,iBAAiB;AACf,SAAK,aAAa,EAAE,QAAQ,CAACA,OAAM,MAAM;AACvC,aAAOA,MAAK,QAAQ;AACpB,aAAOA,MAAK,QAAQ;AACpB,MAAAA,MAAK,MAAM,YAAY;AAAA,KACxB;AAAA,EACH;AAAA,EAEA,UAAU;AACR,SAAK,IAAI,QAAQ,CAAC,MAAM,EAAG;AAAA,EAC7B;AACF;;;;AC/RO,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY+B,MAAe;AACzB,SAAK,MAAMA;AAIN,wBAAe,IAAI;AACnB,yBAAgB,IAAI;AACpB,qBAAY,IAAI;AAEhB,mBAAU,IAAI,uBAAuB;AAAA,MACxC,KAAK,aAAa;AAAA,MAClB,KAAK,cAAc;AAAA,MACnB,KAAK,UAAU;AAAA,KAChB;AAAA,EACH;AACF;;;;AC1BA,SAASxD,UAAQU,QAAO;AACtB,SAAO,CAAC,MAAM,UACV,OAAOA,MAAK,MAAM,mBAClB,MAAM,QAAQA,MAAK;AACzB;AAJSV;AAOT,MAAM,WAAW,IAAI;AACrB,SAAS,aAAaU,QAAO;AAE3B,MAAI,OAAOA,UAAS,UAAU;AAC5B,WAAOA;AAAA,EACR;AACD,MAAI,SAASA,SAAQ;AACrB,SAAO,UAAU,OAAO,IAAIA,UAAS,CAAC,WAAW,OAAO;AAC1D;AAPS;AAST,SAAS,SAASA,QAAO;AACvB,SAAOA,UAAS,OAAO,KAAK,aAAaA,MAAK;AAChD;AAFS;AAIT,SAAS,SAASA,QAAO;AACvB,SAAO,OAAOA,WAAU;AAC1B;AAFS;AAIT,SAAS,SAASA,QAAO;AACvB,SAAO,OAAOA,WAAU;AAC1B;AAFS;AAKT,SAAS,UAAUA,QAAO;AACxB,SACEA,WAAU,QACVA,WAAU,SACT,aAAaA,MAAK,KAAK,OAAOA,MAAK,KAAK;AAE7C;AANS;AAQT,SAAS,SAASA,QAAO;AACvB,SAAO,OAAOA,WAAU;AAC1B;AAFS;AAKT,SAAS,aAAaA,QAAO;AAC3B,SAAO,SAASA,MAAK,KAAKA,WAAU;AACtC;AAFS;AAIT,SAAS,UAAUA,QAAO;AACxB,SAAOA,WAAU,UAAaA,WAAU;AAC1C;AAFS;AAIT,SAAS,QAAQA,QAAO;AACtB,SAAO,CAACA,OAAM,KAAI,EAAG;AACvB;AAFS;AAMT,SAAS,OAAOA,QAAO;AACrB,SAAOA,UAAS,OACZA,WAAU,SACR,uBACA,kBACF,OAAO,UAAU,SAAS,KAAKA,MAAK;AAC1C;AANS;AAQT,MAAM,8BAA8B;AAEpC,MAAM,uBAAuB;AAE7B,MAAM,uCAAuC,wBAAC,QAC5C,yBAAyB,GAAG,IADe;AAG7C,MAAM,2BAA2B,wBAAC,QAChC,iCAAiC,GAAG,KADL;AAGjC,MAAM,uBAAuB,wBAAC,SAAS,WAAW,IAAI,oBAAzB;AAE7B,MAAM,2BAA2B,wBAAC,QAChC,6BAA6B,GAAG,gCADD;AAGjC,MAAM,SAAS,OAAO,UAAU;AAEhC,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA,EACb,YAAYuC,OAAM;AAChB,SAAK,QAAQ;AACb,SAAK,UAAU;AAEf,QAAI,cAAc;AAElB,IAAAA,MAAK,QAAQ,CAAC,QAAQ;AACpB,UAAI,MAAM,UAAU,GAAG;AAEvB,WAAK,MAAM,KAAK,GAAG;AACnB,WAAK,QAAQ,IAAI,EAAE,IAAI;AAEvB,qBAAe,IAAI;AAAA,IACzB,CAAK;AAGD,SAAK,MAAM,QAAQ,CAAC,QAAQ;AAC1B,UAAI,UAAU;AAAA,IACpB,CAAK;AAAA,EACF;AAAA,EACD,IAAI,OAAO;AACT,WAAO,KAAK,QAAQ,KAAK;AAAA,EAC1B;AAAA,EACD,OAAO;AACL,WAAO,KAAK;AAAA,EACb;AAAA,EACD,SAAS;AACP,WAAO,KAAK,UAAU,KAAK,KAAK;AAAA,EACjC;AACH;AAEA,SAAS,UAAU,KAAK;AACtB,MAAI,OAAO;AACX,MAAIG,MAAK;AACT,MAAI,MAAM;AACV,MAAI,SAAS;AACb,MAAI,QAAQ;AAEZ,MAAI,SAAS,GAAG,KAAKpD,UAAQ,GAAG,GAAG;AACjC,UAAM;AACN,WAAO,cAAc,GAAG;AACxB,IAAAoD,MAAK,YAAY,GAAG;AAAA,EACxB,OAAS;AACL,QAAI,CAAC,OAAO,KAAK,KAAK,MAAM,GAAG;AAC7B,YAAM,IAAI,MAAM,qBAAqB,MAAM,CAAC;AAAA,IAC7C;AAED,UAAM,OAAO,IAAI;AACjB,UAAM;AAEN,QAAI,OAAO,KAAK,KAAK,QAAQ,GAAG;AAC9B,eAAS,IAAI;AAEb,UAAI,UAAU,GAAG;AACf,cAAM,IAAI,MAAM,yBAAyB,IAAI,CAAC;AAAA,MAC/C;AAAA,IACF;AAED,WAAO,cAAc,IAAI;AACzB,IAAAA,MAAK,YAAY,IAAI;AACrB,YAAQ,IAAI;AAAA,EACb;AAED,SAAO,EAAE,MAAM,IAAAA,KAAI,QAAQ,KAAK,MAAO;AACzC;AAjCS;AAmCT,SAAS,cAAc,KAAK;AAC1B,SAAOpD,UAAQ,GAAG,IAAI,MAAM,IAAI,MAAM,GAAG;AAC3C;AAFS;AAIT,SAAS,YAAY,KAAK;AACxB,SAAOA,UAAQ,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI;AACxC;AAFS;AAIT,SAASqC,MAAI,KAAK,MAAM;AACtB,MAAI,OAAO;AACX,MAAI,MAAM;AAEV,QAAM,UAAU,wBAAC+oB,MAAKC,OAAM1pB,WAAU;AACpC,QAAI,CAAC,UAAUypB,IAAG,GAAG;AACnB;AAAA,IACD;AACD,QAAI,CAACC,MAAK1pB,MAAK,GAAG;AAEhB,WAAK,KAAKypB,IAAG;AAAA,IACnB,OAAW;AACL,UAAI,MAAMC,MAAK1pB,MAAK;AAEpB,YAAMjB,SAAQ0qB,KAAI,GAAG;AAErB,UAAI,CAAC,UAAU1qB,MAAK,GAAG;AACrB;AAAA,MACD;AAID,UACEiB,WAAU0pB,MAAK,SAAS,MACvB,SAAS3qB,MAAK,KAAK,SAASA,MAAK,KAAK,UAAUA,MAAK,IACtD;AACA,aAAK,KAAK,SAASA,MAAK,CAAC;AAAA,MACjC,WAAiBV,UAAQU,MAAK,GAAG;AACzB,cAAM;AAEN,iBAAS,IAAI,GAAG,MAAMA,OAAM,QAAQ,IAAI,KAAK,KAAK,GAAG;AACnD,kBAAQA,OAAM,CAAC,GAAG2qB,OAAM1pB,SAAQ,CAAC;AAAA,QAClC;AAAA,MACT,WAAiB0pB,MAAK,QAAQ;AAEtB,gBAAQ3qB,QAAO2qB,OAAM1pB,SAAQ,CAAC;AAAA,MAC/B;AAAA,IACF;AAAA,EACL,GAlCkB;AAqChB,UAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC;AAEvD,SAAO,MAAM,OAAO,KAAK,CAAC;AAC5B;AA5CSU;AA8CT,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA,EAInB,gBAAgB;AAAA;AAAA;AAAA,EAGhB,gBAAgB;AAAA;AAAA,EAEhB,oBAAoB;AACtB;AAEA,MAAM,eAAe;AAAA;AAAA;AAAA,EAGnB,iBAAiB;AAAA;AAAA,EAEjB,cAAc;AAAA;AAAA,EAEd,MAAM,CAAE;AAAA;AAAA,EAER,YAAY;AAAA;AAAA,EAEZ,QAAQ,wBAAC,GAAG,MACV,EAAE,UAAU,EAAE,QAAS,EAAE,MAAM,EAAE,MAAM,KAAK,IAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,GADpE;AAEV;AAEA,MAAM,eAAe;AAAA;AAAA,EAEnB,UAAU;AAAA;AAAA;AAAA,EAGV,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMX,UAAU;AACZ;AAEA,MAAM,kBAAkB;AAAA;AAAA,EAEtB,mBAAmB;AAAA;AAAA;AAAA,EAGnB,OAAOA;AAAAA;AAAAA;AAAAA;AAAAA,EAIP,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAIhB,iBAAiB;AAAA;AAAA,EAEjB,iBAAiB;AACnB;AAEA,IAAI,SAAS;AAAA,EACX,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAEA,MAAM,QAAQ;AAId,SAAS,KAAK,SAAS,GAAG,WAAW,GAAG;AACtC,QAAMxB,SAAQ,oBAAI;AAClB,QAAM,IAAI,KAAK,IAAI,IAAI,QAAQ;AAE/B,SAAO;AAAA,IACL,IAAIH,QAAO;AACT,YAAM,YAAYA,OAAM,MAAM,KAAK,EAAE;AAErC,UAAIG,OAAM,IAAI,SAAS,GAAG;AACxB,eAAOA,OAAM,IAAI,SAAS;AAAA,MAC3B;AAGD,YAAMyqB,QAAO,IAAI,KAAK,IAAI,WAAW,MAAM,MAAM;AAGjD,YAAM,IAAI,WAAW,KAAK,MAAMA,QAAO,CAAC,IAAI,CAAC;AAE7C,MAAAzqB,OAAM,IAAI,WAAW,CAAC;AAEtB,aAAO;AAAA,IACR;AAAA,IACD,QAAQ;AACN,MAAAA,OAAM,MAAK;AAAA,IACZ;AAAA,EACF;AACH;AA1BS;AA4BT,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA,EACd,YAAY;AAAA,IACV,QAAQ,OAAO;AAAA,IACf,kBAAkB,OAAO;AAAA,EAC1B,IAAG,IAAI;AACN,SAAK,OAAO,KAAK,iBAAiB,CAAC;AACnC,SAAK,QAAQ;AACb,SAAK,YAAY;AAEjB,SAAK,gBAAe;AAAA,EACrB;AAAA,EACD,WAAW,OAAO,IAAI;AACpB,SAAK,OAAO;AAAA,EACb;AAAA,EACD,gBAAgB,UAAU,IAAI;AAC5B,SAAK,UAAU;AAAA,EAChB;AAAA,EACD,QAAQoC,QAAO,IAAI;AACjB,SAAK,OAAOA;AACZ,SAAK,WAAW;AAChB,IAAAA,MAAK,QAAQ,CAAC,KAAK,QAAQ;AACzB,WAAK,SAAS,IAAI,EAAE,IAAI;AAAA,IAC9B,CAAK;AAAA,EACF;AAAA,EACD,SAAS;AACP,QAAI,KAAK,aAAa,CAAC,KAAK,KAAK,QAAQ;AACvC;AAAA,IACD;AAED,SAAK,YAAY;AAGjB,QAAI,SAAS,KAAK,KAAK,CAAC,CAAC,GAAG;AAC1B,WAAK,KAAK,QAAQ,CAAC+T,MAAK,aAAa;AACnC,aAAK,WAAWA,MAAK,QAAQ;AAAA,MACrC,CAAO;AAAA,IACP,OAAW;AAEL,WAAK,KAAK,QAAQ,CAACA,MAAK,aAAa;AACnC,aAAK,WAAWA,MAAK,QAAQ;AAAA,MACrC,CAAO;AAAA,IACF;AAED,SAAK,KAAK;EACX;AAAA;AAAA,EAED,IAAIA,MAAK;AACP,UAAM,MAAM,KAAK;AAEjB,QAAI,SAASA,IAAG,GAAG;AACjB,WAAK,WAAWA,MAAK,GAAG;AAAA,IAC9B,OAAW;AACL,WAAK,WAAWA,MAAK,GAAG;AAAA,IACzB;AAAA,EACF;AAAA;AAAA,EAED,SAAS,KAAK;AACZ,SAAK,QAAQ,OAAO,KAAK,CAAC;AAG1B,aAAS,IAAI,KAAK,MAAM,KAAK,KAAM,GAAE,IAAI,KAAK,KAAK,GAAG;AACpD,WAAK,QAAQ,CAAC,EAAE,KAAK;AAAA,IACtB;AAAA,EACF;AAAA,EACD,uBAAuBvV,OAAM,OAAO;AAClC,WAAOA,MAAK,KAAK,SAAS,KAAK,CAAC;AAAA,EACjC;AAAA,EACD,OAAO;AACL,WAAO,KAAK,QAAQ;AAAA,EACrB;AAAA,EACD,WAAWuV,MAAK,UAAU;AACxB,QAAI,CAAC,UAAUA,IAAG,KAAK,QAAQA,IAAG,GAAG;AACnC;AAAA,IACD;AAED,QAAI,SAAS;AAAA,MACX,GAAGA;AAAA,MACH,GAAG;AAAA,MACH,GAAG,KAAK,KAAK,IAAIA,IAAG;AAAA,IAC1B;AAEI,SAAK,QAAQ,KAAK,MAAM;AAAA,EACzB;AAAA,EACD,WAAWA,MAAK,UAAU;AACxB,QAAI,SAAS,EAAE,GAAG,UAAU,GAAG,CAAE;AAGjC,SAAK,KAAK,QAAQ,CAAC,KAAK,aAAa;AACnC,UAAItW,SAAQ,IAAI,QAAQ,IAAI,MAAMsW,IAAG,IAAI,KAAK,MAAMA,MAAK,IAAI,IAAI;AAEjE,UAAI,CAAC,UAAUtW,MAAK,GAAG;AACrB;AAAA,MACD;AAED,UAAIV,UAAQU,MAAK,GAAG;AAClB,YAAI,aAAa;AACjB,cAAMgM,SAAQ,CAAC,EAAE,gBAAgB,IAAI,OAAAhM,OAAK,CAAE;AAE5C,eAAOgM,OAAM,QAAQ;AACnB,gBAAM,EAAE,gBAAgB,OAAAhM,OAAO,IAAGgM,OAAM,IAAG;AAE3C,cAAI,CAAC,UAAUhM,MAAK,GAAG;AACrB;AAAA,UACD;AAED,cAAI,SAASA,MAAK,KAAK,CAAC,QAAQA,MAAK,GAAG;AACtC,gBAAI,YAAY;AAAA,cACd,GAAGA;AAAA,cACH,GAAG;AAAA,cACH,GAAG,KAAK,KAAK,IAAIA,MAAK;AAAA,YACpC;AAEY,uBAAW,KAAK,SAAS;AAAA,UACrC,WAAqBV,UAAQU,MAAK,GAAG;AACzB,YAAAA,OAAM,QAAQ,CAACe,OAAM,MAAM;AACzB,cAAAiL,OAAM,KAAK;AAAA,gBACT,gBAAgB;AAAA,gBAChB,OAAOjL;AAAA,cACvB,CAAe;AAAA,YACf,CAAa;AAAA,UACb,MAAiB;AAAA,QACR;AACD,eAAO,EAAE,QAAQ,IAAI;AAAA,MAC7B,WAAiB,SAASf,MAAK,KAAK,CAAC,QAAQA,MAAK,GAAG;AAC7C,YAAI,YAAY;AAAA,UACd,GAAGA;AAAA,UACH,GAAG,KAAK,KAAK,IAAIA,MAAK;AAAA,QAChC;AAEQ,eAAO,EAAE,QAAQ,IAAI;AAAA,MACtB;AAAA,IACP,CAAK;AAED,SAAK,QAAQ,KAAK,MAAM;AAAA,EACzB;AAAA,EACD,SAAS;AACP,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,IACf;AAAA,EACF;AACH;AAEA,SAAS,YACPuC,OACA,MACA,EAAE,QAAQ,OAAO,OAAO,kBAAkB,OAAO,gBAAe,IAAK,CAAE,GACvE;AACA,QAAM,UAAU,IAAI,UAAU,EAAE,OAAO,gBAAiB;AACxD,UAAQ,QAAQA,MAAK,IAAI,SAAS,CAAC;AACnC,UAAQ,WAAW,IAAI;AACvB,UAAQ,OAAM;AACd,SAAO;AACT;AAVS;AAYT,SAAS,WACPqB,QACA,EAAE,QAAQ,OAAO,OAAO,kBAAkB,OAAO,gBAAe,IAAK,CAAE,GACvE;AACA,QAAM,EAAE,MAAArB,OAAM,QAAS,IAAGqB;AAC1B,QAAM,UAAU,IAAI,UAAU,EAAE,OAAO,gBAAiB;AACxD,UAAQ,QAAQrB,KAAI;AACpB,UAAQ,gBAAgB,OAAO;AAC/B,SAAO;AACT;AATS;AAWT,SAAS,eACP,SACA;AAAA,EACE,SAAS;AAAA,EACT,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,UAAA+jB,YAAW,OAAO;AAAA,EAClB,iBAAiB,OAAO;AAC5B,IAAM,CAAE,GACN;AACA,QAAM,WAAW,SAAS,QAAQ;AAElC,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACR;AAED,QAAM,YAAY,KAAK,IAAI,mBAAmB,eAAe;AAE7D,MAAI,CAACA,WAAU;AAEb,WAAO,YAAY,IAAM;AAAA,EAC1B;AAED,SAAO,WAAW,YAAYA;AAChC;AAxBS;AA0BT,SAAS,qBACP,YAAY,CAAE,GACd,qBAAqB,OAAO,oBAC5B;AACA,MAAI,UAAU;AACd,MAAIxlB,SAAQ;AACZ,MAAI,MAAM;AACV,MAAI,IAAI;AAER,WAAS,MAAM,UAAU,QAAQ,IAAI,KAAK,KAAK,GAAG;AAChD,QAAI,QAAQ,UAAU,CAAC;AACvB,QAAI,SAASA,WAAU,IAAI;AACzB,MAAAA,SAAQ;AAAA,IACT,WAAU,CAAC,SAASA,WAAU,IAAI;AACjC,YAAM,IAAI;AACV,UAAI,MAAMA,SAAQ,KAAK,oBAAoB;AACzC,gBAAQ,KAAK,CAACA,QAAO,GAAG,CAAC;AAAA,MAC1B;AACD,MAAAA,SAAQ;AAAA,IACT;AAAA,EACF;AAGD,MAAI,UAAU,IAAI,CAAC,KAAK,IAAIA,UAAS,oBAAoB;AACvD,YAAQ,KAAK,CAACA,QAAO,IAAI,CAAC,CAAC;AAAA,EAC5B;AAED,SAAO;AACT;AA5BS;AA+BT,MAAM,WAAW;AAEjB,SAAS,OACP,MACA,SACA,iBACA;AAAA,EACE,UAAA2T,YAAW,OAAO;AAAA,EAClB,UAAA6R,YAAW,OAAO;AAAA,EAClB,YAAY,OAAO;AAAA,EACnB,iBAAiB,OAAO;AAAA,EACxB,qBAAqB,OAAO;AAAA,EAC5B,iBAAiB,OAAO;AAAA,EACxB,iBAAiB,OAAO;AAC5B,IAAM,CAAE,GACN;AACA,MAAI,QAAQ,SAAS,UAAU;AAC7B,UAAM,IAAI,MAAM,yBAAyB,QAAQ,CAAC;AAAA,EACnD;AAED,QAAM,aAAa,QAAQ;AAE3B,QAAM,UAAU,KAAK;AAErB,QAAM,mBAAmB,KAAK,IAAI,GAAG,KAAK,IAAI7R,WAAU,OAAO,CAAC;AAEhE,MAAI,mBAAmB;AAEvB,MAAI,eAAe;AAInB,QAAM,iBAAiB,qBAAqB,KAAK;AAEjD,QAAM,YAAY,iBAAiB,MAAM,OAAO,IAAI;AAEpD,MAAIxT;AAGJ,UAAQA,SAAQ,KAAK,QAAQ,SAAS,YAAY,KAAK,IAAI;AACzD,QAAI,QAAQ,eAAe,SAAS;AAAA,MAClC,iBAAiBA;AAAA,MACjB;AAAA,MACA,UAAAqlB;AAAA,MACA;AAAA,IACN,CAAK;AAED,uBAAmB,KAAK,IAAI,OAAO,gBAAgB;AACnD,mBAAerlB,SAAQ;AAEvB,QAAI,gBAAgB;AAClB,UAAI,IAAI;AACR,aAAO,IAAI,YAAY;AACrB,kBAAUA,SAAQ,CAAC,IAAI;AACvB,aAAK;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAGD,iBAAe;AAEf,MAAI,aAAa;AACjB,MAAI,aAAa;AACjB,MAAI,SAAS,aAAa;AAE1B,QAAMuJ,QAAO,KAAM,aAAa;AAEhC,WAAS,IAAI,GAAG,IAAI,YAAY,KAAK,GAAG;AAItC,QAAI,SAAS;AACb,QAAI,SAAS;AAEb,WAAO,SAAS,QAAQ;AACtB,YAAMqgB,SAAQ,eAAe,SAAS;AAAA,QACpC,QAAQ;AAAA,QACR,iBAAiB,mBAAmB;AAAA,QACpC;AAAA,QACA,UAAAvE;AAAA,QACA;AAAA,MACR,CAAO;AAED,UAAIuE,UAAS,kBAAkB;AAC7B,iBAAS;AAAA,MACjB,OAAa;AACL,iBAAS;AAAA,MACV;AAED,eAAS,KAAK,OAAO,SAAS,UAAU,IAAI,MAAM;AAAA,IACnD;AAGD,aAAS;AAET,QAAI/pB,SAAQ,KAAK,IAAI,GAAG,mBAAmB,SAAS,CAAC;AACrD,QAAI,SAAS,iBACT,UACA,KAAK,IAAI,mBAAmB,QAAQ,OAAO,IAAI;AAGnD,QAAI,SAAS,MAAM,SAAS,CAAC;AAE7B,WAAO,SAAS,CAAC,KAAK,KAAK,KAAK;AAEhC,aAAS,IAAI,QAAQ,KAAKA,QAAO,KAAK,GAAG;AACvC,UAAI,kBAAkB,IAAI;AAC1B,UAAI,YAAY,gBAAgB,KAAK,OAAO,eAAe,CAAC;AAE5D,UAAI,gBAAgB;AAElB,kBAAU,eAAe,IAAI,CAAC,CAAC,CAAC;AAAA,MACjC;AAGD,aAAO,CAAC,KAAM,OAAO,IAAI,CAAC,KAAK,IAAK,KAAK;AAGzC,UAAI,GAAG;AACL,eAAO,CAAC,MACJ,WAAW,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,IAAK,IAAI,WAAW,IAAI,CAAC;AAAA,MACpE;AAED,UAAI,OAAO,CAAC,IAAI0J,OAAM;AACpB,qBAAa,eAAe,SAAS;AAAA,UACnC,QAAQ;AAAA,UACR;AAAA,UACA;AAAA,UACA,UAAA8b;AAAA,UACA;AAAA,QACV,CAAS;AAID,YAAI,cAAc,kBAAkB;AAElC,6BAAmB;AACnB,yBAAe;AAGf,cAAI,gBAAgB,kBAAkB;AACpC;AAAA,UACD;AAGD,UAAAxlB,SAAQ,KAAK,IAAI,GAAG,IAAI,mBAAmB,YAAY;AAAA,QACxD;AAAA,MACF;AAAA,IACF;AAGD,UAAM,QAAQ,eAAe,SAAS;AAAA,MACpC,QAAQ,IAAI;AAAA,MACZ,iBAAiB;AAAA,MACjB;AAAA,MACA,UAAAwlB;AAAA,MACA;AAAA,IACN,CAAK;AAED,QAAI,QAAQ,kBAAkB;AAC5B;AAAA,IACD;AAED,iBAAa;AAAA,EACd;AAED,QAAM,SAAS;AAAA,IACb,SAAS,gBAAgB;AAAA;AAAA,IAEzB,OAAO,KAAK,IAAI,MAAO,UAAU;AAAA,EACrC;AAEE,MAAI,gBAAgB;AAClB,UAAM,UAAU,qBAAqB,WAAW,kBAAkB;AAClE,QAAI,CAAC,QAAQ,QAAQ;AACnB,aAAO,UAAU;AAAA,IAClB,WAAU,gBAAgB;AACzB,aAAO,UAAU;AAAA,IAClB;AAAA,EACF;AAED,SAAO;AACT;AArLS;AAuLT,SAAS,sBAAsB,SAAS;AACtC,MAAI9b,QAAO;AAEX,WAAS,IAAI,GAAG,MAAM,QAAQ,QAAQ,IAAI,KAAK,KAAK,GAAG;AACrD,UAAM,OAAO,QAAQ,OAAO,CAAC;AAC7B,IAAAA,MAAK,IAAI,KAAKA,MAAK,IAAI,KAAK,KAAM,KAAM,MAAM,IAAI;AAAA,EACnD;AAED,SAAOA;AACT;AATS;AAWT,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAChB,YACE,SACA;AAAA,IACE,UAAAiK,YAAW,OAAO;AAAA,IAClB,YAAY,OAAO;AAAA,IACnB,UAAA6R,YAAW,OAAO;AAAA,IAClB,iBAAiB,OAAO;AAAA,IACxB,iBAAiB,OAAO;AAAA,IACxB,qBAAqB,OAAO;AAAA,IAC5B,kBAAkB,OAAO;AAAA,IACzB,iBAAiB,OAAO;AAAA,EAC9B,IAAQ,CAAE,GACN;AACA,SAAK,UAAU;AAAA,MACb,UAAA7R;AAAA,MACA;AAAA,MACA,UAAA6R;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN;AAEI,SAAK,UAAU,kBAAkB,UAAU,QAAQ,YAAW;AAE9D,SAAK,SAAS;AAEd,QAAI,CAAC,KAAK,QAAQ,QAAQ;AACxB;AAAA,IACD;AAED,UAAM,WAAW,wBAACwE,UAAS,eAAe;AACxC,WAAK,OAAO,KAAK;AAAA,QACf,SAAAA;AAAA,QACA,UAAU,sBAAsBA,QAAO;AAAA,QACvC;AAAA,MACR,CAAO;AAAA,IACP,GANqB;AAQjB,UAAM,MAAM,KAAK,QAAQ;AAEzB,QAAI,MAAM,UAAU;AAClB,UAAI,IAAI;AACR,YAAM,YAAY,MAAM;AACxB,YAAM,MAAM,MAAM;AAElB,aAAO,IAAI,KAAK;AACd,iBAAS,KAAK,QAAQ,OAAO,GAAG,QAAQ,GAAG,CAAC;AAC5C,aAAK;AAAA,MACN;AAED,UAAI,WAAW;AACb,cAAM,aAAa,MAAM;AACzB,iBAAS,KAAK,QAAQ,OAAO,UAAU,GAAG,UAAU;AAAA,MACrD;AAAA,IACP,OAAW;AACL,eAAS,KAAK,SAAS,CAAC;AAAA,IACzB;AAAA,EACF;AAAA,EAED,SAAS,MAAM;AACb,UAAM,EAAE,iBAAiB,mBAAmB,KAAK;AAEjD,QAAI,CAAC,iBAAiB;AACpB,aAAO,KAAK;IACb;AAGD,QAAI,KAAK,YAAY,MAAM;AACzB,UAAIvgB,UAAS;AAAA,QACX,SAAS;AAAA,QACT,OAAO;AAAA,MACf;AAEM,UAAI,gBAAgB;AAClB,QAAAA,QAAO,UAAU,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;AAAA,MACvC;AAED,aAAOA;AAAA,IACR;AAGD,UAAM;AAAA,MACJ,UAAAkK;AAAA,MACA,UAAA6R;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN,IAAQ,KAAK;AAET,QAAI,aAAa;AACjB,QAAI,aAAa;AACjB,QAAI,aAAa;AAEjB,SAAK,OAAO,QAAQ,CAAC,EAAE,SAAS,UAAU,iBAAiB;AACzD,YAAM,EAAE,SAAS,OAAO,QAAO,IAAK,OAAO,MAAM,SAAS,UAAU;AAAA,QAClE,UAAU7R,YAAW;AAAA,QACrB,UAAA6R;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR,CAAO;AAED,UAAI,SAAS;AACX,qBAAa;AAAA,MACd;AAED,oBAAc;AAEd,UAAI,WAAW,SAAS;AACtB,qBAAa,CAAC,GAAG,YAAY,GAAG,OAAO;AAAA,MACxC;AAAA,IACP,CAAK;AAED,QAAI,SAAS;AAAA,MACX,SAAS;AAAA,MACT,OAAO,aAAa,aAAa,KAAK,OAAO,SAAS;AAAA,IAC5D;AAEI,QAAI,cAAc,gBAAgB;AAChC,aAAO,UAAU;AAAA,IAClB;AAED,WAAO;AAAA,EACR;AACH;AAEA,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA,EACd,YAAY,SAAS;AACnB,SAAK,UAAU;AAAA,EAChB;AAAA,EACD,OAAO,aAAa,SAAS;AAC3B,WAAO,SAAS,SAAS,KAAK,UAAU;AAAA,EACzC;AAAA,EACD,OAAO,cAAc,SAAS;AAC5B,WAAO,SAAS,SAAS,KAAK,WAAW;AAAA,EAC1C;AAAA,EACD,SAAiB;AAAA,EAAE;AACrB;AAEA,SAAS,SAAS,SAAS,KAAK;AAC9B,QAAMxa,WAAU,QAAQ,MAAM,GAAG;AACjC,SAAOA,WAAUA,SAAQ,CAAC,IAAI;AAChC;AAHS;AAOT,MAAM,mBAAmB,UAAU;AAAA;AAAA;AAAA;AAAA,EACjC,YAAY,SAAS;AACnB,UAAM,OAAO;AAAA,EACd;AAAA,EACD,WAAW,OAAO;AAChB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,aAAa;AACtB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,cAAc;AACvB,WAAO;AAAA,EACR;AAAA,EACD,OAAO,MAAM;AACX,UAAM,UAAU,SAAS,KAAK;AAE9B,WAAO;AAAA,MACL;AAAA,MACA,OAAO,UAAU,IAAI;AAAA,MACrB,SAAS,CAAC,GAAG,KAAK,QAAQ,SAAS,CAAC;AAAA,IACrC;AAAA,EACF;AACH;AAIA,MAAM,0BAA0B,UAAU;AAAA;AAAA;AAAA;AAAA,EACxC,YAAY,SAAS;AACnB,UAAM,OAAO;AAAA,EACd;AAAA,EACD,WAAW,OAAO;AAChB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,aAAa;AACtB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,cAAc;AACvB,WAAO;AAAA,EACR;AAAA,EACD,OAAO,MAAM;AACX,UAAM7K,SAAQ,KAAK,QAAQ,KAAK,OAAO;AACvC,UAAM,UAAUA,WAAU;AAE1B,WAAO;AAAA,MACL;AAAA,MACA,OAAO,UAAU,IAAI;AAAA,MACrB,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC;AAAA,IAC7B;AAAA,EACF;AACH;AAIA,MAAM,yBAAyB,UAAU;AAAA;AAAA;AAAA;AAAA,EACvC,YAAY,SAAS;AACnB,UAAM,OAAO;AAAA,EACd;AAAA,EACD,WAAW,OAAO;AAChB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,aAAa;AACtB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,cAAc;AACvB,WAAO;AAAA,EACR;AAAA,EACD,OAAO,MAAM;AACX,UAAM,UAAU,KAAK,WAAW,KAAK,OAAO;AAE5C,WAAO;AAAA,MACL;AAAA,MACA,OAAO,UAAU,IAAI;AAAA,MACrB,SAAS,CAAC,GAAG,KAAK,QAAQ,SAAS,CAAC;AAAA,IACrC;AAAA,EACF;AACH;AAIA,MAAM,gCAAgC,UAAU;AAAA;AAAA;AAAA;AAAA,EAC9C,YAAY,SAAS;AACnB,UAAM,OAAO;AAAA,EACd;AAAA,EACD,WAAW,OAAO;AAChB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,aAAa;AACtB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,cAAc;AACvB,WAAO;AAAA,EACR;AAAA,EACD,OAAO,MAAM;AACX,UAAM,UAAU,CAAC,KAAK,WAAW,KAAK,OAAO;AAE7C,WAAO;AAAA,MACL;AAAA,MACA,OAAO,UAAU,IAAI;AAAA,MACrB,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC;AAAA,IAC7B;AAAA,EACF;AACH;AAIA,MAAM,yBAAyB,UAAU;AAAA;AAAA;AAAA;AAAA,EACvC,YAAY,SAAS;AACnB,UAAM,OAAO;AAAA,EACd;AAAA,EACD,WAAW,OAAO;AAChB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,aAAa;AACtB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,cAAc;AACvB,WAAO;AAAA,EACR;AAAA,EACD,OAAO,MAAM;AACX,UAAM,UAAU,KAAK,SAAS,KAAK,OAAO;AAE1C,WAAO;AAAA,MACL;AAAA,MACA,OAAO,UAAU,IAAI;AAAA,MACrB,SAAS,CAAC,KAAK,SAAS,KAAK,QAAQ,QAAQ,KAAK,SAAS,CAAC;AAAA,IAC7D;AAAA,EACF;AACH;AAIA,MAAM,gCAAgC,UAAU;AAAA;AAAA;AAAA;AAAA,EAC9C,YAAY,SAAS;AACnB,UAAM,OAAO;AAAA,EACd;AAAA,EACD,WAAW,OAAO;AAChB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,aAAa;AACtB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,cAAc;AACvB,WAAO;AAAA,EACR;AAAA,EACD,OAAO,MAAM;AACX,UAAM,UAAU,CAAC,KAAK,SAAS,KAAK,OAAO;AAC3C,WAAO;AAAA,MACL;AAAA,MACA,OAAO,UAAU,IAAI;AAAA,MACrB,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC;AAAA,IAC7B;AAAA,EACF;AACH;AAEA,MAAM,mBAAmB,UAAU;AAAA;AAAA;AAAA;AAAA,EACjC,YACE,SACA;AAAA,IACE,UAAAwT,YAAW,OAAO;AAAA,IAClB,YAAY,OAAO;AAAA,IACnB,UAAA6R,YAAW,OAAO;AAAA,IAClB,iBAAiB,OAAO;AAAA,IACxB,iBAAiB,OAAO;AAAA,IACxB,qBAAqB,OAAO;AAAA,IAC5B,kBAAkB,OAAO;AAAA,IACzB,iBAAiB,OAAO;AAAA,EAC9B,IAAQ,CAAE,GACN;AACA,UAAM,OAAO;AACb,SAAK,eAAe,IAAI,YAAY,SAAS;AAAA,MAC3C,UAAA7R;AAAA,MACA;AAAA,MACA,UAAA6R;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN,CAAK;AAAA,EACF;AAAA,EACD,WAAW,OAAO;AAChB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,aAAa;AACtB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,cAAc;AACvB,WAAO;AAAA,EACR;AAAA,EACD,OAAO,MAAM;AACX,WAAO,KAAK,aAAa,SAAS,IAAI;AAAA,EACvC;AACH;AAIA,MAAM,qBAAqB,UAAU;AAAA;AAAA;AAAA;AAAA,EACnC,YAAY,SAAS;AACnB,UAAM,OAAO;AAAA,EACd;AAAA,EACD,WAAW,OAAO;AAChB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,aAAa;AACtB,WAAO;AAAA,EACR;AAAA,EACD,WAAW,cAAc;AACvB,WAAO;AAAA,EACR;AAAA,EACD,OAAO,MAAM;AACX,QAAI7R,YAAW;AACf,QAAIxT;AAEJ,UAAM,UAAU;AAChB,UAAM,aAAa,KAAK,QAAQ;AAGhC,YAAQA,SAAQ,KAAK,QAAQ,KAAK,SAASwT,SAAQ,KAAK,IAAI;AAC1D,MAAAA,YAAWxT,SAAQ;AACnB,cAAQ,KAAK,CAACA,QAAOwT,YAAW,CAAC,CAAC;AAAA,IACnC;AAED,UAAM,UAAU,CAAC,CAAC,QAAQ;AAE1B,WAAO;AAAA,MACL;AAAA,MACA,OAAO,UAAU,IAAI;AAAA,MACrB;AAAA,IACD;AAAA,EACF;AACH;AAGA,MAAM,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,eAAe,UAAU;AAG/B,MAAM,WAAW;AACjB,MAAM,WAAW;AAKjB,SAASsW,aAAW,SAAStpB,WAAU,IAAI;AACzC,SAAO,QAAQ,MAAM,QAAQ,EAAE,IAAI,CAACV,UAAS;AAC3C,QAAI,QAAQA,MACT,KAAM,EACN,MAAM,QAAQ,EACd,OAAO,CAACA,UAASA,SAAQ,CAAC,CAACA,MAAK,KAAI,CAAE;AAEzC,QAAI,UAAU;AACd,aAAS,IAAI,GAAG,MAAM,MAAM,QAAQ,IAAI,KAAK,KAAK,GAAG;AACnD,YAAM,YAAY,MAAM,CAAC;AAGzB,UAAI,QAAQ;AACZ,UAAI,MAAM;AACV,aAAO,CAAC,SAAS,EAAE,MAAM,cAAc;AACrC,cAAM,WAAW,UAAU,GAAG;AAC9B,YAAI,QAAQ,SAAS,aAAa,SAAS;AAC3C,YAAI,OAAO;AACT,kBAAQ,KAAK,IAAI,SAAS,OAAOU,QAAO,CAAC;AACzC,kBAAQ;AAAA,QACT;AAAA,MACF;AAED,UAAI,OAAO;AACT;AAAA,MACD;AAGD,YAAM;AACN,aAAO,EAAE,MAAM,cAAc;AAC3B,cAAM,WAAW,UAAU,GAAG;AAC9B,YAAI,QAAQ,SAAS,cAAc,SAAS;AAC5C,YAAI,OAAO;AACT,kBAAQ,KAAK,IAAI,SAAS,OAAOA,QAAO,CAAC;AACzC;AAAA,QACD;AAAA,MACF;AAAA,IACF;AAED,WAAO;AAAA,EACX,CAAG;AACH;AAzCSspB;AA6CT,MAAM,gBAAgB,oBAAI,IAAI,CAAC,WAAW,MAAM,aAAa,IAAI,CAAC;AA8BlE,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA,EACnB,YACE,SACA;AAAA,IACE,kBAAkB,OAAO;AAAA,IACzB,iBAAiB,OAAO;AAAA,IACxB,qBAAqB,OAAO;AAAA,IAC5B,iBAAiB,OAAO;AAAA,IACxB,iBAAiB,OAAO;AAAA,IACxB,UAAAtW,YAAW,OAAO;AAAA,IAClB,YAAY,OAAO;AAAA,IACnB,UAAA6R,YAAW,OAAO;AAAA,EACxB,IAAQ,CAAE,GACN;AACA,SAAK,QAAQ;AACb,SAAK,UAAU;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAA7R;AAAA,MACA;AAAA,MACA,UAAA6R;AAAA,IACN;AAEI,SAAK,UAAU,kBAAkB,UAAU,QAAQ,YAAW;AAC9D,SAAK,QAAQyE,aAAW,KAAK,SAAS,KAAK,OAAO;AAAA,EACnD;AAAA,EAED,OAAO,UAAUzqB,IAAGmB,UAAS;AAC3B,WAAOA,SAAQ;AAAA,EAChB;AAAA,EAED,SAAS,MAAM;AACb,UAAM,QAAQ,KAAK;AAEnB,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO;AAAA,MACR;AAAA,IACF;AAED,UAAM,EAAE,gBAAgB,oBAAoB,KAAK;AAEjD,WAAO,kBAAkB,OAAO,KAAK,YAAW;AAEhD,QAAI,aAAa;AACjB,QAAI,aAAa;AACjB,QAAI,aAAa;AAGjB,aAAS,IAAI,GAAG,OAAO,MAAM,QAAQ,IAAI,MAAM,KAAK,GAAG;AACrD,YAAMupB,aAAY,MAAM,CAAC;AAGzB,iBAAW,SAAS;AACpB,mBAAa;AAGb,eAAS,IAAI,GAAG,OAAOA,WAAU,QAAQ,IAAI,MAAM,KAAK,GAAG;AACzD,cAAM,WAAWA,WAAU,CAAC;AAC5B,cAAM,EAAE,SAAS,SAAS,MAAO,IAAG,SAAS,OAAO,IAAI;AAExD,YAAI,SAAS;AACX,wBAAc;AACd,wBAAc;AACd,cAAI,gBAAgB;AAClB,kBAAM,OAAO,SAAS,YAAY;AAClC,gBAAI,cAAc,IAAI,IAAI,GAAG;AAC3B,2BAAa,CAAC,GAAG,YAAY,GAAG,OAAO;AAAA,YACrD,OAAmB;AACL,yBAAW,KAAK,OAAO;AAAA,YACxB;AAAA,UACF;AAAA,QACX,OAAe;AACL,uBAAa;AACb,uBAAa;AACb,qBAAW,SAAS;AACpB;AAAA,QACD;AAAA,MACF;AAGD,UAAI,YAAY;AACd,YAAI,SAAS;AAAA,UACX,SAAS;AAAA,UACT,OAAO,aAAa;AAAA,QAC9B;AAEQ,YAAI,gBAAgB;AAClB,iBAAO,UAAU;AAAA,QAClB;AAED,eAAO;AAAA,MACR;AAAA,IACF;AAGD,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,IACR;AAAA,EACF;AACH;AAEA,MAAM,sBAAsB;AAE5B,SAAS3lB,cAAY,MAAM;AACzB,sBAAoB,KAAK,GAAG,IAAI;AAClC;AAFSA;AAIT,SAAS,eAAe,SAAS5D,UAAS;AACxC,WAAS,IAAI,GAAG,MAAM,oBAAoB,QAAQ,IAAI,KAAK,KAAK,GAAG;AACjE,QAAI,gBAAgB,oBAAoB,CAAC;AACzC,QAAI,cAAc,UAAU,SAASA,QAAO,GAAG;AAC7C,aAAO,IAAI,cAAc,SAASA,QAAO;AAAA,IAC1C;AAAA,EACF;AAED,SAAO,IAAI,YAAY,SAASA,QAAO;AACzC;AATS;AAWT,MAAM,kBAAkB;AAAA,EACtB,KAAK;AAAA,EACL,IAAI;AACN;AAEA,MAAM,UAAU;AAAA,EACd,MAAM;AAAA,EACN,SAAS;AACX;AAEA,MAAM,eAAe,wBAAC,UACpB,CAAC,EAAE,MAAM,gBAAgB,GAAG,KAAK,MAAM,gBAAgB,EAAE,IADtC;AAGrB,MAAM,SAAS,wBAAC,UAAU,CAAC,CAAC,MAAM,QAAQ,IAAI,GAA/B;AAEf,MAAM,SAAS,wBAAC,UACd,CAACnC,UAAQ,KAAK,KAAK,SAAS,KAAK,KAAK,CAAC,aAAa,KAAK,GAD5C;AAGf,MAAM,oBAAoB,wBAAC,WAAW;AAAA,EACpC,CAAC,gBAAgB,GAAG,GAAG,OAAO,KAAK,KAAK,EAAE,IAAI,CAAC,SAAS;AAAA,IACtD,CAAC,GAAG,GAAG,MAAM,GAAG;AAAA,EACpB,EAAI;AACJ,IAJ0B;AAQ1B,SAAS,MAAM,OAAOmC,UAAS,EAAE,OAAO,KAAM,IAAG,IAAI;AACnD,QAAM2C,QAAO,wBAAC6mB,WAAU;AACtB,QAAI1oB,QAAO,OAAO,KAAK0oB,MAAK;AAE5B,UAAM,cAAc,OAAOA,MAAK;AAEhC,QAAI,CAAC,eAAe1oB,MAAK,SAAS,KAAK,CAAC,aAAa0oB,MAAK,GAAG;AAC3D,aAAO7mB,MAAK,kBAAkB6mB,MAAK,CAAC;AAAA,IACrC;AAED,QAAI,OAAOA,MAAK,GAAG;AACjB,YAAM,MAAM,cAAcA,OAAM,QAAQ,IAAI,IAAI1oB,MAAK,CAAC;AAEtD,YAAM,UAAU,cAAc0oB,OAAM,QAAQ,OAAO,IAAIA,OAAM,GAAG;AAEhE,UAAI,CAAC,SAAS,OAAO,GAAG;AACtB,cAAM,IAAI,MAAM,qCAAqC,GAAG,CAAC;AAAA,MAC1D;AAED,YAAM,MAAM;AAAA,QACV,OAAO,YAAY,GAAG;AAAA,QACtB;AAAA,MACR;AAEM,UAAI,MAAM;AACR,YAAI,WAAW,eAAe,SAASxpB,QAAO;AAAA,MAC/C;AAED,aAAO;AAAA,IACR;AAED,QAAI4C,QAAO;AAAA,MACT,UAAU,CAAE;AAAA,MACZ,UAAU9B,MAAK,CAAC;AAAA,IACtB;AAEI,IAAAA,MAAK,QAAQ,CAAC,QAAQ;AACpB,YAAMvC,SAAQirB,OAAM,GAAG;AAEvB,UAAI3rB,UAAQU,MAAK,GAAG;AAClB,QAAAA,OAAM,QAAQ,CAACe,UAAS;AACtB,UAAAsD,MAAK,SAAS,KAAKD,MAAKrD,KAAI,CAAC;AAAA,QACvC,CAAS;AAAA,MACF;AAAA,IACP,CAAK;AAED,WAAOsD;AAAA,EACX,GA9Ce;AAgDb,MAAI,CAAC,aAAa,KAAK,GAAG;AACxB,YAAQ,kBAAkB,KAAK;AAAA,EAChC;AAED,SAAOD,MAAK,KAAK;AACnB;AAtDS;AAyDT,SAAS,aACP,SACA,EAAE,kBAAkB,OAAO,gBAAiB,GAC5C;AACA,UAAQ,QAAQ,CAAC,WAAW;AAC1B,QAAI,aAAa;AAEjB,WAAO,QAAQ,QAAQ,CAAC,EAAE,KAAK,MAAAwmB,OAAM,YAAY;AAC/C,YAAM,SAAS,MAAM,IAAI,SAAS;AAElC,oBAAc,KAAK;AAAA,QACjB,UAAU,KAAK,SAAS,OAAO,UAAU;AAAA,SACxC,UAAU,MAAM,kBAAkB,IAAIA;AAAA,MAC/C;AAAA,IACA,CAAK;AAED,WAAO,QAAQ;AAAA,EACnB,CAAG;AACH;AAlBS;AAoBT,SAAS,iBAAiB,QAAQhnB,QAAM;AACtC,QAAMkI,WAAU,OAAO;AACvB,EAAAlI,OAAK,UAAU;AAEf,MAAI,CAAC,UAAUkI,QAAO,GAAG;AACvB;AAAA,EACD;AAED,EAAAA,SAAQ,QAAQ,CAAC,UAAU;AACzB,QAAI,CAAC,UAAU,MAAM,OAAO,KAAK,CAAC,MAAM,QAAQ,QAAQ;AACtD;AAAA,IACD;AAED,UAAM,EAAE,SAAS,OAAA9L,OAAO,IAAG;AAE3B,QAAI,MAAM;AAAA,MACR;AAAA,MACA,OAAAA;AAAA,IACN;AAEI,QAAI,MAAM,KAAK;AACb,UAAI,MAAM,MAAM,IAAI;AAAA,IACrB;AAED,QAAI,MAAM,MAAM,IAAI;AAClB,UAAI,WAAW,MAAM;AAAA,IACtB;AAED,IAAA4D,OAAK,QAAQ,KAAK,GAAG;AAAA,EACzB,CAAG;AACH;AA9BS;AAgCT,SAAS,eAAe,QAAQA,QAAM;AACpC,EAAAA,OAAK,QAAQ,OAAO;AACtB;AAFS;AAIT,SAAS,OACP,SACA,MACA;AAAA,EACE,iBAAiB,OAAO;AAAA,EACxB,eAAe,OAAO;AAC1B,IAAM,CAAE,GACN;AACA,QAAM,eAAe;AAErB,MAAI,eAAgB,cAAa,KAAK,gBAAgB;AACtD,MAAI,aAAc,cAAa,KAAK,cAAc;AAElD,SAAO,QAAQ,IAAI,CAAC,WAAW;AAC7B,UAAM,EAAE,IAAK,IAAG;AAEhB,UAAMA,SAAO;AAAA,MACX,MAAM,KAAK,GAAG;AAAA,MACd,UAAU;AAAA,IAChB;AAEI,QAAI,aAAa,QAAQ;AACvB,mBAAa,QAAQ,CAAC,gBAAgB;AACpC,oBAAY,QAAQA,MAAI;AAAA,MAChC,CAAO;AAAA,IACF;AAED,WAAOA;AAAA,EACX,CAAG;AACH;AA7BS;AA+BT,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA,EACT,YAAY,MAAMnC,WAAU,IAAIR,QAAO;AACrC,SAAK,UAAU,EAAE,GAAG,QAAQ,GAAGQ,SAAO;AAEtC,QACE,KAAK,QAAQ,qBACb,OACA;AACA,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC5C;AAED,SAAK,YAAY,IAAI,SAAS,KAAK,QAAQ,IAAI;AAE/C,SAAK,cAAc,MAAMR,MAAK;AAAA,EAC/B;AAAA,EAED,cAAc,MAAMA,QAAO;AACzB,SAAK,QAAQ;AAEb,QAAIA,UAAS,EAAEA,kBAAiB,YAAY;AAC1C,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACrC;AAED,SAAK,WACHA,UACA,YAAY,KAAK,QAAQ,MAAM,KAAK,OAAO;AAAA,MACzC,OAAO,KAAK,QAAQ;AAAA,MACpB,iBAAiB,KAAK,QAAQ;AAAA,IACtC,CAAO;AAAA,EACJ;AAAA,EAED,IAAIqV,MAAK;AACP,QAAI,CAAC,UAAUA,IAAG,GAAG;AACnB;AAAA,IACD;AAED,SAAK,MAAM,KAAKA,IAAG;AACnB,SAAK,SAAS,IAAIA,IAAG;AAAA,EACtB;AAAA,EAED,OAAO,YAAY,MAAoB,OAAO;AAC5C,UAAM,UAAU;AAEhB,aAAS,IAAI,GAAG,MAAM,KAAK,MAAM,QAAQ,IAAI,KAAK,KAAK,GAAG;AACxD,YAAMA,OAAM,KAAK,MAAM,CAAC;AACxB,UAAI,UAAUA,MAAK,CAAC,GAAG;AACrB,aAAK,SAAS,CAAC;AACf,aAAK;AACL,eAAO;AAEP,gBAAQ,KAAKA,IAAG;AAAA,MACjB;AAAA,IACF;AAED,WAAO;AAAA,EACR;AAAA,EAED,SAAS,KAAK;AACZ,SAAK,MAAM,OAAO,KAAK,CAAC;AACxB,SAAK,SAAS,SAAS,GAAG;AAAA,EAC3B;AAAA,EAED,WAAW;AACT,WAAO,KAAK;AAAA,EACb;AAAA,EAED,OAAO,OAAO,EAAE,QAAQ,GAAE,IAAK,IAAI;AACjC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN,IAAQ,KAAK;AAET,QAAI,UAAU,SAAS,KAAK,IACxB,SAAS,KAAK,MAAM,CAAC,CAAC,IACpB,KAAK,kBAAkB,KAAK,IAC5B,KAAK,kBAAkB,KAAK,IAC9B,KAAK,eAAe,KAAK;AAE7B,iBAAa,SAAS,EAAE,gBAAe,CAAE;AAEzC,QAAI,YAAY;AACd,cAAQ,KAAK,MAAM;AAAA,IACpB;AAED,QAAI,SAAS,KAAK,KAAK,QAAQ,IAAI;AACjC,gBAAU,QAAQ,MAAM,GAAG,KAAK;AAAA,IACjC;AAED,WAAO,OAAO,SAAS,KAAK,OAAO;AAAA,MACjC;AAAA,MACA;AAAA,IACN,CAAK;AAAA,EACF;AAAA,EAED,kBAAkB,OAAO;AACvB,UAAM,WAAW,eAAe,OAAO,KAAK,OAAO;AACnD,UAAM,EAAE,QAAO,IAAK,KAAK;AACzB,UAAM,UAAU;AAGhB,YAAQ,QAAQ,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,GAAGsU,YAAW;AAChD,UAAI,CAAC,UAAU,IAAI,GAAG;AACpB;AAAA,MACD;AAED,YAAM,EAAE,SAAS,OAAO,QAAS,IAAG,SAAS,SAAS,IAAI;AAE1D,UAAI,SAAS;AACX,gBAAQ,KAAK;AAAA,UACX,MAAM;AAAA,UACN;AAAA,UACA,SAAS,CAAC,EAAE,OAAO,OAAO,MAAM,MAAAA,OAAM,SAAS;AAAA,QACzD,CAAS;AAAA,MACF;AAAA,IACP,CAAK;AAED,WAAO;AAAA,EACR;AAAA,EAED,eAAe,OAAO;AAEpB,UAAM,aAAa,MAAM,OAAO,KAAK,OAAO;AAE5C,UAAM,WAAW,wBAACvmB,OAAMtD,OAAM,QAAQ;AACpC,UAAI,CAACsD,MAAK,UAAU;AAClB,cAAM,EAAE,OAAO,SAAU,IAAGA;AAE5B,cAAMyH,WAAU,KAAK,aAAa;AAAA,UAChC,KAAK,KAAK,UAAU,IAAI,KAAK;AAAA,UAC7B,OAAO,KAAK,SAAS,uBAAuB/K,OAAM,KAAK;AAAA,UACvD;AAAA,QACV,CAAS;AAED,YAAI+K,YAAWA,SAAQ,QAAQ;AAC7B,iBAAO;AAAA,YACL;AAAA,cACE;AAAA,cACA,MAAA/K;AAAA,cACA,SAAA+K;AAAA,YACD;AAAA,UACF;AAAA,QACF;AAED,eAAO,CAAE;AAAA,MACV;AAED,YAAM,MAAM;AACZ,eAAS,IAAI,GAAG,MAAMzH,MAAK,SAAS,QAAQ,IAAI,KAAK,KAAK,GAAG;AAC3D,cAAM,QAAQA,MAAK,SAAS,CAAC;AAC7B,cAAM,SAAS,SAAS,OAAOtD,OAAM,GAAG;AACxC,YAAI,OAAO,QAAQ;AACjB,cAAI,KAAK,GAAG,MAAM;AAAA,QACnB,WAAUsD,MAAK,aAAa,gBAAgB,KAAK;AAChD,iBAAO,CAAE;AAAA,QACV;AAAA,MACF;AACD,aAAO;AAAA,IACb,GAlCqB;AAoCjB,UAAM,UAAU,KAAK,SAAS;AAC9B,UAAM,YAAY;AAClB,UAAM,UAAU;AAEhB,YAAQ,QAAQ,CAAC,EAAE,GAAGtD,OAAM,GAAG,UAAU;AACvC,UAAI,UAAUA,KAAI,GAAG;AACnB,YAAI,aAAa,SAAS,YAAYA,OAAM,GAAG;AAE/C,YAAI,WAAW,QAAQ;AAErB,cAAI,CAAC,UAAU,GAAG,GAAG;AACnB,sBAAU,GAAG,IAAI,EAAE,KAAK,MAAAA,OAAM,SAAS;AACvC,oBAAQ,KAAK,UAAU,GAAG,CAAC;AAAA,UAC5B;AACD,qBAAW,QAAQ,CAAC,EAAE,SAAA+K,eAAc;AAClC,sBAAU,GAAG,EAAE,QAAQ,KAAK,GAAGA,QAAO;AAAA,UAClD,CAAW;AAAA,QACF;AAAA,MACF;AAAA,IACP,CAAK;AAED,WAAO;AAAA,EACR;AAAA,EAED,kBAAkB,OAAO;AACvB,UAAM,WAAW,eAAe,OAAO,KAAK,OAAO;AACnD,UAAM,EAAE,MAAAvJ,OAAM,YAAY,KAAK;AAC/B,UAAM,UAAU;AAGhB,YAAQ,QAAQ,CAAC,EAAE,GAAGxB,OAAM,GAAG,UAAU;AACvC,UAAI,CAAC,UAAUA,KAAI,GAAG;AACpB;AAAA,MACD;AAED,UAAI+K,WAAU;AAGd,MAAAvJ,MAAK,QAAQ,CAAC,KAAK,aAAa;AAC9B,QAAAuJ,SAAQ;AAAA,UACN,GAAG,KAAK,aAAa;AAAA,YACnB;AAAA,YACA,OAAO/K,MAAK,QAAQ;AAAA,YACpB;AAAA,UACZ,CAAW;AAAA,QACX;AAAA,MACA,CAAO;AAED,UAAI+K,SAAQ,QAAQ;AAClB,gBAAQ,KAAK;AAAA,UACX;AAAA,UACA,MAAA/K;AAAA,UACA,SAAA+K;AAAA,QACV,CAAS;AAAA,MACF;AAAA,IACP,CAAK;AAED,WAAO;AAAA,EACR;AAAA,EACD,aAAa,EAAE,KAAK,OAAA9L,QAAO,SAAQ,GAAI;AACrC,QAAI,CAAC,UAAUA,MAAK,GAAG;AACrB,aAAO,CAAE;AAAA,IACV;AAED,QAAI8L,WAAU;AAEd,QAAIxM,UAAQU,MAAK,GAAG;AAClB,MAAAA,OAAM,QAAQ,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,GAAG4qB,YAAW;AAC9C,YAAI,CAAC,UAAU,IAAI,GAAG;AACpB;AAAA,QACD;AAED,cAAM,EAAE,SAAS,OAAO,QAAS,IAAG,SAAS,SAAS,IAAI;AAE1D,YAAI,SAAS;AACX,UAAA9e,SAAQ,KAAK;AAAA,YACX;AAAA,YACA;AAAA,YACA,OAAO;AAAA,YACP;AAAA,YACA,MAAA8e;AAAA,YACA;AAAA,UACZ,CAAW;AAAA,QACF;AAAA,MACT,CAAO;AAAA,IACP,OAAW;AACL,YAAM,EAAE,GAAG,MAAM,GAAGA,MAAI,IAAK5qB;AAE7B,YAAM,EAAE,SAAS,OAAO,QAAS,IAAG,SAAS,SAAS,IAAI;AAE1D,UAAI,SAAS;AACX,QAAA8L,SAAQ,KAAK,EAAE,OAAO,KAAK,OAAO,MAAM,MAAA8e,OAAM,QAAO,CAAE;AAAA,MACxD;AAAA,IACF;AAED,WAAO9e;AAAA,EACR;AACH;AAEA,KAAK,UAAU;AACf,KAAK,cAAc;AACnB,KAAK,aAAa;AAClB,KAAK,SAAS;AAEd;AACE,OAAK,aAAa;AACpB;AAEA;AACEzG,aAAS,cAAc;AACzB;ACpuDO,MAAM,WAAc;AAAA;AAAA;AAAA;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,YACEzB,QACAnC,UACAypB,eAAuB,MACvB,kBAA2B,OAC3B;AACA,SAAK,OAAOtnB;AACP,gBAAQnC,SAAQ,QAAQ;AAC7B,SAAK,kBAAkB;AACjB,UAAAR,SACJiqB,gBAAezpB,UAAS,OACpB,KAAK,YAAYA,SAAQ,MAAMmC,MAAI,IACnC;AACN,SAAK,OAAO,IAAI,KAAKA,QAAMnC,UAASR,MAAK;AAAA,EAC3C;AAAA,EAEO,OAAO,OAAeQ,UAAkC;AAC7D,UAAM,aAAa,CAAC,QAChB,KAAK,KAAK,IAAI,CAACyI,QAAO,EAAE,MAAMA,IAAG,OAAO,EAAI,MAC5C,KAAK,KAAK,OAAO,OAAOzI,QAAO;AAE/B,SAAC,KAAK,iBAAiB;AACzB,aAAO,WAAW,IAAI,CAACyI,OAAMA,GAAE,IAAI;AAAA,IACrC;AAEA,UAAM,MAAM,WACT,IAAI,CAACA,QAAO;AAAA,MACX,MAAMA,GAAE;AAAA,MACR,QAAQ,KAAK,cAAc,MAAM,kBAAqB,GAAAA,GAAE,MAAMA,GAAE,KAAK;AAAA,IACrE,IACD,KAAK,CAAC,GAAG,MAAM,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC;AAErD,WAAO,IAAI,IAAI,CAACA,OAAMA,GAAE,IAAI;AAAA,EAC9B;AAAA,EAEO,cAAc,OAAe,OAAU,OAA+B;AAC3E,QAAI,SAAmB;AACvB,QAAI,CAAC,KAAK,KAAK,OAAQ,UAAS,CAAC,KAAe;AAAA,QAC3C,UAAS,KAAK,KAAK,IAAI,CAACA,OAAM,MAAMA,EAAC,CAAC;AACrC,mBAAS,OAAO,IAAI,CAACA,OAAM,KAAK,cAAc,OAAOA,IAAG,KAAK,CAAC;AACpE,QAAI,SAAS,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;AAE3C,UAAM,aAAa,OAAO;AAAA,MAAK,CAACA,OAC9BA,GAAE,kBAAkB,EAAE,SAAS,YAAY;AAAA;AAE7C,WAAO,CAAC,KAAK,cAAc,OAAO,CAAC,KAAK,IAAI,IAAI;AAC5C,cAAM,yBAAyB,GAAG;AAC3B,qBAAM,yBAAyB,EAAE,MAAM;AAAA,IAClD;AACO;AAAA,EACT;AAAA,EAEO,cACL,OACAnJ,OACA,OACgB;AACV,sBAAYA,MACf,MAAM,yCAAyC,EAC/C,IAAI,CAACmJ,OAAMA,GAAE,mBAAmB;AAC7B,uBAAa,MAAM,MAAM,GAAG;AAClC,IAAAnJ,QAAOA,MAAK;AAEZ,QAAI,OAAO;AACX,QAAI,OAAO;AACX,QAAI,OAAO;AAEX,QAAIA,SAAQ,OAAO;AACV;AAAA,IACE,WAAAA,MAAK,WAAW,KAAK,GAAG;AAC1B;AACP,aAAOA,MAAK;AAAA,IACH,qBAAU,SAAS,KAAK,GAAG;AAC7B;AACP,aAAOA,MAAK,QAAQ,KAAK,IAAIA,MAAK,SAAS;AAC3C,aAAOA,MAAK;AAAA,IACH,WAAAA,MAAK,SAAS,KAAK,GAAG;AACxB;AACP,aAAOA,MAAK,QAAQ,KAAK,IAAIA,MAAK,SAAS;AAC3C,aAAOA,MAAK;AAAA,eACH,WAAW,MAAM,CAACmJ,OAAM,UAAU,SAASA,EAAC,CAAC,GAAG;AACnD,sBAAU,WAAW,IAAI,CAACA,OAAM,UAAU,QAAQA,EAAC,CAAC;AAC1D,YAAM,MAAM,KAAK,IAAI,GAAG,OAAO;AAC/B,YAAM,MAAM,KAAK,IAAI,GAAG,OAAO;AACxB;AACP,aAAO,MAAM,MAAM,MAAM,MAAMnJ,MAAK,SAAS;AAC7C,aAAOA,MAAK;AAAA,eACH,WAAW,MAAM,CAACmJ,OAAMnJ,MAAK,SAASmJ,EAAC,CAAC,GAAG;AACpD,YAAM,MAAM,KAAK,IAAI,GAAG,WAAW,IAAI,CAACA,OAAMnJ,MAAK,QAAQmJ,EAAC,CAAC,CAAC;AAC9D,YAAM,MAAM,KAAK,IAAI,GAAG,WAAW,IAAI,CAACA,OAAMnJ,MAAK,QAAQmJ,EAAC,IAAIA,GAAE,MAAM,CAAC;AAClE;AACP,aAAO,MAAM,MAAM,MAAM,MAAMnJ,MAAK,SAAS;AAC7C,aAAOA,MAAK;AAAA,IACd;AAEA,UAAM,gBACJ,OACC,IACC,KAAK,IAAIA,MAAK,QAAQ,MAAM,MAAM,IAChC,KAAK,IAAIA,MAAK,QAAQ,MAAM,MAAM;AACxC,WAAO,CAAC,MAAM,MAAM,MAAM,QAAQ,aAAa;AAAA,EACjD;AAAA,EAEO,WAAW,GAAmB,GAAmB;AAC7C,iBAAI,GAAG,IAAI,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK;AACrD,UAAI,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG;AACjB,eAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,MACnB;AAAA,IACF;AACO,aAAE,SAAS,EAAE;AAAA,EACtB;AACF;AAIO,MAAM,WAAmC;AAAA;AAAA;AAAA;AAAA,EAG9C,YACkB2B,KACA,MACA,gBACA,oBACA,aAGhB,UACAjB,UACA;AATgB,cAAAiB;AACA;AACA;AACA;AACA;AAMhB,SAAK,aAAa,IAAI,WAAW,KAAK,kBAAkB,QAAQ,GAAGjB,QAAO;AAAA,EAC5E;AAAA,EAdgB;AAAA,EAgBT,eAAe4C,OAAyC;AAC7D,WAAO,KAAK,uBAAuB,WAC/B,KAAK,YAAYA,KAAI,IACrB,KAAK;AAAA,EACX;AAAA,EAEO,kBAAkB,UAA+C;AAC/D;AAAA,MACL,GAAG,IAAI;AAAA,QACL,SAAS,OAAO,CAAC,KAAK,YAAY;AAChC,iBAAO,CAAC,GAAG,KAAK,GAAG,KAAK,eAAe,OAAO,CAAC;AAAA,QACjD,GAAG,EAAE;AAAA,MACP;AAAA;AAAA,EAEJ;AAAA,EAEO,QACLA,OACArE,QACA,cACS;AACH,2BAAiB,cAAc,mBAAmB;AACpD,0BAAkBA,WAAU,KAAK;AAC5B;AAAA,IACT;AACM,UAAAyB,WAAU,KAAK,eAAe4C,KAAI;AAEtC,WAAA5C,SAAQ,SAASzB,MAAK,KACrB,kBAAkB,EAAE,KAAKyB,UAAS,CAAC6G,YAAWA,YAAW,GAAG;AAAA,EAEjE;AACF;AAEO,MAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA,EACb;AAAA,EACA;AAAA,EAEhB,YAAY1E,QAA0B;AACpC,SAAK,iBAAiB,IAAI;AAAA,MACxBA;AAAA,MACA;AAAA,QACE,MAAM,CAAC,QAAQ,cAAc;AAAA,QAC7B,cAAc;AAAA,QACd,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,mBAAmB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA;AAGF,UAAM,sBAAsB;AAAA,MAC1B,cAAc;AAAA,MACd,WAAW;AAAA,MACX,YAAY;AAAA;AAGd,UAAM,kBAAkB,IAAI;AAAA;AAAA,MACjB;AAAA;AAAA,MACE;AAAA;AAAA,MACU;AAAA;AAAA,MACI;AAAA,MACzB,CAACS,UAASA,MAAK,OAAO,IAAI,IAAI,CAAC,UAAU,MAAM,IAAI;AAAA,MACnDT;AAAA,MACA;AAAA;AAGF,UAAM,mBAAmB,IAAI;AAAA;AAAA,MAClB;AAAA;AAAA,MACE;AAAA;AAAA,MACU;AAAA;AAAA,MACI;AAAA,MACzB,CAACS,UAASA,MAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,OAAO,IAAI;AAAA,MACtDT;AAAA,MACA;AAAA;AAGF,UAAM,qBAAqB,IAAI;AAAA;AAAA,MACpB;AAAA;AAAA,MACE;AAAA;AAAA,MACU;AAAA;AAAA,MACI;AAAA,MACzB,CAACS,UAAS,CAACA,MAAK,QAAQ;AAAA,MACxBT;AAAA,MACA;AAAA;AAGF,UAAM,mBAAmB,IAAI;AAAA;AAAA,MAClB;AAAA;AAAA,MACE;AAAA;AAAA,MACU;AAAA;AAAA,MACI;AAAA,MACzB,CAACS,UAAS,CAACA,MAAK,WAAW,WAAW;AAAA,MACtCT;AAAA,MACA;AAAA;AAGF,SAAK,cAAc;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EAEJ;AAAA,EAEO,4BAA4B,OAAwB;AAClD,iBAAM,SAAS,GAAG;AAAA,EAC3B;AAAA,EAEO,WACL,OACA,UAAoC,IACpCnC,UACA,cACoB;AACpB,UAAM,eAAe,KAAK,eAAe,OAAO,KAAK;AAErD,UAAM,UAAU,aAAa,OAAO,CAAC4C,UAAS;AAC5C,aAAO,EAAE,MAAM,SAAS,CAAC,mBAAmB;AACpC,eAACuC,SAAQ5G,MAAK,IAAI;AACxB,eAAO4G,QAAO,QAAQvC,OAAMrE,QAAO,YAAY;AAAA,OAChD;AAAA,KACF;AAED,WAAOyB,UAAS,QAAQ,QAAQ,MAAM,GAAGA,SAAQ,KAAK,IAAI;AAAA,EAC5D;AAAA,EAEO,cAAciB,KAA4C;AAC/D,WAAO,KAAK,YAAY,KAAK,CAACkE,YAAWA,QAAO,OAAOlE,GAAE;AAAA,EAC3D;AACF;ACtNO,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,KAA4B;AACtC,SAAK,WAAW,gBAAgB,yBAAyB,IAAI,YAAY,EAAE;AAC3E,SAAK,WAAW,gBAAgB,yBAAyB,IAAI,YAAY,EAAE;AAC3E,SAAK,SAAS,IAAI;AAAA,EACpB;AAAA,EAEA,OAAe,yBACb,QAC+B;AAC/B,UAAM,SAAwC;AAC9C,eAAW,CAAC,KAAK1C,MAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,aAAO,GAAG,IAAI,gBAAgB,yBAAyB,KAAKA,MAAK;AAAA,IACnE;AACO;AAAA,EACT;AAAA,EAEA,OAAe,YAAY,KAAmB;AAC5C,WACE,MAAM,QAAQ,GAAG,KACjB,IAAI,UAAU,MACb,OAAO,IAAI,CAAC,MAAM,YAAY,MAAM,QAAQ,IAAI,CAAC,CAAC;AAAA,EAEvD;AAAA,EAEA,OAAe,yBACb,MACAA,QACe;AACf,QAAI,CAAC,gBAAgB,YAAYA,MAAK,EAAU,QAAAA;AAE1C,WAAC,SAAS,KAAK,IAAIA;AACnB,iBAAO,SAAS;AACtB,UAAM,OAAO,MAAM,QAAQ,OAAO,IAAI,UAAUA,OAAM,CAAC;AAEvD,YAAQ,MAAM;AAAA,MACZ,KAAK;AACI;AAAA,UACL;AAAA,UACA;AAAA,UACA,GAAG;AAAA,UACH,cAAc;AAAA,UACd,SAAS,KAAK,WAAW,QAAQ,CAAC;AAAA;AAAA,MAEtC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AACE,eAAO,EAAE,MAAM,MAAM,GAAG,KAAK;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,IAAI,MAAM;AACR,WAAO,CAAC,GAAG,OAAO,OAAO,KAAK,QAAQ,GAAG,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC;AAAA,EAC1E;AAAA,EAEA,SAAS,MAAyC;AAChD,WAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI;AAAA,EAClD;AACF;AAEO,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAC3B,YACSiB,QAEA,MACA,MACA,SACA,cACA,SACP;AAPO,iBAAAA;AAEA;AACA;AACA;AACA;AACA;AAAA,EACN;AACL;AAEO,MAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA,EAC5B,YAAmB,SAA4B;AAA5B;AAAA,EAA6B;AAAA,EAEhD,IAAI,MAAM;AACR,WAAO,KAAK;AAAA,EACd;AACF;AAEO,MAAM,iBAAyC;AAAA;AAAA;AAAA;AAAA;AAAA,EAE3C;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKT;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,KAAmB;AAC7B,SAAK,OAAO,IAAI;AAChB,SAAK,eAAe,IAAI;AACxB,SAAK,WAAW,IAAI;AACpB,SAAK,gBAAgB,IAAI;AACzB,SAAK,cAAc,IAAI;AACvB,SAAK,aAAa,IAAI,cAAc,IAAI,aAAa;AACrD,SAAK,eACH,IAAI,gBAAgB,IAAI,SAAS,WAAW,cAAc;AAC5D,SAAK,cAAc,IAAI;AAClB,iBAAQ,IAAI,SAAS;AACrB,kBAAS,IAAI,UAAU;AAC5B,SAAK,iBAAiB,IAAI;AAC1B,SAAK,cAAc,IAAI;AACvB,SAAK,kBAAkB,IAAI;AAE3B,SAAK,SAAS,IAAI,gBAAgB,IAAI,SAAS,EAAE;AAC5C,mBAAU,iBAAiB,oBAAoB,GAAG;AAClD,sBAAa,cAAc,IAAI,aAAa;AAAA,EACnD;AAAA,EAEA,OAAe,oBAAoB,KAA4B;AAC7D,UAAM,EAAE,QAAQ,gBAAgB,aAAa,oBAAoB;AACjE,UAAM,UAAU,UAAU,IAAI,IAAI,CAAC,MAAsBA,WAAkB;AACzE,YAAM,aAAa,MAAM,QAAQ,IAAI,IAAI,UAAU;AAEnD,aAAO,IAAI;AAAA,QACTA;AAAA,QACA,cAAcA,MAAK;AAAA,QACnB;AAAA,QACA,iBAAiBA,MAAK;AAAA,QACtB,MAAM,QAAQ,IAAI,IAAI,OAAO;AAAA,QAC7B,kBAAkBA,MAAK;AAAA;AAAA,IACzB,CACD;AACM,eAAI,iBAAiB,MAAM;AAAA,EACpC;AAAA,EAEA,IAAI,WAAmB;AACrB,YAAQ,KAAK,WAAW,KAAK,WAAW,MAAM,MAAM,KAAK;AAAA,EAC3D;AAAA,EAEA,IAAI,gBAAyB;AAC3B,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,wBAAwB,QAAwC;AAC9D,UAAM,qBAAqB;AAC3B,UAAM,gBAAgB,mBAAmB,uBAAuB,KAAK,IAAI;AAClE,YAAC,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,OAAO,MAAM,CAAC,CAAC;AAAA,EACvD;AAAA,EAEA,IAAI,aAAsB;AACjB,gBAAK,WAAW,SAAS,eAAe;AAAA,EACjD;AAAA,EAEA,IAAI,yBAAiC;AAC/B,aAAK,WAAmB;AACxB,aAAK,aAAqB;AACvB;AAAA,EACT;AACF;AAEO,MAAM,mBAAiD;AAAA,EAC5D,eAAe;AAAA,IACb,MAAM;AAAA,IACN,cAAc;AAAA,IACd,UAAU;AAAA,IACV,OAAO,EAAE,UAAU,IAAI,UAAU,GAAG;AAAA,IACpC,QAAQ,CAAC,GAAG;AAAA,IACZ,aAAa,CAAC,yBAAyB;AAAA,IACvC,gBAAgB,CAAC,KAAK;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,aAAa;AAAA,EACf;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,cAAc;AAAA,IACd,UAAU;AAAA,IACV,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG;AAAA,IAC/C,QAAQ,CAAC,GAAG;AAAA,IACZ,aAAa,CAAC,EAAE;AAAA,IAChB,gBAAgB,CAAC,KAAK;AAAA,IACtB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,cAAc;AAAA,IACd,UAAU;AAAA,IACV,OAAO,EAAE,UAAU,IAAI,UAAU,GAAG;AAAA,IACpC,QAAQ,CAAC;AAAA,IACT,aAAa,CAAC;AAAA,IACd,gBAAgB,CAAC;AAAA,IACjB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,aAAa;AAAA,EACf;AACF;AAEO,SAAS,iBAAiB,UAAwC;AAChE;AAAA,IAAU;AAAA,IAAU,CAAC,YAC1B,QAAQ,SAAS,MAAM,GAAG;AAAA;AAE9B;AAJgB;AAMT,SAAS,yBAAyB,YAAsC;AAC7E,SAAO,IAAI,iBAAiB;AAAA,IAC1B,MAAM;AAAA,IACN,cAAc;AAAA,IACd,UAAU,WAAW,SAAS,GAAG,IAAI,WAAW,MAAM,GAAG,EAAE,IAAI;AAAA,IAC/D,eAAe;AAAA,IACf,aAAa;AAAA,IACb,OAAO,CAAC;AAAA,IACR,QAAQ,CAAC;AAAA,IACT,aAAa,CAAC;AAAA,IACd,gBAAgB,CAAC;AAAA,IACjB,aAAa;AAAA,GACE;AACnB;AAbgB;AAeH,wBAAkB,4BAAY,WAAW,MAAM;AACpD,yBAAiB,IAAsC,EAAE;AACzD,gCAAwB,IAAsC,EAAE;AAChE,yBAAiB,IAAI,KAAK;AAC1B,2BAAmB,IAAI,KAAK;AAElC,QAAM,WAAW,SAAS,MAAM,OAAO,OAAO,eAAe,KAAK,CAAC;AACnE,QAAM,kBAAkB;AAAA,IAAS,MAC/B,SAAS,MAAM;AAAA,MACb,CAAC,aACE,eAAe,SAAS,CAAC,QAAQ,gBACjC,iBAAiB,SAAS,CAAC,QAAQ;AAAA,IACxC;AAAA;AAEF,QAAM,oBAAoB;AAAA,IACxB,MAAM,IAAI,kBAAkB,gBAAgB,KAAK;AAAA;AAEnD,QAAM,WAAW,SAAS,MAAM,iBAAiB,gBAAgB,KAAK,CAAC;AAEvE,WAAS,eAAekqB,WAA0B;AAChD,UAAM,oBAAsD;AAC5D,UAAM,2BAA6D;AACnE,eAAW,WAAWA,WAAU;AAC1B;AACI,4BAAc,IAAI,iBAAiB,OAAO;AAC9B,kCAAQ,IAAI,IAAI;AACT,yCAAQ,YAAY,IAAI;AAAA,eAC1CtoB,IAAG;AAGF,sBAAM,yBAAyBA,EAAC;AAAA,MAC1C;AAAA,IACF;AACA,mBAAe,QAAQ;AACvB,0BAAsB,QAAQ;AAAA,EAChC;AAhBS;AAiBT,WAAS,WAAW,SAAuB;AACnC,wBAAc,IAAI,iBAAiB,OAAO;AACjC,yBAAM,QAAQ,IAAI,IAAI;AACf,gCAAM,QAAQ,YAAY,IAAI;AAAA,EACtD;AAJS;AAKT,WAAS,eAAewB,OAA2C;AAEjE,WAAO,eAAe,MAAMA,MAAK,aAAa,UAAU,IAAI,KAAK;AAAA,EACnE;AAHS;AAKF;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;AAEY,8BAAwB,4BAAY,iBAAiB,MAAM;AAChE,0BAAkB,IAAI,EAAE;AACxB,8BAAsB,IAA4B,EAAE;AAC1D,QAAM,uBAAuB;AAAA,IAAS,MACpC,OAAO,KAAK,oBAAoB,KAAK;AAAA;AAEjC,mBAAW,IAAI,KAAK;AAE1B,QAAM,sBAAsB,mCAAY;AAClC,SAAC,SAAS,OAAO;AACf;AACF,cAAM,WAAW,MAAM,MAAM,IAAI,oCAAoC;AACrE,4BAAoB,QAAQ,SAAS;AACrC,iBAAS,QAAQ;AAAA,eACV,OAAO;AACN,sBAAM,mCAAmC,KAAK;AAAA,MACxD;AAAA,IACF;AAAA,KAT0B;AAYtB,2BAAmB,wBAAC,YAA8B;AAC/C,kCAAuB,QAAQ,IAAI;AAAA,KADnB;AAInB,iCAAyB,wBAAC,aAAqB;AAC5C,+BAAoB,MAAM,QAAQ,KAAK;AAAA,KADjB;AAI/B,QAAM,eAAe;AACf,sBAAc,SAA6B,MAAM;AACrD,WAAO,qBAAqB,MACzB,IAAI,CAAC,aAAqB,aAAa,eAAe,QAAQ,CAAC,EAC/D,OAAO,CAAC,YAA8B,YAAY,MAAS,EAC3D,MAAM,GAAG,gBAAgB,KAAK;AAAA,GAClC;AAEM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;AChaD,SAAS,gBAAgB,aAAkB9B,OAA+B;AACxE,aAAW,OAAOA,OAAM;AACtB,QAAI,OAAO,UAAU;AACnB,aAAO,SAAS,GAAG;AAAA,IACrB;AACA,eAAW,KAAK,UAAU;AACpB,YAAE,SAAS,GAAG,GAAG;AACnB,eAAO,SAAS,CAAC;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AACO;AACT;AAZS;AAeF,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAEhB;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAET;AAAA;AAAA,EAEA,kBAA0B;AAAA;AAAA,EAE1B,SAAiB;AAAA;AAAA,EAEjB,aAAqB;AAAA;AAAA,EAErB,cAAsB;AAAA;AAAA,EAEtB,aAAqB;AAAA;AAAA,EAErB,iBAAyB;AAAA;AAAA,EAEzB,OAAiB;AAAA;AAAA,EAEjB,QAAgB;AAAA;AAAA,EAEhB,sBAA+B;AAAA;AAAA,EAE/B,oBAA6B;AAAA;AAAA,EAE7B,aAAqB;AAAA,EAErB,YAAY,MAAc,WAAmB;AAC3C,SAAK,YAAY;AACjB,SAAK,uBAAuB,KAAK,WAAW,MAAM,GAAG;AACrD,SAAK,uBAAuB,KAAK,qBAAqB,MAAM,GAAG,EAAE,IAAS;AAC1E,QAAI,KAAK,qBAAqB,SAAS,cAAc,GAAG;AACjD,kCAAuB,KAAK,qBAAqB;AAAA,QACpD;AAAA,QACA,CAAC,eAAe;AAAA;AAAA,IAEpB;AACA,SAAK,QAAQ,KAAK;AAClB,SAAK,YAAY;AACjB,SAAK,MAAM,GAAG,SAAS,IAAI,KAAK,oBAAoB;AACpD,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,mBAAmB;AACjB,SAAK,aAAa;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,KAAK,KAAK,IAAI;AAAA,IAElB,OAAK,IAAI,EACT;EACL;AAAA;AAAA,EAGA,MAAM,OAAsB;AACtB,aAAK,uBAAuB,KAAK,mBAAmB;AACtD;AAAA,IACF;AACA,SAAK,oBAAoB;AACrB;AACF,YAAM,WAAW,MAAM,IAAI,aAAa,KAAK,WAAW,KAAK,SAAS;AACtE,UAAI,CAAC,UAAU;AACb;AAAA,MACF;AACA,WAAK,QACH;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,WACG,KAAK;AACZ,WAAK,kBACH,gBAAgB,UAAU,0BAA0B,cAAc,KAClE;AACF,WAAK,SACH,gBAAgB,UAAU,oBAAoB,QAAQ,KAAK;AAC7D,WAAK,cACH,gBAAgB,UAAU,yBAAyB,aAAa,KAAK;AACvE,WAAK,aACH,gBAAgB,UAAU,wBAAwB,YAAY,KAAK;AACrE,WAAK,aACH,gBAAgB,UAAU,wBAAwB,YAAY,KAAK;AACrE,WAAK,iBACH;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,MACG;AACP,WAAK,QACH;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACG;AACP,YAAM,qBACJ,gBAAgB,UAAU,kBAAkB,MAAM,KAAK;AACpD,kBAAO,mBAAmB,MAAM,GAAG,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAM;AACjE,WAAK,sBAAsB;AAC3B,WAAK,iBAAiB;AAAA,aACf,OAAO;AACd,cAAQ,MAAM,gCAAgC,KAAK,WAAW,MAAM,KAAK;AAAA,IAC3E;AAAA,EACF;AACF;AAEY,sCAAA6oB,mBAAL;AACLA,iBAAA;AACAA,iBAAA;AACAA,iBAAA;AAHUA;AAAA;AAML,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAKvB,YAAmB,WAAmB;AAAnB;AAAA,EAAoB;AAAA;AAAA,EAHvC,SAAwC;AAAA,EACxC,QAAuB;AAAA,EAIvB,IAAI,MAAc;AAChB,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO;AACP,aAAK,UAAU,GAA6B;AACvC;AAAA,IACT;AACA,SAAK,QAAQ;AACb,UAAM,SAAS,MAAM,IAAI,UAAU,KAAK,SAAS;AACjD,eAAW,SAAS,QAAQ;AAC1B,WAAK,OAAO,KAAK,IAAI,IAAI,cAAc,OAAO,KAAK,SAAS;AAAA,IAC9D;AACA,SAAK,QAAQ;AACN;AAAA,EACT;AACF;AAGa,sBAAgB,4BAAY,UAAU,MAAM;AACjD,2BAAmB,IAAc,EAAE;AACnC,4BAAoB,IAAiC,EAAE;AAC7D,QAAM,eAAe;AAAA,IAAwB,MAC3C,iBAAiB,MAAM;AAAA,MACrB,CAAC,eAAe,kBAAkB,MAAM,UAAU;AAAA,IACpD;AAAA;AAEF,QAAM,SAAS;AAAA,IAA0B,MACvC,aAAa,MAAM,QAAQ,CAAC,WAAW,OAAO,OAAO,OAAO,MAAM,CAAC;AAAA;AAMrE,iBAAe,mBAAmB;AACf,6BAAQ,MAAM,IAAI,gBAAgB;AACnD,sBAAkB,QAAQ;AACf,6BAAc,iBAAiB,OAAO;AAC/C,wBAAkB,MAAM,UAAU,IAAI,IAAI,YAAY,UAAU;AAAA,IAClE;AAAA,EACF;AANe;AAQf,iBAAe,qBACb,YAC6B;AACvB,mBAAS,kBAAkB,MAAM,UAAU;AACjD,WAAO,SAAS,MAAM,OAAO,SAAS;AAAA,EACxC;AALe;AAUf,iBAAe,aAAa;AACnB,mBAAQ,IAAI,aAAa,MAAM,IAAI,CAAC,WAAW,OAAO,KAAM,EAAC;AAAA,EACtE;AAFe;AAIR;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;ACjND,eAAsB,aACpB,KACA,cACA,cACA,cACA,UAAgC,MAAM,OACtC;AACM,iBAAS,MAAM,IAAI,qBAAqB,GAAG,GAAG,IAAI,CAAC,UAAU;AAAA,IACjE,GAAG;AAAA,IACH,MAAM,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,KAAK,KAAK;AAAA,EACzC;AAEF,aAAW,QAAQ,OAAO;AAClB,2BAAiB,aAAa,KAAK,IAAI;AAE7C,QAAI,CAAC,gBAAgB;AAEnB,mBAAa,KAAK,IAAI,IAAI,aAAa,IAAI;AAAA,eAClC,QAAQ,cAAc,GAAG;AAElC;AAAA,WACK;AAEL,mBAAa,gBAAgB,IAAI;AAAA,IACnC;AAAA,EACF;AAGA,aAAW,CAAC,MAAM,MAAM,KAAK,OAAO,QAAQ,YAAY,GAAG;AACrD,gBAAQ,MAAM,EAAG;AACjB,SAAC,MAAM,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG;AAC7C,aAAO,aAAa,IAAI;AAAA,IAC1B;AAAA,EACF;AACF;AAlCsB;ACEf,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA,EAmBpB,YAIS,MAIA,cAIAzgB,OACP;AATO;AAIA;AAIA,gBAAAA;AAED,oBAAU,eAAe,IAAI;AACnC,SAAK,OAAO;AACZ,SAAK,YAAY,QAAQ;AACzB,SAAK,eAAe,QAAQ;AAC5B,SAAK,WAAW,QAAQ;AACxB,SAAK,SAAS,QAAQ;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA7BA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAqB;AAAA,EACrB,UAAyB;AAAA,EACzB,kBAAiC;AAAA,EAwBjC,WAAW,SAAiB;AACpB,oBAAU,eAAe,OAAO;AACtC,SAAK,OAAO;AACZ,SAAK,YAAY,QAAQ;AACzB,SAAK,eAAe,QAAQ;AAC5B,SAAK,WAAW,QAAQ;AACxB,SAAK,SAAS,QAAQ;AAAA,EACxB;AAAA,EAEA,OAAO,gBAAgB,MAAwB;AAC7C,WAAO,IAAI,SAAS,MAAM,KAAK,OAAO,EAAE;AAAA,EAC1C;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,CAAC,KAAK;AAAA,EACf;AAAA,EAEA,IAAI,MAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,IAAI,aAAa;AACR,gBAAK,YAAY,KAAK;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,KAAK;AAAA,IACT,QAAQ;AAAA,EACV,IAAyB,IAA6B;AACpD,QAAI,KAAK,eAAgB,CAAC,SAAS,KAAK;AAC/B;AAET,SAAK,YAAY;AACjB,UAAM,OAAO,MAAM,IAAI,YAAY,KAAK,IAAI;AACxC,aAAK,WAAW,KAAK;AACvB,YAAM,IAAI;AAAA,QACR,wBAAwB,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,KAAK,UAAU;AAAA;AAAA,IAEzE;AACK,mBAAU,MAAM,KAAK,KAAK;AAC/B,SAAK,kBAAkB,KAAK;AAC5B,SAAK,YAAY;AACV;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,SAAe;AACb,SAAK,UAAU;AACf,SAAK,kBAAkB;AACvB,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,MAAM,OAAO,SAAoC;AAC/C,UAAM,WAAW,KAAK,cAAc,OAAO,SAAS,gBAAgB,OAAO;AAC3E,aAAS,UAAU,KAAK;AACxB,UAAM,SAAS;AACR;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAK,EAAE,QAAQ,MAAM,IAAyB,IAAuB;AACzE,QAAI,KAAK,eAAe,CAAC,KAAK,cAAc,CAAC,MAAc;AAE3D,UAAM,OAAO,MAAM,IAAI,cAAc,KAAK,MAAM,KAAK,SAAS;AAAA,MAC5D,WAAW,KAAK;AAAA,MAChB,cAAc;AAAA,MACd,WAAW;AAAA,KACZ;AAIK,wBAAe,MAAM,KAAK;AAC5B,eAAO,gBAAgB,UAAU;AACnC,WAAK,eAAe,YAAY;AAChC,WAAK,OAAO,YAAY;AAAA,IAC1B;AACA,SAAK,kBAAkB,KAAK;AACrB;AAAA,EACT;AAAA,EAEA,MAAM,SAAwB;AAC5B,QAAI,KAAK,YAAa;AAEtB,UAAM,OAAO,MAAM,IAAI,eAAe,KAAK,IAAI;AAC3C,aAAK,WAAW,KAAK;AACvB,YAAM,IAAI;AAAA,QACR,0BAA0B,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,KAAK,UAAU;AAAA;AAAA,IAE3E;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,SAAoC;AAC/C,QAAI,KAAK,aAAa;AACpB,WAAK,WAAW,OAAO;AAChB;AAAA,IACT;AAEA,UAAM,OAAO,MAAM,IAAI,aAAa,KAAK,MAAM,OAAO;AAClD,aAAK,WAAW,KAAK;AACvB,YAAM,IAAI;AAAA,QACR,0BAA0B,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,KAAK,UAAU;AAAA;AAAA,IAE3E;AACA,SAAK,WAAW,OAAO;AAGjB,wBAAe,MAAM,KAAK;AAC5B,eAAO,gBAAgB,UAAU;AACnC,WAAK,eAAe,YAAY;AAChC,WAAK,OAAO,YAAY;AAAA,IAC1B;AACO;AAAA,EACT;AACF;AAQa,yBAAmB,4BAAY,YAAY,MAAM;AACtD,0BAAkB,IAA8B,EAAE;AAExD,QAAM,YAAY,SAAS,MAAM,OAAO,OAAO,gBAAgB,KAAK,CAAC;AACrE,QAAM,gBAAgB;AAAA,IAAS,MAC7B,UAAU,MAAM,OAAO,CAAC,SAAmB,KAAK,UAAU;AAAA;AAE5D,QAAM,cAAc;AAAA,IAAS,MAC3B,UAAU,MAAM,OAAO,CAAC,SAAmB,KAAK,QAAQ;AAAA;AAG1D,QAAM,WAAW;AAAA,IACf,MACE;AAAA,MAAoB,UAAU;AAAA,MAAO,CAAC,aACpC,SAAS,KAAK,MAAM,GAAG;AAAA,IACzB;AAAA;AAOE,oBAAY,8BAAO,MAAc,OAAO;AACtC;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,MAChB,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM,KAAK,UAAU,KAAK,IAAI;AAAA,MAC1D,CAAC,cAAc,SAAS;AACtB,qBAAa,eAAe,KAAK;AACjC,qBAAa,OAAO,KAAK;AACzB,qBAAa,OAAO;AAAA,MACtB;AAAA;AAAA,EACF,GAVgB;AAaX;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;ACvOD,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA,EACZ,YAAYlJ,UAAS;AACjB,SAAK,cAAcA,YAAW;AAC9B,SAAK,QAAQ;EAChB;AAAA,EACD,QAAQA,UAAS;AACb,QAAIA,UAAS;AACT,WAAK,cAAcA;AAAA,IACtB;AACD,WAAO,KAAK;AAAA,EACf;AAAA;AAAA,EAED,KAAK,MAAM,SAAS;AAChB,QAAI,OAAO;AACX,QAAI,OAAO,SAAS,UAAU;AAC1B,UAAI,OAAO,SAAS,aAAa;AAC7B,eAAO,KAAK,MAAM,IAAI;AAAA,MACzB,OACI;AACD,aAAK,MAAM,IAAI,IAAI;AAAA,MACtB;AAAA,IACJ;AACD,QAAI,QAAQ,KAAK,MAAM;AAEnB,aAAO;AACP,UAAI,KAAK,cAAc,MAAM;AACzB,eAAO;AAAA,MACV;AACD,WAAK,MAAM,KAAK,IAAI,IAAI;AAAA,IAC3B;AACD,SAAK,YAAY;AACjB,WAAO;AAAA,EACV;AAAA;AAAA,EAED,QAAQ,OAAO,MAAM;AACjB,QAAI,UAAU;AACd,YAAQ,UAAU,KAAK;AACvB,QAAI,WAAW,QAAQ,MAAM,QAAQ;AACrC,QAAI;AACJ,WAAO,UAAU;AACb,UAAI,OAAO,QAAQ,sBAAsB,aAAa;AAElD,gBAAQ,OAAO,QAAQ;AACvB,gBAAQ,oBAAoB;AAAA,MAC/B;AACD,UAAI,OAAO,aAAa,UAAU;AAC9B,mBAAW,KAAK,KAAK,QAAQ;AAAA,MAChC;AACD,eAAS,QAAQ,OAAO;AACxB,iBAAW;AACX,iBAAW;AACX,UAAI,SAAS;AACT,YAAI,QAAQ,MAAM;AACd,oBAAU,QAAQ;AAClB,qBAAW,QAAQ,QAAQ;AAAA,QAC9B;AAAA,MACJ;AAAA,IACJ;AAED,WAAO,QAAQ,YAAY,QAAQ,SAAS;AAAA,EAC/C;AACL;AC5DA,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA,EACP,YAAY,MAAM;AACd,SAAK,OAAO;AACZ,SAAK,UAAU;EAClB;AAAA,EACD,QAAQ,OAAO;AACX,QAAI,CAAC,KAAK,WAAW;AACjB,YAAM,IAAI,MAAM,8CAA8C;AAAA,IACjE;AACD,UAAM,QAAQ,KAAK;AACnB,UAAM,SAAS,KAAK,QAAQ;AAC5B,UAAM,UAAU;AAChB,aAASR,SAAQ,GAAGA,SAAQ,QAAQA,UAAS;AACzC,YAAM2F,UAAS,KAAK,QAAQ3F,MAAK;AACjC,UAAI,OAAO;AACP,aAAK,IAAI,WAAW2F,QAAO,UAAU,EAAE;AAAA,MAC1C;AACD,MAAAA,QAAO,OAAO;AACd,UAAI,OAAO,YAAY,YAAY,QAAQ,SAAS;AAChD,gBAAQ,UAAU;AAClB;AAAA,MACH;AAAA,IACJ;AACD,QAAI,CAAC,QAAQ,QAAQ,KAAK,aAAa;AACnC,WAAK,YAAY,OAAO;AAAA,IAC3B;AAAA,EACJ;AAAA,EACD,IAAI,KAAK;AACL,YAAQ,IAAI,mBAAmB,KAAK,IAAI,UAAU,GAAG,EAAE;AAAA,EAC1D;AAAA,EACD,UAAU,MAAM;AACZ,SAAK,QAAQ,KAAK,GAAG,IAAI;AACzB,WAAO;AAAA,EACV;AAAA,EACD,WAAW,MAAM;AACb,SAAK,QAAQ,QAAQ,GAAG,IAAI;AAC5B,WAAO;AAAA,EACV;AAAA,EACD,QAAQ,YAAY;AAChB,QAAI,CAAC,YAAY;AACb,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC9C;AACD,aAAS3F,SAAQ,GAAGA,SAAQ,KAAK,QAAQ,QAAQA,UAAS;AACtD,YAAM2F,UAAS,KAAK,QAAQ3F,MAAK;AACjC,UAAI2F,QAAO,eAAe,YAAY;AAClC,eAAO3F;AAAA,MACV;AAAA,IACJ;AACD,UAAM,IAAI,MAAM,qBAAqB,UAAU,EAAE;AAAA,EACpD;AAAA,EACD,OAAO;AACH,WAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,EAC9C;AAAA,EACD,MAAM,eAAe,QAAQ;AACzB,UAAMA,SAAQ,KAAK,QAAQ,UAAU;AACrC,SAAK,QAAQ,OAAOA,SAAQ,GAAG,GAAG,GAAG,MAAM;AAC3C,WAAO;AAAA,EACV;AAAA,EACD,OAAO,eAAe,QAAQ;AAC1B,UAAMA,SAAQ,KAAK,QAAQ,UAAU;AACrC,SAAK,QAAQ,OAAOA,QAAO,GAAG,GAAG,MAAM;AACvC,WAAO;AAAA,EACV;AAAA,EACD,QAAQ,eAAe,QAAQ;AAC3B,UAAMA,SAAQ,KAAK,QAAQ,UAAU;AACrC,SAAK,QAAQ,OAAOA,QAAO,GAAG,GAAG,MAAM;AACvC,WAAO;AAAA,EACV;AAAA,EACD,OAAO,YAAY;AACf,UAAMA,SAAQ,KAAK,QAAQ,UAAU;AACrC,SAAK,QAAQ,OAAOA,QAAO,CAAC;AAC5B,WAAO;AAAA,EACV;AAAA,EACD,QAAQ;AACJ,SAAK,QAAQ,SAAS;AACtB,WAAO;AAAA,EACV;AAAA,EACD,iBAAiB,QAAQ;AACrB,QAAI,WAAW,OAAO;AAClB,WAAK,cAAc;AACnB;AAAA,IACH;AACD,QAAI,KAAK,aAAa;AAClB;AAAA,IACH;AACD,SAAK,cAAc,CAAC,YAAY;AAC5B,UAAI,CAAC,QAAQ,WAAW;AACpB,gBAAQ,IAAI,OAAO;AACnB,cAAM,QAAQ,IAAI,MAAM,GAAG,KAAK,IAAI,SAAS;AAC7C,cAAM,WAAW;AACjB,cAAM;AAAA,MACT;AAAA,IACb;AACQ,WAAO;AAAA,EACV;AACL;AChGe,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,EACzB,UAAU,QAAQ;AACd,SAAK,SAAS;AACd,SAAK,YAAY;AACjB,WAAO;AAAA,EACV;AAAA,EACD,OAAO;AACH,SAAK,UAAU;AACf,WAAO;AAAA,EACV;AAAA,EACD,KAAK,OAAO,MAAM;AACd,UAAM,SAAS;AACf,QAAI,OAAO,SAAS,aAAa;AAC7B,YAAM,YAAY;AAAA,IACrB;AACD,UAAM,OAAO,KAAK,QAAQ;AAC1B,UAAM,UAAU,MAAM,WAAW,KAAK;AACtC,QAAI,CAAC,KAAK,UAAU;AAChB,WAAK,WAAW,CAAC,KAAK;AACtB,WAAK,oBAAoB,KAAK,QAAQ;AACtC,WAAK,OAAO;AAAA,IACf,OACI;AACD,WAAK,SAAS,KAAK,SAAS,SAAS,CAAC,EAAE,OAAO;AAC/C,WAAK,SAAS,KAAK,KAAK;AAAA,IAC3B;AACD,UAAM,OAAO;AACb,WAAO;AAAA,EACV;AACL;AC7BA,SAAS,YAAY,IAAI;AACrB,QAAM,aAAa,uBAAuB,KAAK,GAAG,SAAU;AAC5D,SAAO,IAAI,OAAO,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC;AAClD;AAHS;AAIM,SAASgH,QAAM,KAAK;AAC/B,MAAI,OAAO,QAAQ,UAAU;AACzB,WAAO;AAAA,EACV;AACD,MAAI,QAAQ,MAAM;AACd,WAAO;AAAA,EACV;AACD,MAAI,MAAM,QAAQ,GAAG,GAAG;AACpB,WAAO,IAAI,IAAIA,OAAK;AAAA,EACvB;AACD,MAAI,eAAe,MAAM;AACrB,WAAO,IAAI,KAAK,IAAI,QAAS;AAAA,EAChC;AACD,MAAI,eAAe,QAAQ;AACvB,WAAO,YAAY,GAAG;AAAA,EACzB;AACD,QAAM,SAAS;AACf,aAAW,QAAQ,KAAK;AACpB,QAAI,OAAO,UAAU,eAAe,KAAK,KAAK,IAAI,GAAG;AACjD,aAAO,IAAI,IAAIA,QAAM,IAAI,IAAI,CAAC;AAAA,IACjC;AAAA,EACJ;AACD,SAAO;AACX;AAvBwBA;ACFxB,MAAM,oBAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAC9B,YAAY,MAAM,OAAO;AACrB;AACA,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,OAAO;AAAA,EACf;AAAA,EACD,UAAU,QAAQ;AACd,QAAI,KAAK,QAAQ,mBAAmB,OAAO,WAAW,UAAU;AAC5D,YAAMA,SAAQ,OAAO,KAAK,QAAQ,oBAAoB,aAChD,KAAK,QAAQ,kBACbojB;AACN,UAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAC/B,eAAO,CAAC,IAAIpjB,OAAM,OAAO,CAAC,CAAC;AAAA,MAC9B;AACD,UAAI,OAAO,OAAO,CAAC,MAAM,UAAU;AAC/B,eAAO,CAAC,IAAIA,OAAM,OAAO,CAAC,CAAC;AAAA,MAC9B;AAAA,IACJ;AACD,WAAO,MAAM,UAAU,MAAM;AAAA,EAChC;AACL;ACtBA,MAAM,qBAAqB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAC/B,YAAY,MAAM6d,QAAO;AACrB;AACA,SAAK,OAAO;AACZ,SAAK,QAAQA;AACb,SAAK,OAAO;AAAA,EACf;AACL;ACPA,MAAM,uBAAuB,QAAQ;AAAA;AAAA;AAAA;AAAA,EACjC,YAAYA,QAAO;AACf;AACA,SAAK,QAAQA;AACb,SAAK,OAAO;AAAA,EACf;AACL;ACPO,MAAMwF,eAAa,gCAAS,yBAAyB,SAAS;AACjE,MAAI,QAAQ,SAAS,QAAQ,OAAO;AAChC,YAAQ,UAAU,MAAS,EAAE,KAAI;AACjC;AAAA,EACH;AACD,MAAI,OAAO,QAAQ,SAAS,aAAa;AACrC,QAAI,OAAO,QAAQ,UAAU,YAAY;AACrC,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAChD;AACD,YAAQ,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE;AACnC;AAAA,EACH;AACD,MAAI,OAAO,QAAQ,UAAU,aAAa;AACtC,YAAQ,UAAU,CAAC,QAAQ,MAAM,GAAG,CAAC,CAAC,EAAE;AACxC;AAAA,EACH;AACD,MAAI,OAAO,QAAQ,SAAS,cACxB,OAAO,QAAQ,UAAU,YAAY;AACrC,UAAM,IAAI,MAAM,6BAA6B;AAAA,EAChD;AACD,UAAQ,WAAW,QAAQ,SAAS,OAAO,SAAS,OAAO,QAAQ;AACnE,UAAQ,YAAY,QAAQ,UAAU,OAAO,SAAS,OAAO,QAAQ;AACrE,MAAI,QAAQ,aAAa,QAAQ,WAAW;AACxC,YAAQ,UAAU,CAAC,QAAQ,MAAM,QAAQ,KAAK,CAAC,EAAE;AACjD;AAAA,EACH;AACD,MAAI,QAAQ,aAAa,aAAa,QAAQ,aAAa,UAAU;AACjE,YAAQ,UAAU,CAAC,QAAQ,MAAM,QAAQ,KAAK,CAAC,EAAE;AACjD;AAAA,EACH;AACD,MAAI,QAAQ,aAAa,UAAU;AAC/B,YAAQ,cAAc,MAAM,QAAQ,QAAQ,IAAI;AAAA,EACnD;AACD,MAAI,QAAQ,cAAc,UAAU;AAChC,YAAQ,eAAe,MAAM,QAAQ,QAAQ,KAAK;AAAA,EACrD;AACD,MAAI,QAAQ,gBAAgB,QAAQ,cAAc;AAC9C,YAAQ,UAAU,CAAC,QAAQ,MAAM,QAAQ,KAAK,CAAC,EAAE;AACjD;AAAA,EACH;AACD,MAAI,QAAQ,gBAAgB,QAAQ;AAChC,QAAI,QAAQ,iBAAiB,QAAQ;AACjC,cACK,UAAU,CAAC,QAAQ,KAAK,SAAU,GAAE,QAAQ,MAAM,SAAQ,CAAE,CAAC,EAC7D;IACR,OACI;AACD,cAAQ,UAAU,CAAC,QAAQ,MAAM,QAAQ,KAAK,CAAC,EAAE;IACpD;AAAA,EACJ;AACL,GAlD0B;AAmD1BA,aAAW,aAAa;AACjB,MAAMC,gBAAc,gCAAS,0BAA0B,SAAS;AACnE,MAAI,OAAO,QAAQ,UAAU,aAAa;AACtC,YAAQ,UAAU,QAAQ,IAAI,EAAE,KAAI;AACpC;AAAA,EACH;AACD,UAAQ,SAAS,CAAC,MAAM,QAAQ,QAAQ,KAAK;AAC7C,MAAI,QAAQ,QAAQ;AAChB;AAAA,EACH;AACD,QAAM,iBAAiB,QAAQ;AAC/B,MAAI,eAAe,WAAW,GAAG;AAC7B,YAAQ,UAAU,eAAe,CAAC,CAAC,EAAE,KAAI;AACzC;AAAA,EACH;AACD,MAAI,eAAe,WAAW,GAAG;AAC7B,QAAI,QAAQ,gBAAgB,QAAQ;AAChC,YAAM,YAAY,uBAAuB,KAAK,eAAe,CAAC,CAAC;AAC/D,UAAI,WAAW;AACX,gBAAQ,UAAU,IAAI,OAAO,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,KAAI;AAC9D;AAAA,MACH;AAAA,IACJ;AACD,YAAQ,UAAU,eAAe,CAAC,CAAC,EAAE,KAAI;AACzC;AAAA,EACH;AACD,MAAI,eAAe,WAAW,KAAK,eAAe,CAAC,MAAM,GAAG;AACxD,YAAQ,UAAU,MAAS,EAAE,KAAI;AAAA,EACpC;AACL,GA5B2B;AA6B3BA,cAAY,aAAa;AAClB,MAAMC,kBAAgB,gCAAS,qBAAqB,SAAS;AAChE,MAAI,OAAO,QAAQ,UAAU,aAAa;AACtC,YAAQ,UAAU,QAAQ,KAAK,EAAE,KAAI;AACrC;AAAA,EACH;AACD,UAAQ,SAAS,CAAC,MAAM,QAAQ,QAAQ,KAAK;AAC7C,MAAI,QAAQ,QAAQ;AAChB;AAAA,EACH;AACD,QAAM,iBAAiB,QAAQ;AAC/B,MAAI,eAAe,WAAW,GAAG;AAC7B,YAAQ,UAAU,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE;AAC7C;AAAA,EACH;AACD,MAAI,eAAe,WAAW,GAAG;AAC7B,YAAQ,UAAU,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE;AAC1D;AAAA,EACH;AACD,MAAI,eAAe,WAAW,KAAK,eAAe,CAAC,MAAM,GAAG;AACxD,YAAQ,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;EAC1C;AACL,GArB6B;AAsB7BA,gBAAc,aAAa;ACrGpB,MAAM,4BAA4B,wBAAC,YAAY;AAClD,MAAI,CAAC,WAAW,CAAC,QAAQ,UAAU;AAC/B;AAAA,EACH;AACD,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI;AACJ,MAAI,SAAS,QAAQ;AACrB,WAASvqB,SAAQ,GAAGA,SAAQ,QAAQA,UAAS;AACzC,YAAQ,QAAQ,SAASA,MAAK;AAC9B,QAAI,OAAO,MAAM,WAAW,aAAa;AACrC;AAAA,IACH;AACD,aAAS,UAAU;AACnB,WAAO,MAAM,SAAS,IAAI,MAAM;AAAA,EACnC;AACD,MAAI,UAAU,QAAQ,aAAa;AAC/B,WAAO,KAAK;AAAA,EACf;AACD,UAAQ,UAAU,MAAM,EAAE,KAAI;AAClC,GAnByC;AAoBzC,0BAA0B,aAAa;AAChC,MAAM,oBAAoB,wBAAC,YAAY;AAC1C,MAAI,QAAQ,eAAe,QAAQ,aAAa,UAAU;AACtD;AAAA,EACH;AACD,QAAM,OAAO,QAAQ;AACrB,QAAM,QAAQ,QAAQ;AACtB,MAAI;AACJ,MAAI;AACJ,QAAM,iBAAiB,QAAQ,QAAQ;AACvC,OAAK,QAAQ,MAAM;AACf,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,GAAG;AACnD;AAAA,IACH;AACD,QAAI,kBAAkB,CAAC,eAAe,MAAM,OAAO,GAAG;AAClD;AAAA,IACH;AACD,YAAQ,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;AAC/C,YAAQ,KAAK,OAAO,IAAI;AAAA,EAC3B;AACD,OAAK,QAAQ,OAAO;AAChB,QAAI,CAAC,OAAO,UAAU,eAAe,KAAK,OAAO,IAAI,GAAG;AACpD;AAAA,IACH;AACD,QAAI,kBAAkB,CAAC,eAAe,MAAM,OAAO,GAAG;AAClD;AAAA,IACH;AACD,QAAI,OAAO,KAAK,IAAI,MAAM,aAAa;AACnC,cAAQ,IAAI,YAAY,QAAW,MAAM,IAAI,CAAC;AAC9C,cAAQ,KAAK,OAAO,IAAI;AAAA,IAC3B;AAAA,EACJ;AACD,MAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,WAAW,GAAG;AACpD,YAAQ,UAAU,MAAS,EAAE,KAAI;AACjC;AAAA,EACH;AACD,UAAQ,KAAI;AAChB,GApCiC;AAqCjC,kBAAkB,aAAa;AACxB,MAAMsqB,gBAAc,gCAAS,kBAAkB,SAAS;AAC3D,MAAI,CAAC,QAAQ,QAAQ;AACjB;AAAA,EACH;AACD,QAAM,cAAc,QAAQ;AAC5B,MAAI,YAAY,IAAI;AAChB;AAAA,EACH;AACD,QAAM,cAAc;AACpB,MAAI;AACJ,MAAI;AACJ,OAAK,QAAQ,aAAa;AACtB,YAAQ,IAAI,aAAa,QAAQ,KAAK,IAAI,GAAG,YAAY,IAAI,CAAC;AAC9D,YAAQ,KAAK,OAAO,IAAI;AAAA,EAC3B;AACD,UAAQ,KAAI;AAChB,GAhB2B;AAiB3BA,cAAY,aAAa;AAClB,MAAME,+BAA6B,gCAASA,4BAA2B,SAAS;AACnF,MAAI,CAAC,WAAW,CAAC,QAAQ,UAAU;AAC/B;AAAA,EACH;AACD,QAAM,oBAAoB,QAAQ;AAClC,MAAI,kBAAkB,IAAI;AACtB;AAAA,EACH;AACD,QAAM,SAAS,QAAQ;AACvB,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI;AACJ,WAASxqB,SAAQ,GAAGA,SAAQ,QAAQA,UAAS;AACzC,YAAQ,QAAQ,SAASA,MAAK;AAC9B,UAAM,WAAW,MAAM;AACvB,QAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,MAAM,QAAQ,KAC3D,MAAM,WAAW,QAAW;AAC5B,aAAO,OAAO,QAAQ;AAAA,IACzB,WACQ,OAAO,QAAQ,MAAM,MAAM,QAAQ;AACxC,aAAO,QAAQ,IAAI,MAAM;AAAA,IAC5B;AAAA,EACJ;AACD,UAAQ,UAAU,MAAM,EAAE,KAAI;AAClC,GAvB0C;AAwB1CwqB,6BAA2B,aAAa;AACjC,MAAMD,kBAAgB,gCAAS,oBAAoB,SAAS;AAC/D,MAAI,CAAC,QAAQ,QAAQ;AACjB;AAAA,EACH;AACD,QAAM,cAAc,QAAQ;AAC5B,MAAI,YAAY,IAAI;AAChB;AAAA,EACH;AACD,QAAM,cAAc,QAAQ;AAC5B,MAAI;AACJ,MAAI;AACJ,OAAK,QAAQ,aAAa;AACtB,YAAQ,IAAI,eAAe,YAAY,IAAI,CAAC;AAC5C,YAAQ,KAAK,OAAO,IAAI;AAAA,EAC3B;AACD,UAAQ,KAAI;AAChB,GAhB6B;AAiB7BA,gBAAc,aAAa;AACpB,MAAME,iCAA+B,wBAAC,YAAY;AACrD,MAAI,CAAC,WAAW,CAAC,QAAQ,UAAU;AAC/B;AAAA,EACH;AACD,QAAM,oBAAoB,QAAQ;AAClC,MAAI,kBAAkB,IAAI;AACtB;AAAA,EACH;AACD,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI;AACJ,QAAM5F,SAAQ;AACd,WAAS7kB,SAAQ,GAAGA,SAAQ,QAAQA,UAAS;AACzC,YAAQ,QAAQ,SAASA,MAAK;AAC9B,UAAM,WAAW,MAAM;AACvB,QAAI6kB,OAAM,QAAQ,MAAM,MAAM,QAAQ;AAClC,MAAAA,OAAM,QAAQ,IAAI,MAAM;AAAA,IAC3B;AAAA,EACJ;AACD,UAAQ,UAAUA,MAAK,EAAE,KAAI;AACjC,GAnB4C;AAoB5C4F,+BAA6B,aAAa;ACxI1C,MAAM,eAAe,gCAAU,QAAQ,QAAQ,QAAQ,QAAQ;AAC3D,SAAO,OAAO,MAAM,MAAM,OAAO,MAAM;AAC3C,GAFqB;AAGrB,MAAM,eAAe,gCAAU,QAAQ,QAAQ,OAAO,SAAS;AAC3D,QAAM,OAAO,OAAO;AACpB,QAAM,OAAO,OAAO;AACpB,MAAIxhB,IAAG6M;AAEP,QAAM,SAAS,IAAI,MAAM,OAAO,CAAC;AACjC,OAAK7M,KAAI,GAAGA,KAAI,OAAO,GAAGA,MAAK;AAC3B,WAAOA,EAAC,IAAI,IAAI,MAAM,OAAO,CAAC;AAC9B,SAAK6M,KAAI,GAAGA,KAAI,OAAO,GAAGA,MAAK;AAC3B,aAAO7M,EAAC,EAAE6M,EAAC,IAAI;AAAA,IAClB;AAAA,EACJ;AACD,SAAO,QAAQ;AAEf,OAAK7M,KAAI,GAAGA,KAAI,OAAO,GAAGA,MAAK;AAC3B,SAAK6M,KAAI,GAAGA,KAAI,OAAO,GAAGA,MAAK;AAC3B,UAAI,MAAM,QAAQ,QAAQ7M,KAAI,GAAG6M,KAAI,GAAG,OAAO,GAAG;AAC9C,eAAO7M,EAAC,EAAE6M,EAAC,IAAI,OAAO7M,KAAI,CAAC,EAAE6M,KAAI,CAAC,IAAI;AAAA,MACzC,OACI;AACD,eAAO7M,EAAC,EAAE6M,EAAC,IAAI,KAAK,IAAI,OAAO7M,KAAI,CAAC,EAAE6M,EAAC,GAAG,OAAO7M,EAAC,EAAE6M,KAAI,CAAC,CAAC;AAAA,MAC7D;AAAA,IACJ;AAAA,EACJ;AACD,SAAO;AACX,GAzBqB;AA0BrB,MAAM,YAAY,gCAAU,QAAQ,QAAQ,QAAQ,SAAS;AACzD,MAAI,SAAS,OAAO;AACpB,MAAI,SAAS,OAAO;AACpB,QAAM,cAAc;AAAA,IAChB,UAAU,CAAE;AAAA,IACZ,UAAU,CAAE;AAAA,IACZ,UAAU,CAAE;AAAA,EACpB;AACI,SAAO,WAAW,KAAK,WAAW,GAAG;AACjC,UAAM,aAAa,OAAO,MAAM,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,OAAO;AAC/E,QAAI,YAAY;AACZ,kBAAY,SAAS,QAAQ,OAAO,SAAS,CAAC,CAAC;AAC/C,kBAAY,SAAS,QAAQ,SAAS,CAAC;AACvC,kBAAY,SAAS,QAAQ,SAAS,CAAC;AACvC,QAAE;AACF,QAAE;AAAA,IACL,OACI;AACD,YAAM,qBAAqB,OAAO,MAAM,EAAE,SAAS,CAAC;AACpD,YAAM,oBAAoB,OAAO,SAAS,CAAC,EAAE,MAAM;AACnD,UAAI,qBAAqB,mBAAmB;AACxC,UAAE;AAAA,MACL,OACI;AACD,UAAE;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AACD,SAAO;AACX,GA7BkB;AA8BlB,MAAM,MAAM,gCAAU,QAAQ,QAAQ,OAAO,SAAS;AAClD,QAAM,eAAe,WAAW;AAChC,QAAM,SAAS,aAAa,QAAQ,QAAQ,SAAS,cAAc,YAAY;AAC/E,SAAO,UAAU,QAAQ,QAAQ,QAAQ,YAAY;AACzD,GAJY;AAKZ,MAAe;AAAA,EACX;AACJ;ACrEA,MAAM,aAAa;AACnB,SAAS,qBAAqB,QAAQ,QAAQ,MAAM,MAAM;AACtD,WAAS,SAAS,GAAG,SAAS,MAAM,UAAU;AAC1C,UAAM,OAAO,OAAO,MAAM;AAC1B,aAAS,SAAS,GAAG,SAAS,MAAM,UAAU;AAC1C,YAAM,OAAO,OAAO,MAAM;AAC1B,UAAI,WAAW,UAAU,SAAS,MAAM;AACpC,eAAO;AAAA,MACV;AAAA,IACJ;AAAA,EACJ;AACL;AAVS;AAWT,SAAS,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,SAAS;AACzD,QAAM,SAAS,OAAO,MAAM;AAC5B,QAAMd,UAAS,OAAO,MAAM;AAC5B,MAAI,WAAWA,SAAQ;AACnB,WAAO;AAAA,EACV;AACD,MAAI,OAAO,WAAW,YAAY,OAAOA,YAAW,UAAU;AAC1D,WAAO;AAAA,EACV;AACD,QAAM,aAAa,QAAQ;AAC3B,MAAI,CAAC,YAAY;AAEb,WAAO,QAAQ,mBAAmB,WAAW;AAAA,EAChD;AACD,UAAQ,aAAa,QAAQ,cAAc;AAC3C,MAAI,QAAQ,QAAQ,WAAW,MAAM;AACrC,MAAI,OAAO,UAAU,aAAa;AAC9B,YAAQ,WAAW,MAAM,IAAI,QAAQ,WAAW,QAAQ,MAAM;AAAA,EACjE;AACD,MAAI,OAAO,UAAU,aAAa;AAC9B,WAAO;AAAA,EACV;AACD,UAAQ,aAAa,QAAQ,cAAc;AAC3C,MAAI,QAAQ,QAAQ,WAAW,MAAM;AACrC,MAAI,OAAO,UAAU,aAAa;AAC9B,YAAQ,WAAW,MAAM,IAAI,QAAQ,WAAWA,SAAQ,MAAM;AAAA,EACjE;AACD,MAAI,OAAO,UAAU,aAAa;AAC9B,WAAO;AAAA,EACV;AACD,SAAO,UAAU;AACrB;AA/BS;AAgCF,MAAMqV,eAAa,gCAAS,iBAAiB,SAAS;AACzD,MAAI,CAAC,QAAQ,aAAa;AACtB;AAAA,EACH;AACD,QAAM,eAAe;AAAA,IACjB,YAAY,QAAQ,WAAW,QAAQ,QAAQ;AAAA,IAC/C,iBAAiB,QAAQ,WAAW,QAAQ,QAAQ;AAAA,EAC5D;AACI,MAAI,aAAa;AACjB,MAAI,aAAa;AACjB,MAAIrqB;AACJ,MAAI;AACJ,MAAIilB;AACJ,QAAM,SAAS,QAAQ;AACvB,QAAM,SAAS,QAAQ;AACvB,QAAM,OAAO,OAAO;AACpB,QAAM,OAAO,OAAO;AACpB,MAAI;AACJ,MAAI,OAAO,KACP,OAAO,KACP,CAAC,aAAa,cACd,OAAO,aAAa,oBAAoB,WAAW;AACnD,iBAAa,kBAAkB,CAAC,qBAAqB,QAAQ,QAAQ,MAAM,IAAI;AAAA,EAClF;AAED,SAAO,aAAa,QAChB,aAAa,QACb,WAAW,QAAQ,QAAQ,YAAY,YAAY,YAAY,GAAG;AAClE,IAAAjlB,SAAQ;AACR,YAAQ,IAAI,YAAY,OAAOA,MAAK,GAAG,OAAOA,MAAK,CAAC;AACpD,YAAQ,KAAK,OAAOA,MAAK;AACzB;AAAA,EACH;AAED,SAAO,aAAa,aAAa,QAC7B,aAAa,aAAa,QAC1B,WAAW,QAAQ,QAAQ,OAAO,IAAI,YAAY,OAAO,IAAI,YAAY,YAAY,GAAG;AACxF,aAAS,OAAO,IAAI;AACpB,IAAAilB,UAAS,OAAO,IAAI;AACpB,YAAQ,IAAI,YAAY,OAAO,MAAM,GAAG,OAAOA,OAAM,CAAC;AACtD,YAAQ,KAAK,OAAOA,OAAM;AAC1B;AAAA,EACH;AACD,MAAI;AACJ,MAAI,aAAa,eAAe,MAAM;AAClC,QAAI,SAAS,MAAM;AAEf,cAAQ,UAAU,MAAS,EAAE,KAAI;AACjC;AAAA,IACH;AAED,aAAS,UAAU;AAAA,MACf,IAAI;AAAA,IAChB;AACQ,SAAKjlB,SAAQ,YAAYA,SAAQ,OAAO,YAAYA,UAAS;AACzD,aAAOA,MAAK,IAAI,CAAC,OAAOA,MAAK,CAAC;AAAA,IACjC;AACD,YAAQ,UAAU,MAAM,EAAE,KAAI;AAC9B;AAAA,EACH;AACD,MAAI,aAAa,eAAe,MAAM;AAElC,aAAS,UAAU;AAAA,MACf,IAAI;AAAA,IAChB;AACQ,SAAKA,SAAQ,YAAYA,SAAQ,OAAO,YAAYA,UAAS;AACzD,aAAO,IAAIA,MAAK,EAAE,IAAI,CAAC,OAAOA,MAAK,GAAG,GAAG,CAAC;AAAA,IAC7C;AACD,YAAQ,UAAU,MAAM,EAAE,KAAI;AAC9B;AAAA,EACH;AAED,SAAO,aAAa;AACpB,SAAO,aAAa;AAEpB,QAAM,WAAW,OAAO,MAAM,YAAY,OAAO,UAAU;AAC3D,QAAM,WAAW,OAAO,MAAM,YAAY,OAAO,UAAU;AAC3D,QAAM,MAAM,IAAI,IAAI,UAAU,UAAU,YAAY,YAAY;AAChE,QAAM,eAAe;AACrB,WAAS,UAAU;AAAA,IACf,IAAI;AAAA,EACZ;AACI,OAAKA,SAAQ,YAAYA,SAAQ,OAAO,YAAYA,UAAS;AACzD,QAAI,IAAI,SAAS,QAAQA,SAAQ,UAAU,IAAI,GAAG;AAE9C,aAAO,IAAIA,MAAK,EAAE,IAAI,CAAC,OAAOA,MAAK,GAAG,GAAG,CAAC;AAC1C,mBAAa,KAAKA,MAAK;AAAA,IAC1B;AAAA,EACJ;AACD,MAAI,aAAa;AACjB,MAAI,QAAQ,WACR,QAAQ,QAAQ,UAChB,QAAQ,QAAQ,OAAO,eAAe,OAAO;AAC7C,iBAAa;AAAA,EAChB;AACD,MAAI,qBAAqB;AACzB,MAAI,QAAQ,WACR,QAAQ,QAAQ,UAChB,QAAQ,QAAQ,OAAO,oBAAoB;AAC3C,yBAAqB;AAAA,EACxB;AACD,QAAM,qBAAqB,aAAa;AACxC,OAAKA,SAAQ,YAAYA,SAAQ,OAAO,YAAYA,UAAS;AACzD,UAAM,gBAAgB,IAAI,SAAS,QAAQA,SAAQ,UAAU;AAC7D,QAAI,gBAAgB,GAAG;AAEnB,UAAI,SAAS;AACb,UAAI,cAAc,qBAAqB,GAAG;AACtC,iBAAS,mBAAmB,GAAG,mBAAmB,oBAAoB,oBAAoB;AACtF,mBAAS,aAAa,gBAAgB;AACtC,cAAI,WAAW,UAAU,UAAU,SAAS,YAAYA,SAAQ,YAAY,YAAY,GAAG;AAEvF,mBAAO,IAAI,MAAM,EAAE,EAAE,OAAO,GAAG,GAAGA,QAAO,UAAU;AACnD,gBAAI,CAAC,oBAAoB;AAErB,qBAAO,IAAI,MAAM,EAAE,EAAE,CAAC,IAAI;AAAA,YAC7B;AACD,YAAAilB,UAASjlB;AACT,oBAAQ,IAAI,YAAY,OAAO,MAAM,GAAG,OAAOilB,OAAM,CAAC;AACtD,oBAAQ,KAAK,OAAOA,OAAM;AAC1B,yBAAa,OAAO,kBAAkB,CAAC;AACvC,qBAAS;AACT;AAAA,UACH;AAAA,QACJ;AAAA,MACJ;AACD,UAAI,CAAC,QAAQ;AAET,eAAOjlB,MAAK,IAAI,CAAC,OAAOA,MAAK,CAAC;AAAA,MACjC;AAAA,IACJ,OACI;AAED,eAAS,IAAI,SAAS,aAAa,IAAI;AACvC,MAAAilB,UAAS,IAAI,SAAS,aAAa,IAAI;AACvC,cAAQ,IAAI,YAAY,OAAO,MAAM,GAAG,OAAOA,OAAM,CAAC;AACtD,cAAQ,KAAK,OAAOA,OAAM;AAAA,IAC7B;AAAA,EACJ;AACD,UAAQ,UAAU,MAAM,EAAE,KAAI;AAClC,GA5I0B;AA6I1BoF,aAAW,aAAa;AACxB,MAAM,UAAU;AAAA,EACZ,YAAY,GAAG,GAAG;AACd,WAAO,IAAI;AAAA,EACd;AAAA,EACD,cAAc,MAAM;AAChB,WAAO,CAAC,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,IAAI;AAAA,EACpC;AACL;AACO,MAAMC,gBAAc,gCAASI,mBAAkB,SAAS;AAC3D,MAAI,CAAC,QAAQ,QAAQ;AACjB;AAAA,EACH;AACD,QAAM,cAAc,QAAQ;AAC5B,MAAI,YAAY,OAAO,KAAK;AACxB;AAAA,EACH;AACD,MAAI1qB;AACJ,MAAI;AACJ,QAAM6kB,SAAQ;AACd,QAAM,QAAQ,QAAQ;AAEtB,MAAI,WAAW;AACf,MAAI,WAAW;AACf,QAAM,WAAW;AACjB,OAAK7kB,UAAS6kB,QAAO;AACjB,QAAI7kB,WAAU,MAAM;AAChB,UAAIA,OAAM,CAAC,MAAM,KAAK;AAClB,cAAM,sBAAsBA;AAE5B,YAAI6kB,OAAM,mBAAmB,EAAE,CAAC,MAAM,KAClCA,OAAM,mBAAmB,EAAE,CAAC,MAAM,YAAY;AAC9C,mBAAS,KAAK,SAAS7kB,OAAM,MAAM,CAAC,GAAG,EAAE,CAAC;AAAA,QAC7C,OACI;AACD,gBAAM,IAAI,MAAM,qFACW6kB,OAAM,mBAAmB,EAAE,CAAC,CAAC,EAAE;AAAA,QAC7D;AAAA,MACJ,OACI;AACD,cAAM,cAAc7kB;AACpB,YAAI6kB,OAAM,WAAW,EAAE,WAAW,GAAG;AAEjC,mBAAS,KAAK;AAAA,YACV,OAAO,SAAS,aAAa,EAAE;AAAA,YAC/B,OAAOA,OAAM,WAAW,EAAE,CAAC;AAAA,UACnD,CAAqB;AAAA,QACJ,OACI;AAED,mBAAS,KAAK;AAAA,YACV,OAAO,SAAS,aAAa,EAAE;AAAA,YAC/B,OAAOA,OAAM,WAAW;AAAA,UAChD,CAAqB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAED,aAAW,SAAS,KAAK,QAAQ,WAAW;AAC5C,OAAK7kB,SAAQ,SAAS,SAAS,GAAGA,UAAS,GAAGA,UAAS;AACnD,aAAS,SAASA,MAAK;AACvB,UAAM,YAAY6kB,OAAM,IAAI,MAAM,EAAE;AACpC,UAAM,eAAe,MAAM,OAAO,QAAQ,CAAC,EAAE,CAAC;AAC9C,QAAI,UAAU,CAAC,MAAM,YAAY;AAE7B,eAAS,KAAK;AAAA,QACV,OAAO,UAAU,CAAC;AAAA,QAClB,OAAO;AAAA,MACvB,CAAa;AAAA,IACJ;AAAA,EACJ;AAED,aAAW,SAAS,KAAK,QAAQ,cAAc,OAAO,CAAC;AACvD,QAAM,iBAAiB,SAAS;AAChC,OAAK7kB,SAAQ,GAAGA,SAAQ,gBAAgBA,UAAS;AAC7C,UAAM,YAAY,SAASA,MAAK;AAChC,UAAM,OAAO,UAAU,OAAO,GAAG,UAAU,KAAK;AAAA,EACnD;AAED,QAAM,iBAAiB,SAAS;AAChC,MAAI;AACJ,MAAI,iBAAiB,GAAG;AACpB,SAAKA,SAAQ,GAAGA,SAAQ,gBAAgBA,UAAS;AAC7C,YAAM,eAAe,SAASA,MAAK;AACnC,cAAQ,IAAI,aAAa,MAAM,aAAa,KAAK,GAAG,aAAa,KAAK;AACtE,cAAQ,KAAK,OAAO,aAAa,KAAK;AAAA,IACzC;AAAA,EACJ;AACD,MAAI,CAAC,QAAQ,UAAU;AACnB,YAAQ,UAAU,KAAK,EAAE,KAAI;AAC7B;AAAA,EACH;AACD,UAAQ,KAAI;AAChB,GArF2B;AAsF3BsqB,cAAY,aAAa;AAClB,MAAM,6BAA6B,gCAASE,4BAA2B,SAAS;AACnF,MAAI,CAAC,WAAW,CAAC,QAAQ,UAAU;AAC/B;AAAA,EACH;AACD,QAAM,oBAAoB,QAAQ;AAClC,MAAI,kBAAkB,OAAO,KAAK;AAC9B;AAAA,EACH;AACD,QAAM,QAAQ,QAAQ;AACtB,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI;AACJ,WAASxqB,SAAQ,GAAGA,SAAQ,QAAQA,UAAS;AACzC,YAAQ,QAAQ,SAASA,MAAK;AAC9B,UAAM,aAAa,MAAM;AACzB,UAAM,UAAU,IAAI,MAAM;AAAA,EAC7B;AACD,UAAQ,UAAU,KAAK,EAAE,KAAI;AACjC,GAjB0C;AAkB1C,2BAA2B,aAAa;AACjC,MAAMuqB,kBAAgB,gCAAS,oBAAoB,SAAS;AAC/D,MAAI,CAAC,QAAQ,QAAQ;AACjB,UAAM,iBAAiB,QAAQ;AAC/B,QAAI,eAAe,CAAC,MAAM,YAAY;AAClC,YAAM,iBAAiB;AACvB,cAAQ,UAAU,IAAI,eAAe,CAAC,CAAC;AACvC,cACK,UAAU;AAAA,QACX,eAAe,CAAC;AAAA,QAChB,SAAS,QAAQ,UAAU,UAAU,CAAC,GAAG,EAAE;AAAA,QAC3C;AAAA,MAChB,CAAa,EACI;IACR;AACD;AAAA,EACH;AACD,QAAM,cAAc,QAAQ;AAC5B,MAAI,YAAY,OAAO,KAAK;AACxB;AAAA,EACH;AACD,QAAM,aAAa;AACnB,MAAI;AACJ,MAAI;AACJ,OAAK,QAAQ,YAAY;AACrB,QAAI,SAAS,MAAM;AACf;AAAA,IACH;AACD,YAAQ,IAAI,eAAe,WAAW,IAAI,CAAC;AAC3C,YAAQ,KAAK,OAAO,IAAI;AAAA,EAC3B;AACD,UAAQ,KAAI;AAChB,GA/B6B;AAgC7BA,gBAAc,aAAa;AAC3B,MAAM,yBAAyB,wBAAC1F,QAAO7kB,QAAO,cAAc;AACxD,MAAI,OAAOA,WAAU,YAAYA,OAAM,CAAC,MAAM,KAAK;AAC/C,WAAO,SAASA,OAAM,UAAU,CAAC,GAAG,EAAE;AAAA,EACzC,WACQ,MAAM,QAAQ,SAAS,KAAK,UAAU,CAAC,MAAM,GAAG;AACrD,WAAO,IAAIA,MAAK;AAAA,EACnB;AACD,MAAI,eAAe,CAACA;AACpB,aAAW,cAAc6kB,QAAO;AAC5B,UAAM,YAAYA,OAAM,UAAU;AAClC,QAAI,MAAM,QAAQ,SAAS,GAAG;AAC1B,UAAI,UAAU,CAAC,MAAM,YAAY;AAC7B,cAAM,gBAAgB,SAAS,WAAW,UAAU,CAAC,GAAG,EAAE;AAC1D,cAAM,cAAc,UAAU,CAAC;AAC/B,YAAI,gBAAgB,CAAC7kB,QAAO;AACxB,iBAAO;AAAA,QACV;AACD,YAAI,iBAAiB,gBAAgB,cAAc,cAAc;AAC7D;AAAA,QACH,WACQ,iBAAiB,gBACtB,cAAc,cAAc;AAC5B;AAAA,QACH;AAAA,MACJ,WACQ,UAAU,CAAC,MAAM,GAAG;AACzB,cAAM,cAAc,SAAS,WAAW,UAAU,CAAC,GAAG,EAAE;AACxD,YAAI,eAAe,cAAc;AAC7B;AAAA,QACH;AAAA,MACJ,WACQ,UAAU,WAAW,KAC1B,SAAS,YAAY,EAAE,KAAK,cAAc;AAC1C;AAAA,MACH;AAAA,IACJ;AAAA,EACJ;AACD,SAAO;AACX,GAtC+B;AAuCxB,MAAM,+BAA+B,wBAAC,YAAY;AACrD,MAAI,CAAC,WAAW,CAAC,QAAQ,UAAU;AAC/B;AAAA,EACH;AACD,QAAM,oBAAoB,QAAQ;AAClC,MAAI,kBAAkB,OAAO,KAAK;AAC9B;AAAA,EACH;AACD,QAAM,aAAa;AACnB,QAAM,SAAS,QAAQ,SAAS;AAChC,MAAI;AACJ,QAAM6kB,SAAQ;AAAA,IACV,IAAI;AAAA,EACZ;AACI,WAAS7kB,SAAQ,GAAGA,SAAQ,QAAQA,UAAS;AACzC,YAAQ,QAAQ,SAASA,MAAK;AAC9B,QAAI,OAAO,MAAM;AACjB,QAAI,OAAO,SAAS,aAAa;AAC7B,aAAO,uBAAuB,YAAY,MAAM,WAAW,MAAM,MAAM;AAAA,IAC1E;AACD,QAAI6kB,OAAM,IAAI,MAAM,MAAM,QAAQ;AAE9B,MAAAA,OAAM,IAAI,IAAI,MAAM;AAAA,IACvB;AAAA,EACJ;AACD,UAAQ,UAAUA,MAAK,EAAE,KAAI;AACjC,GA1B4C;AA2B5C,6BAA6B,aAAa;ACnZnC,MAAMwF,eAAa,gCAAS,gBAAgB,SAAS;AACxD,MAAI,QAAQ,gBAAgB,MAAM;AAC9B,QAAI,QAAQ,iBAAiB,MAAM;AAC/B,UAAI,QAAQ,KAAK,QAAO,MAAO,QAAQ,MAAM,WAAW;AACpD,gBAAQ,UAAU,CAAC,QAAQ,MAAM,QAAQ,KAAK,CAAC;AAAA,MAClD,OACI;AACD,gBAAQ,UAAU,MAAS;AAAA,MAC9B;AAAA,IACJ,OACI;AACD,cAAQ,UAAU,CAAC,QAAQ,MAAM,QAAQ,KAAK,CAAC;AAAA,IAClD;AACD,YAAQ,KAAI;AAAA,EACf,WACQ,QAAQ,iBAAiB,MAAM;AACpC,YAAQ,UAAU,CAAC,QAAQ,MAAM,QAAQ,KAAK,CAAC,EAAE;EACpD;AACL,GAlB0B;AAmB1BA,aAAW,aAAa;ACnBxB,MAAM,YAAY;AAClB,MAAM,qBAAqB;AAC3B,IAAI,kBAAkB;AACtB,SAAS,kBAAkB7pB,UAAS,UAAU;AAC1C,MAAI;AACJ,MAAI,CAAC,iBAAiB;AAClB,QAAI;AACJ,SAAK,KAAKA,aAAY,QAAQA,aAAY,SAAS,SAASA,SAAQ,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG,gBAAgB;AAClI,iBAAW,IAAIA,SAAQ,SAAS,eAAc;AAAA,IACjD,OACI;AACD,UAAI,CAAC,UAAU;AACX,eAAO;AAAA,MACV;AACD,YAAM,QAAQ,IAAI,MAAM,gJAAgJ;AAExK,YAAM,6BAA6B;AACnC,YAAM;AAAA,IACT;AACD,sBAAkB;AAAA,MACd,MAAM,gCAAU,MAAM,MAAM;AACxB,eAAO,SAAS,aAAa,SAAS,WAAW,MAAM,IAAI,CAAC;AAAA,MAC/D,GAFK;AAAA,MAGN,OAAO,gCAAU,MAAMwC,QAAO;AAC1B,cAAM,UAAU,SAAS,YAAY,SAAS,eAAeA,MAAK,GAAG,IAAI;AACzE,iBAAS,IAAI,GAAG,IAAI,QAAQ,CAAC,EAAE,QAAQ,KAAK;AACxC,cAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG;AAChB,kBAAM,QAAQ,IAAI,MAAM,mBAAmB;AAC3C,kBAAM,kBAAkB;AAAA,UAC3B;AAAA,QACJ;AACD,eAAO,QAAQ,CAAC;AAAA,MACnB,GATM;AAAA,IAUnB;AAAA,EACK;AACD,SAAO;AACX;AAjCS;AAkCF,MAAM,aAAa,gCAAS,gBAAgB,SAAS;AACxD,MAAI,QAAQ,aAAa,UAAU;AAC/B;AAAA,EACH;AACD,QAAM,OAAO,QAAQ;AACrB,QAAM,QAAQ,QAAQ;AACtB,QAAM,YAAa,QAAQ,WACvB,QAAQ,QAAQ,YAChB,QAAQ,QAAQ,SAAS,aACzB;AACJ,MAAI,KAAK,SAAS,aAAa,MAAM,SAAS,WAAW;AACrD,YAAQ,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC;AAAA,EACH;AAED,QAAM,iBAAiB,kBAAkB,QAAQ,OAAO;AACxD,MAAI,CAAC,gBAAgB;AAGjB,YAAQ,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC;AAAA,EACH;AACD,QAAMrB,QAAO,eAAe;AAC5B,UAAQ,UAAU,CAACA,MAAK,MAAM,KAAK,GAAG,GAAG,SAAS,CAAC,EAAE;AACzD,GAxB0B;AAyB1B,WAAW,aAAa;AACjB,MAAM,cAAc,gCAAS,iBAAiB,SAAS;AAC1D,MAAI,QAAQ,QAAQ;AAChB;AAAA,EACH;AACD,QAAM,iBAAiB,QAAQ;AAC/B,MAAI,eAAe,CAAC,MAAM,WAAW;AACjC;AAAA,EACH;AACD,QAAM,gBAAgB;AAEtB,QAAMqB,SAAQ,kBAAkB,QAAQ,SAAS,IAAI,EAAE;AACvD,UAAQ,UAAUA,OAAM,QAAQ,MAAM,cAAc,CAAC,CAAC,CAAC,EAAE;AAC7D,GAZ2B;AAa3B,YAAY,aAAa;AACzB,MAAM,mBAAmB,gCAAU6hB,QAAO;AACtC,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI/Y,UAAS;AACb,QAAM,cAAc;AACpB,MAAI;AACJ,QAAM,QAAQ+Y,OAAM,MAAM,IAAI;AAC9B,OAAK,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAI,GAAG,KAAK;AACtC,WAAO,MAAM,CAAC;AACd,UAAM,YAAY,KAAK,MAAM,GAAG,CAAC;AACjC,QAAI,cAAc,KAAK;AACnB,MAAA/Y,UAAS,YAAY,KAAK,IAAI;AAC9B,mBAAa;AAEb,YAAM,UAAU,IACZ,SACIA,QAAO,CAAC,IACR,MACAA,QAAO,CAAC,IACR,OACAA,QAAO,CAAC,IACR,MACAA,QAAO,CAAC,IACR;AAAA,IACX,WACQ,cAAc,KAAK;AACxB,YAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,MAAM,CAAC;AACjC,UAAI,MAAM,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,KAAK;AAElC,kBAAU,MAAM,CAAC;AACjB,cAAM,CAAC,IAAI,MAAM,IAAI,CAAC;AACtB,cAAM,IAAI,CAAC,IAAI;AAAA,MAClB;AAAA,IACJ,WACQ,cAAc,KAAK;AACxB,YAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,MAAM,CAAC;AAAA,IACpC;AAAA,EACJ;AACD,SAAO,MAAM,KAAK,IAAI;AAC1B,GAzCyB;AA0ClB,MAAM,gBAAgB,gCAAS,mBAAmB,SAAS;AAC9D,MAAI,QAAQ,QAAQ;AAChB;AAAA,EACH;AACD,QAAM,iBAAiB,QAAQ;AAC/B,MAAI,eAAe,CAAC,MAAM,WAAW;AACjC;AAAA,EACH;AACD,QAAM,gBAAgB;AAEtB,UACK,UAAU,CAAC,iBAAiB,cAAc,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,EAC5D;AACT,GAb6B;AAc7B,cAAc,aAAa;AC1H3B,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EACd,YAAYtL,UAAS;AACjB,SAAK,YAAY,IAAI,UAAUA,QAAO;AACtC,SAAK,UAAU,KAAK,IAAI,KAAK,MAAM,EAC9B,OAAOmqB,2BAAkCC,cAAoBC,cAAkBC,YAAkBC,mBAA0BC,YAAiB,EAC5I,iBAAkB;AACvB,SAAK,UAAU,KAAK,IAAI,KAAK,OAAO,EAC/B,OAAOC,8BAAmCC,4BAAmCC,eAAqBC,aAAmBC,eAAoBC,aAAkB,EAC3J,iBAAkB;AACvB,SAAK,UAAU,KAAK,IAAI,KAAK,SAAS,EACjC,OAAOC,gCAAqCC,8BAAqCC,iBAAuBC,eAAqBC,iBAAsBC,eAAoB,EACvK,iBAAkB;AAAA,EAC1B;AAAA,EACD,QAAQprB,UAAS;AACb,WAAO,KAAK,UAAU,QAAQA,QAAO;AAAA,EACxC;AAAA,EACD,KAAK,MAAM,OAAO;AACd,WAAO,KAAK,UAAU,QAAQ,IAAI,YAAY,MAAM,KAAK,CAAC;AAAA,EAC7D;AAAA,EACD,MAAM,MAAMqkB,QAAO;AACf,WAAO,KAAK,UAAU,QAAQ,IAAI,aAAa,MAAMA,MAAK,CAAC;AAAA,EAC9D;AAAA,EACD,QAAQA,QAAO;AACX,WAAO,KAAK,UAAU,QAAQ,IAAI,eAAeA,MAAK,CAAC;AAAA,EAC1D;AAAA,EACD,QAAQ,OAAOA,QAAO;AAClB,WAAO,KAAK,MAAM,OAAO,KAAK,QAAQA,MAAK,CAAC;AAAA,EAC/C;AAAA,EACD,MAAM9lB,QAAO;AACT,WAAOiI,QAAMjI,MAAK;AAAA,EACrB;AACL;ACzCe,SAAS,YAAY,KAAKA,QAAO;AAC5C,MAAI4V;AACJ,MAAI,OAAO5V,WAAU,UAAU;AAC3B,IAAA4V,SACI,yFAAyF,KAAK5V,MAAK;AACvG,QAAI4V,QAAO;AACP,aAAO,IAAI,KAAK,KAAK,IAAI,CAACA,OAAM,CAAC,GAAG,CAACA,OAAM,CAAC,IAAI,GAAG,CAACA,OAAM,CAAC,GAAG,CAACA,OAAM,CAAC,GAAG,CAACA,OAAM,CAAC,GAAG,CAACA,OAAM,CAAC,GAAG,EAAEA,OAAM,CAAC,KAAK,EAAE,CAAC;AAAA,IACnH;AAAA,EACJ;AACD,SAAO5V;AACX;AAVwB;ACEjB,SAAS,OAAOyB,UAAS;AAC5B,SAAO,IAAI,YAAYA,QAAO;AAClC;AAFgB;AAGhB,IAAI;AACG,SAAS,KAAK,MAAM,OAAO;AAC9B,MAAI,CAAC,iBAAiB;AAClB,sBAAkB,IAAI;EACzB;AACD,SAAO,gBAAgB,KAAK,MAAM,KAAK;AAC3C;AALgB;AAMT,SAAS,MAAM,MAAMqkB,QAAO;AAC/B,MAAI,CAAC,iBAAiB;AAClB,sBAAkB,IAAI;EACzB;AACD,SAAO,gBAAgB,MAAM,MAAMA,MAAK;AAC5C;AALgB;AAMT,SAAS,QAAQ,OAAOA,QAAO;AAClC,MAAI,CAAC,iBAAiB;AAClB,sBAAkB,IAAI;EACzB;AACD,SAAO,gBAAgB,QAAQ,OAAOA,MAAK;AAC/C;AALgB;AAMT,SAAS,QAAQA,QAAO;AAC3B,MAAI,CAAC,iBAAiB;AAClB,sBAAkB,IAAI;EACzB;AACD,SAAO,gBAAgB,QAAQA,MAAK;AACxC;AALgB;AAMT,SAAS7d,QAAMjI,QAAO;AACzB,MAAI,CAAC,iBAAiB;AAClB,sBAAkB,IAAI;EACzB;AACD,SAAO,gBAAgB,MAAMA,MAAK;AACtC;AALgBiI;;;;ACzBhB,GAAC,SAAUnE,QAAM,YAAY;AACzB;AACA,QAAI,OAA4C;AAC5C4P,eAAO,UAAU;AAAA,IACpB,WAAwC,OAAO,SAAS;AACrD,uBAAiB;IACzB,OAAW;AACH,MAAA5P,OAAK,MAAM;IACd;AAAA,EACJ,GAAC6P,gBAAM,WAAY;AAChB;AAGA,QAAInK,QAAO,kCAAW;AAAA,OAAX;AACX,QAAIsjB,iBAAgB;AACpB,QAAI,OAAQ,OAAO,WAAWA,kBAAmB,OAAO,OAAO,cAAcA,kBACzE,kBAAkB,KAAK,OAAO,UAAU,SAAS;AAGrD,QAAI,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACR;AAEI,QAAI,iBAAiB;AACrB,QAAI,gBAAgB;AAGpB,aAAS,WAAW,KAAK,YAAY;AACjC,UAAI,SAAS,IAAI,UAAU;AAC3B,UAAI,OAAO,OAAO,SAAS,YAAY;AACnC,eAAO,OAAO,KAAK,GAAG;AAAA,MAClC,OAAe;AACH,YAAI;AACA,iBAAO,SAAS,UAAU,KAAK,KAAK,QAAQ,GAAG;AAAA,QAClD,SAAQjqB,IAAG;AAER,iBAAO,WAAW;AACd,mBAAO,SAAS,UAAU,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,CAAC;AAAA,UAClF;AAAA,QACa;AAAA,MACJ;AAAA,IACJ;AAdQ;AAiBT,aAAS,aAAa;AAClB,UAAI,QAAQ,KAAK;AACb,YAAI,QAAQ,IAAI,OAAO;AACnB,kBAAQ,IAAI,MAAM,SAAS,SAAS;AAAA,QACpD,OAAmB;AAEH,mBAAS,UAAU,MAAM,MAAM,QAAQ,KAAK,CAAC,SAAS,SAAS,CAAC;AAAA,QACnE;AAAA,MACJ;AACD,UAAI,QAAQ,MAAO,SAAQ,MAAK;AAAA,IACnC;AAVQ;AAcT,aAAS,WAAW,YAAY;AAC5B,UAAI,eAAe,SAAS;AACxB,qBAAa;AAAA,MAChB;AAED,UAAI,OAAO,YAAYiqB,gBAAe;AAClC,eAAO;AAAA,MACnB,WAAmB,eAAe,WAAW,MAAM;AACvC,eAAO;AAAA,MACV,WAAU,QAAQ,UAAU,MAAM,QAAW;AAC1C,eAAO,WAAW,SAAS,UAAU;AAAA,MACjD,WAAmB,QAAQ,QAAQ,QAAW;AAClC,eAAO,WAAW,SAAS,KAAK;AAAA,MAC5C,OAAe;AACH,eAAOtjB;AAAA,MACV;AAAA,IACJ;AAhBQ;AAoBT,aAAS,wBAAwB;AAE7B,UAAI,QAAQ,KAAK;AAGjB,eAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AACxC,YAAI,aAAa,WAAW,CAAC;AAC7B,aAAK,UAAU,IAAK,IAAI,QACpBA,QACA,KAAK,cAAc,YAAY,OAAO,KAAK,IAAI;AAAA,MACtD;AAGD,WAAK,MAAM,KAAK;AAGhB,UAAI,OAAO,YAAYsjB,kBAAiB,QAAQ,KAAK,OAAO,QAAQ;AAChE,eAAO;AAAA,MACV;AAAA,IACJ;AAnBQ;AAuBT,aAAS,gCAAgC,YAAY;AACjD,aAAO,WAAY;AACf,YAAI,OAAO,YAAYA,gBAAe;AAClC,gCAAsB,KAAK,IAAI;AAC/B,eAAK,UAAU,EAAE,MAAM,MAAM,SAAS;AAAA,QACzC;AAAA,MACb;AAAA,IACK;AAPQ;AAWT,aAAS,qBAAqB,YAAY,QAAQ,aAAa;AAE3D,aAAO,WAAW,UAAU,KACrB,gCAAgC,MAAM,MAAM,SAAS;AAAA,IAC/D;AAJQ;AAMT,aAAS,OAAO,MAAM,SAAS;AAE7B,UAAI9qB,QAAO;AASX,UAAI;AAMJ,UAAI;AAMJ,UAAI;AAEJ,UAAI,aAAa;AACjB,UAAI,OAAO,SAAS,UAAU;AAC5B,sBAAc,MAAM;AAAA,MAC5B,WAAiB,OAAO,SAAS,UAAU;AACnC,qBAAa;AAAA,MACd;AAED,eAAS,uBAAuB,UAAU;AACtC,YAAI,aAAa,WAAW,QAAQ,KAAK,UAAU;AAEnD,YAAI,OAAO,WAAW8qB,kBAAiB,CAAC,WAAY;AAGpD,YAAI;AACA,iBAAO,aAAa,UAAU,IAAI;AAClC;AAAA,QACd,SAAmB,QAAQ;AAAA,QAAE;AAGnB,YAAI;AACA,iBAAO,SAAS,SACd,mBAAmB,UAAU,IAAI,MAAM,YAAY;AAAA,QACnE,SAAmB,QAAQ;AAAA,QAAE;AAAA,MACtB;AAhBQ;AAkBT,eAAS,oBAAoB;AACzB,YAAI;AAEJ,YAAI,OAAO,WAAWA,kBAAiB,CAAC,WAAY;AAEpD,YAAI;AACA,wBAAc,OAAO,aAAa,UAAU;AAAA,QAC1D,SAAmB,QAAQ;AAAA,QAAE;AAGnB,YAAI,OAAO,gBAAgBA,gBAAe;AACtC,cAAI;AACA,gBAAI,SAAS,OAAO,SAAS;AAC7B,gBAAI,aAAa,mBAAmB,UAAU;AAC9C,gBAAIrY,YAAW,OAAO,QAAQ,aAAa,GAAG;AAC9C,gBAAIA,cAAa,IAAI;AACjB,4BAAc,WAAW;AAAA,gBACrB,OAAO,MAAMA,YAAW,WAAW,SAAS,CAAC;AAAA,cAChD,EAAC,CAAC;AAAA,YACN;AAAA,UACnB,SAAuB,QAAQ;AAAA,UAAE;AAAA,QACtB;AAGD,YAAIzS,MAAK,OAAO,WAAW,MAAM,QAAW;AACxC,wBAAc;AAAA,QACjB;AAED,eAAO;AAAA,MACV;AA7BQ;AA+BT,eAAS,sBAAsB;AAC3B,YAAI,OAAO,WAAW8qB,kBAAiB,CAAC,WAAY;AAGpD,YAAI;AACA,iBAAO,aAAa,WAAW,UAAU;AAAA,QACvD,SAAmB,QAAQ;AAAA,QAAE;AAGnB,YAAI;AACA,iBAAO,SAAS,SACd,mBAAmB,UAAU,IAAI;AAAA,QACjD,SAAmB,QAAQ;AAAA,QAAE;AAAA,MACtB;AAbQ;AAeT,eAAS,eAAe,OAAO;AAC3B,YAAI,QAAQ;AACZ,YAAI,OAAO,UAAU,YAAY9qB,MAAK,OAAO,MAAM,aAAa,MAAM,QAAW;AAC7E,kBAAQA,MAAK,OAAO,MAAM,YAAa;AAAA,QAC1C;AACD,YAAI,OAAO,UAAU,YAAY,SAAS,KAAK,SAASA,MAAK,OAAO,QAAQ;AACxE,iBAAO;AAAA,QACrB,OAAiB;AACH,gBAAM,IAAI,UAAU,+CAA+C,KAAK;AAAA,QAC3E;AAAA,MACJ;AAVQ;AAkBT,MAAAA,MAAK,OAAO;AAEZ,MAAAA,MAAK,SAAS;AAAA,QAAE,SAAS;AAAA,QAAG,SAAS;AAAA,QAAG,QAAQ;AAAA,QAAG,QAAQ;AAAA,QACvD,SAAS;AAAA,QAAG,UAAU;AAAA,MAAC;AAE3B,MAAAA,MAAK,gBAAgB,WAAW;AAEhC,MAAAA,MAAK,WAAW,WAAY;AACxB,YAAI,aAAa,MAAM;AACrB,iBAAO;AAAA,QACnB,WAAqB,gBAAgB,MAAM;AAC/B,iBAAO;AAAA,QACnB,OAAiB;AACL,iBAAO;AAAA,QACR;AAAA,MACX;AAEM,MAAAA,MAAK,WAAW,SAAU,OAAO,SAAS;AACtC,oBAAY,eAAe,KAAK;AAChC,YAAI,YAAY,OAAO;AACnB,iCAAuB,SAAS;AAAA,QACnC;AAGD,eAAO,sBAAsB,KAAKA,KAAI;AAAA,MAChD;AAEM,MAAAA,MAAK,kBAAkB,SAAU,OAAO;AACpC,uBAAe,eAAe,KAAK;AACnC,YAAI,CAAC,kBAAiB,GAAI;AACtB,UAAAA,MAAK,SAAS,OAAO,KAAK;AAAA,QAC7B;AAAA,MACX;AAEM,MAAAA,MAAK,aAAa,WAAY;AAC1B,oBAAY;AACZ;AACA,8BAAsB,KAAKA,KAAI;AAAA,MACzC;AAEM,MAAAA,MAAK,YAAY,SAAS,SAAS;AAC/B,QAAAA,MAAK,SAASA,MAAK,OAAO,OAAO,OAAO;AAAA,MAClD;AAEM,MAAAA,MAAK,aAAa,SAAS,SAAS;AAChC,QAAAA,MAAK,SAASA,MAAK,OAAO,QAAQ,OAAO;AAAA,MACnD;AAEM,MAAAA,MAAK,UAAU,WAAY;AACvB,YAAI,kBAAkBA,OAAM;AACxB,2BAAiB,eAAe,cAAc,SAAU;AAAA,QAC3D;AACD,8BAAsB,KAAKA,KAAI;AAE/B,YAAI,kBAAkBA,OAAM;AACxB,mBAAS,aAAa,gBAAgB;AACpC,2BAAe,SAAS,EAAE;UAC3B;AAAA,QACJ;AAAA,MACX;AAGM,uBAAiB;AAAA,QACb,gBAAgB,cAAc,SAAQ,IAAK;AAAA,MACrD;AACM,UAAI,eAAe;AACnB,UAAI,gBAAgB,MAAM;AACtB,oBAAY,eAAe,YAAY;AAAA,MAC1C;AACD,4BAAsB,KAAKA,KAAI;AAAA,IAChC;AAxLQ;AAgMT,oBAAgB,IAAI;AAEpB,kBAAc,YAAY,gCAAS,UAAU,MAAM;AAC/C,UAAK,OAAO,SAAS,YAAY,OAAO,SAAS,YAAa,SAAS,IAAI;AACvE,cAAM,IAAI,UAAU,gDAAgD;AAAA,MACvE;AAED,UAAI+qB,UAAS,eAAe,IAAI;AAChC,UAAI,CAACA,SAAQ;AACT,QAAAA,UAAS,eAAe,IAAI,IAAI,IAAI;AAAA,UAChC;AAAA,UACA,cAAc;AAAA,QAC9B;AAAA,MACS;AACD,aAAOA;AAAA,IACf,GAb8B;AAgB1B,QAAI,OAAQ,OAAO,WAAWD,iBAAiB,OAAO,MAAM;AAC5D,kBAAc,aAAa,WAAW;AAClC,UAAI,OAAO,WAAWA,kBACf,OAAO,QAAQ,eAAe;AACjC,eAAO,MAAM;AAAA,MAChB;AAED,aAAO;AAAA,IACf;AAEI,kBAAc,aAAa,gCAAS,aAAa;AAC7C,aAAO;AAAA,IACf,GAF+B;AAK3B,kBAAc,SAAS,IAAI;AAE3B,WAAO;AAAA,EACX,CAAC;;;;ACxVD,SAAS,MAAS,KAAW;AAC3B,SAAO,KAAK,MAAM,KAAK,UAAU,GAAG,CAAC;AACvC;AAFS;AAIT,MAAM,SAAS,IAAI,UAAU,eAAe;AAE5C,OAAO,SAAS,MAAM;AAEf,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA,EAsBzB,YAIS,UAIA,cACP;AALO;AAIA;AAEP,SAAK,cAAc;AAAA,EACrB;AAAA,EAhCA,OAAO,cAAc;AAAA;AAAA;AAAA;AAAA,EAIrB;AAAA,EACA,YAAiC;AAAA,EACjC,YAAiC;AAAA,EACjC,cAAsB;AAAA;AAAA;AAAA;AAAA,EAId,iBAA0B;AAAA,EAElC;AAAA,EACA;AAAA,EAEA,OAAO;AAAA,EACP,IAAI,MAAgB;AAClB,WAAO,cAAc;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAkBA,MAAM,OAA2B;AAE/B,QAAI,KAAK,eAAgB;AAEzB,WAAO,MAAM,aAAa;AAC1B,QAAI,MAAO,MAAK,cAAc,MAAM,KAAK;AACpC,wBAAe,MAAM,KAAK,WAAW;AAAA,EAC5C;AAAA,EAEA,QAAQ;AACN,SAAK,KAAK;AAAA,MACR,OAAO,KAAK,IAAI,OAAO,GAAG;AAAA,MAC1B,QAAQ,CAAC,KAAK,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC;AAAA;AAAA,EAEvE;AAAA,EAEA,UAAU;AACR,QAAI,KAAK,IAAI;AACX,WAAK,IAAI,OAAO,GAAG,QAAQ,KAAK,GAAG;AACnC,WAAK,IAAI,OAAO,GAAG,SAAS,KAAK,GAAG;AAAA,IACtC;AACA,QAAI,KAAK,aAAa;AACf,eAAI,cAAc,KAAK;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,iBAAiB;AACX,4BAAoB,gBAAgB,KAAK,WAAW;AAIxD,UAAM,WAAW,mBAAmB,kBAAkB,KAAK,SAAS,IAAI;AACxE,QAAI,UAAU;AACH,4BAAa,CAAC,cAAc;AAAA,QACnC,KAAK;AAAA,QACL,KAAK;AAAA;AAEP,UAAI,OAAO,cAAc,OAAO,OAAO,SAAS,SAAS,YAAY;AACnE,cAAMlqB,QAAO,cAAc;AAAA,UACzB,KAAK;AAAA,UACL,KAAK;AAAA;AAEA,qBAAM,eAAeA,KAAI;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,aAAa;AACX,QAAI,CAAC,KAAK,IAAI,SAAS,KAAK,YAAa;AAEzC,UAAM,eAAe,MAAM,KAAK,IAAI,MAAM,WAAW;AACjD,SAAC,KAAK,aAAa;AACrB,WAAK,cAAc;AACnB;AAAA,IACF;AACA,QAAI,CAAC,cAAc,WAAW,KAAK,aAAa,YAAY,GAAG;AACxD,qBAAU,KAAK,KAAK,WAAW;AACpC,UAAI,KAAK,UAAU,SAAS,cAAc,aAAa;AACrD,aAAK,UAAU;MACjB;AACA,aAAO,MAAM,qCAAqC,KAAK,UAAU,MAAM;AAEvE,WAAK,cAAc;AACnB,WAAK,UAAU,SAAS;AACxB,WAAK,eAAe;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAM,YAAY,QAA6B,QAA6B;AACpE,sBAAY,OAAO;AACzB,QAAI,WAAW;AACN,kBAAK,KAAK,WAAW;AAC5B,WAAK,iBAAiB;AAClB;AACF,cAAM,KAAK,IAAI,cAAc,WAAW,OAAO,OAAO,KAAK,UAAU;AAAA,UACnE,yBAAyB;AAAA,UACzB,wBAAwB;AAAA,SACzB;AACD,aAAK,cAAc;AACnB,aAAK,eAAe;AAAA,gBACpB;AACA,aAAK,iBAAiB;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,OAAO;AACX,UAAM,KAAK,YAAY,KAAK,WAAW,KAAK,SAAS;AAC9C;AAAA,MACL;AAAA,MACA,KAAK,UAAU;AAAA,MACf;AAAA,MACA,KAAK,UAAU;AAAA;AAAA,EAEnB;AAAA,EAEA,MAAM,OAAO;AACX,UAAM,KAAK,YAAY,KAAK,WAAW,KAAK,SAAS;AAC9C;AAAA,MACL;AAAA,MACA,KAAK,UAAU;AAAA,MACf;AAAA,MACA,KAAK,UAAU;AAAA;AAAA,EAEnB;AAAA,EAEA,MAAM,SAASC,IAAkB;AAC/B,SAAKA,GAAE,WAAWA,GAAE,YAAY,CAACA,GAAE,QAAQ;AACnC,kBAAMA,GAAE,IAAI,YAAY;AAEzB,kBAAQ,OAAO,CAACA,GAAE,YAAc,OAAO,OAAOA,GAAE,UAAW;AAC9D,cAAM,KAAK;AACJ;AAAA,MACE,mBAAQ,OAAO,CAACA,GAAE,UAAU;AACrC,cAAM,KAAK;AACJ;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,eAAe;AACR;AAAA,EACP;AAAA,EAEA,cAAc;AACR,SAAC,EAAE,KAAK,aAAa;AACvB,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,OAAO,KAAKC,MAAe;AACzB,UAAM,0BAA0B,6BAC9B,mBAAmB,gBAAgB,eADL;AAEhC,UAAM,aAAa,6BAAM,wBAAwB,GAAG,WAAW,GAA5C;AAEnB,kBAAc,MAAMA;AAEpB,QAAI,aAAa;AACV;AAAA,MACL;AAAA,MACA,CAACD,OAAqB;AAGpB,YAAIA,GAAE,OAAQ;AAEd,cAAM,WAAW,SAAS;AAC1B,8BAAsB,YAAY;AAChC,cAAI,cAA8B;AAElC,cAAI,CAACC,KAAI,GAAG,oBAAoBA,KAAI,GAAG,kBAAkB,WAAW;AAEhE,0BAAU,YAAY,WACrB,YAAY,UAAU,YAAY,SAAS,SAAS,YACrD;AAEA;AAAA,YACF;AACc;AAAA,UAChB;AAGE,uBAAAD,GAAE,QAAQ,aACVA,GAAE,QAAQ,WACVA,GAAE,QAAQ,SACVA,GAAE,QAAQ;AACZ,cAAI,WAAY;AAEhB,gBAAM,gBAAgB;AACtB,cAAI,CAAC,cAAe;AAGpB,cAAI,MAAM,cAAc,SAASA,EAAC,EAAG;AAGrC,cAAI,cAAc,UAAUC,MAAK,WAAW,EAAG;AAC/C,iBAAO,MAAM,uBAAuB;AACpC,wBAAc,WAAW;AAAA,SAC1B;AAAA,MACH;AAAA,MACA;AAAA;AAGK,4BAAiB,SAAS,CAACD,OAAM;AACtC,UAAI,YAAY;AACD;AACb,eAAO,MAAM,qBAAqB;AACvB;MACb;AAAA,KACD;AAGM,4BAAiB,WAAW,MAAM;AACvC,aAAO,MAAM,uBAAuB;AACzB;IAAA,CACZ;AAGG,yBAAiB,gBAAgB,MAAM;AACzC,aAAO,MAAM,4BAA4B;AAC9B;IAAA,CACZ;AAEG,yBAAiB,gBAAgB,MAAM;AACzC,aAAO,MAAM,4BAA4B;AAC9B;IAAA,CACZ;AAGK,2BAAiB,aAAa,UAAU;AACjC,2BAAU,iBAAiB,SAAUA,IAAG;AACnD,YAAMzB,KAAI,eAAe,MAAM,MAAM,CAACyB,EAAC,CAAC;AACxC,aAAO,MAAM,8BAA8B;AAChC;AACJ,aAAAzB;AAAA;AAEH,6BAAmB,aAAa,UAAU;AACnC,2BAAU,mBAAmB,SAAUyB,IAAG;AACrD,YAAMzB,KAAI,iBAAiB,MAAM,MAAM,CAACyB,EAAC,CAAC;AAC1C,aAAO,MAAM,gCAAgC;AAClC;AACJ,aAAAzB;AAAA;AAIH,mBAAS,aAAa,UAAU;AACtC,iBAAa,UAAU,SAAS,SAC9B,OACApB,QACA,UACA,OACA;AACM,+BAAmB,wBAACoB,OAAW;AACnC,iBAASA,EAAC;AACC;MAAA,GAFY;AAIzB,aAAO,MAAM,sBAAsB;AAC5B,oBAAO,MAAM,MAAM,CAAC,OAAOpB,QAAO,kBAAkB,KAAK,CAAC;AAAA;AAI7D,UAAAsC,SAAQ,UAAU,YAAY,UAAU;AAC9C,cAAU,YAAY,UAAU,QAAQ,SAAUO,IAAe;AAC/D,YAAMzB,KAAIkB,OAAM,MAAM,MAAM,CAACO,EAAC,CAAC;AAC/B,aAAO,MAAM,gCAAgC;AAClC;AACJ,aAAAzB;AAAA;AAIH,wBAAc,UAAU,OAAO,UAAU;AAC/C,cAAU,OAAO,UAAU,cAAc,SAAUiD,OAAkB;AACnE,YAAMjD,KAAI,aAAa,MAAM,MAAM,CAACiD,KAAI,CAAC;AACrC,WAACvB,MAAK,kBAAkB;AAC1B,eAAO,MAAM,2BAA2B;AAC7B;MACb;AACO,aAAA1B;AAAA;AAIA,8BAAiB,oBAAoB,CAACyB,OAAa;AAC1D,YAAM,SAAUA,GAAkB;AAC9B,iBAAO,YAAY,iBAAiB;AACtC,mCAA2B;MAAa,WAC/B,OAAO,YAAY,gBAAgB;AAC5C,mCAA2B;MAC7B;AAAA,KACD;AAGG,yBAAiB,YAAY,CAACA,OAAsC;AACtE,YAAM,SAASA,GAAE;AACjB,YAAM,WACJ,oBAAoB,cAAc,OAAO,SAAS,GAAG;AACvD,YAAM,gBAAgB,UAAU;AAChC,UAAI,CAAC,cAAe;AACpB,oBAAc,gBAAgB;AAC9B,YAAM,cAAc,cAAc;AAC5B,qBAAS,YAAY,OAAO,IAAI;AAClC,iBAAO,SAAS,QAAQ;AAC1B,mBAAW,KAAK,OAAO,UAAU,IAAI;AAC7B,gBAAAzB,KAAI,OAAO,CAAC;AAClB,cAAIA,cAAa,OAAO;AACtB,mBAAO,CAAC,IAAIA,GAAE,OAAO,OAAO,OAAO,CAAC,CAAC;AAAA,iBAChC;AACL,mBAAO,CAAC,IAAI,OAAO,OAAO,CAAC;AAAA,UAC7B;AAAA,QACF;AAAA,aACK;AACO,2BAAO,IAAI,IAAI,OAAO;AAAA,MACpC;AAAA,KACD;AAAA,EACH;AAAA,EAEA,OAAO,UAAU0B,MAAe,UAAmC;AACjE,QACE,CAAC,YACD,SAAS,YAAY,YACrB,SAAS,YAAY,QACrB;AACO;AAAA,IACT;AAEA,eAAW,OAAO,CAAC,UAAU,SAAS,MAAM,GAAG;AAC7C,YAAM,cAAc;AAChB,eAAK,GAAG,MAAM,aAAa;AAC7B,cAAM,WAAW,6BAAM;AACJ,6BAAE,gBAAgB,eAAe,aAAa;AACnD,0CAAoB,KAAK,QAAQ;AAAA,WAF9B;AAIL,qCAAiB,KAAK,QAAQ;AACnC;AAAA,MACT;AAAA,IACF;AACO;AAAA,EACT;AAAA,EAEA,OAAO,WAAW,GAAsB,GAAsB;AACxD,cAAM,EAAU;AAEpB,QAAI,OAAO,KAAK,YAAY,KAAK,OAAO,KAAK,YAAY,GAAG;AAGxD,WAAC,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,SAAS;AAC/C,YAAI,MAAM,QAAQ,IAAI,KAAK,MAAM,QAAQ,IAAI,GAAG;AACvC,mBAAE,QAAQ,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;AAAA,QAC/C;AAAA,OACD,GACD;AACO;AAAA,MACT;AAIE,WAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhE;AAGT,iBAAW,OAAO,CAAC,SAAS,YAAY,QAAQ,GAAG;AAC7C,aAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG;AACvB;AAAA,QACT;AAAA,MACF;AAEO;AAAA,IACT;AAEO;AAAA,EACT;AAAA,EAEA,OAAe,UAAU,GAAsB,GAAsB;AACnE,aAAS,eAAe,OAA0B;AACzC;AAAA,QACL,OAAO,MAAM;AAAA,QACb,QAAQ,MAAM;AAAA,QACd,OAAO,MAAM,MAAM,KAAK,CAAC0lB,IAAGS,OAAM;AAChC,cAAI,OAAOT,GAAE,OAAO,YAAY,OAAOS,GAAE,OAAO,UAAU;AACjDT,sBAAE,KAAKS,GAAE;AAAA,UAClB;AACO;AAAA,SACR;AAAA;AAAA,IAEL;AAXS;AAYT,WAAO+D,KAAmB,eAAe,CAAC,GAAG,eAAe,CAAC,CAAC;AAAA,EAChE;AACF;;;;AC9ZO,MAAM,sBAAsB,SAAS;AAAA;AAAA;AAAA;AAAA,EAC1C,OAAgB,WAAW;AAAA;AAAA;AAAA;AAAA,EAK3B,gBAAsC;AAAA;AAAA;AAAA;AAAA,EAI9B,cAAuB;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,YAAYvrB,UAA2D;AACrE,UAAMA,SAAQ,MAAMA,SAAQ,UAAUA,SAAQ,IAAI;AAAA,EACpD;AAAA,EAEA,IAAI,MAAM;AACR,WAAO,KAAK,KAAK,UAAU,cAAc,SAAS,MAAM;AAAA,EAC1D;AAAA,EAEA,IAAI,cAAwC;AACnC,gBAAK,eAAe,eAAe;AAAA,EAC5C;AAAA,EAEA,IAAI,eAAyC;AACpC,gBAAK,eAAe,gBAAgB;AAAA,EAC7C;AAAA,EAEA,IAAI,WAAoB;AACtB,WAAO,KAAK,kBAAkB;AAAA,EAChC;AAAA,EAEA,IAAI,aAAsB;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,WAAWzB,QAAgB;AAC7B,SAAK,cAAcA;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,KAAK;AAAA,IACT,QAAQ;AAAA,EACV,IAAyB,IAAkC;AACzD,UAAM,MAAM,KAAK,EAAE,MAAO;AAC1B,QAAI,CAAC,SAAS,KAAK,SAAiB;AAEhC,SAAC,KAAK,iBAAiB;AACnB,gBAAI,MAAM,4CAA4C;AAAA,IAC9D;AAGQ,kBAAM,uCAAuC,KAAK,IAAI;AAC9D,SAAK,gBAAgB;AAAA,MACnB,IAAI;AAAA,QACF;AAAA;AAAA,QACoB,KAAK,MAAM,KAAK,eAAe;AAAA,MACrD;AAAA;AAEK;AAAA,EACT;AAAA,EAEA,SAAe;AACL,kBAAM,mBAAmB,KAAK,IAAI;AAC1C,SAAK,gBAAgB;AACrB,UAAM,OAAO;AAAA,EACf;AAAA,EAEA,MAAM,OAAO;AACX,SAAK,UAAU,KAAK,UAAU,KAAK,WAAW;AAG9C,UAAM,MAAM,MAAM,MAAM,KAAK,EAAE,OAAO,MAAM;AAC5C,SAAK,eAAe;AACpB,SAAK,aAAa;AACX;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,OAAO,MAAc;AACzB,SAAK,UAAU,KAAK,UAAU,KAAK,WAAW;AACvC,iBAAM,MAAM,OAAO,IAAI;AAAA,EAChC;AACF;AA0Ca,yBAAmB,4BAAY,YAAY,MAAM;AAMtD,yBAAiB,wBAAC,aAA4B;AAC3C,0BAAe,MAAM,SAAS,IAAI;AACzC,UAAMiB,SAAQ,kBAAkB,MAAM,QAAQ,SAAS,IAAI;AAC3D,QAAIA,WAAU,IAAI;AACE,gCAAQ,kBAAkB,MAAM;AAAA,QAChD,CAAC,SAAS,SAAS,SAAS;AAAA;AAAA,IAEhC;AACO,WAAAA;AAAA,KARc;AAgBvB,QAAM,iBAAiB,wBAAC,UAAyB,YAAoB,OAAO;AAC3D,yBAAM,SAAS,IAAI,IAAI;AAEtC,QAAI,cAAc,IAAI;AACpB,wBAAkB,MAAM,OAAO,WAAW,GAAG,SAAS,IAAI;AAAA,IAC5D;AAAA,KALqB;AAWjB,yBAAiB,IAAgC,IAAI;AAC3D,QAAM,WAAW,wBAAC,aAChB,eAAe,OAAO,SAAS,SAAS,MADzB;AAKX,yBAAiB,IAAmC,EAAE;AAC5D,QAAM,YAAY;AAAA,IAA0B,MAC1C,OAAO,OAAO,eAAe,KAAK;AAAA;AAEpC,QAAM,oBAAoB,wBAAC,SACzB,eAAe,MAAM,IAAI,KAAK,MADN;AAOpB,4BAAoB,IAAc,EAAE;AAC1C,QAAM,sBAAsB,SAAS,MAAM,IAAI,IAAI,kBAAkB,KAAK,CAAC;AAC3E,QAAM,gBAAgB;AAAA,IAAS,MAC7B,kBAAkB,MAAM,IAAI,CAAC,SAAS,eAAe,MAAM,IAAI,CAAC;AAAA;AAElE,QAAM,SAAS,wBAAC,aACd,oBAAoB,MAAM,IAAI,SAAS,IAAI,GAD9B;AAOT,uBAAe,8BACnB,aACiC;AAC7B,iBAAS,QAAQ,EAAU;AAE/B,QAAI,CAAC,kBAAkB,MAAM,SAAS,SAAS,IAAI,GAAG;AAClC,8BAAM,KAAK,SAAS,IAAI;AAAA,IAC5C;AACM,2BAAiB,MAAM,SAAS;AACtC,mBAAe,QAAQ;AACf,kBAAM,iCAAiC,SAAS,IAAI;AACrD;AAAA,KAXY;AAcf,8BAAsB,wBAACgsB,cAA6B;AACxD,UAAM,EAAE,WAAW,UAAU,QAAAtjB,QAAO,IAAI,eAAesjB,SAAQ;AAC/D,QAAI,UAAU;AACd,QAAI,UAAUA;AACP,0BAAe,MAAM,OAAO,GAAG;AACpC,gBAAU,GAAG,SAAS,IAAI,QAAQ,KAAK,OAAO,KAAKtjB,OAAM;AACzD;AAAA,IACF;AACO;AAAA,KARmB;AAWtB,0BAAkB,wBAAC,MAAe,iBAAqC;AAC3E,UAAM,WAAW;AAAA,MACf,cAAc,YAAY,QAAQ;AAAA;AAE9B,qBAAW,IAAI,cAAc;AAAA,MACjC,MAAM;AAAA,MACN,UAAU,KAAK,IAAI;AAAA,MACnB,MAAM;AAAA,KACP;AAED,aAAS,kBAAkB,SAAS,UAAU,eAC1C,KAAK,UAAU,YAAY,IAC3B;AAEW,yBAAM,SAAS,IAAI,IAAI;AAC/B;AAAA,KAfe;AAkBlB,wBAAgB,8BAAO,aAA4B;AACrC,8BAAQ,kBAAkB,MAAM;AAAA,MAChD,CAAC,SAAS,SAAS,SAAS;AAAA;AAE9B,QAAI,SAAS,aAAa;AACjB,4BAAe,MAAM,SAAS,IAAI;AAAA,WACpC;AACL,eAAS,OAAO;AAAA,IAClB;AACQ,kBAAM,kCAAkC,SAAS,IAAI;AAAA,KATzC;AAiBhB,mCAA2B,wBAAC,UAAwC;AAClE,UAAA1I,SAAQ,kBAAkB,MAAM;AAAA,MACpC,eAAe,OAAO,QAAQ;AAAA;AAGhC,QAAIA,WAAU,IAAI;AACV,qBAAS,cAAc,MAAM;AAC7B,yBAAaA,SAAQ,QAAQ,UAAU;AACvC,2BAAe,cAAc,MAAM,SAAS;AAClD,aAAO,gBAAgB;AAAA,IACzB;AACO;AAAA,KAXwB;AAcjC,QAAM,qBAAqB;AAAA,IAAS,MAClC,MAAM,KAAK,UAAU,KAAK,EAAE,OAAO,CAAC,aAAa,SAAS,WAAW;AAAA;AAEjE,wBAAgB,8BAAO,MAAc,OAAO;AAC1C;AAAA,MACJ,MAAM,eAAe,MAAM;AAAA,MAC3B,eAAe;AAAA,MACf,CAAC,SACC,IAAI,cAAc;AAAA,QAChB,MAAM,KAAK;AAAA,QACX,UAAU,KAAK;AAAA,QACf,MAAM,KAAK;AAAA,OACZ;AAAA,MACH,CAAC,kBAAkB,SAAS;AAC1B,yBAAiB,eAAe,KAAK;AACrC,yBAAiB,OAAO,KAAK;AAC7B,yBAAiB,OAAO;AAAA,MAC1B;AAAA;AAAA,MACc,CAAC,aAAa,SAAS;AAAA;AAAA,EACvC,GAhBoB;AAmBtB,QAAM,gBAAgB;AACtB,QAAM,sBAAsB;AAAA,IAAS,MACnC,UAAU,MAAM;AAAA,MAAO,CAAC,aACtB,cAAc,aAAa,SAAS,IAAI;AAAA,IAC1C;AAAA;AAEF,QAAM,oBAAoB;AAAA,IAAS,MACjC,UAAU,MAAM,OAAO,CAAC,aAAa,SAAS,UAAU;AAAA;AAIpD,iBAAS,IAAa,KAAK;AAE3B,yBAAiB,8BAAO,UAAyB,YAAoB;AACzE,WAAO,QAAQ;AACX;AAEF,YAAM,UAAU,SAAS;AACnB,4BAAgB,cAAc,aAAa,OAAO;AAElD,wBAAY,eAAe,QAAQ;AAErC;AACI,uBAAS,OAAO,OAAO;AAAA,gBAC7B;AACA,uBAAe,UAAU,SAAS;AAAA,MACpC;AAGA,UAAI,eAAe;AACH,oCAAc,SAAS,KAAK;AAC5B,oCAAc,SAAS,IAAI;AAAA,MAC3C;AAAA,cACA;AACA,aAAO,QAAQ;AAAA,IACjB;AAAA,KAtBqB;AAyBjB,yBAAiB,8BAAO,aAA4B;AACxD,WAAO,QAAQ;AACX;AACF,YAAM,SAAS;AACf,UAAI,cAAc,aAAa,SAAS,IAAI,GAAG;AAC/B,oCAAc,SAAS,MAAM,KAAK;AAAA,MAClD;AACO,4BAAe,MAAM,SAAS,IAAI;AAAA,cACzC;AACA,aAAO,QAAQ;AAAA,IACjB;AAAA,KAVqB;AAiBjB,uBAAe,8BAAO,aAA4B;AACtD,WAAO,QAAQ;AACX;AAEI,wBAAY,eAAe,QAAQ;AACrC;AACF,cAAM,SAAS;MAAK,UACpB;AACA,uBAAe,UAAU,SAAS;AAAA,MACpC;AAAA,cACA;AACA,aAAO,QAAQ;AAAA,IACjB;AAAA,KAZmB;AAed;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;AAEY,iCAA2B,4BAAY,oBAAoB,MAAM;AAC5E,QAAM,YAAY,IAAqB,wBAAK;AAE5C,QAAM,eAAe,wBAAC,SAAiB,UAAU,MAAM,IAAI,IAAI,GAA1C;AAErB,QAAM,gBAAgB,mCAAY;AAChC,UAAM,OAAO,MAAM,IAAI,YAAY,uBAAuB;AACtD,aAAK,WAAW,KAAK;AACjB,mBAAO,MAAM,KAAK;AACxB,gBAAU,QAAQ,IAAI,IAAI,MAAM,aAAa,EAAE;AAAA,IACjD;AAAA,KALoB;AAQtB,QAAM,gBAAgB,mCAAY;AAC1B,cAAI,cAAc,yBAAyB;AAAA,MAC/C,WAAW,MAAM,KAAK,UAAU,KAAK;AAAA,KACtC;AAAA,KAHmB;AAMhB,wBAAgB,wBAAC,MAAcjB,WAAmB;AACtD,QAAI,UAAU,MAAM,IAAI,IAAI,MAAMA,OAAO;AACzC,QAAIA,QAAO;AACC,sBAAM,IAAI,IAAI;AAAA,WACnB;AACK,sBAAM,OAAO,IAAI;AAAA,IAC7B;AACc;EAAA,GAPM;AAUhB,2BAAmB,wBAAC,SAAiB;AACzC,kBAAc,MAAM,CAAC,UAAU,MAAM,IAAI,IAAI,CAAC;AAAA,KADvB;AAIlB;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;AC1aD,eAAe,YAAY,aAA6C;AACtE,MAAI,gBAAgB,EAAE,IAAI,sBAAsB,GAAG;AAC7C,mBAAW,MAAM,iBAAiB;AAAA,MACpC,OAAO,EAAE,gCAAgC;AAAA,MACzC,SAAS,EAAE,+BAA+B,IAAI;AAAA,MAC9C,cAAc;AAAA,KACf;AACG,SAAC,SAAiB;AACtB,QAAI,CAAC,SAAS,YAAc,WAAS,OAAO,GAAG;AACjC;AAAA,IACd;AACO;AAAA,EACT;AACO;AACT;AAde;AAiBR,MAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,MAAM,eACJ,UACA,gBACe;AACT,qBAAW,iBAAmB;AACpC,QAAI,UAAU,MAAM;AAClB,iBAAW,SAAS;AAAA,IACtB;AACM,UAAAwC,KAAI,MAAMM,MAAI;AACpB,UAAM,OAAO,KAAK,UAAUN,GAAE,cAAc,GAAG,MAAM,CAAC;AAChD,iBAAO,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,oBAAoB;AACpD,iBAAO,MAAM,YAAY,QAAQ;AACvC,QAAI,CAAC,KAAM;AACX,iBAAa,MAAM,IAAI;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,eAAe,UAAyB;AACtC,wBAAc,MAAM,iBAAiB;AAAA,MACzC,OAAO,EAAE,8BAA8B;AAAA,MACvC,SAAS,EAAE,+BAA+B,IAAI;AAAA,MAC9C,cAAc,SAAS;AAAA,KACxB;AACD,QAAI,CAAC,YAAa;AAElB,UAAM,UAAU,SAAS,YAAY,MAAM,cAAc,WAAW;AACpE,UAAM,SAAS,QAAQ,UAAU,cAAc,SAAS,MAAM;AAC9D,UAAM,gBAAgB;AAChB,6BAAmB,cAAc,kBAAkB,OAAO;AAE5D,4BAAoB,CAAC,iBAAiB,aAAa;AAC/C,kBAAM,MAAM,uBAAuB;AAAA,QACvC,OAAO,EAAE,+CAA+C;AAAA,QACxD,MAAM;AAAA,QACN,SAAS,EAAE,0CAA0C;AAAA,QACrD,UAAU,CAAC,OAAO;AAAA,OACnB;AAED,UAAI,QAAQ,KAAM;AAEd,2BAAiB,SAAS,SAAS,MAAM;AACrC,mBAAK,aAAa,QAAQ;AAChC;AAAA,MACF;AACA,YAAM,UAAU,MAAM,KAAK,eAAe,kBAAkB,IAAI;AAChE,UAAI,CAAC,QAAS;AAAA,IAChB;AAEA,QAAI,SAAS,aAAa;AAClB,iBAAK,eAAe,UAAU,OAAO;AACrC,0BAAc,aAAa,QAAQ;AAAA,WACpC;AACL,YAAM,eAAe,cAAc;AAAA,QACjC;AAAA,QACA,SAAS;AAAA;AAEL,iBAAK,aAAa,YAAY;AAC9B,0BAAc,aAAa,YAAY;AAAA,IAC/C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAa,UAAyB;AAC1C,QAAI,SAAS,aAAa;AAClB,iBAAK,eAAe,QAAQ;AAAA,WAC7B;AACC,6BAAmB,eAAa,QAAQ;AAAA,IAChD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,sBAAsB;AACpB,UAAAM,MAAI,cAAc,YAAY;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,oBAAoB;AAClB,UAAAA,MAAI,cAAc,UAAU;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,wBAAwB;AACtB,qBAAW,iBAAmB;AACpC,QAAI,UAAU;AACZ,YAAM,KAAK,aAAa,UAAU,EAAE,OAAO,MAAM;AAAA,IACnD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,aACJ,UACArB,WAA8B,EAAE,OAAO,SACvC;AACA,QAAI,iBAAmB,WAAS,QAAQ,KAAK,CAACA,SAAQ,MAAO;AAEvD,2BAAiB,CAAC,SAAS;AACjC,QAAI,gBAAgB;AAClB,YAAM,SAAS;IACjB;AAEA,UAAMqB,MAAI;AAAA,MACR,MAAM,SAAS,WAAW;AAAA;AAAA,MACd;AAAA;AAAA,MACO;AAAA,MACnB;AAAA,MACA;AAAA,QACE,yBAAyB;AAAA,QACzB,wBAAwB;AAAA,MAC1B;AAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cACJ,UACArB,WAAsC,EAAE,eAAe,QACrC;AACd,SAAC,SAAS,UAAU;AACf;AAAA,IACT;AAEI,iBAAS,cAAcA,SAAQ,eAAe;AAC1C,wBAAY,MAAM,uBAAuB;AAAA,QAC7C,OAAO,EAAE,yCAAyC;AAAA,QAClD,MAAM;AAAA,QACN,SAAS,EAAE,oCAAoC;AAAA,QAC/C,UAAU,CAAC,SAAS,IAAI;AAAA,OACzB;AAEG,wBAAc,KAAa;AAE/B,UAAI,cAAc,MAAM;AAChB,mBAAK,aAAa,QAAQ;AAAA,MAClC;AAAA,IACF;AAEA,UAAM,gBAAgB;AAElB,sBAAc,cAAc,WAAW,GAAG;AAC5C,YAAM,KAAK;IACb;AAEI,sBAAc,SAAS,QAAQ,GAAG;AACpC,YAAM,KAAK;IACb;AAEM,wBAAc,cAAc,QAAQ;AACnC;AAAA,EACT;AAAA,EAEA,MAAM,eAAe,UAAyB,SAAiB;AAC7D,UAAM,iBAAiB,EAAE,eAAe,UAAU,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,eACJ,UACA,SAAS,OACS;AAClB,UAAM,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,8BAA8B;AAC3E,QAAI,YAA4B,iBAAiB;AAEjD,QAAI,CAAC,WAAW;AACd,kBAAY,MAAM,uBAAuB;AAAA,QACvC,OAAO,EAAE,4CAA4C;AAAA,QACrD,MAAM;AAAA,QACN,SAAS,EAAE,uCAAuC;AAAA,QAClD,UAAU,CAAC,SAAS,IAAI;AAAA,OACzB;AACG,WAAC,UAAkB;AAAA,IACzB;AAEA,UAAM,gBAAgB;AAClB,sBAAc,OAAO,QAAQ,GAAG;AAClC,YAAM,SAAS,MAAM,KAAK,cAAc,UAAU;AAAA,QAChD,eAAe,CAAC;AAAA,OACjB;AACG,WAAC,OAAe;AAAA,IACtB;AACM,wBAAc,eAAe,QAAQ;AAC3C,QAAI,CAAC,QAAQ;AACX,sBAAgB,IAAI;AAAA,QAClB,UAAU;AAAA,QACV,SAAS,EAAE,iCAAiC;AAAA,QAC5C,MAAM;AAAA,OACP;AAAA,IACH;AACO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,qBAAqB;AAEb,0BAAgB,kBAAoB;AAC1C,UAAM,iBAAiB,cAAc;AACrC,QAAI,gBAAgB;AAClB,qBAAe,cAAc;IAC/B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,kBACJzB,QACA,cACA;AAEM,0BAAgB,kBAAoB;AACtC,eAAOA,WAAU,UAAU;AAC7B,YAAM,WAAW,cAAc;AAAA,QAC7B,cAAc,WAAW,cAAcA,MAAK;AAAA;AAE9C,UAAI,UAAU,aAAa;AACzB,cAAMktB,kBAAiB,MAAM,cAAc,aAAa,QAAQ;AAChEA,wBAAe,cAAc;AAC7BA,wBAAe,cAAc,MAAM,YAAY;AAC/C;AAAA,MACF;AAAA,IACF;AAEA,QAAIltB,WAAU,QAAQ,OAAOA,WAAU,UAAU;AAC/C,YAAM,OAAOA;AACb,YAAM,eAAe,cAAc;AAAA,QACjC,OAAO,cAAc,IAAI,IAAI;AAAA,QAC7B;AAAA;AAEI,0BAAc,aAAa,YAAY;AAC7C;AAAA,IACF;AAGA,UAAM,iBAAiB,MAAM,cAAc,aAAaA,MAAK;AAC9C,iCAAc,MAAM,YAAY;AAC/C,mBAAe,cAAc;EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,eAAe,UAAyB;AACtC,2BAAiB,MAAM,SAAS;AACtC,UAAM4D,SAAO,eAAe;AACtB,gBAAM,aAAa,QAAQ,2BAA2B;AAEtD,kBAAQ,IAAI,OAAOA,MAAI;AACvB,0BAAgB,SAAS,cAAc,QAAQ;AACrD,UAAM,SAAS,IAAI,aAAa,eAAe,OAAO;AAAA,MACpD,aAAa;AAAA,MACb,aAAa;AAAA,KACd;AACD,WAAO,YAAY;AACnB,WAAO,gBAAgB;AACvBd,UAAI,OAAO;AACX,QAAI,QAAQ,MAAM;AACH,2BAAQ,6BAA6B,GAAG;AAAA,IACvD;AAAA,EACF;AAAA,EAEA,MAAM,yBAAyB;AAC7B,UAAM,eAAe,mBAAmB,yBAAyB,CAAC;AAClE,QAAI,cAAc;AACV,iBAAK,aAAa,YAAY;AAAA,IACtC;AAAA,EACF;AAAA,EAEA,MAAM,6BAA6B;AACjC,UAAM,mBAAmB,mBAAmB,yBAAyB,EAAE;AACvE,QAAI,kBAAkB;AACd,iBAAK,aAAa,gBAAgB;AAAA,IAC1C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB,UAAyB;AAC/C,UAAM,QAAQ,KAAK,MAAM,KAAK,UAAU,SAAS,WAAW,CAAC;AAC7D,UAAMA,MAAI,cAAc,OAAO,MAAM,MAAM,SAAS,QAAQ;AAAA,EAC9D;AACF;AC3VgB,mBAAU,OAAqB,OAAuB;AACpE,QAAM,eAAe;AAAA,IACnB,OAAO,CAAC;AAAA,IACR,OAAO,CAAC;AAAA;AAEV,MAAI7B,SAAQ;AACZ,QAAM,YAA0B;AAEhC,aAAWoD,SAAQ,OAAO;AACpB,QAAAA,MAAK,aAAa,MAAO;AAE7B,IAAAA,MAAK,eAAepD;AACpB,cAAU,KAAKoD,KAAI;AAAA,EACrB;AAGA,aAAWA,SAAQ,WAAW;AACtB,mBAASA,MAAK;AACpB,QAAI,CAAC,QAAQ;AACH,mBAAK,0BAA0BA,MAAK,IAAI;AAChD;AAAA,IACF;AAEA,iBAAa,MAAM,KAAK,OAAO,UAAW;AACtC,SAACA,MAAK,QAAQ,OAAQ;AAGf,wBAASA,MAAK,QAAQ;AAC/B,UAAI,CAAC,SAAS,MAAM,QAAQ,KAAM;AAElC,YAAM,OAAO,MAAM,MAAM,IAAI,MAAM,IAAI;AACvC,UAAI,CAAC,KAAM;AAEX,YAAM,UAAU,MAAM,YAAY,KAAK,SAAS;AAChD,UAAI,CAAC,QAAS;AAGd,mBAAa,MAAM,KAAK;AAAA,QACtB,QAAQ;AAAA,QACR,KAAK;AAAA,QACLA,MAAK;AAAA,QACL,KAAK;AAAA,QACL,QAAQ;AAAA,OACT;AAAA,IACH;AAAA,EACF;AAEO,cAAK,UAAU,YAAY;AACpC;AAhDgB;AAuDA,8BAAqBT,QAAc,QAA4B;AAC7E,MAAI,CAACA,OAAM;AAEL,UAAE,OAAO,YAAgB;AAC/B,SAAO,iBAAiB;AACpB;AACF,UAAM,aAAa;AAEb,yBAAe,KAAK,MAAMA,MAAI;AAG9B,oBAAU,CAAC,UAAU,QAAQ;AACnC,eAAW,EAAE,KAAAgK,UAAS,aAAa,OAAO;AACpC,kBAAQ,CAAC,IAAIA,KAAI,CAAC,EAAW,UAAC,IAAIA,KAAI,CAAC;AACvC,kBAAQ,CAAC,IAAIA,KAAI,CAAC,EAAW,UAAC,IAAIA,KAAI,CAAC;AAAA,IAC7C;AAGA,QAAI,CAAC,OAAO,SAAS,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,QAAQ,CAAC,CAAC,GAAG;AACxD,eAAC,IAAI,YAAY,CAAC;AAClB,eAAC,IAAI,YAAY,CAAC;AAAA,IAC5B;AAGA,UAAM,QAAsB;AACjB,uBAAQ,aAAa,OAAO;AACrC,YAAMvJ,QAAO,UAAU,WAAW,KAAK,IAAI;AAC3C,UAAI,CAACA,MAAM;AAEX,MAAAA,MAAK,UAAU,IAAI;AAGnB,MAAAA,MAAK,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,QAAQ,CAAC;AACzC,MAAAA,MAAK,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,QAAQ,CAAC;AAEnC,gBAAIA,OAAM,IAAI;AACpB,YAAM,KAAKA,KAAI;AAAA,IACjB;AAGW,uBAAQ,aAAa,OAAO;AAC/B,yBAAa,KAAK,CAAC;AACzB,YAAM,UAAU,cAAc,OAAO,MAAM,UAAU,IAAI;AAEzD,YAAM,SAAS,MAAM,KAAK,CAAC,CAAC;AACxB,qBAAW,OAAQ,SAAQ,QAAQ,KAAK,CAAC,GAAG,QAAQ,KAAK,CAAC,CAAC;AAAA,UAC1D,SAAQ,KAAK,mCAAmC;AAAA,IACvD;AAEA,WAAO,YAAY,KAAK;AAExB,UAAM,YAAY;AAAA,YAClB;AACA,WAAO,gBAAgB;AAAA,EACzB;AACF;AAvDgB;;;;;ACCT,MAAM,sBAAsB;AAEnC,SAAS,iBAAiB,QAAQ;AAChC,MAAI,YAAY;AAAA,IACd,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA;AAEP,SAAO,OAAO,MAAM,EAAE,QAAQ,cAAc,gCAAS,cAAc,GAAG;AACpE,WAAO,UAAU,CAAC;AAAA,KADwB,gBAE3C;AACH;AAbS;AA4BF,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAKd,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,OAAO,YAA8B;AAAA,EACrC,OAAO,+BAAoD;AAAA,EAC3D,OAAO,kBAAkB;AAAA,EACzB,OAAO,wBAAwB;AAAA,EAE/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA,gBAA4B,6BAAM;AAAA,KAAN;AAAA;AAAA;AAAA;AAAA,EAK5B,IAAI,gBAA+B;AACjC,WAAO,kBAAoB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAqB;AACvB,WAAO,kBAAoB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAkD;AACpD,QAAI,KAAK,aAAa;AACpB,aAAO,eAAiB;AAAA,IAC1B;AACO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,kBAAkB;AACb;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,mBAAmB;AACd;AAAA,EACT;AAAA,EAEA,cAAc;AACZ,SAAK,cAAc;AACd,cAAK,IAAI,QAAQ,IAAI;AAC1B,SAAK,MAAM;AACX,SAAK,UAAU,IAAI,wBAAwB,EAAE,QAAQ,SAAS,MAAM;AACpE,SAAK,WAAW,IAAI,yBAAyB,EAAE,QAAQ,SAAS,MAAM;AACtE,SAAK,YAAY,IAAI,0BAA0B,EAAE,QAAQ,SAAS,MAAM;AACxE,SAAK,aAAa,IAAI,2BAA2B,EAAE,QAAQ,SAAS,MAAM;AACrE,2BAAkB,IAAI,8BAA8B;AAAA,MACvD,QAAQ,SAAS;AAAA,KAClB;AACI,gBAAO,IAAI,aAAa,IAAI;AACjC,SAAK,gBAAgB;AAMrB,SAAK,aAAa;AAMlB,SAAK,cAAc;AAMnB,SAAK,oBAAoB;EAC3B;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,YAAYrE,QAAO;AACrB,SAAK,eAAeA;AACf,2BAAkB,wBAAwBA,MAAK;AAAA,EACtD;AAAA,EAEA,wBAAwB;AACtB,QAAI,iBAAiB,KAAK,GAAG,SAAS,gBAAgB,qBAAqB;AACvE,uBAAuB,oBAAY,cAAc;AAAA,QACzC;AAAA,EACd;AAAA,EAEA,eAAe;AACN,sBAAW,KAAK;EACzB;AAAA,EAEA,OAAO,YAAYqE,OAAM;AACvB,WACEA,MAAK,QACJA,SACCA,MAAK,WACLA,MAAK,QAAQ,UAAU,CAAC,QAAQ,IAAI,SAAS,OAAO,KAAK;AAAA,EAE/D;AAAA,EAEA,OAAO,wBAAwB;AAC7B,QAAI,SAAS,uBAAuB;AACzB,kCAAmB,SAAS,qBAAqB;AAAA,IAC5D;AAAA,EACF;AAAA,EAEA,OAAO,0BAA0B;AAC/B,aAAS,wBAAwB;AAAA,EACnC;AAAA,EAEA,OAAO,gBAAgBA,OAAM;AAC3B,QAAI,UAAU;AACd,QAAIA,MAAK,SAAS;AACN,gBAAAA,MAAK,QAAQ,IAAI,CAAC,EAAE,MAAM,MAAM,OAAArE,cAAa;AAAA,QACrD;AAAA,QACA;AAAA,QACA,OAAAA;AAAA,MACA;AAAA,IACJ;AAEA,QAAI,OAAO;AACX,QAAI,YAAY;AACZ,QAAAqE,MAAK,QAAQ,QAAW;AAC1B,aAAO;AACP,kBAAY;AAEZ,eAAS,IAAI,GAAG,IAAIA,MAAK,KAAK,QAAQ,KAAK;AACpC,cAAC,IAAI,IAAI;AACd,aAAK,CAAC,EAAE,MAAMA,MAAK,KAAK,CAAC,EAAE;AACjB,mBAAC,IAAI,KAAK,CAAC;AAAA,MACvB;AAAA,IACF;AAEA,QAAI,gBAAgB;AACpB,QAAIA,MAAK,YAAY;AACnB,sBAAgBA,MAAK;AAAA,IACvB;AAEA,aAAS,YAAY;AAAA,MACnB;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf,QAAQA,MAAK;AAAA,MACb;AAAA,MACA,gBAAgB;AAAA;AAAA;AAGlB,aAAS,wBAAwB;AAEjC,QAAI,SAAS,8BAA8B;AACzC,eAAS,6BAA6B;AAAA,IACxC;AAAA,EACF;AAAA,EAEA,OAAO,mBAAmBA,OAAM;AAC9B,QAAI,SAAS,WAAW;AAEtB,UAAI,SAAS,UAAU,QAAQA,MAAK,MAAM;AACxC,YAAIA,MAAK,UAAU,SAAS,UAAU,QAAQ;AAC5C,cAAI,SAAS,UAAU,gBAAgB,KAAK,YAAY;AACtD,YAAAA,MAAK,SAAS;AAAA,cACZ,SAAS,UAAU,OAAO,SAAS,UAAU,eAAe,CAAC;AAAA;AAAA,UAC/D,OACK;AACA,YAAAA,MAAA,SAAS,SAAS,UAAU;AAAA,UACnC;AAEA,cAAIvB,MAAI,YAAYuB,MAAK,KAAK,EAAE;AAC9BvB,kBAAI,YAAYuB,MAAK,KAAK,EAAE,EAAE,SAASA,MAAK;AAAA,QAChD;AAEI,qBAAS,UAAU,MAAM;AAE3B,cAAI,SAAS,UAAU,gBAAgB,KAAK,YAAY;AAChD,wBAAM,IAAI;AACZ,sBACF,SAAS,UAAU,KAAK,SAAS,UAAU,eAAe,CAAC,EAAE;AAC1D,YAAAA,MAAA,OAAO,CAAC,GAAG;AAChB,YAAAA,MAAK,aAAa;AAAA,iBACb;AACL,kBAAM,OAAO;AACb,qBAAS,IAAI,GAAG,IAAI,SAAS,UAAU,KAAK,QAAQ,KAAK;AAClD,oBAAC,IAAI,IAAI;AACd,mBAAK,CAAC,EAAE,MAAM,SAAS,UAAU,KAAK,CAAC,EAAE;AACzC,cAAAA,MAAK,OAAO;AAAA,YACd;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,UAAIA,MAAK,SAAS;AACZ,qBAAS,UAAU,QAAQ;AAC7B,gBAAM,aACJ,SAAS,UAAU,OAAO,SAAS,UAAU,eAAe,CAAC;AACzD,gBAAApD,SAAQoD,MAAK,QAAQ,UAAU,CAAC,QAAQ,IAAI,SAAS,OAAO;AAClE,cAAIpD,UAAS,GAAG;AACd,gBACEoD,MAAK,QAAQpD,MAAK,EAAE,QAAQ,WAC5B,OAAOoD,MAAK,QAAQpD,MAAK,EAAE,SAAS,YACpC,WAAW,UACX;AACA,cAAAoD,MAAK,QAAQpD,MAAK,EAAE,SACjB,WAAW,YAAY,WAAW,YAAY,MAAM,MACrD,WAAW,YACV,WAAW,OAAO,KAAK,WAAW,IAAI,MAAM;AAAA,mBAC1C;AACA,cAAAoD,MAAA,QAAQpD,MAAK,EAAE,QAAQ;AAAA,YAC9B;AAAA,UACF;AAAA,QACF;AACI,qBAAS,UAAU,SAAS;AACrB,6BAAU,QAAQ,QAAQ,CAAC,EAAE,MAAM,MAAM,OAAAjB,aAAY;AAC5D,kBAAM2F,QAAO,OAAO,OAAOtB,MAAK,OAAO,EAAE;AAAA;AAAA,cAEvC,CAAC,QAAQ,IAAI,SAAS,QAAQ,IAAI,SAAS;AAAA;AAGzC,gBAAAsB,SAAQA,MAAK,QAAQ,UAAU;AACjC;AAAA;AAAA,gBAEEA,MAAK,QAAQ;AAAA,gBAEb,OAAOA,MAAK,SAAS,YACrB3F,OAAM;AAAA,gBACN;AAEA,gBAAA2F,MAAK,SACF3F,OAAM,YAAYA,OAAM,YAAY,MAAM,MAC3CA,OAAM,YACLA,OAAM,OAAO,KAAKA,OAAM,IAAI,MAAM;AAAA,qBAChC;AAEL,gBAAA2F,MAAK,QAAQ3F;AAEb,gBAAA2F,MAAK,SAAS3F,MAAK;AAAA,cACrB;AAAA,YACF;AAAA,WACD;AAAA,QACH;AAAA,MACF;AAEI8C,YAAA,MAAM,eAAe,IAAI;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,IAAI,oBAAoB;AAClB,SAAC,KAAK,aAAa;AACrB,aAAO,KAAK;AAAA,IACd;AACA,WAAO,kBAAoB;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBAAkB,WAAW,MAAM;AACjC,QAAI,UAAU;AACH,sBAAO,KAAK,mBAAmB;AACxC,UAAI,UAAU,KAAK;AACb;AACF,kBAAQ,KAAK,IAAI,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC;AAAA,iBAChC,OAAO;AACN;AAAA,YACN,4BAA4B,IAAI,IAAI,aAAa,MAAM;AAAA,YACvD,EAAE,MAAM;AAAA,YACR,EAAE,WAAW,IAAI;AAAA,YACjB,EAAE,KAAK;AAAA;AAAA,QAEX;AAAA,MACF;AAAA,IACF;AACO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,uBAAuB,WAAW,MAAM;AAC5C,WAAO,MAAM,QAAQ;AAAA,MACnB,KAAK,kBAAkB,IAAI,OAAO,QAAQ;AACxC,YAAI,UAAU,KAAK;AACb;AACF,mBAAO,MAAM,IAAI,MAAM,EAAE,GAAG,MAAM,IAAI;AAAA,mBAC/B,OAAO;AACN;AAAA,cACN,4BAA4B,IAAI,IAAI,aAAa,MAAM;AAAA,cACvD,EAAE,MAAM;AAAA,cACR,EAAE,WAAW,IAAI;AAAA,cACjB,EAAE,KAAK;AAAA;AAAA,UAEX;AAAA,QACF;AAAA,OACD;AAAA;AAAA,EAEL;AAAA,EAEA,0BAA0B;AAClB,sBAAY8T,SAAO,UAAU;AACnC,UAAM5U,QAAO;AACN4U,aAAA,UAAU,YAAY,WAAY;AACvC,YAAM,WAAW,UAAU,MAAM,MAAM,SAAS;AAGhD,UAAI,gBAAgB,EAAE,IAAI,iCAAiC,GAAG;AACxD,aAAC,SAAS,OAAO;AACnB,mBAAS,QAAQ;QACnB;AACA,iBAAS,MAAM,KAAK;AAAA,UAClB,OAAO5U,MAAK,OAAO,GAAG;AAAA,UACtB,QAAQA,MAAK,OAAO,GAAG;AAAA;AAAA,MACzB,WACS,SAAS,OAAO,IAAI;AAE7B,eAAO,SAAS,MAAM;AAAA,MACxB;AAEO;AAAA;AAAA,EAEX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,2BAA2BqC,OAAM;AAC/B,aAAS,mBAAmB,KAAK;AAC/B,UAAI,OAAO,OAAO,kBAAkB,oBAAoB;AACjD;AAAA,QACL;AAAA,UACE,SAAS;AAAA,UACT,UAAU,mCAAY;AACpB,kBAAM,MAAM,IAAI,IAAI,IAAI,GAAG;AACvB,6BAAa,OAAO,SAAS;AAE3B,+BAAa,8BAAO,SAAS;AAC3B,8BAAU,UAAU,MAAM;AAAA,gBAC9B,IAAI,cAAc;AAAA,kBAChB,CAAC,KAAK,IAAI,GAAG;AAAA,iBACd;AAAA,eACF;AAAA,eALgB;AAQf;AACI,oBAAAT,SAAO,MAAM,MAAM,GAAG;AACtB,2BAAO,MAAMA,OAAK;AACpB;AACF,sBAAM,WAAW,IAAI;AAAA,uBACd,OAAO;AAEV,yBAAK,SAAS,aAAa;AACvB,iCAAS,IAAI,UAAU;AAAA,oBAC3B,OAAO,IAAI;AAAA,oBACX,QAAQ,IAAI;AAAA,mBACb;AACK,8BAAM,OAAO,WAAW,IAAI;AAC9B;AACA,6BAAO,OAAO,sBAAsB,aAAa;AACnD,4BAAQ,IAAI;AACZ,0BAAMpB,KAAI,IAAI,QAAQ,CAACwB,UAASS,YAAW;AACzC,4BAAM,SAAST;AACf,4BAAM,UAAUS;AAAA,qBACjB,EAAE,QAAQ,MAAM;AACX,0CAAgB,MAAM,GAAG;AAAA,qBAC9B;AACK,gCAAM,IAAI,gBAAgB,IAAI;AAC9B,0BAAAjC;AAAA,yBACD;AACG,kCAAM,kBAAkB,IAAI;AAAA,kBACtC;AACI;AACE,kCAAU,OAAO,GAAG,CAAC;AAClB,kCAAO,YAAY,WAAW;AAAA,4BACrC;AACI,+BAAO,MAAM,UAAU,YAAY;AACrC,4BAAM,MAAM;AAAA,oBACd;AAAA,kBACF;AAEA;AAAA,gBACF;AACM;AAAA,cACR;AAAA,qBACO,OAAO;AACd,4BAAgB;AAAA,gBACd,2BAA2B,MAAM,WAAW;AAAA;AAAA,YAEhD;AAAA,UACF,GAzDU;AAAA,QA0DZ;AAAA;AAAA,IAEJ;AAjES;AAmET,IAAA6B,MAAK,UAAU,sBAAsB,SAAU/D,IAAGmB,UAAS;AACzD,UAAI,KAAK,MAAM;AAET;AACA,iBAAK,cAAc,MAAM;AAErB,qBAAK,KAAK,KAAK,UAAU;AAAA,mBACtB,KAAK,aAAa,MAAM;AAE3B,qBAAK,KAAK,KAAK,SAAS;AAAA,QAChC;AACA,YAAI,KAAK;AACC,UAAAA,SAAA;AAAA,YACN;AAAA,cACE,SAAS;AAAA,cACT,UAAU,6BAAM;AACd,oBAAI,MAAM,IAAI,IAAI,IAAI,GAAG;AACrB,iCAAa,OAAO,SAAS;AAC1B,4BAAK,KAAK,QAAQ;AAAA,cAC3B,GAJU;AAAA,YAKZ;AAAA,YACA,GAAG,mBAAmB,GAAG;AAAA,YACzB;AAAA,cACE,SAAS;AAAA,cACT,UAAU,6BAAM;AACR,0BAAI,SAAS,cAAc,GAAG;AACpC,oBAAI,MAAM,IAAI,IAAI,IAAI,GAAG;AACrB,iCAAa,OAAO,SAAS;AAC/B,yBAAO,IAAI;AACX;AAAA,kBACA;AAAA,kBACA,IAAI,gBAAgB,IAAI,MAAM,EAAE,IAAI,UAAU;AAAA;AAEvC,8BAAK,OAAO,CAAC;AACtB,kBAAE,MAAM;AACc,4CAAM,EAAE,QAAQ;AAAA,cACxC,GAZU;AAAA,YAaZ;AAAA;AAAA,QAEJ;AAAA,MACF;AAEA,MAAAA,SAAQ,KAAK;AAAA,QACX,SAAS;AAAA,QACT,UAAU,wBAAC,QAAQ;AACb,mBAAK,SAAS,gBAAgB;AAChC,iBAAK,OAAO,gBAAgB;AAAA,cACzB,MAAK,OAAO,gBAAgB;AACjC,eAAK,MAAM;QACb,GALU;AAAA,MAKV,CACD;AAGG,WAAC,SAAS,uBAAuB;AACnC,QAAAA,SAAQ,KAAK;AAAA,UACX,SAAS;AAAA,UACT,UAAU,wBAAC,QAAQ;AACjB,qBAAS,gBAAgB,IAAI;AAAA,UAC/B,GAFU;AAAA,QAEV,CACD;AAEG,qBAAS,aAAa,MAAM;AAC9B,UAAAA,SAAQ,KAAK;AAAA,YACX,SAAS;AAAA,YACT,UAAU,6BAAM;AACd,uBAAS,mBAAmB,IAAI;AAAA,YAClC,GAFU;AAAA,UAEV,CACD;AAAA,QACH;AAEI,qBAAS,YAAY,IAAI,GAAG;AAC9B,UAAAA,SAAQ,KAAK;AAAA,YACX,SAAS;AAAA,YACT,UAAU,wBAAC,QAAQ;AACjB,uBAAS,gBAAgB,IAAI;AAC7B,uBAAS,wBAAwB;AACjC,uBAAS,gBAAgB;AAAA,YAC3B,GAJU;AAAA,UAIV,CACD;AAAA,QACH;AAAA,MACF;AAAA;AAAA,EAEJ;AAAA,EAEA,mBAAmB4C,OAAM;AACvB,UAAMvB,OAAM;AACN,8BAAoBuB,MAAK,UAAU;AAEpC,IAAAA,MAAA,UAAU,YAAY,SAAUxB,IAAG;AACtC,UAAI,qBAAqB,kBAAkB,MAAM,MAAMA,EAAC,MAAM,OAAO;AAC5D;AAAA,MACT;AAEI,eAAK,MAAM,aAAa,CAAC,KAAK,QAAQ,KAAK,eAAe,MAAM;AAClE;AAAA,MACF;AAEA,UAAI,UAAU;AAEd,UAAIA,GAAE,QAAQ,eAAeA,GAAE,QAAQ,cAAc;AAC/C,YAAAA,GAAE,QAAQ,aAAa;AACzB,eAAK,cAAc;AAAA,mBACVA,GAAE,QAAQ,cAAc;AACjC,eAAK,cAAc;AAAA,QACrB;AACK,2BAAc,KAAK,KAAK;AAEzB,iBAAK,aAAa,GAAG;AACvB,eAAK,aAAa,KAAK,KAAK,SAAS,KAAK;AAAA,QAC5C;AACU;AAAA,iBACDA,GAAE,QAAQ,UAAU;AAC7B,aAAK,aAAa;AACR;AAAA,MACZ;AAEA,UAAI,YAAY,MAAM;AACpB,QAAAA,GAAE,eAAe;AACjB,QAAAA,GAAE,yBAAyB;AACpB;AAAA,MACT;AAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,0BAA0BwB,OAAM;AAC9B,UAAMvB,OAAM;AAEZ,aAAS,YAAYuB,QAAM;AACrB;AACAA,iBAAK,eAAe,MAAM;AAC5B,iBAASA,OAAK;AAAA,aACT;AACDA,mBAAK,SAAS,QAAQ;AACxB,gBAAM,IAAIA,OAAK,QAAQA,OAAK,QAAQ,SAAS,CAAC;AAC9C,mBAAS,EAAE;AACX,cAAI,EAAE,aAAa;AACjB,sBAAU,EAAE,YAAc,GAAC,IAAI;AAAA,qBACtB,EAAE,gBAAgB;AAC3B,sBAAU,EAAE;AAAA,iBACP;AACL,sBAAU,UAAU,qBAAqB;AAAA,UAC3C;AAAA,eACK;AACIA,0BAAK,YAAY,EAAE,CAAC;AAAA,QAC/B;AAAA,MACF;AACO;AAAA,IACT;AApBS;AAsBJ,IAAAA,MAAA,UAAU,kBAAkB,SAAU,OAAO;AAC5C,WAAC,SAAS,KAAK,eAAgB;AAEnC,UAAI,KAAK,eAAe,KAAK,kBAAkB,KAAK;AAC7C,qBAAQ,KAAK,IAAI;AACtB;AAAA,MACF;AACM,wBAAY,YAAY,IAAI,IAAI;AACtC,UAAI,KAAK,KAAK,CAAC,IAAI,WAAW;AAC5B,aAAK,QAAQ,CAAC,KAAK,KAAK,CAAC,GAAG,SAAS,CAAC;AAAA,MACxC;AAAA;AAGF,aAAS,qBAAqB,KAAK;AAC7B,WAAC,KAAK,MAAM,WAAW;AACzB,YAAI,UAAU;AACd,YAAI,gBAAgB;AAEpB,cAAM,SAASvB,KAAI,YAAY,KAAK,KAAK,EAAE;AAC3C,YAAI,QAAQ,QAAQ;AAClB,eAAK,iBAAiB,QAAQ,UAAU,KAAK,OAAO;AAChD,mBAAK,WAAW,OAAO,QAAQ;AACjC,iBAAK,SAAS,OAAO;AACL;AAChB,sBAAU,QAAQ;AAAA,cAChB,OAAO,OAAO,IAAI,CAAC,WAAW;AAC5B,uBAAO,IAAI;AAAA,kBACT,WACE,IAAI,gBAAgB,MAAM,EAAE,SAAS,KACpC,KAAK,iBAAiB,KAAKA,KAAI,sBAAsB,KACtDA,KAAI,aAAa;AAAA;AAAA,cACrB,CACD;AAAA;AAAA,UAEL;AAAA,QACF;AAEA,cAAMqqB,WAAUrqB,KAAI,kBAAkB,KAAK,KAAK,EAAE;AAC9C,iBAAK,YAAYqqB,UAAS;AAC5B,eAAK,UAAUA;AACC;AAChB,cAAIA,YAAW,MAAM;AACnB,oBAAQ,KAAKA,QAAO;AAAA,UACtB;AAAA,QACF;AAEA,YAAI,eAAe;AACjB,eAAK,aAAa;AACd,sBAAQ,SAAS,GAAG;AACd;AAAA,cACN,QAAQ,IAAI,CAAC,QAAQ;AACZ,2BAAI,QAAQ,CAAC,MAAM;AAClB,8BAAM,IAAI;AACZ,+BAAS,MAAM,EAAE,GAAG;AACpB,gCAAU,MAAM,EAAE,IAAI;AAC1B,sBAAI,MAAM;AAAA,iBACX;AAAA,eACF;AAAA,cACD,KAAK,CAAC,SAAS;AAEZ,oBAAC,UAAU,KAAK,WAAW,OAAO,YAClC,CAACA,YAAW,KAAK,YAAYA,WAC9B;AACK,4BAAO,KAAK,OAAO,OAAO;AAC/B,qBAAK,kBAAkB;AACvBrqB,qBAAI,MAAM,eAAe,IAAI;AAAA,cAC/B;AAAA,aACD;AAAA,iBACI;AACL,iBAAK,OAAO;AAAA,UACd;AAAA,QACF;AAEM,yCAA2B,wBAAC,SAAS;AAEzC,cAAIsqB,SAAQ,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,EAAE;AAE3C,mBAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,gBAAI,aAAa,KAAK,CAAC,EAAE,eAAe,KAAK,CAAC,EAAE;AAC5CA,0BAAS,WAAmB;AAAA,UAClC;AAEO;AAAA,WATwB;AAY7B,iBAAK,MAAM,QAAQ;AACf,4BAAY,KAAK,SAAS;AAAA,YAC9B,CAAC,MAAM,EAAE,SAAS;AAAA;AAGpB,cAAI,KAAK,gBAAgB;AAEvB,gBAAI,YAAY,IAAI;AAEZ,oBAAApW,UAAS,KAAK,QAAQ,SAAS;AACrC,cAAAA,QAAO,QAAQ,KAAK,aAAa,KAAK,IAAI;AAAA,mBACrC;AACC,2BAAO,gBAAgB,IAAI;AACjC,mBAAK,gBAAgB,IAAI;AACzB,oBAAMA,UAAS,KAAK;AAAA,gBAClB;AAAA,gBACA;AAAA,gBACA,KAAK;AAAA,gBACL;AAAA,kBACE;AAAA,kBACA,WAAW,KAAK;AAAA,kBAChB,QAAQ,KAAK;AAAA,kBACb,YAAY;AAAA,gBACd;AAAA;AAEF,cAAAA,QAAO,iBAAiB,MAAM;AAC9B,cAAAA,QAAO,QAAQ,KAAK,aAAa,KAAK,IAAI;AAAA,YAC5C;AACA;AAAA,UACF;AAEA,cAAI,YAAY,IAAI;AACb,yBAAQ,SAAS,EAAE,WAAW;AAC9B,yBAAQ,OAAO,WAAW,CAAC;AAAA,UAClC;AAEA,gBAAM,SAASlU,KAAI,MAAM,oBAAoB,CAAC;AAC9C,gBAAM,QAAQ,OAAO;AACrB,cAAI,CAAC,OAAO,mBAAmB,KAAK,aAAa;AAC/C,gBACE,MAAM,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,KACnC,MAAM,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,GACnC;AACK,gCAAa,KAAK,YAAY;AAAA,YACrC;AACA,iBAAK,cAAc;AAAA,UACrB;AAEA,cAAI,aAAa,KAAK;AAChB,4BAAY,KAAK,KAAK;AACxB,4BAAc,KAAK,CAAC,YAAY;AAClC,iBAAK,aAAa,aAAa;AAAA,UACjC;AAEM,sBAAM,YAAY,IAAI;AAC5B,cAAI,SAAS;AAET,mBAAK,KAAK,KAAK,CAAC;AAChB,mBAAK,KAAK,KAAK,CAAC;AACd;AAEN,cAAI,cAAc,MAAM;AAClB,2BAAW,YAAY,QAAQ,cAAc;AAE3C,iCAAe,yBAAyB,KAAK,IAAI;AACvD,gBAAI,CAAC,cAAc;AAEF;AAET,uCAAmB,KAAK,KAAK;AAAA,gBACjC,CAAC,KAAK,YACJ,KAAK,IAAI,KAAK,QAAQ,cAAc,QAAQ,aAAa;AAAA,gBAC3D;AAAA;AAEF,oBAAM,WAAW;AACR,gCAAS,KAAK,KAAK;AAC5B,uBAAS,CAAC,IAAI;AAAA,gBACZ,cAAc;AAAA,gBACd,eAAe;AAAA;AAEhB,eAAC,EAAE,WAAW,YAAY,MAAM,OAAW;AAAA,gBAC1C;AAAA,gBACA;AAAA,gBACA;AAAA;AAAA,YACF,OACK;AACU;AACd,eAAC,EAAE,WAAW,YAAY,MAAM,OAAW;AAAA,gBAC1C,KAAK;AAAA,gBACL;AAAA,gBACA;AAAA;AAAA,YAEJ;AAEA,gBAAI,aAAa;AACjB,iBAAK,aAAa;AAClB,qBAAS,IAAI,GAAG,IAAI,WAAW,KAAK;AAC5B,0BAAM,KAAK,KAAK,CAAC;AACvB,oBAAM,MAAM,KAAK,MAAM,IAAI,IAAI;AAC/B,oBAAM,MAAM,IAAI;AACV,oBAAAoH,KAAI,MAAM,YAAY;AACtB,oBAAA6M,KAAI,MAAM,aAAa;AAC7B,kBAAI,CAAC,YAAY;AACf,6BAAa,UAAU;AAAA,kBACrB,MAAM,CAAC;AAAA,kBACP,MAAM,CAAC;AAAA,kBACP7M,KAAI,KAAK,IAAI,CAAC;AAAA,kBACd6M,KAAI,KAAK,IAAI,CAAC;AAAA,kBACd;AAAA,kBACA;AAAA;AAEF,oBAAI,YAAY;AACd,uBAAK,YAAY;AACjB,sBAAI/W,SAAQ;AACZ,sBAAI,OAAO,iBAAiB;AAC1B,wBAAI,CAAC,KAAK,eAAe,KAAK,YAAY,UAAU,GAAG;AAChD,yCAAc,EAAE,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK;oBAC/C;AACQ,oBAAAA,SAAA;AAAA,kBACV;AACA,sBAAI,SAAS,YAAYA,MAAK,iBAAiBA,MAAK;AAC7C,gCAAO,MAAM,SAAS;AAAA,gBAC/B;AAAA,cACF;AACA,mBAAK,WAAW,KAAK,CAACkK,IAAG6M,IAAG,WAAW,UAAU,CAAC;AAE9C,2BAAS,YAAY,IAAI;AACzB,2BAAS,aAAa,IAAI;AAC9B,kBAAI,QAAQ,KAAK,IAAI,QAAQ,MAAM;AAE/B,8BAAY,QAAQ,IAAI;AAC5B,kBAAI,OACF,MAAM,aAAa,UAAU,aAAa,aAAa;AACrD,6BAAW,QAAQ,IAAI;AAC3B,kBAAI,OAAO,MAAM,YAAY,UAAU,YAAY,YAAY;AAE3D;AAAA,gBACF;AAAA,gBACA,OAAO;AAAA,gBACP,OAAO;AAAA,gBACP,WAAW,eAAe;AAAA,gBAC1B,YAAY,eAAe;AAAA;AAE7B,kBAAI,CAAC,cAAc;AAEjB,oBAAI,cAAc;AAClB,oBAAI,YAAY;AACZ;AAAA,kBACF7M,KAAI;AAAA,kBACJ6M,KAAI;AAAA,kBACJ,YAAY,eAAe;AAAA,kBAC3B,aAAa,eAAe;AAAA;AAAA,cAEhC;AAEA,kBAAI,SAAS;AAAA,YACf;AAEA,gBAAI,CAAC,YAAY;AACf,mBAAK,cAAc;AACnB,mBAAK,YAAY;AAAA,YACnB;AAAA,iBACK;AAEL,gBAAI,IAAI,KAAK,KAAK,UAAU,EAAE;AAC9B,gBAAIxR,KAAI,KAAK,KAAK,UAAU,EAAE;AAE9B,kBAAM,SAAS,KAAK;AACpB,kBAAM,SAAS,KAAKA;AACpB,kBAAM,QAAQ,KAAK,IAAI,QAAQ,QAAQ,CAAC;AAEnC;AACA,YAAAA,MAAA;AAED,gBAAA2E,MAAK,KAAK,KAAK;AACf,gBAAA6M,MAAK,KAAKxR,MAAK,IAAI;AACnB,0BAAU,KAAK,KAAK,UAAU,GAAG2E,IAAG6M,IAAG,GAAGxR,EAAC;AAE/C,kBAAM,aAAa,wBAAC2E,KAAG6M,KAAG,IAAI,SAAS;AACrC,oBAAM,UAAU,UAAU;AAAA,gBACxB,MAAM,CAAC;AAAA,gBACP,MAAM,CAAC;AAAA,gBACP7M,MAAI,KAAK,IAAI,CAAC;AAAA,gBACd6M,MAAI,KAAK,IAAI,CAAC;AAAA,gBACd;AAAA,gBACA;AAAA;AAEF,kBAAI,OAAO;AACX,kBAAI,WAAW;AACf,kBAAI,aAAa;AACjB,kBAAI,SAAS;AACJ,8BAAO,MAAM,SAAS;AAC7B,oBAAI,OAAO,iBAAiB;AACnB;AACM;AAAA,uBACR;AACE;AACI;AAAA,gBACb;AAAA,qBACK;AACL,qBAAK,iBAAiB;AAAA,cACxB;AAEA,kBAAI,YAAY;AAChB,kBAAI,UAAU;AACd,kBAAI,UAAU7M,KAAG6M,KAAG,IAAI,IAAI,CAAC,CAAC,CAAC;AAC/B,kBAAI,KAAK;AACT,kBAAI,YAAY;AAChB,kBAAI,OAAO;AACX,kBAAI,YAAY;AAChB,kBAAI,SAAS,MAAM7M,MAAI,IAAI6M,MAAI,EAAE;AAE1B;AAAA,eAlCU;AAqCnB,gBAAI,YAAY,GAAG;AAEf;AAAA,gBACE,KAAK;AAAA,gBACL,KAAK,MAAM;AAAA,gBACX;AAAA,gBACA,GAAG,KAAK,aAAa,CAAC,IAAI,SAAS;AAAA,iBAErC;AACA,oBAAI,IACF,KAAK,aAAa,KAAK,YAAY,IAAI,KAAK,aAAa;AAC3D,oBAAI,CAAC,KAAK,eAAe,CAAC,KAAK,YAAY,UAAU,GAAG;AACjD,qCAAc,EAAE,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK;gBAC/C;AAAA,cACF;AAEA,kBAAI,WAAW,KAAK,IAAI,MAAM,IAAI,IAAI,GAAG,GAAG;AAC1C,oBAAI,CAAC,KAAK,eAAe,CAAC,KAAK,YAAY,UAAU,MAAM;AACpD,qCAAc,EAAE,OAAO,MAAM,KAAK,CAAC,GAAG,KAAK;gBAClD;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAxTS;AA0TJ,IAAA1S,MAAA,UAAU,mBAAmB,SAAU,KAAK;AAC3C;AACmB,kCAAK,MAAM,GAAG;AAAA,eAC5B,OAAO;AACN,sBAAM,iCAAiC,KAAK;AAAA,MACtD;AAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB;AAEP,8BAAiB,QAAQ,OAAO,UAAU;AACjD,YAAM,eAAe;AACrB,YAAM,gBAAgB;AAEtB,YAAM,IAAI,KAAK;AACf,WAAK,eAAe;AAIpB,UAAI,KAAK,EAAE,cAAe,MAAM,EAAE,WAAW,KAAK,GAAI;AACpD;AAAA,MACF;AAGE,gBAAM,aAAa,MAAM,UACzB,MAAM,aAAa,MAAM,CAAC,EAAE,SAAS,aACrC;AACA,cAAM,KAAK,WAAW,MAAM,aAAa,MAAM,CAAC,CAAC;AAAA,aAC5C;AAEC,2BAAa,CAAC,iBAAiB,gBAAgB;AACrD,cAAM,QAAQ,CAAC,GAAG,MAAM,aAAa,KAAK,EAAE;AAAA,UAAK,CAACuB,OAChD,WAAW,KAAK,CAACxE,OAAMwE,OAAMxE,EAAC;AAAA;AAEhC,YAAI,OAAO;AACH,sBAAM,MAAM,aAAa,QAAQ,KAAK,GAAG,MAAM,IAAI,IAAI,CAAC;AAC9D,cAAI,KAAK;AACD,uBAAK,WAAW,OAAO,MAAM,MAAM,GAAG,GAAG,MAAM;AAAA,UACvD;AAAA,QACF;AAAA,MACF;AAAA,KACD;AAGI,kBAAS,iBAAiB,aAAa,YAAY;AACtD,UAAI,KAAK,cAAc;AACrB,aAAK,eAAe;AACf,mBAAM,eAAe,OAAO,IAAI;AAAA,MACvC;AAAA,KACD;AAGD,SAAK,SAAS;AAAA,MACZ;AAAA,MACA,CAACyB,OAAM;AACA,oBAAO,iBAAiBA,EAAC;AAC9B,cAAMwB,QAAO,KAAK,MAAM,aAAaxB,GAAE,SAASA,GAAE,OAAO;AACzD,YAAIwB,OAAM;AAER,cAAIA,MAAK,cAAcA,MAAK,WAAWxB,EAAC,GAAG;AACzC,iBAAK,eAAewB;AAGpB,kCAAsB,MAAM;AACrB,yBAAM,eAAe,OAAO,IAAI;AAAA,aACtC;AACD;AAAA,UACF;AAAA,QACF;AACA,aAAK,eAAe;AAAA,MACtB;AAAA,MACA;AAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmB;AACR,8BAAiB,SAAS,OAAOxB,OAAsB;AAG9D,UAAI,KAAK,UAAW;AAKhB,UAAAe,SAAOf,GAAE,iBAAiB,OAAO;AACrC,YAAMiH,SAAQlG,OAAK;AAGnB,iBAAW7C,SAAQ+I,QAAO;AACxB,YAAI/I,MAAK,KAAK,WAAW,QAAQ,GAAG;AAClC,cAAI,YAAY;AAGhB,cACE,KAAK,OAAO,gBACZ,KAAK,OAAO,aAAa,eACzB,SAAS,YAAY,KAAK,OAAO,YAAY,GAC7C;AACA,wBAAY,KAAK,OAAO;AAAA,UAC1B;AAGA,cAAI,CAAC,WAAW;AACR,4BAAU,UAAU,WAAW,WAAW;AAEhD,oBAAQ,MAAM,CAAC,GAAG,KAAK,OAAO,WAAW;AAC7B,6BAAK,MAAM,IAAI,OAAO;AAClC,iBAAK,MAAM;UACb;AACM,uBAAOA,MAAK;AAClB,oBAAU,UAAU,IAAI;AACxB;AAAA,QACF;AAAA,MACF;AAGO,MAAA6C,gBAAK,QAAQ,YAAY;AAChC,UAAI,WAAqC;AACrC;AACF,QAAAA,SAAOA,OAAK,MAAMA,OAAK,QAAQ,GAAG,CAAC;AACxB,wBAAK,MAAMA,MAAI;AAAA,eACnB,KAAK;AACR;AACF,UAAAA,SAAOA,OAAK,MAAMA,OAAK,QAAQ,YAAY,CAAC;AAC5C,UAAAA,SAAOA,OAAK,MAAMA,OAAK,QAAQ,GAAG,CAAC;AACxB,0BAAK,MAAMA,MAAI;AAAA,iBACnB,OAAO;AACH;AAAA,QACb;AAAA,MACF;AAEA,UAAI,YAAY,SAAS,WAAW,SAAS,SAAS,SAAS,OAAO;AAC9D,mBAAK,cAAc,QAAQ;AAAA,aAC5B;AACL,YACGf,GAAE,kBAAkB,uBACnBA,GAAE,OAAO,SAAS,cACnBA,GAAE,kBAAkB,oBAAoBA,GAAE,OAAO,SAAS,QAC3D;AACA;AAAA,QACF;AAGA,aAAK,OAAO;MACd;AAAA,KACD;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB;AACP,8BAAiB,QAAQ,CAACA,OAAM;AACnC,YAAEA,GAAE,kBAAkB,UAAU;AAClC;AAAA,MACF;AACA,UACGA,GAAE,kBAAkB,uBACnBA,GAAE,OAAO,SAAS,cACnBA,GAAE,kBAAkB,oBAAoBA,GAAE,OAAO,SAAS,QAC3D;AAEA;AAAA,MACF;AACM,8BACJA,GAAE,OAAO,UAAU,SAAS,WAAW,KACvCA,GAAE,OAAO,UAAU,SAAS,wBAAwB;AAGlD,6BAAmB,KAAK,OAAO,gBAAgB;AACjD,aAAK,OAAO;AACV,QAAAA,GAAA,cAAc,QAAQ,QAAQ,GAAG;AACnC,QAAAA,GAAE,eAAe;AACjB,QAAAA,GAAE,yBAAyB;AACpB;AAAA,MACT;AAAA,KACD;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,0BAA0B;AACxB,UAAMb,QAAO;AAEP,iCAAuB,aAAa,UAAU;AACvC,2BAAU,mBAAmB,SAAUa,IAAG;AAErD,YAAM,cAAc,kBAAkB,IAAI,2BAA2B;AACjE,yBAAeA,GAAE,WAAWA,GAAE,YAAY,CAACA,GAAE,UAAUA,GAAE,SAAS;AAC/D,QAAAb,MAAA,kBAAkB,CAACa,GAAE,GAAGA,GAAE,GAAG,KAAK,GAAG,KAAK;AAC/C;AAAA,MACF;AAEA,YAAM,MAAM,qBAAqB,MAAM,MAAM,SAAS;AAC/C;AAAA;AAEH,iCAAuB,aAAa,UAAU;AACvC,2BAAU,mBAAmB,SAAUA,IAAG;AAErD,UAAIA,GAAE,WAAWA,GAAE,YAAYb,MAAK,iBAAiB;AAE/C,aAACa,GAAE,SAAS;AACd,UAAAb,MAAK,kBAAkB;AACvB;AAAA,QACF;AAGA,YAAI,SAASa,GAAE,IAAIb,MAAK,gBAAgB,CAAC;AACrC,yBAAaA,MAAK,gBAAgB,CAAC;AAEnC,oBAAQ,aAAa,SAAS;AAE7B,gBAAG,YAAY,OAAO;AAAA,UACzBA,MAAK,gBAAgB,CAAC;AAAA,UACtBA,MAAK,gBAAgB,CAAC;AAAA,SACvB;AACD,aAAK,MAAM;AAEX;AAAA,MACF;AAEO,kCAAqB,MAAM,MAAM,SAAS;AAAA;AAAA,EAErD;AAAA;AAAA;AAAA;AAAA,EAKA,wBAAwB;AAChB,2BAAiB,aAAa,UAAU;AACjC,2BAAU,aAAa,SAAUa,IAAkB;AAC1D,WAAC,KAAK,OAAO;AACf;AAAA,MACF;AAEA,UAAI,gBAAgB;AAEpB,UAAIA,GAAE,kBAAkB,WAAWA,GAAE,OAAO,aAAa,SAAS;AAChE;AAAA,MACF;AAEA,UAAIA,GAAE,QAAQ,aAAa,CAACA,GAAE,QAAQ;AAC9B,yBAAW,aAAa,UAAUA,EAAC;AACzC,cAAM,kBAAkB;AAClB,2BAAa,gBAAgB,cAAc,QAAQ;AACrD,0BAAc,WAAW,mBAAmB,iBAAiB;AAC/C,4BAAE,QAAQ,WAAW,SAAS;AAC9B;AAAA,QAClB;AAGA,YAAIA,GAAE,QAAQ,QAAQA,GAAE,WAAWA,GAAE,UAAU;AAEtC;AAAA,QACT;AAGA,aACGA,GAAE,QAAQ,OAAOA,GAAE,OAAO,SAC1BA,GAAE,WAAWA,GAAE,YAChB,CAACA,GAAE,UACH;AAEO;AAAA,QACT;AAAA,MACF;AAEA,WAAK,MAAM;AAEX,UAAI,eAAe;AACjB,QAAAA,GAAE,eAAe;AACjB,QAAAA,GAAE,yBAAyB;AACpB;AAAA,MACT;AAGO,4BAAe,MAAM,MAAM,SAAS;AAAA;AAAA,EAE/C;AAAA;AAAA;AAAA;AAAA,EAKA,wBAAwB;AACtB,UAAMb,QAAO;AACP,2BAAiB,aAAa,UAAU;AAC9C,iBAAa,UAAU,aAAa,SAAU,QAAQ,KAAK;AACrD,WAAC,KAAK,OAAO;AACf;AAAA,MACF;AAEI,mBAAS,KAAK,MAAM;AAExB,UAAI,KAAK;AACL,wBAAc,MAAM,KAAK;AAE7B,eAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,EAAE,GAAG;AAClC,oBAAQ,OAAO,CAAC;AAEpB,YAAI,CAAC,UAAU,gBAAgB,KAAK,cAAc,MAAM,SAAS,GAAG;AAClE;AAAA,QACF;AAEI,wBAAY,MAAM,SAAS;AAC3B,0BAAc,MAAM,SAAS;AACjC,YAAI4L,OAAM,MAAM;AAChB,YAAIjD,QAAO,MAAM;AACb,0BAAc,OAAO,KAAK;AAC9B,YAAI,UAAU;AACV,wBAAY,MAAM,aAAa,UAAU;AAC7C,YAAI,KAAKiD,KAAI,CAAC,IAAI,KAAKA,KAAI,CAAC,IAAI,KAAKjD,MAAK,CAAC,GAAG,YAAY,GAAG;AAC7D,YAAI,KAAK;AACT,YAAI,cAAc,KAAK;AAAA,MACzB;AAEA,UAAI,QAAQ;AAEZ,YAAM,MAAM,eAAe,MAAM,MAAM,SAAS;AACzC;AAAA;AAAA,EAEX;AAAA;AAAA;AAAA;AAAA,EAKA,sBAAsB;AACd,8BAAoB,aAAa,UAAU;AACjD,UAAM3I,QAAO;AACA,2BAAU,gBAAgB,SACrCqC,OACA,KACAsG,OACA,SACA,SACA4L,WACA;AACA,YAAM,MAAM,kBAAkB,MAAM,MAAM,SAAS;AAEnD,YAAM,aAAavU,MAAK,iBAAiBqC,MAAK,EAAE;AAEhD,UAAIgS,SAAQ;AACZ,UAAI,YAAY;AAChB,UAAIhS,MAAK,OAAO,CAACrC,MAAK,eAAe;AAC3B,QAAAqU,SAAA;AAAA,iBACCrU,MAAK,gBAAgBqC,MAAK,OAAOrC,MAAK,aAAa,IAAI;AACxD,QAAAqU,SAAA;AAAA,iBACC,YAAY,QAAQ;AACrB,QAAAA,SAAA;AACI;AAAA,iBAEZrU,MAAK,sBACL,CAACA,MAAK,mBAAmB,YAAYqC,MAAK,IAC1C;AACQ,QAAAgS,SAAA;AACI;AAAA,MACd;AAEA,UAAIA,QAAO;AACT,cAAM,QACJhS,MAAK,UAAUA,MAAK,YAAY,SAAS,UAAU;AACrD,YAAI,YAAY;AAChB,YAAI,cAAc;AAClB,YAAI,UAAU;AACd,YAAI,SAAS,UAAU;AACjB;AAAA,YACF;AAAA,YACA,KAAK,UAAU;AAAA,YACf,KAAKsG,MAAK,CAAC,IAAI;AAAA,YACf,KAAKA,MAAK,CAAC,IAAI,UAAU;AAAA;AAAA,iBAG3B,SAAS,UAAU,eAClB,SAAS,UAAU,cAActG,MAAK,MAAM;AAEzC;AAAA,YACF;AAAA,YACA,KAAK,UAAU;AAAA,YACf,KAAKsG,MAAK,CAAC,IAAI;AAAA,YACf,KAAKA,MAAK,CAAC,IAAI,UAAU;AAAA,YACzB,KAAK,eAAe;AAAA;AAAA,iBAEf,SAAS,UAAU;AACtB;AAAA,YACF;AAAA,YACA,KAAK,UAAU;AAAA,YACf,KAAKA,MAAK,CAAC,IAAI;AAAA,YACf,KAAKA,MAAK,CAAC,IAAI,UAAU;AAAA,YACzB,CAAC,KAAK,eAAe,GAAG,KAAK,eAAe,GAAG,GAAG,CAAC;AAAA;AAAA,iBAE9C,SAAS,UAAU;AACtB;AAAA,YACFA,MAAK,CAAC,IAAI;AAAA,YACVA,MAAK,CAAC,IAAI;AAAA,YACVA,MAAK,CAAC,IAAI,MAAM;AAAA,YAChB;AAAA,YACA,KAAK,KAAK;AAAA;AAEd,YAAI,cAAc0L;AAClB,YAAI,OAAO;AACX,YAAI,cAAc;AAClB,YAAI,cAAc;AAAA,MACpB;AAEA,UAAIrU,MAAK,YAAYqC,MAAK,OAAO,CAACrC,MAAK,eAAe;AACpD,YAAI,YAAY;AACZ;AAAA,UACF;AAAA,UACA;AAAA,UACA2I,MAAK,CAAC,KAAK3I,MAAK,SAAS,QAAQA,MAAK,SAAS;AAAA,UAC/C;AAAA;AAEF,YAAI,YAAY;AAAA,MAClB;AAGA,UAAI,YAAY;AACd,YAAI,YAAY;AAChB,YAAI,cAAc;AACP,4BAAS,WAAW,QAAQ;AACrC,cAAI,MAAM,cAAc,MAAM,WAAW,YAAY;AACnD,kBAAM,aAAaqC,MAAK,cAAc,MAAM,WAAW,UAAU;AACjE,gBAAI,eAAe,IAAI;AACrB,kBAAIuJ,OAAMvJ,MAAK,iBAAiB,MAAM,UAAU;AAChD,kBAAI,UAAU;AACV;AAAA,gBACFuJ,KAAI,CAAC,IAAIvJ,MAAK,IAAI,CAAC;AAAA,gBACnBuJ,KAAI,CAAC,IAAIvJ,MAAK,IAAI,CAAC;AAAA,gBACnB;AAAA,gBACA;AAAA,gBACA,IAAI,KAAK;AAAA,gBACT;AAAA;AAEF,kBAAI,OAAO;AAAA,YACb;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEO;AAAA;AAGH,yBAAe,aAAa,UAAU;AAC5C,iBAAa,UAAU,WAAW,SAAUA,OAAM,KAAK;AACrD,YAAM,eAAe,KAAK;AAC1B,YAAM,YAAYA,MAAK;AACvB,YAAM,cAAcA,MAAK;AAErB,UAAAA,MAAK,SAAS,gBAAgB,OAAO;AACvC,aAAK,eAAe;AAAA,MACtB;AAEI;AACA,UAAAA,MAAK,SAAS,gBAAgB,QAAQ;AACxC,kBAAUvB,MAAI;AACd,aAAK,eAAe;AAAA,aACf;AACL,kBAAU,eAAe,UAAU;AAAA,MACrC;AAEA,YAAM,cAAkC;AAExC,YAAM,UAAU,kBAAkB,IAAI,oBAAoB;AACtD,+BAAqB,UAAU;AAEnC,UAAI,gBAAgB,EAAE,IAAI,oBAAoB,MAAM,SAAS;AAC3D,oBAAY,YAAY;AAGxB,YAAI,WAAW;AACb,UAAAuB,MAAK,QAAQ,YAAY,WAAW,EAAE,WAAW,KAAK;AAAA,QACxD;AAAA,MACF;AAEK,MAAAA,MAAA,UAAU,YAAY,SAAS,WAAW;AAE/C,YAAM,MAAM,aAAa,MAAM,MAAM,SAAS;AAE9C,WAAK,eAAe;AACpB,MAAAA,MAAK,QAAQ;AACb,MAAAA,MAAK,UAAU;AAER;AAAA;AAAA,EAEX;AAAA;AAAA;AAAA;AAAA,EAKA,wBAAwB;AACtB,QAAI,iBAAiB,UAAU,CAAC,EAAE,aAAa;AACxC,cAAG,UAAU,MAAM;AAAA,KACzB;AAED,QAAI,iBAAiB,YAAY,CAAC,EAAE,aAAa;AAC/C,WAAK,WAAW;AACX,iBAAM,eAAe,MAAM,KAAK;AAAA,KACtC;AAED,QAAI,iBAAiB,aAAa,CAAC,EAAE,aAAa;AAChD,WAAK,WAAW;AACX,iBAAM,eAAe,MAAM,KAAK;AAC9B,kBAAK,kBAAkB,KAAK,aAAa;AAAA,KACjD;AAED,QAAI,iBAAiB,YAAY,CAAC,EAAE,aAAa;AAC/C,YAAM,SAAS,KAAK,YAAY,OAAO,gBAAgB,OAAO,IAAI;AAC9D,iBAAO,SAAS,QAAQ;AAC1B,mBAAW,KAAK,OAAO,UAAU,IAAI;AAC7B,gBAAAjD,KAAI,OAAO,CAAC;AAClB,cAAIA,cAAa,OAAO;AACtB,mBAAO,CAAC,IAAIA,GAAE,OAAO,OAAO,OAAO,CAAC,CAAC;AAAA,iBAChC;AACL,mBAAO,CAAC,IAAI,OAAO,OAAO,CAAC;AAAA,UAC7B;AAAA,QACF;AAAA,aACK;AACL,aAAK,YAAY,OAAO,gBAAgB,OAAO,IAAI,IAAI,OAAO;AAAA,MAChE;AACA,YAAMiD,QAAO,KAAK,MAAM,YAAY,OAAO,gBAAgB,OAAO,IAAI;AACtE,UAAIA,OAAM;AACR,YAAIA,MAAK,WAAiB,CAAAA,MAAA,WAAW,OAAO,MAAM;AAAA,MACpD;AAAA,KACD;AAED,QAAI,iBAAiB,mBAAmB,CAAC,EAAE,aAAa;AACtD,WAAK,qBAAqB;AAC1B,WAAK,MAAM,MAAM,QAAQ,CAACA,UAAS;AAC7B,YAAAA,MAAK,iBAAkB,CAAAA,MAAK,iBAAiB;AAAA,OAClD;AAAA,KACF;AAED,QAAI,iBAAiB,mBAAmB,CAAC,EAAE,aAAa;AACtD,WAAK,qBAAqB;AAC1B,+BAAyB,MAAM;AAC1B,kBAAO,KAAK,MAAM,IAAI;AAAA,KAC5B;AAED,QAAI,iBAAiB,aAAa,CAAC,EAAE,aAAa;AAChD,YAAM3B,MAAK,KAAK;AAChB,UAAIA,OAAM,KAAM;AAEhB,YAAM,OAAO;AACP,sBAAU,IAAI,gBAAgB,IAAI;AAExC,WAAK,kBAAkBA,GAAE,IAAI,CAAC,OAAO;AAAA,KACtC;AAED,QAAI,KAAK;AAAA,EACX;AAAA,EAEA,uBAAuB;AACrB,UAAMI,OAAM;AACN,sBAAY8T,SAAO,UAAU;AAE5BA,aAAA,UAAU,YAAY,WAAY;AACvC9T,WAAI,mBAAmB;AACnB;AACK,yBAAU,MAAM,MAAM,SAAS;AAAA,gBACtC;AACAA,aAAI,mBAAmB;AAAA,MACzB;AAAA;AAAA,EAEJ;AAAA,EAEA,yBAAyB;AACvBA,UAAI,OAAO,oBAAoB,SAAUkU,SAAQ3S,OAAM;AACrD,YAAM,eAAe;AACrB,YAAM,UAAU,aAAa,eAAeA,MAAK,IAAI;AACrD,YAAM,QAAQ,QAAQ,OAAO,SAAS2S,QAAO,IAAI;AACjD,aAAO,OAAO;AAAA;AAUP;AAAA,MACP;AAAA,MACA,OAAOnU,OAAyC;AAC1C,YAAAA,GAAE,OAAO,YAAY,wBAAwB;AAC/C,gBAAM,EAAE,eAAmB,UAAM;AAAA,oCAAAwqB,oBAAA,aAC/B,4BACF;;;AAEA,gBAAM,EAAE,MAAAhpB,OAAM,MAAM,QAAA2S,QAAA,IAAWnU,GAAE;AACjC,cAAI,CAACwB,SAAQ,CAAC,QAAQ,CAAC2S,QAAQ;AAEzB,2BAAW3S,MAAK,YAAY;AAClC,cAAI,CAAC,SAAU;AACf,gBAAMoK,OAAM;AAAA,YACV,GAAG,UAAU,OAAO;AAAA,YACpB,GAAG,UAAU,OAAO;AAAA;AAEhB,gBAAAnD,aAAYmD,KAAIuI,QAAO,IAAI;AACjC,cAAI,CAAC1L,WAAW;AAEhB,gBAAM,QAAQ,eAAejH,OAAM2S,SAAQ1L,UAAS;AACpD,cAAI,CAAC,MAAO;AAEZ,gBAAM,aAAa,KAAK;AAEb,6BAAQ,KAAK,MAAMjH,OAAMA,MAAK,OAAO,YAAY,KAAK,CAAC;AAAA,QACpE;AAAA,MACF;AAAA;AAAA,EAEJ;AAAA,EAEA,4BAA4B;AAC1B,UAAMvB,OAAM;AACN,wBAAcA,KAAI,MAAM;AAC9BA,SAAI,MAAM,cAAc,WAAY;AAEvB,iBAAAuB,SAAQvB,KAAI,MAAM,OAAO;AAClC,QAAAuB,MAAK,oBAAoB;AAAA,MAC3B;AAEA,YAAM,IAAI,aAAa,MAAM,MAAM,SAAS;AAGjC,iBAAAA,SAAQvB,KAAI,MAAM,OAAO;AAClC,QAAAuB,MAAK,yBAAyB;AAAA,MAChC;AAEO;AAAA;AAAA,EAEX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB;AACtB,wBAAoB;AAEd,uBAAa,MAAM,IAAI;AAI7B,UAAM,2BAAO,qBAA0B;AACvC,UAAM,QAAQ;AAAA,MACZ,WACG,OAAO,CAAC,cAAc,CAAC,UAAU,SAAS,iBAAiB,CAAC,EAC5D,IAAI,OAAO,QAAQ;AACd;AACI;AAAA;AAAA,YAA0B,IAAI,QAAQ,GAAG;AAAA;AAAA,iBACxC,OAAO;AACN,wBAAM,2BAA2B,KAAK,KAAK;AAAA,QACrD;AAAA,OACD;AAAA;AAAA,EAEP;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,MAAM,UAA6B;AACvC,SAAK,WAAW;AAEX,YAAG,cAAc,MAAM,UAAU;AAEtC,SAAK,aAAa;AAElB,UAAM,QAAQ,IAAI;AAAA,MAChB,kBAAoB,WAAS,cAAc;AAAA,MAC3C,KAAK,GAAG,SAAS,KAAK;AAAA,KACvB;AACD,UAAM,KAAK;AAEX,SAAK,wBAAwB;AAC7B,SAAK,sBAAsB;AAC3B,SAAK,qBAAqB;AAC1B,SAAK,sBAAsB;AAC3B,SAAK,wBAAwB;AAExB,iBAAQ,IAAIuS;AAEjB,SAAK,0BAA0B;AAI/B,SAAK,SAAS,IAAI,aAAa,UAAU,KAAK,KAAK;AACnD,SAAK,OAAO,QAAQ,gBAAgB,KAAK,OAAO,KAAK;AAEhD,eAAM,SAAS,WAAW,IAAI;AAEnC,cAAU,0BAA0B;AAEpC,SAAK,MAAM;AAGX,SAAK,aAAa;AAClB,WAAO,iBAAiB,UAAU,MAAM,KAAK,aAAc;AAC3D,UAAM,KAAK,IAAI,eAAe,MAAM,KAAK,aAAc;AACpD,eAAQ,KAAK,OAAO;AACpB,eAAQ,KAAK,QAAQ;AACrB,eAAQ,KAAK,SAAS;AACtB,eAAQ,KAAK,UAAU;AAEpB,eAAK,uBAAuB,MAAM;AACxC,UAAM,KAAK;AACX,gBAAY,IAAI;AAGhB,QAAI,WAAW;AACX;AACI,2BAAe,8BAAO,SAAS;AACnC,YAAI,MAAM;AACF,2BAAW,KAAK,MAAM,IAAI;AAC1B,+BAAe,gBAAgB,wBAAwB;AAC7D,gBAAM,KAAK,cAAc,UAAU,MAAM,MAAM,YAAY;AACpD;AAAA,QACT;AAAA,SANmB;AAQf,uBAAW,IAAI,mBAAmB,IAAI;AAC5C,iBACG,YACE,MAAM;AAAA,QACL,eAAe,QAAQ,YAAY,QAAQ,EAAE;AAAA,WAEhD,MAAM,aAAa,aAAa,QAAQ,UAAU,CAAC;AAAA,aAC/C,KAAK;AACJ,oBAAM,mCAAmC,GAAG;AAAA,IACtD;AAGA,QAAI,CAAC,UAAU;AACb,YAAM,KAAK;IACb;AAEA,SAAK,oBAAoB;AACzB,SAAK,sBAAsB;AAC3B,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AACrB,SAAK,iBAAiB;AACtB,SAAK,uBAAuB;AAEtB,eAAK,uBAAuB,OAAO;AAAA,EAC3C;AAAA,EAEA,eAAe;AAEb,UAAM,QAAQ,KAAK,IAAI,OAAO,kBAAkB,CAAC;AAGjD,SAAK,SAAS,SAAS,KAAK,SAAS,QAAQ;AAC7C,UAAM,EAAE,OAAAU,QAAO,WAAW,KAAK,SAAS;AACxC,SAAK,SAAS,QAAQ,KAAK,MAAMA,SAAQ,KAAK;AAC9C,SAAK,SAAS,SAAS,KAAK,MAAM,SAAS,KAAK;AAChD,SAAK,SAAS,WAAW,IAAI,EAAE,MAAM,OAAO,KAAK;AAC5C,iBAAQ,KAAK,MAAM,IAAI;AAAA,EAC9B;AAAA,EAEQ,qBAAqB,MAAoC;AAG/D,UAAM,UAAU,OAAO;AAAA,MACrB,OAAO,QAAQ,UAAU,qBAAqB,EAAE,IAAI,CAAC,CAAC,MAAMjT,KAAI,MAAM;AAAA,QACpE;AAAA,QACA;AAAA,UACE;AAAA,UACA,cAAc;AAAA,UACd,UAAUA,MAAK,YAAY;AAAA,UAC3B,OAAO,EAAE,UAAU,IAAI,UAAU,GAAG;AAAA,UACpC,QAAQ,CAAC;AAAA,UACT,aAAa,CAAC;AAAA,UACd,gBAAgB,CAAC;AAAA,UACjB,eAAe;AAAA,UACf,aAAa,0BAA0B,IAAI;AAAA,QAC7C;AAAA,OACD;AAAA;AAGH,UAAM,cAAc;AAAA,MAClB,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA;AAGL,UAAM,eAAe;AACf,yBAA+B,OAAO,OAAO,WAAW;AACzD,2BAAkB,gCAAgC,cAAc,IAAI;AACzE,iBAAa,eAAe,YAAY;AAAA,EAC1C;AAAA,EAEA,mBAAmB,MAAoC;AACrD,WAAO,OAAO;AAAA,MACZ,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,MAAMyD,IAAG,MAAM;AAAA,QACxC;AAAA,QACA;AAAA,UACE,GAAGA;AAAA,UACH,cAAc;AAAA,YACZ,YAAY,IAAI;AAAA,YAChBA,KAAI,gBAAgBA,KAAI;AAAA,UAC1B;AAAA,UACA,aAAaA,KAAI,cACb,GAAG,YAAY,IAAI,gBAAgBA,KAAI,WAAW,IAClD;AAAA,UACJ,UAAUA,KAAI,SACX,MAAM,GAAG,EACT,IAAI,CAAC,aAAa,GAAG,kBAAkB,QAAQ,IAAI,QAAQ,CAAC,EAC5D,KAAK,GAAG;AAAA,QACb;AAAA,OACD;AAAA;AAAA,EAEL;AAAA,EAEA,MAAM,eAAe;AACnB,WAAO,KAAK;AAAA,MACV,MAAM,IAAI,YAAY;AAAA,QACpB,UAAU,kBAAkB,IAAI,2BAA2B;AAAA,OAC5D;AAAA;AAAA,EAEL;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAAgB;AAEd,iBAAO,MAAM,KAAK;AAClB,eAAK,sBAAsB,IAAI;AAC/B,eAAK,uBAAuB,qBAAqB;AACvD,QAAI,KAAK,aAAa;AACpB,WAAK,qBAAqB,IAAI;AAAA,IAChC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc,WAAW,WAAmB;AACpC,iBAAO,UAAU,CAAC;AAEpB,cAAM,QAAQ,IAAI,GAAG;AAChB;AAAA,eACE,GAAG,IAAI,IAAI,SAAS,MAAM,KAAK,SAAS;AAC1C,gBAAG,IAAI,IAAI,SAAS;AAAA,eAClB,QAAQ,KAAK,SAAS;AACxB;AAAA,WACF;AACE;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAM,gBAAgB,QAAgB,UAAwB;AAC5D,UAAM9F,QAAO;AACP,UAAAqC,QAAO,MAAM,kBAAkB,WAAW;AAAA;AAAA;AAAA;AAAA,MAC9C,OAAO,aAAc,SAAS;AAAA;AAAA,MAE9B,OAAO,QAAQ,SAAS,gBAAgB,SAAS;AAAA,MACjD,OAAO,WAAY;AAAA,MACnB,OAAO;AAAA,MAEP,YAAY,OAAgB;AAC1B,cAAM,KAAK;AACL,+BAAiB,SAAS,MAAM;AAEtC,YAAI,SAAS,SAAS,OAAO,EAAE,UAAU;AACzC,YAAI,SAAS,OAAO,EAAE,UAAU,KAAK,QAAW;AAC9C,mBAAS,OAAO;AAAA,YACd,CAAC;AAAA,YACD,SAAS,OAAO,EAAE,UAAU;AAAA,YAC5B,SAAS,OAAO,EAAE,UAAU;AAAA;AAAA,QAEhC;AACA,cAAM8H,UAIF,EAAE,UAAU,GAAG,WAAW,EAAE;AAChC,mBAAW,aAAa,QAAQ;AACxB,6BAAa,OAAO,SAAS;AAC7B,uBAAO,WAAW,CAAC;AACzB,gBAAM1K,WAAU,WAAW,CAAC,KAAK;AAC3B,4BAAY,CAAC,MAAMA,QAAO;AAC1B,0BAAU,YAAY,iBAAiB,SAAS,IAAI,CAAC,WAAW,iBAAiB,SAAS,CAAC;AAE3F,kCAAkB,kBAAkB,aAAa;AAEvD,cAAI,gBAAgB;AACpB,gBAAM,aAAaO,MAAK,cAAc,WAAW,SAAS;AAC1D,cAAI,YAAY;AACd,gBAAI,eAAe,SAAS;AACnB;AAAA,gBACLmK;AAAA,gBACAnK,MAAK,QAAQ,MAAM,MAAM,WAAW,WAAWc,KAAG,KAAK,CAAC;AAAA;AAAA,YAC1D,OACK;AACE;AAAA,gBACLqJ;AAAA,gBACAnK,MAAK,QAAQ,UAAU,EAAE,MAAM,WAAW,WAAWc,KAAG,KAAK,CAAC;AAAA;AAAA,YAElE;AACA,gBAAIqJ,QAAO,QAAQ;AACjB,cAAAA,QAAO,OAAO,QAAQ,GAAG,SAAS,SAAS;AAAA,YAC7C;AAAA,iBACK;AAEC,iCAAe,kBACjB,KACA,EAAE,OAAO,UAAU,UAAU;AACjC,kBAAM,eAAe;AAAA,cACnB,GAAG;AAAA,cACH,gBAAgB,GAAG,SAAS,SAAS;AAAA;AAElC,0BAAS,WAAW,MAAM,YAAY;AAC3B;AAAA,UAClB;AAEI,+BAAiBA,SAAQ,QAAQ;AAC5B,YAAAA,QAAA,OAAO,YAAY;AAC1B,gBAAI,CAAC,iBAAiB;AACb,cAAAA,QAAA,OAAO,QAAQ,kBAAkB;AAAA,YAC1C;AACI,0BAAU,CAAC,GAAG,YAAY;AACrB,cAAAA,QAAA,OAAO,QAAQ,aAAa;AAAA,YACrC;AACI,0BAAU,CAAC,GAAG,cAAc;AACvB,cAAAA,QAAA,OAAO,QAAQ,eAAe;AAAA,YACvC;AACI,0BAAU,CAAC,GAAG,UAAU;AAC1B,cAAAA,QAAO,OAAO,WAAW;AAAA,YAC3B;AACI,0BAAU,CAAC,GAAG,QAAQ;AACxB,cAAAA,QAAO,OAAO,SAAS;AAAA,YACzB;AAAA,UACF;AAAA,QACF;AAEW,wBAAK,SAAS,QAAQ,GAAG;AAClC,cAAI,SAAS,SAAS,QAAQ,EAAE,CAAC;AAC7B,gCAAkB,MAAgB;AACtC,gBAAM,aAAa,SAAS,aAAa,EAAE,CAAC,KAAK;AACjD,gBAAM,eAAe,SAAS,gBAAgB,EAAE,CAAC;AACjD,gBAAM,eAAe,eACjB,EAAE,OAAO,UAAU,eACnB;AACJ,gBAAM,UAAU,YAAY,iBAAiB,SAAS,IAAI,CAAC,YAAY,CAAC;AACxE,gBAAM,UAAU,aAAa,iBAAiB,MAAM,CAAC;AACrD,gBAAM,gBAAgB;AAAA,YACpB,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,YAKH,gBACE,WAAW,aACP,GAAG,SAAS,UAAU,IACtB,GAAG,SAAS,UAAU;AAAA;AAEzB,yBAAU,YAAY,QAAQ,aAAa;AAAA,QAClD;AAEM,kBAAI,KAAK;AACb,WAAC,IAAI,KAAK,IAAIA,QAAO,UAAU,EAAE,CAAC,IAAI,GAAG;AACzC,WAAC,IAAI,KAAK,IAAIA,QAAO,WAAW,EAAE,CAAC,CAAC;AACtC,aAAK,OAAO;AACZ,aAAK,oBAAoB;AAErBrJ,cAAA,uBAAuB,eAAe,IAAI;AAAA,MAChD;AAAA,MAEA,UAAUc,QAAW;AAEb,cAAA+H,SAAQ,wBACZ,SACA,aACG;AACG,yBAAS,EAAE,GAAG;AACpB,cAAI,QAAQ,WAAW,UAAa,SAAS,WAAW,QAAW;AAE5D,wBAAO,KAAK,OAAyB;AACnC;AAAA,UACT;AACA,qBAAW,OAAO,CAAC,QAAQ,QAAQ,SAAS,gBAAgB,GAAG;AACzD,wBAAQ,GAAG,MAAM,QAAW;AACvB,wBAAG,IAAI,QAAQ,GAAG;AAAA,YAC3B;AAAA,UACF;AACO;AAAA,WAfK;AAiBd,mBAAW,SAAS,CAAC,UAAU,SAAS,GAAG;AACzC,gBAAM,QAAQ/H,OAAK,KAAK,KAAK;AACxB,UAAAA,OAAA,KAAK,IAAI,MAAM;AAAA,YAAI,CAAC,MAAM,MAC7B+H,OAAM,KAAK,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;AAAA;AAAA,QAEpC;AACA,cAAM,UAAU/H,MAAI;AAAA,MACtB;AAAA;AAEG,IAAAS,MAAA,UAAU,aAAa,SAAS;AAErC,SAAK,2BAA2BA,KAAI;AACpC,SAAK,0BAA0BA,KAAI;AACnC,SAAK,mBAAmBA,KAAI;AAE5B,UAAM,KAAK,uBAAuB,yBAAyBA,OAAM,QAAQ;AAC/D,+BAAiB,QAAQA,KAAI;AAEvC,IAAAA,MAAK,WAAW,SAAS;AAAA,EAC3B;AAAA,EAEA,MAAM,sBAAsB,MAAoC;AACxD,eAAK,uBAAuB,qBAAqB,IAAI;AAG3D,eAAW,UAAU,MAAM;AACzB,WAAK,gBAAgB,QAAQ,KAAK,MAAM,CAAC;AAAA,IAC3C;AAAA,EACF;AAAA,EAEA,iBAAiB,cAAc;AACzB,SAAC,cAAc,WAAW;AAC5B;AAAA,IACF;AAEM,gBAAM,aAAa,QAAQ,2BAA2B;AAE5D,QAAI,MAAM,YAAYA;AAEX,2BAAY,aAAa,WAAW;AACzC,WAAC,UAAU,MAAM;AACnB;AAAA,MACF;AAGA,YAAMT,SAAO,KAAK,MAAM,SAAS,IAAI;AACjC,WAACA,OAAK,UAAU;AACG,sCAAS,MAAMd,MAAI,MAAM;AAAA,aACzC;AACQ,6BAAQ,6BAA6B,SAAS,IAAI;AAC/DA,cAAI,OAAO;MACb;AAIO;AAEI,sBAAKA,MAAI,OAAO,gBAAgB;AAClC,QAAAuB,QAAAvB,MAAI,OAAO,eAAe,CAAC;AAElC,qBAAauB,MAAK,IAAI,CAAC,IAAIA,MAAK,KAAK,CAAC;AAElC,qBAAS,SAAS,aAAa,MAAM;AAChC;AAAA,QACT;AAAA,MACF;AAEAvB,YAAI,OAAO,YAAY,CAAC,IAAI,OAAO;AAAA,IACrC;AAEa,yBAAQ,6BAA6B,GAAG;AAAA,EACvD;AAAA,EAEA,uBAAuB,kBAAqC;AAC1D,QAAI,gBAAgB,EAAE,IAAI,wCAAwC,GAAG;AAC3C,gCAAE,kBAAkB;AAAA,IAC9C;AAAA,EACF;AAAA,EAEA,wBAAwB,eAAe,OAAO;AAC5C,QAAI,gBAAgB,EAAE,IAAI,yCAAyC,GAAG;AAC3C;AAAA,QACvB;AAAA,QACA;AAAA,OACD;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,cACJ,WACA,QAAiB,MACjB,eAAwB,MACxB,WAA0C,MAC1C,EAAE,yBAAyB,MAAM,0BAA0B,KAAK,IAAI,IACpE;AACA,QAAI,UAAU,OAAO;AACnB,WAAK,MAAM;AAAA,IACb;AAEA,QAAI,uBAAuB;AAC3B,QAAI,CAAC,WAAW;AACF;AACW;AAAA,IACzB;AAEI,eAAO,oBAAoB,aAAa;AAC1C,kBAAY,KAAK,MAAM,KAAK,UAAU,SAAS,CAAC;AAAA,WAC3C;AACL,kBAAY,gBAAgB,SAAS;AAAA,IACvC;AAEA,QAAI,gBAAgB,EAAE,IAAI,4BAA4B,GAAG;AAEvD,YAAM,qBAAqB,MAAM;AAAA,QAC/B;AAAA;AAAA,QACc,CAAC,QAAQ;AACP,0BAAE,SAAS,GAAG;AAAA,QAC9B;AAAA;AAIF,kBAAY,sBAAsB;AAAA,IACpC;AAEA,oBAAgB,mBAAmB;AAEnC,UAAM,mBAAsC;AAC5C,UAAM,gBAAgB;AACtB,UAAM,KAAK;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAGO,kBAAK,UAAU,OAAO;AAE7B,UAAI,EAAE,QAAQ,mBAAoB,GAAE,OAAO;AAC3C,UAAI,EAAE,QAAQ,uBAAwB,GAAE,OAAO;AAC/C,UAAI,EAAE,QAAQ;AACZ,UAAE,OAAO;AAGX,UAAI,EAAE,EAAE,QAAQ,UAAU,wBAAwB;AAC/B,8BAAK,EAAE,IAAI;AAC1B,iBAAO,iBAAiB,EAAE,IAAI;AAAA,MAClC;AAAA,IACF;AACA,QACE,UAAU,UACV,gBAAkB,MAAI,yCAAyC,GAC/D;AACW,sBAAK,UAAU,QAAQ;AAC1B,iCAAmB,MAAM,gBAAgB;AAAA,UAC7C,EAAE;AAAA;AAEJ,YAAI,qBAAqB,MAAM;AAE7B,YAAE,oBAAoB;AACtB,wBAAc,KAAK,CAAC;AAAA,QACX,aAAE,EAAE,QAAQ,iBAAiB,SAAS;AAC/C,wBAAc,KAAK,CAAC;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAEI;AAEG,iBAAM,UAAU,SAAS;AAE5B,0BACA,kBAAkB,IAAI,iCAAiC,KACvD,UAAU,OAAO,IACjB;AAIA,aAAK,OAAO,GAAG,SAAS,UAAU,MAAM,GAAG;AAC3C,aAAK,OAAO,GAAG,QAAQ,UAAU,MAAM,GAAG;AAAA,MAC5C;AAAA,aACO,OAAO;AACd,UAAI,YAAY;AAEV,uBACJ,MAAM,aACL,MAAM,SAAS,IAAI,MAAM,wBAAwB,IAAI,CAAC;AACzD,YAAM8K,QAAO,YAAY,IAAI,QAAQ,cAAc;AACnD,UAAIA,OAAM,IAAI;AACF;AAAA,UACR,IAAI,QAAQ;AAAA,YACV,aAAa;AAAA,WACd;AAAA,UACD,IAAI,IAAI;AAAA,UACR,IAAI,QAAQ;AAAA,YACV,OAAO;AAAA,cACL,YAAY;AAAA,YACd;AAAA,YACA,aAAa,SAAS,UAAUA,IAAG;AAAA,WACpC;AAAA;AAAA,MAEL;AAGA,WAAK,GAAG,OAAO;AAAA,QACb,IAAI,OAAO;AAAA,UACT,IAAI,KAAK;AAAA,YACP,aAAa;AAAA,WACd;AAAA,UACD,IAAI,OAAO;AAAA,YACT,OAAO,EAAE,SAAS,OAAO,iBAAiB,oBAAoB;AAAA,YAC9D,aAAa,MAAM,SAAS;AAAA,WAC7B;AAAA,UACD,IAAI,OAAO;AAAA,YACT,OAAO;AAAA,cACL,SAAS;AAAA,cACT,OAAO;AAAA,cACP,UAAU;AAAA,cACV,WAAW;AAAA,cACX,UAAU;AAAA,cACV,iBAAiB;AAAA,YACnB;AAAA,YACA,aAAa,MAAM,SAAS;AAAA,WAC7B;AAAA,UACD,GAAG;AAAA,QACJ,GAAE;AAAA;AAGL;AAAA,IACF;AACW,eAAAvJ,SAAQ,KAAK,MAAM,OAAO;AAC7B,YAAAsG,QAAOtG,MAAK;AACb,MAAAsG,MAAA,CAAC,IAAI,KAAK,IAAItG,MAAK,KAAK,CAAC,GAAGsG,MAAK,CAAC,CAAC;AACnC,MAAAA,MAAA,CAAC,IAAI,KAAK,IAAItG,MAAK,KAAK,CAAC,GAAGsG,MAAK,CAAC,CAAC;AACxC,MAAAtG,MAAK,OAAOsG;AACZ,UAAItG,MAAK,SAAS;AAGP,iBAAA2S,WAAU3S,MAAK,SAAS;AAC/B,cAAIA,MAAK,QAAQ,cAAcA,MAAK,QAAQ,oBAAoB;AAC1D,gBAAA2S,QAAO,QAAQ,gBAAgB;AAE/B,yBAAOA,QAAO,UAAU,YACxBA,QAAO,MAAM,WAAW,SAAS,GACjC;AACA,gBAAAA,QAAO,QAAQA,QAAO,MAAM,MAAM,CAAC;AAAA,cACrC;AAAA,YACF;AAAA,UACF;AAEE,cAAA3S,MAAK,QAAQ,cACbA,MAAK,QAAQ,sBACbA,MAAK,QAAQ,iBACb;AACI,gBAAA2S,QAAO,QAAQ,0BAA0B;AACvC,kBAAAA,QAAO,UAAU,MAAM;AAEzB,gBAAAA,QAAO,QAAQ;AAAA,yBACNA,QAAO,UAAU,OAAO;AAEjC,gBAAAA,QAAO,QAAQ;AAAA,cACjB;AAAA,YACF;AAAA,UACF;AACA,cAAI,sBAAsB;AACpB,gBAAAA,QAAO,QAAQ,SAAS;AAC1B,kBACE,CAACA,QAAO,QAAQ,OAAO,SAASA,QAAO,KAAe,KACtDA,QAAO,QAAQ,OAAO,SAAS,GAC/B;AACA,gBAAAA,QAAO,QAAQA,QAAO,QAAQ,OAAO,CAAC;AAAA,cACxC;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEK,6BAAkB,mBAAmB3S,KAAI;AAAA,IAChD;AAGI,yBAAiB,UAAU,wBAAwB;AACrD,WAAK,uBAAuB,gBAAgB;AAAA,IAC9C;AACI,sBAAc,UAAU,yBAAyB;AAC7C,oBAAQ,MAAM,IAAI;AACnB,mCAAwB,eAAe,KAAK;AAAA,IACnD;AACM,eAAK,uBAAuB,uBAAuB,gBAAgB;AAEzE,UAAM,gBAAgB,kBAAkB,UAAU,KAAK,MAAM,WAAW;AACxE,0BAAsB,MAAM;AACrB,iBAAM,eAAe,MAAM,IAAI;AAAA,KACrC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,eAAe,QAAgB,KAAK,OAAO;AACzC,UAAM,YAAY,kBAAkB,IAAI,iCAAiC;AACzE,WAAO,MAAM,UAAU,EAAE,UAAW;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAc,QAAQ,KAAK,OAAO,QAAQ,MAAM;AACpD,eAAW,aAAa,KAAK,MAAM,sBAAsB,KAAK,GAAG;AAC/D,UAAI,UAAU,SAAS;AACV,mBAAA2S,WAAU,UAAU,SAAS;AAGtC,UAAAA,QAAO,eAAe;AAAA,QACxB;AAAA,MACF;AAEA,YAAM,aAAa,UAAU,gBACzB,UAAU,cAAc,IACxB,CAAC,SAAS;AACd,iBAAW3S,SAAQ,YAAY;AAC7B,YAAIA,MAAK,eAAe;AAEtB,cAAIA,MAAK,cAAc;AACrB,YAAAA,MAAK,aAAa;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEM,qBAAW,KAAK,eAAe,KAAK;AAG/B,eAAAA,SAAQ,SAAS,OAAO;AACtB,yBAAQA,MAAK,QAAQ;AAC9B,eAAO,KAAK;AAAA,MACd;AACW,yBAAQA,MAAK,SAAS;AAC/B,eAAO,KAAK;AAAA,MACd;AAAA,IACF;AAEA,UAAM,SAAS;AAEf,eAAW,aAAa,MAAM,sBAAsB,KAAK,GAAG;AAC1D,YAAM,WACJ,UAAU,SAAS,gBAAgB,SACnC,UAAU,SAAS,gBAAgB;AAC/B,yBACJ,CAAC,YAAY,UAAU,gBACnB,UAAU,kBACV,CAAC,SAAS;AAChB,iBAAWA,SAAQ,YAAY;AAC7B,YAAIA,MAAK,eAAe;AACtB;AAAA,QACF;AAEA,YACEA,MAAK,SAAS,gBAAgB,SAC9BA,MAAK,SAAS,gBAAgB,QAC9B;AAEA;AAAA,QACF;AAEA,cAAM,SAAS;AACf,cAAM,UAAUA,MAAK;AAGrB,YAAI,SAAS;AACX,qBAAW,KAAK,SAAS;AACjB,kBAAA2S,UAAS,QAAQ,CAAC;AACxB,gBAAI,CAACA,QAAO,WAAWA,QAAO,QAAQ,cAAc,OAAO;AAClD,qBAAAA,QAAO,IAAI,IAAIA,QAAO,iBACzB,MAAMA,QAAO,eAAe3S,OAAM,CAAC,IACnC2S,QAAO;AAAA,YACb;AAAA,UACF;AAAA,QACF;AAGS,sBAAK3S,MAAK,QAAQ;AACrB,uBAASA,MAAK,aAAa,CAAC;AAChC,cAAI,QAAQ;AACN,uBAAOA,MAAK,aAAa,CAAC;AAC9B,mBACE,OAAO,SAAS,gBAAgB,UAChC,OAAO,eACP;AACA,kBAAI,QAAQ;AACZ,kBAAI,OAAO,eAAe;AACjB,8BAAO,aAAa,KAAK,WAAW;AAC3C,oBAAI,MAAM;AACC,kCAAO,aAAa,KAAK,WAAW;AAC7C,sBAAI,QAAQ;AACF;AAAA,kBACV;AAAA,gBACF;AAAA,cACS,mBAAQ,OAAO,SAAS,gBAAgB,QAAQ;AACrD,iCAAa,CAAC,KAAK,WAAW;AAClC,oBAAI,OAAO,QAAQ;AACjB,+BAAa,WAAW,OAAO,OAAO,KAAK,OAAO,MAAM,CAAC;AACzD,2BAAS,gBAAgB,YAAY;AACnC,mCAAe,WAAW,YAAY;AAEpC,+BAAO,OAAO,YAAY,GAAG,SAASA,MAAK,OAAO,CAAC,EAAE,MACrD;AACO,oCAAO,aAAa,YAAY;AACvC,0BAAI,MAAM;AACC,wCAAO,aAAa,YAAY;AAAA,sBAC3C;AACQ;AACR;AAAA,oBACF;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAEA,kBAAI,CAAC,OAAO;AACV;AAAA,cACF;AAAA,YACF;AAEA,gBAAI,MAAM;AACR,kBAAI,QAAQ,YAAY;AACf,8BAAO,WAAW,IAAI;AAAA,cAC/B;AACA,kBAAI,MAAM;AACR,uBAAOA,MAAK,OAAO,CAAC,EAAE,IAAI,IAAI;AAAA,kBAC5B,OAAO,KAAK,SAAS;AAAA,kBACrB,SAAS,KAAK,WAAW;AAAA;AAAA,cAE7B;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,cAAM,YAAY;AAAA,UAChB;AAAA,UACA,YAAYA,MAAK;AAAA;AAInB,kBAAU,OAAO,IAAI;AAAA,UACnB,OAAOA,MAAK;AAAA;AAGd,eAAO,OAAOA,MAAK,EAAE,CAAC,IAAI;AAAA,MAC5B;AAAA,IACF;AAGA,QAAI,OAAO;AACT,iBAAW,KAAK,QAAQ;AACtB,mBAAW,KAAK,OAAO,CAAC,EAAE,QAAQ;AAE9B,oBAAM,QAAQ,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,KACjC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,KAC/B,CAAC,OAAO,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAC9B;AACA,mBAAO,OAAO,CAAC,EAAE,OAAO,CAAC;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEO,aAAE,UAAU;EACrB;AAAA,EAEA,mBAAmB,OAAO;AACxB,QAAI,SAAS,MAAM;AACV;AAAA,eACE,OAAO,UAAU,UAAU;AAC7B;AAAA,IACE,iBAAM,SAAS,MAAM,SAAS;AACvC,aAAO,MAAM;IAAS,WACb,MAAM,UAAU;AACrB,UAAAwB,WAAU,MAAM,SAAS,MAAM;AAC/B,gBAAM,SAAS,MAAM;AACZ,QAAAA,YAAA,OAAO,MAAM,SAAS,MAAM;AACzC,iBAAW,CAAC,QAAQ,SAAS,KAAK,OAAO;AAAA,QACvC,MAAM,SAAS;AAAA,SACd;AAEU,QAAAA,YAAA,OAAO,UAAU,aAAa;AAE9B,kCAAe,UAAU,QAAQ;AAC1C,UAAAA,YACE,aAAa,YAAY,UAAU,OAAO,YAAY;AAAA,QAC1D;AAAA,MACF;AACO,aAAAA;AAAA,IACT;AACO;AAAA,EACT;AAAA,EAEA,MAAM,YAAYzC,SAAQ,aAAa,GAAG;AACxC,SAAK,YAAY,KAAK,EAAE,QAAAA,SAAQ,WAAY;AAG5C,QAAI,KAAK,kBAAkB;AACzB;AAAA,IACF;AAEA,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AAElB;AACK,kBAAK,YAAY,QAAQ;AAC9B;AAAC,SAAC,EAAE,QAAAA,SAAQ,eAAe,KAAK,YAAY;AAE5C,iBAAS,IAAI,GAAG,IAAI,YAAY,KAAK;AAC7B,gBAAAZ,KAAI,MAAM,KAAK;AAEjB;AAEF,kBAAM,MAAM,MAAM,IAAI,YAAYY,SAAQZ,EAAC;AAC3C,iBAAK,iBAAiB,IAAI;AACtB,qBAAK,eAAe,SAAS,GAAG;AAC7B,0BAAO,KAAK,MAAM,IAAI;AAAA,mBACtB;AACD;AACF,oCAAoB,YAAY;AAAA,kBAC9B,IAAI,IAAI;AAAA,kBACR,OAAO,OAAO,KAAKA,GAAE,MAAM;AAAA,kBAC3B,UAAU,oBAAoB,SAC3B;AAAA,iBACJ;AAAA,uBACM,OAAO;AAAA,cAAC;AAAA,YACnB;AAAA,mBACO,OAAO;AACR,mCAAiB,KAAK,mBAAmB,KAAK;AAC/C,oBAAG,OAAO,KAAK,cAAc;AAClC,gBAAI,MAAM,UAAU;AACb,oCAAiB,MAAM,SAAS;AAChC,0BAAO,KAAK,MAAM,IAAI;AAAA,YAC7B;AACA;AAAA,UACF;AAEW,0BAAKA,GAAE,SAAS,OAAO;AAChC,kBAAM6B,QAAO,KAAK,MAAM,YAAY,EAAE,EAAE;AACxC,gBAAIA,MAAK,SAAS;AACL,yBAAA2S,WAAU3S,MAAK,SAAS;AAIjC,oBAAI2S,QAAO,aAAa;AAEtB,kBAAAA,QAAO,YAAY;AAAA,gBACrB;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAEK,sBAAO,KAAK,MAAM,IAAI;AACrB,qBAAK,GAAG,MAAM,OAAO;AAAA,QAC7B;AAAA,MACF;AAAA,cACA;AACA,WAAK,mBAAmB;AAAA,IAC1B;AACA,QAAI,oBAAoB,gBAAgB,EAAE,QAAA5T,SAAQ,WAAY;AAC9D,WAAO,CAAC,KAAK;AAAA,EACf;AAAA,EAEA,oBAAoB,MAAM;AACxB,SAAK,GAAG,OAAO;AAAA,MACb,IAAI,OAAO;AAAA,QACT,IAAI,KAAK,EAAE,aAAa,8BAA8B,KAAK,IAAI,IAAI;AAAA,MACpE,GAAE;AAAA;AAAA,EAEP;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WAAW,MAAM;AACf,sBAAY,wBAAC,MAAM;AACnB,WAAC,EAAU;AACT,YAAAZ,KAAI,EAAE,YAAY,GAAG;AACvB,UAAAA,OAAM,GAAW;AACd,eAAE,UAAU,GAAGA,EAAC;AAAA,OAJP;AAMZ,qBAAW,UAAU,KAAK,IAAI;AAChC,aAAK,SAAS,aAAa;AACvB,sBAAU,MAAM,eAAe,IAAI;AACzC,UAAI,SAAS,UAAU;AACrB,cAAM,KAAK;AAAA,UACT,KAAK,MAAM,QAAQ,QAAQ;AAAA,UAC3B;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF,WACS,SAAS,QAAQ;AAC1B,aAAK,YAAY,KAAK,MAAM,QAAQ,MAAM,GAAG,QAAQ;AAAA,iBAC5C,SAAS,YAAY;AAG9B,wBAAgB,mBAAmB;AACvB,yBAAK,OAAO,QAAQ,UAAU;AAE1C,wBAAgB,kBAAkB,UAAU,KAAK,eAAgB;AAAA,aAC5D;AACL,aAAK,oBAAoB,IAAI;AAAA,MAC/B;AAAA,eACS,KAAK,SAAS,cAAc;AAC/B,sBAAU,MAAM,gBAAgB,IAAI;AAEpC,uBAAW,SAAS,YAAY,SAAS;AACzC,qBAAS,SAAS,UAAU,SAAS;AAE3C,UAAI,UAAU;AACZ,aAAK,cAAc,KAAK,MAAM,QAAQ,GAAG,MAAM,MAAM,QAAQ;AAAA,iBACpD,QAAQ;AACjB,aAAK,YAAY,KAAK,MAAM,MAAM,GAAG,QAAQ;AAAA,aACxC;AACL,aAAK,oBAAoB,IAAI;AAAA,MAC/B;AAAA,eACS,KAAK,SAAS,gBAAgB,KAAK,SAAS,gBAAgB;AAC/D,sBAAU,MAAM,gBAAgB,IAAI;AACpC,uBAAW,SAAS,YAAY,SAAS;AACzC,qBAAS,SAAS,UAAU,SAAS;AAE3C,UAAI,UAAU;AACZ,aAAK,cAAc,KAAK,MAAM,QAAQ,GAAG,MAAM,MAAM,QAAQ;AAAA,iBACpD,QAAQ;AACjB,aAAK,YAAY,KAAK,MAAM,MAAM,GAAG,QAAQ;AAAA,aACxC;AACL,aAAK,oBAAoB,IAAI;AAAA,MAC/B;AAAA,eAEA,KAAK,SAAS,sBACd,KAAK,MAAM,SAAS,OAAO,GAC3B;AACM,qBAAS,IAAI;AACnB,aAAO,SAAS,YAAY;AAC1B,cAAM,eAAe,OAAO;AACtB,4BAAc,KAAK,MAAM,YAAY;AAC3C,YAAI,aAAa,WAAW;AAC1B,eAAK,iBAAiB,WAAW;AAAA,QACxB,gBAAK,UAAU,WAAW,GAAG;AACjC,2BAAY,aAAa,QAAQ;AAAA,eACjC;AACL,gBAAM,KAAK;AAAA,YACT,KAAK,MAAM,YAAY;AAAA,YACvB;AAAA,YACA;AAAA,YACA;AAAA;AAAA,QAEJ;AAAA;AAEF,aAAO,WAAW,IAAI;AAAA,eAEtB,KAAK,MAAM,SAAS,SAAS,KAC7B,KAAK,MAAM,SAAS,cAAc,GAClC;AACM,mBAAO,MAAM,kBAAkB,IAAI;AAGzC,UAAI,KAAK,UAAU;AACjB,cAAM,KAAK;AAAA;AAAA,UAET,KAAK,MAAM,KAAK,QAAQ;AAAA,UACxB;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF,WAES,KAAK,QAAQ;AAEtB,aAAK,YAAY,KAAK,MAAM,KAAK,MAAM,CAAC;AAAA,aACnC;AACL,aAAK,oBAAoB,IAAI;AAAA,MAC/B;AAAA,WACK;AACL,WAAK,oBAAoB,IAAI;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,UAAUoB,QAAM;AAEP,kBAAO,OAAOA,MAAI,EAAE,MAAM,CAACxC,OAAMA,GAAE,UAAU;AAAA,EACtD;AAAA,EAEA,YAAY,SAAS,UAAkB;AACrC,oBAAgB,mBAAmB;AAEnC,UAAM,mBAAmB,OAAO,OAAO,OAAO,EAAE;AAAA;AAAA,MAE9C,CAAC,MAAM,CAAC,UAAU,sBAAsB,EAAE,UAAU;AAAA;AAEtD,QAAI,iBAAiB,QAAQ;AACtB;AAAA;AAAA,QAEH,iBAAiB,IAAI,CAACwE,OAAMA,GAAE,UAAU;AAAA;AAE1C;AAAA,IACF;AAEM,gBAAM,OAAO,KAAK,OAAO;AAC/B9C,UAAI,MAAM;AACV,eAAWJ,OAAM,KAAK;AACd,YAAAkB,SAAO,QAAQlB,GAAE;AACvB,YAAM2B,QAAO,UAAU,WAAWT,OAAK,UAAU;AACjD,MAAAS,MAAK,KAAK,MAAM,CAAC3B,GAAE,IAAIA,MAAK,CAACA;AAC7B,MAAA2B,MAAK,QAAQT,OAAK,OAAO,SAASS,MAAK;AACnCvB,YAAA,MAAM,IAAIuB,KAAI;AAAA,IACpB;AAEA,eAAW3B,OAAM,KAAK;AACd,YAAAkB,SAAO,QAAQlB,GAAE;AACvB,YAAM2B,QAAOvB,MAAI,MAAM,YAAYJ,GAAE;AACrC,iBAAW,SAASkB,OAAK,UAAU,IAAI;AAC/B,cAAA5D,SAAQ4D,OAAK,OAAO,KAAK;AAC/B,YAAI5D,kBAAiB,OAAO;AACpB,iBAAC,QAAQ,QAAQ,IAAIA;AAC3B,gBAAM,WAAW8C,MAAI,MAAM,YAAY,MAAM;AACzC,uBAASuB,MAAK,QAAQ,UAAU,CAAC,QAAQ,IAAI,SAAS,KAAK;AAC3D,wBAAU,QAAQ,WAAW,IAAI;AAC/B;AAEI,oBAAA2S,UAAS3S,MAAK,SAAS,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK;AAEzD,kBAAI2S,WAAU3S,MAAK,uBAAuB2S,OAAM,GAAG;AACxC,yBAAA3S,MAAK,QAAQ,SAAS;AAAA,cACjC;AAAA,qBACO,OAAO;AAAA,YAAC;AAAA,UACnB;AACI,wBAAU,QAAQ,WAAW,IAAI;AAC1B,6BAAQ,UAAUA,OAAM,MAAM;AAAA,UACzC;AAAA,eACK;AACC,gBAAA2S,UAAS3S,MAAK,SAAS,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK;AACzD,cAAI2S,SAAQ;AACV,YAAAA,QAAO,QAAQhX;AACf,YAAAgX,QAAO,WAAWhX,MAAK;AAAA,UACzB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA8C,UAAI,MAAM;AAEV,eAAWJ,OAAM,KAAK;AACd,YAAAkB,SAAO,QAAQlB,GAAE;AACvB,YAAM2B,QAAOvB,MAAI,MAAM,YAAYJ,GAAE;AACrC,iBAAW,SAASkB,OAAK,UAAU,IAAI;AAC/B,cAAA5D,SAAQ4D,OAAK,OAAO,KAAK;AAC/B,YAAI5D,kBAAiB,OAAO;AACpB,iBAAC,QAAQ,QAAQ,IAAIA;AAC3B,gBAAM,WAAW8C,MAAI,MAAM,YAAY,MAAM;AACzC,uBAASuB,MAAK,QAAQ,UAAU,CAAC,QAAQ,IAAI,SAAS,KAAK;AAC3D,wBAAU,QAAQ,WAAW,IAAI;AAC/B;AAEI,oBAAA2S,UAAS3S,MAAK,SAAS,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK;AAEzD,kBAAI2S,WAAU3S,MAAK,uBAAuB2S,OAAM,GAAG;AACxC,yBAAA3S,MAAK,QAAQ,SAAS;AAAA,cACjC;AAAA,qBACO,OAAO;AAAA,YAAC;AAAA,UACnB;AACI,wBAAU,QAAQ,WAAW,IAAI;AAC1B,6BAAQ,UAAUA,OAAM,MAAM;AAAA,UACzC;AAAA,eACK;AACC,gBAAA2S,UAAS3S,MAAK,SAAS,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK;AACzD,cAAI2S,SAAQ;AACV,YAAAA,QAAO,QAAQhX;AACf,YAAAgX,QAAO,WAAWhX,MAAK;AAAA,UACzB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA8C,UAAI,MAAM;AAGV,oBAAgB,kBAAkB,UAAU,KAAK,eAAgB;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,kBAAkB,WAA2B;AAC3C,QAAI,KAAK,aAAa;AACF,0BAAE,kBAAkB,SAAS;AAAA,WAC1C;AAEA,sBAAW,KAAK,SAAS;AAAA,IAChC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,sBAAsB;AAC1B,UAAM,sBAA2C;AAAA,MAC/C,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ;AAAA;AAEV,QAAI,KAAK,aAAa;AACN,sBAAE,IAAI,mBAAmB;AAAA,IACzC;AAEM,iBAAO,MAAM,KAAK;AACxB,eAAW,UAAU,MAAM;AACzB,WAAK,gBAAgB,QAAQ,KAAK,MAAM,CAAC;AAAA,IAC3C;AACS,wBAAW,KAAK,MAAM,OAAO;AACpC,YAAMuB,QAAO,KAAK,MAAM,MAAM,OAAO;AAC/B,YAAAyD,OAAM,KAAKzD,MAAK,IAAI;AAE1B,MAAAA,MAAK,qBAAqB,IAAI;AAE9B,UAAI,CAACyD,KAAK;AAEC,8BAAazD,MAAK,SAAS;AAC9B,cAAA2S,UAAS3S,MAAK,QAAQ,SAAS;AAEnC,YAAA2S,QAAO,QAAQ,WACflP,KAAI,OAAO,EAAE,UAAU,EAAEkP,QAAO,IAAI,MAAM,QAC1C;AACO,UAAAA,QAAA,QAAQ,SAASlP,KAAI,OAAO,EAAE,UAAU,EAAEkP,QAAO,IAAI,EAAE,CAAC;AAAA,QACjE;AAAA,MACF;AAAA,IACF;AAEM,eAAK,uBAAuB,uBAAuB,IAAI;AAE7D,QAAI,KAAK,aAAa;AACpB,WAAK,qBAAqB,IAAI;AAChB,sBAAE,OAAO,mBAAmB;AAC1C,sBAAgB,IAAI;AAAA,QAClB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,OACP;AAAA,IACH;AAAA,EACF;AAAA,EAEA,YAAY;AACNlU,UAAA,OAAO,GAAG,QAAQ;AACtBA,UAAI,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC;AACxBA,UAAA,MAAM,eAAe,MAAM,IAAI;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ;AACN,SAAK,cAAc;AACnB,SAAK,oBAAoB;AACzB,SAAK,iBAAiB;AACtB,SAAK,qBAAqB;AAAA,EAC5B;AAAA,EAEA,eACE,SACArB,WAA+B,IACnB;AACZ,UAAM4C,QAAO,UAAU;AAAA,MACrB,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR5C;AAAA;AAEG,eAAM,IAAI4C,KAAI;AACZ,WAAAA;AAAA,EACT;AAAA,EAEA,qBAAqBuJ,MAAuB;AACpC,iBAAO,KAAK,gBAAgB,sBAAsB;AACxD,UAAM,mBAAmB,CAAC,KAAK,MAAM,KAAK,GAAG;AACtC,aAAE,IAAIA,MAAK,KAAK,OAAO,GAAG,QAAQ,gBAAgB,EAAE;AAAA,MACzD,CAAC,CAACpL,IAAG,IAAI,EAAE,OAAOA,KAAI,MAAM,KAAK,OAAO,GAAG,QAAQ;AAAA;AAAA,EAEvD;AAAA,EAEA,qBAAqBoL,MAAuB;AACpC,iBAAO,KAAK,gBAAgB,sBAAsB;AACxD,UAAM,mBAAmB,CAAC,KAAK,MAAM,KAAK,GAAG;AACtC,aAAE,IAAIA,MAAK,KAAK,OAAO,GAAG,QAAQ,gBAAgB,EAAE;AAAA,MACzD,CAAC,CAACpL,IAAG,IAAI,EAAE,OAAOA,KAAI,MAAM,KAAK,OAAO,GAAG,QAAQ;AAAA;AAAA,EAEvD;AAAA,EAEA,kBAA2B;AACzB,UAAM,MAAM,KAAK,IAAI,OAAO,oBAAoB,GAAG,CAAC;AAC9C,WAAC0H,IAAG6M,IAAG,GAAGxR,EAAC,IAAIzC,MAAI,OAAO,GAAG;AAC5B,YAACoH,KAAI,IAAI,MAAM,GAAG6M,KAAIxR,KAAI,MAAM,CAAC;AAAA,EAC1C;AAAA,EAEO,SAAS,QAAgB;AAC9B,UAAM,YAAY,KAAK,MAAM,YAAY,MAAM;AAC/C,QAAI,CAAC,UAAW;AACX,gBAAO,gBAAgB,UAAU,YAAY;AAAA,EACpD;AACF;AAEa,MAAAzC,QAAM,IAAI,SAAS;;;;;;ACz2FzB,MAAM,gBAAiC;AAAA,EAC5C;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,mBAAmB,gBAAgB;AAAA,IACvD,cAAc;AAAA,IACd,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,WAAW,oBAAoB;AAAA,IACzC,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,eAAe,QAAQ;AAAA,IAC/C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,wBAAwB;AAAA,IAC/C,cAAc,yBAAyB;AAAA,EACzC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,eAAe,aAAa;AAAA,IACpD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,wBAAwB;AAAA,IAC/C,cAAc,yBAAyB;AAAA,EACzC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,mBAAmB,aAAa;AAAA,IACpD,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,mBAAmB,cAAc;AAAA,IACrD,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,mBAAmB,YAAY;AAAA,IACnD,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,mBAAmB,mBAAmB;AAAA,IAC1D,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,cAAc,WAAW,UAAU;AAAA,IAC9C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,QAAQ,OAAO;AAAA,IACzB,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,cAAc,WAAW,MAAM;AAAA,IAC1C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,UAAU,OAAO;AAAA,IAC3B,cAAc,6BAAO,OAAO,aAAa,OAAO,UAAU,UAA5C;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,cAAc,eAAe,kBAAkB,UAAU;AAAA,IACpE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,eAAe,kBAAkB,YAAY;AAAA,IACjE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,UAAU,YAAY;AAAA,IAC9C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,cAAc,QAAQ,SAAS;AAAA,IAC1C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,UAAU,WAAW;AAAA,IAC7C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc,CAAC;AAAA,IACf,YAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc,CAAC;AAAA,EACjB;AAAA;AAAA,EAEA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc,CAAC;AAAA,EACjB;AAAA;AAAA,EAEA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,SAAS,SAAS;AAAA,IAC1C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,wBAAwB;AAAA,IACxD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,SAAS,wBAAwB;AAAA,IACzD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,cAAc,iBAAiB,aAAa;AAAA,IACvD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,SAAS,CAAC,YAAY,OAAO;AAAA,IAC7B,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,MACP,EAAE,OAAO,MAAM,MAAM,UAAU;AAAA,MAC/B,EAAE,OAAO,MAAM,MAAM,KAAK;AAAA,MAC1B,EAAE,OAAO,MAAM,MAAM,UAAU;AAAA,MAC/B,EAAE,OAAO,MAAM,MAAM,MAAM;AAAA,MAC3B,EAAE,OAAO,MAAM,MAAM,MAAM;AAAA,IAC7B;AAAA,IACA,cAAc,6BAAM,UAAU,SAAS,MAAM,GAAG,EAAE,CAAC,KAAK,MAA1C;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,qBAAqB;AAAA,IACrD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,OAAO,OAAO,aAAa;AAAA,IACpC,cAAc,cAAc;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,iBAAiB;AAAA,IACjD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,cAAc,MAAM,cAAc,OAAO;AAAA,IACnD,cAAc,cAAc;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,wBAAwB;AAAA,IACxD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,cAAc,MAAM,cAAc,OAAO;AAAA,IACnD,cAAc,cAAc;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,YAAY,cAAc;AAAA,IAC9C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,YAAY,gBAAgB;AAAA,IAChD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,eAAe,eAAe;AAAA,IACtD,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,eAAe,gBAAgB;AAAA,IACvD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,eAAe,sBAAsB;AAAA,IAC7D,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,eAAe,wBAAwB;AAAA,IAC/D,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,gBAAgB;AAAA,IAChD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,UAAU,wBAAC9C,WAAU;AACb,sBAAU,SAAS,eAAe,2BAA2B;AACnE,UAAI,SAAS;AACH,sBAAM,UAAUA,SAAQ,SAAS;AAAA,MAC3C;AAAA,IACF,GALU;AAAA,EAMZ;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,QAAQ,YAAY;AAAA,IACxC,cAAc;AAAA,IACd,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,YAAY,OAAO,QAAQ;AAAA,IACrC,wBAAwB,wBAACA,WAAkB;AAEzC,UAAIA,WAAU,YAAY;AACjB;AAAA,MACT;AACO,aAAAA;AAAA,IACT,GANwB;AAAA,EAO1B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,CAAC,WAAW,QAAQ;AAAA,IAC7B,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,UAAU,YAAY;AAAA,IAC9C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc,CAAC;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc,CAAC;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc,CAAC;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SACE;AAAA,IACF,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,SAAS,gBAAgB;AAAA,IACjD,MAAM;AAAA,IACN,cAAc;AAAA,IACd,MAAM;AAAA,IACN,SAAS;AAAA,MACP,EAAE,OAAO,UAAU,eAAe,MAAM,WAAW;AAAA,MACnD,EAAE,OAAO,UAAU,aAAa,MAAM,SAAS;AAAA,MAC/C,EAAE,OAAO,UAAU,aAAa,MAAM,SAAS;AAAA,MAC/C,EAAE,OAAO,UAAU,aAAa,MAAM,SAAS;AAAA,IACjD;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,oBAAoB;AAAA,IACpD,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,oBAAoB;AAAA,IACpD,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,wBAAwB;AAAA,IACxD,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,wBAAwB;AAAA,IACxD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,aAAa;AAAA,IACrC,MAAM;AAAA,IACN,SACE;AAAA,IACF,cAAc;AAAA,IACd,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,aAAa;AAAA,IAC7C,MAAM;AAAA,IACN,cAAc,gBAAgB;AAAA,IAC9B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,EAAE,OAAO,gBAAgB,MAAM,MAAM,OAAO;AAAA,MAC5C,EAAE,OAAO,gBAAgB,QAAQ,MAAM,SAAS;AAAA,MAChD,EAAE,OAAO,gBAAgB,OAAO,MAAM,QAAQ;AAAA,IAChD;AAAA,IACA,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,QAAQ,oBAAoB;AAAA,IACpD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,UAAU,eAAe;AAAA,IACjD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,WAAW,YAAY;AAAA,IAC/C,MAAM;AAAA,IACN,SACE;AAAA,IACF,cAAc;AAAA,IACd,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,WAAW,iBAAiB;AAAA,IACpD,MAAM;AAAA,IACN,SACE;AAAA,IACF,cAAc;AAAA,IACd,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,WAAW,iBAAiB;AAAA,IACpD,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,UAAU,UAAU;AAAA,IAC5C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,SACE;AAAA,IACF,cAAc,UAAU;AAAA,EAC1B;AAAA;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,aAAa,UAAU,kBAAkB;AAAA,IACpD,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA;AAAA,IAEN,cAAc,CAAC;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc,CAAC;AAAA,IACf,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,SACE;AAAA,IACF,MAAM;AAAA,IACN,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,UAAU,CAAC,SAAS,YAAY,2BAA2B;AAAA,IAC3D,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AACF;AC1oBa,wBAAkB,4BAAY,WAAW,MAAM;AACpD,wBAAgB,IAAyB,EAAE;AAC3C,mBAAW,IAAmC,EAAE;AAEhD,sBAAc,SAA0B,MAAM;AAClD,UAAM8D,SAAO;AAAA,MACX,OAAO,OAAO,SAAS,KAAK,EAAE;AAAA,QAC5B,CAAC,YAA2B,QAAQ,SAAS;AAAA,MAC/C;AAAA,MACA,CAAC,YAA2B,QAAQ,YAAY,QAAQ,GAAG,MAAM,GAAG;AAAA;AAGhE,8BAAoBA,OAAK,YAAY,IAAI,OAAO,CAACO,UAASA,MAAK,IAAI;AACzE,QAAI,iBAAiB,QAAQ;AACtB,MAAAP,OAAA,YAAYA,OAAK,YAAY,IAAI,OAAO,CAACO,UAAS,CAACA,MAAK,IAAI;AACjE,MAAAP,OAAK,SAAS,KAAK;AAAA,QACjB,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,OACX;AAAA,IACH;AAEO,WAAAA;AAAA,GACR;AAED,WAAS,YAAYwpB,iBAAqC;AAC7C,eAAA5qB,OAAM4qB,gBAAe,gBAAgB;AACxC,YAAAttB,SAAQstB,gBAAe,gBAAgB5qB,GAAE;AACjC,0BAAMA,GAAE,IAAI1C;AAAA,IAC5B;AACA,aAAS,QAAQstB,gBAAe;AAElB,0BAAQ,CAAC,YAA2B;AAChD,MAAAA,gBAAe,WAAW,OAAO;AAAA,KAClC;AAAA,EACH;AAVS;AAYT,WAAS,sBAAsB,WAA2B;AAC9C,wBAAU,QAAQ,CAAC,YAA2B;AAClDxqB,YAAA,GAAG,SAAS,WAAW,OAAO;AAAA,KACnC;AAAA,EACH;AAJS;AAMT,WAAS,OAAO,KAAa;AACpB,yBAAc,MAAM,GAAG,MAAM;AAAA,EACtC;AAFS;AAIM,iBAAA7D,KAA8B,KAAQe,QAAoB;AACzD,wBAAM,GAAG,IAAIA;AAC3B,UAAM8C,MAAI,GAAG,SAAS,qBAAqB,KAAK9C,MAAK;AAAA,EACvD;AAHe,SAAAf,MAAA;AAKf,WAAS0C,KAA8B,KAAqB;AAExD,yBAAc,MAAM,GAAG,KAAKmB,MAAI,GAAG,SAAS,uBAAuB,GAAG;AAAA,EAE1E;AAJS,SAAAnB,MAAA;AAMF;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAA1C;AAAA,IACA,KAAA0C;AAAA,IACA;AAAA;AAEJ,CAAC;AC3FM,MAAM,mBAAiC;AAAA,EAC5C;AAAA,IACE,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,EACb;AAAA;AAAA,EAEA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,IACT;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA;AAAA,EAEA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACb;AACF;ACzKO,MAAM,eAAqC;AAAA;AAAA;AAAA;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,KAAiB;AAC3B,SAAK,YAAY,IAAI;AACrB,SAAK,QAAQ,IAAI,aAAa,IAAI,KAAK;AACvC,SAAK,iBAAiB,IAAI;AAAA,EAC5B;AAAA,EAEA,OAAO,OAAyB;AACxB,gBAAM,MAAM,KAAK;AAEvB,WAAO,eAAe,iBAClB,KAAK,cAAc,IAAI,aACrB,KAAK,MAAM,OAAO,IAAI,KAAK,KAC3B,KAAK,mBAAmB,IAAI,iBAC9B;AAAA,EACN;AACF;AAEO,MAAM,aAAiC;AAAA;AAAA;AAAA;AAAA,EAC5C;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,KAAe;AACzB,SAAK,MAAM,IAAI;AACV,gBAAO,IAAI,QAAQ;AACnB,eAAM,IAAI,OAAO;AACjB,iBAAQ,IAAI,SAAS;AAAA,EAC5B;AAAA,EAEA,OAAO,UAAU,OAAsB;AACrC,WAAO,IAAI,aAAa;AAAA,MACtB,KAAK,MAAM;AAAA,MACX,MAAM,MAAM,WAAW,MAAM;AAAA,MAC7B,KAAK,MAAM;AAAA,MACX,OAAO,MAAM;AAAA,KACd;AAAA,EACH;AAAA,EAEA,OAAO,OAAyB;AACxB,gBAAM,MAAM,KAAK;AAEhB,0BAAe,eAClB,KAAK,IAAI,kBAAkB,IAAI,IAAI,YAAY,KAC7C,KAAK,SAAS,IAAI,QAClB,KAAK,QAAQ,IAAI,OACjB,KAAK,UAAU,IAAI,QACrB;AAAA,EACN;AAAA,EAEA,YAAoB;AAClB,WAAO,GAAG,KAAK,IAAI,YAAa,KAAI,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK;AAAA,EACzE;AAAA,EAEA,WAAmB;AACjB,WAAO,KAAK,kBAAkB,KAAK,KAAK;AAAA,EAC1C;AAAA,EAEA,IAAI,cAAuB;AACzB,WAAO,KAAK,QAAQ,KAAK,OAAO,KAAK;AAAA,EACvC;AAAA,EAEA,IAAI,aAAsB;AACjB,YAAC,WAAW,QAAQ,OAAO,OAAO,EAAE,SAAS,KAAK,GAAG;AAAA,EAC9D;AAAA,EAEA,kBAA4B;AAC1B,UAAM,YAAsB;AAC5B,QAAI,KAAK,MAAM;AACb,gBAAU,KAAK,MAAM;AAAA,IACvB;AACA,QAAI,KAAK,KAAK;AACZ,gBAAU,KAAK,KAAK;AAAA,IACtB;AACA,QAAI,KAAK,OAAO;AACd,gBAAU,KAAK,OAAO;AAAA,IACxB;AACU,mBAAK,KAAK,GAAG;AAChB;AAAA,EACT;AACF;AAEa,2BAAqB,4BAAY,cAAc,MAAM;AAI1D,6BAAqB,IAAoC,EAAE;AAI3D,0BAAkB,IAAoC,EAAE;AAIxD,+BAAuB,IAAoC,EAAE;AAE7D,+BAAuB,SAAyC,MAAM;AAC1E,UAAM,SAAyC;AAAA,MAC7C,GAAG,mBAAmB;AAAA;AAGxB,eAAW,cAAc,OAAO,OAAO,qBAAqB,KAAK,GAAG;AAC5D,8BAAkB,WAAW,MAAM,UAAU;AACnD,UAAI,OAAO,eAAe,GAAG,OAAO,UAAU,GAAG;AAC/C,eAAO,OAAO,eAAe;AAAA,MAC/B;AAAA,IACF;AAEO;AAAA,MACL,GAAG;AAAA,MACH,GAAG,gBAAgB;AAAA;AAAA,EACrB,CACD;AAED,QAAM,cAAc;AAAA,IAA2B,MAC7C,OAAO,OAAO,qBAAqB,KAAK;AAAA;AAG1C,WAAS,cAAc,OAAqB;AAC1C,WAAO,qBAAqB,MAAM,MAAM,UAAW;AAAA,EACrD;AAFS;AAIT,WAAS,6BAA6B4rB,cAA+B;AACnE,UAAM,SAA2C;AACjD,eAAW,cAAcA,cAAa;AAChC,YAAE,WAAW,aAAa,SAAS;AAC9B,0BAAW,SAAS,IAAI;MACjC;AACA,aAAO,WAAW,SAAS,EAAE,KAAK,UAAU;AAAA,IAC9C;AACO;AAAA,EACT;AATS;AAWT,QAAM,yBAAyB;AAAA,IAC7B,MAAM;AACG,0CAA6B,YAAY,KAAK;AAAA,IACvD;AAAA;AAGF,WAAS,0BAA0B,WAAmB;AACpD,WAAO,uBAAuB,MAAM,SAAS,KAAK;AAAA,EACpD;AAFS;AAIH,wCAAgC,SAEpC,MAAM;AACN,WAAO,6BAA6B,OAAO,OAAO,mBAAmB,KAAK,CAAC;AAAA,GAC5E;AAED,WAAS,yBAAyB,WAAmB;AAC5C,qCAA0B,SAAS,EAAE,CAAC;AAAA,EAC/C;AAFS;AAIT,WAAS,cACP,QACA,YACA,EAAE,UAAU,SACZ;AACA,QAAI,CAAC,WAAW,WAAW,MAAM,UAAU,KAAK,OAAO,OAAO;AAC5D,YAAM,IAAI;AAAA,QACR,iBAAiB,WAAW,KAAK,sBAC/B,OAAO,MAAM,WAAW,MAAM,WAAW,EAAE,SAC7C;AAAA;AAAA,IAEJ;AACA,WAAO,MAAM,WAAW,MAAM,WAAW,IAAI;AAAA,EAC/C;AAbS;AAeT,WAAS,qBAAqB,YAA4B;AACxD,kBAAc,oBAAoB,YAAY,EAAE,SAAS,MAAO;AAAA,EAClE;AAFS;AAIT,WAAS,kBAAkB,YAA4B;AACrD,UAAM,oBACJ,mBAAmB,MAAM,WAAW,MAAM,WAAW;AACvD,UAAM,sBACJ,qBAAqB,MAAM,WAAW,MAAM,WAAW;AAGzD,QACE,WAAW,OAAO,iBAAiB,KACnC,WAAW,OAAO,mBAAmB,GACrC;AACA,aAAO,qBAAqB,MAAM,WAAW,MAAM,UAAW;AAC9D;AAAA,IACF;AAGA,QAAI,qBAAqB,CAAC,kBAAkB,OAAO,mBAAmB,GAAG;AACvE,sBAAgB,iBAAiB;AAAA,IACnC;AAEA,kBAAc,iBAAiB,YAAY,EAAE,SAAS,KAAM;AAAA,EAC9D;AArBS;AAuBT,WAAS,gBAAgB,YAA4B;AAC7C,4BAAkB,WAAW,MAAM,UAAU;AAC/C,UAAE,mBAAmB,qBAAqB,QAAQ;AAC5C;AAAA,QACN,yCAAyC,KAAK,UAAU,UAAU,CAAC;AAAA;AAErE;AAAA,IACF;AAEA,QAAI,gBAAgB,MAAM,eAAe,GAAG,OAAO,UAAU,GAAG;AACvD,6BAAgB,MAAM,eAAe;AAC5C;AAAA,IACF;AAEA,QAAI,mBAAmB,MAAM,eAAe,GAAG,OAAO,UAAU,GAAG;AACjE,oBAAc,sBAAsB,YAAY,EAAE,SAAS,MAAO;AAClE;AAAA,IACF;AAEA,UAAM,IAAI,MAAM,uBAAuB,KAAK,UAAU,UAAU,CAAC,EAAE;AAAA,EACrE;AApBS;AA2BT,WAAS,0BAA0B,YAAqC;AAChE,8BAAoB,yBAAyB,WAAW,SAAS;AACnE,2BAAmB,OAAO,UAAU,GAAG;AAClC;AAAA,IACT;AACA,QAAI,mBAAmB;AACrB,sBAAgB,iBAAiB;AAAA,IACnC;AACA,sBAAkB,UAAU;AACrB;AAAA,EACT;AAVS;AAYT,WAAS,sBAAsB;AAC7B,UAAM,eAAe;AAEf,0BAAgB,aAAa,IAAI,gCAAgC;AACvE,eAAW,cAAc,eAAe;AACtB,0BAAI,eAAe,UAAU,CAAC;AAAA,IAChD;AACM,wBAAc,aAAa,IAAI,8BAA8B;AACnE,eAAW,cAAc,aAAa;AAClB,4BAAI,eAAe,UAAU,CAAC;AAAA,IAClD;AAAA,EACF;AAXS;AAaT,WAAS,sBAAsB;AAC7B,eAAW,cAAc,kBAAkB;AACpB,+BAAI,eAAe,UAAU,CAAC;AAAA,IACrD;AAAA,EACF;AAJS;AAMT,WAAS,yBAAyB,WAA2B;AAC3D,QAAI,UAAU,aAAa;AACd,+BAAc,UAAU,aAAa;AAC1C;AACmB,mCAAI,eAAe,UAAU,CAAC;AAAA,iBAC5C,OAAO;AACN;AAAA,YACN,2CAA2C,UAAU,IAAI;AAAA,YACzD;AAAA;AAAA,QAEJ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAbS;AAeT,iBAAe,yBAAyB;AACtC,UAAM,eAAe;AAGrB,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,OAAO,OAAO,gBAAgB,KAAK;AAAA;AAErC,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,OAAO,OAAO,qBAAqB,KAAK;AAAA;AAAA,EAE5C;AAZe;AAcf,WAAS,mBAAmB;AAC1B,oBAAgB,QAAQ;AACxB,yBAAqB,QAAQ;EAC/B;AAHS;AAKT,WAAS,4BAA4B,WAA4B;AACzD,8BACJ,yBAAyB,SAAS;AACpC,UAAM,oBACJ,8BAA8B,MAAM,SAAS,IAAI,CAAC;AAEpD,WAAO,EACJ,sBAAsB,UAAa,sBAAsB,UAC1D,mBAAmB,OAAO,iBAAiB;AAAA,EAE/C;AAVS;AAYF;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;ACpTM,MAAM,iBAAyC;AAAA;AAAA;AAAA;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,SAAuB;AACjC,SAAK,KAAK,QAAQ;AAClB,SAAK,WAAW,QAAQ;AACxB,SAAK,SAAS,QAAQ;AACtB,SAAK,QAAQ,QAAQ;AACrB,SAAK,WAAW,QAAQ;AACnB,yBAAgB,QAAQ,gBAAgB,QAAQ;AACrD,SAAK,eAAe,QAAQ;AAC5B,SAAK,eAAe,QAAQ;AAAA,EAC9B;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,OAAO,KAAK,WAAW,aAAa,KAAK,WAAW,KAAK;AAAA,EAClE;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,OAAO,KAAK,UAAU,aAAa,KAAK,UAAU,KAAK;AAAA,EAChE;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,OAAO,KAAK,aAAa,aAAa,KAAK,aAAa,KAAK;AAAA,EACtE;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,OAAO,KAAK,kBAAkB,aACjC,KAAK,kBACL,KAAK;AAAA,EACX;AAAA,EAEA,IAAI,aAAoC;AACtC,WAAO,mBAAmB,EAAE,yBAAyB,KAAK,EAAE;AAAA,EAC9D;AACF;AAEa,wBAAkB,4BAAY,WAAW,MAAM;AACpD,uBAAe,IAAsC,EAAE;AAC7D,QAAM,WAAW,SAAS,MAAM,OAAO,OAAO,aAAa,KAAK,CAAC;AAE3D,0BAAkB,wBAAC,YAA0B;AACjD,QAAI,aAAa,MAAM,QAAQ,EAAE,GAAG;AAClC,cAAQ,KAAK,WAAW,QAAQ,EAAE,qBAAqB;AAAA,IACzD;AACA,iBAAa,MAAM,QAAQ,EAAE,IAAI,IAAI,iBAAiB,OAAO;AAAA,KAJvC;AAOlB,2BAAmB,wBAACC,cAA6B;AACrD,eAAW,WAAWA,WAAU;AAC9B,sBAAgB,OAAO;AAAA,IACzB;AAAA,KAHuB;AAMnB,qBAAa,wBAAC,YAAoB;AAC/B,wBAAa,MAAM,OAAO;AAAA,KADhB;AAIb,UAAE,+BAA+B;AACjC,kBAAU,8BACd,WACA,iBACG;AACG,oBAAU,WAAW,SAAS;AACpC,QAAI,SAAS;AACX,YAAM,2BAA2B,QAAQ,UAAU,YAAY,EAAE;AAAA,WAC5D;AACL,YAAM,IAAI,MAAM,WAAW,SAAS,YAAY;AAAA,IAClD;AAAA,KATc;AAYV,uBAAe,wBAAC,YAAoB;AACxC,WAAO,CAAC,CAAC,aAAa,MAAM,OAAO;AAAA,KADhB;AAIf,gCAAwB,wBAAC,cAA8B;AAC3D,QAAI,UAAU,UAAU;AACX,4BAAW,UAAU,UAAU;AACxC,wBAAgB,OAAO;AAAA,MACzB;AAAA,IACF;AAAA,KAL4B;AAQvB;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;ACrHD,IAAI7T,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,gCAAgC,OAAOA,IAAG,iBAAiB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,YAAY,GAAG,kBAAkB,EAAE,OAAOA,IAAG,cAAc,GAAG,iKAAiK,EAAE,OAAOA,IAAG,UAAU,GAAG,gDAAgD,EAAE,OAAOA,IAAG,UAAU,GAAG,sDAAsD,EAAE,OAAOA,IAAG,UAAU,GAAG,OAAO,EAAE,OAAOA,IAAG,aAAa,GAAG,iHAAiH,EAAE,OAAOA,IAAG,yBAAyB,GAAG,kBAAkB,EAAE,OAAOA,IAAG,mBAAmB,GAAG,+FAA+F,EAAE,OAAOA,IAAG,iBAAiB,GAAG,cAAc,EAAE,OAAOA,IAAG,eAAe,GAAG,gCAAgC,EAAE,OAAOA,IAAG,0BAA0B,GAAG,UAAU,EAAE,OAAOA,IAAG,0BAA0B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,eAAe,EAAE,OAAOA,IAAG,0BAA0B,GAAG,+EAA+E,EAAE,OAAOA,IAAG,6BAA6B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,4BAA4B,GAAG,GAAG,EAAE,OAAOA,IAAG,4BAA4B,GAAG,GAAG,EAAE,OAAOA,IAAG,4BAA4B,GAAG,yBAAyB,EAAE,OAAOA,IAAG,6BAA6B,GAAG,0GAA0G,EAAE,OAAOA,IAAG,4BAA4B,GAAG,gBAAgB,EAAE,OAAOA,IAAG,uBAAuB,GAAG,uHAAuH,EAAE,OAAOA,IAAG,4BAA4B,GAAG,uEAAuE,EAAE,OAAOA,IAAG,+BAA+B,GAAG,gBAAgB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,2VAA2V,EAAE,OAAOA,IAAG,8BAA8B,GAAG,iBAAiB,EAAE,OAAOA,IAAG,8BAA8B,GAAG,gBAAgB,EAAE,OAAOA,IAAG,+BAA+B,GAAG,2EAA2E,EAAE,OAAOA,IAAG,uCAAuC,GAAG,gCAAgC,EAAE,OAAOA,IAAG,0BAA0B,GAAG,UAAU,EAAE,OAAOA,IAAG,0BAA0B,GAAG,iBAAiB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,eAAe,EAAE,OAAOA,IAAG,0BAA0B,GAAG,wHAAwH,EAAE,OAAOA,IAAG,0CAA0C,GAAG,gBAAgB,EAAE,OAAOA,IAAG,qCAAqC,GAAG,wGAAwG,EAAE,OAAOA,IAAG,mDAAmD,GAAG,gBAAgB,EAAE,OAAOA,IAAG,8CAA8C,GAAG,uQAAuQ,EAAE,OAAOA,IAAG,sBAAsB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,0BAA0B,GAAG,oFAAoF,EAAE,OAAOA,IAAG,+BAA+B,GAAG,oKAAoK,EAAE,OAAOA,IAAG,wBAAwB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,iBAAiB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,wUAAwU;AAC//I,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM,gCAAS/S,OAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,sBAAsB;AAAA,MAC5B,qBAAqB,MAAM,iBAAiB;AAAA,MAC5C,kBAAkB,MAAM;AAAA,MACxB,0BAA0B,MAAM,iBAAiB;AAAA,IACvD,CAAK;AAAA,EACF,GAPK;AAAA,EAQN,MAAM;AAAA,EACN,aAAa;AAAA,EACb,eAAe;AAAA,EACf,SAAS;AAAA;AAAA,EAET,cAAc;AAAA,EACd,MAAM,gCAASO,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,eAAe;AAAA,MACrB,oBAAoB,SAAS;AAAA,IACnC,CAAK;AAAA,EACF,GALK;AAAA,EAMN,aAAa,gCAAS,YAAY,OAAO;AACvC,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,uBAAuB,SAAS,KAAK,YAAY;AAAA,MACvD,0BAA0B,SAAS;AAAA,MACnC,wBAAwB,SAAS,gBAAgB,SAAS,gBAAgB,oBAAoB,SAAS,UAAU,SAAS;AAAA,IAChI,CAAK;AAAA,EACF,GANY;AAAA,EAOb,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,UAAU;AAAA,EACV,WAAW;AAAA,EACX,cAAc;AAChB;AACA,IAAI,YAAY,UAAU,OAAO;AAAA,EAC/B,MAAM;AAAA,EACN,OAAOsV;AAAAA,EACP,SAAS9C;AACX,CAAC;AC1CE,IAAC2E,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWQ;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGwY,cAAY,EAAE;AAChC;AARSxY;AAUT6X,SAAO,SAAS7X;ACrBhB,IAAIgW,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,wIAAwI,OAAOA,IAAG,gBAAgB,GAAG,iBAAiB,EAAE,OAAOA,IAAG,iBAAiB,GAAG,qTAAqT,EAAE,OAAOA,IAAG,wBAAwB,GAAG,4HAA4H,EAAE,OAAOA,IAAG,wBAAwB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,uBAAuB,GAAG,qBAAqB,EAAE,OAAOA,IAAG,qBAAqB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,gBAAgB,GAAG,iBAAiB,EAAE,OAAOA,IAAG,iBAAiB,GAAG,gCAAgC,EAAE,OAAOA,IAAG,8BAA8B,GAAG,UAAU,EAAE,OAAOA,IAAG,8BAA8B,GAAG,iBAAiB,EAAE,OAAOA,IAAG,8BAA8B,GAAG,eAAe,EAAE,OAAOA,IAAG,8BAA8B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,8BAA8B,GAAG,sDAAsD,EAAE,OAAOA,IAAG,iBAAiB,GAAG,uDAAuD,EAAE,OAAOA,IAAG,8BAA8B,GAAG,gBAAgB,EAAE,OAAOA,IAAG,qBAAqB,GAAG,oBAAoB,EAAE,OAAOA,IAAG,oBAAoB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,oBAAoB,GAAG,iBAAiB,EAAE,OAAOA,IAAG,oBAAoB,GAAG,yGAAyG,EAAE,OAAOA,IAAG,6BAA6B,GAAG,mEAAmE,EAAE,OAAOA,IAAG,+BAA+B,GAAG,qBAAqB,EAAE,OAAOA,IAAG,6BAA6B,GAAG,6DAA6D,EAAE,OAAOA,IAAG,6BAA6B,GAAG,+GAA+G,EAAE,OAAOA,IAAG,mCAAmC,GAAG,uBAAuB,EAAE,OAAOA,IAAG,qCAAqC,GAAG,2GAA2G,EAAE,OAAOA,IAAG,mCAAmC,GAAG,iHAAiH,EAAE,OAAOA,IAAG,6BAA6B,GAAG,qBAAqB,EAAE,OAAOA,IAAG,4BAA4B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,2BAA2B,GAAG,GAAG,EAAE,OAAOA,IAAG,2BAA2B,GAAG,GAAG,EAAE,OAAOA,IAAG,2BAA2B,GAAG,yBAAyB,EAAE,OAAOA,IAAG,4BAA4B,GAAG,yHAAyH,EAAE,OAAOA,IAAG,qCAAqC,GAAG,uEAAuE,EAAE,OAAOA,IAAG,+BAA+B,GAAG,0EAA0E,EAAE,OAAOA,IAAG,4BAA4B,GAAG,kFAAkF,EAAE,OAAOA,IAAG,6BAA6B,GAAG,gIAAgI,EAAE,OAAOA,IAAG,mCAAmC,GAAG,oHAAoH,EAAE,OAAOA,IAAG,8BAA8B,GAAG,uBAAuB,EAAE,OAAOA,IAAG,wCAAwC,GAAG,gFAAgF,EAAE,OAAOA,IAAG,8BAA8B,GAAG,QAAQ;AAC56H,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM,gCAAS/S,OAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,QAAQ,MAAM;AAChB,WAAO,CAAC,0BAA0B;AAAA,MAChC,sBAAsB,SAAS;AAAA,MAC/B,cAAc,MAAM;AAAA,MACpB,aAAa,MAAM;AAAA,MACnB,oBAAoB,MAAM,UAAU,MAAM,YAAY,WAAW,SAAS,UAAU,OAAO,eAAe,YAAY,SAAS,UAAU,OAAO,iBAAiB;AAAA,IACvK,CAAK;AAAA,EACF,GATK;AAAA,EAUN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,MAAM;AACR;AACA,IAAI,gBAAgB,UAAU,OAAO;AAAA,EACnC,MAAM;AAAA,EACN,OAAO6V;AAAAA,EACP,SAAS9C;AACX,CAAC;AClBD,IAAIuF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWN;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,aAAa;AAAA,MACb,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,SAAS9C,qBAAmB,GAAG;AAAE,SAAOC,qBAAmB,CAAC,KAAKC,mBAAiB,CAAC,KAAKhB,8BAA4B,CAAC,KAAKiB,qBAAoB;AAAG;AAAxIH;AACT,SAASG,uBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArLA;AACT,SAASjB,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOG,oBAAkB,GAAG,CAAC;AAAG,QAAI1S,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAI0S,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXH;AACT,SAASgB,mBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxIA;AACT,SAASD,qBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOZ,oBAAkB,CAAC;AAAI;AAA5EY;AACT,SAASZ,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAASzV,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAG,SAAO;AAAI;AAA3IyV;AACN,IAACkD,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWY;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,qBAAqB,UAAU,SAAS,QAAQ,sBAAsB;AAAA,EAC9E,MAAM,gCAASxY,SAAO;AACpB,WAAO;AAAA,MACL,iBAAiB,KAAK;AAAA,IAC5B;AAAA,EACG,GAJK;AAAA,EAKN,OAAO;AAAA,IACL,eAAe,gCAAS6pB,eAAc/rB,WAAU;AAC9C,WAAK,kBAAkBA;AAAA,IACxB,GAFc;AAAA,EAGhB;AAAA,EACD,SAAS;AAAA,IACP,cAAc,gCAASkd,cAAa,KAAK;AACvC,UAAI,OAAO,QAAQ,SAAS,KAAK,OAAO,KAAK;AAC7C,aAAO,KAAK,KAAK;AAAA,QACf,SAAS;AAAA,UACP,SAAS,KAAK;AAAA,UACd,eAAe,KAAK;AAAA,UACpB,UAAU,KAAK;AAAA,QAChB;AAAA,MACT,CAAO;AAAA,IACF,GATa;AAAA,IAUd,UAAU,gCAASxH,UAAS,OAAO;AACjC,UAAI,QAAQ;AACZ,UAAI,CAAC,KAAK,YAAY,CAAC,KAAK,UAAU;AACpC,YAAI;AACJ,YAAI,KAAK,QAAQ;AACf,0BAAgB,KAAK,kBAAkB,KAAK,YAAY,KAAK,UAAU,KAAK,aAAa,KAAK;AAAA,QACxG,OAAe;AACL,cAAI,KAAK,WAAW,KAAK,gBAAiB,iBAAgB,KAAK,WAAW,OAAO,SAAU,KAAK;AAC9F,mBAAO,CAAC,OAAO,KAAK,MAAM,KAAK;AAAA,UAC3C,CAAW;AAAA,cAAO,iBAAgB,KAAK,aAAa,CAAE,EAAC,OAAO6B,qBAAmB,KAAK,UAAU,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK;AAAA,QACrH;AACD,YAAI,KAAK,iBAAiB;AACxB,eAAK,kBAAkB;AACvB,eAAK,MAAM,wBAAwB,KAAK,eAAe;AAAA,QACxD;AACD,aAAK,MAAM,qBAAqB,aAAa;AAC7C,aAAK,MAAM,UAAU,KAAK;AAAA,MAC3B;AAAA,IACF,GAlBS;AAAA,IAmBV,SAAS,gCAAS6I,SAAQ,OAAO;AAC/B,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GAFQ;AAAA,IAGT,QAAQ,gCAASC,QAAO,OAAO;AAC7B,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB,GAFO;AAAA,EAGT;AAAA,EACD,UAAU;AAAA,IACR,SAAS,gCAAS3Z,WAAU;AAC1B,aAAO,KAAK,kBAAkB,QAAQ,KAAK,SAAS,KAAK,eAAe,KAAK,YAAY,SAAS,KAAK,OAAO,KAAK,UAAU;AAAA,IAC9H,GAFQ;AAAA,EAGV;AAAA,EACD,YAAY;AAAA,IACV,WAAWgX;AAAAA,IACX,WAAWsO;AAAAA,EACZ;AACH;AAEA,IAAIzR,eAAa,CAAC,kBAAkB,wBAAwB,iBAAiB;AAC7E,IAAIE,eAAa,CAAC,MAAM,SAAS,QAAQ,WAAW,YAAY,YAAY,YAAY,YAAY,mBAAmB,cAAc,gBAAgB,cAAc;AACnK,SAASxY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,EAC3B,GAAK,SAAS,aAAa,MAAM,GAAG;AAAA,IAChC,kBAAkB,SAAS;AAAA,IAC3B,wBAAwB,MAAM,mBAAmB;AAAA,IACjD,mBAAmB,KAAK;AAAA,EACzB,IAAG,CAACuY,gBAAmB,SAAS,WAAW;AAAA,IAC1C,IAAI,KAAK;AAAA,IACT,MAAM;AAAA,IACN,SAAS,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,UAAU;AAAA,IAC3C,OAAO,KAAK;AAAA,IACZ,OAAO,KAAK;AAAA,IACZ,MAAM,KAAK;AAAA,IACX,SAAS,SAAS;AAAA,IAClB,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,mBAAmB,KAAK;AAAA,IACxB,cAAc,KAAK;AAAA,IACnB,gBAAgB,KAAK,WAAW;AAAA,IAChC,gBAAgB,MAAM,kBAAkB,UAAU;AAAA,IAClD,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,WAAW,SAAS,QAAQ,MAAM,UAAU,SAAS;AAAA,IAC3E;AAAA,IACI,QAAQ,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC5C,aAAO,SAAS,UAAU,SAAS,OAAO,MAAM,UAAU,SAAS;AAAA,IACzE;AAAA,IACI,UAAU,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC9C,aAAO,SAAS,YAAY,SAAS,SAAS,MAAM,UAAU,SAAS;AAAA,IAC7E;AAAA,EACG,GAAE,SAAS,aAAa,OAAO,CAAC,GAAG,MAAM,IAAIC,YAAU,GAAGD,gBAAmB,OAAO,WAAW;AAAA,IAC9F,SAAS,KAAK,GAAG,KAAK;AAAA,EAC1B,GAAK,SAAS,aAAa,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,QAAQ;AAAA,IACjE,SAAS,SAAS;AAAA,IAClB,eAAe,MAAM;AAAA,IACrB,SAAS,eAAe,KAAK,GAAG,MAAM,CAAC;AAAA,EAC3C,GAAK,WAAY;AACb,WAAO,CAAC,SAAS,WAAW,UAAW,GAAE,YAAY,sBAAsB,WAAW;AAAA,MACpF,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,MAAM;AAAA,IAC7B,GAAO,SAAS,aAAa,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,MAAM,mBAAmB,UAAW,GAAE,YAAY,sBAAsB,WAAW;AAAA,MAC5I,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,MAAM;AAAA,IACxB,GAAE,SAAS,aAAa,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,EACxF,EAAC,GAAG,EAAE,CAAC,GAAG,IAAID,YAAU;AAC3B;AAjDStY;AAmDT6X,SAAO,SAAS7X;AC7LhB,IAAIgqB,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAW7R;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,SAAS;AAAA,MACT,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,SAAStD,YAAU,GAAG;AAAE;AAA2B,SAAOA,cAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUC,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAID,YAAU,CAAC;AAAI;AAA3TA;AACT,SAASmV,+BAA6B,GAAG/qB,IAAG;AAAE,MAAI+C,KAAI,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,CAACA,IAAG;AAAE,QAAI,MAAM,QAAQ,CAAC,MAAMA,KAAIioB,gCAA8B,CAAC,MAAMhrB,IAAG;AAAE,MAAA+C,OAAM,IAAIA;AAAI,UAAI,KAAK,GAAG,IAAI,gCAASwS,KAAI;AAAA,SAAb;AAAiB,aAAO,EAAE,GAAG,GAAG,GAAG,gCAAS,IAAI;AAAE,eAAO,MAAM,EAAE,SAAS,EAAE,MAAM,KAAE,IAAK,EAAE,MAAM,OAAI,OAAO,EAAE,IAAI,EAAG;AAAA,MAAG,GAArF,MAAuF,GAAG,gCAASvV,GAAEwV,IAAG;AAAE,cAAMA;AAAA,MAAI,GAA1B,MAA4B,GAAG,EAAC;AAAA,IAAG;AAAG,UAAM,IAAI,UAAU,uIAAuI;AAAA,EAAI;AAAC,MAAI,GAAG,IAAI,MAAI,IAAI;AAAI,SAAO,EAAE,GAAG,gCAAS,IAAI;AAAE,IAAAzS,KAAIA,GAAE,KAAK,CAAC;AAAA,EAAI,GAA/B,MAAiC,GAAG,gCAAS,IAAI;AAAE,QAAIyS,KAAIzS,GAAE,KAAM;AAAE,WAAO,IAAIyS,GAAE,MAAMA;AAAA,EAAE,GAAtD,MAA0D,GAAG,gCAASxV,GAAEwV,IAAG;AAAE,QAAI,MAAI,IAAIA;AAAA,EAAI,GAAhC,MAAkC,GAAG,gCAAS,IAAI;AAAE,QAAI;AAAE,WAAK,QAAQzS,GAAE,QAAQ,KAAKA,GAAE,QAAQ,EAAG;AAAA,IAAG;AAAW,UAAI,EAAG,OAAM;AAAA,IAAE;AAAA,EAAI,GAA/F,KAA+F;AAAK;AAAnzBgoB;AACT,SAASE,YAAUjrB,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAxPkoB;AACT,SAASC,kBAAgBlrB,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAIkoB,YAAU,OAAOloB,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAE2V,0BAAkBnrB,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAIkoB,YAAU,OAAOloB,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAAtbkrB;AACT,SAASC,oBAAkBnrB,IAAG,GAAG+C,IAAG;AAAE,UAAQ,IAAI+S,mBAAiB,CAAC,MAAM9V,KAAI,OAAO,eAAeA,IAAG,GAAG,EAAE,OAAO+C,IAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AAAI;AAA/KmrB;AACT,SAASrV,mBAAiB/S,IAAG;AAAE,MAAI,IAAIgT,iBAAehT,IAAG,QAAQ;AAAG,SAAO,YAAY6S,YAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1GE;AACT,SAASC,iBAAehT,IAAG,GAAG;AAAE,MAAI,YAAY6S,YAAU7S,EAAC,KAAK,CAACA,GAAG,QAAOA;AAAG,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAAG,MAAI,WAAW/C,IAAG;AAAE,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAAG,QAAI,YAAY6S,YAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ7S,EAAC;AAAI;AAAzTgT;AACT,SAASqV,uBAAqB,GAAG;AAAE,SAAOC,uBAAqB,CAAC,KAAKC,qBAAmB,CAAC,KAAKN,gCAA8B,CAAC,KAAKO,uBAAsB;AAAG;AAAlJH;AACT,SAASG,yBAAuB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAAvLA;AACT,SAASP,gCAA8B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOQ,sBAAoB,GAAG,CAAC;AAAG,QAAIzoB,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAIyoB,sBAAoB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAvXR;AACT,SAASM,qBAAmB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAA1IA;AACT,SAASD,uBAAqB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOG,sBAAoB,CAAC;AAAI;AAAhFH;AACT,SAASG,sBAAoB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAASxrB,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAG,SAAO;AAAI;AAA7IwrB;AACT,IAAIjS,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWN;AAAAA,EACX,OAAO,CAAC,eAAe,cAAc,iBAAiB;AAAA,EACtD,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EACD,aAAa;AAAA,EACb,eAAe;AAAA,EACf,SAAS,gCAAS9W,YAAU;AAC1B,SAAK,sBAAqB;AAAA,EAC3B,GAFQ;AAAA,EAGT,SAAS;AAAA,IACP,QAAQ,gCAAS,SAAS;AACxB,WAAK,MAAM,eAAe,KAAK,IAAI;AACnC,WAAK,gBAAgB;AAAA,IACtB,GAHO;AAAA,IAIR,OAAO,gCAASkR,OAAM7R,OAAM;AAC1B,aAAO,OAAOA,MAAK,UAAU,aAAaA,MAAK,MAAO,IAAGA,MAAK;AAAA,IAC/D,GAFM;AAAA,IAGP,mBAAmB,gCAAS,kBAAkBA,OAAM;AAClD,WAAK,MAAM,eAAeA,KAAI;AAAA,IAC/B,GAFkB;AAAA,IAGnB,cAAc,gCAASua,cAAa,KAAK;AACvC,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,OAAO,KAAK;AAAA,UACZ,UAAU,KAAK;AAAA,UACf,UAAU,KAAK;AAAA,UACf,SAAS,KAAK;AAAA,UACd,MAAM,KAAK;AAAA,QACZ;AAAA,MACT,CAAO;AAAA,IACF,GAVa;AAAA,IAWd,SAAS,gCAAS,QAAQ,OAAO;AAC/B,UAAI,KAAK,iBAAiB,aAAa,MAAM,QAAQ,sCAAsC,KAAK,aAAa,MAAM,OAAO,eAAe,sCAAsC,GAAG;AAChL,aAAK,gBAAgB;AACrB;AAAA,MACD;AACD,UAAI,KAAK,2BAA2B;AAClC,YAAI,KAAK,KAAK,cAAc,OAAO;AACjC,eAAK,eAAc;AAAA,QACpB;AAAA,MACT,OAAa;AACL,aAAK,MAAM,cAAc;AAAA,UACvB,eAAe;AAAA,UACf,aAAa,KAAK;AAAA,UAClB,MAAM,KAAK;AAAA,QACrB,CAAS;AAAA,MACF;AACD,WAAK,cAAc;AAAA,IACpB,GAjBQ;AAAA,IAkBT,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,WAAK,MAAM,cAAc,KAAK;AAAA,IAC/B,GAFiB;AAAA,IAGlB,YAAY,gCAAS,aAAa;AAChC,WAAK,cAAc;AAAA,IACpB,GAFW;AAAA,IAGZ,WAAW,gCAASuB,WAAU,OAAO;AACnC,UAAI,CAAC,KAAK,WAAW,KAAK,EAAG;AAC7B,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AACH,eAAK,UAAU,KAAK;AACpB;AAAA,QACF,KAAK;AACH,eAAK,aAAa,KAAK;AACvB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,MACH;AAAA,IACF,GAxBU;AAAA,IAyBX,aAAa,gCAAS,YAAY,OAAO;AACvC,UAAI,cAAc,MAAM,OAAO,aAAa,iBAAiB,MAAM,qBAAqB,MAAM,OAAO,QAAQ,mBAAmB,IAAI,MAAM;AAC1I,UAAI,cAAc,YAAY,SAAS,CAAC;AACxC,UAAI,aAAa;AACf,aAAK,eAAe,aAAa,YAAY,SAAS,CAAC,CAAC;AAAA,MAChE,OAAa;AACL,YAAI,YAAY,oBAAoB;AAClC,eAAK,eAAe,aAAa,YAAY,kBAAkB;AAAA,QACzE,OAAe;AACL,cAAI,sBAAsB,KAAK,0BAA0B,WAAW;AACpE,cAAI,qBAAqB;AACvB,iBAAK,eAAe,aAAa,mBAAmB;AAAA,UACrD;AAAA,QACF;AAAA,MACF;AACD,YAAM,eAAc;AAAA,IACrB,GAhBY;AAAA,IAiBb,WAAW,gCAAS,UAAU,OAAO;AACnC,UAAI,cAAc,MAAM;AACxB,UAAI,YAAY,wBAAwB;AACtC,aAAK,eAAe,aAAa,YAAY,wBAAwB,KAAK,0BAA0B,YAAY,sBAAsB,CAAC;AAAA,MAC/I,OAAa;AACL,YAAI,oBAAoB,KAAK,qBAAqB,WAAW;AAC7D,YAAI,mBAAmB;AACrB,eAAK,eAAe,aAAa,iBAAiB;AAAA,QACnD;AAAA,MACF;AACD,YAAM,eAAc;AAAA,IACrB,GAXU;AAAA,IAYX,cAAc,gCAAS,aAAa,OAAO;AACzC,UAAI,QAAQ;AACZ,UAAI,KAAK,QAAQ,KAAK,SAAU;AAChC,YAAM,cAAc,WAAW;AAC/B,WAAK,MAAM,eAAe,KAAK,IAAI;AACnC,WAAK,UAAU,WAAY;AACzB,cAAM,YAAY,KAAK;AAAA,MAC/B,CAAO;AAAA,IACF,GARa;AAAA,IASd,aAAa,gCAAS,YAAY,OAAO;AACvC,UAAI,iBAAiB,WAAW,MAAM,eAAe,sCAAsC;AAC3F,UAAI,KAAK,UAAU,KAAK,CAAC,KAAK,UAAU;AACtC,eAAO;AAAA,MACR;AACD,UAAI,KAAK,YAAY,CAAC,KAAK,MAAM;AAC/B,uBAAe,MAAK;AACpB,eAAO;AAAA,MACR;AACD,UAAI,SAAS,KAAK,wBAAwB,MAAM,aAAa;AAC7D,UAAI,QAAQ;AACV,aAAK,eAAe,MAAM,eAAe,MAAM;AAAA,MAChD;AAAA,IACF,GAbY;AAAA,IAcb,YAAY,gCAAS2C,YAAW,OAAO;AACrC,WAAK,4BAA4B,OAAO,KAAK,WAAW;AACxD,WAAK,QAAQ,KAAK;AAClB,YAAM,eAAc;AAAA,IACrB,GAJW;AAAA,IAKZ,UAAU,gCAASwL,YAAW;AAC5B,WAAK,sBAAqB;AAAA,IAC3B,GAFS;AAAA,IAGV,uBAAuB,gCAAS,wBAAwB;AACtD,UAAI,QAAQ,KAAK,KAAK,MAAM,YAAY,QAAQ,kCAAkC,GAAG,mBAAmB;AACxG,UAAI,kBAAkBL,uBAAqB,KAAK,EAAE,KAAK,SAAU5pB,OAAM;AACrE,eAAOA,MAAK,aAAa,eAAe,MAAM,UAAUA,MAAK,aAAa,cAAc,MAAM;AAAA,MACtG,CAAO;AACD4pB,6BAAqB,KAAK,EAAE,QAAQ,SAAU5pB,OAAM;AAClD,QAAAA,MAAK,WAAW;AAAA,MACxB,CAAO;AACD,UAAI,iBAAiB;AACnB,YAAI,gBAAgB4pB,uBAAqB,KAAK,EAAE,OAAO,SAAU5pB,OAAM;AACrE,iBAAOA,MAAK,aAAa,eAAe,MAAM,UAAUA,MAAK,aAAa,cAAc,MAAM;AAAA,QACxG,CAAS;AACD,sBAAc,CAAC,EAAE,WAAW;AAC5B;AAAA,MACD;AACD4pB,6BAAqB,KAAK,EAAE,CAAC,EAAE,WAAW;AAAA,IAC3C,GAhBsB;AAAA,IAiBvB,6BAA6B,gCAAS,4BAA4B,OAAO,aAAa;AACpF,UAAI,KAAK,kBAAkB,MAAM;AAC/B,YAAI,WAAWA,uBAAqB,KAAK,KAAK,MAAM,YAAY,eAAe,mBAAmB,CAAC;AACnG,cAAM,cAAc,WAAW,gBAAgB,QAAQ,KAAK;AAC5D,YAAI,SAAS,MAAM,SAAU,SAAS;AACpC,iBAAO,QAAQ,aAAa;AAAA,QACtC,CAAS,GAAG;AACF,mBAAS,CAAC,EAAE,WAAW;AAAA,QACxB;AAAA,MACF;AAAA,IACF,GAV4B;AAAA,IAW7B,gBAAgB,gCAAS,eAAe,mBAAmB,mBAAmB,uBAAuB;AACnG,wBAAkB,WAAW;AAC7B,wBAAkB,WAAW;AAC7B,WAAK,UAAU,yBAAyB,iBAAiB;AAAA,IAC1D,GAJe;AAAA,IAKhB,yBAAyB,gCAAS,wBAAwB5pB,OAAM;AAC9D,UAAI,oBAAoBA,MAAK,QAAQ,IAAI,EAAE,QAAQ,IAAI;AACvD,UAAI,mBAAmB;AACrB,YAAI,iBAAiB,WAAW,mBAAmB,QAAQ;AAC3D,YAAI,kBAAkB,eAAe,MAAM,eAAe,UAAU;AAClE,iBAAO;AAAA,QACR;AACD,eAAO,KAAK,wBAAwBA,MAAK,sBAAsB;AAAA,MAChE;AACD,aAAO;AAAA,IACR,GAVwB;AAAA,IAWzB,gBAAgB,gCAAS,iBAAiB;AACxC,UAAI,iBAAiB,KAAK,gBAAgB0pB,kBAAgB,IAAI,KAAK,aAAa,IAAI;AACpF,UAAI,SAAS,CAAC,KAAK;AACnB,WAAK,cAAc,KAAK,MAAM,QAAQ,cAAc;AACpD,WAAK,MAAM,mBAAmB;AAAA,QAC5B,MAAM,KAAK;AAAA,QACX,OAAO;AAAA,QACP,eAAe;AAAA,MACvB,CAAO;AAAA,IACF,GATe;AAAA,IAUhB,eAAe,gCAAS,cAAc1pB,OAAM,OAAO,eAAe;AAChE,UAAI,SAASA,MAAK,cAAc,MAAO,eAAcA,MAAK,GAAG,IAAI;AAAA,QAC/D,SAAS;AAAA,QACT,gBAAgB;AAAA,MACjB;AAAA,UAAM,QAAO,cAAcA,MAAK,GAAG;AACpC,UAAIA,MAAK,YAAYA,MAAK,SAAS,QAAQ;AACzC,YAAI,YAAYupB,+BAA6BvpB,MAAK,QAAQ,GACxD;AACF,YAAI;AACF,eAAK,UAAU,EAAC,GAAI,EAAE,QAAQ,UAAU,EAAG,GAAE,QAAO;AAClD,gBAAI,QAAQ,MAAM;AAClB,iBAAK,cAAc,OAAO,OAAO,aAAa;AAAA,UAC/C;AAAA,QACF,SAAQ,KAAK;AACZ,oBAAU,EAAE,GAAG;AAAA,QACzB,UAAkB;AACR,oBAAU,EAAC;AAAA,QACZ;AAAA,MACF;AAAA,IACF,GAnBc;AAAA,IAoBf,aAAa,gCAAS,YAAY,OAAO;AACvC,UAAI,QAAQ,MAAM;AAClB,UAAI,iBAAiB0pB,kBAAgB,CAAE,GAAE,MAAM,aAAa;AAC5D,UAAI,oBAAoB;AACxB,UAAI,uBAAuB;AAC3B,UAAI,aAAaH,+BAA6B,KAAK,KAAK,QAAQ,GAC9D;AACF,UAAI;AACF,aAAK,WAAW,EAAC,GAAI,EAAE,SAAS,WAAW,EAAG,GAAE,QAAO;AACrD,cAAI,QAAQ,OAAO;AACnB,cAAI,eAAe,MAAM,GAAG,KAAK,eAAe,MAAM,GAAG,EAAE,QAAS;AAAA,mBAA6B,eAAe,MAAM,GAAG,KAAK,eAAe,MAAM,GAAG,EAAE,eAAgB,wBAAuB;AAAA,QAChM;AAAA,MACF,SAAQ,KAAK;AACZ,mBAAW,EAAE,GAAG;AAAA,MACxB,UAAgB;AACR,mBAAW,EAAC;AAAA,MACb;AACD,UAAI,SAAS,sBAAsB,KAAK,KAAK,SAAS,QAAQ;AAC5D,uBAAe,KAAK,KAAK,GAAG,IAAI;AAAA,UAC9B,SAAS;AAAA,UACT,gBAAgB;AAAA,QAC1B;AAAA,MACA,OAAa;AACL,YAAI,CAAC,OAAO;AACV,iBAAO,eAAe,KAAK,KAAK,GAAG;AAAA,QACpC;AACD,YAAI,wBAAwB,oBAAoB,KAAK,sBAAsB,KAAK,KAAK,SAAS,OAAQ,gBAAe,KAAK,KAAK,GAAG,IAAI;AAAA,UACpI,SAAS;AAAA,UACT,gBAAgB;AAAA,QACjB;AAAA,YAAM,QAAO,eAAe,KAAK,KAAK,GAAG;AAAA,MAC3C;AACD,WAAK,MAAM,mBAAmB;AAAA,QAC5B,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,eAAe;AAAA,MACvB,CAAO;AAAA,IACF,GApCY;AAAA,IAqCb,uBAAuB,gCAAS,sBAAsB,OAAO;AAC3D,WAAK,MAAM,mBAAmB,KAAK;AAAA,IACpC,GAFsB;AAAA,IAGvB,2BAA2B,gCAAS,0BAA0B,aAAa;AACzE,UAAI,oBAAoB,KAAK,qBAAqB,WAAW;AAC7D,UAAI,mBAAmB;AACrB,YAAI,kBAAkB,mBAAoB,QAAO,kBAAkB;AAAA,YAAwB,QAAO,KAAK,0BAA0B,iBAAiB;AAAA,MAC1J,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAP0B;AAAA,IAQ3B,2BAA2B,gCAAS,0BAA0B,aAAa;AACzE,UAAI,sBAAsB,YAAY,SAAS,CAAC;AAChD,UAAI,qBAAqB;AACvB,YAAI,mBAAmB,oBAAoB,SAAS,oBAAoB,SAAS,SAAS,CAAC;AAC3F,eAAO,KAAK,0BAA0B,gBAAgB;AAAA,MAC9D,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAR0B;AAAA,IAS3B,sBAAsB,gCAAS,qBAAqB,aAAa;AAC/D,UAAI,oBAAoB,YAAY,cAAc;AAClD,aAAO,aAAa,mBAAmB,MAAM,MAAM,aAAa,oBAAoB;AAAA,IACrF,GAHqB;AAAA,IAItB,WAAW,gCAAS,UAAU,SAAS;AACrC,cAAQ,MAAK;AAAA,IACd,GAFU;AAAA,IAGX,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,KAAK,kBAAkB;AAAA,IAC/B,GAFwB;AAAA,IAGzB,YAAY,gCAAS,WAAW,OAAO;AACrC,aAAO,MAAM,kBAAkB,MAAM,cAAc,WAAW,MAAM,MAAM,KAAK,MAAM,cAAc,WAAW,MAAM,OAAO,QAAQ,mBAAmB,CAAC;AAAA,IACxJ,GAFW;AAAA,EAGb;AAAA,EACD,UAAU;AAAA,IACR,aAAa,gCAAS,cAAc;AAClC,aAAO,KAAK,KAAK,YAAY,KAAK,KAAK,SAAS,SAAS;AAAA,IAC1D,GAFY;AAAA,IAGb,UAAU,gCAAS,WAAW;AAC5B,aAAO,KAAK,gBAAgB,KAAK,aAAa,KAAK,KAAK,GAAG,MAAM;AAAA,IAClE,GAFS;AAAA,IAGV,MAAM,gCAAS,OAAO;AACpB,aAAO,KAAK,KAAK,SAAS,QAAQ,QAAQ,EAAE,KAAK,KAAK,YAAY,KAAK,KAAK,SAAS;AAAA,IACtF,GAFK;AAAA,IAGN,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,KAAK,eAAe,QAAQ,QAAQ,KAAK,iBAAiB;AAAA,IACvE,GAFW;AAAA,IAGZ,UAAU,gCAAS,WAAW;AAC5B,aAAO,KAAK,iBAAiB,KAAK,gBAAgB,KAAK,cAAc,KAAK,KAAK,GAAG,MAAM,OAAO;AAAA,IAChG,GAFS;AAAA,IAGV,cAAc,gCAAS,eAAe;AACpC,aAAO,KAAK,kBAAkB,cAAc,KAAK,KAAK,eAAe;AAAA,IACtE,GAFa;AAAA,IAGd,SAAS,gCAASxlB,WAAU;AAC1B,aAAO,KAAK,gBAAgB,KAAK,cAAc,KAAK,KAAK,GAAG,KAAK,KAAK,cAAc,KAAK,KAAK,GAAG,EAAE,UAAU;AAAA,IAC9G,GAFQ;AAAA,IAGT,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,gBAAgB,KAAK,cAAc,KAAK,KAAK,GAAG,KAAK,KAAK,cAAc,KAAK,KAAK,GAAG,EAAE,iBAAiB;AAAA,IACrH,GAFe;AAAA,IAGhB,aAAa,gCAAS,cAAc;AAClC,aAAO,KAAK,kBAAkB,YAAY,KAAK,kBAAkB,aAAa,KAAK,WAAW;AAAA,IAC/F,GAFY;AAAA,IAGb,cAAc,gCAAS,eAAe;AACpC,aAAO,KAAK,eAAe,KAAK,UAAU;AAAA,IAC3C,GAFa;AAAA,EAGf;AAAA,EACD,YAAY;AAAA,IACV,UAAUmmB;AAAAA,IACV,iBAAiBpJ;AAAAA,IACjB,kBAAkBoE;AAAAA,IAClB,WAAWnK;AAAAA,IACX,WAAWsO;AAAAA,IACX,aAAa/O;AAAAA,EACd;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAI6P,iBAAe,CAAC,cAAc,iBAAiB,iBAAiB,gBAAgB,iBAAiB,cAAc,gBAAgB,UAAU;AAC7I,IAAIrS,eAAa,CAAC,mBAAmB,mBAAmB;AACxD,SAASsS,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,yBAAyB,iBAAiB,aAAa;AAC3D,MAAI,sBAAsB,iBAAiB,UAAU;AACrD,MAAI,sBAAsB,iBAAiB,YAAY,IAAI;AAC3D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IACtD,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,MAAM;AAAA,IACN,cAAc,SAAS,MAAM,OAAO,IAAI;AAAA,IACxC,iBAAiB,SAAS;AAAA,IAC1B,iBAAiB,SAAS;AAAA,IAC1B,gBAAgB,OAAO,KAAK,WAAW,OAAO,KAAK,SAAS,SAAS;AAAA,IACrE,iBAAiB,OAAO,QAAQ;AAAA,IAChC,cAAc,OAAO;AAAA,IACrB,gBAAgB,SAAS;AAAA,IACzB,UAAU,OAAO,UAAU,IAAI,IAAI;AAAA,IACnC,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,aAAO,SAAS,aAAa,SAAS,UAAU,MAAM,UAAU,SAAS;AAAA,IAC/E;AAAA,EACA,GAAK,OAAO,UAAU,IAAI,SAAS,aAAa,MAAM,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,CAACvS,gBAAmB,OAAO,WAAW;AAAA,IACvH,SAAS,KAAK,GAAG,aAAa;AAAA,IAC9B,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,WAAW,SAAS,QAAQ,MAAM,UAAU,SAAS;AAAA,IAC3E;AAAA,IACI,YAAY,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAChD,aAAO,SAAS,cAAc,SAAS,WAAW,MAAM,UAAU,SAAS;AAAA,IACjF;AAAA,IACI,OAAO,OAAO,KAAK;AAAA,EACvB,GAAK,SAAS,aAAa,aAAa,GAAG;AAAA,IACvC,mBAAmB,SAAS,eAAe,SAAS,UAAU,SAAS;AAAA,IACvE,qBAAqB,SAAS;AAAA,EAClC,CAAG,GAAG,CAAC,gBAAgB,UAAW,GAAE,mBAAmB,UAAU,WAAW;AAAA,IACxE,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,kBAAkB;AAAA,IACnC,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,UAAU,SAAS,OAAO,MAAM,UAAU,SAAS;AAAA,IACzE;AAAA,IACI,UAAU;AAAA,EACd,GAAK,SAAS,aAAa,kBAAkB,CAAC,GAAG,CAAC,OAAO,KAAK,WAAW,OAAO,gBAAgB,UAAU,UAAS,GAAI,mBAAmB,UAAU;AAAA,IAChJ,KAAK;AAAA,EACT,GAAK,CAAC,OAAO,UAAU,gBAAgB,KAAK,OAAO,UAAU,iBAAiB,KAAK,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,gBAAgB,KAAK,OAAO,UAAU,iBAAiB,CAAC,GAAG;AAAA,IAC5M,KAAK;AAAA,IACL,SAAS,eAAe,KAAK,GAAG,gBAAgB,CAAC;AAAA,EACrD,GAAK,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,aAAa,YAAY,wBAAwB,WAAW;AAAA,IACrF,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,iBAAiB;AAAA,EACtC,GAAK,KAAK,IAAI,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,UAAW,GAAE,mBAAmB,UAAU;AAAA,IACxG,KAAK;AAAA,EACT,GAAK,CAAC,OAAO,UAAU,gBAAgB,KAAK,OAAO,UAAU,aAAa,KAAK,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,gBAAgB,KAAK,OAAO,UAAU,aAAa,CAAC,GAAG;AAAA,IACpM,KAAK;AAAA,IACL,MAAM,OAAO;AAAA,IACb,UAAU,SAAS;AAAA,IACnB,SAAS,eAAe,KAAK,GAAG,gBAAgB,CAAC;AAAA,EACrD,GAAK,MAAM,GAAG,CAAC,QAAQ,YAAY,OAAO,CAAC,KAAK,SAAS,YAAY,UAAS,GAAI,YAAY,wBAAwB,OAAO,KAAK,eAAe,SAAS,iBAAiB,GAAG,WAAW;AAAA,IACrL,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,gBAAgB;AAAA,EACrC,GAAK,SAAS,aAAa,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,UAAS,GAAI,YAAY,wBAAwB,OAAO,KAAK,gBAAgB,SAAS,kBAAkB,GAAG,WAAW;AAAA,IAC1L,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,gBAAgB;AAAA,EAClC,GAAE,SAAS,aAAa,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,SAAS,gBAAgB,aAAa,YAAY,qBAAqB;AAAA,IAC/K,KAAK;AAAA,IACL,YAAY,SAAS;AAAA,IACrB,QAAQ;AAAA,IACR,eAAe,SAAS;AAAA,IACxB,SAAS,eAAe,KAAK,GAAG,cAAc,CAAC;AAAA,IAC/C,UAAU;AAAA,IACV,UAAU,KAAK;AAAA,IACf,IAAI,SAAS,aAAa,cAAc;AAAA,IACxC,yBAAyB,SAAS;AAAA,EACtC,GAAK;AAAA,IACD,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,CAAC,OAAO,UAAU,cAAc,KAAK,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,cAAc,CAAC,GAAG;AAAA,QAC9H,KAAK;AAAA,QACL,SAAS,UAAU;AAAA,QACnB,gBAAgB,SAAS;AAAA,QACzB,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,GAAE,MAAM,GAAG,CAAC,WAAW,kBAAkB,OAAO,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IACzF,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,GAAG,CAAC,cAAc,iBAAiB,SAAS,YAAY,MAAM,uBAAuB,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,OAAO,UAAU,UAAU,KAAK,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,UAAU,CAAC,GAAG,WAAW;AAAA,IACrP,KAAK;AAAA,IACL,MAAM,OAAO;AAAA,IACb,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;AAAA,EACjC,GAAK,SAAS,aAAa,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,OAAO,CAAC,MAAM,UAAS,GAAI,mBAAmB,QAAQ,WAAW;AAAA,IACzH,KAAK;AAAA,IACL,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,OAAO,KAAK,IAAI;AAAA,EAChD,GAAE,SAAS,aAAa,UAAU,CAAC,GAAG,MAAM,EAAE,IAAIA,gBAAmB,QAAQ,WAAW;AAAA,IACvF,SAAS,KAAK,GAAG,WAAW;AAAA,EAChC,GAAK,SAAS,aAAa,WAAW,GAAG;AAAA,IACrC,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,cAAc,WAAY;AAAA,OAAI,CAAC,MAAM,CAAC;AAAA,EAC5E,IAAG,CAAC,OAAO,UAAU,OAAO,KAAK,IAAI,KAAK,OAAO,UAAU,SAAS,KAAK,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,OAAO,KAAK,IAAI,KAAK,OAAO,UAAU,SAAS,CAAC,GAAG;AAAA,IAC7L,KAAK;AAAA,IACL,MAAM,OAAO;AAAA,IACb,UAAU,SAAS,eAAe,SAAS,UAAU,SAAS;AAAA,EAClE,GAAK,MAAM,GAAG,CAAC,QAAQ,UAAU,CAAC,MAAM,UAAS,GAAI,mBAAmB,UAAU;AAAA,IAC9E,KAAK;AAAA,EACN,GAAE,CAAC,gBAAgB/a,kBAAgB,SAAS,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,IAAIgb,YAAU,GAAG,SAAS,eAAe,SAAS,YAAY,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IACjM,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,cAAc;AAAA,IAC/B,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,cAAc,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,KAAK,UAAU,SAAU,WAAW;AACxI,WAAO,UAAS,GAAI,YAAY,qBAAqB;AAAA,MACnD,KAAK,UAAU;AAAA,MACf,MAAM;AAAA,MACN,WAAW,OAAO;AAAA,MAClB,OAAO,OAAO,QAAQ;AAAA,MACtB,aAAa,OAAO;AAAA,MACpB,cAAc,OAAO;AAAA,MACrB,cAAc,SAAS;AAAA,MACvB,aAAa,SAAS;AAAA,MACtB,eAAe,OAAO;AAAA,MACtB,eAAe,OAAO;AAAA,MACtB,kBAAkB,SAAS;AAAA,MAC3B,UAAU,KAAK;AAAA,MACf,IAAI,KAAK;AAAA,IACf,GAAO,MAAM,GAAG,CAAC,QAAQ,aAAa,SAAS,eAAe,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,oBAAoB,YAAY,IAAI,CAAC;AAAA,EACjL,IAAG,GAAG,KAAK,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIqS,cAAY;AACpE;AAvHSC;AAyHTrS,WAAS,SAASqS;AAElB,SAASzV,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUN,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIM,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASd,6BAA2B,GAAGrV,IAAG;AAAE,MAAI+C,KAAI,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,CAACA,IAAG;AAAE,QAAI,MAAM,QAAQ,CAAC,MAAMA,KAAIuS,8BAA4B,CAAC,MAAMtV,IAAG;AAAE,MAAA+C,OAAM,IAAIA;AAAI,UAAI,KAAK,GAAG,IAAI,gCAASwS,KAAI;AAAA,SAAb;AAAiB,aAAO,EAAE,GAAG,GAAG,GAAG,gCAAS,IAAI;AAAE,eAAO,MAAM,EAAE,SAAS,EAAE,MAAM,KAAE,IAAK,EAAE,MAAM,OAAI,OAAO,EAAE,IAAI,EAAG;AAAA,MAAG,GAArF,MAAuF,GAAG,gCAASvV,GAAEwV,IAAG;AAAE,cAAMA;AAAA,MAAI,GAA1B,MAA4B,GAAG,EAAC;AAAA,IAAG;AAAG,UAAM,IAAI,UAAU,uIAAuI;AAAA,EAAI;AAAC,MAAI,GAAG,IAAI,MAAI,IAAI;AAAI,SAAO,EAAE,GAAG,gCAAS,IAAI;AAAE,IAAAzS,KAAIA,GAAE,KAAK,CAAC;AAAA,EAAI,GAA/B,MAAiC,GAAG,gCAAS,IAAI;AAAE,QAAIyS,KAAIzS,GAAE,KAAM;AAAE,WAAO,IAAIyS,GAAE,MAAMA;AAAA,EAAE,GAAtD,MAA0D,GAAG,gCAASxV,GAAEwV,IAAG;AAAE,QAAI,MAAI,IAAIA;AAAA,EAAI,GAAhC,MAAkC,GAAG,gCAAS,IAAI;AAAE,QAAI;AAAE,WAAK,QAAQzS,GAAE,QAAQ,KAAKA,GAAE,QAAQ,EAAG;AAAA,IAAG;AAAW,UAAI,EAAG,OAAM;AAAA,IAAE;AAAA,EAAI,GAA/F,KAA+F;AAAK;AAA/yBsS;AACT,SAASe,qBAAmB,GAAG;AAAE,SAAOC,qBAAmB,CAAC,KAAKC,mBAAiB,CAAC,KAAKhB,8BAA4B,CAAC,KAAKiB,qBAAoB;AAAG;AAAxIH;AACT,SAASG,uBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArLA;AACT,SAASjB,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOG,oBAAkB,GAAG,CAAC;AAAG,QAAI1S,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAI0S,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXH;AACT,SAASgB,mBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxIA;AACT,SAASD,qBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOZ,oBAAkB,CAAC;AAAI;AAA5EY;AACT,SAASZ,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAASzV,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAG,SAAO;AAAI;AAA3IyV;AACT,SAASmC,UAAQ5X,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAtP6U;AACT,SAASC,gBAAc7X,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI6U,UAAQ,OAAO7U,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAEiB,wBAAgBzW,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI6U,UAAQ,OAAO7U,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAA9a6X;AACT,SAASpB,kBAAgBzW,IAAG,GAAG+C,IAAG;AAAE,UAAQ,IAAIyT,iBAAe,CAAC,MAAMxW,KAAI,OAAO,eAAeA,IAAG,GAAG,EAAE,OAAO+C,IAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AAAI;AAA3KyW;AACT,SAASD,iBAAezT,IAAG;AAAE,MAAI,IAAI2T,eAAa3T,IAAG,QAAQ;AAAG,SAAO,YAAYoT,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASE,eAAa3T,IAAG,GAAG;AAAE,MAAI,YAAYoT,UAAQpT,EAAC,KAAK,CAACA,GAAG,QAAOA;AAAG,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAAG,MAAI,WAAW/C,IAAG;AAAE,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAAG,QAAI,YAAYoT,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQpT,EAAC;AAAI;AAAnT2T;AACT,IAAIiC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWmS;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,eAAe,iBAAiB,uBAAuB,wBAAwB,eAAe,iBAAiB,QAAQ;AAAA,EAC/H,MAAM,gCAAS/pB,SAAO;AACpB,WAAO;AAAA,MACL,gBAAgB,KAAK,gBAAgB,CAAE;AAAA,MACvC,aAAa;AAAA,IACnB;AAAA,EACG,GALK;AAAA,EAMN,OAAO;AAAA,IACL,cAAc,gCAAS,aAAalC,WAAU;AAC5C,WAAK,iBAAiBA;AAAA,IACvB,GAFa;AAAA,EAGf;AAAA,EACD,SAAS;AAAA,IACP,cAAc,gCAAS,aAAa2C,OAAM;AACxC,UAAI,MAAMA,MAAK;AACf,UAAI,KAAK,eAAe,GAAG,GAAG;AAC5B,eAAO,KAAK,eAAe,GAAG;AAC9B,aAAK,MAAM,iBAAiBA,KAAI;AAAA,MACxC,OAAa;AACL,aAAK,eAAe,GAAG,IAAI;AAC3B,aAAK,MAAM,eAAeA,KAAI;AAAA,MAC/B;AACD,WAAK,iBAAiBqW,gBAAc,CAAE,GAAE,KAAK,cAAc;AAC3D,WAAK,MAAM,uBAAuB,KAAK,cAAc;AAAA,IACtD,GAXa;AAAA,IAYd,aAAa,gCAAS,YAAY,OAAO;AACvC,UAAI,KAAK,iBAAiB,QAAQ,MAAM,KAAK,eAAe,OAAO;AACjE,YAAI,gBAAgB,MAAM,cAAc,QAAQ,KAAK;AACrD,YAAI,iBAAiB,gBAAgB,KAAK,2BAA2B,KAAK,IAAI,KAAK,8BAA8B,KAAK;AACtH,aAAK,MAAM,wBAAwB,cAAc;AAAA,MAClD;AAAA,IACF,GANY;AAAA,IAOb,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,WAAK,MAAM,wBAAwB,MAAM,aAAa;AACtD,UAAI,MAAM,MAAO,MAAK,MAAM,eAAe,MAAM,IAAI;AAAA,UAAO,MAAK,MAAM,iBAAiB,MAAM,IAAI;AAAA,IACnG,GAHiB;AAAA,IAIlB,4BAA4B,gCAAS,2BAA2B,OAAO;AACrE,UAAI,gBAAgB,MAAM;AAC1B,UAAIrW,QAAO,MAAM;AACjB,UAAI,UAAU,cAAc,WAAW,cAAc;AACrD,UAAIkS,YAAW,KAAK,eAAelS,KAAI;AACvC,UAAI;AACJ,UAAIkS,aAAY,SAAS;AACvB,YAAI,KAAK,yBAAyB;AAChC,2BAAiB;AAAA,QAC3B,OAAe;AACL,2BAAiBmE,gBAAc,IAAI,KAAK,aAAa;AACrD,iBAAO,eAAerW,MAAK,GAAG;AAAA,QAC/B;AACD,aAAK,MAAM,iBAAiBA,KAAI;AAAA,MACxC,OAAa;AACL,YAAI,KAAK,yBAAyB;AAChC,2BAAiB;AAAA,QAC3B,WAAmB,KAAK,2BAA2B;AACzC,2BAAiB,CAAC,UAAU,CAAE,IAAG,KAAK,gBAAgBqW,gBAAc,IAAI,KAAK,aAAa,IAAI;AAAA,QAC/F;AACD,uBAAerW,MAAK,GAAG,IAAI;AAC3B,aAAK,MAAM,eAAeA,KAAI;AAAA,MAC/B;AACD,aAAO;AAAA,IACR,GAxB2B;AAAA,IAyB5B,+BAA+B,gCAAS,8BAA8B,OAAO;AAC3E,UAAIA,QAAO,MAAM;AACjB,UAAIkS,YAAW,KAAK,eAAelS,KAAI;AACvC,UAAI;AACJ,UAAI,KAAK,yBAAyB;AAChC,YAAIkS,WAAU;AACZ,2BAAiB;AACjB,eAAK,MAAM,iBAAiBlS,KAAI;AAAA,QAC1C,OAAe;AACL,2BAAiB;AACjB,yBAAeA,MAAK,GAAG,IAAI;AAC3B,eAAK,MAAM,eAAeA,KAAI;AAAA,QAC/B;AAAA,MACT,OAAa;AACL,YAAIkS,WAAU;AACZ,2BAAiBmE,gBAAc,IAAI,KAAK,aAAa;AACrD,iBAAO,eAAerW,MAAK,GAAG;AAC9B,eAAK,MAAM,iBAAiBA,KAAI;AAAA,QAC1C,OAAe;AACL,2BAAiB,KAAK,gBAAgBqW,gBAAc,CAAE,GAAE,KAAK,aAAa,IAAI;AAC9E,yBAAerW,MAAK,GAAG,IAAI;AAC3B,eAAK,MAAM,eAAeA,KAAI;AAAA,QAC/B;AAAA,MACF;AACD,aAAO;AAAA,IACR,GAzB8B;AAAA,IA0B/B,uBAAuB,gCAAS,wBAAwB;AACtD,aAAO,KAAK,kBAAkB;AAAA,IAC/B,GAFsB;AAAA,IAGvB,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,KAAK,kBAAkB;AAAA,IAC/B,GAFwB;AAAA,IAGzB,gBAAgB,gCAAS,eAAeA,OAAM;AAC5C,aAAO,KAAK,iBAAiB,KAAK,gBAAgB,KAAK,cAAcA,MAAK,GAAG,MAAM,OAAO;AAAA,IAC3F,GAFe;AAAA,IAGhB,WAAW,gCAAS,UAAUA,OAAM;AAClC,aAAO,KAAK,gBAAgB,KAAK,cAAcA,MAAK,GAAG,KAAK,KAAK,cAAcA,MAAK,GAAG,EAAE,UAAU;AAAA,IACpG,GAFU;AAAA,IAGX,YAAY,gCAAS,WAAWA,OAAM;AACpC,aAAOA,MAAK,SAAS,QAAQ,QAAQ,EAAEA,MAAK,YAAYA,MAAK,SAAS;AAAA,IACvE,GAFW;AAAA,IAGZ,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,UAAI,MAAM,SAAS,WAAW,MAAM,SAAS,eAAe;AAC1D,cAAM,eAAc;AAAA,MACrB;AACD,WAAK,MAAM,UAAU;AAAA,QACnB,eAAe;AAAA,QACf,OAAO,MAAM,OAAO;AAAA,MAC5B,CAAO;AAAA,IACF,GARgB;AAAA,IASjB,mBAAmB,gCAAS,kBAAkBA,OAAM,mBAAmB;AACrE,UAAIA,OAAM;AACR,YAAI,UAAU;AACd,YAAIA,MAAK,UAAU;AACjB,cAAI,aAAa4U,qBAAmB5U,MAAK,QAAQ;AACjD,UAAAA,MAAK,WAAW;AAChB,cAAI,YAAY6T,6BAA2B,UAAU,GACnD;AACF,cAAI;AACF,iBAAK,UAAU,EAAC,GAAI,EAAE,QAAQ,UAAU,EAAG,GAAE,QAAO;AAClD,kBAAI,YAAY,MAAM;AACtB,kBAAI,gBAAgBwC,gBAAc,CAAE,GAAE,SAAS;AAC/C,kBAAI,KAAK,gBAAgB,eAAe,iBAAiB,GAAG;AAC1D,0BAAU;AACV,gBAAArW,MAAK,SAAS,KAAK,aAAa;AAAA,cACjC;AAAA,YACF;AAAA,UACF,SAAQ,KAAK;AACZ,sBAAU,EAAE,GAAG;AAAA,UAC3B,UAAoB;AACR,sBAAU,EAAC;AAAA,UACZ;AAAA,QACF;AACD,YAAI,SAAS;AACX,iBAAO;AAAA,QACR;AAAA,MACF;AAAA,IACF,GA3BkB;AAAA,IA4BnB,iBAAiB,gCAAS,gBAAgBA,OAAM,MAAM;AACpD,UAAIigB,gBAAe,KAAK,cACtB,aAAa,KAAK,YAClB,SAAS,KAAK;AAChB,UAAI,UAAU;AACd,UAAI,aAAapM,6BAA2BoM,aAAY,GACtD;AACF,UAAI;AACF,aAAK,WAAW,EAAC,GAAI,EAAE,SAAS,WAAW,EAAG,GAAE,QAAO;AACrD,cAAI,QAAQ,OAAO;AACnB,cAAI,aAAa,OAAO,iBAAiBjgB,OAAM,KAAK,CAAC,EAAE,kBAAkB,KAAK,YAAY;AAC1F,cAAI,WAAW,QAAQ,UAAU,IAAI,IAAI;AACvC,sBAAU;AAAA,UACX;AAAA,QACF;AAAA,MACF,SAAQ,KAAK;AACZ,mBAAW,EAAE,GAAG;AAAA,MACxB,UAAgB;AACR,mBAAW,EAAC;AAAA,MACb;AACD,UAAI,CAAC,WAAW,UAAU,CAAC,KAAK,WAAWA,KAAI,GAAG;AAChD,kBAAU,KAAK,kBAAkBA,OAAM;AAAA,UACrC,cAAcigB;AAAA,UACd;AAAA,UACA;AAAA,QACD,MAAK;AAAA,MACP;AACD,aAAO;AAAA,IACR,GA5BgB;AAAA,EA6BlB;AAAA,EACD,UAAU;AAAA,IACR,eAAe,gCAAS,gBAAgB;AACtC,UAAI,gBAAgB;AACpB,UAAIA,gBAAe,KAAK,SAAS,MAAM,GAAG;AAC1C,UAAI,aAAa,KAAK,YAAY,KAAM,EAAC,kBAAkB,KAAK,YAAY;AAC5E,UAAI,SAAS,KAAK,eAAe;AACjC,UAAI,aAAapM,6BAA2B,KAAK,KAAK,GACpD;AACF,UAAI;AACF,aAAK,WAAW,EAAC,GAAI,EAAE,SAAS,WAAW,EAAG,GAAE,QAAO;AACrD,cAAI7T,QAAO,OAAO;AAClB,cAAI,QAAQqW,gBAAc,CAAE,GAAErW,KAAI;AAClC,cAAI,oBAAoB;AAAA,YACtB,cAAcigB;AAAA,YACd;AAAA,YACA;AAAA,UACZ;AACU,cAAI,WAAW,KAAK,kBAAkB,OAAO,iBAAiB,KAAK,KAAK,gBAAgB,OAAO,iBAAiB,MAAM,CAAC,WAAW,KAAK,gBAAgB,OAAO,iBAAiB,KAAK,KAAK,kBAAkB,OAAO,iBAAiB,IAAI;AACrO,0BAAc,KAAK,KAAK;AAAA,UACzB;AAAA,QACF;AAAA,MACF,SAAQ,KAAK;AACZ,mBAAW,EAAE,GAAG;AAAA,MACxB,UAAgB;AACR,mBAAW,EAAC;AAAA,MACb;AACD,aAAO;AAAA,IACR,GA1Bc;AAAA,IA2Bf,eAAe,gCAAS,gBAAgB;AACtC,UAAI,KAAK,eAAe,KAAK,YAAY,KAAI,EAAG,SAAS,EAAG,QAAO,KAAK;AAAA,UAAmB,QAAO,KAAK;AAAA,IACxG,GAFc;AAAA,EAGhB;AAAA,EACD,YAAY;AAAA,IACV,UAAUlI;AAAAA,IACV,WAAW2C;AAAAA,IACX,WAAWE;AAAAA,IACX,WAAWC;AAAAA,IACX,YAAYC;AAAAA,IACZ,aAAaR;AAAAA,EACd;AACH;AAEA,IAAI1C,eAAa,CAAC,mBAAmB,YAAY;AACjD,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,yBAAyB,iBAAiB,aAAa;AAC3D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,wBAAwB,iBAAiB,YAAY;AACzD,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,sBAAsB,iBAAiB,UAAU;AACrD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,EAC3B,GAAK,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,WAAW,KAAK,gBAAgB,UAAU,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,IACvH,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,EAC3B,GAAK,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,eAAe;AAAA,IAC5D,SAAS,eAAe,KAAK,GAAG,aAAa,CAAC;AAAA,EAClD,GAAK,WAAY;AACb,WAAO,CAAC,KAAK,eAAe,UAAW,GAAE,mBAAmB,KAAK,WAAW;AAAA,MAC1E,KAAK;AAAA,MACL,SAAS,CAAC,KAAK,GAAG,aAAa,GAAG,WAAW,KAAK,WAAW;AAAA,IAC9D,GAAE,KAAK,IAAI,aAAa,CAAC,GAAG,MAAM,EAAE,MAAM,UAAW,GAAE,YAAY,wBAAwB,WAAW;AAAA,MACrG,KAAK;AAAA,MACL,MAAM;AAAA,MACN,SAAS,KAAK,GAAG,aAAa;AAAA,IACpC,GAAO,KAAK,IAAI,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;AAAA,EACnD,EAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,KAAK,UAAU,aAAa,YAAY,sBAAsB;AAAA,IACtG,KAAK;AAAA,IACL,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,mBAAmB;AAAA,EACpC,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,sBAAsB;AAAA,QACxC,YAAY,MAAM;AAAA,QAClB,uBAAuB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACjE,iBAAO,MAAM,cAAc;AAAA,QACrC;AAAA,QACQ,cAAc;AAAA,QACd,SAAS,eAAe,KAAK,GAAG,UAAU,CAAC;AAAA,QAC3C,aAAa,KAAK;AAAA,QAClB,UAAU,KAAK;AAAA,QACf,WAAW,SAAS;AAAA,QACpB,IAAI,KAAK,IAAI,UAAU;AAAA,MACxB,GAAE,MAAM,GAAG,CAAC,cAAc,SAAS,eAAe,YAAY,aAAa,IAAI,CAAC,GAAG,YAAY,sBAAsB;AAAA,QACpH,UAAU,KAAK;AAAA,QACf,IAAI,KAAK,IAAI,uBAAuB;AAAA,MAC5C,GAAS;AAAA,QACD,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,WAAW,KAAK,QAAQ,KAAK,OAAO,aAAa,eAAe,cAAc;AAAA,YACpF,SAAS,eAAe,KAAK,GAAG,YAAY,CAAC;AAAA,UACzD,GAAa,WAAY;AACb,mBAAO,CAAC,YAAY,uBAAuB,WAAW;AAAA,cACpD,SAAS,KAAK,GAAG,YAAY;AAAA,YAC3C,GAAe,KAAK,IAAI,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;AAAA,UACjD,EAAC;AAAA,QACZ,CAAS;AAAA,QACD,GAAG;AAAA,MACJ,GAAE,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC;AAAA,IAC/B,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,GAAG,CAAC,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAGuY,gBAAmB,OAAO,WAAW;AAAA,IAC9F,SAAS,KAAK,GAAG,SAAS;AAAA,IAC1B,OAAO;AAAA,MACL,WAAW,KAAK;AAAA,IACjB;AAAA,EACL,GAAK,KAAK,IAAI,SAAS,CAAC,GAAG,CAACA,gBAAmB,MAAM,WAAW;AAAA,IAC5D,SAAS,KAAK,GAAG,cAAc;AAAA,IAC/B,MAAM;AAAA,IACN,mBAAmB,KAAK;AAAA,IACxB,cAAc,KAAK;AAAA,EACvB,GAAK,KAAK,IAAI,cAAc,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,SAAS,eAAe,SAAU7X,OAAMpD,QAAO;AAC5I,WAAO,UAAS,GAAI,YAAY,qBAAqB;AAAA,MACnD,KAAKoD,MAAK;AAAA,MACV,MAAMA;AAAA,MACN,WAAW,KAAK;AAAA,MAChB,OAAO,KAAK,QAAQ;AAAA,MACpB,OAAOpD;AAAA,MACP,cAAc,MAAM;AAAA,MACpB,cAAc,SAAS;AAAA,MACvB,aAAa,SAAS;AAAA,MACtB,eAAe,KAAK;AAAA,MACpB,eAAe,KAAK;AAAA,MACpB,kBAAkB,SAAS;AAAA,MAC3B,aAAa,KAAK;AAAA,MAClB,UAAU,KAAK;AAAA,MACf,IAAI,KAAK;AAAA,IACf,GAAO,MAAM,GAAG,CAAC,QAAQ,aAAa,SAAS,SAAS,gBAAgB,gBAAgB,eAAe,iBAAiB,iBAAiB,oBAAoB,eAAe,YAAY,IAAI,CAAC;AAAA,EAC7L,CAAG,GAAG,GAAG,EAAG,GAAE,IAAIgb,YAAU,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;AACxC;AArFStY;AAuFT6X,SAAO,SAAS7X;ACr5BhB,IAAIgW,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,uCAAuC,OAAOA,IAAG,wBAAwB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,mBAAmB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,0BAA0B,GAAG,wBAAwB,EAAE,OAAOA,IAAG,2BAA2B,GAAG,qBAAqB,EAAE,OAAOA,IAAG,oBAAoB,GAAG,qHAAqH,EAAE,OAAOA,IAAG,0BAA0B,GAAG,4GAA4G,EAAE,OAAOA,IAAG,sBAAsB,GAAG,qKAAqK,EAAE,OAAOA,IAAG,wBAAwB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,mBAAmB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,0BAA0B,GAAG,wBAAwB,EAAE,OAAOA,IAAG,2BAA2B,GAAG,qBAAqB,EAAE,OAAOA,IAAG,oBAAoB,GAAG,yHAAyH,EAAE,OAAOA,IAAG,iCAAiC,GAAG,UAAU,EAAE,OAAOA,IAAG,iCAAiC,GAAG,wBAAwB,EAAE,OAAOA,IAAG,gCAAgC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,wNAAwN,EAAE,OAAOA,IAAG,0BAA0B,GAAG,cAAc,EAAE,OAAOA,IAAG,sBAAsB,GAAG,gIAAgI,EAAE,OAAOA,IAAG,6BAA6B,GAAG,oDAAoD,EAAE,OAAOA,IAAG,gCAAgC,GAAG,4CAA4C,EAAE,OAAOA,IAAG,+BAA+B,GAAG,gBAAgB,EAAE,OAAOA,IAAG,+BAA+B,GAAG,iBAAiB,EAAE,OAAOA,IAAG,+BAA+B,GAAG,kFAAkF,EAAE,OAAOA,IAAG,8BAA8B,GAAG,qBAAqB,EAAE,OAAOA,IAAG,mCAAmC,GAAG,2GAA2G,EAAE,OAAOA,IAAG,mCAAmC,GAAG,8GAA8G,EAAE,OAAOA,IAAG,sCAAsC,GAAG,iGAAiG,EAAE,OAAOA,IAAG,8BAA8B,GAAG,qBAAqB,EAAE,OAAOA,IAAG,mCAAmC,GAAG,0HAA0H,EAAE,OAAOA,IAAG,mCAAmC,GAAG,6HAA6H,EAAE,OAAOA,IAAG,sCAAsC,GAAG,iFAAiF,EAAE,OAAOA,IAAG,+BAA+B,GAAG,qBAAqB,EAAE,OAAOA,IAAG,oCAAoC,GAAG,0GAA0G,EAAE,OAAOA,IAAG,oCAAoC,GAAG,6GAA6G,EAAE,OAAOA,IAAG,uCAAuC,GAAG,iEAAiE,EAAE,OAAOA,IAAG,oCAAoC,GAAG,6JAA6J;AAC5/H,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,gBAAgB,MAAM;AACxB,WAAO,CAAC,sBAAsB;AAAA,MAC5B,6BAA6B,SAAS,aAAa,aAAa;AAAA,MAChE,WAAW,SAAS,cAAc,aAAa;AAAA,MAC/C,cAAc,SAAS,eAAe,aAAa;AAAA,IACzD,CAAK;AAAA,EACF,GARK;AAAA,EASN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AACb;AACA,IAAI,mBAAmB,UAAU,OAAO;AAAA,EACtC,MAAM;AAAA,EACN,OAAO8C;AAAAA,EACP,SAAS9C;AACX,CAAC;AC3BE,IAAC2E,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWQ;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGwY,cAAY,EAAE;AAChC;AARSxY;AAUT6X,SAAO,SAAS7X;ACZhB,IAAIgqB,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAW7R;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIK,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWN;AAAAA,EACX,OAAO,CAAC,cAAc,mBAAmB,gBAAgB;AAAA,EACzD,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,WAAW,gCAAS,UAAU,eAAe;AAC3C,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,GAAG;AAAA,IAC5D,GAFU;AAAA,IAGX,YAAY,gCAAS,WAAW,eAAe;AAC7C,aAAO,KAAK,UAAU,aAAa;AAAA,IACpC,GAFW;AAAA,IAGZ,aAAa,gCAAS,YAAY,eAAe,MAAM,QAAQ;AAC7D,aAAO,iBAAiB,cAAc,OAAO,QAAQ,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;AAAA,IAC1F,GAFY;AAAA,IAGb,cAAc,gCAAS,aAAa,eAAe;AACjD,aAAO,KAAK,YAAY,eAAe,OAAO;AAAA,IAC/C,GAFa;AAAA,IAGd,gBAAgB,gCAAS,eAAe,eAAe;AACrD,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,KAAK,QAAQ;AAAA,IACtE,GAFe;AAAA,IAGhB,cAAc,gCAAS8C,cAAa,KAAK,eAAe3d,QAAO;AAC7D,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,MAAM,cAAc;AAAA,UACpB,QAAQ,KAAK,aAAa,aAAa;AAAA,UACvC,SAAS,KAAK,cAAc,aAAa;AAAA,UACzC,UAAU,KAAK,eAAe,aAAa;AAAA,UAC3C,OAAOA;AAAA,QACR;AAAA,MACT,CAAO;AAAA,IACF,GAVa;AAAA,IAWd,cAAc,gCAAS,aAAa,eAAe;AACjD,aAAO,KAAK,eAAe,KAAK,SAAU,MAAM;AAC9C,eAAO,KAAK,QAAQ,cAAc;AAAA,MAC1C,CAAO;AAAA,IACF,GAJa;AAAA,IAKd,eAAe,gCAAS,cAAc,eAAe;AACnD,aAAO,KAAK,YAAY,eAAe,SAAS,MAAM;AAAA,IACvD,GAFc;AAAA,IAGf,gBAAgB,gCAAS,eAAe,eAAe;AACrD,aAAO,KAAK,YAAY,eAAe,UAAU;AAAA,IAClD,GAFe;AAAA,IAGhB,eAAe,gCAAS,cAAc,eAAe;AACnD,aAAO,KAAK,kBAAkB,KAAK,UAAU,aAAa;AAAA,IAC3D,GAFc;AAAA,IAGf,aAAa,gCAAS,YAAY,eAAe;AAC/C,aAAO,WAAW,cAAc,KAAK;AAAA,IACtC,GAFY;AAAA,IAGb,aAAa,gCAAS,YAAY,OAAO,eAAe;AACtD,WAAK,YAAY,eAAe,WAAW;AAAA,QACzC,eAAe;AAAA,QACf,MAAM,cAAc;AAAA,MAC5B,CAAO;AACD,WAAK,MAAM,cAAc;AAAA,QACvB,eAAe;AAAA,QACf;AAAA,QACA,SAAS;AAAA,MACjB,CAAO;AAAA,IACF,GAVY;AAAA,IAWb,kBAAkB,gCAAS,iBAAiB,OAAO,eAAe;AAChE,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GALiB;AAAA,IAMlB,iBAAiB,gCAAS,gBAAgB,OAAO,eAAe;AAC9D,WAAK,MAAM,kBAAkB;AAAA,QAC3B,eAAe;AAAA,QACf;AAAA,QACA,SAAS;AAAA,MACjB,CAAO;AAAA,IACF,GANgB;AAAA,IAOjB,gBAAgB,gCAAS,iBAAiB;AACxC,UAAI,QAAQ;AACZ,aAAO,KAAK,MAAM,OAAO,SAAU,eAAe;AAChD,eAAO,MAAM,cAAc,aAAa,KAAK,CAAC,MAAM,YAAY,eAAe,WAAW;AAAA,MAC3F,GAAE;AAAA,IACJ,GALe;AAAA,IAMhB,iBAAiB,gCAAS2gB,iBAAgB3gB,QAAO;AAC/C,UAAI,SAAS;AACb,aAAOA,SAAQ,KAAK,MAAM,MAAM,GAAGA,MAAK,EAAE,OAAO,SAAU,eAAe;AACxE,eAAO,OAAO,cAAc,aAAa,KAAK,OAAO,YAAY,eAAe,WAAW;AAAA,MACnG,CAAO,EAAE,SAAS;AAAA,IACb,GALgB;AAAA,IAMjB,SAAS,gCAAS,UAAU;AAC1B,qBAAe,KAAK,MAAM,WAAW,KAAK,KAAK;AAAA,IAChD,GAFQ;AAAA,IAGT,kBAAkB,gCAAS,iBAAiB,eAAeA,QAAO;AAChE,aAAO;AAAA,QACL,QAAQ,WAAW;AAAA,UACjB,SAAS,KAAK,GAAG,UAAU;AAAA,UAC3B,UAAU;AAAA,UACV,eAAe;AAAA,QAChB,GAAE,KAAK,aAAa,YAAY,eAAeA,MAAK,CAAC;AAAA,QACtD,MAAM,WAAW;AAAA,UACf,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,KAAK,YAAY,eAAe,MAAM,CAAC;AAAA,QACvE,GAAE,KAAK,aAAa,YAAY,eAAeA,MAAK,CAAC;AAAA,QACtD,OAAO,WAAW;AAAA,UAChB,SAAS,KAAK,GAAG,WAAW;AAAA,QAC7B,GAAE,KAAK,aAAa,aAAa,eAAeA,MAAK,CAAC;AAAA,QACvD,aAAa,WAAW;AAAA,UACtB,SAAS,KAAK,GAAG,aAAa;AAAA,QAC/B,GAAE,KAAK,aAAa,eAAe,eAAeA,MAAK,CAAC;AAAA,MACjE;AAAA,IACK,GAjBiB;AAAA,EAkBnB;AAAA,EACD,YAAY;AAAA,IACV,gBAAgBytB;AAAAA,EACjB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAIzS,eAAa,CAAC,UAAU;AAC5B,IAAIE,eAAa,CAAC,MAAM,cAAc,iBAAiB,iBAAiB,iBAAiB,cAAc,gBAAgB,iBAAiB,iBAAiB,kBAAkB,iBAAiB;AAC5L,IAAImD,eAAa,CAAC,WAAW,gBAAgB,aAAa;AAC1D,IAAIC,eAAa,CAAC,QAAQ,QAAQ;AAClC,IAAIC,eAAa,CAAC,IAAI;AACtB,IAAIC,eAAa,CAAC,IAAI;AACtB,SAASgP,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,4BAA4B,iBAAiB,gBAAgB;AACjE,MAAI,4BAA4B,iBAAiB,kBAAkB,IAAI;AACvE,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,YAAY,YAAY,WAAW;AAAA,IACrD,MAAM;AAAA,IACN,SAAS,SAAS;AAAA,EACnB,GAAE,KAAK,IAAI,iBAAiB,CAAC,GAAG;AAAA,IAC/B,WAAW,QAAQ,WAAY;AAC7B,aAAO,EAAE,OAAO,OAAO,OAAO,OAAO,YAAY,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,QAChG,KAAK;AAAA,QACL,KAAK;AAAA,QACL,UAAU,OAAO;AAAA,MACzB,GAAS,KAAK,IAAI,UAAU,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,OAAO,SAAU,eAAextB,QAAO;AACvI,eAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,UAC/C,KAAK,SAAS,WAAW,aAAa;AAAA,QACvC,GAAE,CAAC,SAAS,cAAc,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,WAAW,KAAK,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,UACjJ,KAAK;AAAA,UACL,IAAI,SAAS,UAAU,aAAa;AAAA,UACpC,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,UAClD,SAAS,CAAC,KAAK,GAAG,QAAQ;AAAA,YACxB;AAAA,UACD,IAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,UAChD,MAAM;AAAA,UACN,cAAc,SAAS,aAAa,aAAa;AAAA,UACjD,iBAAiB,SAAS,eAAe,aAAa,KAAK;AAAA,UAC3D,iBAAiB,SAAS,YAAY,aAAa,IAAI,SAAS,aAAa,aAAa,IAAI;AAAA,UAC9F,iBAAiB,SAAS,YAAY,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,IAAI,IAAI,SAAS;AAAA,UAC9G,cAAc,OAAO,QAAQ;AAAA,UAC7B,gBAAgB,SAAS,eAAgB;AAAA,UACzC,iBAAiB,SAAS,gBAAgBA,MAAK;AAAA,UAC/C,SAAS;AAAA,QACV,GAAE,SAAS,aAAa,QAAQ,eAAeA,MAAK,GAAG;AAAA,UACtD,iBAAiB,SAAS,aAAa,aAAa;AAAA,UACpD,kBAAkB,SAAS,cAAc,aAAa;AAAA,UACtD,mBAAmB,SAAS,eAAe,aAAa;AAAA,QACzD,IAAG,CAACib,gBAAmB,OAAO,WAAW;AAAA,UACxC,SAAS,KAAK,GAAG,aAAa;AAAA,UAC9B,SAAS,gCAASwD,SAAQ,QAAQ;AAChC,mBAAO,SAAS,YAAY,QAAQ,aAAa;AAAA,UAClD,GAFQ;AAAA,UAGT,cAAc,gCAAS,aAAa,QAAQ;AAC1C,mBAAO,SAAS,iBAAiB,QAAQ,aAAa;AAAA,UACvD,GAFa;AAAA,UAGd,aAAa,gCAAS,YAAY,QAAQ;AACxC,mBAAO,SAAS,gBAAgB,QAAQ,aAAa;AAAA,UACtD,GAFY;AAAA,UAGb,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,eAAeze,MAAK,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,OAAO,gBAAgB,UAAW,GAAE,mBAAmB,KAAK,WAAW;AAAA,UACxJ,KAAK;AAAA,UACL,MAAM,SAAS,YAAY,eAAe,KAAK;AAAA,UAC/C,SAAS,KAAK,GAAG,UAAU;AAAA,UAC3B,QAAQ,SAAS,YAAY,eAAe,QAAQ;AAAA,UACpD,UAAU;AAAA,UACV,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,YAAY,eAAeA,MAAK,CAAC,GAAG,CAAC,OAAO,UAAU,YAAY,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,QAAQ,GAAG;AAAA,UACtK,KAAK;AAAA,UACL,MAAM,cAAc;AAAA,UACpB,SAAS,eAAe,KAAK,GAAG,UAAU,CAAC;AAAA,QACrD,GAAW,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC,KAAK,SAAS,YAAY,eAAe,MAAM,KAAK,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,UAClI,KAAK;AAAA,UACL,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,SAAS,YAAY,eAAe,MAAM,CAAC;AAAA,UAC1E,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,YAAY,eAAeA,MAAK,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGib,gBAAmB,QAAQ,WAAW;AAAA,UAC5I,IAAI,SAAS,eAAe,aAAa;AAAA,UACzC,SAAS,KAAK,GAAG,WAAW;AAAA,UAC5B,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,aAAa,eAAejb,MAAK,CAAC,GAAGE,kBAAgB,SAAS,aAAa,aAAa,CAAC,GAAG,IAAIqe,YAAU,GAAG,SAAS,YAAY,eAAe,OAAO,KAAK,UAAS,GAAI,mBAAmB,UAAU;AAAA,UAC9N,KAAK;AAAA,QACN,GAAE,CAAC,OAAO,UAAU,eAAe,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,WAAW,GAAG;AAAA,UAClH,KAAK;AAAA,UACL,QAAQ,SAAS,aAAa,aAAa;AAAA,UAC3C,SAAS,eAAe,KAAK,GAAG,aAAa,CAAC;AAAA,QAC/C,GAAE,MAAM,GAAG,CAAC,UAAU,OAAO,CAAC,MAAM,aAAa,YAAY,2BAA2B,WAAW;AAAA,UAClG,KAAK;AAAA,UACL,SAAS,KAAK,GAAG,aAAa;AAAA,UAC9B,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,eAAeve,MAAK,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIse,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,IAAI,GAAG;AAAA,UACjP,KAAK;AAAA,UACL,MAAM,cAAc;AAAA,UACpB,YAAY,SAAS,YAAY,eAAe,OAAO;AAAA,UACvD,OAAO,SAAS,aAAa,aAAa;AAAA,UAC1C,OAAO,SAAS,iBAAiB,eAAete,MAAK;AAAA,QACtD,GAAE,MAAM,GAAG,CAAC,QAAQ,cAAc,SAAS,OAAO,CAAC,EAAE,GAAG,IAAIqe,YAAU,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,aAAa,KAAK,UAAW,GAAE,YAAY,2BAA2B,WAAW;AAAA,UACvN,KAAK;AAAA,UACL,IAAI,SAAS,UAAU,aAAa,IAAI;AAAA,UACxC,MAAM;AAAA,UACN,SAAS,KAAK,GAAG,SAAS;AAAA,UAC1B,QAAQ,OAAO;AAAA,UACf,eAAe,OAAO;AAAA,UACtB,OAAO,cAAc;AAAA,UACrB,WAAW,OAAO;AAAA,UAClB,gBAAgB,OAAO;AAAA,UACvB,OAAO,OAAO,QAAQ;AAAA,UACtB,SAAS,SAAS,aAAa,aAAa,KAAK,SAAS,YAAY,aAAa;AAAA,UACnF,IAAI,KAAK;AAAA,UACT,UAAU,KAAK;AAAA,UACf,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,mBAAO,KAAK,MAAM,cAAc,MAAM;AAAA,UAClD;AAAA,UACU,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,mBAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,UACvD;AAAA,UACU,iBAAiB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC3D,mBAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,UACtD;AAAA,UACU,mBAAmB,SAAS,eAAe,aAAa;AAAA,UACxD,SAAS;AAAA,QACnB,GAAW,KAAK,IAAI,SAAS,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,SAAS,UAAU,iBAAiB,SAAS,aAAa,kBAAkB,SAAS,WAAW,MAAM,YAAY,iBAAiB,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAInD,YAAU,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,eAAe,WAAW,KAAK,aAAa,mBAAmB,MAAM,WAAW;AAAA,UAC/Y,KAAK;AAAA,UACL,IAAI,SAAS,UAAU,aAAa;AAAA,UACpC,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,UAClD,SAAS,CAAC,KAAK,GAAG,WAAW,GAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,UAC5E,MAAM;AAAA,UACN,SAAS;AAAA,QACV,GAAE,KAAK,IAAI,WAAW,CAAC,GAAG,MAAM,IAAIsD,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,MAC7F,CAAO,GAAG,GAAG,EAAG,GAAE,IAAIxD,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IACjE,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,IAAI,CAAC,SAAS,CAAC;AACpB;AAxHSwS;AA0HTrS,WAAS,SAASqS;AAEf,IAACjT,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWmS;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,SAAS,QAAQ,QAAQ,QAAQ,eAAe,aAAa;AAAA,EACrE,QAAQ;AAAA,EACR,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,6BAA6B;AAAA,EAC7B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM,gCAAS/pB,SAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,SAAS;AAAA,MACT,iBAAiB;AAAA,QACf,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,MACD,gBAAgB,CAAE;AAAA,MAClB,SAAS;AAAA,MACT,gBAAgB;AAAA,IACtB;AAAA,EACG,GAbK;AAAA,EAcN,OAAO;AAAA,IACL,aAAa,gCAASoc,UAASte,WAAU;AACvC,WAAK,KAAKA,aAAY;IACvB,GAFY;AAAA,IAGb,gBAAgB,gCAAS,eAAe,SAAS;AAC/C,UAAI,WAAW,OAAO,GAAG;AACvB,aAAK,yBAAwB;AAC7B,aAAK,mBAAkB;AAAA,MAC/B,WAAiB,CAAC,KAAK,SAAS;AACxB,aAAK,2BAA0B;AAC/B,aAAK,qBAAoB;AAAA,MAC1B;AAAA,IACF,GARe;AAAA,EASjB;AAAA,EACD,SAAS,gCAASsD,YAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AACtC,QAAI,KAAK,QAAQ;AACf,WAAK,gCAA+B;AAAA,IACrC;AAAA,EACF,GALQ;AAAA,EAMT,eAAe,gCAASG,iBAAgB;AACtC,SAAK,qBAAoB;AACzB,SAAK,2BAA0B;AAC/B,SAAK,kCAAiC;AACtC,QAAI,KAAK,aAAa,KAAK,YAAY;AACrC,aAAO,MAAM,KAAK,SAAS;AAAA,IAC5B;AACD,SAAK,SAAS;AACd,SAAK,YAAY;AAAA,EAClB,GATc;AAAA,EAUf,SAAS;AAAA,IACP,aAAa,gCAASwpB,aAAY5tB,OAAM,MAAM;AAC5C,aAAOA,QAAO,QAAQA,MAAK,IAAI,CAAC,IAAI;AAAA,IACrC,GAFY;AAAA,IAGb,cAAc,gCAAS6tB,cAAa7tB,OAAM;AACxC,aAAO,KAAK,YAAYA,OAAM,OAAO;AAAA,IACtC,GAFa;AAAA,IAGd,gBAAgB,gCAAS8tB,gBAAe9tB,OAAM;AAC5C,aAAO,KAAK,YAAYA,OAAM,UAAU;AAAA,IACzC,GAFe;AAAA,IAGhB,eAAe,gCAAS+tB,eAAc/tB,OAAM;AAC1C,aAAO,KAAK,YAAYA,OAAM,SAAS,MAAM;AAAA,IAC9C,GAFc;AAAA,IAGf,aAAa,gCAASguB,aAAYhuB,OAAM;AACtC,aAAO,WAAW,KAAK,YAAYA,OAAM,OAAO,CAAC;AAAA,IAClD,GAFY;AAAA,IAGb,iBAAiB,gCAAS,gBAAgBA,OAAM;AAC9C,aAAO,KAAK,YAAYA,OAAM,WAAW;AAAA,IAC1C,GAFgB;AAAA,IAGjB,wBAAwB,gCAAS,uBAAuB,eAAe;AACrE,aAAO,gBAAgB,KAAK,aAAa,cAAc,IAAI,IAAI;AAAA,IAChE,GAFuB;AAAA,IAGxB,uBAAuB,gCAAS,sBAAsB,eAAe;AACnE,aAAO,iBAAiB,WAAW,cAAc,KAAK;AAAA,IACvD,GAFsB;AAAA,IAGvB,QAAQ,gCAASsW,QAAO,OAAO;AAC7B,WAAK,UAAU,KAAK,KAAM,IAAG,KAAK,KAAK,KAAK;AAAA,IAC7C,GAFO;AAAA,IAGR,MAAM,gCAAS+Q,MAAK,OAAO;AACzB,WAAK,MAAM,aAAa;AACxB,WAAK,iBAAiB;AACtB,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,YAAM,KAAK,IAAI;AACf,WAAK,QAAQ,MAAM;AACnB,WAAK,QAAQ,MAAM;AACnB,WAAK,UAAU,KAAK,SAAU,IAAG,KAAK,UAAU;AAChD,YAAM,gBAAe;AACrB,YAAM,eAAc;AAAA,IACrB,GAdK;AAAA,IAeN,MAAM,gCAAS4G,QAAO;AACpB,WAAK,MAAM,aAAa;AACxB,WAAK,UAAU;AACf,WAAK,iBAAiB;AACtB,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AAAA,IACK,GATK;AAAA,IAUN,SAAS,gCAASlN,SAAQ,OAAO;AAC/B,WAAK,UAAU;AACf,WAAK,kBAAkB,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB;AAAA,QAChF,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GARQ;AAAA,IAST,QAAQ,gCAASC,QAAO,OAAO;AAC7B,WAAK,UAAU;AACf,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,WAAK,cAAc;AACnB,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB,GATO;AAAA,IAUR,WAAW,gCAAS5B,WAAU,OAAO;AACnC,UAAI,UAAU,MAAM,WAAW,MAAM;AACrC,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,aAAa,KAAK;AACvB;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,gBAAgB,KAAK;AAC1B;AAAA,QACF,KAAK;AACH,eAAK,UAAU,KAAK;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAEH;AAAA,QACF;AACE,cAAI,CAAC,WAAW,qBAAqB,MAAM,GAAG,GAAG;AAC/C,iBAAK,YAAY,OAAO,MAAM,GAAG;AAAA,UAClC;AACD;AAAA,MACH;AAAA,IACF,GA/CU;AAAA,IAgDX,cAAc,gCAAS,aAAa,OAAO;AACzC,UAAI,gBAAgB,MAAM,eACxB,UAAU,MAAM;AAClB,UAAI,QAAQ,aAAa,EAAG;AAC5B,UAAIlf,SAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc,WAC1B6I,SAAQ,cAAc;AACxB,UAAI,UAAU,WAAWA,MAAK;AAC9B,UAAImlB,kBAAiB,KAAK,eAAe,OAAO,SAAUzsB,IAAG;AAC3D,eAAOA,GAAE,cAAc,aAAaA,GAAE,cAAc;AAAA,MAC5D,CAAO;AACD,UAAI,SAAS;AACX,QAAAysB,gBAAe,KAAK,aAAa;AACjC,aAAK,iBAAiB;AAAA,MACvB;AACD,WAAK,kBAAkB;AAAA,QACrB,OAAOhuB;AAAA,QACP;AAAA,QACA;AAAA,MACR;AACM,WAAK,iBAAiBguB;AACtB,iBAAW,MAAM,KAAK,IAAI;AAAA,IAC3B,GAxBa;AAAA,IAyBd,aAAa,gCAASC,aAAY,OAAO;AACvC,UAAI,gBAAgB,MAAM;AAC1B,UAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,UAAI3Y,YAAW,KAAK,WAAW,aAAa;AAC5C,UAAIA,WAAU;AACZ,YAAItV,SAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc;AAC5B,aAAK,iBAAiB,KAAK,eAAe,OAAO,SAAUuB,IAAG;AAC5D,iBAAO,QAAQA,GAAE,OAAO,IAAI,WAAWA,GAAE,GAAG;AAAA,QACtD,CAAS;AACD,aAAK,kBAAkB;AAAA,UACrB,OAAOvB;AAAA,UACP;AAAA,UACA;AAAA,QACV;AACQ,cAAM,KAAK,IAAI;AAAA,MACvB,OAAa;AACL,kBAAU,KAAK,aAAa,KAAK,IAAI,KAAK;MAC3C;AAAA,IACF,GArBY;AAAA,IAsBb,kBAAkB,gCAASkuB,kBAAiB,OAAO;AACjD,WAAK,aAAa,KAAK;AAAA,IACxB,GAFiB;AAAA,IAGlB,iBAAiB,gCAASC,iBAAgB,OAAO;AAC/C,UAAI,KAAK,SAAS;AAChB,aAAK,uBAAuB,OAAO,MAAM,cAAc,KAAK;AAAA,MAC7D;AAAA,IACF,GAJgB;AAAA,IAKjB,gBAAgB,gCAAS7M,gBAAe,OAAO;AAC7C,UAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,0BAAyB;AACvI,WAAK,uBAAuB,OAAO,SAAS;AAC5C,YAAM,eAAc;AAAA,IACrB,GAJe;AAAA,IAKhB,cAAc,gCAASC,cAAa,OAAO;AACzC,UAAI,MAAM,QAAQ;AAChB,YAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,cAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,cAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,WAAC,WAAW,KAAK,aAAa;AAAA,YAC5B,eAAe;AAAA,YACf;AAAA,UACZ,CAAW;AAAA,QACF;AACD,aAAK,SAAS,KAAK;AACnB,cAAM,eAAc;AAAA,MAC5B,OAAa;AACL,YAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,yBAAwB;AACtI,aAAK,uBAAuB,OAAO,SAAS;AAC5C,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAjBa;AAAA,IAkBd,gBAAgB,gCAASC,gBAAe,OAAO;AAC7C,UAAI,QAAQ;AACZ,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,aAAa,KAAK,eAAe,KAAK,SAAUjgB,IAAG;AACrD,eAAOA,GAAE,QAAQ,cAAc;AAAA,MACvC,CAAO;AACD,UAAIsB,SAAO,QAAQ,cAAc,MAAM;AACvC,UAAI,CAACA,QAAM;AACT,aAAK,kBAAkB;AAAA,UACrB,OAAO;AAAA,UACP,WAAW,aAAa,WAAW,YAAY;AAAA,QACzD;AACQ,aAAK,cAAc;AACnB,aAAK,eAAe,KAAK;AAAA,MAC1B;AACD,WAAK,iBAAiB,KAAK,eAAe,OAAO,SAAUtB,IAAG;AAC5D,eAAOA,GAAE,cAAc,MAAM,gBAAgB;AAAA,MACrD,CAAO;AACD,YAAM,eAAc;AAAA,IACrB,GAnBe;AAAA,IAoBhB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,UAAI,SAAS;AACX,aAAK,aAAa;AAAA,UAChB,eAAe;AAAA,UACf;AAAA,QACV,CAAS;AACD,aAAK,kBAAkB;AAAA,UACrB,OAAO;AAAA,UACP,WAAW,cAAc;AAAA,QACnC;AACQ,aAAK,cAAc;AACnB,aAAK,eAAe,KAAK;AAAA,MAC1B;AACD,YAAM,eAAc;AAAA,IACrB,GAhBgB;AAAA,IAiBjB,WAAW,gCAASkgB,WAAU,OAAO;AACnC,WAAK,uBAAuB,OAAO,KAAK,mBAAoB;AAC5D,YAAM,eAAc;AAAA,IACrB,GAHU;AAAA,IAIX,UAAU,gCAASC,UAAS,OAAO;AACjC,WAAK,uBAAuB,OAAO,KAAK,kBAAmB;AAC3D,YAAM,eAAc;AAAA,IACrB,GAHS;AAAA,IAIV,YAAY,gCAASG,YAAW,OAAO;AACrC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,UAAU,WAAW,KAAK,MAAM,UAAW,OAAO,GAAG,OAAO,KAAK,cAAc,GAAG,IAAK,CAAC;AAC5F,YAAI,gBAAgB,WAAW,WAAW,SAAS,8BAA8B;AACjF,wBAAgB,cAAc,MAAK,IAAK,WAAW,QAAQ;AAC3D,YAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,SAAC,YAAY,KAAK,gBAAgB,QAAQ,KAAK,0BAAyB;AAAA,MACzE;AACD,YAAM,eAAc;AAAA,IACrB,GAVW;AAAA,IAWZ,YAAY,gCAASC,YAAW,OAAO;AACrC,WAAK,WAAW,KAAK;AAAA,IACtB,GAFW;AAAA,IAGZ,aAAa,gCAASsM,aAAY,OAAO;AACvC,WAAK,KAAI;AACT,OAAC,KAAK,UAAU,KAAK,gBAAgB,QAAQ,KAAK,0BAAyB;AAC3E,YAAM,eAAc;AAAA,IACrB,GAJY;AAAA,IAKb,UAAU,gCAASf,UAAS,OAAO;AACjC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,SAAC,WAAW,KAAK,aAAa;AAAA,UAC5B,eAAe;AAAA,UACf;AAAA,QACV,CAAS;AAAA,MACF;AACD,WAAK,KAAI;AAAA,IACV,GAVS;AAAA,IAWV,SAAS,gCAAStnB,SAAQ,IAAI;AAC5B,eAAS,IAAI;AAAA,QACX,UAAU;AAAA,MAClB,CAAO;AACD,WAAK,SAAQ;AACb,UAAI,KAAK,YAAY;AACnB,eAAO,IAAI,QAAQ,IAAI,KAAK,aAAa,KAAK,UAAU,OAAO,OAAO,IAAI;AAAA,MAC3E;AAAA,IACF,GARQ;AAAA,IAST,cAAc,gCAAS,eAAe;AACpC,WAAK,yBAAwB;AAC7B,WAAK,mBAAkB;AACvB,WAAK,MAAM,MAAM;AACjB,YAAM,KAAK,IAAI;AAAA,IAChB,GALa;AAAA,IAMd,SAAS,gCAAS,UAAU;AAC1B,WAAK,MAAM,MAAM;AACjB,WAAK,YAAY;AAAA,IAClB,GAHQ;AAAA,IAIT,cAAc,gCAAS,aAAa,IAAI;AACtC,UAAI,KAAK,YAAY;AACnB,eAAO,MAAM,EAAE;AAAA,MAChB;AACD,WAAK,2BAA0B;AAC/B,WAAK,qBAAoB;AAAA,IAC1B,GANa;AAAA,IAOd,UAAU,gCAAS,WAAW;AAC5B,UAAI,OAAO,KAAK,QAAQ;AACxB,UAAI,MAAM,KAAK,QAAQ;AACvB,UAAIsQ,SAAQ,KAAK,UAAU,eAAe,KAAK,UAAU,cAAc,2BAA2B,KAAK,SAAS;AAChH,UAAI,SAAS,KAAK,UAAU,eAAe,KAAK,UAAU,eAAe,4BAA4B,KAAK,SAAS;AACnH,UAAI,WAAW;AAGf,UAAI,OAAOA,SAAQ,SAAS,KAAK,aAAa,SAAS,OAAO;AAC5D,gBAAQA;AAAA,MACT;AAGD,UAAI,MAAM,SAAS,SAAS,KAAK,YAAY,SAAS,QAAQ;AAC5D,eAAO;AAAA,MACR;AAGD,UAAI,OAAO,SAAS,KAAK,YAAY;AACnC,eAAO,SAAS,KAAK;AAAA,MACtB;AAGD,UAAI,MAAM,SAAS,KAAK,WAAW;AACjC,cAAM,SAAS,KAAK;AAAA,MACrB;AACD,WAAK,UAAU,MAAM,OAAO,OAAO;AACnC,WAAK,UAAU,MAAM,MAAM,MAAM;AAAA,IAClC,GA5BS;AAAA,IA6BV,0BAA0B,gCAASgY,4BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,qBAAqB,OAAO,aAAa,CAAC,OAAO,UAAU,SAAS,MAAM,MAAM;AACpF,cAAI,kBAAkB,OAAO,UAAU,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,UAAU,OAAO,OAAO,SAAS,MAAM,MAAM,MAAM;AACtI,cAAI,sBAAsB,iBAAiB;AACzC,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAZyB;AAAA,IAa1B,4BAA4B,gCAASC,8BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,oBAAoB,gCAAStM,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,WAAY;AAChC,cAAI,OAAO,WAAW,CAAC,iBAAiB;AACtC,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAVmB;AAAA,IAWpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,iCAAiC,gCAAS,kCAAkC;AAC1E,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,6BAA6B;AACrC,aAAK,8BAA8B,SAAU,OAAO;AAClD,gBAAM,WAAW,KAAK,OAAO,KAAK,KAAK;AAAA,QACjD;AACQ,iBAAS,iBAAiB,eAAe,KAAK,2BAA2B;AAAA,MAC1E;AAAA,IACF,GARgC;AAAA,IASjC,mCAAmC,gCAAS,oCAAoC;AAC9E,UAAI,KAAK,6BAA6B;AACpC,iBAAS,oBAAoB,eAAe,KAAK,2BAA2B;AAC5E,aAAK,8BAA8B;AAAA,MACpC;AAAA,IACF,GALkC;AAAA,IAMnC,eAAe,gCAAS,cAAc,eAAe;AACnD,UAAI;AACJ,aAAO,KAAK,YAAY,aAAa,OAAO,wBAAwB,KAAK,uBAAuB,aAAa,OAAO,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,kBAAmB,EAAC,WAAW,KAAK,YAAY,kBAAmB;AAAA,IAClQ,GAHc;AAAA,IAIf,aAAa,gCAAS,YAAY,eAAe;AAC/C,aAAO,CAAC,CAAC,iBAAiB,CAAC,KAAK,eAAe,cAAc,IAAI,KAAK,CAAC,KAAK,gBAAgB,cAAc,IAAI,KAAK,KAAK,cAAc,cAAc,IAAI;AAAA,IACzJ,GAFY;AAAA,IAGb,qBAAqB,gCAAS,oBAAoB,eAAe;AAC/D,aAAO,KAAK,YAAY,aAAa,KAAK,KAAK,WAAW,aAAa;AAAA,IACxE,GAFoB;AAAA,IAGrB,YAAY,gCAAS1M,YAAW,eAAe;AAC7C,aAAO,KAAK,eAAe,KAAK,SAAUhU,IAAG;AAC3C,eAAOA,GAAE,QAAQ,cAAc;AAAA,MACvC,CAAO;AAAA,IACF,GAJW;AAAA,IAKZ,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALmB;AAAA,IAMpB,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,SAAS;AACb,aAAO,cAAc,KAAK,cAAc,SAAU,eAAe;AAC/D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALkB;AAAA,IAMnB,mBAAmB,gCAAS,kBAAkBvB,QAAO;AACnD,UAAI,SAAS;AACb,UAAI,mBAAmBA,SAAQ,KAAK,aAAa,SAAS,IAAI,KAAK,aAAa,MAAMA,SAAQ,CAAC,EAAE,UAAU,SAAU,eAAe;AAClI,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmBA,SAAQ,IAAIA;AAAA,IAC/D,GANkB;AAAA,IAOnB,mBAAmB,gCAAS,kBAAkBA,QAAO;AACnD,UAAI,SAAS;AACb,UAAI,mBAAmBA,SAAQ,IAAI,cAAc,KAAK,aAAa,MAAM,GAAGA,MAAK,GAAG,SAAU,eAAe;AAC3G,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmBA;AAAA,IACnD,GANkB;AAAA,IAOnB,uBAAuB,gCAAS,wBAAwB;AACtD,UAAI,SAAS;AACb,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,OAAO,oBAAoB,aAAa;AAAA,MACvD,CAAO;AAAA,IACF,GALsB;AAAA,IAMvB,2BAA2B,gCAAS,4BAA4B;AAC9D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,mBAAkB,IAAK;AAAA,IACxD,GAH0B;AAAA,IAI3B,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,kBAAiB,IAAK;AAAA,IACvD,GAHyB;AAAA,IAI1B,aAAa,gCAAS,YAAY,OAAO,OAAO;AAC9C,UAAI,UAAU;AACd,WAAK,eAAe,KAAK,eAAe,MAAM;AAC9C,UAAI,YAAY;AAChB,UAAI,UAAU;AACd,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,oBAAY,KAAK,aAAa,MAAM,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACjG,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AACD,oBAAY,cAAc,KAAK,KAAK,aAAa,MAAM,GAAG,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACvH,iBAAO,QAAQ,cAAc,aAAa;AAAA,QAC3C,KAAI,YAAY,KAAK,gBAAgB;AAAA,MAC9C,OAAa;AACL,oBAAY,KAAK,aAAa,UAAU,SAAU,eAAe;AAC/D,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AAAA,MACF;AACD,UAAI,cAAc,IAAI;AACpB,kBAAU;AAAA,MACX;AACD,UAAI,cAAc,MAAM,KAAK,gBAAgB,UAAU,IAAI;AACzD,oBAAY,KAAK;MAClB;AACD,UAAI,cAAc,IAAI;AACpB,aAAK,uBAAuB,OAAO,SAAS;AAAA,MAC7C;AACD,UAAI,KAAK,eAAe;AACtB,qBAAa,KAAK,aAAa;AAAA,MAChC;AACD,WAAK,gBAAgB,WAAW,WAAY;AAC1C,gBAAQ,cAAc;AACtB,gBAAQ,gBAAgB;AAAA,MACzB,GAAE,GAAG;AACN,aAAO;AAAA,IACR,GAlCY;AAAA,IAmCb,wBAAwB,gCAAS,uBAAuB,OAAOA,QAAO;AACpE,UAAI,KAAK,gBAAgB,UAAUA,QAAO;AACxC,aAAK,gBAAgB,QAAQA;AAC7B,aAAK,aAAY;AAAA,MAClB;AAAA,IACF,GALuB;AAAA,IAMxB,cAAc,gCAAS6c,gBAAe;AACpC,UAAI7c,SAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAIyB,MAAKzB,WAAU,KAAK,GAAG,OAAO,KAAK,IAAI,GAAG,EAAE,OAAOA,MAAK,IAAI,KAAK;AACrE,UAAI,UAAU,WAAW,KAAK,MAAM,UAAW,OAAOyB,KAAI,IAAK,CAAC;AAChE,UAAI,SAAS;AACX,gBAAQ,kBAAkB,QAAQ,eAAe;AAAA,UAC/C,OAAO;AAAA,UACP,QAAQ;AAAA,QAClB,CAAS;AAAA,MACF;AAAA,IACF,GAVa;AAAA,IAWd,sBAAsB,gCAAS,qBAAqBoH,QAAO;AACzD,UAAI,UAAU;AACd,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAI,SAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACjF,UAAI,YAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACpF,UAAI0lB,kBAAiB;AACrB,MAAA1lB,UAASA,OAAM,QAAQ,SAAU/I,OAAME,QAAO;AAC5C,YAAI,OAAO,cAAc,KAAK,YAAY,MAAM,MAAMA;AACtD,YAAI,UAAU;AAAA,UACZ,MAAMF;AAAA,UACN,OAAOE;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,gBAAQ,OAAO,IAAI,QAAQ,qBAAqBF,MAAK,OAAO,QAAQ,GAAG,SAAS,GAAG;AACnF,QAAAyuB,gBAAe,KAAK,OAAO;AAAA,MACnC,CAAO;AACD,aAAOA;AAAA,IACR,GApBqB;AAAA,IAqBtB,cAAc,gCAAS,aAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,SAAS,gCAASvL,SAAQ,IAAI;AAC5B,WAAK,OAAO,KAAK,GAAG,MAAM;AAAA,IAC3B,GAFQ;AAAA,EAGV;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,qBAAqB,KAAK,SAAS,CAAE;AAAA,IAClD,GAFe;AAAA,IAGhB,cAAc,gCAAS,eAAe;AACpC,UAAI,UAAU;AACd,UAAI,gBAAgB,KAAK,eAAe,KAAK,SAAUzhB,IAAG;AACxD,eAAOA,GAAE,QAAQ,QAAQ,gBAAgB;AAAA,MACjD,CAAO;AACD,aAAO,gBAAgB,cAAc,QAAQ,KAAK;AAAA,IACnD,GANa;AAAA,IAOd,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,gBAAgB,UAAU,KAAK,GAAG,OAAO,KAAK,EAAE,EAAE,OAAO,WAAW,KAAK,gBAAgB,SAAS,IAAI,MAAM,KAAK,gBAAgB,YAAY,IAAI,GAAG,EAAE,OAAO,KAAK,gBAAgB,KAAK,IAAI;AAAA,IACxM,GAFe;AAAA,EAGjB;AAAA,EACD,YAAY;AAAA,IACV,gBAAgB4Z;AAAAA,IAChB,QAAQ6I;AAAAA,EACT;AACH;AAEA,SAASthB,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,4BAA4B,iBAAiB,gBAAgB;AACjE,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAS,GAAI,YAAY,mBAAmB;AAAA,IACjD,UAAU,KAAK;AAAA,EACnB,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,YAAY,WAAW;AAAA,QACzC,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,QACvB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,MACxB,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,MAAM,WAAW,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YACzE,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,SAAS,KAAK,GAAG,MAAM;AAAA,UACnC,GAAa,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,YAAY,2BAA2B;AAAA,YAC7D,KAAK,SAAS;AAAA,YACd,IAAI,MAAM,KAAK;AAAA,YACf,SAAS,eAAe,KAAK,GAAG,UAAU,CAAC;AAAA,YAC3C,MAAM;AAAA,YACN,MAAM;AAAA,YACN,UAAU,KAAK;AAAA,YACf,oBAAoB;AAAA,YACpB,yBAAyB,MAAM,UAAU,SAAS,iBAAiB;AAAA,YACnE,QAAQ,MAAM;AAAA,YACd,eAAe,MAAM,UAAU,SAAS,iBAAiB;AAAA,YACzD,OAAO,SAAS;AAAA,YAChB,WAAW,KAAK;AAAA,YAChB,gBAAgB,MAAM;AAAA,YACtB,mBAAmB,KAAK;AAAA,YACxB,cAAc,KAAK;AAAA,YACnB,OAAO;AAAA,YACP,SAAS,MAAM;AAAA,YACf,IAAI,KAAK;AAAA,YACT,UAAU,KAAK;AAAA,YACf,SAAS,SAAS;AAAA,YAClB,QAAQ,SAAS;AAAA,YACjB,WAAW,SAAS;AAAA,YACpB,aAAa,SAAS;AAAA,YACtB,kBAAkB,SAAS;AAAA,YAC3B,iBAAiB,SAAS;AAAA,UAC3B,GAAE,MAAM,GAAG,CAAC,MAAM,SAAS,YAAY,yBAAyB,UAAU,iBAAiB,SAAS,aAAa,kBAAkB,mBAAmB,cAAc,WAAW,MAAM,YAAY,WAAW,UAAU,aAAa,eAAe,oBAAoB,iBAAiB,CAAC,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,QAC1U,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,gBAAgB,WAAW,cAAc,CAAC,CAAC;AAAA,IACpE,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,GAAG,CAAC,UAAU,CAAC;AACpB;AApDSA;AAsDT6X,SAAO,SAAS7X;;;;;;;;;;;;ACx7BhB,UAAM,QAAQ;AAId,UAAMD,QAAO;AACP,uBAAa,IAAY,MAAM,UAAU;AACzC,qBAAW,IAAI,IAAI;AAEzB,UAAM,mBAAmB,6BAAM;AACpB,sBAAO,IAAI;IAAK,GADF;AAGzB,UAAM,gBAAgB,6BAAM;AACrB,MAAAA,MAAA,QAAQ,WAAW,KAAK;AAAA,OADT;AAGtB;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,CAAC,WAAW;AACV,YAAI,QAAQ;AACV,qBAAW,QAAQ,MAAM;AACzB,mBAAS,MAAM;AACT,iBAAC,SAAS,MAAO;AACrB,kBAAM,WAAW,WAAW,MAAM,SAAS,GAAG,IAC1C,WAAW,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,IACjD,WAAW;AACf,kBAAM5C,SAAQ;AACd,kBAAM,MAAM,SAAS;AACf,iCAAe,SAAS,MAAM;AACvB,6CAAoBA,QAAO,GAAG;AAAA,WAC5C;AAAA,QACH;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAK;AAAA;AAEpB,UAAM,SAAS;AAAA,MACb,SAAS,wBAAC,OAAoB,GAAG,MAAM,GAA9B;AAAA,IAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpEzC,SAASma,kBAAgB,GAAG;AAC1B,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAO;AAC/B;AAFSA;ACAT,SAASC,wBAAsB,GAAG,GAAG;AACnC,MAAItV,KAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAC/F,MAAI,QAAQA,IAAG;AACb,QAAI/C,IACF,GACA,GACA,GACA,IAAI,CAAE,GACN,IAAI,MACJ,IAAI;AACN,QAAI;AACF,UAAI,KAAK+C,KAAIA,GAAE,KAAK,CAAC,GAAG,MAAM,MAAM,GAAG;AACrC,YAAI,OAAOA,EAAC,MAAMA,GAAG;AACrB,YAAI;AAAA,MACZ,MAAa,QAAO,EAAE,KAAK/C,KAAI,EAAE,KAAK+C,EAAC,GAAG,UAAU,EAAE,KAAK/C,GAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,KAAG;AAAA,IACxF,SAAQwV,IAAG;AACV,UAAI,MAAI,IAAIA;AAAA,IAClB,UAAc;AACR,UAAI;AACF,YAAI,CAAC,KAAK,QAAQzS,GAAE,QAAQ,MAAM,IAAIA,GAAE,QAAQ,EAAG,GAAE,OAAO,CAAC,MAAM,GAAI;AAAA,MAC/E,UAAgB;AACR,YAAI,EAAG,OAAM;AAAA,MACd;AAAA,IACF;AACD,WAAO;AAAA,EACR;AACH;AA1BSsV;ACAT,SAAS5C,oBAAkB,GAAG,GAAG;AAC/B,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AACtC,WAASzV,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AACpD,SAAO;AACT;AAJSyV;ACCT,SAASH,8BAA4B,GAAG,GAAG;AACzC,MAAI,GAAG;AACL,QAAI,YAAY,OAAO,EAAG,QAAOsX,oBAAiB,GAAG,CAAC;AACtD,QAAI7pB,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AACvC,WAAO,aAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAI6pB,oBAAiB,GAAG,CAAC,IAAI;AAAA,EACrN;AACH;AANStX;ACDT,SAASgD,qBAAmB;AAC1B,QAAM,IAAI,UAAU,2IAA2I;AACjK;AAFSA;ACIT,SAASH,iBAAe,GAAGnY,IAAG;AAC5B,SAAO6sB,kBAAe,CAAC,KAAKC,wBAAqB,GAAG9sB,EAAC,KAAK+sB,8BAA2B,GAAG/sB,EAAC,KAAKgtB,mBAAe;AAC/G;AAFS7U;;;ACJT;AACA,OAAO,eAAe8U,QAAS,cAAc,EAAE,OAAO,KAAI,CAAE;AAC5D,IAAY,SAAAA,OAAA,OAAG;AACf,SAAS,KAAK,QAAQ,IAAI;AACtB,MAAI,OAAO,GAAG,MAAM,WAAW,GAAG,UAAUruB,WAAU,GAAG;AACzD,SAAO,iBAAiB,MAAM,UAAUA,QAAO;AAC/C,SAAO,gCAASsuB,UAAS;AACrB,WAAO,oBAAoB,MAAM,UAAUtuB,QAAO;AAAA,EAC1D,GAFW;AAGX;AANS;AAOT,SAAAquB,OAAA,OAAe;;ACVf;AACA,IAAI,WAAYnc,kBAAQA,eAAK,YAAa,WAAY;AAClD,aAAW,OAAO,UAAU,SAAS/N,IAAG;AACpC,aAAS,GAAG,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAI,GAAG,KAAK;AACjD,UAAI,UAAU,CAAC;AACf,eAASpD,MAAK,EAAG,KAAI,OAAO,UAAU,eAAe,KAAK,GAAGA,EAAC;AAC1D,QAAAoD,GAAEpD,EAAC,IAAI,EAAEA,EAAC;AAAA,IACjB;AACD,WAAOoD;AAAA,EACf;AACI,SAAO,SAAS,MAAM,MAAM,SAAS;AACzC;AACA,OAAO,eAAeoqB,WAAS,cAAc,EAAE,OAAO,KAAI,CAAE;AAC5D,IAAe,YAAAA,UAAA,UAAG;AAClB,IAAI,SAASC;AACb,SAAS,UAAUjwB,QAAO;AACtB,MAAI,OAAOA,WAAU,aAAa;AAC9B,WAAO;AAAA,EACV;AACD,MAAI,OAAOA,WAAU,WAAW;AAC5B,WAAO;AAAA,MACH,SAASA;AAAA,IACrB;AAAA,EACK;AACD,SAAOA;AACX;AAVS;AAWT,SAAS,WAAW,UAAU,eAAe;AACzC,MAAI,iBAAiB,MAAM;AACvB,WAAO;AAAA,EACV;AACD,MAAI,UAAU,SAAS,SAAS,IAAI,QAAQ,GAAG,EAAE,SAAS,SAAS,SAAS,IAAI,UAAU,aAAa,CAAC,GAAG,UAAU,SAAS,OAAO,CAAC,EAAC,CAAE;AACzI,SAAO;AACX;AANS;AAOT,SAAS,QAAQ,QAAQ,UAAU,eAAe;AAC9C,MAAI,UAAU,SAAS,IAAI,SAAU,UAAU;AAC3C,QAAI,UAAU,WAAW,UAAU,aAAa;AAChD,YAAQ,GAAG,OAAO,MAAM,QAAQ,OAAO;AAAA,EAC/C,CAAK;AACD,SAAO,gCAAS,YAAY;AACxB,YAAQ,QAAQ,SAAU+vB,SAAQ;AAAE,aAAOA,QAAM;AAAA,IAAG,CAAE;AAAA,EAC9D,GAFW;AAGX;AARS;AAST,YAAAC,UAAA,UAAkB;AAAA;AC1ClB;AACA,SAAO,eAAc,SAAU,cAAc,EAAE,OAAO,KAAI,CAAE;AAC5D,UAAkB,yBAAe;AACjC,MAAIF,UAASG;AACb,SAAO,eAAe,SAAS,QAAQ,EAAE,YAAY,MAAM,KAAK,kCAAY;AAAE,WAAOH,QAAO;AAAA,EAAK,GAAjC,OAAqC;AACrG,MAAI,aAAaI;AACjB,SAAO,eAAe,SAAS,WAAW,EAAE,YAAY,MAAM,KAAK,kCAAY;AAAE,WAAO,WAAW;AAAA,EAAQ,GAAxC,OAA4C;;;ACJxG,IAAI,wBAAwB;ACD5B,SAAS,kBAAkB,QAAQ;AACxC,SAAO,kBAAkB,WAAW,OAAO,aAAa,qBAAqB;AAC/E;AAFgB;ACCT,SAAS,mCAAmC,QAAQ;AAEzD,MAAI,wBAAwB,SAAS,kBAAkB,OAAO,GAAG,OAAO,CAAC,GACvE,yBAAyBlV,iBAAe,uBAAuB,CAAC,GAChE,MAAM,uBAAuB,CAAC,GAC9B,SAAS,uBAAuB,CAAC;AACnC,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACR;AACD,MAAI,kBAAkB,GAAG,GAAG;AAC1B,WAAO,WAAW,QAAQ,WAAW,SAAS,SAAS;AAAA,EACxD;AACD,SAAO;AACT;AAbgB;ACFhB,SAAShC,UAAQ,GAAG;AAClB;AAEA,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUN,IAAG;AAChG,WAAO,OAAOA;AAAA,EACf,IAAG,SAAUA,IAAG;AACf,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EACtH,GAAKM,UAAQ,CAAC;AACd;AARSA;ACCT,SAAS,YAAYpT,IAAG,GAAG;AACzB,MAAI,YAAYoT,UAAQpT,EAAC,KAAK,CAACA,GAAG,QAAOA;AACzC,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAC5B,MAAI,WAAW/C,IAAG;AAChB,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAChC,QAAI,YAAYoT,UAAQ,CAAC,EAAG,QAAO;AACnC,UAAM,IAAI,UAAU,8CAA8C;AAAA,EACnE;AACD,UAAQ,aAAa,IAAI,SAAS,QAAQpT,EAAC;AAC7C;AATS;ACCT,SAAS,cAAcA,IAAG;AACxB,MAAI,IAAI,YAAYA,IAAG,QAAQ;AAC/B,SAAO,YAAYoT,UAAQ,CAAC,IAAI,IAAI,IAAI;AAC1C;AAHS;ACDT,SAASM,kBAAgBzW,IAAG,GAAG+C,IAAG;AAChC,UAAQ,IAAI,cAAc,CAAC,MAAM/C,KAAI,OAAO,eAAeA,IAAG,GAAG;AAAA,IAC/D,OAAO+C;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACX,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AACjB;AAPSyW;ACCF,IAAI,YAAY;ACDvB,SAASmB,UAAQ5X,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAtP6U;AACT,SAASC,gBAAc7X,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI6U,UAAQ,OAAO7U,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAEiB,wBAAgBzW,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI6U,UAAQ,OAAO7U,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAA9a6X;AAIT,IAAI,eAAe;AACnB,IAAI,mBAAmB,eAAe;AAWtC,SAAS,oBAAoB,OAAO;AAClC,SAAO;AAAA,IACL,GAAG,KAAK,MAAM,MAAM,CAAC;AAAA,IACrB,GAAG,KAAK,MAAM,MAAM,CAAC;AAAA,EACzB;AACA;AALS;AAWT,SAAS,2BAA2B,OAAO;AACzC,SAAO;AAAA,IACL,GAAG,MAAM,IAAI;AAAA,IACb,GAAG,MAAM,IAAI;AAAA,EACjB;AACA;AALS;AAWT,SAAS,+BAA+B,OAAO;AAC7C,SAAO;AAAA,IACL,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC;AAAA,IACtB,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC;AAAA,EAC1B;AACA;AALS;AAWT,SAAS,8BAA8B,OAAO;AAC5C,SAAO;AAAA,IACL,GAAG,KAAK,IAAI,MAAM,GAAG,OAAO,aAAa,YAAY;AAAA,IACrD,GAAG,KAAK,IAAI,MAAM,GAAG,OAAO,cAAc,YAAY;AAAA,EAC1D;AACA;AALS;AAUT,SAAS,mBAAmB,MAAM;AAChC,MAAI,SAAS,KAAK;AAClB,MAAI,QAAQ,8BAA8B,+BAA+B,2BAA2B,oBAAoB,MAAM,CAAC,CAAC,CAAC;AAIjI,SAAO,QAAQ,SAAS;AAAA,IACtB,GAAG,MAAM;AAAA,IACT,GAAG,MAAM;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,EACZ,CAAG;AACH;AAZS;AAaT,SAAS,cAAc,OAAO;AAC5B,MAAI,aAAa,MAAM;AACvB,SAAO;AAAA,IACL,MAAM,GAAG,OAAO,WAAW,MAAM,IAAI;AAAA,IACrC,KAAK,GAAG,OAAO,WAAW,KAAK,IAAI;AAAA,IACnC,OAAO,GAAG,OAAO,WAAW,OAAO,IAAI;AAAA,IACvC,QAAQ,GAAG,OAAO,WAAW,QAAQ,IAAI;AAAA,EAC7C;AACA;AARS;AAST,SAAS,SAAS,OAAO;AACvB,MAAI,SAAS,MAAM,QACjB,aAAa,MAAM;AACrB;AAAA;AAAA,IAEE,OAAO,KAAK,WAAW,KAAK,OAAO,KAAK,WAAW,IAAI,WAAW;AAAA,IAElE,OAAO,KAAK,WAAW,KAAK,OAAO,KAAK,WAAW,IAAI,WAAW;AAAA;AAEtE;AATS;AA2CT,SAAS,cAAc,OAAO;AAC5B,MAAI,UAAU,MAAM;AACpB,MAAI,UAAU,SAAS,cAAc,KAAK;AAC1C,UAAQ,aAAa,uBAAuB,MAAM;AAGlD,MAAI,aAAa,mBAAmB;AAAA,IAClC,QAAQ;AAAA,EACZ,CAAG;AACD,SAAO,OAAO,QAAQ,OAAOA,gBAAcA,gBAAc;AAAA;AAAA;AAAA;AAAA;AAAA,IAKvD,iBAAiB;AAAA,IACjB,UAAU;AAAA;AAAA,IAEV,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,WAAW;AAAA,EACZ,GAAE,cAAc;AAAA,IACf;AAAA,EACJ,CAAG,CAAC,GAAG,IAAI;AAAA;AAAA;AAAA,IAGP,eAAe;AAAA;AAAA;AAAA;AAAA,IAIf,QAAQ;AAAA,EACT,EAAC;AACF,WAAS,KAAK,YAAY,OAAO;AAQjC,MAAI,oBAAoBnP,KAAI,KAAC,QAAQ;AAAA,IACnC,MAAM;AAAA,IACN,UAAU,gCAAS,SAAS,OAAO;AACjC,UAAI,SAAS;AAAA,QACX,GAAG,MAAM;AAAA,QACT,GAAG,MAAM;AAAA,MACjB;AACM,mBAAa,mBAAmB;AAAA,QAC9B;AAAA,MACR,CAAO;AACD,aAAO,OAAO,QAAQ,OAAO,cAAc;AAAA,QACzC;AAAA,MACD,EAAC;AAAA,IACH,GAXS;AAAA;AAAA,IAaV,SAAS;AAAA,MACP,SAAS;AAAA,IACV;AAAA,EACL,CAAG;AACD,SAAO,gCAAS,OAAO,OAAO;AAC5B,QAAI,UAAU,MAAM;AAEpB;AAIA,QAAI,SAAS;AAAA,MACX,QAAQ;AAAA,MACR;AAAA,IACN,CAAK,GAAG;AACF,cAAQ,OAAM;AACd;AAAA,IACD;AACD,aAAS,UAAU;AACjB;AACA,cAAQ,OAAM;AAAA,IACf;AAHQ;AAIT,QAAI,uBAAuBgI,aAAQ,QAAQ;AAAA,MAAC;AAAA,QAC1C,MAAM;AAAA,QACN,UAAU;AAAA,MAChB;AAAA,MAAO;AAAA,QACD,MAAM;AAAA,QACN,UAAU;AAAA,MAChB;AAAA,MAAO;AAAA,QACD,MAAM;AAAA,QACN,UAAU;AAAA,MAChB;AAAA,MAAO;AAAA,QACD,MAAM;AAAA,QACN,UAAU;AAAA,MACX;AAAA;AAAA,MAED;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,MACX;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,MAChB;AAAA,MAAO;AAAA,QACD,MAAM;AAAA,QACN,UAAU;AAAA,MACX;AAAA;AAAA;AAAA,IAIL,GAAO;AAAA;AAAA,MAED,SAAS;AAAA,IACf,CAAK;AAAA,EACL,GAtDS;AAuDT;AAjHS;AAkHF,SAAS,kBAAkB;AAChC,MAAI,oBAAoB;AACxB,WAAS4c,cAAa;AAIpB,wBAAoB;AACpB,WAAO5kB,UAAK,QAAQ;AAAA,MAClB,MAAM;AAAA,MACN,UAAU,gCAAS,SAAS,OAAO;AACjC,4BAAoB;AAAA,UAClB,GAAG,MAAM;AAAA,UACT,GAAG,MAAM;AAAA,QACnB;AAAA,MACO,GALS;AAAA;AAAA;AAAA,MAQV,SAAS;AAAA,QACP,SAAS;AAAA,MACV;AAAA,IACP,CAAK;AAAA,EACF;AAnBQ,SAAA4kB,aAAA;AAoBT,WAAS,oBAAoB;AAC3B,QAAI,SAAS;AACb,WAAO,gCAAS,YAAY,OAAO;AACjC,UAAI,YAAY,MAAM,WACpB,UAAU,MAAM;AAGlB,UAAI,cAAc,eAAe;AAC/B,YAAI;AACJ,YAAI,QAAQ,QAAQ,SAAS,QAAQ;AAIrC,YAAI,WAAW,qBAAqB,uBAAuB,QAAQ,uBAAuB,SAAS,qBAAqB;AAAA,UACtH,GAAG,MAAM;AAAA,UACT,GAAG,MAAM;AAAA,QACnB;AAKQ,iBAAS,cAAc;AAAA,UACrB;AAAA,QACV,CAAS;AAAA,MACF;AACD,UAAI,cAAc,UAAU;AAC1B,YAAI;AACJ,YAAI,SAAS,QAAQ,SAAS,QAAQ;AACtC,SAAC,UAAU,YAAY,QAAQ,YAAY,UAAU,QAAQ;AAAA,UAC3D,SAAS;AAAA,YACP,GAAG,OAAO;AAAA,YACV,GAAG,OAAO;AAAA,UACX;AAAA,QACX,CAAS;AACD,iBAAS;AAGT,4BAAoB;AAAA,MACrB;AAAA,IACP,GArCW;AAAA,EAsCR;AAxCQ;AAyCT,SAAO;AAAA,IACL,YAAYA;AAAA,IACZ;AAAA,EACJ;AACA;AAnEgB;AC/OhB,SAASjX,qBAAmB,GAAG;AAC7B,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOuW,oBAAiB,CAAC;AACjD;AAFSvW;ACDT,SAASC,mBAAiB,GAAG;AAC3B,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAChH;AAFSA;ACAT,SAASC,uBAAqB;AAC5B,QAAM,IAAI,UAAU,sIAAsI;AAC5J;AAFSA;ACIT,SAASH,qBAAmB,GAAG;AAC7B,SAAOmX,qBAAkB,CAAC,KAAKC,mBAAgB,CAAC,KAAKT,8BAA2B,CAAC,KAAKU;AACxF;AAFSrX;ACHF,SAAS,KAAK,IAAI;AACvB,MAAI9Y,SAAQ;AACZ,SAAO,gCAAS,UAAU;AACxB,QAAI,CAACA,QAAO;AACV,eAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,aAAK,IAAI,IAAI,UAAU,IAAI;AAAA,MAC5B;AACD,UAAI,SAAS,GAAG,MAAM,MAAM,IAAI;AAChC,MAAAA,SAAQ;AAAA,QACN;AAAA,MACR;AAAA,IACK;AACD,WAAOA,OAAM;AAAA,EACjB,GAXS;AAYT;AAdgB;ACML,gBAAY,KAAK,gCAASowB,aAAY;AAC/C,MAAI,OAAiC;AAC5B;AAAA,EACT;AACO,mBAAU,UAAU,SAAS,SAAS;AAC/C,GAL4B,aAK3B;ACJU,eAAW,KAAK,gCAAStnB,YAAW;AAC7C,MAAI,OAAiC;AAC5B;AAAA,EACT;AACI,MAAA6e,cAAa,WACf,YAAYA,YAAW;AACzB,SAAO,UAAU,SAAS,aAAa,KAAK,CAAC,UAAU,SAAS,QAAQ;AAC1E,GAP2B,YAO1B;ACHD,IAAI,UAAU;AAAA,EACZ,iBAAiB,OAAO,SAAS;AAAA,EACjC,kBAAkB,OAAO,UAAU;AACrC;AACO,SAAS,yBAAyB,MAAM;AAC7C,MAAI,YAAY,KAAK;AACjB,OAAC,YAAY;AACR;AAAA,EACT;AACO,mBAAU,eAAe,QAAQ,gBAAgB;AAC1D;AANgB;AAOT,SAAS,wBAAwB,OAAO;AAC7C,MAAI,YAAY,MAAM;AAClB,OAAC,YAAY;AACR;AAAA,EACT;AACO,mBAAU,eAAe,QAAQ,eAAe;AACzD;AANgB;AAAA,CAOf,gCAAS,YAAY;AAEhB,aAAO,WAAW,aAAa;AACjC;AAAA,EACF;AAIA,MAAI,OAAiC;AACnC;AAAA,EACF;AACI,OAAC,YAAY;AACf;AAAA,EACF;AACA,WAAS,kBAAkB;AAClB;AAAA,MACL,YAAY;AAAA,MACZ,cAAc;AAAA;AAAA,EAElB;AALS;AAMT,MAAI,QAAQ;AACZ,WAAS,aAAa;AACpB,YAAQ,gBAAgB;AAAA,EAC1B;AAFS;AAyBTvU,OAAA;AAAA,IAAQ;AAAA,IAAQ,CAAC;AAAA,MACf,MAAM;AAAA,MACN,UAAU,gCAAS,WAAW;AAC5B,cAAM,aAAa;AAEnB,cAAM,eAAe;AAAA,MAEvB,GALU;AAAA,IAKV,GACC;AAAA,MACD,MAAM;AAAA,MACN,UAAU;AAAA,OACT;AAAA,MACD,MAAM;AAAA,MACN,UAAU;AAAA,OACT;AAAA,MACD,MAAM;AAAA,MACN,UAAU,gCAAS,SAAS,OAAO;AACjC,YAAI,CAAC,MAAM,gBAAgB,MAAM,eAAe,GAAG;AAI3C,wBAAQ,gBAAgB,IAAI;AAAA,QACpC;AACA,cAAM,eAAe;AACf;AAAA,MACR,GATU;AAAA,IASV,GACC;AAAA,MACD,MAAM;AAAA,MACN,UAAU,gCAAS,SAAS,OAAO;AAC3B;AACN,YAAI,MAAM,gBAAgB,MAAM,eAAe,GAAG;AAI1C,wBAAQ,eAAe,IAAI;AACjC,gBAAM,eAAe;AAAA,QACvB;AAAA,MACF,GATU;AAAA,IASV,CACD;AAAA;AAAA;AAAA,IAGD;AAAA,MACE,SAAS;AAAA,IACX;AAAA;AACF,GA1FC,cA0FE;AClHH,SAAS,WAAW,QAAQ;AAC1B,SAAO,cAAc;AACvB;AAFS;AAOF,SAAS,oBAAoB,aAAa;AAC/C,SAAO,WAAW,WAAW,KAAK,YAAY,kBAAkB;AAClE;AAFgB;ACTT,SAAS,gBAAgB,MAAM;AACpC,MAAI,YAAY,KAAK;AACrB,MAAI,OAAO,UAAU,MACnB,gBAAgB,UAAU;AAC5B,MAAI,SAAS,aAAa;AACxB,WAAO;AAAA,EACR;AACD,MAAI,SAAQ,GAAI;AACd,WAAO,wBAAwB;AAAA,MAC7B;AAAA,IACN,CAAK;AAAA,EACF;AAGD,MAAI,iBAAiB,MAAM;AACzB,WAAO;AAAA,EACR;AAcD,MAAI,UAAS,GAAI;AACf,WAAO,oBAAoB,aAAa;AAAA,EACzC;AAcD,SAAO,yBAAyB;AAClC;AA/CgB;ACJT,SAAS,0BAA0B,MAAM;AAC9C,MAAIid,aAAY,KAAK;AACrB,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAqBP;AAAA,MACE,MAAM;AAAA,MACN,UAAU,2BAAY;AACpB,YAAI,YAAY;AAChB,eAAO,gCAAS,WAAW;AAEzB,cAAI,YAAY,IAAI;AAClB;AACA;AAAA,UACD;AACD,UAAAA;QACR,GAPa;AAAA,MAQb,EAAO;AAAA,IACJ;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD;AAAA,MACE,MAAM;AAAA,MACN,UAAUA;AAAA,IACd;AAAA,EAAG;AACH;AA9CgB;ACAT,SAAS,SAAS,OAAO;AAC9B,SAAO;AAAA,IACL,QAAQ,MAAM;AAAA,IACd,QAAQ,MAAM;AAAA,IACd,SAAS,MAAM;AAAA,IACf,SAAS,MAAM;AAAA,IACf,SAAS,MAAM;AAAA,IACf,UAAU,MAAM;AAAA,IAChB,SAAS,MAAM;AAAA,IACf,SAAS,MAAM;AAAA,IACf,OAAO,MAAM;AAAA,IACb,OAAO,MAAM;AAAA,EACjB;AACA;AAbgB;ACAhB,IAAI,UAAU,gCAASC,SAAQ,IAAI;AACjC,MAAI,WAAW;AACf,MAAI,UAAU;AAEd,MAAI,YAAY,gCAASC,aAAY;AACnC,aAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,WAAK,IAAI,IAAI,UAAU,IAAI;AAAA,IAC5B;AAED,eAAW;AAEX,QAAI,SAAS;AACX;AAAA,IACD;AAED,cAAU,sBAAsB,WAAY;AAC1C,gBAAU;AACV,SAAG,MAAM,QAAQ,QAAQ;AAAA,IAC/B,CAAK;AAAA,EACL,GAfkB;AAiBhB,YAAU,SAAS,WAAY;AAC7B,QAAI,CAAC,SAAS;AACZ;AAAA,IACD;AAED,yBAAqB,OAAO;AAC5B,cAAU;AAAA,EACd;AAEE,SAAO;AACT,GA/Bc;ACCd,IAAI,iBAAiB,QAAQ,SAAU,IAAI;AACzC,SAAO,GAAE;AACX,CAAC;AACD,IAAI,YAAY,2BAAY;AAC1B,MAAI,YAAY;AAChB,WAAS,SAAS,IAAI;AACpB,QAAI,UAAU,sBAAsB,WAAY;AAC9C,kBAAY;AACZ;IACN,CAAK;AACD,gBAAY;AAAA,MACV;AAAA,MACA;AAAA,IACN;AAAA,EACG;AATQ;AAUT,WAAS,QAAQ;AACf,QAAI,WAAW;AACb,2BAAqB,UAAU,OAAO;AACtC,gBAAU,GAAE;AACZ,kBAAY;AAAA,IACb;AAAA,EACF;AANQ;AAOT,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACJ;AACA;AACO,SAAS,aAAa,MAAM;AACjC,MAAI,SAAS,KAAK,QAChB,UAAU,KAAK,SACf,gBAAgB,KAAK;AACvB,MAAI,WAAW;AAAA,IACb,aAAa,CAAE;AAAA,EACnB;AACE,WAAS,aAAa,MAAM;AAC1B,kBAAc,IAAI;AAClB,eAAW;AAAA,MACT,aAAa,KAAK,QAAQ,SAAS,QAAQ;AAAA,IACjD;AAAA,EACG;AALQ;AAMT,MAAI,WAAW;AAAA,IACb,OAAO,gCAAS5vB,OAAM,OAAO;AAC3B,UAAI,qBAAqB,MAAM;AAG/B,UAAI2T,YAAW;AAAA,QACb,SAAS;AAAA,QACT;AAAA,QACA;AAAA,MACR;AAGM,mBAAa;AAAA,QACX,WAAW;AAAA,QACX,SAAS;AAAA,UACP;AAAA,UACA,UAAUA;AAAA,UACV;AAAA,QACD;AAAA,MACT,CAAO;AACD,gBAAU,SAAS,WAAY;AAC7B,qBAAa;AAAA,UACX,WAAW;AAAA,UACX,SAAS;AAAA,YACP;AAAA,YACA,UAAUA;AAAA,UACX;AAAA,QACX,CAAS;AAAA,MACT,CAAO;AAAA,IACF,GA5BM;AAAA,IA6BP,YAAY,gCAAS,WAAW,OAAO;AACrC,UAAI,UAAU,MAAM;AACpB,gBAAU,MAAK;AACf,qBAAe,OAAM;AACrB,mBAAa;AAAA,QACX,WAAW;AAAA,QACX,SAAS;AAAA,UACP;AAAA,UACA,UAAU;AAAA,YACR;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA,QACF;AAAA,MACT,CAAO;AAAA,IACF,GAfW;AAAA,IAgBZ,MAAM,gCAAS,KAAK,OAAO;AACzB,UAAI,UAAU,MAAM;AACpB,qBAAe,WAAY;AACzB,kBAAU,MAAK;AACf,YAAIA,YAAW;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,qBAAa;AAAA,UACX,WAAW;AAAA,UACX,SAAS;AAAA,YACP;AAAA,YACA,UAAUA;AAAA,UACX;AAAA,QACX,CAAS;AAAA,MACT,CAAO;AAAA,IACF,GAjBK;AAAA,IAkBN,MAAM,gCAAS,KAAK,OAAO;AACzB,UAAI,UAAU,MAAM,SAClB,uBAAuB,MAAM;AAC/B,gBAAU,MAAK;AACf,qBAAe,OAAM;AACrB,mBAAa;AAAA,QACX,WAAW;AAAA,QACX,SAAS;AAAA,UACP,QAAQ,yBAAyB,QAAQ,yBAAyB,SAAS,uBAAuB;AAAA,UAClG,UAAU;AAAA,YACR;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA,QACF;AAAA,MACT,CAAO;AAAA,IACF,GAhBK;AAAA,EAiBV;AACE,SAAO;AACT;AAhGgB;ACpBhB,IAAI,cAAc;AAAA,EAChB,UAAU;AACZ;AACA,SAAS,WAAW;AAClB,SAAO,CAAC,YAAY;AACtB;AAFS;AAGT,SAAS,sBAAsB,OAAO;AACpC,MAAI,MAAM,cAAc;AAGtB,WAAO,MAAM,aAAa,aAAa,KAAK,MAAM,YAAY;AAAA,EAC/D;AACD,SAAO;AACT;AAPS;AAQT,SAAS,oBAAoB,MAAM;AACjC,MAAI,UAAU,KAAK,SACjBrQ,QAAO,KAAK;AACd,MAAI,QAAQ,WAAWA,MAAK,QAAQ;AAClC,WAAO;AAAA,EACR;AAGD,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,QAAI,QAAQ,CAAC,EAAE,YAAYA,MAAK,CAAC,EAAE,SAAS;AAC1C,aAAO;AAAA,IACR;AAAA,EACF;AACD,SAAO;AACT;AAdS;AAeT,SAAS,MAAM,OAAO;AACpB,MAAI,QAAQ,MAAM,OAChB,WAAW,MAAM,UACjB,qBAAqB,MAAM,oBAC3B,gBAAgB,MAAM;AACxB,MAAI,CAAC,SAAQ,GAAI;AACf;AAAA,EACD;AACD,MAAI,UAAU,iBAAiB;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAG;AACD,cAAY,WAAW;AACvB,MAAI,QAAQ;AAAA,IACV,SAAS;AAAA,EACb;AAGE,uBAAqB;AAAA,IACnB;AAAA,IACA,SAAS,QAAQ;AAAA,EACrB,CAAG;AACD,MAAI,WAAW,aAAa;AAAA,IAC1B,QAAQ,SAAS;AAAA,IACjB;AAAA,IACA;AAAA,EACJ,CAAG;AACD,WAAS,YAAYA,OAAM;AAEzB,QAAIusB,cAAa,oBAAoB;AAAA,MACnC,SAAS,MAAM,QAAQ;AAAA,MACvB,MAAMvsB,MAAK;AAAA,IACjB,CAAK;AAKD,UAAM,UAAUA;AAChB,QAAIusB,aAAY;AACd,eAAS,WAAW;AAAA,QAClB,SAAS,MAAM;AAAA,MACvB,CAAO;AAAA,IACF;AAAA,EACF;AAhBQ;AAiBT,WAAS,cAAcC,QAAO;AAC5B,QAAI,QAAQ,SAASA,MAAK;AAI1B,QAAI,SAAS,kBAAkBA,OAAM,MAAM,IAAI,mCAAmC;AAAA,MAChF,GAAG,MAAM;AAAA,MACT,GAAG,MAAM;AAAA,IACf,CAAK,IAAIA,OAAM;AACX,QAAI,kBAAkB,mBAAmB;AAAA,MACvC;AAAA,MACA;AAAA,MACA,QAAQ,SAAS;AAAA,MACjB,SAAS,MAAM,QAAQ;AAAA,IAC7B,CAAK;AACD,QAAI,gBAAgB,QAAQ;AAE1B,MAAAA,OAAM,eAAc;AACpB,2BAAqB;AAAA,QACnB,OAAOA;AAAA,QACP,SAAS;AAAA,MACjB,CAAO;AAAA,IACF;AACD,gBAAY;AAAA,MACV,aAAa;AAAA,MACb;AAAA,IACN,CAAK;AAAA,EACF;AA3BQ;AA4BT,WAAS,SAAS;AAShB,QAAI,MAAM,QAAQ,YAAY,QAAQ;AACpC,kBAAY;AAAA,QACV,aAAa,CAAE;AAAA,QACf,OAAO,MAAM,QAAQ;AAAA,MAC7B,CAAO;AAAA,IACF;AACD,aAAS,KAAK;AAAA,MACZ,SAAS,MAAM;AAAA,MACf,sBAAsB;AAAA,IAC5B,CAAK;AACD;EACD;AApBQ;AAqBT,WAAS,SAAS;AAChB,gBAAY,WAAW;AACvB,IAAAC;EACD;AAHQ;AAIT,MAAIA,gBAAetd;IAAQ;AAAA,IAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOlC,MAAM;AAAA,MACN,UAAU,gCAAS,SAASqd,QAAO;AASjC,sBAAcA,MAAK;AAInB,iBAAS,KAAK;AAAA,UACZ,SAAS,MAAM;AAAA,QACvB,CAAO;AAAA,MACF,GAhBS;AAAA,IAiBd,GAAK;AAAA,MACD,MAAM;AAAA,MACN,UAAU;AAAA,IACd,GAAK;AAAA,MACD,MAAM;AAAA,MACN,UAAU,gCAAS,SAASA,QAAO;AACjC,YAAI,CAAC,gBAAgB;AAAA,UACnB,WAAWA;AAAA,QACnB,CAAO,GAAG;AACF;AAAA,QACD;AA2CD,oBAAY;AAAA,UACV,OAAO,MAAM,QAAQ;AAAA,UACrB,aAAa,CAAE;AAAA,QACvB,CAAO;AACD,YAAI,SAAS,gBAAgB,YAAY;AACvC;QACD;AAAA,MACF,GAvDS;AAAA,IAwDd,GAAK;AAAA;AAAA,MAED,MAAM;AAAA,MACN,UAAU,gCAAS,SAASA,QAAO;AAIjC,cAAM,UAAU;AAAA,UACd,aAAa,MAAM,QAAQ;AAAA,UAC3B,OAAO,SAASA,MAAK;AAAA,QAC7B;AAYM,YAAI,CAAC,MAAM,QAAQ,YAAY,QAAQ;AACrC;AACA;AAAA,QACD;AACD,QAAAA,OAAM,eAAc;AAGpB,6BAAqB;AAAA,UACnB,OAAOA;AAAA,UACP,SAAS,MAAM,QAAQ;AAAA,QAC/B,CAAO;AACD,iBAAS,KAAK;AAAA,UACZ,SAAS,MAAM;AAAA;AAAA;AAAA,UAGf,sBAAsB,SAAS,SAAS,aAAa,SAAS,eAAeA,MAAK,IAAI;AAAA,QAC9F,CAAO;AACD;MACD,GArCS;AAAA,IAsCd,GAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUD,MAAM;AAAA,MACN,UAAU,gCAAS,SAASA,QAAO;AAKjC,cAAM,UAAU;AAAA,UACd,aAAa,MAAM,QAAQ;AAAA,UAC3B,OAAO,SAASA,MAAK;AAAA,QAC7B;AACM;MACD,GAVS;AAAA,IAWd,CAAG,EAAE,OAAO3X,qBAAmB,0BAA0B;AAAA,MACrD,WAAW;AAAA,IACZ,EAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,IAKH;AAAA,MACE,SAAS;AAAA,IACb;AAAA,EAAG;AACD,WAAS,MAAM;AAAA,IACb,oBAAoB,sBAAsB,KAAK;AAAA,EACnD,CAAG;AACH;AApQS;AAqQT,SAAS,qBAAqB,OAAO;AACnC,MAAI;AACJ,MAAI,QAAQ,MAAM,OAChB,UAAU,MAAM;AAElB,MAAI,aAAa,YAAY,QAAQ,CAAC,OAAO,QAAQ,cAAc,SAAS,SAAS,UAAU;AAC/F,MAAI,aAAa,QAAQ,MAAM,cAAc;AAC3C,UAAM,aAAa,aAAa;AAAA,EACjC;AACH;AATS;AAUT,SAAS,iBAAiB,OAAO;AAC/B,MAAI,QAAQ,MAAM,OAChB,WAAW,MAAM,UACjB,qBAAqB,MAAM;AAC7B,MAAI,QAAQ,SAAS,KAAK;AAI1B,MAAI,SAAS,gBAAgB,YAAY;AACvC,WAAO;AAAA,MACL;AAAA,MACA,aAAa,CAAE;AAAA,IACrB;AAAA,EACG;AACD,MAAI,cAAc,mBAAmB;AAAA,IACnC;AAAA,IACA,QAAQ,SAAS;AAAA,IACjB,QAAQ,MAAM;AAAA,IACd,SAAS,CAAE;AAAA,EACf,CAAG;AACD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACJ;AACA;AAxBS;AAyBF,IAAI,YAAY;AAAA,EACrB;AAAA,EACA;AACF;AC9UA,IAAI,SAAS,oBAAI;AACjB,SAAS,cAAc,MAAM;AAC3B,MAAI,UAAU,KAAK,SACjB3R,SAAQ,KAAK;AACf,MAAI,QAAQ,OAAO,IAAI,OAAO;AAC9B,MAAI,OAAO;AACT,UAAM;AACN,WAAO;AAAA,EACR;AACD,MAAI,UAAU;AAAA,IACZ;AAAA,IACA,SAASA,OAAO;AAAA,IAChB,YAAY;AAAA,EAChB;AACE,SAAO,IAAI,SAAS,OAAO;AAC3B,SAAO;AACT;AAfS;AAgBF,SAAS,SAAS,MAAM;AAC7B,MAAI,QAAQ,cAAc,IAAI;AAC9B,SAAO,gCAAS,aAAa;AAC3B,UAAM;AACN,QAAI,MAAM,aAAa,GAAG;AACxB;AAAA,IACD;AAED,UAAM,QAAO;AACb,WAAO,OAAO,KAAK,OAAO;AAAA,EAC9B,GARS;AAST;AAXgB;AClBT,SAAS,UAAU;AACxB,WAAS,OAAO,UAAU,QAAQ,MAAM,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACtF,QAAI,IAAI,IAAI,UAAU,IAAI;AAAA,EAC3B;AACD,SAAO,gCAAS,UAAU;AACxB,QAAI,QAAQ,SAAU,IAAI;AACxB,aAAO,GAAE;AAAA,IACf,CAAK;AAAA,EACL,GAJS;AAKT;AATgB;ACDT,SAAS,aAAa,SAAS,MAAM;AAC1C,MAAI,YAAY,KAAK,WACnBtH,SAAQ,KAAK;AACf,UAAQ,aAAa,WAAWA,MAAK;AACrC,SAAO,WAAY;AACjB,WAAO,QAAQ,gBAAgB,SAAS;AAAA,EAC5C;AACA;AAPgB;ACEhB,SAASya,UAAQ5X,IAAG,GAAG;AAAM,MAAA+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAM,YAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,KAAa,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAG;AAAS,SAAAA;AAAG;AAArP6U;AACT,SAASC,gBAAc7X,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAM,QAAA+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI;AAAQ,YAAI6U,UAAQ,OAAO7U,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAEiB,wBAAgBzW,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,KAAI,IAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI6U,UAAQ,OAAO7U,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,KAAI;AAAA,EAAG;AAAS,SAAAxV;AAAG;AAA7a6X;AACT,SAASxC,6BAA2B,GAAGrV,IAAG;AAAM,MAAA+C,KAAI,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,CAACA,IAAG;AAAE,QAAI,MAAM,QAAQ,CAAC,MAAMA,KAAIuS,8BAA4B,CAAC,MAAMtV,MAAK,KAAK,YAAY,OAAO,EAAE,QAAQ;AAAE,MAAA+C,OAAM,IAAIA;AAAI,UAAI,KAAK,GAAG,IAAI,gCAASwS,KAAI;AAAA,SAAb;AAAiB,aAAO,EAAE,GAAG,GAAG,GAAG,gCAAS,IAAI;AAAE,eAAO,MAAM,EAAE,SAAS,EAAE,MAAM,KAAO,MAAE,MAAM,OAAI,OAAO,EAAE,IAAI,EAAE;AAAA,SAAjF,MAAuF,GAAG,gCAASvV,IAAEwV,IAAG;AAAQA;AAAAA,MAAA,GAAtB,OAA4B,GAAG;IAAK;AAAQ,cAAI,UAAU,uIAAuI;AAAA,EAAG;AAAM,SAAG,IAAI,MAAI,IAAI;AAAW,WAAE,GAAG,gCAAS,IAAI;AAAM,IAAAzS,QAAE,KAAK,CAAC;AAAA,KAA3B,MAAiC,GAAG,gCAAS,IAAI;AAAMyS,aAAIzS,GAAE;AAAe,eAAIyS,GAAE,MAAMA;AAAAA,EAAA,GAApD,MAA0D,GAAG,gCAASxV,IAAEwV,IAAG;AAAE,QAAI,MAAI,IAAIA;AAAAA,EAAA,GAA5B,OAAkC,GAAG,gCAAS,IAAI;AAAM;AAAE,WAAK,QAAQzS,GAAE,UAAUA,GAAE,OAAO;AAAA,cAAK;AAAU,UAAI,EAAS;AAAA,IAAG;AAAA,KAAtF;AAA6F;AAA50BsS;AACT,SAASC,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAU,QAAAG,oBAAkB,GAAG,CAAC;AAAO,QAAA1S,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAU,wBAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAI0S,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAQ;AAAE;AAAhXH;AACT,SAASG,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAASzV,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAU;AAAG;AAA1IyV;AAGT,SAAS,YAAY,OAAO;AAC1B,SAAO,MAAM,MAAM,CAAC,EAAE,QAAQ;AAChC;AAFS;AAGF,SAAS,eAAe,MAAM;AACnC,MAAI,UAAU,KAAK,SACjB,oBAAoB,KAAK;AACvB,qCAAe;AACf,0BAAoB,wBAAwB,OAAO,OAAO;AAC9D,MAAI,qBAAqB,IAAI,OAAO,mBAAmB,GAAG;AAC1D,WAASwY,eAAc,MAAM;AAClB,iBAAI,KAAK,SAAS,IAAI;AAC/B,WAAO,WAAY;AACV,sBAAS,OAAO,KAAK,OAAO;AAAA;AAAA,EAEvC;AALS,SAAAA,gBAAA;AAMT,WAAS,uBAAuB,MAAM;AAEpC,QAAI,OAAuC;AACzC,UAAI,WAAW,SAAS,IAAI,KAAK,OAAO;AACxC,UAAI,UAAU;AAEZ,gBAAQ,KAAK,kCAAkC,OAAO,SAAS,kCAAkC,GAAG;AAAA,UAClG;AAAA,UACA,UAAU;AAAA,SACX;AAAA,MACH;AACI,eAAK,mBAAmB,mBAAmB;AAE7C,gBAAQ,KAAK,iKACZ,QAAQ,WAAW,GAAG,EAAE,MAAM;AAAA,MACjC;AAAA,IACF;AACO,mBAAQ,aAAa,KAAK,SAAS;AAAA,MACxC,WAAW;AAAA,MACX,OAAO;AAAA,KACR,GAAGA,eAAc,IAAI,CAAC;AAAA,EACzB;AArBS;AAsBT,WAAS,qBAAqB,OAAO;AAC/B,uBAAe,gBAAgB,qBAAqB;AACxD,QAAI,SAAS,MAAM,QACjB,SAAS,MAAM,QACf,QAAQ,MAAM,OACd,eAAe,MAAM,QACrB,SAAS,iBAAiB,SAAS,CAAK;AAC1C,QAAI,UAAU,MAAM;AACX;AAAA,IACT;AACI,UAAE,kBAAkB,UAAU;AAIhC,UAAI,kBAAkB,MAAM;AAC1B,eAAO,qBAAqB;AAAA,UAC1B;AAAA,UACA,QAAQ,OAAO;AAAA,UACf;AAAA,UACA;AAAA,SACD;AAAA,MACH;AAIO;AAAA,IACT;AACI,kBAAU,OAAO,QAAQ,kBAAkB;AAG/C,QAAI,WAAW,MAAM;AACZ;AAAA,IACT;AACI,eAAO,SAAS,IAAI,OAAO;AAI/B,QAAI,QAAQ,MAAM;AACT;AAAA,IACT;AACA,QAAI,WAAW;AAAA,MACb;AAAA,MACA;AAAA,MACA,SAAS,KAAK;AAAA;AAKhB,QAAI,KAAK,WAAW,CAAC,KAAK,QAAQ,QAAQ,GAAG;AAC3C,aAAO,qBAAqB;AAAA,QAC1B;AAAA,QACA,QAAQ,KAAK,QAAQ;AAAA,QACrB;AAAA,QACA;AAAA,OACD;AAAA,IACH;AAGA,QAAIltB,UAAQ,iBAAiB,iBAAiB,KAAK,aAAa,QAAQ,mBAAmB,SAAS,SAAS,eAAe,KAAK,MAAM,QAAQ,OAAO,QAAQ,kBAAkB,SAAS,gBAAgB;AACzM,QAAI,cAAc,uBAAuB,uBAAuB,KAAK,mBAAmB,QAAQ,yBAAyB,SAAS,SAAS,qBAAqB,KAAK,MAAM,QAAQ,OAAO,QAAQ,wBAAwB,SAAS,sBAAsB;AACzP,QAAI,SAAS;AAAA,MACX,MAAAA;AAAA,MACA,SAAS,KAAK;AAAA,MACd;AAAA;AAAA;AAAA,MAGA,yBAAyB;AAAA;AAE3B,WAAO,qBAAqB;AAAA,MAC1B;AAAA,MACA,QAAQ,KAAK,QAAQ;AAAA,MACrB;AAAA;AAAA,MAEA,QAAQ,CAAG,SAAOqV,qBAAmB,MAAM,GAAG,CAAC,MAAM,CAAC;AAAA,KACvD;AAAA,EACH;AA3ES;AA4ET,WAAS,cAAc,OAAO;AAC5B,QAAI,YAAY,MAAM,WACpB,UAAU,MAAM;AAClB,QAAI,YAAYf,6BAA2B,QAAQ,SAAS,QAAQ,WAAW,GAC7E;AACE;AACG,qBAAU,KAAK,EAAE,QAAQ,UAAU,KAAK,QAAO;AAC9C;AACJ,YAAI,SAAS,MAAM;AACnB,YAAI,QAAQ,SAAS,IAAI,OAAO,OAAO;AACnC,mBAAOwC,gBAAcA,gBAAc,IAAI,OAAO,GAAG,IAAI;AAAA,UACvD,MAAM;AAAA,SACP;AACS,0BAAQ,UAAU,WAAW,mBAAmB,MAAM,SAAS,OAAO,QAAQ,qBAAqB,UAAU,iBAAiB;AAAA,UAAK;AAAA;AAAA;AAAA;AAAA,UAI7I;AAAA;AAAA,MACF;AAAA,aACO,KAAK;AACZ,gBAAU,EAAE,GAAG;AAAA,cACf;AACA,gBAAU,EAAE;AAAA,IACd;AAAA,EACF;AAxBS;AAyBT,MAAI,UAAU;AAAA,IACZ,uBAAuB;AAAA,IACvB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,oBAAoB,gCAAS,mBAAmB,OAAO;AACrD,UAAI,UAAU,MAAM;AAChB,sBAAY,IAAI,IAAI,QAAQ,SAAS,QAAQ,YAAY,IAAI,SAAUqW,SAAQ;AACjF,eAAOA,QAAO;AAAA,MACf,EAAC;AACE,wCAAc;AAClB,UAAI,aAAa7Y,6BAA2B,QAAQ,SAAS,SAAS,WAAW,GAC/E;AACE;AACG,wBAAW,KAAK,EAAE,SAAS,WAAW,KAAK,QAAO;AACjD;AACJ,cAAI,SAAS,OAAO;AACZ,sBAAI,OAAO,OAAO;AAC1B,cAAI,QAAQ,SAAS,IAAI,OAAO,OAAO;AACvC,cAAI,SAAS,UAAU,IAAI,OAAO,OAAO;AACrC,qBAAOwC,gBAAcA,gBAAc,IAAI,OAAO,GAAG,IAAI;AAAA,YACvD,MAAM;AAAA,WACP;AACD,oBAAU,QAAQ,UAAU,WAAW,wBAAwB,MAAM,wBAAwB,QAAQ,0BAA0B,UAAU,sBAAsB,KAAK,OAAO,IAAI;AAG/K,cAAI,CAAC,QAAQ;AACP;AACJ,sBAAU,QAAQ,UAAU,WAAW,qBAAqB,MAAM,iBAAiB,QAAQ,uBAAuB,UAAU,mBAAmB,KAAK,OAAO,IAAI;AAAA,UACjK;AAAA,QACF;AAAA,eACO,KAAK;AACZ,mBAAW,EAAE,GAAG;AAAA,gBAChB;AACA,mBAAW,EAAE;AAAA,MACf;AACA,UAAI,aAAaxC,6BAA2B,QAAQ,SAAS,QAAQ,WAAW,GAC9E;AACE;AACG,wBAAW,KAAK,EAAE,SAAS,WAAW,KAAK,QAAO;AACrD,cAAI,wBAAwB;AAC5B,cAAI,UAAU,OAAO;AAErB,cAAI,QAAQ,IAAI,QAAQ,OAAO,GAAG;AAChC;AAAA,UACF;AAEI,sBAAQwC,gBAAcA,gBAAc,IAAI,OAAO,GAAG,IAAI;AAAA,YACxD,MAAM;AAAA,WACP;AACD,cAAI,SAAS,SAAS,IAAI,QAAQ,OAAO;AACzC,qBAAW,QAAQ,WAAW,WAAW,yBAAyB,OAAO,wBAAwB,QAAQ,2BAA2B,UAAU,uBAAuB,KAAK,QAAQ,KAAK;AACvL,qBAAW,QAAQ,WAAW,WAAW,qBAAqB,OAAO,iBAAiB,QAAQ,uBAAuB,UAAU,mBAAmB,KAAK,QAAQ,KAAK;AAAA,QACtK;AAAA,eACO,KAAK;AACZ,mBAAW,EAAE,GAAG;AAAA,gBAChB;AACA,mBAAW,EAAE;AAAA,MACf;AAAA,IACF,GAtDoB;AAAA,EAsDpB;AAEF,WAAS,cAAc,MAAM;AACnB,iBAAK,SAAS,EAAE,IAAI;AAAA,EAC9B;AAFS;AAGT,WAAS,UAAU,OAAO;AACpB,iBAAS,MAAM,QACjB,SAAS,MAAM,QACf,QAAQ,MAAM,OACd,UAAU,MAAM;AAClB,QAAI,SAAS,qBAAqB;AAAA,MAChC;AAAA,MACA;AAAA,MACA;AAAA,KACD;AAIG,eAAO,UAAU,QAAQ,QAAQ;AAC5B;AAAA,IACT;AASI,6BAAqB,YAAY,OAAO;AACxC,+BAAuB,YAAY,MAAM;AAC7C,QAAI,uBAAuB;AAC3B,aAASzZ,SAAQ,GAAGA,SAAQ,mBAAmB,QAAQA,UAAS;AAC1D;AACA,iBAAO,mBAAmBA,MAAK;AAC/B,kBAAQ,qBAAqBA,MAAK;AAItC,UAAI,SAAS,MAAM;AACjB,6BAAqB,KAAK,KAAK;AAC/B;AAAA,MACF;AAOI,mBAAS,qBAAqBA,SAAQ,CAAC;AACvC,uBAAa,mBAAmBA,SAAQ,CAAC;AAI7C,WAAK,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,cAAc,eAAe,QAAQ,eAAe,SAAS,SAAS,WAAW,UAAU;AACrJ;AAAA,MACF;AAIA,UAAI,cAAc,SAAS,IAAI,KAAK,OAAO;AAG3C,UAAI,CAAC,aAAa;AAChB;AAAA,MACF;AACA,UAAI,WAAW;AAAA,QACb;AAAA,QACA;AAAA,QACA,SAAS,YAAY;AAAA;AAIvB,UAAI,YAAY,WAAW,CAAC,YAAY,QAAQ,QAAQ,GAAG;AACzD;AAAA,MACF;AAGI,aAAG,wBAAwB,YAAY,iBAAiB,QAAQ,0BAA0B,UAAU,sBAAsB,KAAK,aAAa,QAAQ,IAAI;AAC1J;AAAA,MACF;AAQqB,gCAAKyZ,gBAAcA,gBAAc,IAAI,IAAI,GAAG,IAAI;AAAA;AAAA,QAEnE,yBAAyB;AAAA,MAC1B,EAAC;AAAA,IACJ;AAGA,WAAO,YAAY,oBAAoB;AAAA,EACzC;AA3FS;AA4FF;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA;AAEJ;AAxSgB;ACXhB,SAASxC,6BAA2B,GAAGrV,IAAG;AAAE,MAAI+C,KAAI,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,CAACA,IAAG;AAAE,QAAI,MAAM,QAAQ,CAAC,MAAMA,KAAIuS,8BAA4B,CAAC,MAAMtV,MAAK,KAAK,YAAY,OAAO,EAAE,QAAQ;AAAE,MAAA+C,OAAM,IAAIA;AAAI,UAAI,KAAK,GAAG,IAAI,gCAASwS,KAAI;AAAA,SAAb;AAAiB,aAAO,EAAE,GAAG,GAAG,GAAG,gCAAS,IAAI;AAAE,eAAO,MAAM,EAAE,SAAS,EAAE,MAAM,KAAE,IAAK,EAAE,MAAM,OAAI,OAAO,EAAE,IAAI,EAAC;AAAA,MAAG,GAAnF,MAAuF,GAAG,gCAASvV,GAAEwV,IAAG;AAAE,cAAMA;AAAA,MAAE,GAAxB,MAA4B,GAAG,EAAG;AAAA,IAAG;AAAC,UAAM,IAAI,UAAU,uIAAuI;AAAA,EAAE;AAAG,MAAI,GAAG,IAAI,MAAI,IAAI;AAAI,SAAO,EAAE,GAAG,gCAAS,IAAI;AAAE,IAAAzS,KAAIA,GAAE,KAAK,CAAC;AAAA,EAAI,GAA/B,MAAiC,GAAG,gCAAS,IAAI;AAAE,QAAIyS,KAAIzS,GAAE,KAAI;AAAI,WAAO,IAAIyS,GAAE,MAAMA;AAAA,EAAE,GAAtD,MAA0D,GAAG,gCAASxV,GAAEwV,IAAG;AAAE,QAAI,MAAI,IAAIA;AAAA,EAAE,GAA9B,MAAkC,GAAG,gCAAS,IAAI;AAAE,QAAI;AAAE,WAAK,QAAQzS,GAAE,UAAUA,GAAE,OAAQ;AAAA,IAAG;AAAW,UAAI,EAAG,OAAM;AAAA,IAAE;AAAA,EAAI,GAAzF,KAAyF;AAAK;AAA70BsS;AACT,SAASC,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOG,oBAAkB,GAAG,CAAC;AAAG,QAAI1S,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAI0S,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXH;AACT,SAASG,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAASzV,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAG,SAAO;AAAI;AAA3IyV;AACT,SAASmC,UAAQ5X,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAtP6U;AACT,SAASC,gBAAc7X,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI6U,UAAQ,OAAO7U,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAEiB,wBAAgBzW,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI6U,UAAQ,OAAO7U,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAA9a6X;AACF,SAAS,cAAc;AAC5B,MAAI,WAAW,oBAAI;AACnB,MAAI,WAAW;AACf,WAAS,eAAe,SAAS;AAC/B,QAAI,CAAC,UAAU;AACb;AAAA,IACD;AAID,QAAI,CAAC,QAAQ,cAAc,QAAQ,WAAW,SAAS,cAAc,GAAG;AACtE,eAAS,OAAO,IAAI,OAAO;AAAA,IAC5B;AAAA,EACF;AAVQ;AAWT,WAAS,oBAAoB,MAAM;AAGjC,QAAI,QAAQA,gBAAc,CAAE,GAAE,IAAI;AAClC,aAAS,IAAI,KAAK;AAGlB,mBAAe,KAAK;AACpB,WAAO,gCAAS,UAAU;AACxB,eAAS,OAAO,KAAK;AAGrB,UAAI,UAAU;AACZ,iBAAS,OAAO,OAAO,KAAK;AAAA,MAC7B;AAAA,IACP,GAPW;AAAA,EAQR;AAhBQ;AAiBT,WAAS,cAAc,MAAM;AAC3B,QAAI,YAAY,KAAK,WACnB,UAAU,KAAK;AACjB,QAAI,cAAc,yBAAyB;AACzC,iBAAW;AAAA,QACT,gBAAgB;AAAA,UACd,SAAS,QAAQ,SAAS;AAAA,UAC1B,QAAQ,QAAQ;AAAA,QACjB;AAAA,QACD,QAAQ,oBAAI,IAAK;AAAA,MACzB;AACM,UAAI,YAAYxC,6BAA2B,QAAQ,GACjD;AACF,UAAI;AACF,aAAK,UAAU,EAAC,GAAI,EAAE,QAAQ,UAAU,EAAG,GAAE,QAAO;AAClD,cAAI,UAAU,MAAM;AACpB,yBAAe,OAAO;AAAA,QACvB;AAAA,MACF,SAAQ,KAAK;AACZ,kBAAU,EAAE,GAAG;AAAA,MACvB,UAAgB;AACR,kBAAU,EAAC;AAAA,MACZ;AAAA,IACF;AAGD,QAAI,CAAC,UAAU;AACb;AAAA,IACD;AAOD,QAAI8Y,UAAS,MAAM,KAAK,SAAS,MAAM;AACvC,aAAS,KAAK,GAAG,UAAUA,SAAQ,KAAK,QAAQ,QAAQ,MAAM;AAC5D,UAAI,WAAW,QAAQ,EAAE;AAGzB,UAAI,SAAS,OAAO,IAAI,QAAQ,GAAG;AACjC,YAAI;AAEJ,SAAC,qBAAqB,SAAS,SAAS,OAAO,QAAQ,uBAAuB,UAAU,mBAAmB,KAAK,UAAU,OAAO;AAAA,MAClI;AAAA,IACF;AACD,QAAI,cAAc,UAAU;AAC1B,eAAS,OAAO;AAChB,iBAAW;AAAA,IACZ;AAAA,EACF;AAlDQ;AAmDT,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACJ;AACA;AAtFgB;ACFT,SAAS,YAAY,MAAM;AAChC,MAAI,UAAU,KAAK,SACjB1pB,SAAQ,KAAK,OACb2pB,yBAAwB,KAAK,uBAC7B,iBAAiB,KAAK,gBACtB,oBAAoB,KAAK;AAC3B,MAAI,aAAa;AACjB,MAAI,gBAAgB,eAAe;AAAA,IACjC;AAAA,IACA;AAAA,EACJ,CAAG;AACD,WAAS,cAAc,MAAM;AAE3B,IAAAA,2BAA0B,QAAQA,2BAA0B,UAAUA,uBAAsB,IAAI;AAGhG,kBAAc,cAAc,IAAI;AAGhC,eAAW,cAAc,IAAI;AAG7B,uBAAmB,QAAQ,mBAAmB,UAAU,eAAe,IAAI;AAAA,EAC5E;AAZQ;AAaT,WAASnwB,OAAM,OAAO;AACpB,QAAI,QAAQ,MAAM,OAChB,WAAW,MAAM;AACnB,cAAU,MAAM;AAAA,MACd;AAAA,MACA;AAAA,MACA,oBAAoB,cAAc;AAAA,MAClC;AAAA,IACN,CAAK;AAAA,EACF;AATQ,SAAAA,QAAA;AAUT,WAASowB,iBAAgB;AACvB,aAAS,eAAe;AACtB,UAAI3nB,OAAM;AAAA,QACR,UAAU,UAAU;AAAA,QACpB,OAAOzI;AAAA,MACf;AACM,aAAOwG,OAAMiC,IAAG;AAAA,IACjB;AANQ;AAOT,WAAO,SAAS;AAAA,MACd;AAAA,MACA,OAAO;AAAA,IACb,CAAK;AAAA,EACF;AAZQ,SAAA2nB,gBAAA;AAaT,SAAO;AAAA,IACL,eAAeA;AAAA,IACf,YAAY,cAAc;AAAA,IAC1B,SAAS,WAAW;AAAA,EACxB;AACA;AApDgB;ACDT,IAAI,YAAY,KAAK,gCAAS3Z,aAAY;AAC/C,SAAO,UAAU,UAAU,kBAAmB,EAAC,SAAS,SAAS;AACnE,GAF4B,YAE3B;AACM,IAAI,sBAAsB;ACD1B,IAAI,gBAAgB;ACApB,IAAI,eAAe;ACAnB,IAAI,8BAA8B;ACOzC,IAAI,wCAAwB;AAC5B,SAAS,cAAc,MAAM;AACT,wBAAI,KAAK,SAAS,IAAI;AACxC,SAAO,gCAAS,UAAU;AACN,6BAAO,KAAK,OAAO;AAAA,KADhC;AAGT;AALS;AAMT,IAAI,cAAc,gBAAgB;AAClC,IAAI,UAAU,YAAY;AAAA,EACxB,SAAS;AAAA,EACT,mBAAmB;AAAA,EACnB,OAAO,gCAAS,MAAMhO,MAAK;AAMzB,WAAO,QAAQ,YAAY,WAAW,GAAGgC,UAAK,UAAU;AAAA,MACtD,MAAM;AAAA,MACN,UAAU,gCAAS,SAAS,OAAO;AACjC,YAAI,mBAAmB,uBAAuB,wBAAwB,oBAAoB,wBAAwB;AAClH,YAAI,CAAChC,KAAI,SAAS,KAAK,GAAG;AACxB;AAAA,QACF;AAIA,YAAI,MAAM,kBAAkB;AAC1B;AAAA,QACF;AAMI,aAAC,MAAM,cAAc;AAIvB,cAAI,OAAuC;AAEzC,oBAAQ,KAAK,0bAA0b,QAAQ,SAAS,EAAE,CAAC;AAAA,UAC7d;AACA;AAAA,QACF;AAIA,YAAI,SAAS,MAAM;AAIf,cAAE,kBAAkB,cAAc;AAC7B;AAAA,QACT;AAGI,oBAAQ,kBAAkB,IAAI,MAAM;AAIxC,YAAI,CAAC,OAAO;AACH;AAAA,QACT;AAmCI,oBAAQ,SAAS,KAAK;AAC1B,YAAI,WAAW;AAAA,UACb,SAAS,MAAM;AAAA,UACf,aAAa,oBAAoB,MAAM,gBAAgB,QAAQ,sBAAsB,SAAS,oBAAoB;AAAA,UAClH;AAAA;AAIF,YAAI,MAAM,WAAW,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAE7C,gBAAM,eAAe;AACd;AAAA,QACT;AAGA,YAAI,MAAM,YAAY;AAIpB,cAAI,OAAO,mCAAmC;AAAA,YAC5C,GAAG,MAAM;AAAA,YACT,GAAG,MAAM;AAAA,WACV;AAID,cAAI,CAAC,MAAM,WAAW,SAAS,IAAI,GAAG;AACpC,kBAAM,eAAe;AACd;AAAA,UACT;AAAA,QACF;AAqBA,YAAI,cAAc,yBAAyB,yBAAyB,MAAM,+BAA+B,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB,KAAK,OAAO,QAAQ,OAAO,QAAQ,0BAA0B,SAAS,wBAAwB;AACnR,YAAI,YAAY;AACL,wBAAK,GAAG,kBAAkB,OAAO,QAAQ,UAAU,GAAG,KAAK,gBAAgB,QAAQ,MAAM;AAChG,gBAAI,qBAAqByR,iBAAe,gBAAgB,EAAE,GAAG,CAAC,GAC5D,MAAM,mBAAmB,CAAC,GAC1BpX,SAAO,mBAAmB,CAAC;AACvB,+BAAa,QAAQ,KAAKA,WAAS,QAAQA,WAAS,SAASA,SAAO,EAAE;AAAA,UAC9E;AAAA,QACF;AAYA,YAAI,UAAU,KAAK,CAAC,MAAM,aAAa,MAAM,SAAS,aAAa,KAAK,CAAC,MAAM,aAAa,MAAM,SAAS,YAAY,GAAG;AAClH,6BAAa,QAAQ,eAAe,mBAAmB;AAAA,QAC/D;AAsBM,2BAAa,QAAQ,6BAA6B,EAAE;AAC1D,YAAI,UAAU;AAAA,UACZ,SAAS,MAAM;AAAA,UACf,aAAa,qBAAqB,MAAM,gBAAgB,QAAQ,uBAAuB,SAAS,qBAAqB;AAAA,UACrH,OAAO,0BAA0B,yBAAyB,MAAM,oBAAoB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB,KAAK,OAAO,QAAQ,OAAO,QAAQ,2BAA2B,SAAS,yBAAyB,CAAC;AAAA;AAEnQ,YAAI,WAAW;AAAA,UACb,MAAM;AAAA,UACN;AAAA,UACA,aAAa;AAAA;AAEf,QAAA2F,KAAI,MAAM;AAAA,UACR;AAAA,UACA;AAAA,SACD;AAAA,MACH,GA7LU;AAAA,IA8LX,EAAC;AAAA,EACJ,GAvMO;AAAA,EAwMP,uBAAuB,gCAAS,sBAAsB,MAAM;AAC1D,QAAI,uBAAuB;AAC3B,QAAI,YAAY,KAAK,WACnB,UAAU,KAAK;AAOjB,KAAC,wBAAwB,kBAAkB,IAAI,QAAQ,OAAO,OAAO,OAAO,QAAQ,0BAA0B,WAAW,yBAAyB,sBAAsB,SAAS,OAAO,QAAQ,2BAA2B,UAAU,uBAAuB;AAAA,MAAK;AAAA;AAAA;AAAA;AAAA,MAIjQ;AAAA;AAAA,EACF,GAfuB;AAAA,EAgBvB,gBAAgB,YAAY,kBAAkB;AAChD,CAAC;AACM,IAAI,wBAAwB,QAAQ;AACpC,IAAI,qBAAqB,QAAQ;AACjC,SAAS,UAAU,MAAM;AAE9B,MAAI,OAAuC;AACrC,aAAK,cAAc,CAAC,KAAK,QAAQ,SAAS,KAAK,UAAU,GAAG;AAE9D,cAAQ,KAAK,8DAA8D;AAAA,QACzE,SAAS,KAAK;AAAA,QACd,YAAY,KAAK;AAAA,OAClB;AAAA,IACH;AAAA,EACF;AAEA,MAAI,OAAuC;AACzC,QAAI,WAAW,kBAAkB,IAAI,KAAK,OAAO;AACjD,QAAI,UAAU;AAEZ,cAAQ,KAAK,iEAAiE;AAAA,QAC5E;AAAA,QACA,UAAU;AAAA,OACX;AAAA,IACH;AAAA,EACF;AACO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP,QAAQ,cAAc;AAAA,IAAG,cAAc,IAAI;AAAA,IAAG,aAAa,KAAK,SAAS;AAAA,MACvE,WAAW;AAAA,MACX,OAAO;AAAA,KACR;AAAA;AACH;AA/BgB;AC7OA,+BACd,mBACA9H,UACA;AACA,MAAI,UAAU,6BAAM;AAAA,KAAN;AAEd,YAAU,MAAM;AACd,UAAM,UACJ,OAAO,sBAAsB,aACzB,sBACA;AAEN,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AAEA,cAAU,sBAAsB;AAAA,MAC9B;AAAA,MACA,GAAGA;AAAA,KACJ;AAAA,GACF;AAED,kBAAgB,MAAM;AACZ;EAAA,CACT;AACH;AAzBgB;AA2BA,+BACd,kBACAA,UACA;AACA,MAAI,UAAU,6BAAM;AAAA,KAAN;AAEd,YAAU,MAAM;AACd,UAAM,UACJ,OAAO,qBAAqB,aACxB,qBACA;AAEN,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AAEA,cAAU,UAAU;AAAA,MAClB;AAAA,MACA,GAAGA;AAAA,KACJ;AAAA,GACF;AAED,kBAAgB,MAAM;AACZ;EAAA,CACT;AACH;AAzBgB;;;;;;;;;;;;ACchB,UAAM,QAAQ;AAId,UAAMiC,QAAO;AAUP,0BAAgB,SAAiB,MAAM;AACvC,gBAAM,KAAK,MAAM;AACZ;AAAA,MACT;AACA,UAAI,MAAM,KAAK,cAAc,UAAa,MAAM,KAAK,cAAc,MAAM;AACvE,eAAO,MAAM,KAAK;AAAA,MACpB;AACO,mBAAM,KAAK,YAAY,SAAS;AAAA,KACxC;AACD,UAAM,oBAAoB,SAAkB,MAAM,cAAc,UAAU,EAAE;AAE5E,UAAM,gBAAgB,SAAkB,MAAM,CAAC,CAAC,MAAM,KAAK,YAAY;AACjE,8BACJ,OAAqC,mBAAmB;AAC1D,UAAM,YAAY;AAAA,MAChB,MAAM,cAAc,SAAS,kBAAkB,OAAO,QAAQ,MAAM,KAAK;AAAA;AAE3E,UAAM,gBAAgB;AACtB,UAAM,eAAe,cAAc;AAAA,MACjC,OAAO,YAAoB;AACzB,cAAM,MAAM,KAAK,aAAa,MAAM,MAAM,OAAO;AAAA,MACnD;AAAA,MACA,MAAM,KAAK;AAAA,MACX,MAAM;AACJ,0BAAkB,QAAQ;AAAA,MAC5B;AAAA;AAEI,sBAAY,IAAwB,IAAI;AACxC,oBAAU,IAAI,KAAK;AAEzB,UAAM,wBAAwB,6BAC5B,UAAU,OAAO,QAAQ,sBAAsB,GADnB;AAG1B,cAAM,KAAK,WAAW;AACxB,4BAAsB,uBAAuB;AAAA,QAC3C,gBAAgB,6BAAM;AACb;AAAA,YACL,MAAM;AAAA,YACN,MAAM,MAAM;AAAA;AAAA,QAEhB,GALgB;AAAA,QAMhB,aAAa,6BAAMA,MAAK,aAAa,MAAM,IAAI,GAAlC;AAAA,QACb,QAAQ,6BAAMA,MAAK,WAAW,MAAM,IAAI,GAAhC;AAAA,MAAgC,CACzC;AAAA,IACH;AAEI,cAAM,KAAK,WAAW;AACxB,4BAAsB,uBAAuB;AAAA,QAC3C,QAAQ,8BAAO,UAAU;AACjB,0BAAU,MAAM,OAAO;AACzB,sBAAQ,SAAS,sBAAsB;AACzC,kBAAM,MAAM,KAAK,aAAa,MAAM,MAAM,OAAO;AACjD,oBAAQ,QAAQ;AAChB,YAAAA,MAAK,eAAe,MAAM,MAAM,QAAQ,IAAI;AAAA,UAC9C;AAAA,QACF,GAPQ;AAAA,QAQR,aAAa,wBAAC,UAAU;AAChB,0BAAU,MAAM,OAAO;AACzB,sBAAQ,SAAS,sBAAsB;AACzC,oBAAQ,QAAQ;AAAA,UAClB;AAAA,QACF,GALa;AAAA,QAMb,aAAa,6BAAM;AACjB,kBAAQ,QAAQ;AAAA,QAClB,GAFa;AAAA,MAEb,CACD;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFM,UAAAytB,gBAAe9L,SAAqC,uBAAc;AACxE,YAAQ,gBAAgB8L,aAAY;AAC9B,0BAAgB9L,SAAoC,SAAC,eAAe;AAC1E,YAAQ,iBAAiB,aAAa;AAEhC,+BAAqB,cAAc,UAAU;AAEnD,UAAM,QAAQ;AAId,UAAM3hB,QAAO;AAKP,0BAAgB,SAAqC,MAAM;AACxD,mBAAM,MAAM,IAAI,YAAY;AAAA,KACpC;AACK,4BAAkB,wBAACW,UAA2B;AAClD,UAAIA,MAAK,SAAS;AACV,cAAAsb,QAAOtb,MAAK,QAAQA,KAAI;AAC9B,YAAIsb,OAAM;AACD,iBAAAA;AAAA,QACT;AAAA,iBACStb,MAAK,MAAM;AACpB,eAAOA,MAAK;AAAA,MACd;AAEA,UAAIA,MAAK,MAAM;AACN;AAAA,MACT;AACA,YAAM,aAAa8sB,cAAa,MAAM9sB,MAAK,GAAG;AAC9C,aAAO,aAAa,sBAAsB;AAAA,OAdpB;AAgBlB,yBAAe,wBAACA,UAAqD;AACzE,YAAM,WAAWA,MAAK,UAAU,IAAI,YAAY;AAChD,YAAM,cAAcA,MAAK,OACrB,IACA,SAAS,OAAO,CAAC,KAAK,UAAU,MAAM,MAAM,aAAa,CAAC;AACvD;AAAA,QACL,GAAGA;AAAA,QACH,MAAM,gBAAgBA,KAAI;AAAA,QAC1B;AAAA,QACA,MAAMA,MAAK,OAAO,SAAS;AAAA,QAC3B;AAAA,QACA,WAAWA,MAAK,eAAeA,MAAK,aAAaA,KAAI,IAAI;AAAA;AAAA,IAC3D,GAZmB;AAcf,+BAAqB,8BACzBxB,IACAwB,UACG;AACH,UAAI,CAAC,oBAAoB;AACvB,sBAAc,QAAQ;MACxB;AACA,UAAIA,MAAK,aAAa;AACd,cAAAA,MAAK,YAAYA,OAAMxB,EAAC;AAAA,MAChC;AACK,MAAAa,MAAA,aAAaW,OAAMxB,EAAC;AAAA,OAVA;AAYrB,UAAAsT,QAAO,IAAI,IAAI;AACf,2BAAiB,IAAqC,IAAI;AAChE,YAAQ,kBAAkB,cAAc;AAClC,2BAAiB,SAAS,MAAM;AACpC,aAAO,eAAe,OAAO,mBACzB,OAAO,eAAe,MAAM,qBAAqB,aAC/C,eAAe,MAAM,iBAAiB,eAAe,KAAK,IAC1D,eAAe,MAAM,mBACvB;IAAC,CACN;AACK,8BAAoB,IAAqC,IAAI;AACnE,YAAQ,qBAAqB,iBAAiB;AAExC,YAAE,GAAAvQ,OAAM;AACR,0BAAgB,wBAACvB,UAAmC;AACxD,wBAAkB,QAAQA;AAAA,OADN;AAGhB,0BAAgB,8BAAOA,UAAmC;AACxD,YAAAA,MAAK,eAAeA,KAAI;AAC9B,MAAAX,MAAK,cAAcW,KAAI;AAAA,OAFH;AAItB,UAAM,YAAY;AAAA,MAAqB,MACrC;AAAA,QACE;AAAA,UACE,OAAOuB,GAAE,UAAU;AAAA,UACnB,MAAM;AAAA,UACN,SAAS,6BAAM,cAAc,eAAe,KAAK,GAAxC;AAAA,UACT,SAAS,eAAe,OAAO,iBAAiB;AAAA,QAClD;AAAA,QACA;AAAA,UACE,OAAOA,GAAE,UAAU;AAAA,UACnB,MAAM;AAAA,UACN,SAAS,6BAAM,cAAc,eAAe,KAAK,GAAxC;AAAA,UACT,SAAS,eAAe,OAAO,iBAAiB;AAAA,UAChD,SAAS;AAAA;AAAA,QACX;AAAA,QACA,GAAG,eAAe;AAAA,QAClB,IAAI,CAAC,cAAc;AAAA,QACnB,GAAG;AAAA,QACH,SAAS,4BAA4B,SAAS,SAAS;AAAA,UACrD,SAAS,SAAS,WAAW;AAAA,SAC9B;AAAA,QACD;AAAA;AAGE,8BAAoB,wBAACvB,OAAgCxB,OAAkB;AAC3E,qBAAe,QAAQwB;AAClB,MAAAX,MAAA,eAAeW,OAAMxB,EAAC;AACvB,oBAAU,MAAM,OAAO,CAAC9B,UAASA,MAAK,OAAO,EAAE,SAAS,GAAG;AACxD,QAAAoV,MAAA,OAAO,KAAKtT,EAAC;AAAA,MACpB;AAAA,OALwB;AAQ1B,UAAM,gBAAgB;AACtB,UAAM,8BAA8B,wBAClC,SACA,EAAE,SAAAkF,WAAU,YACT;AACH,aAAOA,WACH,cAAc;AAAA,QACZ;AAAA,QACA,eAAe,OAAO;AAAA,UAExB,cAAc;AAAA,QACZ;AAAA,QACA,eAAe,OAAO;AAAA;AAAA,IACxB,GAZ8B;AAevB;AAAA,MACX;AAAA,MACA;AAAA,KACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClLD,IAAI4R,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,yIAAyI,OAAOA,IAAG,iBAAiB,GAAG,qBAAqB,EAAE,OAAOA,IAAG,oBAAoB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,sBAAsB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,eAAe,GAAG,wBAAwB,EAAE,OAAOA,IAAG,uBAAuB,GAAG,cAAc,EAAE,OAAOA,IAAG,aAAa,GAAG,oHAAoH;AACljB,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AACP;AACA,IAAI,eAAe,UAAU,OAAO;AAAA,EAClC,MAAM;AAAA,EACN,OAAO8C;AAAAA,EACP,SAAS9C;AACX,CAAC;ACZD,IAAIuF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWN;AAAAA,EACX,OAAO;AAAA,IACL,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIP,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWY;AAAAA,EACX,cAAc;AAChB;AAEA,IAAIH,eAAa,CAAC,iBAAiB;AACnC,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,MAAM;AAAA,IACN,mBAAmB,KAAK;AAAA,EAC5B,GAAK,KAAK,KAAK,MAAM,CAAC,GAAG,CAACuY,gBAAmB,OAAO,WAAW;AAAA,IAC3D,SAAS,KAAK,GAAG,OAAO;AAAA,EAC5B,GAAK,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,OAAO,CAAC,GAAG,EAAE,GAAGA,gBAAmB,OAAO,WAAW;AAAA,IACnG,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC7B,GAAK,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,QAAQ,CAAC,GAAG,EAAE,GAAGA,gBAAmB,OAAO,WAAW;AAAA,IACrG,SAAS,KAAK,GAAG,KAAK;AAAA,EAC1B,GAAK,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,IAAID,YAAU;AAC7E;AAZStY;AAcT6X,SAAO,SAAS7X;;;;;;;;;;;ACdhB,UAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACUd,UAAM,QAAQ;AAOd,UAAM,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNvB,UAAM,QAAQ;AAId,UAAM,WAAW,SAAS,MAAM,MAAM,KAAK,IAAI;AAEzC,uBAAa,IAA8C,IAAI;AACrE,UAAM,oBAAoB,IAAmB;AAAA,MAC3C,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,KACP;AAED,UAAM,eAAe;AACrB,UAAM,kBAAkB;AAAA,MAA2B,MACjD,aAAa,IAAI,wBAAwB;AAAA;AAG3C,UAAM,mBAAmB,mCAAY;AACnC,YAAM,cAAc,oBAAoB;AAClC,yBAAa,YAAY;AAE/B,YAAM,gBAAgB,WAAW,OAAO,IAAI,gBAAgB;AACtD,kCAAsB,OAAO,cAAc,WAAW;AAE5D,wBAAkB,MAAM,MACtB,gBAAgB,sBACZ,GAAG,KAAK,IAAI,GAAG,WAAW,OAAO,gBAAgB,uBAAuB,EAAE,CAAC,OAC3E,GAAG,WAAW,MAAM,EAAE;AACxB,0BAAgB,UAAU,QAAQ;AACpC,0BAAkB,MAAM,OAAO,GAAG,WAAW,KAAK;AAAA,aAC7C;AACL,0BAAkB,MAAM,OAAO,GAAG,WAAW,OAAO,GAAG;AAAA,MACzD;AAEA,eAAS,MAAM;IAAK,GAjBG;AAoBnB,sBAAY,IAAwB,IAAI;AACxC,gCAAsB,IAAwB,IAAI;AAClD,sBAAY,IAAI,KAAK;AAErB,wBAAc,SAAS,MAAM;AAE/B,uBAAU,SACV,SAAS,SACT,SAAS,MAAM,wBACd,SAAS,MAAM,UACd,SAAS,MAAM,wBAAwB,SAAS,MAAM,SACtD,SAAS,MAAM,eACf,SAAS,MAAM,cACf,SAAS,MAAM,kBACf,SAAS,MAAM;AAAA,KAEpB;AAED,UAAM,mBAAmB,mCAAY;AACnC,gBAAU,QAAQ;AAClB,YAAM,SAAS;AACE;IAAA,GAHM;AAKzB,UAAM,mBAAmB,6BAAM;AAC7B,gBAAU,QAAQ;AAAA,OADK;AAGzB,cAAU,MAAM;AACd,0BAAoB,QAAQ,UAAU,OAAO,QAAQ,sBAAsB;AACvD,iCAAO,iBAAiB,cAAc,gBAAgB;AACtD,iCAAO,iBAAiB,cAAc,gBAAgB;AAC1E,eAAS,MAAM;IAAK,CACrB;AAED,gBAAY,MAAM;AACI,iCAAO,oBAAoB,cAAc,gBAAgB;AACzD,iCAAO,oBAAoB,cAAc,gBAAgB;AAAA,KAC9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDK,YAAE,GAAAiC,OAAM;AAKd,UAAM,wBAAwB;AAE9B,UAAM,QAAQ;AAIR,6BAAmB,wBAAC,aAAqB;AAC7C,UAAIgQ,UAAS,YAAY,IAAI,MAAM,GAAG;AAC9B,MAAAA,gBAAM,WAAW,IAAIA,OAAM,CAAC,EAAE,MAAM,IAAI,IAAIA;AAC9C,mBAAOA,OAAM;AACb,kBAAMA,OAAM;AACX,gBAAG,GAAG,IAAI,IAAI;AAAA,OALE;AAQzB,UAAM,wBAAwB,6BAC5B,sBAAsB,OAAO,MAAM,SAAS,GAAG,GADnB;AAE9B,UAAM,uBAAuB,6BAC3B,sBAAsB,MAAM,MAAM,SAAS,GAAG,GADnB;AAE7B,UAAM,wBAAwB,6BAC5B,sBAAsB,OAAO,MAAM,SAAS,GAAG,GADnB;AAG9B,UAAM,uBAAuB,6BAAM;AACX,mCAAO,CAAC,UAAU;AAChC,0BAAY,MAAM,UAAU;AAAA,UAChC,CAAC,EAAE,IAAU,cAAQ,MAAM,SAAS;AAAA;AAAA,MACtC,CACD;AAAA,OAL0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3E7B,UAAM,wBAAwB;AAC9B,UAAM,EAAE,wBAAwB,YAAY,qBAAqB;;;;;;;;;;;;;;ACb1D,MAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAEtB;AAAA;AAAA,EAGA;AAAA,EAEP,YAAY,SAA2B,KAAa;AAClD,SAAK,UAAU;AACf,SAAK,MAAM;AAAA,EACb;AACF;AAGa,4BAAsB,4BAAY,eAAe,MAAM;AAC5D,yBAAiB,IAAyC,EAAE;AAClE,QAAM,eAAe;AACf,6BAAqB,IAAI,KAAK;AAMpC,WAAS,gBAAgB,WAAkD;AACxD;AACjB,WAAO,eAAe,MAAM,SAAS,IAAI,CAAC;AAAA,EAC5C;AAHS;AAST,WAAS,oBAAoB,WAAwC;AAClD;AACjB,WAAO,eAAe,MAAM,SAAS,KAAK;AAAA,EAC5C;AAHS;AASA,gCACP,WACA,cACA;AACiB;AACjB,QAAI,CAAC,eAAe,MAAM,SAAS,GAAG;AACrB,2BAAM,SAAS,IAAI;IACpC;AACA,mBAAe,MAAM,SAAS,EAAE,KAAK,YAAY;AAAA,EACnD;AATS;AAgBA,yBAAc,WAAmB,WAAmB,KAAa;AACxE;AAAA,MACE;AAAA,MACA,IAAI,kBAAkB,aAAa,eAAe,SAAS,GAAG,GAAG;AAAA;AAAA,EAErE;AALS;AAOT,WAAS,mBAAmB;AAC1B,QAAI,mBAAmB,OAAO;AAC5B;AAAA,IACF;AACA,QAAI,OAAO,KAAK,aAAa,cAAc,EAAE,WAAW,GAAG;AACzD;AAAA,IACF;AACA,uBAAmB,QAAQ;AAEb,iCAAe,0BAA0B,WAAW;AACpD,iCAAe,6BAA6B,WAAW;AACvD,2BAAS,cAAc,WAAW;AAClC,2BAAS,uBAAuB,WAAW;AAC3C,yBAAO,aAAa,UAAU;AAC9B,gCAAc,oBAAoB,kBAAkB;AAAA,EACpE;AAfS;AAiBF;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;AC3FM,SAAS,iBAAiBub,eAA4C;AACrE,qBAAa,wBAAC9sB,UAAmB;AACrC,QAAIA,MAAK,OAAO,OAAOA,MAAK,QAAQ,UAAU;AACxC,UAAAA,MAAK,OAAO8sB,cAAa,OAAO;AAC3B,eAAAA,cAAa,MAAM9sB,MAAK,GAAG;AAAA,aAC7B;AACQ,QAAA8sB,cAAA,MAAM9sB,MAAK,GAAG,IAAI;AAAA,MACjC;AAAA,IACF;AAAA,KAPiB;AAUb,8BAAsB,wBAACA,UAAmB;AAC9C,QAAIA,MAAK,OAAO,OAAOA,MAAK,QAAQ,UAAU;AACxC,UAAAA,MAAK,OAAO8sB,cAAa,OAAO;AAClC,qBAAa9sB,KAAI;AAAA,aACZ;AACL,mBAAWA,KAAI;AAAA,MACjB;AAAA,IACF;AAAA,KAP0B;AAUtB,qBAAa,wBAACA,UAAmB;AAEnC,QAAAA,MAAK,OACL,OAAOA,MAAK,QAAQ,YACpBA,MAAK,YACLA,MAAK,SAAS,QACd;AACa,MAAA8sB,cAAA,MAAM9sB,MAAK,GAAG,IAAI;AAEpB,0BAASA,MAAK,UAAU;AACjC,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAAA,KAZiB;AAeb,uBAAe,wBAACA,UAAmB;AAErC,QAAAA,MAAK,OACL,OAAOA,MAAK,QAAQ,YACpBA,MAAK,YACLA,MAAK,SAAS,QACd;AACO,aAAA8sB,cAAa,MAAM9sB,MAAK,GAAG;AAEvB,0BAASA,MAAK,UAAU;AACjC,qBAAa,KAAK;AAAA,MACpB;AAAA,IACF;AAAA,KAZmB;AAef,4BAAoB,wBAACxB,IAA+BwB,UAAmB;AAC3E,QAAIxB,GAAE,SAAS;AACb,0BAAoBwB,KAAI;AAAA,WACnB;AACL,iBAAWA,KAAI;AAAA,IACjB;AAAA,KALwB;AAQnB;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ;AAlEgB;;;;;;ACqEhB,UAAM,aAAa;AACnB,UAAM,mBAAmB;AACzB,UAAM,eAAe;AACf,wBAAc,IAAY,EAAE;AAC5B,UAAA8sB,gBAAe,IAA6B,EAAE;AACpD,UAAM,EAAE,YAAY,kBAAkB,IAAI,iBAAiBA,aAAY;AAEjE,2BAAiB,IAAqB,EAAE;AACxC,yBAAe,8BAAO,UAAkB;AAC5C,UAAI,CAAC,OAAO;AACV,uBAAe,QAAQ;AACvB,QAAAA,cAAa,QAAQ;AACrB;AAAA,MACF;AAEA,YAAM,WAAW;AACX,YAAAC,UAAS,MAAM;AACrB,qBAAe,QAAQ,WAAW,OAAO,OAAO,CAAC,UAAyB;AACjE,qBAAM,WAAW,SAASA,OAAM;AAAA,OACxC;AAED,eAAS,MAAM;AACb,mBAAWttB,OAAK,KAAK;AAAA,OACtB;AAAA,OAfkB;AAoBf,UAAAA,SAAO,SAAmB,MAAM;AAC9B,uBAA4B,YAAY,QAC1C,eAAe,QACf,CAAC,GAAG,WAAW,cAAc,GAAG,WAAW,MAAM;AAC9C;AAAA,QAAU;AAAA,QAAU,CAAC,kBAC1B,cAAc,IAAI,MAAM,GAAG;AAAA;AAAA,IAC7B,CACD;AAEK,yBAAe,SAA0C,MAAM;AAC7D,yBAAa,aAAa,IAAI,+BAA+B;AAC7D,2BAAe,wBAACO,UAAoD;AACxE,cAAM,WAAWA,MAAK,UAAU,IAAI,YAAY;AAChD,cAAM,QACJA,MAAK,QAAQA,MAAK,OAAOA,MAAK,OAAO;AACvC,cAAM,SACJ,CAACA,MAAK,QAAQA,MAAK,OAAOA,MAAK,OAAO;AAEjC;AAAA,UACL,KAAKA,MAAK;AAAA,UACV,OAAO,QACH,eAAe,UACb,MAAM,QACN,MAAM,uBACRA,MAAK;AAAA,UACT,MAAMA,MAAK;AAAA,UACX,MAAMA,MAAK;AAAA,UACX,SAAS,6BAAM;AACb,gBAAI,OAAO;AACF,2BAAM,QAAQ,gBAAgB;AAAA,YACvC;AACA,gBAAI,QAAQ;AACV,qBAAO,OAAO,UAAU,cAAc,UAClC,0BACA;AAAA,YACN;AACO;AAAA,UACT,GAVS;AAAA,UAWT,cAAc,6BAAM;AAGlB,gBAAI,CAAC,QAAQ;AACJ;AAAA,YACT;AACA,mBAAO,OAAO,UAAU,cAAc,SAAS,OAAO;AAAA,UACxD,GAPc;AAAA,UAQd;AAAA,UACA,WAAWA,MAAK;AAAA,UAChB,aAAa,wBACXA,QACAxB,OACG;AACH,gBAAIwB,OAAK,MAAM;AACb,oBAAM,WAAW,iBAAiB,gBAAgB,MAAM,SAAS;AACjE,kBAAI,UAAU;AACZ,sBAAMA,SAAOvB,MAAI,eAAe,SAAS,SAAS;AAAA,kBAChD,KAAKA,MAAI,gBAAgB;AAAA,iBAC1B;AACK,sBAAAkU,UAAS3S,OAAK,QAAQ;AAAA,kBAC1B,CAAC2S,aAAWA,SAAO,SAAS,SAAS;AAAA;AAEvC,oBAAIA,SAAQ;AACV,kBAAAA,QAAO,QAAQ,MAAM;AAAA,gBACvB;AAAA,cACF;AAAA,mBACK;AACL,gCAAkBnU,IAAGwB,MAAI;AAAA,YAC3B;AAAA,UACF,GApBa;AAAA,QAoBb;AAAA,MACF,GA1DmB;AA6Dd,0BAAaP,OAAK,KAAK;AAAA,KAC/B;AAED;AAAA,MACE3B,QAAMgvB,eAAc,OAAO;AAAA,MAC3B,CAAC,oBAAoB;AACZ,uBAAQ,eAAe,EAAE,QAAQ,CAAC,CAAC,KAAK,UAAU,MAAM;AAC7D,cAAI,YAAY;AACR,+BAAa,IAAI,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AACnD,gBAAI,cAAc,CAAC,WAAW,SAAS,GAAG,GAAG;AAE3C,yBAAW,qBAAqB,UAAU;AAAA,YAC5C;AAAA,UACF;AAAA,SACD;AAAA,MACH;AAAA,MACA,EAAE,MAAM,KAAK;AAAA;AAGf,cAAU,YAAY;AAChB,uBAAa,IAAI,gCAAgC,GAAG;AACtD,cAAM,WAAW;MACnB;AAAA,KACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5LM,MAAM,4BAA4B,6BAA2B;AAC5D,UAAE,GAAAvrB,OAAM;AAEP;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,OAAOA,GAAE,0BAA0B;AAAA,IACnC,SAASA,GAAE,0BAA0B;AAAA,IACrC,WAAW,QAAQ,sBAAsB;AAAA,IACzC,MAAM;AAAA,IACN,WAAW,6BAAM;AACf,UAAI,cAAc;AAChB,cAAM,wBAAwB;AAC1B,kCAAsB,oBAAoB,SAAS,GAAG;AACjD,uCAAsB,oBAAoB,OAAO,SAAS;AAAA,QACnE;AAAA,MACF;AAEO;AAAA,IACT,GATW;AAAA,EASX;AAEJ,GArByC;ACLzC,IAAI,iBAAiB,UAAU,OAAO;AAAA,EACpC,MAAM;AACR,CAAC;ACCD,IAAI,gBAAgB,cAAc,OAAO;AAAA,EACvC,OAAO;AACT,CAAC;AAED,SAASoT,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUN,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIM,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASyB,UAAQ5X,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAtP6U;AACT,SAASC,gBAAc7X,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI6U,UAAQ,OAAO7U,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAEiB,wBAAgBzW,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI6U,UAAQ,OAAO7U,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAA9a6X;AACT,SAASpB,kBAAgBzW,IAAG,GAAG+C,IAAG;AAAE,UAAQ,IAAIyT,iBAAe,CAAC,MAAMxW,KAAI,OAAO,eAAeA,IAAG,GAAG,EAAE,OAAO+C,IAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AAAI;AAA3KyW;AACT,SAASD,iBAAezT,IAAG;AAAE,MAAI,IAAI2T,eAAa3T,IAAG,QAAQ;AAAG,SAAO,YAAYoT,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASE,eAAa3T,IAAG,GAAG;AAAE,MAAI,YAAYoT,UAAQpT,EAAC,KAAK,CAACA,GAAG,QAAOA;AAAG,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAAG,MAAI,WAAW/C,IAAG;AAAE,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAAG,QAAI,YAAYoT,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQpT,EAAC;AAAI;AAAnT2T;AACN,IAAC,YAAY,cAAc,OAAO,aAAa;AAAA,EAChD,SAAS,gCAASvU,UAAQ,IAAI,SAAS;AACrC,QAAI,OAAO,QAAQ,SAAS,CAAE,GAC5BqC,YAAW,KAAK;AAClB,QAAI,CAACA,WAAU;AACb,WAAK,8BAA8B,IAAI,OAAO;AAC9C,WAAK,KAAK,IAAI,OAAO;AACrB,WAAK,iBAAiB,IAAI,OAAO;AAAA,IAClC;AACD,OAAG,aAAa,qBAAqB,IAAI;AACzC,SAAK,MAAM;AAAA,EACZ,GAVQ;AAAA,EAWT,SAAS,gCAASnC,SAAQ,IAAI,SAAS;AACrC,QAAI,QAAQ,QAAQ,SAAS,CAAE,GAC7BmC,YAAW,MAAM;AACnB,IAAAA,aAAY,KAAK,OAAO,EAAE;AAAA,EAC3B,GAJQ;AAAA,EAKT,WAAW,gCAASjC,WAAU,IAAI;AAChC,SAAK,OAAO,EAAE;AAAA,EACf,GAFU;AAAA,EAGX,SAAS;AAAA,IACP,qBAAqB,gCAAS,oBAAoB,UAAU;AAC1D,aAAO,kEAAoE,OAAO,aAAa,QAAQ,aAAa,SAAS,WAAW,EAAE;AAAA,IAC3I,GAFoB;AAAA,IAGrB,MAAM,gCAASmG,MAAK,IAAI,SAAS;AAC/B,UAAI,QAAQ;AACZ,UAAI,QAAQ,QAAQ,SAAS,CAAE,GAC7B,YAAY,MAAM,WAClB,aAAa,MAAM;AACrB,SAAG,gCAAgC,IAAI,iBAAiB,SAAU,cAAc;AAC9E,qBAAa,QAAQ,SAAU,UAAU;AACvC,cAAI,SAAS,SAAS,eAAe,CAAC,GAAG,SAAS,SAAS,aAAa,GAAG;AACzE,gBAAI,4BAA4B,gCAAS,yBAAyB,KAAK;AACrE,kBAAI,mBAAmB,mBAAmB,GAAG,IAAI,mBAAmB,KAAK,MAAM,oBAAoB,GAAG,8BAA8B,CAAC,IAAI,MAAM,yBAAyB,IAAI,MAAM,oBAAoB,GAAG,8BAA8B,CAAC,IAAI,yBAAyB,GAAG;AACxQ,qBAAO,WAAW,gBAAgB,IAAI,mBAAmB,IAAI,eAAe,0BAA0B,IAAI,WAAW;AAAA,YACnI,GAH4C;AAIhC,kBAAM,0BAA0B,SAAS,WAAW,CAAC;AAAA,UACtD;AAAA,QACX,CAAS;AAAA,MACT,CAAO;AACD,SAAG,8BAA8B;AACjC,SAAG,8BAA8B,QAAQ,IAAI;AAAA,QAC3C,WAAW;AAAA,MACnB,CAAO;AACD,SAAG,+BAA+B,SAAU,OAAO;AACjD,eAAO,aAAa,UAAU,KAAK;AAAA,MAC3C;AACM,SAAG,gCAAgC,SAAU,OAAO;AAClD,eAAO,cAAc,WAAW,KAAK;AAAA,MAC7C;AACM,SAAG,iBAAiB,WAAW,GAAG,4BAA4B;AAC9D,SAAG,iBAAiB,YAAY,GAAG,6BAA6B;AAAA,IACjE,GA5BK;AAAA,IA6BN,QAAQ,gCAAS,OAAO,IAAI;AAC1B,SAAG,iCAAiC,GAAG,8BAA8B,WAAU;AAC/E,SAAG,gCAAgC,GAAG,oBAAoB,WAAW,GAAG,4BAA4B,MAAM,GAAG,+BAA+B;AAC5I,SAAG,iCAAiC,GAAG,oBAAoB,YAAY,GAAG,6BAA6B,MAAM,GAAG,gCAAgC;AAAA,IACjJ,GAJO;AAAA,IAKR,WAAW,gCAAS,UAAU9J,UAAS;AACrC,WAAK,iBAAiB,KAAK,KAAK;AAAA,QAC9B,OAAOiZ,gBAAcA,gBAAc,CAAE,GAAEjZ,QAAO,GAAG,IAAI;AAAA,UACnD,WAAW;AAAA,QACrB,CAAS;AAAA,MACT,CAAO;AAAA,IACF,GANU;AAAA,IAOX,kBAAkB,gCAAS,iBAAiB,IAAI,SAAS;AACvD,UAAI,QAAQ,QAAQ,SAAS,CAAE,GAC7B,wBAAwB,MAAM,mBAC9B,oBAAoB,0BAA0B,SAAS,KAAK,uBAC5D,wBAAwB,MAAM,wBAC9B,yBAAyB,0BAA0B,SAAS,KAAK,uBACjE,kBAAkB,MAAM,WACxB4vB,aAAY,oBAAoB,SAAS,QAAQ;AACnD,UAAI,mBAAmB,yBAAyB,IAAI,cAAc,OAAO,KAAK,oBAAoB,iBAAiB,CAAC,CAAC;AACrH,MAAAA,cAAa,CAAC,qBAAqB,mBAAmB,yBAAyB,IAAI,KAAK,oBAAoB,sBAAsB,CAAC;AACnI,YAAM,gBAAgB;AAAA,IACvB,GAXiB;AAAA,IAYlB,2BAA2B,gCAAS,0BAA0B,OAAO;AACnE,UAAI;AACJ,UAAI,gBAAgB,MAAM,eACxB,gBAAgB,MAAM;AACxB,UAAI,mBAAmB,kBAAkB,cAAc,2CAA2C,GAAG,YAAY,KAAK,SAAS,QAAQ,cAAc,UAAU,UAAU,SAAS,aAAa,KAAK,yBAAyB,cAAc,eAAe,KAAK,oBAAoB,cAAc,8BAA8B,CAAC,IAAI,cAAc;AAClV,YAAM,gBAAgB;AAAA,IACvB,GAN0B;AAAA,IAO3B,0BAA0B,gCAAS,yBAAyB,OAAO;AACjE,UAAI;AACJ,UAAI,gBAAgB,MAAM,eACxB,gBAAgB,MAAM;AACxB,UAAI,mBAAmB,kBAAkB,cAAc,4CAA4C,GAAG,aAAa,KAAK,SAAS,QAAQ,eAAe,UAAU,WAAW,SAAS,aAAa,KAAK,wBAAwB,cAAc,eAAe,KAAK,oBAAoB,cAAc,8BAA8B,CAAC,IAAI,cAAc;AACrV,YAAM,gBAAgB;AAAA,IACvB,GANyB;AAAA,IAO1B,+BAA+B,gCAAS,8BAA8B,IAAI,SAAS;AACjF,UAAI,SAAS;AACb,UAAI,QAAQ,QAAQ,SAAS,CAAE,GAC7B,iBAAiB,MAAM,UACvB,WAAW,mBAAmB,SAAS,IAAI,gBAC3C,wBAAwB,MAAM,wBAC9B,yBAAyB,0BAA0B,SAAS,KAAK,uBACjE,wBAAwB,MAAM,uBAC9B,wBAAwB,0BAA0B,SAAS,KAAK;AAClE,UAAI,yBAAyB,gCAASC,wBAAuBxP,UAAS;AACpE,eAAO,cAAc,QAAQ;AAAA,UAC3B,SAAS;AAAA,UACT;AAAA,UACA,MAAM;AAAA,UACN,eAAe;AAAA,UACf,4BAA4B;AAAA,UAC5B,2BAA2B;AAAA,UAC3B,SAASA,aAAY,QAAQA,aAAY,SAAS,SAASA,SAAQ,KAAK,MAAM;AAAA,QACxF,CAAS;AAAA,MACT,GAVmC;AAW7B,UAAI,wBAAwB,uBAAuB,KAAK,yBAAyB;AACjF,UAAI,uBAAuB,uBAAuB,KAAK,wBAAwB;AAC/E,4BAAsB,0CAA0C;AAChE,4BAAsB,iCAAiC;AACvD,4BAAsB,aAAa,mBAAmB,uBAAuB;AAC7E,2BAAqB,2CAA2C;AAChE,2BAAqB,iCAAiC;AACtD,2BAAqB,aAAa,mBAAmB,sBAAsB;AAC3E,SAAG,QAAQ,qBAAqB;AAChC,SAAG,OAAO,oBAAoB;AAAA,IAC/B,GA9B8B;AAAA,EA+BhC;AACH,CAAC;ACxID,IAAInI,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,mCAAmC,OAAOA,IAAG,gBAAgB,GAAG,qBAAqB,EAAE,OAAOA,IAAG,oBAAoB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,eAAe,GAAG,2BAA2B,EAAE,OAAOA,IAAG,sBAAsB,GAAG,wBAAwB,EAAE,OAAOA,IAAG,uBAAuB,GAAG,qBAAqB,EAAE,OAAOA,IAAG,gBAAgB,GAAG,6CAA6C,EAAE,OAAOA,IAAG,yBAAyB,GAAG,qDAAqD,EAAE,OAAOA,IAAG,gBAAgB,GAAG,8BAA8B,EAAE,OAAOA,IAAG,gBAAgB,GAAG,0ZAA0Z,EAAE,OAAOA,IAAG,sBAAsB,GAAG,KAAK,EAAE,OAAOA,IAAG,oBAAoB,GAAG,4JAA8J,EAAE,OAAOA,IAAG,gBAAgB,GAAG,wCAAwC,EAAE,OAAOA,IAAG,gBAAgB,GAAG,gGAAgG,EAAE,OAAOA,IAAG,oBAAoB,GAAG,iDAAiD,EAAE,OAAOA,IAAG,gBAAgB,GAAG,gCAAgC,EAAE,OAAOA,IAAG,gBAAgB,GAAG,yFAAyF,EAAE,OAAOA,IAAG,sBAAsB,GAAG,6MAA6M,EAAE,OAAOA,IAAG,oBAAoB,GAAG,8GAA8G,EAAE,OAAOA,IAAG,sBAAsB,GAAG,QAAQ;AAC7kE,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM;AAAA,EACN,SAAS;AACX;AACA,IAAI,eAAe,UAAU,OAAO;AAAA,EAClC,MAAM;AAAA,EACN,OAAO8C;AAAAA,EACP,SAAS9C;AACX,CAAC;ACFD,IAAIuF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWN;AAAAA,EACX,OAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIP,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWY;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,QAAQ,MAAM;AAAA,EACtB,MAAM,gCAASxY,SAAO;AACpB,WAAO;AAAA,MACL,SAAS;AAAA,IACf;AAAA,EACG,GAJK;AAAA,EAKN,OAAO;AAAA,IACL,aAAa;AAAA,MACX,WAAW;AAAA,MACX,SAAS,gCAASN,SAAQ5B,WAAU;AAClC,YAAIA,WAAU;AACZ,eAAK,yBAAwB;AAAA,QACvC,OAAe;AACL,eAAK,2BAA0B;AAAA,QAChC;AAAA,MACF,GANQ;AAAA,IAOV;AAAA,EACF;AAAA,EACD,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,eAAe,gCAASyD,iBAAgB;AACtC,QAAI,KAAK,aAAa;AACpB,WAAK,2BAA0B;AAAA,IAChC;AACD,QAAI,KAAK,eAAe;AACtB,WAAK,cAAc;AACnB,WAAK,gBAAgB;AAAA,IACtB;AACD,SAAK,aAAY;AACjB,SAAK,qBAAoB;AACzB,SAAK,SAAS;AACd,QAAI,KAAK,aAAa,KAAK,YAAY;AACrC,aAAO,MAAM,KAAK,SAAS;AAAA,IAC5B;AACD,QAAI,KAAK,sBAAsB;AAC7B,sBAAgB,IAAI,iBAAiB,KAAK,oBAAoB;AAC9D,WAAK,uBAAuB;AAAA,IAC7B;AACD,SAAK,YAAY;AAAA,EAClB,GAnBc;AAAA,EAoBf,SAAS,gCAASH,YAAU;AAC1B,QAAI,KAAK,aAAa;AACpB,WAAK,YAAW;AAAA,IACjB;AAAA,EACF,GAJQ;AAAA,EAKT,SAAS;AAAA,IACP,QAAQ,gCAASqS,QAAO,OAAO,QAAQ;AACrC,UAAI,KAAK,QAAS,MAAK,KAAI;AAAA,UAAQ,MAAK,KAAK,OAAO,MAAM;AAAA,IAC3D,GAFO;AAAA,IAGR,MAAM,gCAAS+Q,MAAK,OAAO,QAAQ;AACjC,WAAK,UAAU;AACf,WAAK,cAAc,MAAM;AACzB,WAAK,SAAS,UAAU,MAAM;AAAA,IAC/B,GAJK;AAAA,IAKN,MAAM,gCAAS4G,QAAO;AACpB,WAAK,UAAU;AAAA,IAChB,GAFK;AAAA,IAGN,gBAAgB,gCAAS,iBAAiB;AACxC,WAAK,YAAY;AAAA,IAClB,GAFe;AAAA,IAGhB,SAAS,gCAAShoB,SAAQ,IAAI;AAC5B,UAAI,QAAQ;AACZ,WAAK,UAAU,aAAa,KAAK,mBAAmB,EAAE;AACtD,eAAS,IAAI;AAAA,QACX,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,MACd,CAAO;AACD,WAAK,aAAY;AACjB,UAAI,KAAK,aAAa;AACpB,aAAK,yBAAwB;AAAA,MAC9B;AACD,WAAK,mBAAkB;AACvB,WAAK,mBAAkB;AACvB,UAAI,KAAK,YAAY;AACnB,eAAO,IAAI,WAAW,IAAI,KAAK,aAAa,KAAK,UAAU,OAAO,OAAO,OAAO;AAAA,MACjF;AACD,WAAK,uBAAuB,SAAUnE,IAAG;AACvC,YAAI,MAAM,UAAU,SAASA,GAAE,MAAM,GAAG;AACtC,gBAAM,YAAY;AAAA,QACnB;AAAA,MACT;AACM,WAAK,MAAK;AACV,sBAAgB,GAAG,iBAAiB,KAAK,oBAAoB;AAC7D,WAAK,MAAM,MAAM;AACjB,UAAI,KAAK,eAAe;AACtB,aAAK,4BAA2B;AAAA,MACjC;AAAA,IACF,GA5BQ;AAAA,IA6BT,SAAS,gCAASsE,WAAU;AAC1B,WAAK,2BAA0B;AAC/B,WAAK,qBAAoB;AACzB,WAAK,qBAAoB;AACzB,WAAK,8BAA6B;AAClC,sBAAgB,IAAI,iBAAiB,KAAK,oBAAoB;AAC9D,WAAK,uBAAuB;AAC5B,WAAK,MAAM,MAAM;AAAA,IAClB,GARQ;AAAA,IAST,cAAc,gCAASC,cAAa,IAAI;AACtC,UAAI,KAAK,YAAY;AACnB,eAAO,MAAM,EAAE;AAAA,MAChB;AAAA,IACF,GAJa;AAAA,IAKd,cAAc,gCAAS4b,gBAAe;AACpC,uBAAiB,KAAK,WAAW,KAAK,QAAQ,KAAK;AACnD,UAAI,kBAAkB,UAAU,KAAK,SAAS;AAC9C,UAAI,eAAe,UAAU,KAAK,MAAM;AACxC,UAAI,YAAY;AAChB,UAAI,gBAAgB,OAAO,aAAa,MAAM;AAC5C,oBAAY,aAAa,OAAO,gBAAgB;AAAA,MACjD;AACD,WAAK,UAAU,MAAM,YAAY,IAAI,oBAAoB,EAAE,MAAM,GAAG,OAAO,WAAW,IAAI,CAAC;AAC3F,UAAI,gBAAgB,MAAM,aAAa,KAAK;AAC1C,aAAK,UAAU,aAAa,0BAA0B,MAAM;AAC5D,SAAC,KAAK,cAAc,SAAS,KAAK,WAAW,mBAAmB;AAAA,MACjE;AAAA,IACF,GAba;AAAA,IAcd,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,UAAI,MAAM,SAAS,YAAY,KAAK,eAAe;AACjD,aAAK,KAAI;AACT,cAAM,KAAK,MAAM;AAAA,MAClB;AAAA,IACF,GALiB;AAAA,IAMlB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,gBAAM,eAAc;AAAA,MACvB;AAAA,IACF,GARgB;AAAA,IASjB,OAAO,gCAASuO,SAAQ;AACtB,UAAI,cAAc,KAAK,UAAU,cAAc,aAAa;AAC5D,UAAI,aAAa;AACf,oBAAY,MAAK;AAAA,MAClB;AAAA,IACF,GALM;AAAA,IAMP,WAAW,gCAASpR,WAAU,OAAO;AACnC,UAAI,MAAM,SAAS,YAAY,KAAK,eAAe;AACjD,aAAK,UAAU;AAAA,MAChB;AAAA,IACF,GAJU;AAAA,IAKX,6BAA6B,gCAAS,8BAA8B;AAClE,UAAI,CAAC,KAAK,yBAAyB;AACjC,aAAK,0BAA0B,KAAK,UAAU,KAAK,IAAI;AACvD,eAAO,SAAS,iBAAiB,WAAW,KAAK,uBAAuB;AAAA,MACzE;AAAA,IACF,GAL4B;AAAA,IAM7B,+BAA+B,gCAAS,gCAAgC;AACtE,UAAI,KAAK,yBAAyB;AAChC,eAAO,SAAS,oBAAoB,WAAW,KAAK,uBAAuB;AAC3E,aAAK,0BAA0B;AAAA,MAChC;AAAA,IACF,GAL8B;AAAA,IAM/B,0BAA0B,gCAASmP,4BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,wBAAwB9X,cAAY;AAC5C,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,OAAO,WAAW,CAAC,OAAO,aAAa,CAAC,OAAO,gBAAgB,KAAK,GAAG;AACzE,mBAAO,UAAU;AAAA,UAClB;AACD,iBAAO,YAAY;AAAA,QAC7B;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAXyB;AAAA,IAY1B,4BAA4B,gCAAS+X,8BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAC5B,aAAK,YAAY;AAAA,MAClB;AAAA,IACF,GAN2B;AAAA,IAO5B,oBAAoB,gCAASzW,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,eAAe;AACvB,aAAK,gBAAgB,IAAI,8BAA8B,KAAK,QAAQ,WAAY;AAC9E,cAAI,OAAO,SAAS;AAClB,mBAAO,UAAU;AAAA,UAClB;AAAA,QACX,CAAS;AAAA,MACF;AACD,WAAK,cAAc;IACpB,GAVmB;AAAA,IAWpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;MACpB;AAAA,IACF,GAJqB;AAAA,IAKtB,oBAAoB,gCAASkK,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,WAAY;AAChC,cAAI,OAAO,WAAW,CAAC,iBAAiB;AACtC,mBAAO,UAAU;AAAA,UAClB;AAAA,QACX;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAVmB;AAAA,IAWpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,aAAO,KAAK,gBAAgB,KAAK,gBAAgB,MAAM,UAAU,KAAK,YAAY,SAAS,MAAM,MAAM;AAAA,IACxG,GAFgB;AAAA,IAGjB,cAAc,gCAAS+E,cAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,aAAa,gCAAS,cAAc;AAClC,UAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK,YAAY;AAC1C,YAAI;AACJ,aAAK,eAAe,SAAS,cAAc,OAAO;AAClD,aAAK,aAAa,OAAO;AACzB,qBAAa,KAAK,cAAc,UAAU,kBAAkB,KAAK,eAAe,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,YAAY,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,SAAS,QAAQ,oBAAoB,SAAS,SAAS,gBAAgB,KAAK;AAC1T,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,YAAI,YAAY;AAChB,iBAAS,cAAc,KAAK,aAAa;AACvC,uBAAa,2DAA2D,OAAO,YAAY,8CAA8C,EAAE,OAAO,KAAK,mBAAmB,8CAA8C,EAAE,OAAO,KAAK,YAAY,UAAU,GAAG,8FAA8F;AAAA,QAC9V;AACD,aAAK,aAAa,YAAY;AAAA,MAC/B;AAAA,IACF,GAbY;AAAA,IAcb,cAAc,gCAAS,eAAe;AACpC,UAAI,KAAK,cAAc;AACrB,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,aAAK,eAAe;AAAA,MACrB;AAAA,IACF,GALa;AAAA,IAMd,gBAAgB,gCAASuJ,gBAAe,OAAO;AAC7C,sBAAgB,KAAK,iBAAiB;AAAA,QACpC,eAAe;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALe;AAAA,EAMjB;AAAA,EACD,UAAU;AAAA,IACR,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,kBAAiB;AAAA,IACzB,GAFkB;AAAA,EAGpB;AAAA,EACD,YAAY;AAAA,IACV,WAAW;AAAA,IACX,QAAQ;AAAA,EACT;AAAA,EACD,YAAY;AAAA,IACV,QAAQvM;AAAAA,EACT;AACH;AAEA,IAAIhJ,eAAa,CAAC,YAAY;AAC9B,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,SAAO,UAAS,GAAI,YAAY,mBAAmB;AAAA,IACjD,UAAU,KAAK;AAAA,EACnB,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,YAAY,WAAW;AAAA,QACzC,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,MACxB,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,MAAM,UAAU,gBAAgB,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,YACxF,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,YACY,SAAS,KAAK,GAAG,MAAM;AAAA,UACxB,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,YAAY,WAAW,KAAK,QAAQ,aAAa;AAAA,YACnF,KAAK;AAAA,YACL,eAAe,SAAS;AAAA,YACxB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,qBAAO,SAAS,gBAAgB,KAAK;AAAA,YACtC,GAFgB;AAAA,UAGlB,MAAK,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YACtD,KAAK;AAAA,YACL,SAAS,KAAK,GAAG,SAAS;AAAA,YAC1B,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,YACY,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AACjD,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,YACY,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,qBAAO,SAAS,oBAAoB,SAAS,iBAAiB,MAAM,UAAU,SAAS;AAAA,YACrG;AAAA,UACW,GAAE,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,IAAIsY,YAAU,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC;AAAA,QAC1J,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,WAAW,cAAc,CAAC,CAAC;AAAA,IACpD,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,GAAG,CAAC,UAAU,CAAC;AACpB;AAhDStY;AAkDT6X,SAAO,SAAS7X;ACtWhB,MAAM,gBAA+B;AAAA,EACnC,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,WAAW;AAAA,QACT,MAAM;AAAA;AAAA,QACN,aAAa;AAAA;AAAA,QACb,oBAAoB;AAAA;AAAA,QACpB,cAAc;AAAA;AAAA,QACd,aAAa;AAAA;AAAA,QACb,OAAO;AAAA;AAAA,QACP,QAAQ;AAAA;AAAA,QACR,MAAM;AAAA;AAAA,QACN,OAAO;AAAA;AAAA,QACP,aAAa;AAAA;AAAA,QACb,KAAK;AAAA;AAAA,QACL,OAAO;AAAA;AAAA,QACP,QAAQ;AAAA;AAAA,QACR,SAAS;AAAA;AAAA,QACT,QAAQ;AAAA;AAAA,QACR,OAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAgB;AAAA,QACd,kBACE;AAAA,QACF,wBAAwB;AAAA,QACxB,kBAAkB;AAAA,QAClB,2BAA2B;AAAA,QAC3B,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,sBAAsB;AAAA,QACtB,uBAAuB;AAAA,QACvB,oBAAoB;AAAA,QACpB,wBAAwB;AAAA,QACxB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QAEpB,gBAAgB;AAAA,QAChB,sBAAsB;AAAA,QACtB,mBAAmB;AAAA,QACnB,6BAA6B;AAAA,QAE7B,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,uBAAuB;AAAA,QAEvB,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,cAAc;AAAA,QACd,cAAc;AAAA,QACd,oBAAoB;AAAA,QACpB,oBAAoB;AAAA,QACpB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,WAAW;AAAA,QACT,MAAM;AAAA;AAAA,QACN,aAAa;AAAA;AAAA,QACb,oBAAoB;AAAA;AAAA,QACpB,cAAc;AAAA;AAAA,QACd,aAAa;AAAA;AAAA,QACb,OAAO;AAAA;AAAA,QACP,QAAQ;AAAA;AAAA,QACR,MAAM;AAAA;AAAA,QACN,OAAO;AAAA;AAAA,QACP,aAAa;AAAA;AAAA,QACb,KAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAgB;AAAA,QACd,kBACE;AAAA,QACF,wBAAwB;AAAA,QACxB,kBAAkB;AAAA,QAClB,2BAA2B;AAAA,QAC3B,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,sBAAsB;AAAA,QACtB,uBAAuB;AAAA,QACvB,oBAAoB;AAAA,QACpB,wBAAwB;AAAA,QACxB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QAEpB,gBAAgB;AAAA,QAChB,sBAAsB;AAAA,QACtB,mBAAmB;AAAA,QACnB,6BAA6B;AAAA,QAE7B,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,uBAAuB;AAAA,QAEvB,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,cAAc;AAAA,QACd,cAAc;AAAA,QACd,oBAAoB;AAAA,QACpB,oBAAoB;AAAA,QACpB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,WAAW;AAAA,QACT,MAAM;AAAA;AAAA,QACN,aAAa;AAAA;AAAA,QACb,oBAAoB;AAAA;AAAA,QACpB,cAAc;AAAA;AAAA,QACd,aAAa;AAAA;AAAA,QACb,OAAO;AAAA;AAAA,QACP,QAAQ;AAAA;AAAA,QACR,MAAM;AAAA;AAAA,QACN,OAAO;AAAA;AAAA,QACP,aAAa;AAAA;AAAA,QACb,eAAe;AAAA;AAAA,QACf,KAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAgB;AAAA,QACd,kBAAkB;AAAA;AAAA,QAClB,2BAA2B;AAAA,QAC3B,gBAAgB;AAAA,QAChB,iBAAiB;AAAA;AAAA,QACjB,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,sBAAsB;AAAA;AAAA,QACtB,uBAAuB;AAAA;AAAA,QACvB,oBAAoB;AAAA,QACpB,wBAAwB;AAAA;AAAA,QACxB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QAEpB,gBAAgB;AAAA;AAAA,QAChB,sBAAsB;AAAA;AAAA,QACtB,mBAAmB;AAAA;AAAA,QACnB,6BAA6B;AAAA;AAAA,QAE7B,YAAY;AAAA;AAAA,QACZ,kBAAkB;AAAA;AAAA,QAClB,uBAAuB;AAAA;AAAA,MACzB;AAAA,MACA,YAAY;AAAA,QACV,YAAY;AAAA;AAAA,QACZ,YAAY;AAAA;AAAA,QACZ,iBAAiB;AAAA;AAAA,QACjB,2BAA2B;AAAA,QAC3B,kBAAkB;AAAA;AAAA,QAClB,cAAc;AAAA;AAAA,QACd,gBAAgB;AAAA;AAAA,QAChB,aAAa;AAAA;AAAA,QACb,cAAc;AAAA;AAAA,QACd,gBAAgB;AAAA;AAAA,QAChB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,cAAc;AAAA,QACd,cAAc;AAAA,QACd,oBAAoB;AAAA,QACpB,oBAAoB;AAAA,QACpB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,WAAW;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,QACN,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,qBAAqB;AAAA,QACrB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,aAAa;AAAA,QACb,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,iBAAiB;AAAA,QACjB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,qBAAqB;AAAA,QACrB,OAAO;AAAA,QACP,mBAAmB;AAAA,QACnB,eAAe;AAAA,QACf,KAAK;AAAA,MACP;AAAA,MACA,gBAAgB;AAAA,QACd,kBACE;AAAA,QACF,wBAAwB;AAAA,QACxB,kBAAkB;AAAA,QAClB,2BAA2B;AAAA,QAC3B,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,sBAAsB;AAAA,QACtB,uBAAuB;AAAA,QACvB,oBAAoB;AAAA,QACpB,wBAAwB;AAAA,QACxB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QACpB,gBAAgB;AAAA,QAChB,sBAAsB;AAAA,QACtB,mBAAmB;AAAA,QACnB,6BAA6B;AAAA,QAC7B,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,uBAAuB;AAAA,MACzB;AAAA,MACA,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,cAAc;AAAA,QACd,cAAc;AAAA,QACd,oBAAoB;AAAA,QACpB,oBAAoB;AAAA,QACpB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,WAAW;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,QACN,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,qBAAqB;AAAA,QACrB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,aAAa;AAAA,QACb,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,iBAAiB;AAAA,QACjB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,qBAAqB;AAAA,QACrB,OAAO;AAAA,QACP,mBAAmB;AAAA,QACnB,eAAe;AAAA,QACf,KAAK;AAAA,MACP;AAAA,MACA,gBAAgB;AAAA,QACd,kBACE;AAAA,QACF,wBAAwB;AAAA,QACxB,kBAAkB;AAAA,QAClB,2BAA2B;AAAA,QAC3B,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,sBAAsB;AAAA,QACtB,uBAAuB;AAAA,QACvB,oBAAoB;AAAA,QACpB,wBAAwB;AAAA,QACxB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QACpB,gBAAgB;AAAA,QAChB,sBAAsB;AAAA,QACtB,mBAAmB;AAAA,QACnB,6BAA6B;AAAA,QAC7B,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,uBAAuB;AAAA,MACzB;AAAA,MACA,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,cAAc;AAAA,QACd,cAAc;AAAA,QACd,oBAAoB;AAAA,QACpB,oBAAoB;AAAA,QACpB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,MACN,WAAW;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,QACN,aAAa;AAAA,QACb,oBAAoB;AAAA,QACpB,cAAc;AAAA,QACd,aAAa;AAAA,QACb,qBAAqB;AAAA,QACrB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,aAAa;AAAA,QACb,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,iBAAiB;AAAA,QACjB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,qBAAqB;AAAA,QACrB,OAAO;AAAA,QACP,mBAAmB;AAAA,QACnB,eAAe;AAAA,QACf,KAAK;AAAA,MACP;AAAA,MACA,gBAAgB;AAAA,QACd,kBACE;AAAA,QACF,wBAAwB;AAAA,QACxB,kBAAkB;AAAA,QAClB,2BAA2B;AAAA,QAC3B,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,sBAAsB;AAAA,QACtB,uBAAuB;AAAA,QACvB,oBAAoB;AAAA,QACpB,wBAAwB;AAAA,QACxB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QACpB,gBAAgB;AAAA,QAChB,sBAAsB;AAAA,QACtB,mBAAmB;AAAA,QACnB,6BAA6B;AAAA,QAC7B,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,uBAAuB;AAAA,MACzB;AAAA,MACA,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,2BAA2B;AAAA,QAC3B,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,cAAc;AAAA,QACd,cAAc;AAAA,QACd,oBAAoB;AAAA,QACpB,oBAAoB;AAAA,QACpB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACF;AAEA,MAAM,KAAK;AACX,MAAM,wBAAwB;AAC9B,MAAM,wBAAwB;AAC9B,MAAM,MAA4C;AAAA,EAChD,QAAQ;AACV;AAEA,MAAM,yBAAyB,6BAAqB;AAClD,SAAOb,MAAI,GAAG,SAAS,gBAAgB,uBAAuB,EAAE;AAClE,GAF+B;AAI/B,MAAM,yBAAyB,wBAAC,wBAAuC;AAC9D,SAAAA,MAAI,GAAG,SAAS;AAAA,IACrB;AAAA,IACA;AAAA;AAEJ,GAL+B;AAOlB,4BAAsB,cAAc,qBAAqB;AACzD,wBAAkB,wBAC7B,mBACwB;AACxB,MAAI,CAAC,gBAAgB;AACnB,qBAAiBA,MAAI,GAAG,SAAS,gBAAgB,IAAI,qBAAqB;AAAA,EAC5E;AAEI,qBAAe,WAAW,SAAS,GAAG;AACvB,oCAAe,OAAO,CAAC;AACxC,QAAI,sBAAsB;AACtB,4BAAoB,cAAc,GAAG;AACvC,aAAO,oBAAoB,cAAc;AAAA,IAC3C;AAAA,EACF;AAEA,SAAO,cAAc,cAAc;AACrC,GAhB+B;AAkB/B,MAAM,kBAAkB,wBAAC,mBAAmB;AAC1CA,QAAI,GAAG,SAAS,gBAAgB,IAAI,cAAc;AACpD,GAFwB;AAKxBA,MAAI,kBAAkB;AAAA,EACpB,MAAM;AAAA,EACN,OAAO;AASL,iBAAa,UAAU,mBAAmB,SACxC,OACA,sBACA;AACK,qBAAU,IAAI;AACnB,WAAK,QAAQ,OAAO;AACpB,WAAK,QAAQ,MAAM;AACd,mBAAQ,SAAS,MAAM;AACrB,kBAAK,MAAM,IAAI;AAAA;AAEtB,WAAK,mBAAmB;AAExB,WAAK,mBAAmB;AACxB,WAAK,yBAAyB;AAC9B,WAAK,WAAW;AAAA;AAAA,EAEpB;AAAA,EACA,kBAAkB,WAAW;AACrB,2BAAiB,wBAAC,cAAc;AAC7B,oBAAO,KAAK,SAAS,EACzB,OACA,OAAO,CAAC,KAAK,QAAQ;AAChB,eAAG,IAAI,UAAU,GAAG;AACjB;AAAA,MACT,GAAG,CAAE;AAAA,OANc;AASvB,aAAS,eAAe;AACtB,UAAI,QAAQ;AAEZ,YAAM,OAAO;AACb,iBAAW,UAAU,MAAM;AACnB,yBAAW,KAAK,MAAM;AAE5B,YAAI,SAAS,SAAS,OAAO,EAAE,UAAU;AACzC,YAAI,SAAS,OAAO,EAAE,UAAU,MAAM,QAAW;AAC/C,mBAAS,OAAO;AAAA,YACd,CAAC;AAAA,YACD,SAAS,OAAO,EAAE,UAAU;AAAA,YAC5B,SAAS,OAAO,EAAE,UAAU;AAAA;AAAA,QAEhC;AAEA,mBAAW,aAAa,QAAQ;AACxB,4BAAY,OAAO,SAAS;AAC5B,uBAAO,UAAU,CAAC;AAExB,cAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AACxB,kBAAM,KAAK,IAAI;AAAA,UACjB;AAAA,QACF;AAEW,wBAAK,SAAS,QAAQ,GAAG;AAClC,gBAAM,SAAS,SAAS,QAAQ,EAAE,CAAC;AACnC,gBAAM,KAAK,MAAM;AAAA,QACnB;AAAA,MACF;AAEO;AAAA,IACT;AAhCS;AAkCT,aAAS,qBAAqB,cAAc;AAC1C,UAAI,QAAQ;AAEZ,iBAAW,QAAQ,OAAO;AACxB,YAAI,CAAC,aAAa,OAAO,UAAU,IAAI,GAAG;AAC3B,8BAAO,UAAU,IAAI,IAAI;AAAA,QACxC;AAAA,MACF;AAEA,mBAAa,OAAO,YAAY;AAAA,QAC9B,aAAa,OAAO;AAAA;AAGf;AAAA,IACT;AAdS;AAgBT,UAAM,0BAA0B,mCAAY;AAC1C,YAAM,eAAwB;AAAA,QAC5B,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,WAAW,CAAC;AAAA,UACZ,gBAAgB,CAAC;AAAA,UACjB,YAAY,CAAC;AAAA,QACf;AAAA;AAII2uB,mCAAsB,cAAc,qBAAqB;AACpD,wBAAOA,qBAAoB,OAAO,gBAAgB;AAC9C,4BAAO,eAAe,GAAG,MAAM;AAAA,MAC9C;AACW,wBAAOA,qBAAoB,OAAO,YAAY;AAC1C,4BAAO,WAAW,GAAG,MAAM;AAAA,MAC1C;AAEA,aAAO,qBAAqB,YAAY;AAAA,OApBV;AAuB1B,kCAAwB,8BAAO,iBAAiB;AAChD,iBAAO,iBAAiB,UAAU;AACtB,wBAAE,SAAS,wBAAwB;AACjD;AAAA,MACF;AAEI,WAAC,aAAa,IAAI;AACN,wBAAE,SAAS,2BAA2B;AACpD;AAAA,MACF;AAEI,WAAC,aAAa,MAAM;AACR,wBAAE,SAAS,6BAA6B;AACtD;AAAA,MACF;AAEI,WAAC,aAAa,QAAQ;AACV,wBAAE,SAAS,+BAA+B;AACxD;AAAA,MACF;AAEA,UACE,aAAa,OAAO,aACpB,OAAO,aAAa,OAAO,cAAc,UACzC;AACc,wBAAE,SAAS,yCAAyC;AAClE;AAAA,MACF;AAEA,YAAM,sBAAsB;AACR,uCAAa,EAAE,IAAI;AACvC,6BAAuB,mBAAmB;AAE/B,iBAAAnpB,WAAU,IAAI,OAAO,YAAY;AAC1C,YACGA,QAA6B,UAC9B,YAAY,aAAa,IACzB;AACI,qBAAO,YAAYA,OAAM;AAAA,QAC/B;AAAA,MACF;AAEA,UAAI,OAAO;AAAA,QACT,IAAI,UAAU;AAAA,UACZ,aAAa,aAAa,OAAO;AAAA,UACjC,OAAO,YAAY,aAAa;AAAA,UAChC,UAAU;AAAA,SACX;AAAA;AAGa,kCAAY,aAAa,EAAE;AAC3C,YAAM,iBAAiB,YAAY;AAAA,OAnDP;AAsDxB,qCAA2B,8BAAO,mBAAmB;AACzD,YAAM,sBAAsB;AAC5B,aAAO,oBAAoB,cAAc;AACzC,6BAAuB,mBAAmB;AAE/B,wBAAO,IAAI,OAAO,YAAY;AACvC,cAAMA,UAAS;AACX,YAAAA,QAAO,UAAU,uBAAuB;AAC1C,UAAAA,QAAO,WAAW;AAAA,QACpB;AAEI,YAAAA,QAAO,UAAU,YAAY,gBAAgB;AAC3C,qBAAO,YAAYA,OAAM;AAAA,QAC/B;AAAA,MACF;AAEA,sBAAgB,qBAAqB;AAC/B,6BAAiB,iBAAiB;AAAA,OAjBT;AAoB3B,6BAAmB,8BAAO,iBAA0B;AACzC,2BAAM,qBAAqB,YAAY;AACtD,UAAI,aAAa,QAAQ;AAEnB,yBAAa,OAAO,WAAW;AAC1B;AAAA,YACLxF,MAAI,OAAO;AAAA,YACX,aAAa,OAAO;AAAA;AAEf;AAAA,YACL,aAAa;AAAA,YACb,aAAa,OAAO;AAAA;AAAA,QAExB;AAEI,yBAAa,OAAO,gBAAgB;AAEtCA,gBAAI,OAAO,mBACT,aAAa,OAAO,eAAe;AACrCA,gBAAI,OAAO,qBACT,aAAa,OAAO,eAAe;AAE1B,4BAAO,aAAa,OAAO,gBAAgB;AAElD,6BAAa,OAAO,eAAe,eAAe,GAAG,KACrD,UAAU,eAAe,GAAG,GAC5B;AACA,wBAAU,GAAG,IAAI,aAAa,OAAO,eAAe,GAAG;AAAA,YACzD;AAAA,UACF;AAAA,QACF;AAEI,yBAAa,OAAO,YAAY;AAC5B,4BAAY,SAAS,gBAAgB;AAChC,4BAAO,aAAa,OAAO,YAAY;AACtC;AAAA,cACR,OAAO;AAAA,cACP,aAAa,OAAO,WAAW,GAAG;AAAA;AAAA,UAEtC;AAAA,QACF;AAEI,yBAAa,OAAO,eAAe,qBAAqB;AACtDA,gBAAA,gBACF,aAAa,OAAO,eAAe;AAAA,QACvC;AACIA,cAAA,OAAO,SAAS,MAAM,IAAI;AAAA,MAChC;AAAA,OA/CuB;AAkDnB,UAAAoU,aAAY,IAAI,SAAS;AAAA,MAC7B,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO,EAAE,SAAS,OAAO;AAAA,MACzB,QAAQ,SAAS;AAAA,MACjB,UAAU,6BAAM;AACR,qBAAOA,WAAU,MAAM,CAAC;AAC9B,YAAI,KAAK,SAAS,sBAAsB,KAAK,KAAK,SAAS,OAAO,GAAG;AAC7D,yBAAS,IAAI;AACnB,iBAAO,SAAS,YAAY;AAC1B,kBAAM,sBAAsB,KAAK,MAAM,OAAO,MAAgB,CAAC;AAAA;AAEjE,iBAAO,WAAW,IAAI;AAAA,QACxB;AAAA,MACF,GATU;AAAA,IASV,CACD;AAEGpU,UAAA,GAAG,SAAS,WAAW;AAAA,MACzB;AAAA,MACA,UAAU,CAAC,cAAc,cAAc;AAAA,MACvC,MAAM;AAAA,MACN,MAAM,wBAAC,MAAM,QAAQ9C,WAAU;AAC7B,cAAMyB,WAAU;AAAA,UACd,GAAG,OAAO,OAAO,aAAa,EAAE;AAAA,YAAI,CAAC,MACnC,IAAI,UAAU;AAAA,cACZ,aAAa,EAAE;AAAA,cACf,OAAO,EAAE;AAAA,cACT,UAAU,EAAE,OAAOzB;AAAA,aACpB;AAAA,UACH;AAAA,UACA,GAAG,OAAO,OAAO,wBAAwB,EAAE;AAAA,YAAI,CAAC,MAC9C,IAAI,UAAU;AAAA,cACZ,aAAa,GAAG,EAAE,IAAI;AAAA,cACtB,OAAO,UAAU,EAAE,EAAE;AAAA,cACrB,UAAU,UAAU,EAAE,EAAE,OAAOA;AAAA,aAChC;AAAA,UACH;AAAA;AAGF,YAAI,SAAS;AAAA,UACX;AAAA,UACA;AAAA,YACE,OAAO;AAAA,cACL,cAAc;AAAA,cACd,OAAO;AAAA,YACT;AAAA,YACA,UAAU,wBAAC6C,OAAM;AACR,qBAAAA,GAAE,OAAO,KAAK;AAAA,YACvB,GAFU;AAAA,UAGZ;AAAA,UACApB;AAAA;AAGF,eAAO,IAAI,MAAM;AAAA,UACf,IAAI,MAAM;AAAA,YACR,IAAI;AAAA,YACJ;AAAA,cACE;AAAA,cACA;AAAA,gBACE,OAAO;AAAA,kBACL,SAAS;AAAA,kBACT,KAAK;AAAA,kBACL,cAAc;AAAA,gBAChB;AAAA,cACF;AAAA,cACA;AAAA,gBACE,IAAI,SAAS;AAAA,kBACX,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,SAAS,mCAAY;AACb,2CAAiBqB,MAAI,GAAG,SAAS;AAAA,sBACrC;AAAA,sBACA;AAAA;AAEF,0BAAM,eAAe,MAAM;AAAA,sBACzB,gBAAgB,cAAc;AAAA;AAEhC,0BAAM,OAAO,KAAK,UAAU,cAAc,MAAM,CAAC;AAC3C,iCAAO,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,oBAAoB;AACpD,gCAAM,IAAI,gBAAgB,IAAI;AAC9B,8BAAI,IAAI,KAAK;AAAA,sBACjB,MAAM;AAAA,sBACN,UAAU,iBAAiB;AAAA,sBAC3B,OAAO,EAAE,SAAS,OAAO;AAAA,sBACzB,QAAQ,SAAS;AAAA,qBAClB;AACD,sBAAE,MAAM;AACR,+BAAW,WAAY;AACrB,wBAAE,OAAO;AACF,iCAAI,gBAAgB,GAAG;AAAA,uBAC7B,CAAC;AAAA,kBACN,GAtBS;AAAA,gBAsBT,CACD;AAAA,gBACD,IAAI,SAAS;AAAA,kBACX,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,SAAS,6BAAM;AACb,oBAAAoU,WAAU,MAAM;AAAA,kBAClB,GAFS;AAAA,gBAET,CACD;AAAA,gBACD,IAAI,SAAS;AAAA,kBACX,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,SAAS,mCAAY;AACb,yCAAe,MAAM;AAC3B,0BAAM,OAAO,KAAK,UAAU,cAAc,MAAM,CAAC;AAC3C,iCAAO,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,oBAAoB;AACpD,gCAAM,IAAI,gBAAgB,IAAI;AAC9B,8BAAI,IAAI,KAAK;AAAA,sBACjB,MAAM;AAAA,sBACN,UAAU;AAAA,sBACV,OAAO,EAAE,SAAS,OAAO;AAAA,sBACzB,QAAQ,SAAS;AAAA,qBAClB;AACD,sBAAE,MAAM;AACR,+BAAW,WAAY;AACrB,wBAAE,OAAO;AACF,iCAAI,gBAAgB,GAAG;AAAA,uBAC7B,CAAC;AAAA,kBACN,GAhBS;AAAA,gBAgBT,CACD;AAAA,gBACD,IAAI,SAAS;AAAA,kBACX,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,SAAS,mCAAY;AACf,yCAAiBpU,MAAI,GAAG,SAAS;AAAA,sBACnC;AAAA,sBACA;AAAA;AAGE,sCAAc,cAAc,GAAG;AACjC,oCAAgB;AAAA,wBACd;AAAA;AAEF;AAAA,oBACF;AAEI,uCAAe,WAAW,SAAS,GAAG;AACvB,sDAAe,OAAO,CAAC;AAAA,oBAC1C;AAEA,0BAAM,yBAAyB,cAAc;AAAA,kBAC/C,GAlBS;AAAA,gBAkBT,CACD;AAAA,cACH;AAAA,YACF;AAAA,WACD;AAAA,SACF;AAAA,MACH,GA/HM;AAAA,MAgIN,cAAc;AAAA,MACd,MAAM,SAAS9C,QAAO;AACpB,YAAI,CAACA,QAAO;AACV;AAAA,QACF;AAEI,sBAAU,cAAcA,MAAK;AACjC,YAAI,SAAS;AACX,gBAAM,iBAAiB,OAAO;AAAA,QACrB,WAAAA,OAAM,WAAW,SAAS,GAAG;AAC9B,UAAAA,gBAAM,OAAO,CAAC;AACtB,cAAI,sBAAsB;AACtB,kCAAoBA,MAAK,GAAG;AAC9B,sBAAU,oBAAoBA,MAAK;AAC7B,mCAAiB,oBAAoBA,MAAK,CAAC;AAAA,UACnD;AAAA,QACF;AAEA,YAAI,EAAE,kBAAkB,uBAAuB,IAC7C,QAAQ,OAAO;AAEf,iCAAqB,UACrB,2BAA2B,QAC3B;AACA,gBAAM,OAAO,cAAc,MAAM,EAAE,OAAO;AAC1C,6BAAmB,KAAK;AACxB,mCAAyB,KAAK;AAAA,QAChC;AAGI8C,cAAA,OAAO,iBAAiB,kBAAkB,sBAAsB;AAAA,MACtE;AAAA,KACD;AAAA,EACH;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACvzBD,UAAM,QAAQ;AAWR,mBAAS,mBAAmB,QAAQ;AACpC,4BAAkB,UAAU,oBAAoB,OAAO;AAE7D,UAAM,cAAc;AAEpB,UAAM,UAAU,MAAM;AAChB,yBAAe,QAAQ,OAAO;AAC9B,0BAAgB,QAAQ,QAAQ;AACtC,UAAM,gBAAgB,aAAa;AAAA,MACjC,CAAC,UAAU,CAAC,YAAY,cAAc,KAAK;AAAA;AAE7C,UAAM,kBAAkB,aAAa;AAAA,MAAO,CAAC,UAC3C,YAAY,cAAc,KAAK;AAAA;AAEjC,UAAM,uBAAuB,wBAAC9C,QAAY,YAAoB,OAAe;AACvE;AAEJ,UAAI,OAAOA,WAAU,YAAYA,WAAU,MAAM;AACjC,2BAAK,UAAUA,MAAK;AAAA,MACzB,iBAAM,QAAQA,MAAK,GAAG;AACjB,2BAAK,UAAUA,MAAK;AAAA,iBACzB,OAAOA,WAAU,UAAU;AACtB,sBAAAA;AAAA,aACT;AACL,sBAAc,OAAOA,MAAK;AAAA,MAC5B;AAEA,aAAO,EAAE,SAAS,aAAa,EAAE,QAAQ,WAAW;AAAA,OAbzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzGtB,MAAM,sBAAsB;AAEtB,6BAAuB,4BAAY,gBAAgB,MAAM;AACpE,QAAM,eAAe;AACrB,QAAM,eAAe;AACrB,QAAM,YAAY;AAAA,IAAmB,MACnC,aAAa,IAAI,mBAAmB;AAAA;AAGtC,QAAM,eAAe,SAAsB,MAAM,IAAI,IAAI,UAAU,KAAK,CAAC;AAEzE,QAAM,iBAAiB;AAAA,IAAmB,MACxC,kBAAkB,UAAU,KAAK;AAAA;AAKnC,QAAM,eAAe,wBAACqE,UACpB,aAAa,MAAM,IAAIA,MAAK,QAAQ,KAAK,aAAa,MAAM,IAAIA,MAAK,IAAI,GADtD;AAGf,yBAAiB,wBAACA,UAA2B;AAC7C,qBAAaA,KAAI,GAAG;AACtB,qBAAeA,MAAK,QAAQ;AAI5B,qBAAeA,MAAK,IAAI;AAAA,WACnB;AACL,kBAAYA,MAAK,IAAI;AAAA,IACvB;AAAA,KATqB;AAYjB,4BAAoB,wBAACqtB,eAAwB;AACjD,UAAM,gBAAgBA,WACnB,IAAI,CAAC,aAAqB;AACzB,UAAI,SAAS,SAAS,GAAG,EAAG,QAAO,yBAAyB,QAAQ;AAE9D,YAAA9b,SAAQ,SAAS,MAAM,GAAG;AAC1B,mBAAOA,OAAM,SAAS;AACtB,uBAAWA,OAAM,KAAK,GAAG;AACzB,yBAAa,aAAa,eAAe,IAAI;AACnD,UAAI,CAAC,YAAY;AACR;AAAA,MACT;AACM,sBAAU,EAAE,MAAM,UAAU;AAClC,cAAQ,WAAW;AACZ;AAAA,IACR,GACA,OAAO,CAAC,YAAY,YAAY,IAAI;AACvC,WAAO,iBAAiB,aAAa;AAAA,KAjBb;AAoBpB,sBAAc,wBAAC,aAAqB;AACxC,iBAAa,IAAI,qBAAqB,CAAC,GAAG,UAAU,OAAO,QAAQ,CAAC;AAAA,KADlD;AAId,yBAAiB,wBAAC,aAAqB;AAC9B;AAAA,MACX;AAAA,MACA,UAAU,MAAM,OAAO,CAAC,MAAc,MAAM,QAAQ;AAAA;AAAA,EACtD,GAJqB;AAOjB,+BAAuB,wBAAC,WAA8B;AACpD,uBAAa,SAAS,OAAO,WAAW;AAC9C,QAAI,gBAAgB,aAAa;AACjC,QAAIjM,UAAS;AACN,qBAAU,MAAM,KAAK,CAAC,MAAc,EAAE,WAAW,aAAa,CAAC,GAAG;AACvD,mCAAa,cAAcA,OAAM;AACjD,MAAAA;AAAA,IACF;AACA,gBAAY,aAAa;AAClB;AAAA,KAToB;AAYvB,+BAAuB,wBAC3B,YACA,YACG;AACC,SAAC,WAAW,eAAe;AACvB,gBAAI,MAAM,+BAA+B;AAAA,IACjD;AAEI,gBAAQ,SAAS,GAAG,GAAG;AACnB,gBAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,cACJ,WAAW,SAAS,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,IACpE;AAEE,wBAAgB,WAAW,UAAU;AACvC;AAAA,IACF;AAEI,kBAAU,MAAM,KAAK,CAAC,MAAc,EAAE,WAAW,WAAW,CAAC,GAAG;AAClE,YAAM,IAAI,MAAM,gBAAgB,WAAW,kBAAkB;AAAA,IAC/D;AAEa;AAAA,MACX;AAAA,MACA,UAAU,MAAM;AAAA,QAAI,CAAC,MACnB,EAAE,WAAW,WAAW,QAAQ,IAC5B,EAAE,QAAQ,WAAW,UAAU,WAAW,IAC1C;AAAA,MACN;AAAA;AAE0B,2CAAW,UAAU,WAAW;AAAA,KAhCjC;AAmCvB,+BAAuB,wBAAC,eAAiC;AACzD,SAAC,WAAW,eAAe;AACvB,gBAAI,MAAM,+BAA+B;AAAA,IACjD;AACa;AAAA,MACX;AAAA,MACA,UAAU,MAAM;AAAA,QACd,CAAC,MACC,MAAM,WAAW,YAAY,CAAC,EAAE,WAAW,WAAW,QAAQ;AAAA,MAClE;AAAA;AAEF,gCAA4B,WAAW,QAAQ;AAAA,KAXpB;AAc7B,QAAM,yBAAyB,SAE7B,MAAM,aAAa,IAAI,0CAA0C,CAAC;AAE9D,sCAA8B,wBAClC,UACA,kBACG;AACH,UAAM,uBAAuB,uBAAuB,MAAM,QAAQ,KAAK;AACvE,UAAM,mBAAmB,EAAE,GAAG,sBAAsB,GAAG,cAAc;AAGjE,yBAAiB,SAAS,qBAAqB;AACjD,aAAO,iBAAiB;AAAA,IAC1B;AACI,yBAAiB,UAAU,sBAAsB;AACnD,aAAO,iBAAiB;AAAA,IAC1B;AAGA,QAAI,OAAO,KAAK,gBAAgB,EAAE,WAAW,GAAG;AAC9C,kCAA4B,QAAQ;AAAA,WAC/B;AACL,mBAAa,IAAI,4CAA4C;AAAA,QAC3D,GAAG,uBAAuB;AAAA,QAC1B,CAAC,QAAQ,GAAG;AAAA,OACb;AAAA,IACH;AAAA,KAvBkC;AA0B9B,sCAA8B,wBAAC,aAAqB;AACxD,iBAAa,IAAI,4CAA4C;AAAA,MAC3D,GAAG,uBAAuB;AAAA,MAC1B,CAAC,QAAQ,GAAG;AAAA,KAC4B;AAAA,KAJR;AAO9B,sCAA8B,wBAClC,aACA,gBACG;AACH,UAAM,uBAAuB,EAAE,GAAG,uBAAuB,MAAM;AAC3D,6BAAqB,WAAW,GAAG;AAChB,sCAAW,IAAI,qBAAqB,WAAW;AACpE,aAAO,qBAAqB,WAAW;AAAA,IACzC;AACa;AAAA,MACX;AAAA,MACA;AAAA;AAAA,EACF,GAZkC;AAepC,QAAM,sBAAsB;AAC5B,QAAM,uBAAuB;AAEtB;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;;;;;;;;ACzJD,UAAM,QAAQ;AAId,UAAM,UAAU,SAAS,MAAM,MAAM,KAAK,IAAI;AAC9C,UAAM,oBAAoB;AAC1B,UAAM,eAAe;AAAA,MAAS,MAC5B,kBAAkB,aAAa,QAAQ,KAAK;AAAA;AAE9C,UAAM,eAAe;AACrB,UAAM,kBAAkB;AAAA,MAA2B,MACjD,aAAa,IAAI,wBAAwB;AAAA;AAG3C,UAAMjG,QAAO;AAIb,UAAM,iBAAiB,6BAAM;AACT,uCAAe,QAAQ,KAAK;AAAA,OADzB;AAIjB,uBAAa,IAA6C,IAAI;AACpE,UAAM,mBAAmB,IAAmB;AAAA,MAC1C,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,KACP;AAED,UAAM,kBAAkB,mCAAY;AAClC,YAAM,cAAc,mBAAmB;AACjC,yBAAa,YAAY;AAE/B,YAAM,gBAAgB,WAAW,OAAO,IAAI,gBAAgB;AACtD,kCAAsB,OAAO,cAAc,WAAW;AAE5D,uBAAiB,MAAM,MACrB,gBAAgB,sBACZ,GAAG,KAAK,IAAI,GAAG,WAAW,OAAO,gBAAgB,uBAAuB,EAAE,CAAC,OAC3E,GAAG,WAAW,MAAM,EAAE;AACxB,0BAAgB,UAAU,QAAQ;AACpC,yBAAiB,MAAM,OAAO,GAAG,WAAW,KAAK;AAAA,aAC5C;AACL,yBAAiB,MAAM,OAAO,GAAG,WAAW,OAAO,GAAG;AAAA,MACxD;AAAA,OAfsB;AAkBlB,sBAAY,IAAwB,IAAI;AACxC,+BAAqB,IAAwB,IAAI;AACjD,sBAAY,IAAI,KAAK;AAC3B,UAAM,mBAAmB,mCAAY;AACnC,gBAAU,QAAQ;AAClB,YAAM,SAAS;AACC;IAAA,GAHO;AAKzB,UAAM,mBAAmB,6BAAM;AAC7B,gBAAU,QAAQ;AAAA,OADK;AAGzB,cAAU,MAAM;AACd,yBAAmB,QAAQ,UAAU,OAAO,QAAQ,sBAAsB;AACvD,gCAAO,iBAAiB,cAAc,gBAAgB;AACtD,gCAAO,iBAAiB,cAAc,gBAAgB;AAAA,KAC1E;AAED,gBAAY,MAAM;AACG,gCAAO,oBAAoB,cAAc,gBAAgB;AACzD,gCAAO,oBAAoB,cAAc,gBAAgB;AAAA,KAC7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvGD,UAAM,QAAQ;AAId,UAAM,oBAAoB;AACpB,0BAAgB,SAA4C,MAAM;AACtE,aAAO,kBAAkB,uBAAuB,MAAM,KAAK,KAAK,QAAQ;AAAA,KACzE;AAEK,4BAAkB,IAAwB,IAAI;AAC9C,wBAAc,IAAwB,IAAI;AAEhD,QAAI,yBAA8C;AAE5C,sBAAY,IAAwB,IAAI;AAC9C,cAAU,MAAM;AACE,8BAAQ,UAAU,OAAO;AAAA,QACvC;AAAA;AAEU,0BAAQ,gBAAgB,MAAM;AAAA,QACxC;AAAA;AAEc;AAGhB,+BAAyB,MAAM,eAAe,iBAAiB,EAAE,MAAM,MAAM;AAAA,KAC9E;AAED,UAAM,kBAAkB,6BAAM;AACxB,sBAAY,SAAS,cAAc,OAAO;AAC5C,oBAAY,MAAM,MAAM,QAAQ,cAAc,MAAM;AAAA,MACtD;AAAA,OAHsB;AAMxB,gBAAY,MAAM;AAChB,UAAI,wBAAwB;AACH;MACzB;AAAA,KACD;AAEK,UAAAytB,gBAAe,OAAqC,cAAc;AAClE,2BAAiB,wBAAC9sB,UAAmC;AAC5C,MAAA8sB,cAAA,MAAM9sB,MAAK,GAAG,IAAI;AAAA,OADV;;;;;;;;;;;;;;;ACvDvB,IAAImX,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWQ;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGwY,cAAY,EAAE;AAChC;AARSxY;AAUT6X,SAAO,SAAS7X;ACtBhB,IAAI6X,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWQ;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,aAAa;AAAA,EACb,aAAa;AAAA,EACb,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGwY,cAAY,EAAE;AAChC;AARSxY;AAUT6X,SAAO,SAAS7X;ACvBhB,IAAIgW,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,qFAAqF,OAAOA,IAAG,sBAAsB,GAAG,qBAAqB,EAAE,OAAOA,IAAG,eAAe,GAAG,qBAAqB,EAAE,OAAOA,IAAG,mBAAmB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,qBAAqB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,cAAc,GAAG,mEAAmE,EAAE,OAAOA,IAAG,wBAAwB,GAAG,mJAAmJ,EAAE,OAAOA,IAAG,uBAAuB,GAAG,8CAA8C,EAAE,OAAOA,IAAG,0BAA0B,GAAG,oBAAoB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,gEAAgE,EAAE,OAAOA,IAAG,uBAAuB,GAAG,kEAAkE,EAAE,OAAOA,IAAG,mBAAmB,GAAG,6FAA6F,EAAE,OAAOA,IAAG,mBAAmB,GAAG,y3EAAy3E;AAC98G,GAHY;AAMZ,IAAI,eAAe;AAAA,EACjB,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAIvP,YAAW,MAAM,UACnB,QAAQ,MAAM;AAChB,WAAO;AAAA,MACL,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,MACL,SAAS;AAAA,MACT,gBAAgBA,cAAa,UAAUA,cAAa,aAAaA,cAAa,eAAe,eAAeA,cAAa,WAAWA,cAAa,cAAcA,cAAa,gBAAgB,aAAa;AAAA,MACzM,YAAYA,cAAa,SAASA,cAAa,aAAaA,cAAa,aAAa,eAAeA,cAAa,YAAYA,cAAa,gBAAgBA,cAAa,gBAAgB,aAAa;AAAA,MACrM,eAAe,QAAQ,SAAS;AAAA,IACtC;AAAA,EACG,GAdK;AAAA,EAeN,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,eAAe;AAAA,IACf,eAAe;AAAA,EAChB;AACH;AACA,IAAIgL,YAAU;AAAA,EACZ,MAAM,gCAASrM,MAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,QAAI,YAAY,CAAC,QAAQ,SAAS,OAAO,WAAW,YAAY,UAAU,cAAc,aAAa;AACrG,QAAIoD,OAAM,UAAU,KAAK,SAAU7M,OAAM;AACvC,aAAOA,UAAS,MAAM;AAAA,IAC5B,CAAK;AACD,WAAO,CAAC,iBAAiB;AAAA,MACvB,uCAAuC,MAAM;AAAA,IACnD,GAAO6M,OAAM,YAAY,OAAOA,IAAG,IAAI,EAAE;AAAA,EACtC,GATK;AAAA,EAUN,MAAM,gCAAS9J,OAAK,OAAO;AACzB,QAAI,QAAQ,MAAM,OAChB,WAAW,MAAM;AACnB,WAAO,CAAC,wBAAwB;AAAA,MAC9B,sBAAsB,MAAM,eAAe,SAAS;AAAA,IAC1D,CAAK;AAAA,EACF,GANK;AAAA,EAON,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,SAAS;AAAA,EACT,QAAQ;AACV;AACA,IAAI,cAAc,UAAU,OAAO;AAAA,EACjC,MAAM;AAAA,EACN,OAAO6V;AAAAA,EACP,SAAS9C;AAAAA,EACT;AACF,CAAC;AC/CD,IAAIuF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWN;AAAAA,EACX,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW,gCAAStC,YAAW;AAC7B,eAAO;AAAA,UACL,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,QACnB;AAAA,MACO,GANU;AAAA,IAOZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW,gCAASA,YAAW;AAC7B,eAAO;AAAA,UACL,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,QACnB;AAAA,MACO,GANU;AAAA,IAOZ;AAAA,IACD,WAAW;AAAA,EACZ;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASuC,YAAU;AAC1B,WAAO;AAAA,MACL,WAAW;AAAA,MACX,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEG,IAACP,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWY;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,kBAAkB,QAAQ,QAAQ,cAAc,YAAY,cAAc,SAAS;AAAA,EAC3F,SAAS,gCAASL,YAAU;AAC1B,QAAI,QAAQ;AACZ,WAAO;AAAA,MACL,WAAW,SAAS,WAAY;AAC9B,eAAO,MAAM;AAAA,MACrB,CAAO;AAAA,IACP;AAAA,EACG,GAPQ;AAAA,EAQT,MAAM,gCAASnY,SAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,kBAAkB,KAAK;AAAA,MACvB,WAAW;AAAA,MACX,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,QAAQ;AAAA,IACd;AAAA,EACG,GATK;AAAA,EAUN,OAAO;AAAA,IACL,aAAa,gCAASoc,UAASte,WAAU;AACvC,WAAK,KAAKA,aAAY;IACvB,GAFY;AAAA,EAGd;AAAA,EACD,yBAAyB;AAAA,EACzB,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,UAAU;AAAA,EACV,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,WAAW;AAAA,EACX,WAAW;AAAA,EACX,qBAAqB;AAAA,EACrB,SAAS,gCAASwD,WAAU;AAC1B,QAAI,KAAK,SAAS;AAChB,WAAK,mBAAmB,KAAK;AAAA,IAC9B;AAAA,EACF,GAJQ;AAAA,EAKT,eAAe,gCAASC,iBAAgB;AACtC,SAAK,oBAAmB;AACxB,SAAK,sBAAqB;AAC1B,SAAK,aAAY;AACjB,QAAI,KAAK,QAAQ,KAAK,YAAY;AAChC,aAAO,MAAM,KAAK,IAAI;AAAA,IACvB;AACD,SAAK,YAAY;AACjB,SAAK,OAAO;AAAA,EACb,GATc;AAAA,EAUf,SAAS,gCAASH,YAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AACtC,QAAI,KAAK,aAAa;AACpB,WAAK,YAAW;AAAA,IACjB;AAAA,EACF,GALQ;AAAA,EAMT,SAAS;AAAA,IACP,OAAO,gCAAS1C,SAAQ;AACtB,WAAK,MAAM,kBAAkB,KAAK;AAAA,IACnC,GAFM;AAAA,IAGP,eAAe,gCAAS,cAAc,IAAI;AACxC,SAAG,aAAa,KAAK,mBAAmB,EAAE;AAAA,IAC3C,GAFc;AAAA,IAGf,SAAS,gCAAS0E,WAAU;AAC1B,WAAK,MAAM,MAAM;AACjB,WAAK,SAAS,SAAS;AACvB,WAAK,uBAAsB;AAC3B,WAAK,oBAAmB;AACxB,UAAI,KAAK,YAAY;AACnB,eAAO,IAAI,SAAS,KAAK,MAAM,KAAK,aAAa,KAAK,UAAU,OAAO,OAAO,KAAK;AAAA,MACpF;AAAA,IACF,GARQ;AAAA,IAST,cAAc,gCAASC,gBAAe;AACpC,WAAK,MAAK;AAAA,IACX,GAFa;AAAA,IAGd,eAAe,gCAAS,gBAAgB;AACtC,UAAI,KAAK,OAAO;AACd,SAAC,KAAK,cAAc,SAAS,KAAK,MAAM,sBAAsB;AAAA,MAC/D;AAAA,IACF,GAJc;AAAA,IAKf,SAAS,gCAASE,WAAU;AAC1B,WAAK,MAAM,MAAM;AACjB,YAAM,KAAK,MAAM;AACjB,WAAK,SAAS;AACd,WAAK,iBAAiB;AACtB,WAAK,eAAe;AAAA,IACrB,GANQ;AAAA,IAOT,cAAc,gCAASC,gBAAe;AACpC,UAAI,KAAK,YAAY;AACnB,eAAO,MAAM,KAAK,IAAI;AAAA,MACvB;AACD,WAAK,mBAAmB;AACxB,WAAK,oBAAmB;AACxB,WAAK,sBAAqB;AAC1B,WAAK,MAAM,YAAY;AAAA,IACxB,GARa;AAAA,IASd,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,WAAK,sBAAsB,MAAM;AAAA,IAClC,GAFgB;AAAA,IAGjB,eAAe,gCAAS,gBAAgB;AACtC,UAAI,KAAK,mBAAmB,KAAK,SAAS,KAAK,SAAS,KAAK,qBAAqB;AAChF,aAAK,MAAK;AAAA,MACX;AAAA,IACF,GAJc;AAAA,IAKf,OAAO,gCAAS,UAAU;AACxB,UAAI,uBAAuB,gCAASuqB,sBAAqB,WAAW;AAClE,eAAO,aAAa,UAAU,cAAc,aAAa;AAAA,MACjE,GAFiC;AAG3B,UAAI,cAAc,KAAK,OAAO,UAAU,qBAAqB,KAAK,eAAe;AACjF,UAAI,CAAC,aAAa;AAChB,sBAAc,KAAK,OAAO,UAAU,qBAAqB,KAAK,eAAe;AAC7E,YAAI,CAAC,aAAa;AAChB,wBAAc,KAAK,OAAO,SAAS,KAAK,qBAAqB,KAAK,OAAO;AACzE,cAAI,CAAC,aAAa;AAChB,gBAAI,KAAK,aAAa;AACpB,mBAAK,eAAe;AACpB,4BAAc,KAAK;AAAA,YACjC,OAAmB;AACL,mBAAK,iBAAiB;AACtB,4BAAc,KAAK;AAAA,YACpB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACD,UAAI,aAAa;AACf,cAAM,aAAa;AAAA,UACjB,cAAc;AAAA,QACxB,CAAS;AAAA,MACF;AAAA,IACF,GAzBM;AAAA,IA0BP,UAAU,gCAAS,SAAS,OAAO;AACjC,UAAI,KAAK,WAAW;AAClB,aAAK,YAAY;AACjB,aAAK,MAAM,cAAc,KAAK;AAAA,MACtC,OAAa;AACL,aAAK,YAAY;AACjB,aAAK,MAAM,YAAY,KAAK;AAAA,MAC7B;AACD,UAAI,CAAC,KAAK,OAAO;AACf,aAAK,YAAY,gBAAiB,IAAG,kBAAiB;AAAA,MACvD;AAAA,IACF,GAXS;AAAA,IAYV,wBAAwB,gCAAS,yBAAyB;AACxD,UAAI,KAAK,SAAS,CAAC,KAAK,SAAS,KAAK,eAAe,KAAK,eAAe,KAAK,WAAW;AACvF;MACD;AAAA,IACF,GAJuB;AAAA,IAKxB,qBAAqB,gCAAS,sBAAsB;AAClD,UAAI,KAAK,SAAS,CAAC,KAAK,SAAS,KAAK,eAAe,KAAK,eAAe,KAAK,WAAW;AACvF;MACD;AAAA,IACF,GAJoB;AAAA,IAKrB,WAAW,gCAASxR,WAAU,OAAO;AACnC,UAAI,MAAM,SAAS,YAAY,KAAK,eAAe;AACjD,aAAK,MAAK;AAAA,MACX;AAAA,IACF,GAJU;AAAA,IAKX,6BAA6B,gCAASyR,+BAA8B;AAClE,UAAI,CAAC,KAAK,yBAAyB;AACjC,aAAK,0BAA0B,KAAK,UAAU,KAAK,IAAI;AACvD,eAAO,SAAS,iBAAiB,WAAW,KAAK,uBAAuB;AAAA,MACzE;AAAA,IACF,GAL4B;AAAA,IAM7B,+BAA+B,gCAASC,iCAAgC;AACtE,UAAI,KAAK,yBAAyB;AAChC,eAAO,SAAS,oBAAoB,WAAW,KAAK,uBAAuB;AAC3E,aAAK,0BAA0B;AAAA,MAChC;AAAA,IACF,GAL8B;AAAA,IAM/B,cAAc,gCAAS5J,cAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,SAAS,gCAAS,QAAQ,IAAI;AAC5B,WAAK,OAAO;AAAA,IACb,GAFQ;AAAA,IAGT,YAAY,gCAASnJ,YAAW,IAAI;AAClC,WAAK,UAAU;AAAA,IAChB,GAFW;AAAA,IAGZ,oBAAoB,gCAAS,mBAAmB,IAAI;AAClD,WAAK,kBAAkB;AAAA,IACxB,GAFmB;AAAA,IAGpB,oBAAoB,gCAAS,mBAAmB,IAAI;AAClD,WAAK,kBAAkB;AAAA,IACxB,GAFmB;AAAA,IAGpB,gBAAgB,gCAAS,eAAe,IAAI;AAC1C,WAAK,oBAAoB,KAAK,GAAG,MAAM;AAAA,IACxC,GAFe;AAAA,IAGhB,gBAAgB,gCAAS,eAAe,IAAI;AAC1C,WAAK,cAAc,KAAK,GAAG,MAAM;AAAA,IAClC,GAFe;AAAA,IAGhB,aAAa,gCAASgT,eAAc;AAClC,UAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK,YAAY;AAC1C,YAAI;AACJ,aAAK,eAAe,SAAS,cAAc,OAAO;AAClD,aAAK,aAAa,OAAO;AACzB,qBAAa,KAAK,cAAc,UAAU,kBAAkB,KAAK,eAAe,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,YAAY,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,SAAS,QAAQ,oBAAoB,SAAS,SAAS,gBAAgB,KAAK;AAC1T,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,YAAI,YAAY;AAChB,iBAAS,cAAc,KAAK,aAAa;AACvC,uBAAa,2DAA2D,OAAO,YAAY,6CAA6C,EAAE,OAAO,KAAK,mBAAmB,8CAA8C,EAAE,OAAO,KAAK,YAAY,UAAU,GAAG,8FAA8F;AAAA,QAC7V;AACD,aAAK,aAAa,YAAY;AAAA,MAC/B;AAAA,IACF,GAbY;AAAA,IAcb,cAAc,gCAASC,gBAAe;AACpC,UAAI,KAAK,cAAc;AACrB,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,aAAK,eAAe;AAAA,MACrB;AAAA,IACF,GALa;AAAA,IAMd,UAAU,gCAAS,SAAS,OAAO;AACjC,UAAI,MAAM,OAAO,QAAQ,KAAK,EAAE,aAAa,iBAAiB,MAAM,iBAAiB;AACnF;AAAA,MACD;AACD,UAAI,KAAK,WAAW;AAClB,aAAK,WAAW;AAChB,aAAK,YAAY,MAAM;AACvB,aAAK,YAAY,MAAM;AACvB,aAAK,UAAU,MAAM,SAAS;AAC9B,iBAAS,KAAK,aAAa,4BAA4B,MAAM;AAC7D,SAAC,KAAK,cAAc,SAAS,SAAS,MAAM;AAAA,UAC1C,eAAe;AAAA,QACzB,CAAS;AAAA,MACF;AAAA,IACF,GAdS;AAAA,IAeV,qBAAqB,gCAAS,sBAAsB;AAClD,UAAI,KAAK,WAAW;AAClB,aAAK,yBAAwB;AAC7B,aAAK,4BAA2B;AAAA,MACjC;AACD,UAAI,KAAK,iBAAiB,KAAK,UAAU;AACvC,aAAK,4BAA2B;AAAA,MACjC;AAAA,IACF,GARoB;AAAA,IASrB,uBAAuB,gCAAS,wBAAwB;AACtD,WAAK,2BAA0B;AAC/B,WAAK,8BAA6B;AAClC,WAAK,8BAA6B;AAAA,IACnC,GAJsB;AAAA,IAKvB,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,SAAS;AACb,WAAK,uBAAuB,SAAU,OAAO;AAC3C,YAAI,OAAO,UAAU;AACnB,cAAIza,SAAQ,cAAc,OAAO,SAAS;AAC1C,cAAI,SAAS,eAAe,OAAO,SAAS;AAC5C,cAAI,SAAS,MAAM,QAAQ,OAAO;AAClC,cAAI,SAAS,MAAM,QAAQ,OAAO;AAClC,cAAI,SAAS,OAAO,UAAU,sBAAqB;AACnD,cAAI,UAAU,OAAO,OAAO;AAC5B,cAAI,SAAS,OAAO,MAAM;AAC1B,cAAI,WAAW;AACf,cAAI,yBAAyB,iBAAiB,OAAO,SAAS;AAC9D,cAAI,aAAa,WAAW,uBAAuB,UAAU;AAC7D,cAAI,YAAY,WAAW,uBAAuB,SAAS;AAC3D,iBAAO,UAAU,MAAM,WAAW;AAClC,cAAI,OAAO,gBAAgB;AACzB,gBAAI,WAAW,OAAO,QAAQ,UAAUA,SAAQ,SAAS,OAAO;AAC9D,qBAAO,YAAY,MAAM;AACzB,qBAAO,UAAU,MAAM,OAAO,UAAU,aAAa;AAAA,YACtD;AACD,gBAAI,UAAU,OAAO,QAAQ,SAAS,SAAS,SAAS,QAAQ;AAC9D,qBAAO,YAAY,MAAM;AACzB,qBAAO,UAAU,MAAM,MAAM,SAAS,YAAY;AAAA,YACnD;AAAA,UACb,OAAiB;AACL,mBAAO,YAAY,MAAM;AACzB,mBAAO,UAAU,MAAM,OAAO,UAAU,aAAa;AACrD,mBAAO,YAAY,MAAM;AACzB,mBAAO,UAAU,MAAM,MAAM,SAAS,YAAY;AAAA,UACnD;AAAA,QACF;AAAA,MACT;AACM,aAAO,SAAS,iBAAiB,aAAa,KAAK,oBAAoB;AAAA,IACxE,GAlCyB;AAAA,IAmC1B,4BAA4B,gCAAS,6BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,eAAO,SAAS,oBAAoB,aAAa,KAAK,oBAAoB;AAC1E,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,6BAA6B,gCAAS,8BAA8B;AAClE,UAAI,SAAS;AACb,WAAK,0BAA0B,SAAU,OAAO;AAC9C,YAAI,OAAO,UAAU;AACnB,iBAAO,WAAW;AAClB,mBAAS,KAAK,gBAAgB,0BAA0B;AACxD,WAAC,OAAO,eAAe,SAAS,KAAK,MAAM,aAAa,IAAI;AAC5D,iBAAO,MAAM,WAAW,KAAK;AAAA,QAC9B;AAAA,MACT;AACM,aAAO,SAAS,iBAAiB,WAAW,KAAK,uBAAuB;AAAA,IACzE,GAX4B;AAAA,IAY7B,+BAA+B,gCAAS,gCAAgC;AACtE,UAAI,KAAK,yBAAyB;AAChC,eAAO,SAAS,oBAAoB,WAAW,KAAK,uBAAuB;AAC3E,aAAK,0BAA0B;AAAA,MAChC;AAAA,IACF,GAL8B;AAAA,EAMhC;AAAA,EACD,UAAU;AAAA,IACR,uBAAuB,gCAAS,wBAAwB;AACtD,aAAO,KAAK,YAAY,KAAK,eAAe,SAAS,uBAAuB,KAAK,eAAe,SAAS;AAAA,IAC1G,GAFsB;AAAA,IAGvB,kBAAkB,gCAAS,mBAAmB;AAC5C,aAAO,KAAK,UAAU,QAAQ,KAAK,OAAO,iBAAiB,MAAM,OAAO,KAAK,KAAK,YAAY;AAAA,IAC/F,GAFiB;AAAA,IAGlB,gBAAgB,gCAAS0a,kBAAiB;AACxC,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,QAAQ;AAAA,IACtF,GAFe;AAAA,IAGhB,mBAAmB,gCAASC,qBAAoB;AAC9C,aAAO,kBAAiB;AAAA,IACzB,GAFkB;AAAA,EAGpB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,EACZ;AAAA,EACD,YAAY;AAAA,IACV,QAAQC;AAAAA,IACR,QAAQjN;AAAAA,IACR,oBAAoBkN;AAAAA,IACpB,oBAAoBC;AAAAA,IACpB,WAAWlN;AAAAA,EACZ;AACH;AAEA,SAASlM,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUN,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIM,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASyB,UAAQ5X,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAtP6U;AACT,SAASC,gBAAc7X,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI6U,UAAQ,OAAO7U,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAEiB,wBAAgBzW,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI6U,UAAQ,OAAO7U,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAA9a6X;AACT,SAASpB,kBAAgBzW,IAAG,GAAG+C,IAAG;AAAE,UAAQ,IAAIyT,iBAAe,CAAC,MAAMxW,KAAI,OAAO,eAAeA,IAAG,GAAG,EAAE,OAAO+C,IAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AAAI;AAA3KyW;AACT,SAASD,iBAAezT,IAAG;AAAE,MAAI,IAAI2T,eAAa3T,IAAG,QAAQ;AAAG,SAAO,YAAYoT,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASE,eAAa3T,IAAG,GAAG;AAAE,MAAI,YAAYoT,UAAQpT,EAAC,KAAK,CAACA,GAAG,QAAOA;AAAG,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAAG,MAAI,WAAW/C,IAAG;AAAE,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAAG,QAAI,YAAYoT,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQpT,EAAC;AAAI;AAAnT2T;AACT,IAAI0C,eAAa,CAAC,mBAAmB,YAAY;AACjD,IAAIE,eAAa,CAAC,IAAI;AACtB,SAASxY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,SAAO,UAAS,GAAI,YAAY,mBAAmB;AAAA,IACjD,UAAU,KAAK;AAAA,EACnB,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,MAAM,oBAAoB,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,QAClF,KAAK;AAAA,QACL,KAAK,SAAS;AAAA,QACd,SAAS,KAAK,GAAG,MAAM;AAAA,QACvB,OAAO,KAAK,GAAG,QAAQ,MAAM;AAAA,UAC3B,UAAU,KAAK;AAAA,UACf,OAAO,KAAK;AAAA,QACtB,CAAS;AAAA,QACD,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AACjD,iBAAO,SAAS,mBAAmB,SAAS,gBAAgB,MAAM,UAAU,SAAS;AAAA,QAC/F;AAAA,QACQ,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,iBAAO,SAAS,iBAAiB,SAAS,cAAc,MAAM,UAAU,SAAS;AAAA,QAC3F;AAAA,MACA,GAAS,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,YAAY,WAAW;AAAA,QACxD,MAAM;AAAA,QACN,eAAe,SAAS;AAAA,QACxB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,QACvB,eAAe,SAAS;AAAA,QACxB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,QACvB,QAAQ;AAAA,MACT,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,KAAK,UAAU,gBAAgB,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,YACvF,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,SAAS,KAAK,GAAG,MAAM;AAAA,YACvB,OAAO,KAAK,GAAG,MAAM;AAAA,YACrB,MAAM;AAAA,YACN,mBAAmB,SAAS;AAAA,YAC5B,cAAc,KAAK;AAAA,UACpB,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,YAAY,WAAW,KAAK,QAAQ,aAAa;AAAA,YACnF,KAAK;AAAA,YACL,eAAe,SAAS;AAAA,YACxB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,qBAAO,SAAS,SAAS,KAAK;AAAA,YAC/B,GAFiB;AAAA,UAGnB,MAAK,UAAS,GAAI,mBAAmB,UAAU;AAAA,YAC9C,KAAK;AAAA,UACjB,GAAa,CAAC,KAAK,cAAc,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YACvE,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,SAAS,KAAK,GAAG,QAAQ;AAAA,YACzB,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AACjD,qBAAO,SAAS,YAAY,SAAS,SAAS,MAAM,UAAU,SAAS;AAAA,YACrF;AAAA,UACA,GAAa,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,YACzD,SAAS,eAAe,KAAK,GAAG,OAAO,CAAC;AAAA,UACpD,GAAa,WAAY;AACb,mBAAO,CAAC,KAAK,UAAU,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,cACxE,KAAK;AAAA,cACL,IAAI,SAAS;AAAA,cACb,SAAS,KAAK,GAAG,OAAO;AAAA,YACtC,GAAe,KAAK,IAAI,OAAO,CAAC,GAAGxC,kBAAgB,KAAK,MAAM,GAAG,IAAIgb,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,UAChH,CAAW,GAAGD,gBAAmB,OAAO,WAAW;AAAA,YACvC,SAAS,KAAK,GAAG,eAAe;AAAA,UACjC,GAAE,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,eAAe,UAAW,GAAE,YAAY,mBAAmB,WAAW;AAAA,YACzG,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,WAAW,MAAM;AAAA,YACjB,SAAS,KAAK,GAAG,kBAAkB;AAAA,YACnC,SAAS,SAAS;AAAA,YAClB,UAAU,KAAK,cAAc,MAAM;AAAA,YACnC,UAAU,KAAK;AAAA,UAC3B,GAAa,KAAK,qBAAqB;AAAA,YAC3B,IAAI,KAAK,IAAI,kBAAkB;AAAA,YAC/B,yBAAyB;AAAA,UACrC,CAAW,GAAG;AAAA,YACF,MAAM,QAAQ,SAAU,WAAW;AACjC,qBAAO,CAAC,WAAW,KAAK,QAAQ,gBAAgB;AAAA,gBAC9C,WAAW,MAAM;AAAA,cACjC,GAAiB,WAAY;AACb,uBAAO,EAAE,UAAS,GAAI,YAAY,wBAAwB,SAAS,qBAAqB,GAAG,WAAW;AAAA,kBACpG,SAAS,CAAC,UAAU,OAAO,GAAG,MAAM,YAAY,KAAK,eAAe,KAAK,YAAY;AAAA,gBACtF,GAAE,KAAK,IAAI,kBAAkB,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,cAC/D,EAAC;AAAA,YAChB,CAAa;AAAA,YACD,GAAG;AAAA,UACf,GAAa,IAAI,CAAC,aAAa,SAAS,WAAW,YAAY,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,KAAK,YAAY,aAAa,YAAY,mBAAmB,WAAW;AAAA,YAC/K,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,WAAW,MAAM;AAAA,YACjB,SAAS,KAAK,GAAG,eAAe;AAAA,YAChC,SAAS,SAAS;AAAA,YAClB,cAAc,SAAS;AAAA,YACvB,UAAU,KAAK;AAAA,UAC3B,GAAa,KAAK,kBAAkB;AAAA,YACxB,IAAI,KAAK,IAAI,eAAe;AAAA,YAC5B,yBAAyB;AAAA,UACrC,CAAW,GAAG;AAAA,YACF,MAAM,QAAQ,SAAU,WAAW;AACjC,qBAAO,CAAC,WAAW,KAAK,QAAQ,aAAa,CAAE,GAAE,WAAY;AAC3D,uBAAO,EAAE,aAAa,YAAY,wBAAwB,KAAK,YAAY,SAAS,WAAW,GAAG,WAAW;AAAA,kBAC3G,SAAS,CAAC,KAAK,WAAW,UAAU,OAAO,CAAC;AAAA,gBAC7C,GAAE,KAAK,IAAI,eAAe,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,cAC5D,EAAC;AAAA,YAChB,CAAa;AAAA,YACD,GAAG;AAAA,UACJ,GAAE,IAAI,CAAC,aAAa,SAAS,WAAW,cAAc,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGA,gBAAmB,OAAO,WAAW;AAAA,YAC1L,KAAK,SAAS;AAAA,YACd,SAAS,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,YAAY;AAAA,YAC/C,OAAO,KAAK;AAAA,UACb,GAAExB,gBAAcA,gBAAc,IAAI,KAAK,YAAY,GAAG,KAAK,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,UAAU,KAAK,OAAO,UAAU,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,YAC9M,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,SAAS,KAAK,GAAG,QAAQ;AAAA,UAC1B,GAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,UAAU,IAAI,WAAY;AACzE,mBAAO,CAAC,gBAAgBvZ,kBAAgB,KAAK,MAAM,GAAG,CAAC,CAAC;AAAA,UACzD,EAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI8a,YAAU,IAAI,CAAC,CAAC,sBAAsB;AAAA,YAC1F,UAAU,CAAC,KAAK;AAAA,UACjB,EAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC;AAAA,QAC7C,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,iBAAiB,WAAW,gBAAgB,iBAAiB,WAAW,cAAc,CAAC,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IAC5I,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,GAAG,CAAC,UAAU,CAAC;AACpB;AA/HStY;AAiIT6X,SAAO,SAAS7X;AC1mBhB,IAAIgW,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,oNAAoN,OAAOA,IAAG,oBAAoB,GAAG,qBAAqB,EAAE,OAAOA,IAAG,yBAAyB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,2BAA2B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,sBAAsB,GAAG,sHAAsH,EAAE,OAAOA,IAAG,kCAAkC,GAAG,UAAU,EAAE,OAAOA,IAAG,kCAAkC,GAAG,iBAAiB,EAAE,OAAOA,IAAG,kCAAkC,GAAG,2BAA2B,EAAE,OAAOA,IAAG,kCAAkC,GAAG,eAAe,EAAE,OAAOA,IAAG,kCAAkC,GAAG,wBAAwB,EAAE,OAAOA,IAAG,4BAA4B,GAAG,uDAAuD,EAAE,OAAOA,IAAG,0BAA0B,GAAG,0JAA0J,EAAE,OAAOA,IAAG,kBAAkB,GAAG,qNAAuN,EAAE,OAAOA,IAAG,kCAAkC,GAAG,UAAU,EAAE,OAAOA,IAAG,kCAAkC,GAAG,iBAAiB,EAAE,OAAOA,IAAG,kCAAkC,GAAG,+BAA+B,EAAE,OAAOA,IAAG,kCAAkC,GAAG,eAAe,EAAE,OAAOA,IAAG,kCAAkC,GAAG,wCAAwC,EAAE,OAAOA,IAAG,2BAA2B,GAAG,cAAc,EAAE,OAAOA,IAAG,0BAA0B,GAAG,sCAAsC,EAAE,OAAOA,IAAG,2BAA2B,GAAG,yCAAyC,EAAE,OAAOA,IAAG,0BAA0B,GAAG,0BAA0B,EAAE,OAAOA,IAAG,4BAA4B,GAAG,4EAA4E,EAAE,OAAOA,IAAG,yCAAyC,GAAG,qBAAqB,EAAE,OAAOA,IAAG,qCAAqC,GAAG,+FAA+F,EAAE,OAAOA,IAAG,+BAA+B,GAAG,gBAAgB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,oEAAoE,EAAE,OAAOA,IAAG,iCAAiC,GAAG,uBAAuB,EAAE,OAAOA,IAAG,mCAAmC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,4BAA4B,GAAG,2DAA2D,EAAE,OAAOA,IAAG,gCAAgC,GAAG,kBAAkB,EAAE,OAAOA,IAAG,+BAA+B,GAAG,GAAG,EAAE,OAAOA,IAAG,+BAA+B,GAAG,GAAG,EAAE,OAAOA,IAAG,+BAA+B,GAAG,yBAAyB,EAAE,OAAOA,IAAG,gCAAgC,GAAG,yDAAyD,EAAE,OAAOA,IAAG,mCAAmC,GAAG,6FAA6F,EAAE,OAAOA,IAAG,kCAAkC,GAAG,uBAAuB,EAAE,OAAOA,IAAG,oCAAoC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,6BAA6B,GAAG,6CAA6C,EAAE,OAAOA,IAAG,yBAAyB,GAAG,+GAA+G,EAAE,OAAOA,IAAG,+BAA+B,GAAG,oFAAoF,EAAE,OAAOA,IAAG,iCAAiC,GAAG,sEAAsE,EAAE,OAAOA,IAAG,kCAAkC,GAAG,QAAQ;AAC75H,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM,gCAAS/S,OAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,QAAQ,MAAM;AAChB,WAAO,CAAC,8BAA8B;AAAA,MACpC,0BAA0B,SAAS;AAAA,MACnC,aAAa,MAAM;AAAA,IACzB,CAAK;AAAA,EACF,GAPK;AAAA,EAQN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AACT;AACA,IAAI,oBAAoB,UAAU,OAAO;AAAA,EACvC,MAAM;AAAA,EACN,OAAO6V;AAAAA,EACP,SAAS9C;AACX,CAAC;ACjBD,IAAIuF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWN;AAAAA,EACX,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIP,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWY;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,qBAAqB,QAAQ;AAAA,EACrC,SAAS;AAAA,IACP,cAAc,gCAASwC,cAAa,KAAK;AACvC,UAAI,OAAO,QAAQ,SAAS,KAAK,OAAO,KAAK;AAC7C,aAAO,KAAK,KAAK;AAAA,QACf,SAAS;AAAA,UACP,QAAQ,KAAK;AAAA,UACb,UAAU,KAAK;AAAA,QAChB;AAAA,MACT,CAAO;AAAA,IACF,GARa;AAAA,IASd,UAAU,gCAASxH,UAAS,OAAO;AACjC,UAAI,CAAC,KAAK,YAAY,CAAC,KAAK,UAAU;AACpC,aAAK,MAAM,qBAAqB,CAAC,KAAK,UAAU;AAChD,aAAK,MAAM,UAAU,KAAK;AAAA,MAC3B;AAAA,IACF,GALS;AAAA,EAMX;AAAA,EACD,UAAU;AAAA,IACR,QAAQ,gCAAS4Z,UAAS;AACxB,aAAO,KAAK,eAAe;AAAA,IAC5B,GAFO;AAAA,IAGR,UAAU,gCAAS,WAAW;AAC5B,aAAO,WAAW,KAAK,OAAO,KAAK,WAAW,KAAK,QAAQ;AAAA,IAC5D,GAFS;AAAA,IAGV,OAAO,gCAAS9a,SAAQ;AACtB,aAAO,KAAK,WAAW,KAAK,aAAa,KAAK,UAAU,KAAK,WAAW;AAAA,IACzE,GAFM;AAAA,EAGR;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAI+F,eAAa,CAAC,YAAY,YAAY,gBAAgB,kBAAkB,iBAAiB;AAC7F,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,gBAAgB,UAAS,GAAI,mBAAmB,UAAU,WAAW;AAAA,IAC1E,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,gBAAgB,KAAK;AAAA,IACrB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,YAAY,SAAS,SAAS,MAAM,UAAU,SAAS;AAAA,IAC7E;AAAA,EACA,GAAK,SAAS,aAAa,MAAM,GAAG;AAAA,IAChC,kBAAkB,SAAS;AAAA,IAC3B,mBAAmB,KAAK;AAAA,EACzB,IAAG,CAACuY,gBAAmB,QAAQ,WAAW;AAAA,IACzC,SAAS,KAAK,GAAG,SAAS;AAAA,EAC3B,GAAE,SAAS,aAAa,SAAS,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,WAAW,IAAI,WAAY;AACxF,WAAO,CAAC,WAAW,KAAK,QAAQ,QAAQ;AAAA,MACtC,OAAO,KAAK;AAAA,MACZ,SAAS,eAAe,KAAK,GAAG,MAAM,CAAC;AAAA,IAC7C,GAAO,WAAY;AACb,aAAO,CAAC,KAAK,UAAU,KAAK,WAAW,aAAa,mBAAmB,QAAQ,WAAW;AAAA,QACxF,KAAK;AAAA,QACL,SAAS,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,aAAa,KAAK,SAAS,KAAK,OAAO;AAAA,MACxE,GAAE,SAAS,aAAa,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IAClF,CAAK,GAAGA,gBAAmB,QAAQ,WAAW;AAAA,MACxC,SAAS,KAAK,GAAG,OAAO;AAAA,IAC9B,GAAO,SAAS,aAAa,OAAO,CAAC,GAAG/a,kBAAgB,SAAS,KAAK,GAAG,EAAE,CAAC;AAAA,EAC5E,CAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI8a,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACpD;AA7BStY;AA+BT6X,SAAO,SAAS7X;AC/HhB,IAAIgW,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,4JAA4J,OAAOA,IAAG,4BAA4B,GAAG,mTAAmT,EAAE,OAAOA,IAAG,4BAA4B,GAAG,oCAAoC,EAAE,OAAOA,IAAG,4BAA4B,GAAG,qFAAqF,EAAE,OAAOA,IAAG,4BAA4B,GAAG,qCAAqC,EAAE,OAAOA,IAAG,4BAA4B,GAAG,8DAA8D,EAAE,OAAOA,IAAG,mCAAmC,GAAG,gCAAgC;AAC39B,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM,gCAAS/S,OAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,8BAA8B;AAAA,MACpC,aAAa,MAAM;AAAA,IACzB,CAAK;AAAA,EACF,GALK;AAMR;AACA,IAAI,oBAAoB,UAAU,OAAO;AAAA,EACvC,MAAM;AAAA,EACN,OAAO6V;AAAAA,EACP,SAAS9C;AACX,CAAC;ACXD,IAAIuF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWN;AAAAA,EACX,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,aAAa;AAAA,IACb,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,IACV,SAAS;AAAA,IACT,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,SAAS,2BAA2B,GAAGlZ,IAAG;AAAE,MAAI+C,KAAI,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,CAACA,IAAG;AAAE,QAAI,MAAM,QAAQ,CAAC,MAAMA,KAAIuS,8BAA4B,CAAC,MAAMtV,IAAG;AAAE,MAAA+C,OAAM,IAAIA;AAAI,UAAI,KAAK,GAAG,IAAI,gCAASwS,KAAI;AAAA,SAAb;AAAiB,aAAO,EAAE,GAAG,GAAG,GAAG,gCAAS,IAAI;AAAE,eAAO,MAAM,EAAE,SAAS,EAAE,MAAM,KAAE,IAAK,EAAE,MAAM,OAAI,OAAO,EAAE,IAAI,EAAG;AAAA,MAAG,GAArF,MAAuF,GAAG,gCAASvV,GAAEwV,IAAG;AAAE,cAAMA;AAAA,MAAI,GAA1B,MAA4B,GAAG,EAAC;AAAA,IAAG;AAAG,UAAM,IAAI,UAAU,uIAAuI;AAAA,EAAI;AAAC,MAAI,GAAG,IAAI,MAAI,IAAI;AAAI,SAAO,EAAE,GAAG,gCAAS,IAAI;AAAE,IAAAzS,KAAIA,GAAE,KAAK,CAAC;AAAA,EAAI,GAA/B,MAAiC,GAAG,gCAAS,IAAI;AAAE,QAAIyS,KAAIzS,GAAE,KAAM;AAAE,WAAO,IAAIyS,GAAE,MAAMA;AAAA,EAAE,GAAtD,MAA0D,GAAG,gCAASxV,GAAEwV,IAAG;AAAE,QAAI,MAAI,IAAIA;AAAA,EAAI,GAAhC,MAAkC,GAAG,gCAAS,IAAI;AAAE,QAAI;AAAE,WAAK,QAAQzS,GAAE,QAAQ,KAAKA,GAAE,QAAQ,EAAG;AAAA,IAAG;AAAW,UAAI,EAAG,OAAM;AAAA,IAAE;AAAA,EAAI,GAA/F,KAA+F;AAAK;AAA/yB;AACT,SAASqT,qBAAmB,GAAG;AAAE,SAAOC,qBAAmB,CAAC,KAAKC,mBAAiB,CAAC,KAAKhB,8BAA4B,CAAC,KAAKiB,qBAAoB;AAAG;AAAxIH;AACT,SAASG,uBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArLA;AACT,SAASjB,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOG,oBAAkB,GAAG,CAAC;AAAG,QAAI1S,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAI0S,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXH;AACT,SAASgB,mBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxIA;AACT,SAASD,qBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOZ,oBAAkB,CAAC;AAAI;AAA5EY;AACT,SAASZ,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAASzV,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAG,SAAO;AAAI;AAA3IyV;AACN,IAACkD,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWY;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,qBAAqB,QAAQ;AAAA,EACrC,SAAS;AAAA,IACP,gBAAgB,gCAASiF,gBAAe/Y,SAAQ;AAC9C,aAAO,KAAK,cAAc,iBAAiBA,SAAQ,KAAK,WAAW,IAAIA;AAAA,IACxE,GAFe;AAAA,IAGhB,gBAAgB,gCAASgZ,gBAAehZ,SAAQ;AAC9C,aAAO,KAAK,cAAc,iBAAiBA,SAAQ,KAAK,WAAW,IAAIA;AAAA,IACxE,GAFe;AAAA,IAGhB,oBAAoB,gCAASiZ,oBAAmBjZ,SAAQ;AACtD,aAAO,KAAK,UAAU,iBAAiBA,SAAQ,KAAK,OAAO,IAAI,KAAK,eAAeA,OAAM;AAAA,IAC1F,GAFmB;AAAA,IAGpB,cAAc,gCAASsW,cAAatW,SAAQ,KAAK;AAC/C,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,QAAQ,KAAK,WAAWA,OAAM;AAAA,UAC9B,UAAU,KAAK,iBAAiBA,OAAM;AAAA,UACtC,QAAQA;AAAA,QACT;AAAA,MACT,CAAO;AAAA,IACF,GARa;AAAA,IASd,kBAAkB,gCAASkZ,kBAAiBlZ,SAAQ;AAClD,aAAO,KAAK,iBAAiB,iBAAiBA,SAAQ,KAAK,cAAc,IAAI;AAAA,IAC9E,GAFiB;AAAA,IAGlB,gBAAgB,gCAAS4Z,gBAAe,OAAO5Z,SAAQrH,QAAO;AAC5D,UAAI,QAAQ;AACZ,UAAI,KAAK,YAAY,KAAK,iBAAiBqH,OAAM,GAAG;AAClD;AAAA,MACD;AACD,UAAIiO,YAAW,KAAK,WAAWjO,OAAM;AACrC,UAAIiO,aAAY,CAAC,KAAK,YAAY;AAChC;AAAA,MACD;AACD,UAAI,cAAc,KAAK,eAAejO,OAAM;AAC5C,UAAI5G;AACJ,UAAI,KAAK,UAAU;AACjB,YAAI6U,UAAU,CAAA7U,YAAW,KAAK,WAAW,OAAO,SAAU,KAAK;AAC7D,iBAAO,CAAC,OAAO,KAAK,aAAa,MAAM,WAAW;AAAA,QAC5D,CAAS;AAAA,YAAO,CAAAA,YAAW,KAAK,aAAa,GAAG,OAAOuX,qBAAmB,KAAK,UAAU,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW;AAAA,MACzH,OAAa;AACL,QAAAvX,YAAW6U,YAAW,OAAO;AAAA,MAC9B;AACD,WAAK,eAAetV;AACpB,WAAK,MAAM,qBAAqBS,SAAQ;AACxC,WAAK,MAAM,UAAU;AAAA,QACnB;AAAA,QACA,OAAOA;AAAA,MACf,CAAO;AAAA,IACF,GAxBe;AAAA,IAyBhB,YAAY,gCAAS8U,YAAWlO,SAAQ;AACtC,UAAIiO,YAAW;AACf,UAAI,cAAc,KAAK,eAAejO,OAAM;AAC5C,UAAI,KAAK,UAAU;AACjB,YAAI,KAAK,YAAY;AACnB,cAAI,YAAY,2BAA2B,KAAK,UAAU,GACxD;AACF,cAAI;AACF,iBAAK,UAAU,EAAC,GAAI,EAAE,QAAQ,UAAU,EAAG,GAAE,QAAO;AAClD,kBAAI,MAAM,MAAM;AAChB,kBAAI,OAAO,KAAK,aAAa,KAAK,WAAW,GAAG;AAC9C,gBAAAiO,YAAW;AACX;AAAA,cACD;AAAA,YACF;AAAA,UACF,SAAQ,KAAK;AACZ,sBAAU,EAAE,GAAG;AAAA,UAC3B,UAAoB;AACR,sBAAU,EAAC;AAAA,UACZ;AAAA,QACF;AAAA,MACT,OAAa;AACL,QAAAA,YAAW,OAAO,KAAK,YAAY,aAAa,KAAK,WAAW;AAAA,MACjE;AACD,aAAOA;AAAA,IACR,GAzBW;AAAA,EA0Bb;AAAA,EACD,UAAU;AAAA,IACR,aAAa,gCAAS8N,eAAc;AAClC,aAAO,KAAK,cAAc,OAAO,KAAK;AAAA,IACvC,GAFY;AAAA,EAGd;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AAAA,EACD,YAAY;AAAA,IACV,cAAcgO;AAAAA,EACf;AACH;AAEA,IAAIpW,eAAa,CAAC,iBAAiB;AACnC,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,0BAA0B,iBAAiB,cAAc;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,MAAM;AAAA,IACN,mBAAmB,KAAK;AAAA,EAC5B,GAAK,KAAK,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,KAAK,SAAS,SAAU2E,SAAQrH,QAAO;AAC7H,WAAO,UAAS,GAAI,YAAY,yBAAyB;AAAA,MACvD,KAAK,SAAS,mBAAmBqH,OAAM;AAAA,MACvC,YAAY,SAAS,WAAWA,OAAM;AAAA,MACtC,SAAS,SAAS,eAAeA,OAAM;AAAA,MACvC,UAAU,SAAS,eAAeA,OAAM;AAAA,MACxC,UAAU,KAAK,YAAY,SAAS,iBAAiBA,OAAM;AAAA,MAC3D,UAAU,KAAK;AAAA,MACf,UAAU,gCAAS8O,UAAS,QAAQ;AAClC,eAAO,SAAS,eAAe,QAAQ9O,SAAQrH,MAAK;AAAA,MACrD,GAFS;AAAA,MAGV,IAAI,KAAK,IAAI,UAAU;AAAA,IACxB,GAAE,YAAY;AAAA,MACb,GAAG;AAAA,IACT,GAAO,CAAC,KAAK,OAAO,SAAS;AAAA,MACvB,MAAM;AAAA,MACN,IAAI,QAAQ,WAAY;AACtB,eAAO,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,UACxC,QAAQqH;AAAA,UACR,OAAOrH;AAAA,QACjB,GAAW,WAAY;AACb,iBAAO,CAACib,gBAAmB,QAAQ,WAAW;AAAA,YAC5C,SAAS;AAAA,UACV,GAAE,KAAK,IAAI,UAAU,EAAE,OAAO,CAAC,GAAG/a,kBAAgB,SAAS,eAAemH,OAAM,CAAC,GAAG,EAAE,CAAC;AAAA,QACzF,EAAC;AAAA,MACV,CAAO;AAAA,MACD,KAAK;AAAA,IACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,cAAc,WAAW,YAAY,YAAY,YAAY,YAAY,IAAI,CAAC;AAAA,EACvG,IAAG,GAAG,EAAC,GAAI,IAAI2T,YAAU;AAC5B;AAnCStY;AAqCT6X,SAAO,SAAS7X;AChLhB,IAAIgW,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,4KAA4K,OAAOA,IAAG,2BAA2B,GAAG,iBAAiB,EAAE,OAAOA,IAAG,4BAA4B,GAAG,8DAA8D,EAAE,OAAOA,IAAG,mCAAmC,GAAG,gCAAgC,EAAE,OAAOA,IAAG,iCAAiC,GAAG,UAAU,EAAE,OAAOA,IAAG,iCAAiC,GAAG,iBAAiB,EAAE,OAAOA,IAAG,iCAAiC,GAAG,kBAAkB,EAAE,OAAOA,IAAG,iCAAiC,GAAG,eAAe,EAAE,OAAOA,IAAG,iCAAiC,GAAG,mIAAmI,EAAE,OAAOA,IAAG,wCAAwC,GAAG,qBAAqB,EAAE,OAAOA,IAAG,uCAAuC,GAAG,kBAAkB,EAAE,OAAOA,IAAG,sCAAsC,GAAG,GAAG,EAAE,OAAOA,IAAG,sCAAsC,GAAG,GAAG,EAAE,OAAOA,IAAG,sCAAsC,GAAG,yBAAyB,EAAE,OAAOA,IAAG,uCAAuC,GAAG,kDAAkD,EAAE,OAAOA,IAAG,8BAA8B,GAAG,2BAA2B,EAAE,OAAOA,IAAG,gCAAgC,GAAG,wBAAwB,EAAE,OAAOA,IAAG,iCAAiC,GAAG,qBAAqB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,82BAA82B,EAAE,OAAOA,IAAG,0BAA0B,GAAG,ulBAAulB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,QAAQ;AAC9iG,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM;AAAA,EACN,SAAS,gCAAS,QAAQ,OAAO;AAC/B,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,yBAAyB;AAAA,MAC/B,cAAc,MAAM;AAAA,IAC1B,CAAK;AAAA,EACF,GALQ;AAAA,EAMT,OAAO,gCAAS,MAAM,OAAO;AAC3B,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,uBAAuB;AAAA,MAC7B,8BAA8B,MAAM;AAAA,MACpC,cAAc,MAAM;AAAA,IAC1B,CAAK;AAAA,EACF,GANM;AAAA,EAOP,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,KAAK;AAAA,EACL,WAAW;AACb;AACA,IAAI,mBAAmB,UAAU,OAAO;AAAA,EACtC,MAAM;AAAA,EACN,OAAO8C;AAAAA,EACP,SAAS9C;AACX,CAAC;ACtBD,IAAIuF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWN;AAAAA,EACX,OAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,EACb;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIP,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWY;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,qBAAqB,UAAU,QAAQ,MAAM;AAAA,EACrD,MAAM,gCAASxY,SAAO;AACpB,WAAO;AAAA,MACL,gBAAgB;AAAA,IACtB;AAAA,EACG,GAJK;AAAA,EAKN,UAAU;AAAA,EACV,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO;AAAA,IACL,YAAY;AAAA,MACV,WAAW;AAAA,MACX,SAAS,gCAASN,SAAQ5B,WAAU;AAClC,aAAK,WAAW,KAAK,MAAMA,SAAQ;AACnC,YAAI,KAAK,WAAY,MAAK,aAAa;AAAA,YAAW,MAAK;MACxD,GAHQ;AAAA,IAIV;AAAA,EACF;AAAA,EACD,eAAe,gCAASyD,iBAAgB;AACtC,SAAK,2BAA0B;AAC/B,SAAK,oBAAmB;AACxB,SAAK,qBAAoB;AACzB,QAAI,KAAK,eAAe;AACtB,WAAK,cAAc;AACnB,WAAK,gBAAgB;AAAA,IACtB;AACD,QAAI,KAAK,UAAU,KAAK,YAAY;AAClC,aAAO,MAAM,KAAK,MAAM;AAAA,IACzB;AACD,SAAK,UAAS;AAAA,EACf,GAZc;AAAA,EAaf,SAAS,gCAASH,YAAU;AAC1B,SAAK,SAAQ;AAAA,EACd,GAFQ;AAAA,EAGT,SAAS;AAAA,IACP,WAAW,gCAAS,UAAU,OAAO;AACnC,UAAI,OAAO,KAAK,cAAc,sBAAqB;AACnD,UAAI,MAAM,KAAK,OAAO,OAAO,eAAe,SAAS,gBAAgB,aAAa,SAAS,KAAK,aAAa;AAC7G,UAAI,OAAO,KAAK,OAAO,SAAS,KAAK;AACrC,UAAI,aAAa,KAAK,MAAM,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,MAAM,MAAM,SAAS,MAAM,eAAe,CAAC,EAAE,SAAS,IAAI,CAAC,IAAI,GAAG;AACzH,UAAI,aAAa,KAAK,MAAM,OAAO,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,MAAM,MAAM,SAAS,MAAM,eAAe,CAAC,EAAE,SAAS,GAAG,CAAC,KAAK,GAAG;AAChI,WAAK,WAAW,KAAK,YAAY;AAAA,QAC/B,GAAG,KAAK,SAAS;AAAA,QACjB,GAAG;AAAA,QACH,GAAG;AAAA,MACX,CAAO;AACD,WAAK,aAAa;AAClB,WAAK,kBAAiB;AACtB,WAAK,YAAW;AAChB,WAAK,YAAY,KAAK;AAAA,IACvB,GAfU;AAAA,IAgBX,SAAS,gCAAS,QAAQ,OAAO;AAC/B,UAAI,MAAM,KAAK,QAAQ,sBAAuB,EAAC,OAAO,OAAO,eAAe,SAAS,gBAAgB,aAAa,SAAS,KAAK,aAAa;AAC7I,WAAK,WAAW,KAAK,YAAY;AAAA,QAC/B,GAAG,KAAK,MAAM,OAAO,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,MAAM,MAAM,SAAS,MAAM,eAAe,CAAC,EAAE,SAAS,GAAG,CAAC,KAAK,GAAG;AAAA,QAClH,GAAG;AAAA,QACH,GAAG;AAAA,MACX,CAAO;AACD,WAAK,aAAa;AAClB,WAAK,oBAAmB;AACxB,WAAK,UAAS;AACd,WAAK,YAAY,KAAK;AACtB,WAAK,YAAW;AAAA,IACjB,GAZQ;AAAA,IAaT,aAAa,gCAAS+b,aAAY,OAAO;AACvC,UAAI/gB,SAAQ,KAAK;AACjB,cAAQ,KAAK,QAAM;AAAA,QACjB,KAAK;AACH,UAAAA,SAAQ,KAAK,SAAS,KAAK,QAAQ;AACnC;AAAA,QACF,KAAK;AACH,UAAAA,SAAQ,KAAK,SAAS,KAAK,QAAQ;AACnC;AAAA,QACF,KAAK;AACH,UAAAA,SAAQ,KAAK;AACb;AAAA,MACH;AACD,WAAK,MAAM,qBAAqBA,MAAK;AACrC,WAAK,MAAM,UAAU;AAAA,QACnB;AAAA,QACA,OAAOA;AAAA,MACf,CAAO;AAAA,IACF,GAlBY;AAAA,IAmBb,qBAAqB,gCAAS,sBAAsB;AAClD,UAAI,KAAK,eAAe;AACtB,YAAI,WAAW,KAAK,YAAY;AAAA,UAC9B,GAAG,KAAK,SAAS;AAAA,UACjB,GAAG;AAAA,UACH,GAAG;AAAA,QACb,CAAS;AACD,aAAK,cAAc,MAAM,kBAAkB,MAAM,KAAK,SAAS,QAAQ;AAAA,MACxE;AAAA,IACF,GAToB;AAAA,IAUrB,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,KAAK,aAAa;AACpB,aAAK,YAAY,MAAM,OAAO,KAAK,MAAM,MAAM,KAAK,SAAS,IAAI,GAAG,IAAI;AACxE,aAAK,YAAY,MAAM,MAAM,KAAK,MAAM,OAAO,MAAM,KAAK,SAAS,KAAK,GAAG,IAAI;AAAA,MAChF;AAAA,IACF,GALkB;AAAA,IAMnB,WAAW,gCAAS,YAAY;AAC9B,UAAI,KAAK,WAAW;AAClB,aAAK,UAAU,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,SAAS,IAAI,GAAG,IAAI;AAAA,MAC5E;AAAA,IACF,GAJU;AAAA,IAKX,aAAa,gCAASsyB,eAAc;AAClC,UAAI,KAAK,MAAM,OAAO;AACpB,aAAK,MAAM,MAAM,MAAM,kBAAkB,MAAM,KAAK,SAAS,KAAK,QAAQ;AAAA,MAC3E;AAAA,IACF,GAJY;AAAA,IAKb,UAAU,gCAAS,WAAW;AAC5B,WAAK,UAAS;AACd,WAAK,kBAAiB;AACtB,WAAK,YAAW;AAChB,WAAK,oBAAmB;AAAA,IACzB,GALS;AAAA,IAMV,aAAa,gCAAS,YAAY,KAAK;AACrC,aAAO;AAAA,QACL,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC;AAAA,QACnC,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC;AAAA,QACnC,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC;AAAA,MAC3C;AAAA,IACK,GANY;AAAA,IAOb,aAAa,gCAAS,YAAY,KAAK;AACrC,aAAO;AAAA,QACL,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC;AAAA,QACnC,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC;AAAA,QACnC,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC;AAAA,MAC3C;AAAA,IACK,GANY;AAAA,IAOb,aAAa,gCAAS,YAAY,KAAK;AACrC,UAAI,MAAM,IAAI,IAAI;AAClB,UAAI,MAAM,GAAG;AACX,YAAI,IAAI;AACR,iBAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,YAAE,KAAK,GAAG;AAAA,QACX;AACD,UAAE,KAAK,GAAG;AACV,cAAM,EAAE,KAAK,EAAE;AAAA,MAChB;AACD,aAAO;AAAA,IACR,GAXY;AAAA,IAYb,UAAU,gCAAS,SAAS,KAAK;AAC/B,UAAI,WAAW,SAAS,IAAI,QAAQ,GAAG,IAAI,KAAK,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE;AAC1E,aAAO;AAAA,QACL,GAAG,YAAY;AAAA,QACf,IAAI,WAAW,UAAa;AAAA,QAC5B,GAAG,WAAW;AAAA,MACtB;AAAA,IACK,GAPS;AAAA,IAQV,UAAU,gCAAS,SAAS,KAAK;AAC/B,aAAO,KAAK,SAAS,KAAK,SAAS,GAAG,CAAC;AAAA,IACxC,GAFS;AAAA,IAGV,UAAU,gCAAS,SAAS,KAAK;AAC/B,UAAI,MAAM;AAAA,QACR,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,MACX;AACM,UAAI,MAAM,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACtC,UAAI,MAAM,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACtC,UAAIxM,SAAQ,MAAM;AAClB,UAAI,IAAI;AACR,UAAI,IAAI,QAAQ,IAAI,MAAMA,SAAQ,MAAM;AACxC,UAAI,IAAI,MAAM,GAAG;AACf,YAAI,IAAI,MAAM,KAAK;AACjB,cAAI,KAAK,IAAI,IAAI,IAAI,KAAKA;AAAA,QACpC,WAAmB,IAAI,MAAM,KAAK;AACxB,cAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAKA;AAAA,QACxC,OAAe;AACL,cAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAKA;AAAA,QAC/B;AAAA,MACT,OAAa;AACL,YAAI,IAAI;AAAA,MACT;AACD,UAAI,KAAK;AACT,UAAI,IAAI,IAAI,GAAG;AACb,YAAI,KAAK;AAAA,MACV;AACD,UAAI,KAAK,MAAM;AACf,UAAI,KAAK,MAAM;AACf,aAAO;AAAA,IACR,GA7BS;AAAA,IA8BV,UAAU,gCAAS,SAAS,KAAK;AAC/B,UAAI,MAAM;AAAA,QACR,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,MACX;AACM,UAAIvgB,KAAI,KAAK,MAAM,IAAI,CAAC;AACxB,UAAI,IAAI,KAAK,MAAM,IAAI,IAAI,MAAM,GAAG;AACpC,UAAInE,KAAI,KAAK,MAAM,IAAI,IAAI,MAAM,GAAG;AACpC,UAAI,MAAM,GAAG;AACX,cAAM;AAAA,UACJ,GAAGA;AAAA,UACH,GAAGA;AAAA,UACH,GAAGA;AAAA,QACb;AAAA,MACA,OAAa;AACL,YAAI,KAAKA;AACT,YAAI,MAAM,MAAM,KAAKA,KAAI;AACzB,YAAI,MAAM,KAAK,OAAOmE,KAAI,MAAM;AAChC,YAAIA,OAAM,IAAK,CAAAA,KAAI;AACnB,YAAIA,KAAI,IAAI;AACV,cAAI,IAAI;AACR,cAAI,IAAI;AACR,cAAI,IAAI,KAAK;AAAA,QACvB,WAAmBA,KAAI,KAAK;AAClB,cAAI,IAAI;AACR,cAAI,IAAI;AACR,cAAI,IAAI,KAAK;AAAA,QACvB,WAAmBA,KAAI,KAAK;AAClB,cAAI,IAAI;AACR,cAAI,IAAI;AACR,cAAI,IAAI,KAAK;AAAA,QACvB,WAAmBA,KAAI,KAAK;AAClB,cAAI,IAAI;AACR,cAAI,IAAI;AACR,cAAI,IAAI,KAAK;AAAA,QACvB,WAAmBA,KAAI,KAAK;AAClB,cAAI,IAAI;AACR,cAAI,IAAI;AACR,cAAI,IAAI,KAAK;AAAA,QACvB,WAAmBA,KAAI,KAAK;AAClB,cAAI,IAAI;AACR,cAAI,IAAI;AACR,cAAI,IAAI,KAAK;AAAA,QACvB,OAAe;AACL,cAAI,IAAI;AACR,cAAI,IAAI;AACR,cAAI,IAAI;AAAA,QACT;AAAA,MACF;AACD,aAAO;AAAA,QACL,GAAG,KAAK,MAAM,IAAI,CAAC;AAAA,QACnB,GAAG,KAAK,MAAM,IAAI,CAAC;AAAA,QACnB,GAAG,KAAK,MAAM,IAAI,CAAC;AAAA,MAC3B;AAAA,IACK,GAvDS;AAAA,IAwDV,UAAU,gCAAS,SAAS,KAAK;AAC/B,UAAI,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC;AACrE,eAAS,OAAO,KAAK;AACnB,YAAI,IAAI,GAAG,EAAE,WAAW,GAAG;AACzB,cAAI,GAAG,IAAI,MAAM,IAAI,GAAG;AAAA,QACzB;AAAA,MACF;AACD,aAAO,IAAI,KAAK,EAAE;AAAA,IACnB,GARS;AAAA,IASV,UAAU,gCAAS,SAAS,KAAK;AAC/B,aAAO,KAAK,SAAS,KAAK,SAAS,GAAG,CAAC;AAAA,IACxC,GAFS;AAAA,IAGV,OAAO,gCAAS,MAAMvF,QAAO;AAC3B,UAAI;AACJ,UAAIA,QAAO;AACT,gBAAQ,KAAK,QAAM;AAAA,UACjB,KAAK;AACH,kBAAM,KAAK,SAASA,MAAK;AACzB;AAAA,UACF,KAAK;AACH,kBAAM,KAAK,SAASA,MAAK;AACzB;AAAA,UACF,KAAK;AACH,kBAAMA;AACN;AAAA,QACH;AAAA,MACT,OAAa;AACL,cAAM,KAAK,SAAS,KAAK,YAAY;AAAA,MACtC;AACD,aAAO;AAAA,IACR,GAlBM;AAAA,IAmBP,gBAAgB,gCAASuyB,gBAAe,IAAI;AAC1C,WAAK,SAAQ;AACb,WAAK,aAAY;AACjB,WAAK,yBAAwB;AAC7B,WAAK,mBAAkB;AACvB,WAAK,mBAAkB;AACvB,UAAI,KAAK,YAAY;AACnB,eAAO,IAAI,WAAW,IAAI,KAAK,YAAY,KAAK,UAAU,OAAO,OAAO,OAAO;AAAA,MAChF;AACD,WAAK,MAAM,MAAM;AAAA,IAClB,GAVe;AAAA,IAWhB,gBAAgB,gCAASC,kBAAiB;AACxC,WAAK,2BAA0B;AAC/B,WAAK,qBAAoB;AACzB,WAAK,qBAAoB;AACzB,WAAK,UAAS;AACd,WAAK,MAAM,MAAM;AAAA,IAClB,GANe;AAAA,IAOhB,qBAAqB,gCAASC,qBAAoB,IAAI;AACpD,UAAI,KAAK,YAAY;AACnB,eAAO,MAAM,EAAE;AAAA,MAChB;AAAA,IACF,GAJoB;AAAA,IAKrB,cAAc,gCAASzP,gBAAe;AACpC,UAAI,KAAK,aAAa,OAAQ,kBAAiB,KAAK,QAAQ,KAAK,MAAM,KAAK;AAAA,UAAO,kBAAiB,KAAK,QAAQ,KAAK,MAAM,KAAK;AAAA,IAClI,GAFa;AAAA,IAGd,cAAc,gCAAS0P,gBAAe;AACpC,UAAI,KAAK,UAAU;AACjB;AAAA,MACD;AACD,WAAK,iBAAiB,CAAC,KAAK;AAAA,IAC7B,GALa;AAAA,IAMd,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,iBAAiB,CAAC,KAAK;AAC5B,gBAAM,eAAc;AACpB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,iBAAiB;AACtB;AAAA,MACH;AAAA,IACF,GAXe;AAAA,IAYhB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,UAAI,KAAK,UAAU;AACjB;AAAA,MACD;AACD,WAAK,kBAAiB;AACtB,WAAK,iBAAiB,KAAK;AAAA,IAC5B,GANiB;AAAA,IAOlB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,UAAI,KAAK,UAAU;AACjB;AAAA,MACD;AACD,WAAK,gBAAgB;AACrB,WAAK,UAAU,KAAK;AACpB,WAAK,IAAI,aAAa,0BAA0B,MAAM;AACtD,OAAC,KAAK,cAAc,SAAS,KAAK,KAAK,wBAAwB;AAC/D,YAAM,eAAc;AAAA,IACrB,GATiB;AAAA,IAUlB,QAAQ,gCAASC,QAAO,OAAO;AAC7B,UAAI,KAAK,eAAe;AACtB,aAAK,UAAU,KAAK;AACpB,cAAM,eAAc;AAAA,MACrB;AACD,UAAI,KAAK,aAAa;AACpB,aAAK,QAAQ,KAAK;AAClB,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GATO;AAAA,IAUR,WAAW,gCAASnC,aAAY;AAC9B,WAAK,gBAAgB;AACrB,WAAK,cAAc;AACnB,WAAK,IAAI,aAAa,0BAA0B,OAAO;AACvD,OAAC,KAAK,cAAc,YAAY,KAAK,KAAK,wBAAwB;AAClE,WAAK,oBAAmB;AAAA,IACzB,GANU;AAAA,IAOX,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,KAAK,UAAU;AACjB;AAAA,MACD;AACD,WAAK,kBAAiB;AACtB,WAAK,eAAe,KAAK;AAAA,IAC1B,GANe;AAAA,IAOhB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,KAAK,UAAU;AACjB;AAAA,MACD;AACD,WAAK,cAAc;AACnB,WAAK,QAAQ,KAAK;AAClB,OAAC,KAAK,cAAc,SAAS,KAAK,KAAK,wBAAwB;AAAA,IAChE,GAPe;AAAA,IAQhB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,aAAO,KAAK,MAAM,SAAS,KAAK,MAAM,MAAM,WAAW,MAAM,MAAM;AAAA,IACpE,GAFe;AAAA,IAGhB,mBAAmB,gCAASoC,qBAAoB;AAC9C,WAAK,8BAA6B;AAClC,WAAK,4BAA2B;AAAA,IACjC,GAHkB;AAAA,IAInB,qBAAqB,gCAASC,uBAAsB;AAClD,WAAK,gCAA+B;AACpC,WAAK,8BAA6B;AAAA,IACnC,GAHoB;AAAA,IAIrB,0BAA0B,gCAASvD,4BAA2B;AAC5D,UAAI,QAAQ;AACZ,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,MAAM,kBAAkB,MAAM,UAAU,CAAC,MAAM,OAAO,SAAS,MAAM,MAAM,KAAK,CAAC,MAAM,eAAe,KAAK,GAAG;AAChH,kBAAM,iBAAiB;AAAA,UACxB;AAAA,QACX;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAVyB;AAAA,IAW1B,4BAA4B,gCAASC,8BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,oBAAoB,gCAASzW,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,eAAe;AACvB,aAAK,gBAAgB,IAAI,8BAA8B,KAAK,MAAM,WAAW,WAAY;AACvF,cAAI,OAAO,gBAAgB;AACzB,mBAAO,iBAAiB;AAAA,UACzB;AAAA,QACX,CAAS;AAAA,MACF;AACD,WAAK,cAAc;IACpB,GAVmB;AAAA,IAWpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;MACpB;AAAA,IACF,GAJqB;AAAA,IAKtB,oBAAoB,gCAASkK,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,WAAY;AAChC,cAAI,OAAO,kBAAkB,CAAC,iBAAiB;AAC7C,mBAAO,iBAAiB;AAAA,UACzB;AAAA,QACX;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAVmB;AAAA,IAWpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,+BAA+B,gCAAS,gCAAgC;AACtE,UAAI,CAAC,KAAK,2BAA2B;AACnC,aAAK,4BAA4B,KAAK,OAAO,KAAK,IAAI;AACtD,iBAAS,iBAAiB,aAAa,KAAK,yBAAyB;AAAA,MACtE;AAAA,IACF,GAL8B;AAAA,IAM/B,iCAAiC,gCAAS,kCAAkC;AAC1E,UAAI,KAAK,2BAA2B;AAClC,iBAAS,oBAAoB,aAAa,KAAK,yBAAyB;AACxE,aAAK,4BAA4B;AAAA,MAClC;AAAA,IACF,GALgC;AAAA,IAMjC,6BAA6B,gCAAS,8BAA8B;AAClE,UAAI,CAAC,KAAK,yBAAyB;AACjC,aAAK,0BAA0B,KAAK,UAAU,KAAK,IAAI;AACvD,iBAAS,iBAAiB,WAAW,KAAK,uBAAuB;AAAA,MAClE;AAAA,IACF,GAL4B;AAAA,IAM7B,+BAA+B,gCAAS,gCAAgC;AACtE,UAAI,KAAK,yBAAyB;AAChC,iBAAS,oBAAoB,WAAW,KAAK,uBAAuB;AACpE,aAAK,0BAA0B;AAAA,MAChC;AAAA,IACF,GAL8B;AAAA,IAM/B,WAAW,gCAAS,UAAU,IAAI;AAChC,WAAK,SAAS;AAAA,IACf,GAFU;AAAA,IAGX,kBAAkB,gCAAS,iBAAiB,IAAI;AAC9C,WAAK,gBAAgB;AAAA,IACtB,GAFiB;AAAA,IAGlB,gBAAgB,gCAAS,eAAe,IAAI;AAC1C,WAAK,cAAc;AAAA,IACpB,GAFe;AAAA,IAGhB,YAAY,gCAAS,WAAW,IAAI;AAClC,WAAK,UAAU;AAAA,IAChB,GAFW;AAAA,IAGZ,cAAc,gCAAS,aAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,WAAW,gCAAS,YAAY;AAC9B,WAAK,SAAS;AACd,WAAK,gBAAgB;AACrB,WAAK,cAAc;AACnB,WAAK,UAAU;AACf,WAAK,YAAY;AAAA,IAClB,GANU;AAAA,IAOX,gBAAgB,gCAASsO,gBAAe,OAAO;AAC7C,sBAAgB,KAAK,iBAAiB;AAAA,QACpC,eAAe;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALe;AAAA,EAMjB;AAAA,EACD,YAAY;AAAA,IACV,QAAQvM;AAAAA,EACT;AACH;AAEA,IAAIhJ,eAAa,CAAC,MAAM,YAAY,UAAU;AAC9C,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,EACxB,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,UAAU,UAAW,GAAE,mBAAmB,SAAS,WAAW;AAAA,IAC1F,KAAK;AAAA,IACL,KAAK;AAAA,IACL,IAAI,KAAK;AAAA,IACT,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,SAAS;AAAA,IAC1B,UAAU;AAAA,IACV,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,gBAAgB,SAAS,aAAa,MAAM,UAAU,SAAS;AAAA,IACrF;AAAA,IACI,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,aAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,IACzF;AAAA,EACG,GAAE,KAAK,IAAI,SAAS,CAAC,GAAG,MAAM,IAAIsY,YAAU,KAAK,mBAAmB,IAAI,IAAI,GAAG,YAAY,mBAAmB;AAAA,IAC7G,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,EACnB,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,YAAY,WAAW;AAAA,QACzC,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,MACxB,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,iBAAO,EAAE,KAAK,SAAS,OAAO,MAAM,mBAAmB,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YACvG,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,SAAS,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,UAAU;AAAA,YAC3C,SAAS,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AAC/C,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,UACA,GAAa,KAAK,IAAI,OAAO,CAAC,GAAG,CAACC,gBAAmB,OAAO,WAAW;AAAA,YAC3D,SAAS,KAAK,GAAG,SAAS;AAAA,UACtC,GAAa,KAAK,IAAI,SAAS,CAAC,GAAG,CAACA,gBAAmB,OAAO,WAAW;AAAA,YAC7D,KAAK,SAAS;AAAA,YACd,SAAS,KAAK,GAAG,eAAe;AAAA,YAChC,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,qBAAO,SAAS,iBAAiB,MAAM;AAAA,YACrD;AAAA,YACY,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,qBAAO,SAAS,iBAAiB,MAAM;AAAA,YACrD;AAAA,YACY,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,qBAAO,SAAS,OAAO,MAAM;AAAA,YAC3C;AAAA,YACY,YAAY,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACtD,qBAAO,SAAS;YAC9B;AAAA,UACA,GAAa,KAAK,IAAI,eAAe,CAAC,GAAG,CAACA,gBAAmB,OAAO,WAAW;AAAA,YACnE,SAAS,KAAK,GAAG,iBAAiB;AAAA,UAC9C,GAAa,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAACA,gBAAmB,OAAO,WAAW;AAAA,YACrE,KAAK,SAAS;AAAA,YACd,SAAS,KAAK,GAAG,aAAa;AAAA,UAC/B,GAAE,KAAK,IAAI,aAAa,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAGA,gBAAmB,OAAO,WAAW;AAAA,YACvF,KAAK,SAAS;AAAA,YACd,SAAS,KAAK,GAAG,KAAK;AAAA,YACtB,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,qBAAO,SAAS,eAAe,MAAM;AAAA,YACnD;AAAA,YACY,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,qBAAO,SAAS,eAAe,MAAM;AAAA,YACnD;AAAA,YACY,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,qBAAO,SAAS,OAAO,MAAM;AAAA,YAC3C;AAAA,YACY,YAAY,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACtD,qBAAO,SAAS;YAC9B;AAAA,UACA,GAAa,KAAK,IAAI,KAAK,CAAC,GAAG,CAACA,gBAAmB,OAAO,WAAW;AAAA,YACzD,KAAK,SAAS;AAAA,YACd,SAAS,KAAK,GAAG,WAAW;AAAA,UACxC,GAAa,KAAK,IAAI,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,QAChG,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,WAAW,cAAc,CAAC,CAAC;AAAA,IACpD,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,GAAG,CAAC,YAAY,UAAU,CAAC,CAAC,GAAG,EAAE;AACtC;AAtFSvY;AAwFT6X,SAAO,SAAS7X;;;;;;;;;;;;;;;;;;;;;;ACxjBV,YAAE,GAAAiC,OAAM;AAEd,UAAM,QAAQ;AAMd,UAAMlC,QAAO;AAKb,UAAM,UAAU,SAAS;AAAA,MACvB,KAAK,6BAAM,MAAM,YAAZ;AAAA,MACL,KAAK,wBAAC1D,WAAU0D,MAAK,qBAAqB1D,MAAK,GAA1C;AAAA,IAA0C,CAChD;AAED,UAAM,oBAAoB;AAE1B,UAAM,cAAc;AAAA,MAClB,EAAE,MAAM4F,GAAE,eAAe,GAAG,OAAO,kBAAkB,oBAAoB;AAAA,MACzE,EAAE,MAAMA,GAAE,aAAa,GAAG,OAAO,YAAY;AAAA,MAC7C,EAAE,MAAMA,GAAE,WAAW,GAAG,OAAO,UAAU;AAAA,MACzC,EAAE,MAAMA,GAAE,YAAY,GAAG,OAAO,WAAW;AAAA,MAC3C,EAAE,MAAMA,GAAE,WAAW,GAAG,OAAO,UAAU;AAAA,MACzC,EAAE,MAAMA,GAAE,YAAY,GAAG,OAAO,WAAW;AAAA,MAC3C,EAAE,MAAMA,GAAE,UAAU,GAAG,OAAO,SAAS;AAAA,MACvC,EAAE,MAAMA,GAAE,gBAAgB,GAAG,OAAO,eAAe;AAAA;AAGrD,UAAM,eAAe;AAAA,MACnB,EAAE,MAAMA,GAAE,eAAe,GAAG,OAAO,kBAAkB,qBAAqB;AAAA,MAC1E,EAAE,MAAMA,GAAE,YAAY,GAAG,OAAO,UAAU;AAAA,MAC1C,EAAE,MAAMA,GAAE,aAAa,GAAG,OAAO,UAAU;AAAA,MAC3C,EAAE,MAAMA,GAAE,WAAW,GAAG,OAAO,UAAU;AAAA,MACzC,EAAE,MAAMA,GAAE,YAAY,GAAG,OAAO,UAAU;AAAA,MAC1C,EAAE,MAAMA,GAAE,cAAc,GAAG,OAAO,UAAU;AAAA,MAC5C,EAAE,MAAMA,GAAE,cAAc,GAAG,OAAO,SAAS;AAAA;AAG7C,UAAM,cAAc,YAAY;AAAA,MAC9B,CAAC0C,YAAWA,QAAO,UAAU,kBAAkB;AAAA;AAEjD,UAAM,eAAe,aAAa;AAAA,MAChC,CAACA,YAAWA,QAAO,UAAU,kBAAkB;AAAA;AAG3C,yBAAe,IAAqC,WAAW;AAC/D,0BAAgB,IAAqC,YAAY;AACvE,UAAM,aAAa;AAAA,MAAS,MAC1B,cAAc,MAAM,UAAU,WAC1B,IAAI,YAAY,KAAK,KACrB,cAAc,MAAM;AAAA;AAGpB,wBAAc,IAAI,QAAQ;AAEhC,UAAM,cAAc,6BAAM;AACxB,cAAQ,QAAQ;AAAA,OADE;AAIpB,UAAM,uBAAuB,6BAAM;AACjC,MAAA5E,MAAK,WAAW,aAAa,MAAM,OAAO,WAAW,KAAK;AAC9C;IAAA,GAFe;AAK7B,UAAM,qBAAqB,6BAAM;AAClB,2BACX,YAAY,KAAK,CAAC4E,YAAWA,QAAO,UAAU,MAAM,WAAW,KAC/D;AACF,YAAM,cAAc,aAAa;AAAA,QAC/B,CAACA,YAAWA,QAAO,UAAU,MAAM;AAAA;AAEjC,WAAC,MAAM,cAAc;AACvB,sBAAc,QAAQ;AAAA,iBACb,CAAC,aAAa;AACvB,oBAAY,QAAQ,MAAM,aAAa,QAAQ,KAAK,EAAE;AACtD,sBAAc,QAAQ,EAAE,MAAM1C,GAAE,cAAc,GAAG,OAAO;MAAS,OAC5D;AACL,sBAAc,QAAQ;AAAA,MACxB;AAAA,OAdyB;AAiB3B;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,CAAClE,cAAsB;AACrB,YAAIA,WAAU;AACO;QACrB;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAK;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClIpB,UAAM,QAAQ;AAIR,UAAAyvB,gBAAe,IAA6B,EAAE;AACpD,UAAM,EAAE,YAAY,kBAAkB,IAAI,iBAAiBA,aAAY;AAEvE,UAAM,oBAAoB;AACpB,2BAAiB,SAAmB,MAAM;AACxC,yBAAa,wBAAC9sB,UAAoC;AACtD,YAAIA,MAAK,MAAM;AAEN,uBAAM,iBAAiB,KAAK,CAACyD,SAAQA,KAAI,SAASzD,MAAK,KAAK,IAAI,IACnEA,QACA;AAAA,QACN;AAEM,iCAAmBA,MAAK,UAC1B,IAAI,UAAU,EACf,OAAO,CAAC,UAA6B,UAAU,IAAI;AAElD,gCAAoB,iBAAiB,SAAS,GAAG;AAC5C;AAAA,YACL,GAAGA;AAAA,YACH,UAAU;AAAA;AAAA,QAEd;AAEO;AAAA,SAnBU;AAsBnB,aAAO,MAAM,iBAAiB,SAC1B,WAAW,kBAAkB,cAAc,KAAK;AAAA,QAC9C,KAAK;AAAA,QACL,OAAO;AAAA,QACP,UAAU,CAAC;AAAA,UAEb,kBAAkB;AAAA,KACvB;AACD;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,CAAC3C,cAAa;AACZ,YAAIA,UAAS,QAAQ;AACnB,mBAAS,MAAM,WAAW,eAAe,KAAK,CAAC;AAAA,QACjD;AAAA,MACF;AAAA;AAGI,YAAE,GAAAkE,OAAM;AACR,2BAAiB,wBACrB,mBACG;AAAA,MACH;AAAA,QACE,OAAOA,GAAE,aAAa;AAAA,QACtB,MAAM;AAAA,QACN,SAAS,6BAAM;AACb,+BAAqB,cAAc;AAAA,QACrC,GAFS;AAAA,QAGT,SAAS,CAAC,gBAAgB;AAAA,MAC5B;AAAA,MACA;AAAA,QACE,OAAOA,GAAE,aAAa;AAAA,QACtB,MAAM;AAAA,QACN,SAAS,6BAAM;AACb,gBAAM,gBACJ,kBAAkB,uBAAuB,eAAe,KAAK,QAAQ;AAC3D,8BACV,eAAe,QAAQ,kBAAkB;AAC9B,+BACX,eAAe,SAAS,kBAAkB;AAE5C,kCAAwB,QAAQ;AACJ,8CAAQ,eAAe,KAAK;AAAA,QAC1D,GAVS;AAAA,QAWT,SAAS,CAAC,gBAAgB;AAAA,MAC5B;AAAA,OA1BqB;AA6BvB,UAAM,yBAAyB;AAAA,MAC7B,MAAM;AACE,6BAAe,wBACnBvB,UACuC;AACvC,gBAAM,WAAWA,MAAK,UAAU,IAAI,YAAY;AAGhD,gBAAM,iBAAiB,UAAU,KAAK,CAAC,GAAG,MAAM;AAC1C,kBAAE,SAAS,EAAE,MAAM;AACrB,qBAAO,EAAE,MAAM,cAAc,EAAE,KAAK;AAAA,YACtC;AACO,qBAAE,OAAO,IAAI;AAAA,WACrB;AAEM;AAAA,YACL,KAAKA,MAAK;AAAA,YACV,OAAOA,MAAK,OAAOA,MAAK,KAAK,eAAeA,MAAK;AAAA,YACjD,MAAMA,MAAK;AAAA,YACX,MAAMA,MAAK;AAAA,YACX,SAAS,wBAACA,WAA6C;AACrD,kBAAIA,OAAK,MAAM;AACN;AAAA,cACT;AACA,oBAAM,gBACJ,kBAAkB,uBAAuBA,OAAK,MAAM,QAAQ;AAC9D,qBAAO,eAAe,OAClB,QAAQ,cAAc,OACtB;AAAA,YACN,GATS;AAAA,YAUT,UAAU;AAAA,YACV,WAAWA,MAAK;AAAA,YAChB,WAAW,CAACA,MAAK;AAAA,YACjB,YAAY,wBACVA,QACAT,WACG;AACG,mCAAeA,OAAK,KAAK;AAE3B,oCAAkB,aAAa,YAAY,GAAG;AAChD,kCAAkB,eAAe,YAAY;AAAA,cAC/C;AACA,oBAAM,gBAAgBS,OAAK;AAC3B,oBAAM,WAAW,cAAc,WAAW,MAAM,aAAa;AAC7D,gCAAkB,YAAY,QAAQ;AAAA,YACxC,GAZY;AAAA,YAaZ,aAAa,wBACXA,QACAxB,OACG;AACH,kBAAIwB,OAAK,MAAM;AACTvB,sBAAA,eAAeuB,OAAK,MAAM,EAAE,KAAKvB,MAAI,mBAAmB;AAAA,qBACvD;AACL,kCAAkBD,IAAGwB,MAAI;AAAA,cAC3B;AAAA,YACF,GATa;AAAA,YAUb,kBAAkB;AAAA,YAClB,GAAIA,MAAK,OACL,KACA;AAAA,cACE;AAAA,cACA,cAAc,wBAACA,WAA6C;AACxC,uDAAqBA,OAAK,IAAI;AAAA,cAClD,GAFc;AAAA,YAGhB;AAAA;AAAA,QACN,GA/DmB;AAiEd,4BAAa,eAAe,KAAK;AAAA,MAC1C;AAAA;AAGI,4BAAkB,IAA8C,IAAI;AACpE,iCAAuB,wBAC3B,WACG;AACG,2BACJ,UAAU,kBAAkB,qBAAqB,QAAQ,IAAI,EAAE,MAAM,GAAG,EAAE;AAC5E,eAAS,MAAM;AACb,wBAAgB,OAAO;AAAA,UACrB;AAAA,YACE,uBAAuB;AAAA,YACvB;AAAA,UACF;AAAA;AAEF,YAAI,QAAQ;AACG,UAAA8sB,cAAA,MAAM,OAAO,GAAG,IAAI;AAAA,QACnC;AAAA,OACD;AAAA,OAf0B;AAiBhB;AAAA,MACX;AAAA,KACD;AAEK,yBAAe,wBAAC9sB,OAAgB,YAAoB;AACxD,UAAIA,MAAK,QAAQA,MAAK,KAAK,eAAe;AACtB,+CAAqBA,MAAK,MAAM,OAAO;AAAA,MAC3D;AAAA,OAHmB;AAMf,oCAA0B,IAAI,KAAK;AACnC,wBAAc,IAAI,kBAAkB,mBAAmB;AACvD,yBAAe,IAAI,kBAAkB,oBAAoB;AACzD,wCAA8B,IAAI,EAAE;AACpC,gCAAsB,wBAACsb,OAActJ,WAAkB;AAC3D,UAAI,4BAA4B,OAAO;AACnB;AAAA,UAChB,4BAA4B;AAAA,UAC5B,EAAE,MAAAsJ,OAAM,OAAAtJ,OAAM;AAAA;AAAA,MAElB;AAAA,OAN0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjM5B,UAAM,UAAU,SAAS,MAAM,aAAa,kBAAkB,WAAW;AACzE,UAAM,iBAAiB;AACjB,yBAAe,SAAS,MAAM,eAAe,OAAO,WAAW,QAAQ,EAAE;AACzE,gCAAsB,IAAY,EAAE;AAE1C,UAAM,eAAe;AAErB,cAAU,MAAM;AACd,qBAAe,QAAQ,aAAa,kBAAkB,YAAY,CAAC;AACzC;IAAA,CAC3B;AAED,UAAM3S,QAAO;AAIb,UAAM,4BAA4B,6BAAM;AACtC,UAAI,aAAa,MAAM,SAAS,oBAAoB,KAAK,GAAG;AAC1D;AAAA,MACF;AACoB,kCAAQ,aAAa,MAAM,CAAC;AAAA,OAJhB;AAOlC,UAAM,SAAS,6BAAM;AACnB,MAAAA,MAAK,aAAa;AAAA,QAChB,eAAe;AAAA,QACf,oBAAoB;AAAA,OACH;AAAA,OAJN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsCf,UAAM,eAAe;AACrB,UAAM,oBAAoB;AACpB,UAAAytB,gBAAe,IAA6B,EAAE;AACpD,UAAM,EAAE,YAAY,kBAAkB,IAAI,iBAAiBA,aAAY;AAEjE,wCAA8B,IAE1B,IAAI;AACR,yBAAe,IAAI,IAAI;AACvB,6BAAmB,IAAI,KAAK;AAE5B,wBAAc,IAAY,EAAE;AAE5B,UAAArtB,SAAO,SAAS,MAAM;AACpBA,qBAAO,aAAa,SAAS,aAAa;AACzC,8BAAiB,QAAQ,WAAWA,QAAM,EAAE,WAAW,MAAM,IAAIA;AAAAA,IAAA,CACzE;AAEK,yBAAe,SAA6C,MAAM;AAChE,2BAAe,wBAACO,UAAuD;AAC3E,cAAM,WAAWA,MAAK,UAAU,IAAI,YAAY;AAEzC;AAAA,UACL,KAAKA,MAAK;AAAA,UACV,OAAOA,MAAK,OAAOA,MAAK,KAAK,eAAeA,MAAK;AAAA,UACjD,MAAMA,MAAK;AAAA,UACX,MAAMA,MAAK;AAAA,UACX,SAAS,wBAACA,WAA6C;AACrD,gBAAIA,OAAK,MAAM;AACN;AAAA,YACT;AAAA,UACF,GAJS;AAAA,UAKT;AAAA,UACA,WAAWA,MAAK;AAAA,UAChB,aAAa,wBACXA,QACAxB,OACG;AACH,gBAAIwB,OAAK,MAAM;AACTvB,oBAAA,eAAeuB,OAAK,MAAM,EAAE,KAAKvB,MAAI,mBAAmB;AAAA,mBACvD;AACL,gCAAkBD,IAAGwB,MAAI;AAAA,YAC3B;AAAA,UACF,GATa;AAAA,QASb;AAAA,MACF,GAzBmB;AA2Bd,0BAAaP,OAAK,KAAK;AAAA,KAC/B;AAEK,6BAAmB,IAAwB,EAAE;AAC7C,yBAAe,SAA0B,MAAM;AAC/C,WAAC,iBAAiB,MAAM,QAAQ;AAC3B;AAAA,MACT;AACO,8BAAiB,iBAAiB,KAAK;AAAA,KAC/C;AACK,oBACJ,IAAI,EAAE;AACF,yBAAe,wBAAC,UAAkB;AAGtC,UAAI,MAAM,WAAW,KAAK,CAAC,QAAQ,MAAM,QAAQ;AAC/C,yBAAiB,QAAQ;AACzB,QAAAqtB,cAAa,QAAQ;AACrB;AAAA,MACF;AAEA,YAAM,IAAI,QAAQ,MAAM,IAAI,CAACvI,OAAMA,GAAE,MAAgC;AACpD,+BAAQ,aAAa,kBAAkB;AAAA,QACtD;AAAA,QACA;AAAA,QACA;AAAA,UACE,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,gBAAgB;AAAA,QAClB;AAAA;AAGF,eAAS,MAAM;AACb,mBAAW,aAAa,KAAK;AAAA,OAC9B;AAAA,OAvBkB;AA0Bf,wBAAc,wBAAC,mBAAmC;AACtD,cAAQ,MAAM,KAAK;AAAA,QACjB,QAAQ;AAAA,QACR,OAAO,eAAe,CAAC,EAAE,eAAe,YAAY;AAAA,QACpD,YAAY,eAAe,CAAC,EAAE,iBAAiB;AAAA,QAC/C,MAAM,eAAe,CAAC;AAAA,QACtB,IAAI,CAAC,oBAAI,KAAK;AAAA,OACf;AAED,mBAAa,YAAY,KAAK;AAAA,OATZ;AAYd,2BAAiB,wBAAC,mBAAmB;AACzC,YAAM3nB,SAAQ,QAAQ,MAAM,UAAU,CAAC,MAAM,MAAM,cAAc;AACjE,UAAIA,WAAU,IAAI;AACR,sBAAM,OAAOA,QAAO,CAAC;AAAA,MAC/B;AACA,mBAAa,YAAY,KAAK;AAAA,OALT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtLhB,MAAM,2BAA2B,6BAA2B;AAC3D,UAAE,GAAA2E,OAAM;AACP;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,OAAOA,GAAE,yBAAyB;AAAA,IAClC,SAASA,GAAE,yBAAyB;AAAA,IACpC,WAAW,QAAQktB,WAAqB;AAAA,IACxC,MAAM;AAAA;AAEV,GAVwC;ACHxC,IAAI,wBAAwB,OAAM;AAClC,SAAS,aAAa;AACpB,MAAI,kBAAkB,OAAO,qBAAqB;AAClD,MAAI,CAAC,iBAAiB;AACpB,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACrD;AACD,SAAO;AACT;AANS;ACDT,IAAI,uBAAuB,SAAU;ACArC,IAAInZ,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,iEAAiE,OAAOA,IAAG,qBAAqB,GAAG,gDAAgD,EAAE,OAAOA,IAAG,yBAAyB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,oBAAoB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,2BAA2B,GAAG,wBAAwB,EAAE,OAAOA,IAAG,4BAA4B,GAAG,qBAAqB,EAAE,OAAOA,IAAG,qBAAqB,GAAG,gGAAgG,EAAE,OAAOA,IAAG,8BAA8B,GAAG,cAAc,EAAE,OAAOA,IAAG,0BAA0B,GAAG,iDAAiD,EAAE,OAAOA,IAAG,wBAAwB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,iBAAiB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,yBAAyB,GAAG,iGAAiG,EAAE,OAAOA,IAAG,yBAAyB,GAAG,kBAAkB,EAAE,OAAOA,IAAG,6BAA6B,GAAG,mLAAmL,EAAE,OAAOA,IAAG,qBAAqB,GAAG,8BAA8B,EAAE,OAAOA,IAAG,qBAAqB,GAAG,wbAAwb,EAAE,OAAOA,IAAG,2BAA2B,GAAG,KAAK,EAAE,OAAOA,IAAG,yBAAyB,GAAG,iKAAmK,EAAE,OAAOA,IAAG,qBAAqB,GAAG,wCAAwC,EAAE,OAAOA,IAAG,qBAAqB,GAAG,gGAAgG,EAAE,OAAOA,IAAG,yBAAyB,GAAG,sDAAsD,EAAE,OAAOA,IAAG,qBAAqB,GAAG,gCAAgC,EAAE,OAAOA,IAAG,qBAAqB,GAAG,yFAAyF,EAAE,OAAOA,IAAG,2BAA2B,GAAG,kNAAkN,EAAE,OAAOA,IAAG,yBAAyB,GAAG,yGAAyG,EAAE,OAAOA,IAAG,2BAA2B,GAAG,QAAQ;AAC37F,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,gBAAgB;AAClB;AACA,IAAI,oBAAoB,UAAU,OAAO;AAAA,EACvC,MAAM;AAAA,EACN,OAAO8C;AAAAA,EACP,SAAS9C;AACX,CAAC;ACND,IAAIuF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWN;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,EACR;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIP,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWY;AAAAA,EACX,cAAc;AAAA,EACd,MAAM,gCAASxY,SAAO;AACpB,WAAO;AAAA,MACL,SAAS;AAAA,MACT,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,QAAQ;AAAA,IACd;AAAA,EACG,GARK;AAAA,EASN,QAAQ;AAAA,EACR,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,SAAS,gCAASoB,YAAU;AAC1B,QAAI,QAAQ;AACZ,SAAK,kBAAkB,SAAUvD,UAAS;AACxC,UAAI,CAACA,UAAS;AACZ;AAAA,MACD;AACD,UAAIA,SAAQ,UAAU,MAAM,OAAO;AACjC,cAAM,eAAeA;AACrB,cAAM,SAASA,SAAQ;AACvB,YAAI,MAAM,aAAa,QAAQ;AAC7B,gBAAM,aAAa;QACpB;AACD,cAAM,UAAU;AAAA,MACjB;AAAA,IACP;AACI,SAAK,gBAAgB,WAAY;AAC/B,YAAM,UAAU;AAChB,YAAM,eAAe;AAAA,IAC3B;AACI,yBAAqB,GAAG,WAAW,KAAK,eAAe;AACvD,yBAAqB,GAAG,SAAS,KAAK,aAAa;AAAA,EACpD,GArBQ;AAAA,EAsBT,eAAe,gCAAS0D,iBAAgB;AACtC,yBAAqB,IAAI,WAAW,KAAK,eAAe;AACxD,yBAAqB,IAAI,SAAS,KAAK,aAAa;AACpD,SAAK,2BAA0B;AAC/B,QAAI,KAAK,eAAe;AACtB,WAAK,cAAc;AACnB,WAAK,gBAAgB;AAAA,IACtB;AACD,SAAK,qBAAoB;AACzB,QAAI,KAAK,WAAW;AAClB,aAAO,MAAM,KAAK,SAAS;AAC3B,WAAK,YAAY;AAAA,IAClB;AACD,SAAK,SAAS;AACd,SAAK,eAAe;AAAA,EACrB,GAfc;AAAA,EAgBf,SAAS;AAAA,IACP,QAAQ,gCAAS,SAAS;AACxB,UAAI,KAAK,aAAa,QAAQ;AAC5B,aAAK,aAAa;MACnB;AACD,WAAK,UAAU;AAAA,IAChB,GALO;AAAA,IAMR,QAAQ,gCAAS,SAAS;AACxB,UAAI,KAAK,aAAa,QAAQ;AAC5B,aAAK,aAAa;MACnB;AACD,WAAK,UAAU;AAAA,IAChB,GALO;AAAA,IAMR,QAAQ,gCAAS,SAAS;AACxB,UAAI,KAAK,aAAa,QAAQ;AAC5B,aAAK,aAAa;MACnB;AACD,WAAK,UAAU;AAAA,IAChB,GALO;AAAA,IAMR,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,UAAI,MAAM,SAAS,WAAW,MAAM,SAAS,WAAW,MAAM,SAAS,eAAe;AACpF,aAAK,OAAM;AACX,cAAM,KAAK,MAAM;AACjB,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GANgB;AAAA,IAOjB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,UAAI,MAAM,SAAS,WAAW,MAAM,SAAS,WAAW,MAAM,SAAS,eAAe;AACpF,aAAK,OAAM;AACX,cAAM,KAAK,MAAM;AACjB,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GANgB;AAAA,IAOjB,SAAS,gCAAS6B,SAAQ,IAAI;AAC5B,WAAK,kBAAkB,KAAK,aAAa,iBAAiB,UAAa,KAAK,aAAa,iBAAiB,WAAW,OAAO;AAC5H,WAAK,kBAAkB,KAAK,aAAa,iBAAiB,WAAW,OAAO;AAC5E,WAAK,SAAS,SAAS;AACvB,WAAK,yBAAwB;AAC7B,WAAK,mBAAkB;AACvB,WAAK,mBAAkB;AACvB,aAAO,IAAI,WAAW,IAAI,KAAK,UAAU,OAAO,OAAO,OAAO;AAAA,IAC/D,GARQ;AAAA,IAST,cAAc,gCAASC,gBAAe;AACpC,WAAK,MAAK;AAAA,IACX,GAFa;AAAA,IAGd,SAAS,gCAASE,WAAU;AAC1B,WAAK,kBAAkB;AACvB,WAAK,kBAAkB;AACvB,YAAM,KAAK,MAAM;AACjB,WAAK,SAAS;AACd,WAAK,2BAA0B;AAC/B,WAAK,qBAAoB;AACzB,WAAK,qBAAoB;AAAA,IAC1B,GARQ;AAAA,IAST,cAAc,gCAASC,cAAa,IAAI;AACtC,aAAO,MAAM,EAAE;AAAA,IAChB,GAFa;AAAA,IAGd,cAAc,gCAAS4b,gBAAe;AACpC,uBAAiB,KAAK,WAAW,KAAK,QAAQ,KAAK;AACnD,UAAI,kBAAkB,UAAU,KAAK,SAAS;AAC9C,UAAI,eAAe,UAAU,KAAK,MAAM;AACxC,UAAI,YAAY;AAChB,UAAI,gBAAgB,OAAO,aAAa,MAAM;AAC5C,oBAAY,aAAa,OAAO,gBAAgB;AAAA,MACjD;AACD,WAAK,UAAU,MAAM,YAAY,IAAI,yBAAyB,EAAE,MAAM,GAAG,OAAO,WAAW,IAAI,CAAC;AAChG,UAAI,gBAAgB,MAAM,aAAa,KAAK;AAC1C,aAAK,UAAU,aAAa,+BAA+B,MAAM;AACjE,SAAC,KAAK,cAAc,SAAS,KAAK,WAAW,wBAAwB;AAAA,MACtE;AAAA,IACF,GAba;AAAA,IAcd,0BAA0B,gCAASsM,4BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,OAAO,WAAW,OAAO,aAAa,CAAC,OAAO,UAAU,SAAS,MAAM,MAAM,KAAK,CAAC,OAAO,gBAAgB,KAAK,GAAG;AACpH,gBAAI,OAAO,aAAa,QAAQ;AAC9B,qBAAO,aAAa;YACrB;AACD,mBAAO,UAAU;AAAA,UAC7B,OAAiB;AACL,mBAAO,aAAY;AAAA,UACpB;AAAA,QACX;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAfyB;AAAA,IAgB1B,4BAA4B,gCAASC,8BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,oBAAoB,gCAASzW,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,eAAe;AACvB,aAAK,gBAAgB,IAAI,8BAA8B,KAAK,QAAQ,WAAY;AAC9E,cAAI,OAAO,SAAS;AAClB,mBAAO,UAAU;AAAA,UAClB;AAAA,QACX,CAAS;AAAA,MACF;AACD,WAAK,cAAc;IACpB,GAVmB;AAAA,IAWpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;MACpB;AAAA,IACF,GAJqB;AAAA,IAKtB,oBAAoB,gCAASkK,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,WAAY;AAChC,cAAI,OAAO,WAAW,CAAC,iBAAiB;AACtC,mBAAO,UAAU;AAAA,UAClB;AAAA,QACX;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAVmB;AAAA,IAWpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,OAAO,gCAASqO,SAAQ;AACtB,UAAI,cAAc,KAAK,UAAU,cAAc,aAAa;AAC5D,UAAI,aAAa;AACf,oBAAY,MAAM;AAAA,UAChB,eAAe;AAAA,QACzB,CAAS;AAAA,MACF;AAAA,IACF,GAPM;AAAA,IAQP,iBAAiB,gCAASwB,iBAAgB,OAAO;AAC/C,aAAO,KAAK,WAAW,KAAK,WAAW,MAAM,UAAU,KAAK,OAAO,SAAS,MAAM,MAAM;AAAA,IACzF,GAFgB;AAAA,IAGjB,cAAc,gCAAS9K,cAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,gBAAgB,gCAASuJ,gBAAe,OAAO;AAC7C,sBAAgB,KAAK,iBAAiB;AAAA,QACpC,eAAe;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALe;AAAA,IAMhB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,UAAI,MAAM,SAAS,UAAU;AAC3B,6BAAqB,KAAK,SAAS,KAAK,aAAa;AACrD,cAAM,KAAK,MAAM;AAAA,MAClB;AAAA,IACF,GALiB;AAAA,EAMnB;AAAA,EACD,UAAU;AAAA,IACR,SAAS,gCAAS,UAAU;AAC1B,aAAO,KAAK,eAAe,KAAK,aAAa,UAAU;AAAA,IACxD,GAFQ;AAAA,IAGT,aAAa,gCAAS,cAAc;AAClC,UAAI,KAAK,cAAc;AACrB,YAAI;AACJ,YAAI,eAAe,KAAK;AACxB,eAAO,aAAa,iBAAiB,wBAAwB,aAAa,iBAAiB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,UAAU,KAAK,UAAU,OAAO,OAAO;AAAA,MAC7M;AACD,aAAO,KAAK,UAAU,OAAO,OAAO;AAAA,IACrC,GAPY;AAAA,IAQb,aAAa,gCAAS,cAAc;AAClC,UAAI,KAAK,cAAc;AACrB,YAAI;AACJ,YAAI,eAAe,KAAK;AACxB,eAAO,aAAa,iBAAiB,wBAAwB,aAAa,iBAAiB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,UAAU,KAAK,UAAU,OAAO,OAAO;AAAA,MAC7M;AACD,aAAO,KAAK,UAAU,OAAO,OAAO;AAAA,IACrC,GAPY;AAAA,IAQb,YAAY,gCAAS,aAAa;AAChC,UAAI;AACJ,aAAO,KAAK,eAAe,KAAK,aAAa,cAAc,qBAAqB,KAAK,kBAAkB,QAAQ,uBAAuB,UAAU,mBAAmB,cAAc,KAAK,aAAa,YAAY,OAAO;AAAA,IACvN,GAHW;AAAA,IAIZ,YAAY,gCAAS,aAAa;AAChC,UAAI;AACJ,aAAO,KAAK,eAAe,KAAK,aAAa,cAAc,sBAAsB,KAAK,kBAAkB,QAAQ,wBAAwB,UAAU,oBAAoB,cAAc,KAAK,aAAa,YAAY,OAAO;AAAA,IAC1N,GAHW;AAAA,EAIb;AAAA,EACD,YAAY;AAAA,IACV,QAAQU;AAAAA,IACR,QAAQjN;AAAAA,EACT;AAAA,EACD,YAAY;AAAA,IACV,WAAW;AAAA,EACZ;AACH;AAEA,IAAIhJ,eAAa,CAAC,YAAY;AAC9B,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,SAAO,UAAW,GAAE,YAAY,mBAAmB,MAAM;AAAA,IACvD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,YAAY,WAAW;AAAA,QACzC,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,QACvB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,MACxB,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,cAAI,uBAAuB,wBAAwB;AACnD,iBAAO,CAAC,MAAM,UAAU,gBAAgB,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,YACxF,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,MAAM;AAAA,YACN,SAAS,KAAK,GAAG,MAAM;AAAA,YACvB,cAAc,MAAM;AAAA,YACpB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,YACY,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,qBAAO,SAAS,oBAAoB,SAAS,iBAAiB,MAAM,UAAU,SAAS;AAAA,YACrG;AAAA,UACW,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,YAAY,WAAW,KAAK,QAAQ,aAAa;AAAA,YACnF,KAAK;AAAA,YACL,SAAS,MAAM;AAAA,YACf,gBAAgB,SAAS;AAAA,YACzB,gBAAgB,SAAS;AAAA,UAC1B,MAAK,UAAS,GAAI,mBAAmB,UAAU;AAAA,YAC9C,KAAK;AAAA,UACjB,GAAa,CAAC,CAAC,KAAK,OAAO,WAAW,aAAa,mBAAmB,OAAO,WAAW;AAAA,YAC5E,KAAK;AAAA,YACL,SAAS,KAAK,GAAG,SAAS;AAAA,UAC3B,GAAE,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,QAAQ,IAAI,WAAY;AACxE,mBAAO,CAAC,KAAK,OAAO,QAAQ,UAAS,GAAI,YAAY,wBAAwB,KAAK,OAAO,IAAI,GAAG;AAAA,cAC9F,KAAK;AAAA,cACL,SAAS,eAAe,KAAK,GAAG,MAAM,CAAC;AAAA,YACxC,GAAE,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,aAAa,QAAQ,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,cACtG,KAAK;AAAA,cACL,SAAS,CAAC,MAAM,aAAa,MAAM,KAAK,GAAG,MAAM,CAAC;AAAA,YACnD,GAAE,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,UAC3E,CAAW,GAAGuY,gBAAmB,QAAQ,WAAW;AAAA,YACxC,SAAS,KAAK,GAAG,SAAS;AAAA,UACtC,GAAa,KAAK,IAAI,SAAS,CAAC,GAAG/a,kBAAgB,MAAM,aAAa,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,aAAa,YAAY,wBAAwB,KAAK,OAAO,OAAO,GAAG;AAAA,YACzJ,KAAK;AAAA,YACL,SAAS,MAAM;AAAA,UAC3B,GAAa,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI+a,gBAAmB,OAAO,WAAW;AAAA,YAC9D,SAAS,KAAK,GAAG,QAAQ;AAAA,UACrC,GAAa,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,YAAY,mBAAmB,WAAW;AAAA,YACjE,SAAS,CAAC,KAAK,GAAG,gBAAgB,GAAG,MAAM,aAAa,WAAW;AAAA,YACnE,WAAW,MAAM;AAAA,YACjB,UAAU,KAAK;AAAA,YACf,QAAQ,wBAAwB,MAAM,aAAa,iBAAiB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,SAAS;AAAA,YACvJ,QAAQ,yBAAyB,MAAM,aAAa,iBAAiB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB,SAAS;AAAA,YAC1J,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,qBAAO,SAAS;YAC9B;AAAA,YACY,WAAW,SAAS;AAAA,UAChC,GAAa,MAAM,aAAa,aAAa;AAAA,YACjC,OAAO,SAAS;AAAA,YAChB,IAAI,KAAK,IAAI,gBAAgB;AAAA,UAC9B,IAAG,YAAY;AAAA,YACd,GAAG;AAAA,UACJ,GAAE,CAAC,SAAS,cAAc,KAAK,OAAO,aAAa;AAAA,YAClD,MAAM;AAAA,YACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,qBAAO,CAAC,WAAW,KAAK,QAAQ,cAAc,CAAE,GAAE,WAAY;AAC5D,uBAAO,CAACA,gBAAmB,QAAQ,WAAW;AAAA,kBAC5C,SAAS,CAAC,SAAS,YAAY,UAAU,OAAO,CAAC;AAAA,gBAClD,GAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,GAAG;AAAA,kBACrC,mBAAmB;AAAA,gBACrC,CAAiB,GAAG,MAAM,EAAE,CAAC;AAAA,cACd,EAAC;AAAA,YAChB,CAAa;AAAA,YACD,KAAK;AAAA,UACjB,IAAc,MAAS,CAAC,GAAG,MAAM,CAAC,SAAS,aAAa,YAAY,QAAQ,QAAQ,aAAa,SAAS,IAAI,CAAC,GAAG,YAAY,mBAAmB,WAAW;AAAA,YAChJ,SAAS,CAAC,KAAK,GAAG,gBAAgB,GAAG,MAAM,aAAa,WAAW;AAAA,YACnE,WAAW,MAAM;AAAA,YACjB,UAAU,KAAK;AAAA,YACf,QAAQ,wBAAwB,MAAM,aAAa,iBAAiB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,SAAS;AAAA,YACvJ,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,qBAAO,SAAS;YAC9B;AAAA,YACY,WAAW,SAAS;AAAA,UAChC,GAAa,MAAM,aAAa,aAAa;AAAA,YACjC,OAAO,SAAS;AAAA,YAChB,IAAI,KAAK,IAAI,gBAAgB;AAAA,UAC9B,IAAG,YAAY;AAAA,YACd,GAAG;AAAA,UACJ,GAAE,CAAC,SAAS,cAAc,KAAK,OAAO,aAAa;AAAA,YAClD,MAAM;AAAA,YACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,qBAAO,CAAC,WAAW,KAAK,QAAQ,cAAc,CAAE,GAAE,WAAY;AAC5D,uBAAO,CAACA,gBAAmB,QAAQ,WAAW;AAAA,kBAC5C,SAAS,CAAC,SAAS,YAAY,UAAU,OAAO,CAAC;AAAA,gBAClD,GAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,GAAG;AAAA,kBACrC,mBAAmB;AAAA,gBACrC,CAAiB,GAAG,MAAM,EAAE,CAAC;AAAA,cACd,EAAC;AAAA,YAChB,CAAa;AAAA,YACD,KAAK;AAAA,UACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,SAAS,aAAa,YAAY,QAAQ,aAAa,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,IAAID,YAAU,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC;AAAA,QAClM,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,gBAAgB,WAAW,cAAc,CAAC,CAAC;AAAA,IACpE,CAAK;AAAA,IACD,GAAG;AAAA,EACP,CAAG;AACH;AAhHStY;AAkHT6X,SAAO,SAAS7X;;;;;;;;;;;;;;;;;ACzWhB,UAAM,QAAQ;AAWR,wBAAc,IAAI,KAAK;AACvB,6BAAmB,wBAACd,OAAa;AACrC,kBAAY,QAAQ;AAAA,OADG;AAInB,uBAAa,SAAS,MAAM;AAChC,UAAI,MAAM,QAAQ,MAAM,KAAK,GAAG;AAC9B,eAAO,MAAM;AAAA,MACJ,kBAAO,MAAM,UAAU,UAAU;AACnC,qBAAM,MAAM,MAAM,GAAG;AAAA,MACnB,kBAAO,MAAM,UAAU,UAAU;AACnC,sBAAO,KAAK,MAAM,KAAK,EAAE,OAAO,CAAC,QAAQ,MAAM,MAAM,GAAG,CAAC;AAAA,MAClE;AACA,aAAO;IAAC,CACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CD,UAAM,QAAQ;AAId,UAAM,eAAe;AACrB,UAAM,sBAAsB;AAAA,MAAS,MACnC,aAAa,IAAI,sBAAsB;AAAA;AAGzC,UAAM,MAAM;AAAA,MAAS,MACnB,oBAAoB,QAChB,MAAM,OAAO,wBACb,MAAM,OAAO;AAAA;AAEnB,UAAM,gBAAgB;AAAA,MAAS,MAC7B,oBAAoB,QAAQ,eAAe,MAAM,OAAO;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACM1D,UAAM,QAAQ;AAId,UAAMa,QAAO;AAIP,4BAAkB,IAAwB,IAAI;AACpD,UAAM,eAAe;AACrB,UAAM,WAAW;AAAA,MAAiB,MAChC,aAAa,IAAI,sBAAsB;AAAA;AAGzC,cAAU,MAAM;AACV,gBAAM,OAAO,cAAc,UAAU;AACvC,wBAAgB,OAAO,iBAAiB,KAAK,EAAE,QAAQ,CAAC,QAAQ;AAC9D,cAAI,YAAY;AAAA,SACjB;AAAA,MACH;AAAA,KACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsBD,UAAM,QAAQ;AAKR,wBAAc,MAAM,KAAK;AACzB,wBAAc,YAAY,SAC5B,MAAM,KAAK,iBAAiB,YAAY,CAAC,IACzC;AAEE,UAAAW,QACJ,YAAY,UAAU,MAAM,KAAK,WAC7B,MAAM,KAAK,SAAS,MAAM;AAAA,MACxB,CAAC,MAAiB,EAAE,MAAM,YAAY;AAAA,SACnC,OACL;AACA,mCAAyB,IAAI,EAAE;AAErC,UAAMX,QAAO;AASb,cAAU,MAAM;AACV,2BAAiB,aAAa,yBAAyB;AAAA,KAC5D;AAED,gBAAY,MAAM;AACZ,8BAAoB,aAAa,yBAAyB;AAAA,KAC/D;AAEK,8BAAoB,wBAACb,OAAkB;AACtC,MAAAa,MAAA,eAAe,EAAE,MAAM,MAAM,MAAM,OAAOb,IAAG,MAAAwB,OAAM;AAAA,OADhC;AAI1B,UAAM,gBAAgB,6BAAM;AACrB,MAAAX,MAAA,WAAW,MAAM,IAAI;AAAA,OADN;AAItB,UAAM,0BAA0B,6BAAM;AAC/B,MAAAA,MAAA,8BAA8B,MAAM,IAAI;AAAA,OADf;AAI1B,4BAAkB,wBAAC,WAAkC;AACzD,cAAQ,QAAQ;AAAA,QACd,KAAK,sBAAsB;AAClB;AAAA,QACT,KAAK,sBAAsB;AAClB;AAAA,QACT,KAAK,sBAAsB;AAClB;AAAA,QACT,KAAK,sBAAsB;AAClB;AAAA,QACT,KAAK,sBAAsB;AAClB;AAAA,MACX;AAAA,OAZsB;AAelB,2BAAiB,wBAAC,WAAkC;AACxD,cAAQ,QAAQ;AAAA,QACd,KAAK,sBAAsB;AAClB;AAAA,QACT,KAAK,sBAAsB;AAClB;AAAA,QACT,KAAK,sBAAsB;AAClB;AAAA,QACT,KAAK,sBAAsB;AAClB;AAAA,QACT,KAAK,sBAAsB;AAClB;AAAA,MACX;AAAA,OAZqB;AAejB,uBAAa,wBAAC,SAAkB;AACpC,UAAI,SAAS,QAAW;AACf;AAAA,MACT;AACA,aAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;AAAA,OAJR;AAOnB,UAAM,4BAA4B,8BAAO,EAAE,aAA0B;AACnE,UAAI,MAAM,KAAK,kBAAkB,sBAAsB,SAAS;AACvC,uCAAQ,IAAI,gBAAgB,MAAM;AAAA,MAC3D;AAAA,OAHgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7JlC,IAAIiW,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,uFAAuF,OAAOA,IAAG,uBAAuB,GAAG,uBAAuB,EAAE,OAAOA,IAAG,uBAAuB,GAAG,wBAAwB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,2dAA2d,EAAE,OAAOA,IAAG,gCAAgC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,2BAA2B,GAAG,gBAAgB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,iBAAiB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,gCAAgC,EAAE,OAAOA,IAAG,8BAA8B,GAAG,UAAU,EAAE,OAAOA,IAAG,8BAA8B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,8BAA8B,GAAG,eAAe,EAAE,OAAOA,IAAG,8BAA8B,GAAG,gCAAgC,EAAE,OAAOA,IAAG,0BAA0B,GAAG,SAAS,EAAE,OAAOA,IAAG,4BAA4B,GAAG,KAAK,EAAE,OAAOA,IAAG,4BAA4B,GAAG,gMAAgM,EAAE,OAAOA,IAAG,sCAAsC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,iCAAiC,GAAG,mFAAmF,EAAE,OAAOA,IAAG,uCAAuC,GAAG,kBAAkB,EAAE,OAAOA,IAAG,sCAAsC,GAAG,GAAG,EAAE,OAAOA,IAAG,sCAAsC,GAAG,GAAG,EAAE,OAAOA,IAAG,sCAAsC,GAAG,yBAAyB,EAAE,OAAOA,IAAG,uCAAuC,GAAG,0EAA0E,EAAE,OAAOA,IAAG,wBAAwB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,iBAAiB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,wDAAwD,EAAE,OAAOA,IAAG,wCAAwC,GAAG,sEAAsE,EAAE,OAAOA,IAAG,wCAAwC,GAAG,8RAA8R,EAAE,OAAOA,IAAG,8BAA8B,GAAG,mZAAmZ,EAAE,OAAOA,IAAG,6BAA6B,GAAG,gBAAgB,EAAE,OAAOA,IAAG,wBAAwB,GAAG,kBAAkB,EAAE,OAAOA,IAAG,0BAA0B,GAAG,gWAAgW,EAAE,OAAOA,IAAG,sCAAsC,GAAG,gIAAgI,EAAE,OAAOA,IAAG,qCAAqC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,oCAAoC,GAAG,iBAAiB,EAAE,OAAOA,IAAG,oCAAoC,GAAG,gCAAgC,EAAE,OAAOA,IAAG,8BAA8B,GAAG,UAAU,EAAE,OAAOA,IAAG,8BAA8B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,8BAA8B,GAAG,yDAAyD,EAAE,OAAOA,IAAG,6CAA6C,GAAG,oEAAoE,EAAE,OAAOA,IAAG,gDAAgD,GAAG,gBAAgB,EAAE,OAAOA,IAAG,2CAA2C,GAAG,4EAA4E,EAAE,OAAOA,IAAG,iDAAiD,GAAG,kBAAkB,EAAE,OAAOA,IAAG,gDAAgD,GAAG,GAAG,EAAE,OAAOA,IAAG,gDAAgD,GAAG,GAAG,EAAE,OAAOA,IAAG,gDAAgD,GAAG,yBAAyB,EAAE,OAAOA,IAAG,iDAAiD,GAAG,gKAAgK,EAAE,OAAOA,IAAG,yCAAyC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,yCAAyC,GAAG,iBAAiB,EAAE,OAAOA,IAAG,yCAAyC,GAAG,0GAA0G,EAAE,OAAOA,IAAG,wCAAwC,GAAG,kBAAkB,EAAE,OAAOA,IAAG,qCAAqC,GAAG,ugDAAugD,EAAE,OAAOA,IAAG,iCAAiC,GAAG,cAAc,EAAE,OAAOA,IAAG,6BAA6B,GAAG,sJAAsJ,EAAE,OAAOA,IAAG,sCAAsC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,iCAAiC,GAAG,iBAAiB,EAAE,OAAOA,IAAG,kCAAkC,GAAG,gCAAgC,EAAE,OAAOA,IAAG,8BAA8B,GAAG,UAAU,EAAE,OAAOA,IAAG,8BAA8B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,8BAA8B,GAAG,eAAe,EAAE,OAAOA,IAAG,8BAA8B,GAAG,yDAAyD,EAAE,OAAOA,IAAG,yCAAyC,GAAG,kKAAkK,EAAE,OAAOA,IAAG,4CAA4C,GAAG,wEAAwE,EAAE,OAAOA,IAAG,6CAA6C,GAAG,kBAAkB,EAAE,OAAOA,IAAG,4CAA4C,GAAG,GAAG,EAAE,OAAOA,IAAG,4CAA4C,GAAG,GAAG,EAAE,OAAOA,IAAG,4CAA4C,GAAG,yBAAyB,EAAE,OAAOA,IAAG,6CAA6C,GAAG,uFAAuF,EAAE,OAAOA,IAAG,6CAA6C,GAAG,ktBAAktB,EAAE,OAAOA,IAAG,0CAA0C,GAAG,uFAAuF,EAAE,OAAOA,IAAG,4CAA4C,GAAG,6FAA6F,EAAE,OAAOA,IAAG,kDAAkD,GAAG,oHAAoH,EAAE,OAAOA,IAAG,mDAAmD,GAAG,iiCAAiiC,EAAE,OAAOA,IAAG,8BAA8B,GAAG,qBAAqB,EAAE,OAAOA,IAAG,kCAAkC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,6BAA6B,GAAG,gBAAgB,EAAE,OAAOA,IAAG,4BAA4B,GAAG,iBAAiB,EAAE,OAAOA,IAAG,4BAA4B,GAAG,0GAA0G,EAAE,OAAOA,IAAG,qCAAqC,GAAG,iEAAiE,EAAE,OAAOA,IAAG,8BAA8B,GAAG,UAAU,EAAE,OAAOA,IAAG,8BAA8B,GAAG,kBAAkB,EAAE,OAAOA,IAAG,8BAA8B,GAAG,mDAAmD,EAAE,OAAOA,IAAG,iCAAiC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,iCAAiC,GAAG,iBAAiB,EAAE,OAAOA,IAAG,iCAAiC,GAAG,4DAA4D,EAAE,OAAOA,IAAG,wCAAwC,GAAG,gBAAgB,EAAE,OAAOA,IAAG,mCAAmC,GAAG,oEAAoE,EAAE,OAAOA,IAAG,yCAAyC,GAAG,kBAAkB,EAAE,OAAOA,IAAG,wCAAwC,GAAG,GAAG,EAAE,OAAOA,IAAG,wCAAwC,GAAG,GAAG,EAAE,OAAOA,IAAG,wCAAwC,GAAG,yBAAyB,EAAE,OAAOA,IAAG,yCAAyC,GAAG,qnBAAqnB;AACh+Z,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM;AAAA,EACN,MAAM,gCAAS/S,OAAK,OAAO;AACzB,QAAI,WAAW,MAAM;AACrB,QAAI,qBAAqB,SAAS,OAAO,kBAAkB,SAAS,iBAAiB,yBAAyB,SAAS,OAAO,kBAAkB;AAChJ,QAAI,oBAAoB,SAAS,OAAO,kBAAkB,SAAS,iBAAiB,yBAAyB,SAAS,OAAO,kBAAkB;AAC/I,WAAO,CAAC,0BAA0B;AAAA,MAChC,yBAAyB,SAAS,OAAO;AAAA,MACzC,+BAA+B,SAAS,OAAO;AAAA,MAC/C,+BAA+B,SAAS,OAAO,6BAA6B,CAAC,SAAS,OAAO;AAAA,IACnG,GAAO,oBAAoB,iBAAiB;AAAA,EACzC,GATK;AAAA,EAUN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,YAAY,gCAAS,WAAW,OAAO;AACrC,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,gDAAgD;AAAA,MACtD,cAAc,SAAS,sBAAuB;AAAA,IACpD,CAAK;AAAA,EACF,GALW;AAAA,EAMZ,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY,gCAAS,WAAW,OAAO;AACrC,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,gDAAgD;AAAA,MACtD,cAAc,SAAS,qBAAsB;AAAA,IACnD,CAAK;AAAA,EACF,GALW;AAAA,EAMZ,UAAU;AAAA,EACV,SAAS;AAAA,EACT,eAAe;AAAA,EACf,WAAW,gCAAS,UAAU,OAAO;AACnC,QAAI,WAAW,MAAM,UACnB7C,SAAQ,MAAM;AAChB,WAAO,CAAC,wBAAwB;AAAA,MAC9B,+BAA+B,SAAS,sBAAsBA,MAAK;AAAA,IACzE,CAAK;AAAA,EACF,GANU;AAAA,EAOX,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,qBAAqB,gCAAS,oBAAoB,OAAO;AACvD,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,oEAAoE;AAAA,MAC1E,cAAc,SAAS,sBAAuB;AAAA,IACpD,CAAK;AAAA,EACF,GALoB;AAAA,EAMrB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,eAAe,gCAAS,cAAc,OAAO;AAC3C,QAAI,WAAW,MAAM,UACnBA,SAAQ,MAAM,OACdulB,eAAc,MAAM;AACtB,WAAO,CAAC,6BAA6B;AAAA,MACnC,qCAAqCA,iBAAgBvlB;AAAA,MACrD,oCAAoC,SAAS,aAAaA,MAAK;AAAA,MAC/D,mCAAmC,SAAS,oBAAmB,MAAOA;AAAA,MACtE,iCAAiC,SAAS,oBAAmB,MAAOA;AAAA,IAC1E,CAAK;AAAA,EACF,GAVc;AAAA,EAWf,WAAW;AAAA,EACX,qBAAqB,gCAAS,oBAAoB,OAAO;AACvD,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,qEAAqE;AAAA,MAC3E,cAAc,SAAS,qBAAsB;AAAA,IACnD,CAAK;AAAA,EACF,GALoB;AAAA,EAMrB,mBAAmB;AACrB;AACA,IAAI,gBAAgB,UAAU,OAAO;AAAA,EACnC,MAAM;AAAA,EACN,OAAO0Y;AAAAA,EACP,SAAS9C;AACX,CAAC;AClFD,IAAI2E,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWQ;AACb;AAEA,IAAIC,eAA0BC,gCAAmB,QAAQ;AAAA,EACvD,GAAG;AAAA,EACH,MAAM;AACR,GAAG,MAAM,EAAE;AACX,IAAIC,eAAa,CAACF,YAAU;AAC5B,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACR,GAAE,KAAK,IAAG,CAAE,GAAGwY,cAAY,EAAE;AAChC;AARSxY;AAUT6X,SAAO,SAAS7X;ACPhB,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWmY;AAAAA,EACX,OAAO;AAAA,IACL,IAAI;AAAA,MACF,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,yBAAyB;AAAA,MACvB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,2BAA2B;AAAA,MACzB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,4BAA4B;AAAA,MAC1B,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iCAAiC;AAAA,MAC/B,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,aAAa;AAAA,MACb,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,SAAS,qBAAqB,GAAG;AAAE,SAAO,qBAAqB,CAAC,KAAK,mBAAmB,CAAC,KAAK,8BAA8B,CAAC,KAAK,qBAAsB;AAAG;AAAlJ;AACT,SAAS,uBAAuB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAAvL;AACT,SAAS,8BAA8B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAO,oBAAoB,GAAG,CAAC;AAAG,QAAInW,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAI,oBAAoB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAvX;AACT,SAAS,mBAAmB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAA1I;AACT,SAAS,qBAAqB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAO,oBAAoB,CAAC;AAAI;AAAhF;AACT,SAAS,oBAAoB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS/C,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAG,SAAO;AAAI;AAA7I;AACT,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWiZ;AAAAA,EACX,OAAO,CAAC,mBAAmB,kBAAkB,oBAAoB;AAAA,EACjE,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,4BAA4B;AAAA,MAC1B,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,IAAI;AAAA,MACF,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS,gCAAS9W,YAAU;AAC1B,QAAI,KAAK,UAAU;AACjB,WAAK,MAAM,iBAAiB;AAAA,IAC7B;AAAA,EACF,GAJQ;AAAA,EAKT,SAAS;AAAA,IACP,uBAAuB,gCAAS,sBAAsB/D,QAAO;AAC3D,aAAO;AAAA,QACL,SAAS;AAAA,UACP,aAAa,KAAK,gBAAgBA;AAAA,QACnC;AAAA,MACT;AAAA,IACK,GANsB;AAAA,IAOvB,MAAM,gCAAS,OAAO;AACpB,UAAI,gBAAgB,KAAK,cAAc;AACvC,UAAIulB,eAAc,KAAK,YAAY,KAAK,MAAM,SAAS,MAAM,KAAK,cAAc,IAAI;AACpF,WAAK,MAAM,sBAAsBA,YAAW;AAAA,IAC7C,GAJK;AAAA,IAKN,MAAM,gCAAS,OAAO;AACpB,UAAI,gBAAgB,KAAK,gBAAgB,IAAI,KAAK,cAAc,IAAI;AACpE,UAAIA,eAAc,KAAK,YAAY,KAAK,gBAAgB,IAAI,KAAK,MAAM,SAAS,IAAI;AACpF,WAAK,MAAM,sBAAsBA,YAAW;AAAA,IAC7C,GAJK;AAAA,IAKN,eAAe,gCAAS,gBAAgB;AACtC,UAAI,KAAK,mBAAmB,KAAK,eAAe;AAC9C,aAAK,MAAM,gBAAgB;AAAA,MAC5B;AAAA,IACF,GAJc;AAAA,IAKf,aAAa,gCAAS,YAAY3jB,IAAG;AACnC,WAAK,cAAa;AAClB,WAAK,KAAI;AACT,UAAIA,MAAKA,GAAE,YAAY;AACrB,QAAAA,GAAE,eAAc;AAAA,MACjB;AAAA,IACF,GANY;AAAA,IAOb,YAAY,gCAAS,WAAWA,IAAG;AACjC,WAAK,cAAa;AAClB,WAAK,KAAI;AACT,UAAIA,MAAKA,GAAE,YAAY;AACrB,QAAAA,GAAE,eAAc;AAAA,MACjB;AAAA,IACF,GANW;AAAA,IAOZ,kBAAkB,gCAAS,iBAAiB5B,QAAO;AACjD,WAAK,cAAa;AAClB,WAAK,MAAM,sBAAsBA,MAAK;AAAA,IACvC,GAHiB;AAAA,IAIlB,uBAAuB,gCAAS,sBAAsBA,QAAO;AAC3D,UAAI,KAAK,4BAA4B;AACnC,aAAK,cAAa;AAClB,aAAK,MAAM,sBAAsBA,MAAK;AAAA,MACvC;AAAA,IACF,GALsB;AAAA,IAMvB,oBAAoB,gCAAS,mBAAmB,OAAOA,QAAO;AAC5D,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,eAAK,cAAa;AAClB,eAAK,MAAM,sBAAsBA,MAAK;AACtC,gBAAM,eAAc;AACpB;AAAA,QACF,KAAK;AACH,eAAK,WAAU;AACf;AAAA,QACF,KAAK;AACH,eAAK,UAAS;AACd;AAAA,QACF,KAAK;AACH,eAAK,UAAS;AACd,gBAAM,eAAc;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAQ;AACb,gBAAM,eAAc;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAQ;AACb;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,gBAAM,eAAc;AACpB;AAAA,MACH;AAAA,IACF,GAjCmB;AAAA,IAkCpB,YAAY,gCAAS,aAAa;AAChC,UAAI,aAAa,qBAAqB,KAAK,KAAK,MAAM,kBAAkB,+BAA+B,CAAC;AACxG,UAAIulB,eAAc,KAAK;AACvB,WAAK,wBAAwBA,cAAaA,eAAc,MAAM,WAAW,SAAS,WAAW,SAAS,IAAIA,eAAc,CAAC;AAAA,IAC1H,GAJW;AAAA,IAKZ,WAAW,gCAAS,YAAY;AAC9B,UAAIA,eAAc,KAAK;AACvB,WAAK,wBAAwBA,cAAaA,eAAc,KAAK,IAAI,IAAIA,eAAc,CAAC;AAAA,IACrF,GAHU;AAAA,IAIX,WAAW,gCAAS9D,aAAY;AAC9B,UAAI8D,eAAc,KAAK;AACvB,WAAK,wBAAwBA,cAAa,CAAC;AAAA,IAC5C,GAHU;AAAA,IAIX,UAAU,gCAAS7D,YAAW;AAC5B,UAAI,aAAa,qBAAqB,KAAK,KAAK,MAAM,kBAAkB,+BAA+B,CAAC;AACxG,UAAI6D,eAAc,KAAK;AACvB,WAAK,wBAAwBA,cAAa,WAAW,SAAS,CAAC;AAAA,IAChE,GAJS;AAAA,IAKV,UAAU,gCAAS8H,YAAW;AAC5B,UAAI,aAAa,qBAAqB,KAAK,KAAK,MAAM,kBAAkB,+BAA+B,CAAC;AACxG,UAAI,mBAAmB,WAAW,UAAU,SAAU,KAAK;AACzD,eAAO,aAAa,KAAK,eAAe,MAAM;AAAA,MACtD,CAAO;AACD,UAAI,kBAAkB,WAAW,KAAK,MAAM,kBAAkB,sDAAsD;AACpH,UAAI9H,eAAc,WAAW,UAAU,SAAU,KAAK;AACpD,eAAO,QAAQ,gBAAgB;AAAA,MACvC,CAAO;AACD,iBAAWA,YAAW,EAAE,SAAS,CAAC,EAAE,WAAW;AAC/C,iBAAW,gBAAgB,EAAE,SAAS,CAAC,EAAE,WAAW;AAAA,IACrD,GAXS;AAAA,IAYV,2BAA2B,gCAAS,4BAA4B;AAC9D,UAAI,aAAa,qBAAqB,KAAK,KAAK,MAAM,kBAAkB,+BAA+B,CAAC;AACxG,UAAI,kBAAkB,WAAW,KAAK,MAAM,kBAAkB,sDAAsD;AACpH,aAAO,WAAW,UAAU,SAAU,KAAK;AACzC,eAAO,QAAQ,gBAAgB;AAAA,MACvC,CAAO;AAAA,IACF,GAN0B;AAAA,IAO3B,yBAAyB,gCAAS,wBAAwB,SAAS,SAAS;AAC1E,UAAI,aAAa,qBAAqB,KAAK,KAAK,MAAM,kBAAkB,+BAA+B,CAAC;AACxG,iBAAW,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW;AAC3C,iBAAW,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW;AAC3C,iBAAW,OAAO,EAAE,SAAS,CAAC,EAAE,MAAK;AAAA,IACtC,GALwB;AAAA,IAMzB,uBAAuB,gCAAS,sBAAsBvlB,QAAO;AAC3D,aAAO,KAAK,gBAAgBA;AAAA,IAC7B,GAFsB;AAAA,IAGvB,uBAAuB,gCAAS,wBAAwB;AACtD,aAAO,CAAC,KAAK,YAAY,KAAK,gBAAgB;AAAA,IAC/C,GAFsB;AAAA,IAGvB,sBAAsB,gCAAS,uBAAuB;AACpD,aAAO,CAAC,KAAK,YAAY,KAAK,gBAAgB,KAAK,MAAM,SAAS;AAAA,IACnE,GAFqB;AAAA,IAGtB,iBAAiB,gCAAS,gBAAgBjB,QAAO;AAC/C,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,YAAY,QAAQ,kBAAkBA,MAAK,IAAI;AAAA,IAC7H,GAFgB;AAAA,IAGjB,eAAe,gCAAS,cAAcA,QAAO;AAC3C,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,UAAU,QAAQ,WAAWA,MAAK,IAAI;AAAA,IACpH,GAFc;AAAA,EAGhB;AAAA,EACD,UAAU;AAAA,IACR,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,MAAM,KAAK,WAAW;AAAA,IACnC,GAFW;AAAA,IAGZ,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,QAAQ;AAAA,IACtF,GAFe;AAAA,EAGjB;AAAA,EACD,YAAY;AAAA,IACV,iBAAiBspB;AAAAA,IACjB,kBAAkBC;AAAAA,EACnB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAIyJ,iBAAe,CAAC,UAAU;AAC9B,IAAIC,iBAAe,CAAC,MAAM,cAAc,sBAAsB;AAC9D,IAAI,eAAe,CAAC,UAAU;AAC9B,IAAI,eAAe,CAAC,cAAc,iBAAiB,iBAAiB,WAAW,gBAAgB,aAAa,eAAe;AAC3H,IAAIzT,eAAa,CAAC,UAAU;AAC5B,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,gBAAgB;AAAA,EACrC,GAAK,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAACtD,gBAAmB,OAAO,WAAW;AAAA,IACpE,SAAS,KAAK,GAAG,OAAO;AAAA,EACzB,GAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,qBAAqB,gBAAgB,UAAW,GAAE,mBAAmB,UAAU,WAAW;AAAA,IACvH,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,YAAY;AAAA,IAC7B,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,aAAO,SAAS,YAAY,MAAM;AAAA,IACxC;AAAA,IACI,UAAU,SAAS,sBAAuB;AAAA,EAC9C,GAAK,KAAK,IAAI,YAAY,GAAG;AAAA,IACzB,yBAAyB;AAAA,EAC1B,IAAG,EAAE,aAAa,YAAY,wBAAwB,OAAO,UAAU,oBAAoB,iBAAiB,GAAG,WAAW;AAAA,IACzH,SAAS,KAAK,GAAG,UAAU;AAAA,EAC/B,GAAK,KAAK,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,GAAI,IAAI8W,cAAY,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,GAAG9W,gBAAmB,OAAO,WAAW;AAAA,IAChK,IAAI,OAAO,KAAK,WAAW,OAAO;AAAA,IAClC,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,MAAM;AAAA,IACN,cAAc,SAAS,gBAAgB,OAAO,cAAc,CAAC;AAAA,IAC7D,wBAAwB,SAAS;AAAA,EACrC,GAAK,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,UAAU,QAAQ,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,IAAI,GAAG;AAAA,IACvH,KAAK;AAAA,IACL,MAAM,SAAS;AAAA,EACnB,GAAK,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAI+W,cAAY,GAAG,OAAO,qBAAqB,gBAAgB,aAAa,mBAAmB,UAAU,WAAW;AAAA,IAC1K,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,YAAY;AAAA,IAC7B,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,aAAO,SAAS,WAAW,MAAM;AAAA,IACvC;AAAA,IACI,UAAU,SAAS,qBAAsB;AAAA,EAC7C,GAAK,KAAK,IAAI,YAAY,GAAG;AAAA,IACzB,yBAAyB;AAAA,EAC1B,IAAG,EAAE,aAAa,YAAY,wBAAwB,OAAO,UAAU,gBAAgB,kBAAkB,GAAG,WAAW;AAAA,IACtH,SAAS,KAAK,GAAG,UAAU;AAAA,EAC5B,GAAE,KAAK,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAG,GAAE,IAAI,YAAY,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,GAAG,OAAO,UAAU,SAAS,KAAK,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,IAC5M,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,SAAS;AAAA,EAC9B,GAAK,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,UAAU,WAAW,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,OAAO,GAAG;AAAA,IAChI,KAAK;AAAA,IACL,MAAM,SAAS;AAAA,EAChB,GAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,kBAAkB,aAAa,mBAAmB,MAAM,WAAW;AAAA,IAC3K,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,eAAe;AAAA,EACpC,GAAK,KAAK,IAAI,eAAe,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,OAAO,SAAUlyB,OAAME,QAAO;AACnI,WAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,MACtD,KAAK,wBAAwB,OAAOA,MAAK;AAAA,MACzC,SAAS,KAAK,GAAG,aAAa;AAAA,QAC5B,OAAOA;AAAA,MACf,CAAO;AAAA,MACD,cAAc,SAAS,cAAcA,SAAQ,CAAC;AAAA,MAC9C,iBAAiB,OAAO,gBAAgBA;AAAA,MACxC,iBAAiB,OAAO,KAAK,WAAWA;AAAA,MACxC,SAAS,gCAASye,SAAQ,QAAQ;AAChC,eAAO,SAAS,iBAAiBze,MAAK;AAAA,MACvC,GAFQ;AAAA,MAGT,cAAc,gCAAS,aAAa,QAAQ;AAC1C,eAAO,SAAS,sBAAsBA,MAAK;AAAA,MAC5C,GAFa;AAAA,MAGd,WAAW,gCAASuoB,WAAU,QAAQ;AACpC,eAAO,SAAS,mBAAmB,QAAQvoB,MAAK;AAAA,MACjD,GAFU;AAAA,MAGX,SAAS;AAAA,IACf,GAAO,KAAK,IAAI,aAAa,SAAS,sBAAsBA,MAAK,CAAC,GAAG;AAAA,MAC/D,iBAAiB,SAAS,sBAAsBA,MAAK;AAAA,IAC3D,CAAK,GAAG,CAAC,CAAC,OAAO,UAAU,WAAW,KAAK,aAAa,mBAAmB,UAAU,WAAW;AAAA,MAC1F,KAAK;AAAA,MACL,MAAM;AAAA,MACN,UAAU,OAAO,gBAAgBA,SAAQ,MAAM;AAAA,MAC/C,SAAS,KAAK,GAAG,iBAAiB;AAAA,MAClC,SAAS;AAAA,IACV,GAAE,KAAK,IAAI,mBAAmB,SAAS,sBAAsBA,MAAK,CAAC,CAAC,GAAG,MAAM,IAAIue,YAAU,KAAK,mBAAmB,IAAI,IAAI,GAAG,OAAO,UAAU,aAAa,aAAa,YAAY,wBAAwB,OAAO,UAAU,SAAS,GAAG;AAAA,MACzO,KAAK;AAAA,MACL,OAAOve;AAAA,IACR,GAAE,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAI,YAAY;AAAA,EAC7E,CAAG,GAAG,GAAG,EAAG,GAAE,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AACtD;AAjFS;AAmFT,SAAS,SAAS;AAElB,SAAS,mBAAmB,GAAG;AAAE,SAAO,mBAAmB,CAAC,KAAK,iBAAiB,CAAC,KAAKkX,8BAA4B,CAAC,KAAK,mBAAoB;AAAG;AAAxI;AACT,SAAS,qBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArL;AACT,SAASA,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOG,oBAAkB,GAAG,CAAC;AAAG,QAAI1S,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAI0S,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXH;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxI;AACT,SAAS,mBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOG,oBAAkB,CAAC;AAAI;AAA5E;AACT,SAASA,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAASzV,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAG,SAAO;AAAI;AAA3IyV;AACT,IAAIqV,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW7R;AAAAA,EACX,OAAO,CAAC,kBAAkB,oBAAoB;AAAA,EAC9C,OAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,yBAAyB;AAAA,MACvB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,yBAAyB;AAAA,EACzB,MAAM,gCAASlY,SAAO;AACpB,WAAO;AAAA,MACL,cAAc,KAAK;AAAA,MACnB,iBAAiB,KAAK;AAAA,MACtB,eAAe,KAAK;AAAA,MACpB,sBAAsB,KAAK;AAAA,MAC3B,mBAAmB;AAAA,MACnB,MAAM;AAAA,IACZ;AAAA,EACG,GATK;AAAA,EAUN,OAAO;AAAA,IACL,YAAY,gCAAS,WAAWlC,WAAUhB,WAAU;AAClD,WAAK,eAAegB;AACpB,WAAK,kBAAkBhB;AAAA,IACxB,GAHW;AAAA,IAIZ,aAAa,gCAAS8lB,aAAY9kB,WAAUhB,WAAU;AACpD,WAAK,gBAAgBgB;AACrB,WAAK,uBAAuBhB;AAAA,IAC7B,GAHY;AAAA,EAId;AAAA,EACD,SAAS,gCAASsE,YAAU;AAC1B,SAAK,YAAW;AAChB,SAAK,kBAAiB;AACtB,QAAI,KAAK,mBAAmB;AAC1B,WAAK,sBAAqB;AAAA,IAC3B;AAAA,EACF,GANQ;AAAA,EAOT,SAAS,gCAASE,WAAU;AAC1B,QAAI,oBAAoB,KAAK;AAC7B,QAAI,KAAK,oBAAoB,KAAK,gBAAgB,KAAK,yBAAyB,KAAK,eAAe;AAClG,UAAI,KAAK,iBAAiB,KAAK,mBAAkB,GAAI;AACnD,4BAAoB;AAAA,MACrB,WAAU,KAAK,MAAM,SAAS,KAAK,eAAe,KAAK,mBAAkB,IAAK,KAAK,eAAe;AACjG,4BAAoB,KAAK,eAAe,KAAK,MAAM;AAAA,MACpD,WAAU,KAAK,MAAM,SAAS,KAAK,eAAe,KAAK,iBAAiB,KAAK,eAAe,MAAM,GAAG;AACpG,4BAAoB,KAAK,gBAAgB,KAAK,KAAK,mBAAoB,IAAG;AAAA,MAClF,OAAa;AACL,4BAAoB,KAAK,gBAAgB,KAAK,KAAK;MACpD;AACD,UAAI,sBAAsB,KAAK,mBAAmB;AAChD,aAAK,oBAAoB;AAAA,MAC1B;AACD,WAAK,MAAM,eAAe,MAAM,YAAY,KAAK,aAAa,kBAAkB,OAAO,qBAAqB,MAAM,KAAK,eAAe,OAAO,IAAI,eAAe,OAAO,qBAAqB,MAAM,KAAK,eAAe,UAAU;AAChO,UAAI,KAAK,yBAAyB,KAAK,eAAe;AACpD,iBAAS,KAAK,aAAa,uBAAuB,OAAO;AACzD,SAAC,KAAK,cAAc,YAAY,KAAK,MAAM,gBAAgB,gBAAgB;AAC3E,aAAK,MAAM,eAAe,MAAM,aAAa;AAAA,MAC9C;AACD,WAAK,uBAAuB,KAAK;AACjC,WAAK,kBAAkB,KAAK;AAAA,IAC7B;AAAA,EACF,GAxBQ;AAAA,EAyBT,eAAe,gCAASC,kBAAgB;AACtC,QAAI,KAAK,mBAAmB;AAC1B,WAAK,wBAAuB;AAAA,IAC7B;AACD,QAAI,KAAK,iBAAiB;AACxB,WAAK,gBAAgB,WAAW,YAAY,KAAK,eAAe;AAAA,IACjE;AAAA,EACF,GAPc;AAAA,EAQf,SAAS;AAAA,IACP,MAAM,gCAAS,KAAK,KAAK;AACvB,UAAI,oBAAoB,KAAK,oBAAoB;AACjD,UAAI,MAAM,KAAK,KAAK,oBAAoB,KAAK,eAAe,KAAK,MAAM,SAAS,GAAG;AACjF,4BAAoB,KAAK,eAAe,KAAK,MAAM;AAAA,MACpD,WAAU,MAAM,KAAK,oBAAoB,GAAG;AAC3C,4BAAoB;AAAA,MACrB;AACD,UAAI,KAAK,UAAU;AACjB,YAAI,MAAM,KAAK,KAAK,MAAM,SAAS,MAAM,KAAK,eAAe;AAC3D,8BAAoB;AAAA,QACrB,WAAU,MAAM,KAAK,KAAK,kBAAkB,GAAG;AAC9C,8BAAoB,KAAK,eAAe,KAAK,MAAM;AAAA,QACpD;AAAA,MACF;AACD,UAAI,KAAK,MAAM,gBAAgB;AAC7B,iBAAS,KAAK,aAAa,uBAAuB,OAAO;AACzD,SAAC,KAAK,cAAc,YAAY,KAAK,MAAM,gBAAgB,gBAAgB;AAC3E,aAAK,MAAM,eAAe,MAAM,YAAY,KAAK,aAAa,kBAAkB,OAAO,qBAAqB,MAAM,KAAK,eAAe,OAAO,IAAI,eAAe,OAAO,qBAAqB,MAAM,KAAK,eAAe,UAAU;AAChO,aAAK,MAAM,eAAe,MAAM,aAAa;AAAA,MAC9C;AACD,WAAK,oBAAoB;AAAA,IAC1B,GArBK;AAAA,IAsBN,eAAe,gCAAS+tB,iBAAgB;AACtC,UAAI,KAAK,mBAAmB,KAAK,eAAe;AAC9C,aAAK,MAAM,gBAAgB;AAAA,MAC5B;AAAA,IACF,GAJc;AAAA,IAKf,oBAAoB,gCAAS,qBAAqB;AAChD,UAAIjyB,SAAQ,KAAK,MAAM,KAAK,eAAe,CAAC;AAC5C,aAAO,KAAK,eAAe,IAAIA,SAAQA,SAAQ;AAAA,IAChD,GAHmB;AAAA,IAIpB,aAAa,gCAASkyB,aAAYtwB,IAAG;AACnC,WAAK,cAAa;AAClB,UAAI,gBAAgB,KAAK,kBAAkB,IAAI,KAAK,gBAAgB,IAAI;AACxE,UAAID,QAAO,gBAAgB,KAAK;AAChC,UAAI,KAAK,eAAeA,QAAO,IAAI,KAAK,mBAAkB,MAAO,KAAK,KAAK,sBAAsB,KAAK,KAAK,WAAW;AACpH,aAAK,KAAK,CAAC;AAAA,MACZ;AACD,UAAI4jB,eAAc,KAAK,YAAY,KAAK,kBAAkB,IAAI,KAAK,MAAM,SAAS,IAAI;AACtF,WAAK,MAAM,sBAAsBA,YAAW;AAC5C,UAAI3jB,GAAE,YAAY;AAChB,QAAAA,GAAE,eAAc;AAAA,MACjB;AAAA,IACF,GAZY;AAAA,IAab,YAAY,gCAASuwB,YAAWvwB,IAAG;AACjC,WAAK,cAAa;AAClB,UAAI,gBAAgB,KAAK,kBAAkB,KAAK,MAAM,SAAS,IAAI,KAAK,MAAM,SAAS,IAAI,KAAK,gBAAgB;AAChH,UAAI,gBAAgB,KAAK,oBAAoB,KAAK,mBAAoB,MAAK,KAAK,KAAK,oBAAoB,KAAK,mBAAkB,IAAK,KAAK,KAAK,WAAW;AACxJ,aAAK,KAAK,EAAE;AAAA,MACb;AACD,UAAI2jB,eAAc,KAAK,YAAY,KAAK,MAAM,SAAS,MAAM,KAAK,gBAAgB,IAAI;AACtF,WAAK,MAAM,sBAAsBA,YAAW;AAC5C,UAAI3jB,GAAE,YAAY;AAChB,QAAAA,GAAE,eAAc;AAAA,MACjB;AAAA,IACF,GAXW;AAAA,IAYZ,aAAa,gCAASqsB,aAAYjuB,QAAO;AACvC,WAAK,cAAa;AAClB,UAAI,oBAAoBA;AACxB,UAAI,sBAAsB,KAAK,eAAe;AAC5C,YAAI2B,QAAO,oBAAoB,KAAK;AACpC,YAAI,MAAM;AACV,YAAI,oBAAoB,KAAK,eAAe;AAC1C,gBAAM,KAAK,eAAeA,QAAO,IAAI,KAAK;AAC1C,cAAI,MAAM,KAAK,KAAK,KAAK,sBAAsB,GAAG;AAChD,iBAAK,KAAK,GAAG;AAAA,UACd;AAAA,QACX,OAAe;AACL,gBAAM,KAAK,mBAAoB,IAAGA;AAClC,cAAI,MAAM,KAAK,KAAK,KAAK,oBAAoB,KAAK,mBAAoB,IAAG,GAAG;AAC1E,iBAAK,KAAK,GAAG;AAAA,UACd;AAAA,QACF;AACD,aAAK,MAAM,sBAAsB,iBAAiB;AAAA,MACnD;AAAA,IACF,GAnBY;AAAA,IAoBb,oBAAoB,gCAAS,mBAAmB,OAAO3B,QAAO;AAC5D,UAAI,MAAM,SAAS,WAAW,MAAM,SAAS,iBAAiB,MAAM,SAAS,SAAS;AACpF,aAAK,YAAYA,MAAK;AACtB,cAAM,eAAc;AAAA,MACrB;AACD,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,WAAU;AACf;AAAA,QACF,KAAK;AACH,eAAK,UAAS;AACd;AAAA,QACF,KAAK;AACH,eAAK,UAAS;AACd,gBAAM,eAAc;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAQ;AACb,gBAAM,eAAc;AACpB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,gBAAM,eAAc;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAQ;AACb;AAAA,MACH;AAAA,IACF,GA5BmB;AAAA,IA6BpB,YAAY,gCAASoyB,cAAa;AAChC,UAAI,aAAa,KAAK,KAAK,MAAM,gBAAgB,mCAAmC;AACpF,UAAI7M,eAAc,KAAK;AACvB,WAAK,wBAAwBA,cAAaA,eAAc,MAAM,WAAW,SAAS,WAAW,SAAS,IAAIA,eAAc,CAAC;AAAA,IAC1H,GAJW;AAAA,IAKZ,WAAW,gCAAS8M,aAAY;AAC9B,UAAI9M,eAAc,KAAK;AACvB,WAAK,wBAAwBA,cAAaA,eAAc,KAAK,IAAI,IAAIA,eAAc,CAAC;AAAA,IACrF,GAHU;AAAA,IAIX,WAAW,gCAAS9D,aAAY;AAC9B,UAAI8D,eAAc,KAAK;AACvB,WAAK,wBAAwBA,cAAa,CAAC;AAAA,IAC5C,GAHU;AAAA,IAIX,UAAU,gCAAS7D,YAAW;AAC5B,UAAI,aAAa,KAAK,KAAK,MAAM,gBAAgB,mCAAmC;AACpF,UAAI6D,eAAc,KAAK;AACvB,WAAK,wBAAwBA,cAAa,WAAW,SAAS,CAAC;AAAA,IAChE,GAJS;AAAA,IAKV,UAAU,gCAAS8H,YAAW;AAC5B,UAAI,aAAa,mBAAmB,KAAK,KAAK,MAAM,gBAAgB,mCAAmC,CAAC;AACxG,UAAI,mBAAmB,WAAW,UAAU,SAAU,KAAK;AACzD,eAAO,aAAa,KAAK,eAAe,MAAM;AAAA,MACtD,CAAO;AACD,UAAI,kBAAkB,WAAW,KAAK,MAAM,gBAAgB,gBAAgB;AAC5E,UAAI9H,eAAc,WAAW,UAAU,SAAU,KAAK;AACpD,eAAO,QAAQ,gBAAgB;AAAA,MACvC,CAAO;AACD,iBAAWA,YAAW,EAAE,SAAS,CAAC,EAAE,WAAW;AAC/C,iBAAW,gBAAgB,EAAE,SAAS,CAAC,EAAE,WAAW;AAAA,IACrD,GAXS;AAAA,IAYV,2BAA2B,gCAAS+M,6BAA4B;AAC9D,UAAI,aAAa,mBAAmB,KAAK,KAAK,MAAM,gBAAgB,mCAAmC,CAAC;AACxG,UAAI,kBAAkB,WAAW,KAAK,MAAM,gBAAgB,oDAAoD;AAChH,aAAO,WAAW,UAAU,SAAU,KAAK;AACzC,eAAO,QAAQ,gBAAgB;AAAA,MACvC,CAAO;AAAA,IACF,GAN0B;AAAA,IAO3B,yBAAyB,gCAASC,yBAAwB,SAAS,SAAS;AAC1E,UAAI,aAAa,KAAK,KAAK,MAAM,gBAAgB,mCAAmC;AACpF,iBAAW,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW;AAC3C,iBAAW,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW;AAC3C,iBAAW,OAAO,EAAE,SAAS,CAAC,EAAE,MAAK;AAAA,IACtC,GALwB;AAAA,IAMzB,iBAAiB,gCAAS,gBAAgB3wB,IAAG;AAC3C,UAAI,KAAK,MAAM,kBAAkBA,GAAE,iBAAiB,aAAa;AAC/D,iBAAS,KAAK,aAAa,uBAAuB,MAAM;AACxD,SAAC,KAAK,cAAc,SAAS,KAAK,MAAM,gBAAgB,gBAAgB;AACxE,aAAK,MAAM,eAAe,MAAM,aAAa;AAAA,MAC9C;AAAA,IACF,GANgB;AAAA,IAOjB,cAAc,gCAAS,aAAaA,IAAG;AACrC,UAAI,WAAWA,GAAE,eAAe,CAAC;AACjC,WAAK,WAAW;AAAA,QACd,GAAG,SAAS;AAAA,QACZ,GAAG,SAAS;AAAA,MACpB;AAAA,IACK,GANa;AAAA,IAOd,aAAa,gCAAS,YAAYA,IAAG;AACnC,UAAIA,GAAE,YAAY;AAChB,QAAAA,GAAE,eAAc;AAAA,MACjB;AAAA,IACF,GAJY;AAAA,IAKb,YAAY,gCAASklB,YAAWllB,IAAG;AACjC,UAAI,WAAWA,GAAE,eAAe,CAAC;AACjC,UAAI,KAAK,YAAY;AACnB,aAAK,kBAAkBA,IAAG,SAAS,QAAQ,KAAK,SAAS,CAAC;AAAA,MAClE,OAAa;AACL,aAAK,kBAAkBA,IAAG,SAAS,QAAQ,KAAK,SAAS,CAAC;AAAA,MAC3D;AAAA,IACF,GAPW;AAAA,IAQZ,mBAAmB,gCAAS,kBAAkBA,IAAGD,OAAM;AACrD,UAAIA,QAAO,GAAG;AAEZ,aAAK,WAAWC,EAAC;AAAA,MACzB,OAAa;AAEL,aAAK,YAAYA,EAAC;AAAA,MACnB;AAAA,IACF,GARkB;AAAA,IASnB,oBAAoB,gCAAS,qBAAqB;AAChD,aAAO,KAAK,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,SAAS,KAAK,eAAe,IAAI;AAAA,IAC5F,GAFmB;AAAA,IAGpB,aAAa,gCAASivB,eAAc;AAClC,UAAI,CAAC,KAAK,iBAAiB;AACzB,YAAI;AACJ,aAAK,kBAAkB,SAAS,cAAc,OAAO;AACrD,aAAK,gBAAgB,OAAO;AAC5B,qBAAa,KAAK,iBAAiB,UAAU,kBAAkB,KAAK,eAAe,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,YAAY,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,SAAS,QAAQ,oBAAoB,SAAS,SAAS,gBAAgB,KAAK;AAC7T,iBAAS,KAAK,YAAY,KAAK,eAAe;AAAA,MAC/C;AACD,UAAI,YAAY,sBAAsB,OAAO,KAAK,aAAa,sEAAwE,EAAE,OAAO,MAAM,KAAK,cAAc,oCAAoC;AAC7M,UAAI,KAAK,qBAAqB,CAAC,KAAK,YAAY;AAC9C,aAAK,0BAA0B,mBAAmB,KAAK,iBAAiB;AACxE,YAAI,WAAW;AACf,aAAK,wBAAwB,KAAK,SAAU,OAAOpL,QAAO;AACxD,cAAI,SAAS,MAAM;AACnB,cAAIzQ,UAASyQ,OAAM;AACnB,iBAAO,KAAK,QAAQzQ,SAAQ,IAAI,QAAQ;AAAA,QAClD,CAAS;AACD,iBAAS,IAAI,GAAG,IAAI,KAAK,wBAAwB,QAAQ,KAAK;AAC5D,cAAI,MAAM,KAAK,wBAAwB,CAAC;AACxC,uBAAa,2DAA2D,OAAO,IAAI,YAAY,oCAAoC,EAAE,OAAO,KAAK,aAAa,2EAA2E,EAAE,OAAO,MAAM,IAAI,YAAY,mFAAmF;AAAA,QAC5V;AAAA,MACF;AACD,WAAK,gBAAgB,YAAY;AAAA,IAClC,GAvBY;AAAA,IAwBb,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,KAAK,MAAM,kBAAkB,KAAK,yBAAyB;AAC7D,YAAI,cAAc,OAAO;AACzB,YAAI,wBAAwB;AAAA,UAC1B,YAAY,KAAK;AAAA,QAC3B;AACQ,iBAAS,IAAI,GAAG,IAAI,KAAK,wBAAwB,QAAQ,KAAK;AAC5D,cAAI,MAAM,KAAK,wBAAwB,CAAC;AACxC,cAAI,SAAS,IAAI,YAAY,EAAE,KAAK,aAAa;AAC/C,oCAAwB;AAAA,UACzB;AAAA,QACF;AACD,YAAI,KAAK,iBAAiB,sBAAsB,YAAY;AAC1D,eAAK,eAAe,sBAAsB;AAAA,QAC3C;AAAA,MACF;AAAA,IACF,GAhBkB;AAAA,IAiBnB,uBAAuB,gCAAS,wBAAwB;AACtD,UAAI,QAAQ;AACZ,UAAI,CAAC,KAAK,wBAAwB;AAChC,aAAK,yBAAyB,WAAY;AACxC,gBAAM,kBAAiB;AAAA,QACjC;AACQ,eAAO,iBAAiB,UAAU,KAAK,sBAAsB;AAAA,MAC9D;AAAA,IACF,GARsB;AAAA,IASvB,yBAAyB,gCAAS,0BAA0B;AAC1D,UAAI,KAAK,wBAAwB;AAC/B,eAAO,oBAAoB,UAAU,KAAK,sBAAsB;AAChE,aAAK,yBAAyB;AAAA,MAC/B;AAAA,IACF,GALwB;AAAA,IAMzB,uBAAuB,gCAASwd,yBAAwB;AACtD,aAAO,CAAC,KAAK,YAAY,KAAK,kBAAkB,KAAK,KAAK,MAAM,UAAU,KAAK;AAAA,IAChF,GAFsB;AAAA,IAGvB,sBAAsB,gCAASC,wBAAuB;AACpD,aAAO,CAAC,KAAK,YAAY,KAAK,kBAAkB,KAAK,MAAM,SAAS,KAAK,KAAK,MAAM,UAAU,KAAK;AAAA,IACpG,GAFqB;AAAA,IAGtB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,oBAAoB;AAAA,IACjC,GAFoB;AAAA,IAGrB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,oBAAmB,IAAK,KAAK,eAAe;AAAA,IACzD,GAFoB;AAAA,IAGrB,cAAc,gCAASC,cAAa1yB,QAAO;AACzC,aAAO,KAAK,yBAAyBA,UAAS,KAAK,oBAAqB,KAAIA;AAAA,IAC7E,GAFa;AAAA,IAGd,eAAe,gCAAS2yB,eAAc5zB,QAAO;AAC3C,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,UAAU,QAAQ,WAAWA,MAAK,IAAI;AAAA,IACpH,GAFc;AAAA,EAGhB;AAAA,EACD,UAAU;AAAA,IACR,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,gBAAgB;AAAA,IAC9F,GAFoB;AAAA,IAGrB,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,gBAAgB;AAAA,IAC9F,GAFoB;AAAA,EAGtB;AAAA,EACD,YAAY;AAAA,IACV,iBAAiBspB;AAAAA,IACjB,kBAAkBC;AAAAA,IAClB,eAAesK;AAAAA,IACf,iBAAiB1O;AAAAA,EAClB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUzM,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU7V,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAxP;AACT,SAAS,gBAAgB/C,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAOA,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAE,wBAAkBxV,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI,UAAU,OAAOA,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAAtb;AACT,SAAS,kBAAkBA,IAAG,GAAG+C,IAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM/C,KAAI,OAAO,eAAeA,IAAG,GAAG,EAAE,OAAO+C,IAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AAAI;AAA/K;AACT,SAAS,iBAAiB+C,IAAG;AAAE,MAAI,IAAI,eAAeA,IAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAeA,IAAG,GAAG;AAAE,MAAI,YAAY,UAAUA,EAAC,KAAK,CAACA,GAAG,QAAOA;AAAG,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAAG,MAAI,WAAW/C,IAAG;AAAE,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQA,EAAC;AAAI;AAAzT;AACT,IAAIkuB,iBAAe,CAAC,YAAY,YAAY;AAC5C,IAAIC,iBAAe,CAAC,iBAAiB,iBAAiB,iBAAiB,aAAa,0CAA0C,yCAAyC,wCAAwC,oCAAoC;AACnP,IAAIC,iBAAe,CAAC,YAAY,cAAc,gBAAgB,SAAS;AACvE,IAAIzU,eAAa,CAAC,YAAY,YAAY;AAC1C,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,YAAY;AAAA,EACjC,GAAK,KAAK,IAAI,YAAY,CAAC,GAAG,CAACrD,gBAAmB,OAAO,WAAW;AAAA,IAChE,SAAS,KAAK,GAAG,kBAAkB;AAAA,EACpC,GAAE,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,0BAA0B,gBAAgB,UAAW,GAAE,mBAAmB,UAAU,WAAW;AAAA,IACvI,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,qBAAqB;AAAA,IACtC,UAAU,SAAS,sBAAuB;AAAA,IAC1C,MAAM;AAAA,IACN,cAAc,SAAS;AAAA,IACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,aAAO,SAAS,YAAY,MAAM;AAAA,IACxC;AAAA,EACA,GAAK,gBAAgB,gBAAgB,IAAI,OAAO,eAAe,GAAG,KAAK,IAAI,qBAAqB,CAAC,GAAG;AAAA,IAChG,yBAAyB;AAAA,EAC1B,IAAG,EAAE,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,0BAA0B,OAAO,aAAa,kBAAkB,kBAAkB,GAAG,WAAW;AAAA,IACtK,SAAS,KAAK,GAAG,mBAAmB;AAAA,EACxC,GAAK,KAAK,IAAI,mBAAmB,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,GAAI,IAAI4X,cAAY,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,GAAG5X,gBAAmB,OAAO,WAAW;AAAA,IACzK,SAAS,KAAK,GAAG,oBAAoB;AAAA,IACrC,OAAO;AAAA,MACL,QAAQ,OAAO,aAAa,OAAO,gBAAgB;AAAA,IACpD;AAAA,EACL,GAAK,KAAK,IAAI,oBAAoB,CAAC,GAAG,CAACA,gBAAmB,OAAO,WAAW;AAAA,IACxE,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,gBAAgB;AAAA,IACjC,MAAM;AAAA,IACN,iBAAiB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC3D,aAAO,SAAS,gBAAgB,MAAM;AAAA,IAC5C;AAAA,IACI,cAAc,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACxD,aAAO,SAAS,aAAa,MAAM;AAAA,IACzC;AAAA,IACI,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,aAAO,SAAS,YAAY,MAAM;AAAA,IACxC;AAAA,IACI,YAAY,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACtD,aAAO,SAAS,WAAW,MAAM;AAAA,IACvC;AAAA,EACA,GAAK,KAAK,IAAI,gBAAgB,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,OAAO,SAAUnb,OAAME,QAAO;AACpI,WAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,MACvD,KAAK,6BAA6B,OAAOA,MAAK;AAAA,MAC9C,SAAS,KAAK,GAAG,iBAAiB;AAAA,QAChC,OAAOA;AAAA,QACP,aAAa,OAAO;AAAA,MAC5B,CAAO;AAAA,MACD,MAAM;AAAA,MACN,iBAAiB,OAAO,gBAAgBA;AAAA,MACxC,iBAAiB,OAAO,gBAAgBA;AAAA,MACxC,iBAAiB,OAAO,cAAc,WAAWA;AAAA,MACjD,WAAW,gCAASuoB,WAAU,QAAQ;AACpC,eAAO,SAAS,mBAAmB,QAAQvoB,MAAK;AAAA,MACjD,GAFU;AAAA,MAGX,SAAS;AAAA,IACf,GAAO,KAAK,IAAI,eAAe,GAAG;AAAA,MAC5B,0CAA0C,OAAO,gBAAgBA;AAAA,MACjE,yCAAyC,SAAS,aAAaA,MAAK;AAAA,MACpE,wCAAwC,SAAS,oBAAmB,MAAOA;AAAA,MAC3E,sCAAsC,SAAS,oBAAmB,MAAOA;AAAA,IAC1E,IAAG,CAACib,gBAAmB,OAAO,WAAW;AAAA,MACxC,SAAS,KAAK,GAAG,WAAW;AAAA,MAC5B,UAAU,OAAO,gBAAgBjb,SAAQ,MAAM;AAAA,MAC/C,cAAc,SAAS,cAAcA,SAAQ,CAAC;AAAA,MAC9C,gBAAgB,OAAO,gBAAgBA,SAAQ,SAAS;AAAA,MACxD,SAAS,gCAASye,SAAQ,QAAQ;AAChC,eAAO,SAAS,YAAYze,MAAK;AAAA,MAClC,GAFQ;AAAA,MAGT,SAAS;AAAA,IACf,GAAO,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,UAAU,aAAa,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,SAAS,GAAG;AAAA,MACtI,KAAK;AAAA,MACL,MAAMF;AAAA,IACZ,GAAO,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIizB,cAAY,CAAC,GAAG,IAAID,cAAY;AAAA,EAC7F,IAAG,GAAG,EAAC,GAAI,EAAE,CAAC,GAAG,EAAE,GAAG,OAAO,0BAA0B,gBAAgB,UAAS,GAAI,mBAAmB,UAAU,WAAW;AAAA,IAC3H,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,qBAAqB;AAAA,IACtC,UAAU,SAAS,qBAAsB;AAAA,IACzC,MAAM;AAAA,IACN,cAAc,SAAS;AAAA,IACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,aAAO,SAAS,WAAW,MAAM;AAAA,IACvC;AAAA,EACA,GAAK,gBAAgB,gBAAgB,IAAI,OAAO,eAAe,GAAG,KAAK,IAAI,qBAAqB,CAAC,GAAG;AAAA,IAChG,yBAAyB;AAAA,EAC1B,IAAG,EAAE,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,sBAAsB,OAAO,aAAa,oBAAoB,mBAAmB,GAAG,WAAW;AAAA,IACrK,SAAS,KAAK,GAAG,mBAAmB;AAAA,EACrC,GAAE,KAAK,IAAI,mBAAmB,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAG,GAAE,IAAIxU,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;AAC/I;AAvFS;AAyFToO,WAAS,SAAS;AAElB,SAASlV,YAAU,GAAG;AAAE;AAA2B,SAAOA,cAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUC,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAID,YAAU,CAAC;AAAI;AAA3TA;AACT,SAAS,UAAU5V,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAxP;AACT,SAAS,gBAAgB/C,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAOA,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAE2V,0BAAkBnrB,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI,UAAU,OAAOA,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAAtb;AACT,SAASmrB,oBAAkBnrB,IAAG,GAAG+C,IAAG;AAAE,UAAQ,IAAI+S,mBAAiB,CAAC,MAAM9V,KAAI,OAAO,eAAeA,IAAG,GAAG,EAAE,OAAO+C,IAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AAAI;AAA/KmrB;AACT,SAASrV,mBAAiB/S,IAAG;AAAE,MAAI,IAAIgT,iBAAehT,IAAG,QAAQ;AAAG,SAAO,YAAY6S,YAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1GE;AACT,SAASC,iBAAehT,IAAG,GAAG;AAAE,MAAI,YAAY6S,YAAU7S,EAAC,KAAK,CAACA,GAAG,QAAOA;AAAG,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAAG,MAAI,WAAW/C,IAAG;AAAE,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAAG,QAAI,YAAY6S,YAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ7S,EAAC;AAAI;AAAzTgT;AACT,IAAIwD,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWN;AAAAA,EACX,cAAc;AAAA,EACd,UAAU;AAAA,EACV,OAAO,CAAC,qBAAqB,WAAW;AAAA,EACxC,MAAM,gCAASlY,SAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO,MAAM,kBAAmB;AAAA,MACzC,aAAa,KAAK,OAAO;AAAA,MACzB,YAAY,KAAK,OAAO;AAAA,MACxB,iBAAiB;AAAA,IACvB;AAAA,EACG,GAPK;AAAA,EAQN,OAAO;AAAA,IACL,aAAa,gCAASoc,UAASte,WAAU;AACvC,WAAK,KAAKA,aAAY;IACvB,GAFY;AAAA,IAGb,gBAAgB,gCAAS,YAAY,QAAQ;AAC3C,UAAI,UAAU,OAAO,SAAS,KAAK,YAAY;AAC7C,aAAK,aAAa,OAAO;AAAA,MAC1B;AAAA,IACF,GAJe;AAAA,IAKhB,sBAAsB,gCAAS,kBAAkB,QAAQ;AACvD,WAAK,cAAc;AAAA,IACpB,GAFqB;AAAA,IAGtB,qBAAqB,gCAAS,iBAAiB,QAAQ;AACrD,WAAK,aAAa;AAAA,IACnB,GAFoB;AAAA,IAGrB,mBAAmB,gCAAS,eAAe,QAAQ;AACjD,eAAS,KAAK,eAAgB,IAAG,KAAK,cAAa;AAAA,IACpD,GAFkB;AAAA,EAGpB;AAAA,EACD,SAAS,gCAASsD,YAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AAAA,EACvC,GAFQ;AAAA,EAGT,SAAS,gCAASE,WAAU;AAC1B,SAAK,MAAM,qBAAqB,KAAK,WAAW;AAAA,EACjD,GAFQ;AAAA,EAGT,eAAe,gCAASC,kBAAgB;AACtC,QAAI,KAAK,iBAAiB;AACxB,WAAK,cAAa;AAAA,IACnB;AAAA,EACF,GAJc;AAAA,EAKf,SAAS;AAAA,IACP,cAAc,gCAASyZ,eAAa,KAAK;AACvC,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,OAAO,gBAAgB,gBAAgB,IAAI,KAAK,MAAM,GAAG,IAAI;AAAA,UAC3D,IAAI,KAAK;AAAA,UACT,UAAU,KAAK;AAAA,QACzB,CAAS;AAAA,MACT,CAAO;AAAA,IACF,GAPa;AAAA,IAQd,kBAAkB,gCAAS,mBAAmB;AAC5C,aAAO,KAAK;AAAA,IACb,GAFiB;AAAA,IAGlB,gBAAgB,gCAAS,iBAAiB;AACxC,UAAI,QAAQ;AACZ,WAAK,WAAW,YAAY,WAAY;AACtC,YAAI4H,eAAc,MAAM,OAAO,YAAY,MAAM,OAAO,MAAM,SAAS,MAAM,MAAM,cAAc,IAAI,MAAM,cAAc;AACzH,cAAM,cAAcA;AAAA,MAC5B,GAAS,KAAK,OAAO,kBAAkB;AACjC,WAAK,kBAAkB;AAAA,IACxB,GAPe;AAAA,IAQhB,eAAe,gCAAS0M,iBAAgB;AACtC,UAAI,KAAK,UAAU;AACjB,sBAAc,KAAK,QAAQ;AAAA,MAC5B;AACD,WAAK,kBAAkB;AAAA,IACxB,GALc;AAAA,IAMf,kBAAkB,gCAAS,iBAAiB,cAAcrnB,WAAU;AAClE,UAAI,YAAY,CAAC,OAAO,QAAQ,UAAU,OAAO;AACjD,UAAI+B,OAAM,UAAU,KAAK,SAAU7M,OAAM;AACvC,eAAOA,UAAS8K;AAAA,MACxB,CAAO;AACD,aAAO+B,OAAM,GAAG,OAAO,cAAc,GAAG,EAAE,OAAOA,IAAG,IAAI;AAAA,IACzD,GANiB;AAAA,IAOlB,YAAY,gCAASqS,cAAa;AAChC,aAAO,KAAK,OAAO,uBAAuB,UAAU,KAAK,OAAO,uBAAuB;AAAA,IACxF,GAFW;AAAA,EAGb;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS+R,kBAAiB;AACxC,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,QAAQ;AAAA,IACtF,GAFe;AAAA,EAGjB;AAAA,EACD,YAAY;AAAA,IACV,cAAc;AAAA,IACd,oBAAoBrE;AAAAA,IACpB,WAAWzI;AAAAA,EACZ;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAASlM,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUN,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIM,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASyB,UAAQ5X,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAtP6U;AACT,SAASC,gBAAc7X,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI6U,UAAQ,OAAO7U,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAEiB,wBAAgBzW,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI6U,UAAQ,OAAO7U,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAA9a6X;AACT,SAASpB,kBAAgBzW,IAAG,GAAG+C,IAAG;AAAE,UAAQ,IAAIyT,iBAAe,CAAC,MAAMxW,KAAI,OAAO,eAAeA,IAAG,GAAG,EAAE,OAAO+C,IAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AAAI;AAA3KyW;AACT,SAASD,iBAAezT,IAAG;AAAE,MAAI,IAAI2T,eAAa3T,IAAG,QAAQ;AAAG,SAAO,YAAYoT,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASE,eAAa3T,IAAG,GAAG;AAAE,MAAI,YAAYoT,UAAQpT,EAAC,KAAK,CAACA,GAAG,QAAOA;AAAG,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAAG,MAAI,WAAW/C,IAAG;AAAE,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAAG,QAAI,YAAYoT,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQpT,EAAC;AAAI;AAAnT2T;AACT,IAAIiV,iBAAe,CAAC,MAAM,cAAc,sBAAsB;AAC9D,IAAIrS,eAAa,CAAC,YAAY;AAC9B,IAAImD,eAAa,CAAC,WAAW;AAC7B,SAASmP,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,0BAA0B,iBAAiB,cAAc;AAC7D,MAAI,gCAAgC,iBAAiB,oBAAoB;AACzE,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,IAC5G,KAAK;AAAA,IACL,IAAI,MAAM;AAAA,IACV,MAAM;AAAA,IACN,SAAS,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,OAAO,cAAc;AAAA,IACrD,OAAO,KAAK,OAAO;AAAA,IACnB,cAAc,KAAK,OAAO;AAAA,IAC1B,wBAAwB,KAAK,OAAO;AAAA,EACxC,GAAK/T,gBAAcA,gBAAc,IAAI,KAAK,OAAO,cAAc,GAAG,SAAS,aAAa,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,aAAa,gBAAgB,aAAa,mBAAmB,UAAU,WAAW;AAAA,IAC9L,KAAK;AAAA,IACL,WAAW;AAAA,IACX,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,aAAa;AAAA,IAC9B,cAAc,SAAS;AAAA,IACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,aAAO,KAAK,MAAM,WAAW;AAAA,IACnC;AAAA,EACA,GAAK,SAAS,aAAa,aAAa,CAAC,GAAG,EAAE,UAAS,GAAI,YAAY,wBAAwB,KAAK,OAAO,UAAU,WAAW,KAAK,WAAW,GAAG,WAAW;AAAA,IAC1J,SAAS,KAAK,GAAG,WAAW;AAAA,EAChC,GAAK,SAAS,aAAa,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,GAAI,IAAIyB,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,GAAG,KAAK,OAAO,aAAa,KAAK,OAAO,UAAU,QAAQ,KAAK,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACrP,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC1B,GAAE,SAAS,aAAa,QAAQ,CAAC,GAAG,EAAE,UAAW,GAAE,YAAY,wBAAwB,KAAK,OAAO,UAAU,QAAQ,CAAC,CAAC,EAAC,GAAI,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGD,gBAAmB,OAAO,WAAW;AAAA,IACrM,SAAS,KAAK,GAAG,SAAS;AAAA,IAC1B,aAAa,KAAK,OAAO,WAAW,WAAW;AAAA,EACnD,GAAK,SAAS,aAAa,SAAS,CAAC,GAAG,CAAC,YAAY,yBAAyB;AAAA,IAC1E,IAAI,MAAM;AAAA,IACV,aAAa,MAAM;AAAA,IACnB,wBAAwB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAClE,aAAO,MAAM,cAAc;AAAA,IACjC;AAAA,IACI,iBAAiB,MAAM;AAAA,IACvB,4BAA4B,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACtE,aAAO,MAAM,kBAAkB;AAAA,IACrC;AAAA,IACI,OAAO,KAAK,OAAO;AAAA,IACnB,UAAU,KAAK,OAAO;AAAA,IACtB,WAAW,KAAK,OAAO;AAAA,IACvB,gBAAgB,KAAK,OAAO;AAAA,IAC5B,4BAA4B,KAAK,OAAO;AAAA,IACxC,oBAAoB,KAAK,OAAO;AAAA,IAChC,UAAU,KAAK,OAAO;AAAA,IACtB,kBAAkB,SAAS;AAAA,IAC3B,iBAAiB,SAAS;AAAA,IAC1B,IAAI,KAAK;AAAA,IACT,UAAU,KAAK;AAAA,EAChB,GAAE,MAAM,GAAG,CAAC,MAAM,eAAe,mBAAmB,SAAS,YAAY,aAAa,kBAAkB,8BAA8B,sBAAsB,YAAY,oBAAoB,mBAAmB,MAAM,UAAU,CAAC,GAAG,KAAK,OAAO,kBAAkB,aAAa,YAAY,+BAA+B;AAAA,IACxT,KAAK;AAAA,IACL,aAAa,MAAM;AAAA,IACnB,wBAAwB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAClE,aAAO,MAAM,cAAc;AAAA,IACjC;AAAA,IACI,iBAAiB,MAAM;AAAA,IACvB,4BAA4B,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACtE,aAAO,MAAM,kBAAkB;AAAA,IACrC;AAAA,IACI,aAAa,MAAM;AAAA,IACnB,OAAO,KAAK,OAAO;AAAA,IACnB,WAAW,KAAK,OAAO;AAAA,IACvB,YAAY,MAAM;AAAA,IAClB,mBAAmB,KAAK,OAAO;AAAA,IAC/B,UAAU,KAAK,OAAO;AAAA,IACtB,YAAY,SAAS,WAAY;AAAA,IACjC,eAAe,KAAK,OAAO;AAAA,IAC3B,yBAAyB,KAAK,OAAO;AAAA,IACrC,iBAAiB,KAAK,OAAO;AAAA,IAC7B,iBAAiB,KAAK,OAAO;AAAA,IAC7B,iBAAiB,SAAS;AAAA,IAC1B,IAAI,KAAK;AAAA,IACT,UAAU,KAAK;AAAA,EACnB,GAAK,MAAM,GAAG,CAAC,eAAe,mBAAmB,eAAe,SAAS,aAAa,cAAc,qBAAqB,YAAY,cAAc,iBAAiB,2BAA2B,mBAAmB,mBAAmB,mBAAmB,MAAM,UAAU,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIoD,YAAU,GAAG,KAAK,OAAO,aAAa,KAAK,OAAO,UAAU,QAAQ,KAAK,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,IACxa,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC1B,GAAE,SAAS,aAAa,QAAQ,CAAC,GAAG,EAAE,aAAa,YAAY,wBAAwB,KAAK,OAAO,UAAU,QAAQ,CAAC,CAAC,EAAC,GAAI,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIkP,cAAY,KAAK,mBAAmB,IAAI,IAAI;AACrN;AA9ESC;AAgFTrS,WAAS,SAASqS;AAElB,IAAIjT,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,sBAAsB,gBAAgB;AAAA,EAC9C,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM,gCAAS5X,SAAO;AACpB,WAAO;AAAA,MACL,kBAAkB,KAAK;AAAA,IAC7B;AAAA,EACG,GAJK;AAAA,EAKN,SAAS,gCAASsB,YAAU;AAC1B,QAAI,KAAK,cAAc,KAAK,SAAS;AACnC,WAAK,mBAAmB,KAAK;AAAA,IAC9B;AAAA,EACF,GAJQ;AAAA,EAKT,eAAe,gCAASC,kBAAgB;AACtC,QAAI,KAAK,YAAY;AACnB;IACD;AACD,SAAK,OAAO;AACZ,QAAI,KAAK,WAAW;AAClB,aAAO,MAAM,KAAK,SAAS;AAC3B,WAAK,YAAY;AAAA,IAClB;AAAA,EACF,GATc;AAAA,EAUf,SAAS;AAAA,IACP,eAAe,gCAAS4B,eAAc,IAAI;AACxC,aAAO,IAAI,SAAS,IAAI,KAAK,cAAc,KAAK,UAAU,OAAO,OAAO,KAAK;AAAA,IAC9E,GAFc;AAAA,IAGf,SAAS,gCAASC,SAAQ,IAAI;AAC5B,WAAK,KAAK,MAAM,SAAS,OAAO,SAAS,GAAG,MAAM,QAAQ,EAAE,IAAI,CAAC;AACjE;AACA,WAAK,MAAK;AAAA,IACX,GAJQ;AAAA,IAKT,eAAe,gCAASE,iBAAgB;AACtC,OAAC,KAAK,cAAc,SAAS,KAAK,MAAM,sBAAsB;AAAA,IAC/D,GAFc;AAAA,IAGf,cAAc,gCAASE,cAAa,IAAI;AACtC,aAAO,MAAM,EAAE;AACf,WAAK,mBAAmB;AACxB;IACD,GAJa;AAAA,IAKd,oBAAoB,gCAAS,mBAAmBnG,QAAO;AACrD,UAAI,KAAK,gBAAgBA,QAAO;AAC9B,aAAK,MAAM,sBAAsBA,MAAK;AAAA,MACvC;AAAA,IACF,GAJmB;AAAA,IAKpB,UAAU,gCAAS,WAAW;AAC5B,WAAK,MAAM,kBAAkB,KAAK;AAAA,IACnC,GAFS;AAAA,IAGV,cAAc,gCAASgnB,cAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,SAAS,gCAASgM,SAAQ,IAAI;AAC5B,WAAK,OAAO;AAAA,IACb,GAFQ;AAAA,IAGT,OAAO,gCAAS1C,SAAQ;AACtB,UAAI,cAAc,KAAK,UAAU,IAAI,cAAc,aAAa;AAChE,UAAI,aAAa;AACf,oBAAY,MAAK;AAAA,MAClB;AAAA,IACF,GALM;AAAA,EAMR;AAAA,EACD,YAAY;AAAA,IACV,iBAAiBnV;AAAAA,IACjB,QAAQ6I;AAAAA,EACT;AAAA,EACD,YAAY;AAAA,IACV,WAAW;AAAA,EACZ;AACH;AAEA,IAAIhJ,eAAa,CAAC,YAAY;AAC9B,SAAStY,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,6BAA6B,iBAAiB,iBAAiB;AACnE,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,SAAO,KAAK,cAAc,UAAS,GAAI,YAAY,mBAAmB;AAAA,IACpE,KAAK;AAAA,EACT,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,MAAM,oBAAoB,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,QAClF,KAAK;AAAA,QACL,KAAK,SAAS;AAAA,QACd,SAAS,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,SAAS;AAAA,QACzC,MAAM;AAAA,QACN,cAAc,KAAK,aAAa,SAAS;AAAA,MACjD,GAAS,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,YAAY,WAAW;AAAA,QACxD,MAAM;AAAA,QACN,eAAe,SAAS;AAAA,QACxB,SAAS,SAAS;AAAA,QAClB,eAAe,SAAS;AAAA,QACxB,cAAc,SAAS;AAAA,QACvB,QAAQ;AAAA,MACT,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,KAAK,UAAU,gBAAgB,UAAS,GAAI,YAAY,4BAA4B,WAAW;AAAA,YACrG,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,YAAY,SAAS;AAAA,YACrB,WAAW,KAAK;AAAA,YAChB,oBAAoB,SAAS;AAAA,YAC7B,IAAI,KAAK;AAAA,YACT,UAAU,KAAK;AAAA,UAC3B,GAAa,KAAK,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,aAAa,sBAAsB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,mBAAmB,IAAI,IAAI,CAAC;AAAA,QACpK,CAAS;AAAA,QACD,GAAG;AAAA,MACJ,GAAE,IAAI,CAAC,iBAAiB,WAAW,iBAAiB,cAAc,CAAC,CAAC,GAAG,IAAIsY,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IAC7H,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,OAAM,UAAW,GAAE,YAAY,4BAA4B,WAAW;AAAA,IACrE,KAAK;AAAA,IACL,WAAW,KAAK;AAAA,IAChB,oBAAoB,SAAS;AAAA,IAC7B,IAAI,KAAK;AAAA,IACT,UAAU,KAAK;AAAA,EAChB,GAAE,KAAK,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,sBAAsB,MAAM,UAAU,CAAC;AAClF;AA5CStY;AA8CT6X,SAAO,SAAS7X;;;;;;;;;ACptCV,2BAAiB,IAAI,KAAK;AAEhC,UAAMD,QAAO;AAIb,UAAM,QAAQ;AAKd,QAAI,sBAA0C;AAExC,UAAAwwB,mBAAkB,wBAAC,UAAsB;AAC7C,4BAAsB,MAAM;AAAA,OADN;AAIlB,UAAAC,iBAAgB,wBAAC,UAAsB;AACrC,qBAAS,SAAS,cAAc,aAAa;AACnD,UACE,eAAe,SACf,wBAAwB,MAAM,UAC9B,wBAAwB,QACxB;AACA,uBAAe,QAAQ;AACvB,+BAAuB,KAAK;AAAA,MAC9B;AAAA,OAToB;AAYtB;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,CAAClzB,WAAU;AACT,YAAIA,WAAU,IAAI;AAChB,yBAAe,QAAQ;AAAA,QACzB;AAAA,MACF;AAAA;AAGI,mCAAyB,wBAAC,YAAqB;AACnD,UAAI,CAAC,SAAS;AACZ,QAAAyC,MAAK,sBAAsB,EAAE;AAAA,MAC/B;AAAA,OAH6B;AAMzB,oCAA0B,wBAACzC,WAAkB;AACjD,MAAAyC,MAAK,sBAAsBzC,MAAK;AAAA,OADF;AAI1B,0BAAgB,wBAAC,UAAyB;AAC1C,WAAC,eAAe,MAAO;AAE3B,cAAQ,MAAM,KAAK;AAAA,QACjB,KAAK;AACH,wBAAc,EAAE;AAChB;AAAA,QACF,KAAK;AACH,wBAAc,CAAC;AACf;AAAA,QACF,KAAK;AACH,yBAAe,QAAQ;AACvB,iCAAuB,KAAK;AAC5B;AAAA,MACJ;AAAA,OAdoB;AAiBhB,0BAAgB,wBAAC,cAAsB;AACrC,wBACH,MAAM,cAAc,YAAY,MAAM,gBAAgB,UACvD,MAAM,gBAAgB;AACxB,MAAAyC,MAAK,sBAAsB,QAAQ;AAAA,OAJf;AAOtB,cAAU,MAAM;AACP,8BAAiB,WAAW,aAAa;AAAA,KACjD;AAED,gBAAY,MAAM;AACT,iCAAoB,WAAW,aAAa;AAAA,KACpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACND,MAAM,YAAY;AAmBlB,MAAM,iBAAiB;AACvB,MAAM,mBAAmB;;;;AAnBzB,UAAMojB,WAAU;AAChB,UAAM,QAAQ;AACd,UAAM,aAAa;AACnB,UAAM,eAAe;AACrB,UAAM,eAAe;AACf,YAAE,GAAAlhB,OAAM;AAGR,uBAAa,IAAI,KAAK;AACtB,yBAAe,IAAoB,EAAE;AACrC,4BAAkB,IAAwB,IAAI;AAC9C,4BAAkB,IAAwB,IAAI;AAC9C,+BAAqB,IAAI,EAAE;AAE3B,uBAAa,IAAyB,IAAI;AAChD,UAAM,iBAAiB,SAAS,MAAM,WAAW,UAAU,IAAI;AAC/D,UAAM,WAAW,SAAiB,MAAM,aAAa,IAAI,SAAS,CAAC;AAKnE,UAAM,WAAW;AAAA,MAAS,MACxB,eAAe,QACX,WAAW,QACT,WAAW,MAAM,QAAQ,IACzB,CACF,eAAW,QACT,WAAW,YACX,WAAW;AAAA;AAEnB,UAAM,kBAAkB;AAAA,MAAS,MAC/B,SAAS,MAAM,QAAQ,CAAC,SAAuB;AAC7C,cAAM,gBAAgB,KAAK;AAC3B,eAAO,gBAAgB,CAAC,aAAa,IAAI;MAAC,CAC3C;AAAA;AAGH,UAAM,gBAAgB,6BAAM;AACpB,4BAAgB,aAAa,MAAM;AACnC,uBAAW,SAAS,MAAM;AAAA,QAC9B;AAAA,QACA,gBAAgB;AAAA;AAEL,yBAAM,KAAK,GAAG,QAAQ;AAAA,OANf;AAStB,UAAM,mBAAmB,6BAAM;AACzB,WAAC,gBAAgB,MAAO;AAE5B,YAAM,EAAE,cAAA8hB,eAAc,WAAAjK,YAAW,iBAAiB,gBAAgB;AAC9D,UAAAiK,gBAAejK,aAAY,eAAe,kBAAkB;AAChD;MAChB;AAAA,OANuB;AASzB;AAAA,MACE;AAAA,MACA,MAAM;AACJ,YAAI,aAAa,MAAM,SAAS,SAAS,MAAM,QAAQ;AACvC;QAChB;AAAA,MACF;AAAA,MACA,EAAE,UAAU,iBAAiB;AAAA;AAK/B,sBAAkB,iBAAiB,MAAM;AACvC,eAAS,MAAM;AACI;MAAA,CAClB;AAAA,KACF;AAED,UAAM,qBAAqB,6BAAM;AAC/B,mBAAa,QAAQ,SAAS,MAAM,MAAM,GAAG,cAAc;AAAA,OADlC;AAI3B,UAAM,iBAAiB,6BAAM;AAChB,yBAAQ,CAAC,WAAW;AACZ;IAAA,GAFE;AAKjB,uBAAa,wBAAC,SAAuB;AACzC,UAAI,KAAK,WAAW;AAClB,YAAI,UAAU;AAAA,MAChB;AACA,iBAAW,OAAO,IAAI;AAAA,OAJL;AAOnB,UAAM,iBAAiB,mCAAY;AACjC,YAAM,WAAW;IAAM,GADF;AAIjB,6BAAmB,wBAAC,UAAiB;AACzC,MAAAqJ,SAAQ,QAAQ;AAAA,QACd,QAAQ,MAAM;AAAA,QACd,SAAS;AAAA,QACT,MAAM;AAAA,QACN,aAAa;AAAA,UACX,OAAO;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,QACZ;AAAA,QACA,aAAa;AAAA,UACX,OAAO;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,QACA,QAAQ,mCAAY;AAClB,gBAAM,eAAe;AACrB,gBAAM,IAAI;AAAA,YACR,UAAU;AAAA,YACV,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,MAAM;AAAA,WACP;AAAA,QACH,GARQ;AAAA,MAQR,CACD;AAAA,OAvBsB;AA0BzB,UAAM,WAAW,mCAAY;AAC3B,YAAM,WAAW;AACE;IAAA,GAFJ;AAKX,UAAA3Q,QAAO,IAAI,IAAI;AACf,2BAAiB,IAAyB,IAAI;AAC9C,2BAAiB,IAAsB,IAAI;AAC3C,sBAAY,SAAqB,MAAM;AAAA,MAC3C;AAAA,QACE,OAAOvQ,GAAE,UAAU;AAAA,QACnB,MAAM;AAAA,QACN,SAAS,6BAAM,eAAe,SAAS,WAAW,eAAe,KAAK,GAA7D;AAAA,QACT,UAAU,WAAW,SAAS,eAAe;AAAA,MAC/C;AAAA,MACA;AAAA,QACE,OAAOA,GAAE,gBAAgB;AAAA,QACzB,MAAM;AAAA,QACN,SAAS,6BAAM,eAAe,OAAO,aAAa9C,KAAG,GAA5C;AAAA,QACT,UAAU,CAAC,eAAe,OAAO;AAAA,MACnC;AAAA,MACA;AAAA,QACE,OAAO8C,GAAE,YAAY;AAAA,QACrB,MAAM;AAAA,QACN,SAAS,6BAAM9C,MAAI,SAAS,eAAe,OAAO,EAAE,GAA3C;AAAA,QACT,SAAS,CAAC,CAAC,eAAe;AAAA,MAC5B;AAAA,KACD;AAED,UAAM,oBAAoB,wBAAC;AAAA,MACzB;AAAA,MACA;AAAA,MACA,MAAAuB;AAAA,UAKI;AACJ,qBAAe,QAAQ;AACvB,qBAAe,QAAQA;AAClB,MAAA8R,MAAA,OAAO,KAAK,KAAK;AAAA,OAXE;AAcpB,0BAAgB,wBAAC,SAAuB;AACzB,iCAAQ,gBAAgB,MAAM;AAAA,QAC/C,CAACpV,UAASA,MAAK,QAAQ,KAAK,eAAe;AAAA;AAAA,IAC7C,GAHoB;AAMhB,4BAAkB,wBAAC,SAAuB;AAC9C,iBAAW,QAAQ;AACA;IAAA,GAFG;AAKxB,UAAM,iBAAiB,6BAAM;AAC3B,iBAAW,QAAQ;AACA;IAAA,GAFE;AAKvB,UAAM,iBAAiB,6BAAM;AAC3B,mBAAa,IAAI,WAAW,SAAS,UAAU,UAAU,YAAY,OAAO;AAAA,OADvD;AAIvB,cAAU,MAAM;AACV,2BAAiB,UAAU,QAAQ;AACvC,iBAAW,OAAO;AAAA,KACnB;AAED,gBAAY,MAAM;AACZ,8BAAoB,UAAU,QAAQ;AAAA,KAC3C;AAGD;AAAA,MACE;AAAA,MACA,CAAC,aAAa;AAEV,yBAAa,MAAM,WAAW,KAC9B,aAAa,MAAM,SAAS,SAAS,QACrC;AACmB;QACrB;AAEA,iBAAS,MAAM;AACI;QAAA,CAClB;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAK;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1Tb,MAAM,qBAAqB,6BAA2B;AACrD,UAAE,GAAA6E,OAAM;AACd,QAAM,6BAA6B;AAC5B;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,WAAW,6BAAM;AACT,YAAA5F,SAAQ,2BAA2B,MAAM,SAAS;AACjD,aAAAA,WAAU,MAAM,OAAOA;AAAA,IAChC,GAHW;AAAA,IAIX,OAAO4F,GAAE,mBAAmB;AAAA,IAC5B,SAASA,GAAE,mBAAmB;AAAA,IAC9B,WAAW,QAAQ,eAAe;AAAA,IAClC,MAAM;AAAA;AAEV,GAfkC;;;;;;;ACelC,UAAM,QAAQ;AAId,UAAM,wBAAwB;AAC9B,UAAM,eAAe;AAAA,MAAS,MAC5B,sBAAsB,aAAa,MAAM,KAAK,KAAK,IAAI;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPzD,UAAM,QAAQ;;;;;;;;;;;;;;;;;AClBd,IAAI+T,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,mGAAmG,OAAOA,IAAG,2BAA2B,GAAG,8CAA8C,EAAE,OAAOA,IAAG,0BAA0B,GAAG,oBAAoB,EAAE,OAAOA,IAAG,yBAAyB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,yBAAyB,GAAG,iBAAiB,EAAE,OAAOA,IAAG,yBAAyB,GAAG,QAAQ;AACha,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,gBAAgB;AAClB;AACA,IAAI,qBAAqB,UAAU,OAAO;AAAA,EACxC,MAAM;AAAA,EACN,OAAO8C;AAAAA,EACP,SAAS9C;AACX,CAAC;ACVD,IAAIuF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWN;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,IACP,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIP,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWY;AAAAA,EACX,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,MAAM,gCAASxY,SAAO;AACpB,WAAO;AAAA,MACL,SAAS;AAAA,MACT,cAAc;AAAA,IACpB;AAAA,EACG,GALK;AAAA,EAMN,SAAS,gCAASoB,YAAU;AAC1B,QAAI,QAAQ;AACZ,SAAK,kBAAkB,SAAUvD,UAAS;AACxC,UAAI,CAACA,UAAS;AACZ;AAAA,MACD;AACD,UAAIA,SAAQ,UAAU,MAAM,OAAO;AACjC,cAAM,eAAeA;AACrB,YAAI,MAAM,aAAa,QAAQ;AAC7B,gBAAM,aAAa;QACpB;AACD,cAAM,UAAU;AAAA,MACjB;AAAA,IACP;AACI,SAAK,gBAAgB,WAAY;AAC/B,YAAM,UAAU;AAChB,YAAM,eAAe;AAAA,IAC3B;AACI,yBAAqB,GAAG,WAAW,KAAK,eAAe;AACvD,yBAAqB,GAAG,SAAS,KAAK,aAAa;AAAA,EACpD,GApBQ;AAAA,EAqBT,eAAe,gCAAS0D,kBAAgB;AACtC,yBAAqB,IAAI,WAAW,KAAK,eAAe;AACxD,yBAAqB,IAAI,SAAS,KAAK,aAAa;AAAA,EACrD,GAHc;AAAA,EAIf,SAAS;AAAA,IACP,QAAQ,gCAASivB,UAAS;AACxB,UAAI,KAAK,aAAa,QAAQ;AAC5B,aAAK,aAAa;MACnB;AACD,WAAK,UAAU;AAAA,IAChB,GALO;AAAA,IAMR,QAAQ,gCAAS3vB,UAAS;AACxB,UAAI,KAAK,aAAa,QAAQ;AAC5B,aAAK,aAAa;MACnB;AACD,WAAK,UAAU;AAAA,IAChB,GALO;AAAA,IAMR,QAAQ,gCAAS+lB,UAAS;AACxB,UAAI,KAAK,aAAa,QAAQ;AAC5B,aAAK,aAAa;MACnB;AACD,WAAK,UAAU;AAAA,IAChB,GALO;AAAA,EAMT;AAAA,EACD,UAAU;AAAA,IACR,QAAQ,gCAASzd,UAAS;AACxB,aAAO,KAAK,eAAe,KAAK,aAAa,SAAS;AAAA,IACvD,GAFO;AAAA,IAGR,SAAS,gCAASlH,WAAU;AAC1B,aAAO,KAAK,eAAe,KAAK,aAAa,UAAU;AAAA,IACxD,GAFQ;AAAA,IAGT,aAAa,gCAAS,cAAc;AAClC,aAAO,KAAK,eAAe,KAAK,aAAa,cAAc;AAAA,IAC5D,GAFY;AAAA,IAGb,UAAU,gCAASgG,YAAW;AAC5B,aAAO,KAAK,eAAe,KAAK,aAAa,WAAW;AAAA,IACzD,GAFS;AAAA,IAGV,aAAa,gCAASwoB,eAAc;AAClC,UAAI,KAAK,cAAc;AACrB,YAAI;AACJ,YAAI,eAAe,KAAK;AACxB,eAAO,aAAa,iBAAiB,wBAAwB,aAAa,iBAAiB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,UAAU,KAAK,UAAU,OAAO,OAAO;AAAA,MAC7M;AACD,aAAO,KAAK,UAAU,OAAO,OAAO;AAAA,IACrC,GAPY;AAAA,IAQb,aAAa,gCAASC,eAAc;AAClC,UAAI,KAAK,cAAc;AACrB,YAAI;AACJ,YAAI,eAAe,KAAK;AACxB,eAAO,aAAa,iBAAiB,wBAAwB,aAAa,iBAAiB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,UAAU,KAAK,UAAU,OAAO,OAAO;AAAA,MAC7M;AACD,aAAO,KAAK,UAAU,OAAO,OAAO;AAAA,IACrC,GAPY;AAAA,IAQb,YAAY,gCAASC,cAAa;AAChC,UAAI;AACJ,aAAO,KAAK,eAAe,KAAK,aAAa,cAAc,qBAAqB,KAAK,kBAAkB,QAAQ,uBAAuB,UAAU,mBAAmB,cAAc,KAAK,aAAa,YAAY,OAAO;AAAA,IACvN,GAHW;AAAA,IAIZ,YAAY,gCAASC,cAAa;AAChC,UAAI;AACJ,aAAO,KAAK,eAAe,KAAK,aAAa,cAAc,sBAAsB,KAAK,kBAAkB,QAAQ,wBAAwB,UAAU,oBAAoB,cAAc,KAAK,aAAa,YAAY,OAAO;AAAA,IAC1N,GAHW;AAAA,IAIZ,iBAAiB,gCAAS,kBAAkB;AAC1C,aAAO,KAAK,aAAa,iBAAiB,UAAa,KAAK,aAAa,iBAAiB,WAAW,OAAO;AAAA,IAC7G,GAFgB;AAAA,IAGjB,iBAAiB,gCAAS,kBAAkB;AAC1C,aAAO,KAAK,aAAa,iBAAiB,WAAW,OAAO;AAAA,IAC7D,GAFgB;AAAA,IAGjB,eAAe,gCAAS,gBAAgB;AACtC,aAAO,KAAK,eAAe,KAAK,aAAa,gBAAgB;AAAA,IAC9D,GAFc;AAAA,EAGhB;AAAA,EACD,YAAY;AAAA,IACV,QAAQC;AAAAA,IACR,QAAQvC;AAAAA,EACT;AACH;AAEA,SAASvuB,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAS,GAAI,YAAY,mBAAmB;AAAA,IACjD,SAAS,MAAM;AAAA,IACf,oBAAoB,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC/D,aAAO,MAAM,UAAU;AAAA,IAC7B,IAAQ,SAAS,MAAM;AAAA,IACnB,MAAM;AAAA,IACN,SAAS,eAAe,KAAK,GAAG,MAAM,CAAC;AAAA,IACvC,OAAO;AAAA,IACP,QAAQ,SAAS;AAAA,IACjB,aAAa,SAAS;AAAA,IACtB,UAAU,SAAS;AAAA,IACnB,aAAa,KAAK;AAAA,IAClB,eAAe,SAAS;AAAA,IACxB,WAAW,KAAK;AAAA,IAChB,IAAI,KAAK;AAAA,IACT,UAAU,KAAK;AAAA,EAChB,GAAE,YAAY;AAAA,IACb,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,CAAC,KAAK,OAAO,aAAa,UAAW,GAAE,mBAAmB,UAAU;AAAA,QAC1E,KAAK;AAAA,MACb,GAAS,CAAC,CAAC,KAAK,OAAO,WAAW,UAAW,GAAE,mBAAmB,UAAU;AAAA,QACpE,KAAK;AAAA,MACb,GAAS,CAAC,WAAW,KAAK,QAAQ,QAAQ,CAAE,GAAE,WAAY;AAClD,eAAO,CAAC,KAAK,OAAO,QAAQ,UAAS,GAAI,YAAY,wBAAwB,KAAK,OAAO,IAAI,GAAG;AAAA,UAC9F,KAAK;AAAA,UACL,SAAS,eAAe,KAAK,GAAG,MAAM,CAAC;AAAA,QACxC,GAAE,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,aAAa,QAAQ,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,UACtG,KAAK;AAAA,UACL,SAAS,CAAC,MAAM,aAAa,MAAM,KAAK,GAAG,MAAM,CAAC;AAAA,QACnD,GAAE,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,MACvE,CAAO,GAAGuY,gBAAmB,QAAQ,WAAW;AAAA,QACxC,SAAS,KAAK,GAAG,SAAS;AAAA,MAClC,GAAS,KAAK,IAAI,SAAS,CAAC,GAAG/a,kBAAgB,SAAS,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,UAAS,GAAI,YAAY,wBAAwB,KAAK,OAAO,OAAO,GAAG;AAAA,QAC/I,KAAK;AAAA,QACL,SAAS,MAAM;AAAA,MAChB,GAAE,MAAM,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IACrE,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,CAAC,KAAK,OAAO,YAAY;AAAA,IAC1B,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,aAAa;AAAA,QAC3C,SAAS,MAAM;AAAA,QACf,eAAe,UAAU;AAAA,QACzB,gBAAgB,SAAS;AAAA,QACzB,gBAAgB,SAAS;AAAA,MAC1B,EAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,CAAC,KAAK,OAAO,YAAY;AAAA,IACtC,MAAM;AAAA,IACN,IAAI,QAAQ,WAAY;AACtB,UAAI;AACJ,aAAO,CAAC,YAAY,mBAAmB,WAAW;AAAA,QAChD,SAAS,CAAC,KAAK,GAAG,gBAAgB,GAAG,MAAM,aAAa,WAAW;AAAA,QACnE,WAAW,SAAS;AAAA,QACpB,UAAU,KAAK;AAAA,QACf,QAAQ,wBAAwB,MAAM,aAAa,iBAAiB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,SAAS;AAAA,QACvJ,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,iBAAO,SAAS;QAC1B;AAAA,MACA,GAAS,MAAM,aAAa,aAAa;AAAA,QACjC,OAAO,SAAS;AAAA,QAChB,IAAI,KAAK,IAAI,gBAAgB;AAAA,MAC9B,IAAG,YAAY;AAAA,QACd,GAAG;AAAA,MACJ,GAAE,CAAC,SAAS,cAAc,KAAK,OAAO,aAAa;AAAA,QAClD,MAAM;AAAA,QACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,iBAAO,CAAC,WAAW,KAAK,QAAQ,cAAc,CAAE,GAAE,WAAY;AAC5D,mBAAO,CAAC+a,gBAAmB,QAAQ,WAAW;AAAA,cAC5C,SAAS,CAAC,SAAS,YAAY,UAAU,OAAO,CAAC;AAAA,YAClD,GAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,GAAG;AAAA,cACrC,mBAAmB;AAAA,YACjC,CAAa,GAAG,MAAM,EAAE,CAAC;AAAA,UACd,EAAC;AAAA,QACZ,CAAS;AAAA,QACD,KAAK;AAAA,MACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,SAAS,aAAa,YAAY,QAAQ,SAAS,IAAI,CAAC,GAAG,YAAY,mBAAmB,WAAW;AAAA,QAC3H,OAAO,SAAS;AAAA,QAChB,SAAS,CAAC,KAAK,GAAG,gBAAgB,GAAG,MAAM,aAAa,WAAW;AAAA,QACnE,WAAW,SAAS;AAAA,QACpB,UAAU,KAAK;AAAA,QACf,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,iBAAO,SAAS;QAC1B;AAAA,MACA,GAAS,MAAM,aAAa,aAAa;AAAA,QACjC,IAAI,KAAK,IAAI,gBAAgB;AAAA,MAC9B,IAAG,YAAY;AAAA,QACd,GAAG;AAAA,MACJ,GAAE,CAAC,SAAS,cAAc,KAAK,OAAO,aAAa;AAAA,QAClD,MAAM;AAAA,QACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,iBAAO,CAAC,WAAW,KAAK,QAAQ,cAAc,CAAE,GAAE,WAAY;AAC5D,mBAAO,CAACA,gBAAmB,QAAQ,WAAW;AAAA,cAC5C,SAAS,CAAC,SAAS,YAAY,UAAU,OAAO,CAAC;AAAA,YAClD,GAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,GAAG;AAAA,cACrC,mBAAmB;AAAA,YACjC,CAAa,GAAG,MAAM,EAAE,CAAC;AAAA,UACd,EAAC;AAAA,QACZ,CAAS;AAAA,QACD,KAAK;AAAA,MACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,SAAS,SAAS,aAAa,YAAY,IAAI,CAAC,CAAC;AAAA,IAC/E,CAAK;AAAA,IACD,KAAK;AAAA,EACT,IAAM,MAAS,CAAC,GAAG,MAAM,CAAC,WAAW,SAAS,UAAU,eAAe,YAAY,eAAe,iBAAiB,aAAa,oBAAoB,MAAM,UAAU,CAAC;AACrK;AA7GSvY;AA+GT6X,SAAO,SAAS7X;;;;;;;;;;;;;;;;ACxChB,IAAK,qCAAA+wB,sBAAL;AACEA,oBAAA,MAAO;AACPA,oBAAA,WAAY;AACZA,oBAAA,QAAS;AAHNA;AAAA;;;;AAzCL,UAAM,eAAe;AACrB,UAAM,uBAAuB;AAAA,MAAS,MACpC,aAAa,IAAI,qCAAqC;AAAA;AAGlD,wBAAc,IAAI,EAAE;AAC1B,UAAM,cAAc,SAAS,MAAM,YAAY,MAAM,SAAS,CAAC;AACzD,8BAAoB,IAAqB,EAAE;AAC3C,yBAAe,SAAmB,MAAM;AACrC,+BAAkB,kBAAkB,KAAwB;AAAA,KACpE;AACK,yBAAe,wBAAC,UAAkB;AAClC,gBAAM,WAAW,GAAG;AACtB,0BAAkB,QAAQ;AAC1B,QAAAvD,cAAa,QAAQ;AACrB;AAAA,MACF;AACM,yBAAa,MAAM;AACzB,wBAAkB,QAAQ,cAAc,UAAU,OAAO,CAAC,aAAa;AACrE,eAAO,SAAS,KAAK,kBAAkB,EAAE,SAAS,UAAU;AAAA,OAC7D;AACD,eAAS,MAAM;AACb,mBAAW,aAAa,KAAK;AAAA,OAC9B;AAAA,OAZkB;AAerB,UAAM,eAAe;AACrB,UAAM,gBAAgB;AACtB,UAAM,iBAAiB;AACjB,YAAE,GAAAvrB,OAAM;AACR,UAAAurB,gBAAe,IAA6B,EAAE;AACpD,UAAM,EAAE,YAAY,kBAAkB,IAAI,iBAAiBA,aAAY;AAEjE,gCAAsB,wBAAC,aAA6B;AACxD,UAAI,UAAU;AACZ,wBAAgB,cAAc,UAAU;AAAA,UACtC,eAAe,CAAC,eAAe;AAAA,SAChC;AAAA,MACH;AAAA,OAL0B;AActB,8BAAoB,wBAAC,cAA+B;AACjD;AAAA,QAAU;AAAA,QAAW,CAAC,aAC3B,SAAS,IAAI,MAAM,GAAG;AAAA;AAAA,IACxB,GAHwB;AAM1B,UAAM,gBAAgB;AAAA,MAAS,MAC7B,WAAW,kBAAkB,cAAc,kBAAkB,GAAG;AAAA,QAC9D,WAAW;AAAA,OACZ;AAAA;AAGH,UAAM,0BAA0B;AAAA,MAAS,MACvC,UAAU,cAAc,qBAAqB,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC;AAAA;AAG3E,UAAM,oBAAoB;AAAA,MAAS,MACjC,UAAU,cAAc,eAAe,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC;AAAA;AAGrE,UAAMrK,WAAU;AAChB,UAAM,QAAQ;AAER,2BAAiB,wBACrBziB,OACA,SACoC;AAC9B,uBAAWA,MAAK,UAAU,IAAI,CAAC,UAAU,eAAe,OAAO,IAAI,CAAC;AAE1E,YAAM,WAA0BA,MAAK;AAE/B,0BAAc,wBAClBA,QACAxB,OACG;AACH,YAAIwB,OAAK,MAAM;AACb,0BAAgB,aAAa,QAAQ;AAAA,eAChC;AACL,4BAAkBxB,IAAGwB,MAAI;AAAA,QAC3B;AAAA,SARkB;AAWd,sBAAUA,MAAK,OACjB;AAAA,QACE;AAAA,QACA,cAAc,8BACZA,QACA,YACG;AACH,gBAAM,UACJ,SAAS,WACL,SAAS,YAAY,MAAM,cAAc,OAAO,IAChD,cAAc,WAAW,cAAc,OAAO;AAE9C,gCAAgB,eAAe,UAAU,OAAO;AAAA,QACxD,GAVc;AAAA,QAWd,cAAc,SAAS,cACnB,SACA,YAAY;AACJ,gCAAgB,eAAe,QAAQ;AAAA,QAC/C;AAAA,QACJ,kBAAkB,wBAACA,WAA0C;AACpD;AAAA,YACL;AAAA,cACE,OAAOuB,GAAE,UAAU;AAAA,cACnB,MAAM;AAAA,cACN,SAAS,6BAAM;AACb,sBAAM+uB,YAAWtwB,OAAK;AACtB,gCAAgB,eAAeswB,SAAQ;AAAA,cACzC,GAHS;AAAA,YAIX;AAAA;AAAA,QAEJ,GAXkB;AAAA,MAWlB,IAEF,EAAE,YAAY;AAEX;AAAA,QACL,KAAKtwB,MAAK;AAAA,QACV,OAAOA,MAAK;AAAA,QACZ,MAAMA,MAAK;AAAA,QACX,MAAMA,MAAK;AAAA,QACX;AAAA,QACA,GAAG;AAAA;AAAA,IACL,GA5DqB;AA+DjB,0BAAgB,SAAS,OAAO;AAAA,MACpC,CAAC,QAAQ,cAAc,gBAAgB,GAAG,EAAE,GAAG;AAAA,IAC/C;AAEF,UAAM,wBAAwB;AAC9B,cAAU,YAAY;AACpB,YAAM,sBAAsB;IAAc,CAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9SM,MAAM,yBAAyB,6BAA2B;AACzD,UAAE,GAAAuB,OAAM;AACd,QAAM,eAAe;AACrB,QAAM,gBAAgB;AAEf;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,WAAW,6BAAM;AACf,UACE,aAAa,IAAI,qCAAqC,MAAM,WAC5D;AACO;AAAA,MACT;AACA,YAAM5F,SAAQ,cAAc,cAAc,OAAO,SAAS;AACnD,aAAAA,WAAU,MAAM,OAAOA;AAAA,IAChC,GARW;AAAA,IASX,OAAO4F,GAAE,uBAAuB;AAAA,IAChC,SAASA,GAAE,uBAAuB;AAAA,IAClC,WAAW,QAAQgvB,WAAmB;AAAA,IACtC,MAAM;AAAA;AAEV,GAtBsC;ACEzB,2BAAqB,4BAAY,cAAc,MAAM;AAC1D,sBAAc,IAA2B,EAAE;AAC3C,6BAAqB,IAAmB,IAAI;AAE5C,2BAAmB,SAAqC,MAAM;AAEhE,uBAAY,MAAM,KAAK,CAAC,QAAQ,IAAI,OAAO,mBAAmB,KAAK,KACnE;AAAA,GAEH;AAEK,2BAAmB,wBAAC,UAAkB;AAC1C,uBAAmB,QAAQ,mBAAmB,UAAU,QAAQ,OAAO;AAAA,KADhD;AAInB,6BAAqB,wBAAC,QAA6B;AACvD,gBAAY,QAAQ,CAAC,GAAG,YAAY,OAAO,GAAG;AAC9C,sBAAkB,gBAAgB;AAAA,MAChC,IAAI,8BAA8B,IAAI,EAAE;AAAA,MACxC,MAAM,IAAI;AAAA,MACV,OAAO,UAAU,IAAI,KAAK;AAAA,MAC1B,SAAS,IAAI;AAAA,MACb,cAAc;AAAA,MACd,UAAU,6BAAM;AACd,yBAAiB,IAAI,EAAE;AAAA,MACzB,GAFU;AAAA,IAEV,CACD;AAAA,KAXwB;AAcrB,+BAAuB,wBAAClyB,QAAe;AACrC,UAAAzB,SAAQ,YAAY,MAAM,UAAU,CAAC,QAAQ,IAAI,OAAOyB,GAAE;AAChE,QAAIzB,WAAU,IAAI;AACV,kBAAM,YAAY,MAAMA,MAAK;AACnC,UAAI,IAAI,SAAS,YAAY,IAAI,SAAS;AACxC,YAAI,QAAQ;AAAA,MACd;AACA,YAAM,iBAAiB,CAAC,GAAG,YAAY,KAAK;AAC7B,4BAAOA,QAAO,CAAC;AAC9B,kBAAY,QAAQ;AAAA,IACtB;AAAA,KAV2B;AAgB7B,QAAM,0BAA0B,6BAAM;AACpC,uBAAmB,oBAAoB;AACvC,uBAAmB,0BAA0B;AAC7C,uBAAmB,2BAA2B;AAC9C,uBAAmB,wBAAwB;AAAA,KAJb;AAOzB;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;AC5DY,0BAAoB,4BAAY,aAAa,MAAM;AACxD,kBAAU,IAAI,KAAK;AACnB,oBAAY,IAAI,KAAK;AAKrB,oBAAY,IAAI,KAAK;AAE3B,QAAM,QAAQ,SAAuB,MAAM,cAAe;AAC1D,QAAM,gBAAgB,SAAS,MAAM,sBAAuB;AACtD,kBAAU,SAAS,OAAO;AAAA,IAC9B,UAAU,kBAAkB;AAAA,IAC5B,SAAS,kBAAkB;AAAA,EAC3B;AACF,QAAM,aAAa,SAAS,MAAM,mBAAoB;AAChD,kBAAU,SAAS,OAAO;AAAA,IAC9B,UAAU,kBAAkB;AAAA,IAC5B,KAAK,kBAAkB;AAAA,IACvB,KAAK,kBAAkB;AAAA,EACvB;AACF,QAAM,WAAW,SAAS,MAAM,iBAAkB;AAOlD,WAAS,mBAAmB,KAA0B;AACzC,qBAAM,mBAAmB,GAAG;AAAA,EACzC;AAFS;AAST,WAAS,qBAAqByB,KAAY;AAC7B,qBAAM,qBAAqBA,GAAE;AAAA,EAC1C;AAFS;AAST,WAAS,iBAAwC;AAC/C,WAAO,WAAW,MAAM;AAAA,EAC1B;AAFS;AAIF;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,iBAAiB,6BAAM;AACX,wBAAQ,CAAC,UAAU;AAAA,IAC/B,GAFiB;AAAA,IAGjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA;AAEJ,CAAC;AC5ED,IAAIiX,UAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,uFAAuF,OAAOA,IAAG,uBAAuB,GAAG,8IAA8I;AAClR,GAHY;AAIZ,IAAIvE,YAAU;AAAA,EACZ,MAAM;AACR;AACA,IAAI,eAAe,UAAU,OAAO;AAAA,EAClC,MAAM;AAAA,EACN,OAAO8C;AAAAA,EACP,SAAS9C;AACX,CAAC;ACPD,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWiF;AAAAA,EACX,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASC,YAAU;AAC1B,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAI,SAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,SAAS,SAAS;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM,gCAASnY,SAAO;AACpB,WAAO;AAAA,MACL,WAAW;AAAA,IACjB;AAAA,EACG,GAJK;AAAA,EAKN,OAAO;AAAA,IACL,SAAS,gCAAS,QAAQlC,WAAU;AAClC,UAAIA,cAAa,KAAM,MAAK,MAAK;AAAA,UAAQ,MAAK;IAC/C,GAFQ;AAAA,EAGV;AAAA,EACD,SAAS,gCAASsD,YAAU;AAC1B,QAAI,KAAK,SAAS;AAChB,WAAK,MAAK;AAAA,IACX;AAAA,EACF,GAJQ;AAAA,EAKT,SAAS;AAAA,IACP,OAAO,gCAAS,QAAQ;AACtB,UAAI,aAAa;AACjB,UAAI,KAAK,YAAY;AACnB,sBAAc;AACd,aAAK,OAAO,cAAc,OAAO;AAAA,UAC/B,OAAO;AAAA,YACL,UAAU;AAAA,YACV,KAAK;AAAA,YACL,MAAM;AAAA,YACN,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,UACD,SAAS,CAAC,KAAK,cAAc;AAAA,UAC7B,UAAU,KAAK,IAAI,MAAM;AAAA,QACnC,CAAS;AACD,iBAAS,KAAK,YAAY,KAAK,IAAI;AACnC;AACA,iBAAS,cAAc;MAC/B,OAAa;AACL,aAAK,OAAO,cAAc,OAAO;AAAA,UAC/B,OAAO;AAAA,YACL,UAAU;AAAA,YACV,KAAK;AAAA,YACL,MAAM;AAAA,YACN,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,UACD,SAAS,CAAC,KAAK,cAAc;AAAA,UAC7B,UAAU,KAAK,IAAI,MAAM;AAAA,QACnC,CAAS;AACD,aAAK,MAAM,UAAU,YAAY,KAAK,IAAI;AAAA,MAC3C;AACD,UAAI,KAAK,YAAY;AACnB,eAAO,IAAI,SAAS,KAAK,MAAM,KAAK,aAAa,KAAK,UAAU,OAAO,OAAO,KAAK;AAAA,MACpF;AACD,WAAK,YAAY;AACjB,WAAK,MAAM,OAAO;AAAA,IACnB,GArCM;AAAA,IAsCP,SAAS,gCAAS,UAAU;AAC1B,UAAI,QAAQ;AACZ,OAAC,KAAK,cAAc,SAAS,KAAK,MAAM,sBAAsB;AAC9D,UAAI,gBAAgB,KAAK,IAAI,IAAI,GAAG;AAClC,aAAK,KAAK,iBAAiB,gBAAgB,WAAY;AACrD,gBAAM,WAAU;AAAA,QAC1B,CAAS;AAAA,MACT,OAAa;AACL,aAAK,WAAU;AAAA,MAChB;AAAA,IACF,GAVQ;AAAA,IAWT,YAAY,gCAAS,aAAa;AAChC,aAAO,MAAM,KAAK,IAAI;AACtB,UAAI,KAAK,YAAY;AACnB,iBAAS,KAAK,YAAY,KAAK,IAAI;AACnC;MACR,OAAa;AACL,YAAI;AACJ,SAAC,wBAAwB,KAAK,MAAM,eAAe,QAAQ,0BAA0B,UAAU,sBAAsB,YAAY,KAAK,IAAI;AAAA,MAC3I;AACD,WAAK,YAAY;AACjB,WAAK,MAAM,SAAS;AAAA,IACrB,GAXW;AAAA,EAYb;AACH;AAEA,IAAIiX,eAAa,CAAC,WAAW;AAC7B,SAAS,OAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,aAAa,MAAM;AAAA,EACpB,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC,GAAG,IAAIA,YAAU;AAC7E;AANS;AAQT,OAAO,SAAS;ACjIhB,IAAI,qBAAqB,UAAU,OAAO;AAAA,EACxC,MAAM;AACR,CAAC;ACGD,SAASjD,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUN,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIM,UAAQ,CAAC;AAAI;AAArTA;AACT,SAAS,QAAQnW,IAAG,GAAG;AAAE,MAAI+C,KAAI,OAAO,KAAK/C,EAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsBA,EAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUwV,IAAG;AAAE,aAAO,OAAO,yBAAyBxV,IAAGwV,EAAC,EAAE;AAAA,IAAW,CAAE,IAAIzS,GAAE,KAAK,MAAMA,IAAG,CAAC;AAAA,EAAE;AAAG,SAAOA;AAAI;AAAtP;AACT,SAAS,cAAc/C,IAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI+C,KAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,QAAQ,OAAOA,EAAC,GAAG,IAAE,EAAE,QAAQ,SAAUyS,IAAG;AAAEiB,wBAAgBzW,IAAGwV,IAAGzS,GAAEyS,EAAC,CAAC;AAAA,IAAI,KAAI,OAAO,4BAA4B,OAAO,iBAAiBxV,IAAG,OAAO,0BAA0B+C,EAAC,CAAC,IAAI,QAAQ,OAAOA,EAAC,CAAC,EAAE,QAAQ,SAAUyS,IAAG;AAAE,aAAO,eAAexV,IAAGwV,IAAG,OAAO,yBAAyBzS,IAAGyS,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAOxV;AAAI;AAA9a;AACT,SAASyW,kBAAgBzW,IAAG,GAAG+C,IAAG;AAAE,UAAQ,IAAIyT,iBAAe,CAAC,MAAMxW,KAAI,OAAO,eAAeA,IAAG,GAAG,EAAE,OAAO+C,IAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AAAI;AAA3KyW;AACT,SAASD,iBAAezT,IAAG;AAAE,MAAI,IAAI2T,eAAa3T,IAAG,QAAQ;AAAG,SAAO,YAAYoT,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASE,eAAa3T,IAAG,GAAG;AAAE,MAAI,YAAYoT,UAAQpT,EAAC,KAAK,CAACA,GAAG,QAAOA;AAAG,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAAG,MAAI,WAAW/C,IAAG;AAAE,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAAG,QAAI,YAAYoT,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQpT,EAAC;AAAI;AAAnT2T;AACT,IAAI,iBAAiB;AAAA,EACnB,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,UAAU;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,SAAS;AAAA,IACT,eAAe,CAAC,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,IACnE,UAAU,CAAC,UAAU,UAAU,WAAW,aAAa,YAAY,UAAU,UAAU;AAAA,IACvF,eAAe,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,IAC/D,aAAa,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,IACtD,YAAY,CAAC,WAAW,YAAY,SAAS,SAAS,OAAO,QAAQ,QAAQ,UAAU,aAAa,WAAW,YAAY,UAAU;AAAA,IACrI,iBAAiB,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,IACpG,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,cAAc;AAAA,IACd,MAAM;AAAA,MACJ,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,MAAM;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,aAAa;AAAA,MACb,OAAO;AAAA,MACP,UAAU;AAAA,MACV,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,eAAe;AAAA,MACf,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,MACzB,sBAAsB;AAAA,MACtB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,WAAW;AAAA,MACX,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,SAAS;AAAA,MACT,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU;AAAA,MACV,OAAO;AAAA,MACP,aAAa;AAAA,MACb,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,wBAAwB;AAAA,IACtB,MAAM,CAAC,gBAAgB,aAAa,gBAAgB,UAAU,gBAAgB,cAAc,gBAAgB,WAAW,gBAAgB,QAAQ,gBAAgB,UAAU;AAAA,IACzK,SAAS,CAAC,gBAAgB,QAAQ,gBAAgB,YAAY,gBAAgB,WAAW,gBAAgB,uBAAuB,gBAAgB,cAAc,gBAAgB,wBAAwB;AAAA,IACtM,MAAM,CAAC,gBAAgB,SAAS,gBAAgB,aAAa,gBAAgB,aAAa,gBAAgB,UAAU;AAAA,EACrH;AAAA,EACD,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,SAAS;AAAA,EACV;AAAA,EACD,OAAO;AAAA,EACP,UAAU;AAAA,EACV,IAAI;AAAA,EACJ,WAAW;AAAA,IACT,eAAe;AAAA,IACf,YAAY;AAAA,EACb;AAAA,EACD,KAAK;AAAA,IACH,OAAO;AAAA,EACR;AACH;AACA,IAAI,iBAAiB,OAAM;AAC3B,SAAS,cAAc;AACrB,MAAIsb,YAAW,OAAO,cAAc;AACpC,MAAI,CAACA,WAAU;AACb,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC7C;AACD,SAAOA;AACT;AANS;AAOT,SAAS,MAAM/xB,MAAKrB,UAAS;AAC3B,MAAIozB,YAAW;AAAA,IACb,QAAQ,SAASpzB,QAAO;AAAA,EAC5B;AACE,EAAAqB,KAAI,OAAO,iBAAiB,YAAY+xB;AACxC,EAAA/xB,KAAI,QAAQ,gBAAgB+xB,SAAQ;AACpC;AACA,cAAY/xB,MAAK+xB,SAAQ;AACzB,SAAOA;AACT;AATS;AAUT,IAAI,eAAe;AACnB,SAAS,cAAc;AACrBnZ,kBAAa,MAAK;AAClB,eAAa,QAAQ,SAAU,IAAI;AACjC,WAAO,OAAO,QAAQ,OAAO,SAAS,SAAS;EACnD,CAAG;AACD,iBAAe;AACjB;AANS;AAOT,SAAS,YAAY5Y,MAAK+xB,WAAU;AAClC,MAAI,iBAAiB,IAAI,KAAK;AAG9B,MAAI,kBAAkB,gCAASC,mBAAkB;AAE/C,QAAI,CAACxZ,eAAM,kBAAkB,QAAQ,GAAG;AACtC,UAAI,uBAAuB;AAC3B,UAAI,SAAS,wBAAwB,UAAU,oBAAoB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,KAAK,SAAS,MAAM,CAAE,GACjK,YAAY,KAAK,WACjB,WAAW,KAAK;AAClB,UAAI,eAAe;AAAA,QACjB,QAAQ,mBAAmBuZ,UAAS,YAAY,QAAQ,qBAAqB,WAAW,mBAAmB,iBAAiB,SAAS,QAAQ,qBAAqB,SAAS,SAAS,iBAAiB;AAAA,MAC7M;AACM,gBAAU,KAAK,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,KAAK,cAAc;AAAA,QAChG,MAAM;AAAA,MACd,GAAS,YAAY,CAAC;AAChB,gBAAU,KAAK,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,KAAK,cAAc;AAAA,QAC7F,MAAM;AAAA,MACd,GAAS,YAAY,CAAC;AAChB,gBAAU,UAAU,cAAc;AAAA,QAChC,MAAM;AAAA,MACd,GAAS,YAAY,CAAC;AAChBvZ,qBAAM,mBAAmB,QAAQ;AAAA,IAClC;AAAA,EACL,GArBwB;AAsBtBI,kBAAa,GAAG,gBAAgB,SAAU,UAAU;AAClD,QAAI,CAAC,eAAe,OAAO;AACzB,MAAA5Y,KAAI,OAAO,iBAAiB,UAAU,OAAO,QAAQ;AACrD,qBAAe,QAAQ;AAAA,IACxB;AAAA,EACL,CAAG;AAGD,MAAI,oBAAoB,MAAM+xB,UAAS,QAAQ,SAAUnzB,WAAUhB,WAAU;AAC3E,oBAAgB,KAAK,iBAAiB;AAAA,MACpC,UAAUgB;AAAA,MACV,UAAUhB;AAAA,IAChB,CAAK;AAAA,EACL,GAAK;AAAA,IACD,WAAW;AAAA,IACX,MAAM;AAAA,EACV,CAAG;AACD,MAAI,oBAAoB,MAAM,WAAY;AACxC,WAAOm0B,UAAS,OAAO;AAAA,EAC3B,GAAK,SAAUnzB,WAAUhB,WAAU;AAC/B,oBAAgB,KAAK,wBAAwB;AAAA,MAC3C,UAAUgB;AAAA,MACV,UAAUhB;AAAA,IAChB,CAAK;AAAA,EACL,GAAK;AAAA,IACD,WAAW;AAAA,IACX,MAAM;AAAA,EACV,CAAG;AACD,MAAI,mBAAmB,MAAM,WAAY;AACvC,WAAOm0B,UAAS,OAAO;AAAA,EAC3B,GAAK,SAAUnzB,WAAUhB,WAAU;AAC/B,QAAI,CAAC,eAAe,OAAO;AACzB4a,qBAAM,SAAS5Z,SAAQ;AAAA,IACxB;AACD,QAAI,CAACmzB,UAAS,OAAO,UAAU;AAC7B;IACD;AACD,mBAAe,QAAQ;AACvB,oBAAgB,KAAK,uBAAuB;AAAA,MAC1C,UAAUnzB;AAAA,MACV,UAAUhB;AAAA,IAChB,CAAK;AAAA,EACL,GAAK;AAAA,IACD,WAAW;AAAA,IACX,MAAM;AAAA,EACV,CAAG;AACD,MAAI,sBAAsB,MAAM,WAAY;AAC1C,WAAOm0B,UAAS,OAAO;AAAA,EAC3B,GAAK,SAAUnzB,WAAUhB,WAAU;AAC/B,QAAI,CAACgB,aAAYmzB,UAAS,OAAO,OAAO;AACtC;IACD;AACD,oBAAgB,KAAK,0BAA0B;AAAA,MAC7C,UAAUnzB;AAAA,MACV,UAAUhB;AAAA,IAChB,CAAK;AAAA,EACL,GAAK;AAAA,IACD,WAAW;AAAA,IACX,MAAM;AAAA,EACV,CAAG;AACD,eAAa,KAAK,iBAAiB;AACnC,eAAa,KAAK,iBAAiB;AACnC,eAAa,KAAK,gBAAgB;AAClC,eAAa,KAAK,mBAAmB;AACvC;AA1FS;AA2FT,IAAI,WAAW;AAAA,EACb,SAAS,gCAASgI,SAAQ5F,MAAKrB,UAAS;AACtC,QAAI,gBAAgB,UAAU,gBAAgBA,QAAO;AACrD,UAAMqB,MAAK,aAAa;AAAA,EACzB,GAHQ;AAIX;;;;;ACtPA,UAAM,cAAc;AAEpB,UAAM,WAAW;AAEX,uBAAa,SAAS,MAAM;AACzB,uBAAU,QAAQ,QAAQ,SAAS;AAAA,KAC3C;AAED,cAAU,MAAM;AACR,YAAA0H,QAAO,SAAS,cAAc,KAAK;AACzC,aAAO,IAAI,SAASA,OAAM,WAAW,KAAK;AAAA,KAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BD,UAAM,iBAAiB;AACvB,UAAM,YAAY,SAAkB,MAAM,eAAe,OAAO;AAC1D,sBAAY,wBAAC3H,OAAqB;AACtC,qBAAe,YAAYA,GAAE;AAAA,OADb;AAGD,6BAAQ,WAAW,SAAS;AAC5B,6BAAQ,SAAS,SAAS;AAErC,4BAAkB,wBAAC,UAAwB;AACzC,cAAE,OAAW;AACnB,cAAQ,MAAM;AAAA,QACZ,KAAK,kBAAkB;AAAA,QACvB,MAAK,kBAAkB,oBAAoB,OAAO,SAAS;AAE1C,2BAAE,MAAM,QAAQ;AAC/B;AAAA,MACJ;AAAA,OARsB;AAWxB,cAAU,MAAM;AACP,2CAA8B,IAAI,OAAO;AACxC,kBAAI,8BAA8B,OAAO,WAAW;AAE5D,UAAI,cAAc;AACP,kCAAiB,eAAe,eAAe;AAAA,MAC1D;AAAA,KACD;;;;;;;;;;;;;;;;;;AC9CD;AAAA;AAAA;AAAA;AAAA;AAQA,MAAM,YAAY,OAAO,aAAa;AAEtC,SAAS,WAAW,KAAK;AACrB,SAAO,IAAI,cAAc,IAAI,OAAO,WAAW,MAAM;AACzD;AAFS;AAGT,MAAM,SAAS,OAAO;AACtB,SAAS,cAAc,IAAI,QAAQ;AAC/B,QAAM,YAAY;AAClB,aAAW,OAAO,QAAQ;AAChB,UAAA7C,SAAQ,OAAO,GAAG;AACd,iBAAG,IAAI,QAAQA,MAAK,IACxBA,OAAM,IAAI,EAAE,IACZ,GAAGA,MAAK;AAAA,EAClB;AACO;AACX;AATS;AAUT,MAAM,OAAO,6BAAM;AAAE,GAAR;AAKb,MAAM,UAAU,MAAM;AAEtB,SAAS,KAAK,KAAK;AAEf,QAAM,OAAO,MAAM,KAAK,SAAS,EAAE,MAAM,CAAC;AAClC,eAAK,MAAM,SAAS,CAAC,wBAAwB,GAAG,EAAE,OAAO,IAAI,CAAC;AAC1E;AAJS;AAyBT,MAAM,UAAU;AAChB,MAAM,eAAe;AACrB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,QAAQ;AACd,MAAM,UAAU;AAehB,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAC7B,MAAM,eAAe;AACrB,MAAM,kBAAkB;AACxB,MAAM,oBAAoB;AAC1B,MAAM,cAAc;AACpB,MAAM,qBAAqB;AAC3B,MAAM,eAAe;AASrB,SAAS,aAAa,MAAM;AACxB,SAAO,UAAU,KAAK,IAAI,EACrB,QAAQ,aAAa,GAAG,EACxB,QAAQ,qBAAqB,GAAG,EAChC,QAAQ,sBAAsB,GAAG;AAC1C;AALS;AAYT,SAAS,WAAW,MAAM;AACtB,SAAO,aAAa,IAAI,EACnB,QAAQ,mBAAmB,GAAG,EAC9B,QAAQ,oBAAoB,GAAG,EAC/B,QAAQ,cAAc,GAAG;AAClC;AALS;AAaT,SAAS,iBAAiB,MAAM;AAC5B,SAAQ,aAAa,IAAI,EAEpB,QAAQ,SAAS,KAAK,EACtB,QAAQ,cAAc,GAAG,EACzB,QAAQ,SAAS,KAAK,EACtB,QAAQ,cAAc,KAAK,EAC3B,QAAQ,iBAAiB,GAAG,EAC5B,QAAQ,mBAAmB,GAAG,EAC9B,QAAQ,oBAAoB,GAAG,EAC/B,QAAQ,cAAc,GAAG;AAClC;AAXS;AAiBT,SAAS,eAAe,MAAM;AAC1B,SAAO,iBAAiB,IAAI,EAAE,QAAQ,UAAU,KAAK;AACzD;AAFS;AAST,SAAS,WAAW,MAAM;AACf,sBAAa,IAAI,EAAE,QAAQ,SAAS,KAAK,EAAE,QAAQ,OAAO,KAAK;AAC1E;AAFS;AAYT,SAAS,YAAY,MAAM;AAChB,iBAAQ,OAAO,KAAK,WAAW,IAAI,EAAE,QAAQ,UAAU,KAAK;AACvE;AAFS;AAUT,SAAS,OAAO,MAAM;AACd;AACO,8BAAmB,KAAK,IAAI;AAAA,WAEhC,KAAK;AAAA,EAEZ;AACA,SAAO,KAAK;AAChB;AARS;AAUT,MAAM,oBAAoB;AAC1B,MAAM,sBAAsB,wBAAC,SAAS,KAAK,QAAQ,mBAAmB,EAAE,GAA5C;AAU5B,SAAS,SAAS+qB,aAAYtW,WAAU,kBAAkB,KAAK;AAC3D,MAAI,MAAM,QAAQ,CAAI,kBAAe,IAAI,OAAO;AAG1C,kBAAUA,UAAS,QAAQ,GAAG;AAChC,kBAAYA,UAAS,QAAQ,GAAG;AAEhC,gBAAU,aAAa,WAAW,GAAG;AACzB;AAAA,EAChB;AACA,MAAI,YAAY,IAAI;AACTA,qBAAS,MAAM,GAAG,SAAS;AACnBA,6BAAS,MAAM,YAAY,GAAG,UAAU,KAAK,UAAUA,UAAS,MAAM;AACrF,YAAQsW,YAAW,YAAY;AAAA,EACnC;AACA,MAAI,UAAU,IAAI;AACd,WAAO,QAAQtW,UAAS,MAAM,GAAG,OAAO;AAExC,WAAOA,UAAS,MAAM,SAASA,UAAS,MAAM;AAAA,EAClD;AAEA,SAAO,oBAAoB,QAAQ,OAAO,OAAOA,WAAU,eAAe;AAEnE;AAAA,IACH,UAAU,QAAQ,gBAAgB,OAAO,eAAe;AAAA,IACxD;AAAA,IACA;AAAA,IACA,MAAM,OAAO,IAAI;AAAA;AAEzB;AA7BS;AAoCT,SAAS,aAAasgB,iBAAgBtgB,WAAU;AAC5C,QAAM,QAAQA,UAAS,QAAQsgB,gBAAetgB,UAAS,KAAK,IAAI;AAChE,SAAOA,UAAS,QAAQ,SAAS,OAAO,SAASA,UAAS,QAAQ;AACtE;AAHS;AAUT,SAAS,UAAU,UAAU,MAAM;AAE3B,OAAC,QAAQ,CAAC,SAAS,YAAc,aAAW,KAAK,aAAa;AACvD;AACX,SAAO,SAAS,MAAM,KAAK,MAAM,KAAK;AAC1C;AALS;AAeT,SAAS,oBAAoBsgB,iBAAgB,GAAG,GAAG;AACzC,qBAAa,EAAE,QAAQ,SAAS;AAChC,qBAAa,EAAE,QAAQ,SAAS;AACtC,SAAQ,aAAa,MACjB,eAAe,cACf,kBAAkB,EAAE,QAAQ,UAAU,GAAG,EAAE,QAAQ,UAAU,CAAC,KAC9D,0BAA0B,EAAE,QAAQ,EAAE,MAAM,KAC5CA,gBAAe,EAAE,KAAK,MAAMA,gBAAe,EAAE,KAAK,KAClD,EAAE,SAAS,EAAE;AACrB;AATS;AAiBT,SAAS,kBAAkB,GAAG,GAAG;AAI7B,UAAQ,EAAE,WAAW,QAAQ,EAAE,WAAW;AAC9C;AALS;AAMT,SAAS,0BAA0B,GAAG,GAAG;AACjC,aAAO,KAAK,CAAC,EAAE,WAAW,OAAO,KAAK,CAAC,EAAE;AAClC;AACX,aAAW,OAAO,GAAG;AACjB,QAAI,CAAC,+BAA+B,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC;AACvC;AAAA,EACf;AACO;AACX;AARS;AAST,SAAS,+BAA+B,GAAG,GAAG;AAC1C,SAAO,QAAQ,CAAC,IACV,kBAAkB,GAAG,CAAC,IACtB,QAAQ,CAAC,IACL,kBAAkB,GAAG,CAAC,IACtB,MAAM;AACpB;AANS;AAcT,SAAS,kBAAkB,GAAG,GAAG;AACtB,iBAAQ,CAAC,IACV,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC/0B,QAAO,MAAMA,WAAU,EAAE,CAAC,CAAC,IAC7D,EAAE,WAAW,KAAK,EAAE,CAAC,MAAM;AACrC;AAJS;AAWT,SAAS,oBAAoB,IAAI,MAAM;AAC/B,SAAG,WAAW,GAAG;AACV;AACX,MAAK,OAAiE;AAClE,SAAK,mFAAmF,EAAE,WAAW,IAAI,4BAA4B,IAAI,IAAI;AACtI;AAAA,EACX;AACA,MAAI,CAAC;AACM;AACL,uBAAe,KAAK,MAAM,GAAG;AAC7B,qBAAa,GAAG,MAAM,GAAG;AAC/B,QAAM,gBAAgB,WAAW,WAAW,SAAS,CAAC;AAGlD,wBAAkB,QAAQ,kBAAkB,KAAK;AACjD,eAAW,KAAK,EAAE;AAAA,EACtB;AACI,MAAA6L,YAAW,aAAa,SAAS;AACjC;AACA;AACJ,OAAK,aAAa,GAAG,aAAa,WAAW,QAAQ,cAAc;AAC/D,cAAU,WAAW,UAAU;AAE/B,QAAI,YAAY;AACZ;AAEJ,QAAI,YAAY,MAAM;AAElB,UAAIA,YAAW;AACX,QAAAA;AAAA,IAER;AAGI;AAAA,EACR;AACA,SAAQ,aAAa,MAAM,GAAGA,SAAQ,EAAE,KAAK,GAAG,IAC5C,MACA,WAAW,MAAM,UAAU,EAAE,KAAK,GAAG;AAC7C;AAvCS;AAuDT,MAAM,4BAA4B;AAAA,EAC9B,MAAM;AAAA;AAAA,EAEN,MAAM;AAAA,EACN,QAAQ,CAAC;AAAA,EACT,OAAO,CAAC;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS,CAAC;AAAA,EACV,MAAM,CAAC;AAAA,EACP,gBAAgB;AACpB;AAEA,IAAI;AAAA,CACH,SAAUmpB,iBAAgB;AACvBA,kBAAe,KAAK,IAAI;AACxBA,kBAAe,MAAM,IAAI;AAC7B,GAAG,mBAAmB,iBAAiB,CAAG;AAC1C,IAAI;AAAA,CACH,SAAUC,sBAAqB;AAC5BA,uBAAoB,MAAM,IAAI;AAC9BA,uBAAoB,SAAS,IAAI;AACjCA,uBAAoB,SAAS,IAAI;AACrC,GAAG,wBAAwB,sBAAsB,CAAG;AAIpD,MAAM,QAAQ;AAQd,SAAS,cAAc,MAAM;AACzB,MAAI,CAAC,MAAM;AACP,QAAI,WAAW;AAEL,qBAAS,SAAS,cAAc,MAAM;AAC5C,aAAQ,UAAU,OAAO,aAAa,MAAM,KAAM;AAE3C,kBAAK,QAAQ,mBAAmB,EAAE;AAAA,WAExC;AACM;AAAA,IACX;AAAA,EACJ;AAIA,MAAI,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM;AAC/B,WAAO,MAAM;AAGjB,SAAO,oBAAoB,IAAI;AACnC;AArBS;AAuBT,MAAM,iBAAiB;AACvB,SAAS,WAAW,MAAMxgB,WAAU;AAChC,SAAO,KAAK,QAAQ,gBAAgB,GAAG,IAAIA;AAC/C;AAFS;AAIT,SAAS,mBAAmB,IAAI,QAAQ;AAC9B,kBAAU,SAAS,gBAAgB,sBAAsB;AACzD,iBAAS,GAAG;AACX;AAAA,IACH,UAAU,OAAO;AAAA,IACjB,MAAM,OAAO,OAAO,QAAQ,QAAQ,OAAO,QAAQ;AAAA,IACnD,KAAK,OAAO,MAAM,QAAQ,OAAO,OAAO,OAAO;AAAA;AAEvD;AARS;AAST,MAAM,wBAAwB,8BAAO;AAAA,EACjC,MAAM,OAAO;AAAA,EACb,KAAK,OAAO;AAChB,IAH8B;AAI9B,SAAS,iBAAiB5I,WAAU;AAC5B;AACJ,MAAI,QAAQA,WAAU;AAClB,UAAM,aAAaA,UAAS;AAC5B,UAAM,eAAe,OAAO,eAAe,YAAY,WAAW,WAAW,GAAG;AAsBhF,QAAK,OAA2E;AACxE,WAAC,gBAAgB,CAAC,SAAS,eAAeA,UAAS,GAAG,MAAM,CAAC,CAAC,GAAG;AAC7D;AACA,gBAAM,UAAU,SAAS,cAAcA,UAAS,EAAE;AAClD,cAAI,gBAAgB,SAAS;AACzB,iBAAK,iBAAiBA,UAAS,EAAE,sDAAsDA,UAAS,EAAE,iCAAiC;AAEnI;AAAA,UACJ;AAAA,iBAEG,KAAK;AACH,gCAAiBA,UAAS,EAAE,4QAA4Q;AAE7S;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AACA,UAAM,KAAK,OAAO,eAAe,WAC3B,eACI,SAAS,eAAe,WAAW,MAAM,CAAC,CAAC,IAC3C,SAAS,cAAc,UAAU,IACrC;AACN,QAAI,CAAC,IAAI;AAGL;AAAA,IACJ;AACkB,yCAAmB,IAAIA,SAAQ;AAAA,SAEhD;AACiB,sBAAAA;AAAA,EACtB;AACI,0BAAoB,SAAS,gBAAgB;AAC7C,WAAO,SAAS,eAAe;AAAA,OAC9B;AACD,WAAO,SAAS,gBAAgB,QAAQ,OAAO,gBAAgB,OAAO,OAAO,SAAS,gBAAgB,OAAO,OAAO,gBAAgB,MAAM,OAAO,OAAO;AAAA,EAC5J;AACJ;AA/DS;AAgET,SAAS,aAAa,MAAMia,QAAO;AAC/B,QAAMja,YAAW,QAAQ,QAAQ,QAAQ,MAAM,WAAWia,SAAQ;AAClE,SAAOja,YAAW;AACtB;AAHS;AAIT,MAAM,sCAAsB;AAC5B,SAAS,mBAAmB,KAAK,gBAAgB;AAC7B,sBAAI,KAAK,cAAc;AAC3C;AAFS;AAGT,SAAS,uBAAuB,KAAK;AAC3B,iBAAS,gBAAgB,IAAI,GAAG;AAEtC,kBAAgB,OAAO,GAAG;AACnB;AACX;AALS;AAsBT,IAAI,qBAAqB,6BAAM,SAAS,WAAW,OAAO,SAAS,MAA1C;AAMzB,SAAS,sBAAsB,MAAM4I,WAAU;AAC3C,QAAM,EAAE,UAAU,QAAA2c,SAAQ,SAAS3c;AAE7B,kBAAU,KAAK,QAAQ,GAAG;AAChC,MAAI,UAAU,IAAI;AACd,QAAI,WAAW,KAAK,SAAS,KAAK,MAAM,OAAO,CAAC,IAC1C,KAAK,MAAM,OAAO,EAAE,SACpB;AACF,uBAAe,KAAK,MAAM,QAAQ;AAElC,qBAAa,CAAC,MAAM;AACpB,qBAAe,MAAM;AAClB,qBAAU,cAAc,EAAE;AAAA,EACrC;AACM,eAAO,UAAU,UAAU,IAAI;AACrC,SAAO,OAAO2c,UAAS;AAC3B;AAhBS;AAiBT,SAAS,oBAAoB,MAAM,cAAc,iBAAiB,SAAS;AACvE,MAAI,YAAY;AAChB,MAAI,YAAY;AAGhB,MAAI,aAAa;AACjB,QAAM,kBAAkB,wBAAC,EAAE,YAAa;AAC9B,eAAK,sBAAsB,MAAM,QAAQ;AAC/C,UAAM,OAAO,gBAAgB;AAC7B,UAAM,YAAY,aAAa;AAC/B,QAAItL,SAAQ;AACZ,QAAI,OAAO;AACP,sBAAgB,QAAQ;AACxB,mBAAa,QAAQ;AAEjB,wBAAc,eAAe,MAAM;AACtB;AACb;AAAA,MACJ;AACA,MAAAA,SAAQ,YAAY,MAAM,WAAW,UAAU,WAAW;AAAA,WAEzD;AACD,cAAQ,EAAE;AAAA,IACd;AAMA,cAAU,QAAQ,CAAY;AACjB,+BAAgB,OAAO,MAAM;AAAA,QAClC,OAAAA;AAAA,QACA,MAAM,eAAe;AAAA,QACrB,WAAWA,SACLA,SAAQ,IACJ,oBAAoB,UACpB,oBAAoB,OACxB,oBAAoB;AAAA,OAC7B;AAAA,KACJ;AAAA,KAjCmB;AAmCxB,WAAS,iBAAiB;AACtB,iBAAa,gBAAgB;AAAA,EACjC;AAFS;AAGT,WAAS,OAAO,UAAU;AAEtB,cAAU,KAAK,QAAQ;AACvB,UAAM,WAAW,6BAAM;AACb,YAAA7kB,SAAQ,UAAU,QAAQ,QAAQ;AACxC,UAAIA,SAAQ;AACE,yBAAOA,QAAO,CAAC;AAAA,OAHhB;AAKjB,cAAU,KAAK,QAAQ;AAChB;AAAA,EACX;AAVS;AAWT,WAAS,uBAAuB;AACtB,YAAE,SAAA8S,SAAY;AACpB,QAAI,CAACA,SAAQ;AACT;AACJA,aAAQ,aAAa,OAAO,IAAIA,SAAQ,OAAO,EAAE,QAAQ,yBAAyB,GAAG,EAAE;AAAA,EAC3F;AALS;AAMT,WAAS,UAAU;AACf,eAAW,YAAY;AACV;AACb,gBAAY;AACL,+BAAoB,YAAY,eAAe;AAC/C,+BAAoB,gBAAgB,oBAAoB;AAAA,EACnE;AANS;AAQF,0BAAiB,YAAY,eAAe;AAG5C,0BAAiB,gBAAgB,sBAAsB;AAAA,IAC1D,SAAS;AAAA,GACZ;AACM;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA;AAER;AAhFS;AAoFT,SAAS,WAAW,MAAM,SAAS,SAAS,WAAW,OAAO,gBAAgB,OAAO;AAC1E;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,OAAO,QAAQ;AAAA,IACzB,QAAQ,gBAAgB,0BAA0B;AAAA;AAE1D;AATS;AAUT,SAAS,0BAA0B,MAAM;AACrC,QAAM,EAAE,SAAAA,UAAS,UAAAU,cAAa;AAE9B,QAAM,kBAAkB;AAAA,IACpB,OAAO,sBAAsB,MAAMA,SAAQ;AAAA;AAE/C,QAAM,eAAe,EAAE,OAAOV,SAAQ,MAAM;AAExC,OAAC,aAAa,OAAO;AACrB,mBAAe,gBAAgB,OAAO;AAAA,MAClC,MAAM;AAAA,MACN,SAAS,gBAAgB;AAAA,MACzB,SAAS;AAAA;AAAA,MAET,UAAUA,SAAQ,SAAS;AAAA,MAC3B,UAAU;AAAA;AAAA;AAAA,MAGV,QAAQ;AAAA,OACT,IAAI;AAAA,EACX;AACS,0BAAe,IAAI,OAAOmhB,UAAS;AAUlC,sBAAY,KAAK,QAAQ,GAAG;AAClC,UAAM,MAAM,YAAY,MACjBzgB,UAAS,QAAQ,SAAS,cAAc,MAAM,IAC3C,OACA,KAAK,MAAM,SAAS,KAAK,KAC7B,uBAAuB,OAAO;AAChC;AAGAV,eAAQmhB,WAAU,iBAAiB,WAAW,EAAE,OAAO,IAAI,GAAG;AAC9D,mBAAa,QAAQ;AAAA,aAElB,KAAK;AACR,UAAK,OAAwC;AACzC,aAAK,iCAAiC,GAAG;AAAA,aAExC;AACD,gBAAQ,MAAM,GAAG;AAAA,MACrB;AAEAzgB,gBAASygB,WAAU,YAAY,QAAQ,EAAE,GAAG;AAAA,IAChD;AAAA,EACJ;AAhCS;AAiCA,mBAAQ,IAAItxB,QAAM;AACvB,UAAM,QAAQ,OAAO,CAAC,GAAGmQ,SAAQ,OAAO;AAAA,MAAW,aAAa,MAAM;AAAA;AAAA,MAEtE;AAAA,MAAI,aAAa,MAAM;AAAA,MAAS;AAAA,OAAOnQ,QAAM,EAAE,UAAU,aAAa,MAAM,UAAU;AACvE,uBAAI,OAAO,IAAI;AAC9B,oBAAgB,QAAQ;AAAA,EAC5B;AANS;AAOA,gBAAK,IAAIA,QAAM;AAGpB,UAAM,eAAe;AAAA,MAAO,CAAC;AAAA;AAAA;AAAA;AAAA,MAI7B,aAAa;AAAA,MAAOmQ,SAAQ;AAAA,MAAO;AAAA,QAC/B,SAAS;AAAA,QACT,QAAQ,sBAAsB;AAAA,MAClC;AAAA;AACA,QAAK,OAA0D;AACtD;AAAA;AAAA;AAAA;AAAA,kGAEkG;AAAA,IAC3G;AACe,gCAAa,SAAS,cAAc,IAAI;AACvD,UAAM,QAAQ,OAAO,IAAI,WAAW,gBAAgB,OAAO,IAAI,IAAI,GAAG,EAAE,UAAU,aAAa,WAAW,KAAKnQ,MAAI;AACpG,uBAAI,OAAO,KAAK;AAC/B,oBAAgB,QAAQ;AAAA,EAC5B;AApBS;AAqBF;AAAA,IACH,UAAU;AAAA,IACV,OAAO;AAAA,IACP;AAAA,IACA;AAAA;AAER;AAxFS;AA8FT,SAAS,iBAAiB,MAAM;AAC5B,SAAO,cAAc,IAAI;AACnB,4BAAoB,0BAA0B,IAAI;AAClD,2BAAmB,oBAAoB,MAAM,kBAAkB,OAAO,kBAAkB,UAAU,kBAAkB,OAAO;AACxH,cAAGkiB,QAAO,mBAAmB,MAAM;AACxC,QAAI,CAAC;AACD,uBAAiB,eAAe;AACpC,YAAQ,GAAGA,MAAK;AAAA,EACpB;AAJS;AAKT,QAAM,gBAAgB,OAAO;AAAA;AAAA,IAEzB,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,YAAY,WAAW,KAAK,MAAM,IAAI;AAAA,KACvC,mBAAmB,gBAAgB;AAC/B,wBAAe,eAAe,YAAY;AAAA,IAC7C,YAAY;AAAA,IACZ,KAAK,6BAAM,kBAAkB,SAAS,OAAjC;AAAA,EAAiC,CACzC;AACM,wBAAe,eAAe,SAAS;AAAA,IAC1C,YAAY;AAAA,IACZ,KAAK,6BAAM,kBAAkB,MAAM,OAA9B;AAAA,EAA8B,CACtC;AACM;AACX;AAzBS;AAkCT,SAAS,oBAAoB,OAAO,IAAI;AACpC,MAAI,YAAY;AACZ,MAAAhS,SAAQ,CAAC,KAAK;AAClB,MAAIjI,YAAW;AACf,SAAO,cAAc,IAAI;AACzB,WAAS,YAAY4I,WAAU;AAC3B,IAAA5I;AACI,QAAAA,cAAaiI,OAAM,QAAQ;AAE3B,MAAAA,OAAM,OAAOjI,SAAQ;AAAA,IACzB;AACA,IAAAiI,OAAM,KAAKW,SAAQ;AAAA,EACvB;AAPS;AAQT,WAAS,iBAAiB,IAAI,MAAM,EAAE,WAAW,OAAAqR,UAAS;AACtD,UAAM,OAAO;AAAA,MACT;AAAA,MACA,OAAAA;AAAA,MACA,MAAM,eAAe;AAAA;AAEzB,eAAW,YAAY,WAAW;AACrB,mBAAI,MAAM,IAAI;AAAA,IAC3B;AAAA,EACJ;AATS;AAUT,QAAM,gBAAgB;AAAA;AAAA,IAElB,UAAU;AAAA;AAAA,IAEV,OAAO,CAAC;AAAA,IACR;AAAA,IACA,YAAY,WAAW,KAAK,MAAM,IAAI;AAAA,IACtC,QAAQ,IAAI;AAEF,MAAAhS,OAAA,OAAOjI,aAAY,CAAC;AAC1B,kBAAY,EAAE;AAAA,IAClB;AAAA,IACA,KAAK,IAAIjI,QAAM;AACX,kBAAY,EAAE;AAAA,IAClB;AAAA,IACA,OAAO,UAAU;AACb,gBAAU,KAAK,QAAQ;AACvB,aAAO,MAAM;AACH,cAAA3C,SAAQ,UAAU,QAAQ,QAAQ;AACxC,YAAIA,SAAQ;AACE,2BAAOA,QAAO,CAAC;AAAA;AAAA,IAErC;AAAA,IACA,UAAU;AACN,kBAAY;AACZ,MAAA6S,SAAQ,CAAC,KAAK;AACH,MAAAjI,YAAA;AAAA,IACf;AAAA,IACA,GAAGia,QAAO,gBAAgB,MAAM;AAC5B,YAAM,OAAO,KAAK;AACZ;AAAA;AAAA;AAAA;AAAA,QAINA,SAAQ,IAAI,oBAAoB,OAAO,oBAAoB;AAAA;AAChD,MAAAja,YAAA,KAAK,IAAI,GAAG,KAAK,IAAIA,YAAWia,QAAOhS,OAAM,SAAS,CAAC,CAAC;AACnE,UAAI,eAAe;AACE,8BAAK,UAAU,MAAM;AAAA,UAClC;AAAA,UACA,OAAAgS;AAAA,SACH;AAAA,MACL;AAAA,IACJ;AAAA;AAEG,wBAAe,eAAe,YAAY;AAAA,IAC7C,YAAY;AAAA,IACZ,KAAK,6BAAMhS,OAAMjI,SAAQ,GAApB;AAAA,EAAoB,CAC5B;AACM;AACX;AAxES;AAkGT,SAAS,qBAAqB,MAAM;AAIhC,SAAO,SAAS,OAAO,QAAQ,SAAS,WAAW,SAAS,SAAS;AAEjE,OAAC,KAAK,SAAS,GAAG;AACV;AACZ,MAAK,OAAuF;AACnF;AAAA,GAAsC,IAAI,gBAAgB,KAAK,QAAQ,QAAQ,GAAG,CAAC,IAAI;AAAA,EAChG;AACA,SAAO,iBAAiB,IAAI;AAChC;AAZS;AAcT,SAAS,gBAAgB,OAAO;AAC5B,SAAO,OAAO,UAAU,YAAa,SAAS,OAAO,UAAU;AACnE;AAFS;AAGT,SAAS,YAAY,MAAM;AACvB,SAAO,OAAO,SAAS,YAAY,OAAO,SAAS;AACvD;AAFS;AAIT,MAAM,0BAA0B,OAAQ,QAAyC,uBAAuB,EAAE;AAK1G,IAAI;AAAA,CACH,SAAUspB,wBAAuB;AAK9BA,yBAAsBA,uBAAsB,SAAS,IAAI,CAAC,IAAI;AAK9DA,yBAAsBA,uBAAsB,WAAW,IAAI,CAAC,IAAI;AAKhEA,yBAAsBA,uBAAsB,YAAY,IAAI,EAAE,IAAI;AACtE,GAAG,0BAA0B,wBAAwB,CAAG;AAExD,MAAM,oBAAoB;AAAA,EACtB;AAAA,IAAC;AAAA;AAAA,EAAsC,IAAE,UAAA1gB,WAAU,mBAAmB;AAC3D;AAAA,GAAkB,KAAK,UAAUA,SAAQ,CAAC,GAAG,kBAC9C,uBAAuB,KAAK,UAAU,eAAe,IACrD,EAAE;AAAA,EACZ;AAAA,EACA;AAAA,IAAC;AAAA;AAAA,IAA8C,EAAE,MAAM,MAAO;AAC1D,WAAO,oBAAoB,KAAK,QAAQ,SAAS,eAAe,EAAE,CAAC;AAAA,EACvE;AAAA,EACA;AAAA,IAAC;AAAA;AAAA,IAAuC,EAAE,MAAM,MAAM;AAClD,WAAO,4BAA4B,KAAK,QAAQ,SAAS,GAAG,QAAQ;AAAA,EACxE;AAAA,EACA;AAAA,IAAC;AAAA;AAAA,IAAyC,EAAE,MAAM,MAAM;AACpD,WAAO,8BAA8B,KAAK,QAAQ,SAAS,GAAG,QAAQ;AAAA,EAC1E;AAAA,EACA;AAAA,IAAC;AAAA;AAAA,IAA2C,EAAE,MAAM,MAAM;AAC/C,iEAAsD,KAAK,QAAQ;AAAA,EAC9E;AACJ;AAOA,SAAS,kBAAkB,MAAM,QAAQ;AAErC,MAA+C,OAAO;AAC3C,kBAAO,IAAI,MAAM,kBAAkB,IAAI,EAAE,MAAM,CAAC,GAAG;AAAA,MACtD;AAAA,MACA,CAAC,uBAAuB,GAAG;AAAA,OAC5B,MAAM;AAAA,SAER;AACM,kBAAO,IAAI,SAAS;AAAA,MACvB;AAAA,MACA,CAAC,uBAAuB,GAAG;AAAA,OAC5B,MAAM;AAAA,EACb;AACJ;AAdS;AAeT,SAAS,oBAAoB,OAAO,MAAM;AAC9B,0BAAiB,SACrB,2BAA2B,UAC1B,QAAQ,QAAQ,CAAC,EAAE,MAAM,OAAO;AACzC;AAJS;AAKT,MAAM,kBAAkB,CAAC,UAAU,SAAS,MAAM;AAClD,SAAS,eAAe,IAAI;AACxB,MAAI,OAAO,OAAO;AACP;AACX,MAAI,GAAG,QAAQ;AACX,WAAO,GAAG;AACd,QAAMA,YAAW;AACjB,aAAW,OAAO,iBAAiB;AAC/B,QAAI,OAAO;AACPA,gBAAS,GAAG,IAAI,GAAG,GAAG;AAAA,EAC9B;AACA,SAAO,KAAK,UAAUA,WAAU,MAAM,CAAC;AAC3C;AAXS;AAcT,MAAM,qBAAqB;AAC3B,MAAM,2BAA2B;AAAA,EAC7B,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,KAAK;AACT;AAEA,MAAM,iBAAiB;AAQvB,SAAS,eAAe,UAAU,cAAc;AAC5C,QAAMhT,WAAU,OAAO,CAAC,GAAG,0BAA0B,YAAY;AAEjE,QAAM,QAAQ;AAEV,gBAAUA,SAAQ,QAAQ,MAAM;AAEpC,QAAMc,QAAO;AACb,aAAW,WAAW,UAAU;AAE5B,UAAM,gBAAgB,QAAQ,SAAS,KAAK;AAAA,MAAC;AAAA;AAAA;AAEzC,QAAAd,SAAQ,UAAU,CAAC,QAAQ;AAChB;AACf,aAAS,aAAa,GAAG,aAAa,QAAQ,QAAQ,cAAc;AAC1D,oBAAQ,QAAQ,UAAU;AAEhC,UAAI,kBAAkB,MACjBA,SAAQ,YAAY,OAA0C;AAC/D,gBAAM,SAAS,GAA0B;AAEzC,YAAI,CAAC;AACU;AACf,mBAAW,MAAM,MAAM,QAAQ,gBAAgB,MAAM;AAClC;AAAA,iBAEd,MAAM,SAAS,GAAyB;AAC7C,cAAM,EAAE,OAAAzB,QAAO,YAAY,UAAU,WAAW;AAChD,QAAAuC,MAAK,KAAK;AAAA,UACN,MAAMvC;AAAA,UACN;AAAA,UACA;AAAA,SACH;AACKo1B,oBAAK,SAAS,SAAS;AAE7B,YAAIA,QAAO,oBAAoB;AACR;AAEf;AACI,uBAAO,IAAIA,GAAE,GAAG;AAAA,mBAEjB,KAAK;AACF,sBAAI,MAAM,oCAAoCp1B,MAAK,MAAMo1B,GAAE,QAC7D,IAAI,OAAO;AAAA,UACnB;AAAA,QACJ;AAEI,yBAAa,aAAa,OAAOA,GAAE,WAAWA,GAAE,SAAS,IAAIA,GAAE;AAEnE,YAAI,CAAC;AACD;AAAA;AAAA,UAGI,YAAY,QAAQ,SAAS,IACvB,OAAO,UAAU,MACjB,MAAM;AAChB;AACc;AACP;AACQ;AACf;AACmB;AACnB;AACmB;AACvB,YAAIA,QAAO;AACY;AAAA,MAC3B;AACA,oBAAc,KAAK,eAAe;AAAA,IACtC;AAGA,UAAM,KAAK,aAAa;AAAA,EAC5B;AAEI,MAAA3zB,SAAQ,UAAUA,SAAQ,KAAK;AACzB,cAAI,MAAM,SAAS;AACzB,UAAM,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK;AAAA,EACrC;AAEA,MAAI,CAACA,SAAQ;AACE;AACf,MAAIA,SAAQ;AACG;AAAA,WAENA,SAAQ;AACF;AACf,QAAM,KAAK,IAAI,OAAO,SAASA,SAAQ,YAAY,KAAK,GAAG;AAC3D,WAASmT,OAAM,MAAM;AACX,kBAAQ,KAAK,MAAM,EAAE;AAC3B,UAAM,SAAS;AACf,QAAI,CAAC;AACM;AACX,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AAC7B,YAAA5U,SAAQ,MAAM,CAAC,KAAK;AACpB,kBAAMuC,MAAK,IAAI,CAAC;AACf,iBAAI,IAAI,IAAIvC,UAAS,IAAI,aAAaA,OAAM,MAAM,GAAG,IAAIA;AAAA,IACpE;AACO;AAAA,EACX;AAXS,SAAA4U,QAAA;AAYT,WAASygB,WAAU,QAAQ;AACvB,QAAI,OAAO;AAEX,QAAI,uBAAuB;AAC3B,eAAW,WAAW,UAAU;AAC5B,UAAI,CAAC,wBAAwB,CAAC,KAAK,SAAS,GAAG;AACnC;AACW;AACvB,iBAAW,SAAS,SAAS;AACrB,kBAAM,SAAS,GAA0B;AACzC,kBAAQ,MAAM;AAAA,mBAET,MAAM,SAAS,GAAyB;AAC7C,gBAAM,EAAE,OAAAr1B,QAAO,YAAY,aAAa;AACxC,gBAAM,QAAQA,UAAS,SAAS,OAAOA,MAAK,IAAI;AAChD,cAAI,QAAQ,KAAK,KAAK,CAAC,YAAY;AAC/B,kBAAM,IAAI,MAAM,mBAAmBA,MAAK,2DAA2D;AAAA,UACvG;AACA,gBAAM,OAAO,QAAQ,KAAK,IACpB,MAAM,KAAK,GAAG,IACd;AACN,cAAI,CAAC,MAAM;AACP,gBAAI,UAAU;AAEN,0BAAQ,SAAS,GAAG;AAEhB,yBAAK,SAAS,GAAG;AACV,8BAAK,MAAM,GAAG,EAAE;AAAA;AAGA;AAAA,cAC/B;AAAA,YACJ;AAEI,oBAAM,IAAI,MAAM,2BAA2BA,MAAK,GAAG;AAAA,UAC3D;AACQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,QAAQ;AAAA,EACnB;AA1CS,SAAAq1B,YAAA;AA2CF;AAAA,IACH;AAAA,IACA;AAAA,IACA,MAAA9yB;AAAA,IACA,OAAAqS;AAAA,IACA,WAAAygB;AAAA;AAER;AArJS;AA+JT,SAAS,kBAAkB,GAAG,GAAG;AAC7B,MAAI,IAAI;AACR,SAAO,IAAI,EAAE,UAAU,IAAI,EAAE,QAAQ;AACjC,UAAMzyB,QAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AAEnB,QAAAA;AACO,aAAAA;AACX;AAAA,EACJ;AAGI,QAAE,SAAS,EAAE,QAAQ;AACd,aAAE,WAAW,KAAK,EAAE,CAAC,MAAM,KAA4B,KACxD,KACA;AAAA,EAED,aAAE,SAAS,EAAE,QAAQ;AACnB,aAAE,WAAW,KAAK,EAAE,CAAC,MAAM,KAA4B,KACxD,IACA;AAAA,EACV;AACO;AACX;AAtBS;AA8BT,SAAS,uBAAuB,GAAG,GAAG;AAClC,MAAI,IAAI;AACR,QAAM,SAAS,EAAE;AACjB,QAAM,SAAS,EAAE;AACjB,SAAO,IAAI,OAAO,UAAU,IAAI,OAAO,QAAQ;AAC3C,UAAM,OAAO,kBAAkB,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AAE/C;AACO;AACX;AAAA,EACJ;AACA,MAAI,KAAK,IAAI,OAAO,SAAS,OAAO,MAAM,MAAM,GAAG;AAC/C,QAAI,oBAAoB,MAAM;AACnB;AACX,QAAI,oBAAoB,MAAM;AACnB;AAAA,EACf;AAEO,gBAAO,SAAS,OAAO;AAOlC;AAzBS;AAgCT,SAAS,oBAAoB,OAAO;AAChC,QAAM,OAAO,MAAM,MAAM,SAAS,CAAC;AACnC,SAAO,MAAM,SAAS,KAAK,KAAK,KAAK,SAAS,CAAC,IAAI;AACvD;AAHS;AAKT,MAAM,aAAa;AAAA,EACf,MAAM;AAAA,EACN,OAAO;AACX;AACA,MAAM,iBAAiB;AAIvB,SAAS,aAAa,MAAM;AACxB,MAAI,CAAC;AACM,YAAC,CAAE;AACd,MAAI,SAAS;AACF,YAAC,CAAC,UAAU,CAAC;AACxB,MAAI,CAAC,KAAK,WAAW,GAAG,GAAG;AACjB,cAAI,MAAO,QACX,yCAAyC,IAAI,iBAAiB,IAAI,OAClE,iBAAiB,IAAI,GAAG;AAAA,EAClC;AAEA,WAAS,MAAMiD,UAAS;AACd,cAAI,MAAM,QAAQ,KAAK,MAAM6I,OAAM,MAAM7I,QAAO,EAAE;AAAA,EAC5D;AAFS;AAGT,MAAI,QAAQ;AACZ,MAAI,gBAAgB;AACpB,QAAM,SAAS;AAGX;AACJ,WAAS,kBAAkB;AACnB;AACA,aAAO,KAAK,OAAO;AACvB,cAAU;AAAA,EACd;AAJS;AAMT,MAAI,IAAI;AAEJ;AAEJ,MAAI6I,UAAS;AAEb,MAAI,WAAW;AACf,WAAS,gBAAgB;AACrB,QAAI,CAACA;AACD;AACJ,QAAI,UAAU,GAA+B;AACzC,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN,OAAOA;AAAA,OACV;AAAA,eAEI,UAAU,KACf,UAAU,KACV,UAAU,GAAuC;AACjD,UAAI,QAAQ,SAAS,MAAM,SAAS,OAAO,SAAS;AAC1C,qCAAuBA,OAAM,8CAA8C;AACrF,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN,OAAOA;AAAA,QACP,QAAQ;AAAA,QACR,YAAY,SAAS,OAAO,SAAS;AAAA,QACrC,UAAU,SAAS,OAAO,SAAS;AAAA,OACtC;AAAA,WAEA;AACD,YAAM,iCAAiC;AAAA,IAC3C;AACS,IAAAA,UAAA;AAAA,EACb;AA1BS;AA2BT,WAAS,kBAAkB;AACb,IAAAA,WAAA;AAAA,EACd;AAFS;AAGF,aAAI,KAAK,QAAQ;AACpB,WAAO,KAAK,GAAG;AACX,iBAAS,QAAQ,UAAU,GAAoC;AAC/C;AACR;AACR;AAAA,IACJ;AACA,YAAQ,OAAO;AAAA,MACX,KAAK;AACD,YAAI,SAAS,KAAK;AACd,cAAIA,SAAQ;AACM;UAClB;AACgB;QAAA,WAEX,SAAS,KAAK;AACL;AACN;AAAA,eAEP;AACe;QACpB;AACA;AAAA,MACJ,KAAK;AACe;AACR;AACR;AAAA,MACJ,KAAK;AACD,YAAI,SAAS,KAAK;AACN;AAAA,QAEH,0BAAe,KAAK,IAAI,GAAG;AAChB;QAAA,OAEf;AACa;AACN;AAER,cAAI,SAAS,OAAO,SAAS,OAAO,SAAS;AACzC;AAAA,QACR;AACA;AAAA,MACJ,KAAK;AAMD,YAAI,SAAS,KAAK;AAEd,cAAI,SAAS,SAAS,SAAS,CAAC,KAAK;AACjC,uBAAW,SAAS,MAAM,GAAG,EAAE,IAAI;AAAA;AAE3B;AAAA,eAEX;AACW;AAAA,QAChB;AACA;AAAA,MACJ,KAAK;AAEa;AACN;AAER,YAAI,SAAS,OAAO,SAAS,OAAO,SAAS;AACzC;AACO;AACX;AAAA,MACJ;AACI,cAAM,eAAe;AACrB;AAAA,IACR;AAAA,EACJ;AACA,MAAI,UAAU;AACJ,iDAAuCA,OAAM,GAAG;AAC5C;AACE;AAET;AACX;AA9IS;AAgJT,SAAS,yBAAyB,QAAQ,QAAQjN,UAAS;AACvD,QAAM,SAAS,eAAe,aAAa,OAAO,IAAI,GAAGA,QAAO;AAEhE,MAAK,OAAwC;AACnC,6CAAmB;AACd,sBAAO,OAAO,MAAM;AACvB,uBAAa,IAAI,IAAI,IAAI;AACzB,aAAK,sCAAsC,IAAI,IAAI,eAAe,OAAO,IAAI,4DAA4D;AAChI,uBAAI,IAAI,IAAI;AAAA,IAC7B;AAAA,EACJ;AACM,kBAAU,OAAO,QAAQ;AAAA,IAC3B;AAAA,IACA;AAAA;AAAA,IAEA,UAAU,CAAC;AAAA,IACX,OAAO,CAAC;AAAA,GACX;AACD,MAAI,QAAQ;AAIR,QAAI,CAAC,QAAQ,OAAO,YAAY,CAAC,OAAO,OAAO;AACpC,sBAAS,KAAK,OAAO;AAAA,EACpC;AACO;AACX;AA1BS;AAmCT,SAAS,oBAAoB,QAAQ,eAAe;AAEhD,QAAM,WAAW;AACX,yCAAiB;AACP,+BAAa,EAAE,QAAQ,OAAO,KAAK,MAAM,WAAW,SAAS,aAAa;AAC1F,WAAS,iBAAiB,MAAM;AACrB,sBAAW,IAAI,IAAI;AAAA,EAC9B;AAFS;AAGA,oBAAS,QAAQ,QAAQ,gBAAgB;AAE9C,UAAM,YAAY,CAAC;AACb,iCAAuB,qBAAqB,MAAM;AACxD,QAAK,OAAwC;AACzC,yCAAmC,sBAAsB,MAAM;AAAA,IACnE;AAEqB,mCAAU,kBAAkB,eAAe;AAC1D,UAAAA,WAAU,aAAa,eAAe,MAAM;AAElD,UAAM,oBAAoB;AAAA,MACtB;AAAA;AAEJ,QAAI,WAAW,QAAQ;AACb,sBAAU,OAAO,OAAO,UAAU,WAAW,CAAC,OAAO,KAAK,IAAI,OAAO;AAC3E,iBAAW,SAAS,SAAS;AACzB,0BAAkB,KAAK,OAAO,IAAI,sBAAsB;AAAA;AAAA;AAAA,UAGpD,YAAY,iBACN,eAAe,OAAO,aACtB,qBAAqB;AAAA,UAC3B,MAAM;AAAA;AAAA,UAEN,SAAS,iBACH,eAAe,SACf;AAAA;AAAA;AAAA,QAGT,EAAC;AAAA,MACN;AAAA,IACJ;AACI;AACA;AACJ,eAAW,oBAAoB,mBAAmB;AACxC,cAAE,KAAS;AAIjB,UAAI,UAAU,KAAK,CAAC,MAAM,KAAK;AACrB,2BAAa,OAAO,OAAO;AACjC,cAAM,kBAAkB,WAAW,WAAW,SAAS,CAAC,MAAM,MAAM,KAAK;AACzE,yBAAiB,OACb,OAAO,OAAO,QAAQ,QAAQ,kBAAkB;AAAA,MACxD;AACA,UAAK,OAAyE;AACpE,kBAAI,MAAM,yKAC6E;AAAA,MACjG;AAEU,yCAAyB,kBAAkB,QAAQA,QAAO;AAC/D;AACD,yCAAiC,SAAS,MAAM;AAGpD,UAAI,gBAAgB;AACD,6BAAM,KAAK,OAAO;AACjC,YAAK,OAAwC;AACzC,0BAAgB,gBAAgB,OAAO;AAAA,QAC3C;AAAA,aAEC;AAED,0BAAkB,mBAAmB;AACrC,YAAI,oBAAoB;AACJ,gCAAM,KAAK,OAAO;AAGtC,YAAI,aAAa,OAAO,QAAQ,CAAC,cAAc,OAAO;AAClD,sBAAY,OAAO,IAAI;AAAA,MAC/B;AAGI,sBAAY,OAAO,GAAG;AACtB,sBAAc,OAAO;AAAA,MACzB;AACA,UAAI,qBAAqB,UAAU;AAC/B,cAAM,WAAW,qBAAqB;AACtC,iBAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AAC7B,4BAAS,CAAC,GAAG,SAAS,kBAAkB,eAAe,SAAS,CAAC,CAAC;AAAA,QAC/E;AAAA,MACJ;AAGA,uBAAiB,kBAAkB;AAAA,IAKvC;AACA,WAAO,kBACD,MAAM;AAEJ,kBAAY,eAAe;AAAA,IAE7B;AAAA,EACV;AAjGS;AAkGT,WAAS,YAAY,YAAY;AACzB,oBAAY,UAAU,GAAG;AACnB,sBAAU,WAAW,IAAI,UAAU;AACzC,UAAI,SAAS;AACT,mBAAW,OAAO,UAAU;AAC5B,iBAAS,OAAO,SAAS,QAAQ,OAAO,GAAG,CAAC;AACpC,yBAAS,QAAQ,WAAW;AAC5B,sBAAM,QAAQ,WAAW;AAAA,MACrC;AAAA,WAEC;AACK,YAAAR,SAAQ,SAAS,QAAQ,UAAU;AACzC,UAAIA,SAAQ,IAAI;AACH,wBAAOA,QAAO,CAAC;AACxB,YAAI,WAAW,OAAO;AACP,4BAAO,WAAW,OAAO,IAAI;AACjC,4BAAS,QAAQ,WAAW;AAC5B,yBAAM,QAAQ,WAAW;AAAA,MACxC;AAAA,IACJ;AAAA,EACJ;AApBS;AAqBT,WAAS,YAAY;AACV;AAAA,EACX;AAFS;AAGT,WAAS,cAAc,SAAS;AACtB,UAAAA,SAAQ,mBAAmB,SAAS,QAAQ;AACzC,oBAAOA,QAAO,GAAG,OAAO;AAEjC,QAAI,QAAQ,OAAO,QAAQ,CAAC,cAAc,OAAO;AAC7C,iBAAW,IAAI,QAAQ,OAAO,MAAM,OAAO;AAAA,EACnD;AANS;AAOA,WAAA+C,SAAQyQ,WAAU,iBAAiB;AACpC;AACJ,QAAI,SAAS;AACT;AACA;AACA,kBAAUA,aAAYA,UAAS,MAAM;AAC3B,2BAAW,IAAIA,UAAS,IAAI;AACtC,UAAI,CAAC;AACD,cAAM,kBAAkB,GAAsC;AAAA,UAC1D,UAAAA;AAAAA,QAAA,CACH;AAEL,UAAK,OAAwC;AACzC,cAAM,gBAAgB,OAAO,KAAKA,UAAS,UAAU,CAAE,GAAE,OAAO,CAAa,eAAC,QAAQ,KAAK,KAAK,OAAK,EAAE,SAAS,SAAS,CAAC;AAC1H,YAAI,cAAc,QAAQ;AACtB,eAAK,+BAA+B,cAAc,KAAK,MAAM,CAAC,gIAAgI;AAAA,QAClM;AAAA,MACJ;AACA,aAAO,QAAQ,OAAO;AACb;AAAA;AAAA,QAET;AAAA,UAAmB,gBAAgB;AAAA;AAAA;AAAA,UAGnC,QAAQ,KACH,OAAO,CAAK,OAAC,EAAE,QAAQ,EACvB,OAAO,QAAQ,SAAS,QAAQ,OAAO,KAAK,OAAO,CAAK,QAAE,QAAQ,IAAI,EAAE,EACxE,IAAI,CAAK,QAAE,IAAI;AAAA,QAAC;AAAA;AAAA;AAAA,QAGrBA,UAAS,UACL,mBAAmBA,UAAS,QAAQ,QAAQ,KAAK,IAAI,OAAK,EAAE,IAAI,CAAC;AAAA;AAE9D,qBAAQ,UAAU,MAAM;AAAA,eAE1BA,UAAS,QAAQ,MAAM;AAG5B,aAAOA,UAAS;AAChB,UAAK,OAAiE;AAClE,aAAK,2DAA2D,IAAI,oDAAoD,IAAI,wHAAwH;AAAA,MACxP;AACA,gBAAU,SAAS,KAAK,OAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAE5C,UAAI,SAAS;AAEA,yBAAQ,MAAM,IAAI;AAC3B,eAAO,QAAQ,OAAO;AAAA,MAC1B;AAAA,WAGC;AAED,gBAAU,gBAAgB,OACpB,WAAW,IAAI,gBAAgB,IAAI,IACnC,SAAS,KAAK,OAAK,EAAE,GAAG,KAAK,gBAAgB,IAAI,CAAC;AACxD,UAAI,CAAC;AACD,cAAM,kBAAkB,GAAsC;AAAA,UAC1D,UAAAA;AAAAA,UACA;AAAA,SACH;AACL,aAAO,QAAQ,OAAO;AAGtB,eAAS,OAAO,IAAI,gBAAgB,QAAQA,UAAS,MAAM;AACpD,qBAAQ,UAAU,MAAM;AAAA,IACnC;AACA,UAAM,UAAU;AAChB,QAAI,gBAAgB;AACpB,WAAO,eAAe;AAEV,sBAAQ,cAAc,MAAM;AACpC,sBAAgB,cAAc;AAAA,IAClC;AACO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM,gBAAgB,OAAO;AAAA;AAAA,EAErC;AAjFS,SAAAzQ,UAAA;AAmFT,SAAO,QAAQ,WAAS,SAAS,KAAK,CAAC;AACvC,WAAS,cAAc;AACnB,aAAS,SAAS;AAClB,eAAW,MAAM;AAAA,EACrB;AAHS;AAIF;AAAA,IACH;AAAA,IACA,SAAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAER;AAzOS;AA0OT,SAAS,mBAAmB,QAAQzB,OAAM;AACtC,QAAM,YAAY;AAClB,aAAW,OAAOA,OAAM;AACpB,QAAI,OAAO;AACG,mBAAG,IAAI,OAAO,GAAG;AAAA,EACnC;AACO;AACX;AAPS;AAcT,SAAS,qBAAqB,QAAQ;AAC3B;AAAA,IACH,MAAM,OAAO;AAAA,IACb,UAAU,OAAO;AAAA,IACjB,MAAM,OAAO;AAAA,IACb,MAAM,OAAO,QAAQ,CAAC;AAAA,IACtB,SAAS;AAAA,IACT,aAAa,OAAO;AAAA,IACpB,OAAO,qBAAqB,MAAM;AAAA,IAClC,UAAU,OAAO,YAAY,CAAC;AAAA,IAC9B,WAAW,CAAC;AAAA,IACZ,iCAAiB,IAAI;AAAA,IACrB,kCAAkB,IAAI;AAAA,IACtB,gBAAgB,CAAC;AAAA,IACjB,YAAY,gBAAgB,SACtB,OAAO,cAAc,OACrB,OAAO,aAAa,EAAE,SAAS,OAAO,UAAU;AAAA;AAE9D;AAlBS;AAwBT,SAAS,qBAAqB,QAAQ;AAClC,QAAM,cAAc;AAEd,gBAAQ,OAAO,SAAS;AAC9B,MAAI,eAAe,QAAQ;AACvB,gBAAY,UAAU;AAAA,SAErB;AAGD,eAAW,QAAQ,OAAO;AACtB,kBAAY,IAAI,IAAI,OAAO,UAAU,WAAW,MAAM,IAAI,IAAI;AAAA,EACtE;AACO;AACX;AAdS;AAmBT,SAAS,cAAc,QAAQ;AAC3B,SAAO,QAAQ;AACX,QAAI,OAAO,OAAO;AACP;AACX,aAAS,OAAO;AAAA,EACpB;AACO;AACX;AAPS;AAaT,SAAS,gBAAgB,SAAS;AACvB,iBAAQ,OAAO,CAAC,MAAM,WAAW,OAAO,MAAM,OAAO,IAAI,GAAG,CAAE;AACzE;AAFS;AAGT,SAAS,aAAaqC,WAAU,gBAAgB;AAC5C,QAAMnD,WAAU;AAChB,aAAW,OAAOmD,WAAU;AAChB,IAAAnD,SAAA,GAAG,IAAI,OAAO,iBAAiB,eAAe,GAAG,IAAImD,UAAS,GAAG;AAAA,EAC7E;AACO,SAAAnD;AACX;AANS;AAOT,SAAS,YAAY,GAAG,GAAG;AACf,WAAE,SAAS,EAAE,QACjB,EAAE,aAAa,EAAE,YACjB,EAAE,eAAe,EAAE;AAC3B;AAJS;AAWT,SAAS,gBAAgB,GAAG,GAAG;AAChB,oBAAO,EAAE,MAAM;AAClB,SAAC,IAAI,YAAY,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,MAAM,GAAG,CAAC;AACzD,aAAO,KAAK,UAAU,EAAE,OAAO,IAAI,+BAA+B,EAAE,OAAO,IAAI,2CAA2C,IAAI,IAAI,GAAG;AAAA,EAC7I;AACW,oBAAO,EAAE,MAAM;AAClB,SAAC,IAAI,YAAY,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,MAAM,GAAG,CAAC;AACzD,aAAO,KAAK,UAAU,EAAE,OAAO,IAAI,+BAA+B,EAAE,OAAO,IAAI,2CAA2C,IAAI,IAAI,GAAG;AAAA,EAC7I;AACJ;AATS;AAgBT,SAAS,mCAAmC,sBAAsB,QAAQ;AAClE,gBACA,OAAO,OAAO,QACd,CAAC,qBAAqB,QACtB,CAAC,qBAAqB,MAAM;AAC5B,SAAK,oBAAoB,OAAO,OAAO,OAAO,IAAI,CAAC,4OAA4O;AAAA,EACnS;AACJ;AAPS;AAQT,SAAS,iCAAiC,QAAQ,QAAQ;AAC3C,oBAAO,OAAO,MAAM;AACvB,SAAC,OAAO,KAAK,KAAK,YAAY,KAAK,MAAM,GAAG,CAAC;AAC7C,aAAO,KAAK,kBAAkB,OAAO,OAAO,IAAI,2CAA2C,IAAI,IAAI,oBAAoB,OAAO,OAAO,IAAI,IAAI;AAAA,EACrJ;AACJ;AALS;AAeT,SAAS,mBAAmB,SAAS,UAAU;AAE3C,MAAI,QAAQ;AACZ,MAAI,QAAQ,SAAS;AACrB,SAAO,UAAU,OAAO;AACd,gBAAO,QAAQ,SAAU;AAC/B,UAAM,YAAY,uBAAuB,SAAS,SAAS,GAAG,CAAC;AAC/D,QAAI,YAAY,GAAG;AACP;AAAA,WAEP;AACD,cAAQ,MAAM;AAAA,IAClB;AAAA,EACJ;AAEM,4BAAoB,qBAAqB,OAAO;AACtD,MAAI,mBAAmB;AACnB,YAAQ,SAAS,YAAY,mBAAmB,QAAQ,CAAC;AACzD,QAAK,OAAqD;AAEjD,sCAA2B,kBAAkB,OAAO,IAAI,iBAAiB,QAAQ,OAAO,IAAI,GAAG;AAAA,IACxG;AAAA,EACJ;AACO;AACX;AAxBS;AAyBT,SAAS,qBAAqB,SAAS;AACnC,MAAI,WAAW;AACP,oBAAW,SAAS,QAAS;AACjC,QAAI,YAAY,QAAQ,KACpB,uBAAuB,SAAS,QAAQ,MAAM,GAAG;AAC1C;AAAA,IACX;AAAA,EACJ;AACA;AACJ;AATS;AAiBT,SAAS,YAAY,EAAE,UAAU;AAC7B,SAAO,CAAC,EAAE,OAAO,QACZ,OAAO,cAAc,OAAO,KAAK,OAAO,UAAU,EAAE,UACrD,OAAO;AACf;AAJS;AAeT,SAAS,WAAW2vB,SAAQ;AACxB,QAAM,QAAQ;AAGV,MAAAA,YAAW,MAAMA,YAAW;AACrB;AACL,uBAAeA,QAAO,CAAC,MAAM;AAC7B,wBAAgB,eAAeA,QAAO,MAAM,CAAC,IAAIA,SAAQ,MAAM,GAAG;AACxE,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,EAAE,GAAG;AAE1C,UAAM,cAAc,aAAa,CAAC,EAAE,QAAQ,SAAS,GAAG;AAElD,kBAAQ,YAAY,QAAQ,GAAG;AAC/B,gBAAM,OAAO,QAAQ,IAAI,cAAc,YAAY,MAAM,GAAG,KAAK,CAAC;AAClE,UAAApxB,SAAQ,QAAQ,IAAI,OAAO,OAAO,YAAY,MAAM,QAAQ,CAAC,CAAC;AACpE,QAAI,OAAO,OAAO;AAEV,yBAAe,MAAM,GAAG;AACxB,WAAC,QAAQ,YAAY,GAAG;AACxB,uBAAe,MAAM,GAAG,IAAI,CAAC,YAAY;AAAA,MAC7C;AACA,mBAAa,KAAKA,MAAK;AAAA,WAEtB;AACD,YAAM,GAAG,IAAIA;AAAA,IACjB;AAAA,EACJ;AACO;AACX;AA5BS;AAsCT,SAAS,eAAe,OAAO;AAC3B,MAAIoxB,UAAS;AACb,WAAS,OAAO,OAAO;AACb,UAAApxB,SAAQ,MAAM,GAAG;AACvB,UAAM,eAAe,GAAG;AACxB,QAAIA,UAAS,MAAM;AAEf,UAAIA,WAAU,QAAW;AACV,QAAAoxB,oBAAO,SAAS,MAAM,MAAM;AAAA,MAC3C;AACA;AAAA,IACJ;AAEA,UAAM,SAAS,QAAQpxB,MAAK,IACtBA,OAAM,IAAI,CAAKoB,aAAK,iBAAiBA,EAAC,CAAC,IACvC,CAACpB,UAAS,iBAAiBA,MAAK,CAAC;AAChC,mBAAQ,CAAAA,YAAS;AAGpB,UAAIA,YAAU,QAAW;AAEV,QAAAoxB,oBAAO,SAAS,MAAM,MAAM;AACvC,YAAIpxB,WAAS;AACT,UAAAoxB,WAAU,MAAMpxB;AAAAA,MACxB;AAAA,KACH;AAAA,EACL;AACO,SAAAoxB;AACX;AA5BS;AAqCT,SAAS,eAAe,OAAO;AAC3B,QAAM,kBAAkB;AACxB,aAAW,OAAO,OAAO;AACf,UAAApxB,SAAQ,MAAM,GAAG;AACvB,QAAIA,WAAU,QAAW;AACrB,sBAAgB,GAAG,IAAI,QAAQA,MAAK,IAC9BA,OAAM,IAAI,CAAAoB,OAAMA,MAAK,OAAO,OAAO,KAAKA,EAAE,IAC1CpB,UAAS,OACLA,SACA,KAAKA;AAAA,IACnB;AAAA,EACJ;AACO;AACX;AAbS;AAsBT,MAAM,kBAAkB,OAAQ,QAAyC,iCAAiC,EAAE;AAO5G,MAAM,eAAe,OAAQ,QAAyC,sBAAsB,EAAE;AAO9F,MAAM,YAAY,OAAQ,QAAyC,WAAW,EAAE;AAOhF,MAAM,mBAAmB,OAAQ,QAAyC,mBAAmB,EAAE;AAO/F,MAAM,wBAAwB,OAAQ,QAAyC,yBAAyB,EAAE;AAK1G,SAAS,eAAe;AACpB,MAAIoU,YAAW;AACf,WAASxK,KAAItG,UAAS;AAClB,IAAA8Q,UAAS,KAAK9Q,QAAO;AACrB,WAAO,MAAM;AACH,gBAAI8Q,UAAS,QAAQ9Q,QAAO;AAClC,UAAI,IAAI;AACK,QAAA8Q,UAAA,OAAO,GAAG,CAAC;AAAA;AAAA,EAEhC;AAPS,SAAAxK,MAAA;AAQT,WAAS,QAAQ;AACb,IAAAwK,YAAW;AAAA,EACf;AAFS;AAGF;AAAA,IACH,KAAAxK;AAAA,IACA,MAAM,6BAAMwK,UAAS,MAAM,GAArB;AAAA,IACN;AAAA;AAER;AAlBS;AAoBT,SAAS,cAAc,QAAQ,MAAM,OAAO;AACxC,QAAM,iBAAiB,6BAAM;AAClB,eAAI,EAAE,OAAO,KAAK;AAAA,KADN;AAGvB,cAAY,cAAc;AAC1B,gBAAc,cAAc;AAC5B,cAAY,MAAM;AACP,eAAI,EAAE,IAAI,KAAK;AAAA,GACzB;AACM,aAAI,EAAE,IAAI,KAAK;AAC1B;AAVS;AAkBT,SAAS,mBAAmB,YAAY;AACpC,MAAK,OAAiE;AAClE,SAAK,wGAAwG;AAC7G;AAAA,EACJ;AACA,QAAM,eAAe;AAAA,IAAO;AAAA;AAAA,IAE5B,CAAC;AAAA,EAAG;AACJ,MAAI,CAAC,cAAc;AAGf;AAAA,EACJ;AACc,8BAAc,eAAe,UAAU;AACzD;AAdS;AAsBT,SAAS,oBAAoB,aAAa;AACtC,MAAK,OAAiE;AAClE,SAAK,yGAAyG;AAC9G;AAAA,EACJ;AACA,QAAM,eAAe;AAAA,IAAO;AAAA;AAAA,IAE5B,CAAC;AAAA,EAAG;AACJ,MAAI,CAAC,cAAc;AAGf;AAAA,EACJ;AACc,8BAAc,gBAAgB,WAAW;AAC3D;AAdS;AAeT,SAAS,iBAAiB,OAAO,IAAI,MAAM,QAAQ,MAAM,iBAAiB,CAAM,aAAM;AAElF,QAAM,qBAAqB;AAAA,GAEtB,OAAO,eAAe,IAAI,IAAI,OAAO,eAAe,IAAI,KAAK;AAClE,SAAO,MAAM,IAAI,QAAQ,CAACpQ,UAASS,YAAW;AACpC,UAAAL,QAAO,wBAAC,UAAU;AACpB,UAAI,UAAU,OAAO;AACjB,QAAAK,QAAO,kBAAkB,GAAuC;AAAA,UAC5D;AAAA,UACA;AAAA,QACH,EAAC;AAAA,iBAEG,iBAAiB,OAAO;AAC7B,QAAAA,QAAO,KAAK;AAAA,iBAEP,gBAAgB,KAAK,GAAG;AAC7B,QAAAA,QAAO,kBAAkB,GAA8C;AAAA,UACnE,MAAM;AAAA,UACN,IAAI;AAAA,QACP,EAAC;AAAA,aAED;AACG;AAAA,QAEA,OAAO,eAAe,IAAI,MAAM,sBAChC,OAAO,UAAU,YAAY;AAC7B,6BAAmB,KAAK,KAAK;AAAA,QACjC;AACQ,QAAAT;MACZ;AAAA,OAxBS;AA2Bb,UAAM,cAAc,eAAe,MAAM,MAAM,KAAK,UAAU,OAAO,UAAU,IAAI,GAAG,IAAI,MAAO,QAAyC,oBAAoBI,OAAM,IAAI,IAAI,IAAIA,KAAI,CAAC;AACjL,oBAAY,QAAQ,QAAQ,WAAW;AAC3C,QAAI,MAAM,SAAS;AACH,4BAAU,KAAKA,KAAI;AACnC,QAAK,OAA4D;AACvD,YAAAyB,WAAU,kDAAkD,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,EAAE;AAAA,EAAM,MAAM,UAAU;AAAA;AAChI,UAAI,OAAO,gBAAgB,YAAY,UAAU,aAAa;AAC9C,8BAAU,KAAK,CAAiB;AAEpC,eAACzB,MAAK,SAAS;AACf,iBAAKyB,QAAO;AACZ,mBAAO,QAAQ,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAAA,UAC/D;AACO;AAAA,SACV;AAAA,iBAEI,gBAAgB,QAAW;AAE5B,aAACzB,MAAK,SAAS;AACf,eAAKyB,QAAO;AACL,UAAApB,QAAA,IAAI,MAAM,0BAA0B,CAAC;AAC5C;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AACA,cAAU,MAAM,SAAOA,QAAO,GAAG,CAAC;AAAA,GACrC;AACL;AA5DS;AA6DT,SAAS,oBAAoBL,OAAM,IAAI,MAAM;AACzC,MAAI,SAAS;AACb,SAAO,WAAY;AACf,QAAI,aAAa;AACb,WAAK,0FAA0F,KAAK,QAAQ,SAAS,GAAG,QAAQ,iGAAiG;AAErO,IAAAA,MAAK,UAAU;AACf,QAAI,WAAW;AACN,MAAAA,MAAA,MAAM,MAAM,SAAS;AAAA;AAEtC;AAVS;AAWT,SAAS,wBAAwB,SAAS,WAAW,IAAI,MAAM,iBAAiB,QAAM,MAAM;AACxF,QAAM,SAAS;AACf,aAAW,UAAU,SAAS;AAC1B,QAAK,OAAyF;AACrF,gCAAqB,OAAO,IAAI,8DACP;AAAA,IAClC;AACW,uBAAQ,OAAO,YAAY;AAC9B,yBAAe,OAAO,WAAW,IAAI;AACzC,UAAK,OAAwC;AACzC,YAAI,CAAC,gBACA,OAAO,iBAAiB,YACrB,OAAO,iBAAiB,YAAa;AACpC,6BAAc,IAAI,0BAA0B,OAAO,IAAI,yCACvB,OAAO,YAAY,CAAC,IAAI;AAGvD,oBAAI,MAAM,yBAAyB;AAAA,mBAEpC,UAAU,cAAc;AAG7B,eAAK,cAAc,IAAI,0BAA0B,OAAO,IAAI,6LAI9B;AAC9B,gBAAM,UAAU;AAChB,yBAAe,6BAAM,SAAN;AAAA,QAAM,WAEhB,aAAa;AAAA,QAElB,CAAC,aAAa,qBAAqB;AACnC,uBAAa,sBAAsB;AACnC,eAAK,cAAc,IAAI,0BAA0B,OAAO,IAAI,oJAGD;AAAA,QAC/D;AAAA,MACJ;AAEA,UAAI,cAAc,sBAAsB,CAAC,OAAO,UAAU,IAAI;AAC1D;AACA,2BAAiB,YAAY,GAAG;AAE1B,cAAA3C,WAAU,aAAa,aAAa;AACpC,sBAAQA,SAAQ,SAAS;AAE3B,wBAAO,KAAK,iBAAiB,OAAO,IAAI,MAAM,QAAQ,MAAM,cAAc,CAAC;AAAA,aAE9E;AAED,YAAI,mBAAmB;AACvB,YAAK,OAA0E;AAC3E,eAAK,cAAc,IAAI,0BAA0B,OAAO,IAAI,4LAA4L;AACrO,qCAAQ,QAAQ,gBAAgB;AAAA,QACvD;AACA,eAAO,KAAK,MAAM,iBAAiB,KAAK,CAAY;AAChD,cAAI,CAAC;AACM,2BAAQ,OAAO,IAAI,MAAM,+BAA+B,IAAI,SAAS,OAAO,IAAI,GAAG,CAAC;AAC/F,gBAAM,oBAAoB,WAAW,QAAQ,IACvC,SAAS,UACT;AAGC,4BAAW,IAAI,IAAI;AAEpB,gBAAAA,WAAU,kBAAkB,aAAa;AACzC,wBAAQA,SAAQ,SAAS;AACvB,0BACJ,iBAAiB,OAAO,IAAI,MAAM,QAAQ,MAAM,cAAc;QACrE,EAAC;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AACO;AACX;AA5ES;AAmFT,SAAS,iBAAiB,WAAW;AACjC,SAAQ,OAAO,cAAc,YACzB,iBAAiB,aACjB,WAAW,aACX,eAAe;AACvB;AALS;AAWT,SAAS,kBAAkB,OAAO;AAC9B,SAAO,MAAM,QAAQ,MAAM,YAAU,OAAO,QAAQ,IAC9C,QAAQ,OAAO,IAAI,MAAM,qCAAqC,CAAC,IAC/D,QAAQ,IAAI,MAAM,QAAQ,IAAI,YAAU,OAAO,cAC7C,QAAQ,IAAI,OAAO,KAAK,OAAO,UAAU,EAAE,OAAO,CAAC,UAAU,SAAS;AAC5D,yBAAe,OAAO,WAAW,IAAI;AAC3C,QAAI,OAAO,iBAAiB,cACxB,EAAE,iBAAiB,eAAe;AAClC,eAAS,KAAK,aAAe,OAAK,CAAY;AAC1C,YAAI,CAAC;AACM,yBAAQ,OAAO,IAAI,MAAM,+BAA+B,IAAI,SAAS,OAAO,IAAI,yDAAyD,CAAC;AACrJ,cAAM,oBAAoB,WAAW,QAAQ,IACvC,SAAS,UACT;AAGC,0BAAW,IAAI,IAAI;AAC1B;AAAA,MACH,EAAC;AAAA,IACN;AACO;AAAA,KACR,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,KAAK;AACtC;AAtBS;AA+BT,SAAS,QAAQ,OAAO;AACd,QAAA6zB,UAAS,OAAO,SAAS;AACzB,uBAAe,OAAO,gBAAgB;AAC5C,MAAI,cAAc;AAClB,MAAI,aAAa;AACX,gBAAQ,SAAS,MAAM;AACnB,eAAK,MAAM,MAAM,EAAE;AACzB,QAAK,OAA+E;AAC5E,WAAC,gBAAgB,EAAE,GAAG;AACtB,YAAI,aAAa;AACR;AAAA,QAAmD,IAAI;AAAA,iBAAoB,YAAY;AAAA,WAAc,KAAK;AAAA,eAE9G;AACI;AAAA,QAAmD,IAAI;AAAA,WAAc,KAAK;AAAA,QACnF;AAAA,MACJ;AACa;AACC;AAAA,IAClB;AACO,WAAAA,QAAO,QAAQ,EAAE;AAAA,GAC3B;AACK,4BAAoB,SAAS,MAAM;AAC/B,YAAE,QAAQ,IAAI,MAAM;AACpB,YAAE,OAAW;AACb,yBAAe,QAAQ,SAAS,CAAC;AACvC,UAAM,iBAAiB,aAAa;AAChC,SAAC,gBAAgB,CAAC,eAAe;AAC1B;AACX,UAAMr0B,SAAQ,eAAe,UAAU,kBAAkB,KAAK,MAAM,YAAY,CAAC;AACjF,QAAIA,SAAQ;AACD,aAAAA;AAEX,UAAM,mBAAmB,gBAAgB,QAAQ,SAAS,CAAC,CAAC;AAC5D;AAAA;AAAA,MAEA,SAAS;AAAA;AAAA;AAAA,MAIL,gBAAgB,YAAY,MAAM;AAAA,MAElC,eAAe,eAAe,SAAS,CAAC,EAAE,SAAS,mBACjD,eAAe,UAAU,kBAAkB,KAAK,MAAM,QAAQ,SAAS,CAAC,CAAC,CAAC,IAC1EA;AAAA;AAAA,GACT;AACD,QAAM,WAAW,SAAS,MAAM,kBAAkB,QAAQ,MACtD,eAAe,aAAa,QAAQ,MAAM,MAAM,MAAM,CAAC;AAC3D,QAAM,gBAAgB,SAAS,MAAM,kBAAkB,QAAQ,MAC3D,kBAAkB,UAAU,aAAa,QAAQ,SAAS,KAC1D,0BAA0B,aAAa,QAAQ,MAAM,MAAM,MAAM,CAAC;AAC7D,oBAAS4B,KAAI,IAAI;AAClB,mBAAWA,EAAC,GAAG;AACf,aAAOyyB,QAAO,MAAM,MAAM,OAAO,IAAI,YAAY,MAAM;AAAA,QAAE,MAAM,MAAM,EAAE;AAAA;AAAA,QAErE,MAAM,IAAI;AAAA,IAChB;AACA,WAAO,QAAQ;EACnB;AAPS;AAST,MAAgD,OAAqC;AACjF,UAAM,WAAW;AACjB,QAAI,UAAU;AACV,YAAM,sBAAsB;AAAA,QACxB,OAAO,MAAM;AAAA,QACb,UAAU,SAAS;AAAA,QACnB,eAAe,cAAc;AAAA,QAC7B,OAAO;AAAA;AAGF,gCAAiB,SAAS,kBAAkB;AAE5C,8BAAe,KAAK,mBAAmB;AAChD,kBAAY,MAAM;AACd,4BAAoB,QAAQ,MAAM;AAClC,4BAAoB,WAAW,SAAS;AACxC,4BAAoB,gBAAgB,cAAc;AAClD,4BAAoB,QAAQ,gBAAgB,MAAM,MAAM,EAAE,CAAC,IACrD,OACA;AAAA,SACP,EAAE,OAAO,QAAQ;AAAA,IACxB;AAAA,EACJ;AAIO;AAAA,IACH;AAAA,IACA,MAAM,SAAS,MAAM,MAAM,MAAM,IAAI;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA;AAER;AA5FS;AA6FT,MAAM,iBAA+C;AAAA,EACjD,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAE;AAAA,EACxB,OAAO;AAAA,IACH,IAAI;AAAA,MACA,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,UAAU;AAAA,IACd;AAAA,IACA,SAAS;AAAA,IACT,aAAa;AAAA;AAAA,IAEb,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,kBAAkB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACb;AAAA,EACJ;AAAA,EACA;AAAA,EACA,MAAM,OAAO,EAAE,SAAS;AACpB,UAAM,OAAO,SAAS,QAAQ,KAAK,CAAC;AACpC,UAAM,EAAE,SAAA7zB,SAAA,IAAY,OAAO,SAAS;AAC9B,oBAAU,SAAS,OAAO;AAAA,MAC5B,CAAC,aAAa,MAAM,aAAaA,SAAQ,iBAAiB,oBAAoB,CAAC,GAAG,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMvF,CAAC,aAAa,MAAM,kBAAkBA,SAAQ,sBAAsB,0BAA0B,CAAC,GAAG,KAAK;AAAA,IACzG;AACF,WAAO,MAAM;AACT,YAAM,WAAW,MAAM,WAAW,MAAM,QAAQ,IAAI;AACpD,aAAO,MAAM,SACP,WACA,EAAE,KAAK;AAAA,QACL,gBAAgB,KAAK,gBACf,MAAM,mBACN;AAAA,QACN,MAAM,KAAK;AAAA;AAAA;AAAA,QAGX,SAAS,KAAK;AAAA,QACd,OAAO,QAAQ;AAAA,SAChB,QAAQ;AAAA;AAAA,EAEvB;AACJ,CAAC;AAMD,MAAM,aAAa;AACnB,SAAS,WAAWoB,IAAG;AAEnB,MAAIA,GAAE,WAAWA,GAAE,UAAUA,GAAE,WAAWA,GAAE;AACxC;AAEJ,MAAIA,GAAE;AACF;AAEJ,MAAIA,GAAE,WAAW,UAAaA,GAAE,WAAW;AACvC;AAGJ,MAAIA,GAAE,iBAAiBA,GAAE,cAAc,cAAc;AAEjD,UAAM,SAASA,GAAE,cAAc,aAAa,QAAQ;AAChD,sBAAc,KAAK,MAAM;AACzB;AAAA,EACR;AAEA,MAAIA,GAAE;AACF,IAAAA,GAAE,eAAe;AACd;AACX;AAtBS;AAuBT,SAAS,eAAe,OAAO,OAAO;AAClC,aAAW,OAAO,OAAO;AACf,uBAAa,MAAM,GAAG;AACtB,uBAAa,MAAM,GAAG;AACxB,eAAO,eAAe,UAAU;AAChC,UAAI,eAAe;AACR;AAAA,WAEV;AACD,UAAI,CAAC,QAAQ,UAAU,KACnB,WAAW,WAAW,WAAW,UACjC,WAAW,KAAK,CAAC7C,QAAO,MAAMA,WAAU,WAAW,CAAC,CAAC;AAC9C;AAAA,IACf;AAAA,EACJ;AACO;AACX;AAhBS;AAqBT,SAAS,gBAAgB,QAAQ;AAC7B,SAAO,SAAU,OAAO,UAAU,OAAO,QAAQ,OAAO,OAAO,OAAQ;AAC3E;AAFS;AAST,MAAM,eAAe,wBAAC,WAAW,aAAa,iBAAiB,aAAa,OACtE,YACA,eAAe,OACX,cACA,cAJW;AAMrB,MAAM,iBAA+C;AAAA,EACjD,MAAM;AAAA;AAAA,EAEN,cAAc;AAAA,EACd,OAAO;AAAA,IACH,MAAM;AAAA,MACF,MAAM;AAAA,MACN,SAAS;AAAA,IACb;AAAA,IACA,OAAO;AAAA,EACX;AAAA;AAAA;AAAA,EAGA,cAAc,EAAE,MAAM,EAAE;AAAA,EACxB,MAAM,OAAO,EAAE,OAAAyD,QAAO,SAAS;AAErB,0BAAgB,OAAO,qBAAqB;AAClD,UAAM,iBAAiB,SAAS,MAAM,MAAM,SAAS,cAAc,KAAK;AAClE,0BAAgB,OAAO,cAAc,CAAC;AAGtC,kBAAQ,SAAS,MAAM;AACrB,yBAAe,MAAM,aAAa;AAChC,cAAE,QAAQ,IAAI,eAAe;AAC/B;AACJ,cAAQ,eAAe,QAAQ,YAAY,MACvC,CAAC,aAAa,YAAY;AAC1B;AAAA,MACJ;AACO;AAAA,KACV;AACK,4BAAkB,SAAS,MAAM,eAAe,MAAM,QAAQ,MAAM,KAAK,CAAC;AAChF,YAAQ,cAAc,SAAS,MAAM,MAAM,QAAQ,CAAC,CAAC;AACrD,YAAQ,iBAAiB,eAAe;AACxC,YAAQ,uBAAuB,cAAc;AAC7C,UAAM,UAAU;AAGhB,UAAM,MAAM,CAAC,QAAQ,OAAO,gBAAgB,OAAO,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,GAAG,CAAC,aAAa,MAAM,OAAO,MAAM;AAEpH,UAAI,IAAI;AAGD,qBAAU,IAAI,IAAI;AAOrB,YAAI,QAAQ,SAAS,MAAM,YAAY,aAAa,aAAa;AACzD,eAAC,GAAG,YAAY,MAAM;AACtB,eAAG,cAAc,KAAK;AAAA,UAC1B;AACI,eAAC,GAAG,aAAa,MAAM;AACvB,eAAG,eAAe,KAAK;AAAA,UAC3B;AAAA,QACJ;AAAA,MACJ;AAEA,UAAI,YACA;AAAA;AAAA,OAGC,CAAC,QAAQ,CAAC,kBAAkB,IAAI,IAAI,KAAK,CAAC,cAAc;AACxD,YAAG,eAAe,IAAI,KAAK,IAAI,QAAQ,cAAY,SAAS,QAAQ,CAAC;AAAA,MAC1E;AAAA,OACD,EAAE,OAAO,QAAQ;AACpB,WAAO,MAAM;AACT,YAAM,QAAQ,eAAe;AAG7B,YAAM,cAAc,MAAM;AAC1B,YAAM,eAAe,gBAAgB;AACrC,YAAM,gBAAgB,gBAAgB,aAAa,WAAW,WAAW;AACzE,UAAI,CAAC,eAAe;AAChB,eAAO,cAAc,MAAM,SAAS,EAAE,WAAW,eAAe,OAAO;AAAA,MAC3E;AAEM,+BAAmB,aAAa,MAAM,WAAW;AACvD,YAAM,aAAa,mBACb,qBAAqB,OACjB,MAAM,SACN,OAAO,qBAAqB,aACxB,iBAAiB,KAAK,IACtB,mBACR;AACN,YAAM,mBAAmB,wBAAS;AAE1B,kBAAM,UAAU,aAAa;AAChB,iCAAU,WAAW,IAAI;AAAA,QAC1C;AAAA,SAJqB;AAMzB,YAAM,YAAY,EAAE,eAAe,OAAO,CAAC,GAAG,YAAYA,QAAO;AAAA,QAC7D;AAAA,QACA,KAAK;AAAA,MACR,EAAC;AACF,UAAgD,OAE7B;AAEf,cAAM,OAAO;AAAA,UACT,OAAO,MAAM;AAAA,UACb,MAAM,aAAa;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,MAAM,aAAa;AAAA;AAEvB,cAAM,oBAAoB,QAAQ,UAAU,GAAG,IACzC,UAAU,IAAI,IAAI,OAAK,EAAE,CAAC,IAC1B,CAAC,UAAU,IAAI,CAAC;AACtB,0BAAkB,QAAQ,CAAY;AAElC,mBAAS,iBAAiB;AAAA,SAC7B;AAAA,MACL;AACA;AAAA;AAAA;AAAA,QAGA,cAAc,MAAM,SAAS,EAAE,WAAW,WAAW,MAAO,MACxD;AAAA;AAAA;AAAA,EAEZ;AACJ,CAAC;AACD,SAAS,cAAc,MAAMG,QAAM;AAC/B,MAAI,CAAC;AACM;AACL,sBAAc,KAAKA,MAAI;AAC7B,SAAO,YAAY,WAAW,IAAI,YAAY,CAAC,IAAI;AACvD;AALS;AAWT,MAAM,aAAa;AAGnB,SAAS,sBAAsB;AAC3B,QAAM,WAAW;AACjB,QAAM,aAAa,SAAS,UAAU,SAAS,OAAO,KAAK;AACrD,4BAAoB,SAAS,UAAU,SAAS,OAAO,WAAW,SAAS,OAAO,QAAQ;AAChG,MAAI,eACC,eAAe,eAAe,WAAW,SAAS,YAAY,MAC/D,OAAO,sBAAsB,YAC7B,kBAAkB,SAAS,cAAc;AACnC,iBAAO,eAAe,cAAc,eAAe;AACpD;AAAA;AAAA;AAAA;AAAA,KAGK,IAAI;AAAA;AAAA,MAEH,IAAI;AAAA,eACK;AAAA,EACxB;AACJ;AAjBS;AA0BT,SAAS,oBAAoB,eAAe,SAAS;AACjD,QAAM,OAAO,OAAO,CAAC,GAAG,eAAe;AAAA;AAAA,IAEnC,SAAS,cAAc,QAAQ,IAAI,CAAW,iBAAK,SAAS,CAAC,aAAa,YAAY,SAAS,CAAC,CAAC;AAAA,GACpG;AACM;AAAA,IACH,SAAS;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,cAAc;AAAA,MACvB;AAAA,MACA,OAAO;AAAA,IACX;AAAA;AAER;AAdS;AAeT,SAAS,cAAc,SAAS;AACrB;AAAA,IACH,SAAS;AAAA,MACL;AAAA,IACJ;AAAA;AAER;AANS;AAQT,IAAI,WAAW;AACf,SAAS,YAAYd,MAAKwyB,SAAQ,SAAS;AAGvC,MAAIA,QAAO;AACP;AACJ,EAAAA,QAAO,gBAAgB;AAEvB,QAAM5yB,MAAK;AACS;AAAA,IAChB,IAAI,sBAAsBA,MAAK,MAAMA,MAAK;AAAA,IAC1C,OAAO;AAAA,IACP,aAAa;AAAA,IACb,UAAU;AAAA,IACV,MAAM;AAAA,IACN,qBAAqB,CAAC,SAAS;AAAA,IAC/B,KAAAI;AAAA,KACD,CAAOyG,SAAA;AACF,eAAOA,KAAI,QAAQ,YAAY;AAC/B,cAAQ,KAAK,uNAAuN;AAAA,IACxO;AAEA,IAAAA,KAAI,GAAG,iBAAiB,CAAC,SAAS,QAAQ;AACtC,UAAI,QAAQ,cAAc;AACd,6BAAa,MAAM,KAAK;AAAA,UAC5B,MAAM;AAAA,UACN,KAAK;AAAA,UACL,UAAU;AAAA,UACV,OAAO,oBAAoB+rB,QAAO,aAAa,OAAO,eAAe;AAAA,SACxE;AAAA,MACL;AAAA,KACH;AAED,IAAA/rB,KAAI,GAAG,mBAAmB,CAAC,EAAE,UAAUlF,OAAM,wBAAwB;AACjE,UAAI,kBAAkB,gBAAgB;AAClC,cAAM,OAAO,kBAAkB;AAC/B,QAAAA,MAAK,KAAK,KAAK;AAAA,UACX,QAAQ,KAAK,OAAO,GAAG,KAAK,KAAK,SAAU,QAAO,MAAM,KAAK;AAAA,UAC7D,WAAW;AAAA,UACX,SAAS;AAAA,UACT,iBAAiB;AAAA,SACpB;AAAA,MACL;AAEI,kBAAQ,kBAAkB,cAAc,GAAG;AAC3C,0BAAkB,gBAAgBkF;AAChB,yCAAe,QAAQ,CAAgB;AACjD,cAAA2M,SAAQ,aAAa,MAAM;AAC/B,cAAI,kBAAkB;AACtB,cAAI,UAAU;AACd,cAAI,YAAY;AAChB,cAAI,aAAa,OAAO;AACpB,YAAAA,SAAQ,aAAa;AACH;AACN;AAAA,qBAEP,aAAa,eAAe;AACf;AACR;AAAA,qBAEL,aAAa,UAAU;AACV;AACR;AAAA,UACd;AACA,UAAA7R,MAAK,KAAK,KAAK;AAAA,YACX,OAAA6R;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,WACH;AAAA,SACJ;AAAA,MACL;AAAA,KACH;AACK,UAAAof,QAAO,cAAc,MAAM;AAEX;AAClB,MAAA/rB,KAAI,sBAAsB;AAC1B,MAAAA,KAAI,kBAAkB,iBAAiB;AACvC,MAAAA,KAAI,mBAAmB,iBAAiB;AAAA,KAC3C;AACD,UAAM,qBAAqB,wBAAwB7G;AACnD,IAAA6G,KAAI,iBAAiB;AAAA,MACjB,IAAI;AAAA,MACJ,OAAO,SAAS7G,MAAK,MAAMA,MAAK,EAAE;AAAA,MAClC,OAAO;AAAA,KACV;AAOM,IAAA4yB,QAAA,QAAQ,CAAC,OAAO,OAAO;AAC1B,MAAA/rB,KAAI,iBAAiB;AAAA,QACjB,SAAS;AAAA,QACT,OAAO;AAAA,UACH,OAAO;AAAA,UACP,UAAU,GAAG;AAAA,UACb,SAAS;AAAA,UACT,MAAMA,KAAI,IAAI;AAAA,UACd,MAAM,EAAE,MAAM;AAAA,UACd,SAAS,GAAG,KAAK;AAAA,QACrB;AAAA,OACH;AAAA,KACJ;AAED,QAAI,eAAe;AACZ,IAAA+rB,QAAA,WAAW,CAAC,IAAI,SAAS;AAC5B,YAAM1xB,SAAO;AAAA,QACT,OAAO,cAAc,YAAY;AAAA,QACjC,MAAM,oBAAoB,MAAM,yCAAyC;AAAA,QACzE,IAAI,oBAAoB,IAAI,iBAAiB;AAAA;AAG1C,4BAAe,GAAG,MAAM,kBAAkB;AAAA,QAC7C,OAAO;AAAA,OACV;AACD,MAAA2F,KAAI,iBAAiB;AAAA,QACjB,SAAS;AAAA,QACT,OAAO;AAAA,UACH,MAAMA,KAAI,IAAI;AAAA,UACd,OAAO;AAAA,UACP,UAAU,GAAG;AAAA,UACb,MAAA3F;AAAA,UACA,SAAS,GAAG,KAAK;AAAA,QACrB;AAAA,OACH;AAAA,KACJ;AACD,IAAA0xB,QAAO,UAAU,CAAC,IAAI,MAAM,YAAY;AACpC,YAAM1xB,SAAO;AAAA,QACT,OAAO,cAAc,WAAW;AAAA;AAEpC,UAAI,SAAS;AACT,QAAAA,OAAK,UAAU;AAAA,UACX,SAAS;AAAA,YACL,MAAM;AAAA,YACN,UAAU;AAAA,YACV,SAAS,UAAU,QAAQ,UAAU;AAAA,YACrC,SAAS;AAAA,YACT,OAAO;AAAA,UACX;AAAA;AAEC,QAAAA,OAAA,SAAS,cAAc,GAAG;AAAA,aAE9B;AACI,QAAAA,OAAA,SAAS,cAAc,GAAG;AAAA,MACnC;AAEK,MAAAA,OAAA,OAAO,oBAAoB,MAAM,yCAAyC;AAC1E,MAAAA,OAAA,KAAK,oBAAoB,IAAI,iBAAiB;AACnD,MAAA2F,KAAI,iBAAiB;AAAA,QACjB,SAAS;AAAA,QACT,OAAO;AAAA,UACH,OAAO;AAAA,UACP,UAAU,GAAG;AAAA,UACb,MAAMA,KAAI,IAAI;AAAA,UACd,MAAA3F;AAAA,UACA,SAAS,UAAU,YAAY;AAAA,UAC/B,SAAS,GAAG,KAAK;AAAA,QACrB;AAAA,OACH;AAAA,KACJ;AAID,UAAM,oBAAoB,sBAAsBlB;AAChD,IAAA6G,KAAI,aAAa;AAAA,MACb,IAAI;AAAA,MACJ,OAAO,YAAY7G,MAAK,MAAMA,MAAK;AAAA,MACnC,MAAM;AAAA,MACN,uBAAuB;AAAA,KAC1B;AACD,aAAS,oBAAoB;AAEzB,UAAI,CAAC;AACD;AACJ,YAAM,UAAU;AAEhB,UAAI,SAAS,QAAQ,YAAY,OAAO,WAAS,CAAC,MAAM;AAAA;AAAA,MAGpD,CAAC,MAAM,OAAO,OAAO,UAAU;AAEnC,aAAO,QAAQ,4BAA4B;AAE3C,UAAI,QAAQ,QAAQ;AAChB,iBAAS,OAAO,OAAO;AAAA;AAAA,UAEvB,gBAAgB,OAAO,QAAQ,OAAO,aAAa;AAAA,SAAC;AAAA,MACxD;AAEA,aAAO,QAAQ,CAAS,gCAAsB,OAAO4yB,QAAO,aAAa,KAAK,CAAC;AACvE,0BAAY,OAAO,IAAI,6BAA6B;AAAA,IAChE;AArBS;AAsBL;AACA,IAAA/rB,KAAA,GAAG,iBAAiB,CAAW;AACT;AACtB,UAAI,QAAQ,QAAQzG,QAAO,QAAQ,gBAAgB,mBAAmB;AAChD;MACtB;AAAA,KACH;AAIG,IAAAyG,KAAA,GAAG,kBAAkB,CAAW;AAChC,UAAI,QAAQ,QAAQzG,QAAO,QAAQ,gBAAgB,mBAAmB;AAC5D,uBAAS,QAAQ;AACjB,sBAAQ,OAAO,KAAK,CAAAyyB,WAASA,OAAM,OAAO,YAAY,QAAQ,MAAM;AAC1E,YAAI,OAAO;AACP,kBAAQ,QAAQ;AAAA,YACZ,SAAS,0CAA0C,KAAK;AAAA;AAAA,QAEhE;AAAA,MACJ;AAAA,KACH;AACD,IAAAhsB,KAAI,kBAAkB,iBAAiB;AACvC,IAAAA,KAAI,mBAAmB,iBAAiB;AAAA,GAC3C;AACL;AAzNS;AA0NT,SAAS,eAAe,KAAK;AACzB,MAAI,IAAI,UAAU;AACP,eAAI,aAAa,MAAM;AAAA,SAE7B;AACM,eAAI,aAAa,MAAM;AAAA,EAClC;AACJ;AAPS;AAQT,SAAS,0CAA0C,OAAO;AAChD,UAAE,OAAW;AACnB,QAAM,SAAS;AAAA,IACX,EAAE,UAAU,OAAO,KAAK,QAAQ,OAAO,OAAO,KAAK;AAAA;AAEnD,aAAO,QAAQ,MAAM;AACrB,WAAO,KAAK;AAAA,MACR,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,OAAO;AAAA,KACjB;AAAA,EACL;AACO,cAAK,EAAE,UAAU,OAAO,KAAK,UAAU,OAAO,MAAM,IAAI;AAC3D,YAAM,KAAK,QAAQ;AACnB,WAAO,KAAK;AAAA,MACR,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO;AAAA,QACH,SAAS;AAAA,UACL,MAAM;AAAA,UACN,UAAU;AAAA,UACV,SAAS,MAAM,KACV,IAAI,SAAO,GAAG,IAAI,IAAI,GAAG,eAAe,GAAG,CAAC,EAAE,EAC9C,KAAK,GAAG;AAAA,UACb,SAAS;AAAA,UACT,OAAO,MAAM;AAAA,QACjB;AAAA,MACJ;AAAA,KACH;AAAA,EACL;AACI,aAAO,YAAY,MAAM;AACzB,WAAO,KAAK;AAAA,MACR,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,OAAO;AAAA,KACjB;AAAA,EACL;AACI,YAAM,MAAM,QAAQ;AACpB,WAAO,KAAK;AAAA,MACR,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,MAAM,MAAM,IAAI,CAAS,gBAAM,OAAO,IAAI;AAAA,KACpD;AAAA,EACL;AACA,MAAI,OAAO,KAAK,MAAM,OAAO,IAAI,EAAE,QAAQ;AACvC,WAAO,KAAK;AAAA,MACR,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,MAAM,OAAO;AAAA,KACvB;AAAA,EACL;AACA,SAAO,KAAK;AAAA,IACR,KAAK;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,MACH,SAAS;AAAA,QACL,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS,MAAM,MAAM,IAAI,WAAS,MAAM,KAAK,IAAI,CAAC,EAAE,KAAK,KAAK;AAAA,QAC9D,SAAS;AAAA,QACT,OAAO,MAAM;AAAA,MACjB;AAAA,IACJ;AAAA,GACH;AACM;AACX;AAjES;AAqET,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,aAAa;AAEnB,MAAM,OAAO;AACb,MAAM,UAAU;AAChB,MAAM,UAAU;AAChB,SAAS,8BAA8B,OAAO;AAC1C,QAAM,OAAO;AACP,UAAE,OAAW;AACf,aAAO,QAAQ,MAAM;AACrB,SAAK,KAAK;AAAA,MACN,OAAO,OAAO,OAAO,IAAI;AAAA,MACzB,WAAW;AAAA,MACX,iBAAiB;AAAA,KACpB;AAAA,EACL;AACA,MAAI,OAAO,SAAS;AAChB,SAAK,KAAK;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,iBAAiB;AAAA,KACpB;AAAA,EACL;AACA,MAAI,MAAM,YAAY;AAClB,SAAK,KAAK;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,iBAAiB;AAAA,KACpB;AAAA,EACL;AACA,MAAI,MAAM,kBAAkB;AACxB,SAAK,KAAK;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,iBAAiB;AAAA,KACpB;AAAA,EACL;AACA,MAAI,MAAM,aAAa;AACnB,SAAK,KAAK;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,iBAAiB;AAAA,KACpB;AAAA,EACL;AACA,MAAI,OAAO,UAAU;AACjB,SAAK,KAAK;AAAA,MACN,OAAO,OAAO,OAAO,aAAa,WAC5B,aAAa,OAAO,QAAQ,KAC5B;AAAA,MACN,WAAW;AAAA,MACX,iBAAiB;AAAA,KACpB;AAAA,EACL;AAGA,MAAI7G,MAAK,OAAO;AAChB,MAAIA,OAAM,MAAM;AACZ,IAAAA,MAAK,OAAO,eAAe;AAC3B,WAAO,UAAUA;AAAA,EACrB;AACO;AAAA,IACH,IAAAA;AAAA,IACA,OAAO,OAAO;AAAA,IACd;AAAA,IACA,UAAU,MAAM,SAAS,IAAI,6BAA6B;AAAA;AAElE;AA5DS;AA8DT,IAAI,gBAAgB;AACpB,MAAM,oBAAoB;AAC1B,SAAS,sBAAsB,OAAO,cAAc;AAGhD,QAAM,gBAAgB,aAAa,QAAQ,UACvC,kBAAkB,aAAa,QAAQ,aAAa,QAAQ,SAAS,CAAC,GAAG,MAAM,MAAM;AACnF,2BAAmB,MAAM,cAAc;AAC7C,MAAI,CAAC,eAAe;AACV,wBAAc,aAAa,QAAQ,KAAK,WAAS,kBAAkB,OAAO,MAAM,MAAM,CAAC;AAAA,EACjG;AACA,QAAM,SAAS,QAAQ,gBAAc,sBAAsB,YAAY,YAAY,CAAC;AACxF;AAVS;AAWT,SAAS,6BAA6B,OAAO;AACzC,QAAM,aAAa;AACb,iBAAS,QAAQ,4BAA4B;AACvD;AAHS;AAIT,SAAS,gBAAgB,OAAOkE,SAAQ;AACpC,QAAM,QAAQ,OAAO,MAAM,EAAE,EAAE,MAAM,iBAAiB;AACtD,QAAM,aAAa;AACnB,MAAI,CAAC,SAAS,MAAM,SAAS,GAAG;AACrB;AAAA,EACX;AAEA,QAAM,cAAc,IAAI,OAAO,MAAM,CAAC,EAAE,QAAQ,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;AAChE,kBAAY,KAAKA,OAAM,GAAG;AAE1B,UAAM,SAAS,QAAQ,WAAS,gBAAgB,OAAOA,OAAM,CAAC;AAE9D,QAAI,MAAM,OAAO,SAAS,OAAOA,YAAW,KAAK;AAC7C,YAAM,aAAa,MAAM,GAAG,KAAKA,OAAM;AAChC;AAAA,IACX;AAEO;AAAA,EACX;AACA,QAAM,OAAO,MAAM,OAAO,KAAK,YAAY;AACrC,sBAAc,OAAO,IAAI;AAE3B,OAACA,QAAO,WAAW,GAAG,MACrB,YAAY,SAASA,OAAM,KAAK,KAAK,SAASA,OAAM;AAC9C;AACX,MAAI,YAAY,WAAWA,OAAM,KAAK,KAAK,WAAWA,OAAM;AACjD;AACP,YAAM,OAAO,QAAQ,OAAO,MAAM,OAAO,IAAI,EAAE,SAASA,OAAM;AACvD;AACX,SAAO,MAAM,SAAS,KAAK,WAAS,gBAAgB,OAAOA,OAAM,CAAC;AACtE;AA9BS;AA+BT,SAAS,KAAK,KAAKrE,OAAM;AACrB,QAAM,MAAM;AACZ,aAAW,OAAO,KAAK;AACnB,QAAI,CAACA,MAAK,SAAS,GAAG,GAAG;AAEjB,aAAG,IAAI,IAAI,GAAG;AAAA,IACtB;AAAA,EACJ;AACO;AACX;AATS;AAgBT,SAAS,aAAad,UAAS;AAC3B,QAAM,UAAU,oBAAoBA,SAAQ,QAAQA,QAAO;AACrD,QAAA+zB,gBAAe/zB,SAAQ,cAAc;AACrC,2BAAmBA,SAAQ,kBAAkB;AACnD,QAAM,gBAAgBA,SAAQ;AACzB;AACK,cAAI,MAAM,gIACyD;AAC7E,QAAM,eAAe;AACrB,QAAM,sBAAsB;AAC5B,QAAM,cAAc;AACd,uBAAe,WAAW,yBAAyB;AACzD,MAAI,kBAAkB;AAEtB,MAAI,aAAaA,SAAQ,kBAAkB,uBAAuB,SAAS;AACvE,YAAQ,oBAAoB;AAAA,EAChC;AACA,QAAM,kBAAkB,cAAc,KAAK,MAAM,gBAAc,KAAK,UAAU;AAC9E,QAAM,eAAe,cAAc,KAAK,MAAM,WAAW;AACnD;AAAA;AAAA,IAEN,cAAc,KAAK,MAAM,MAAM;AAAA;AACtB,oBAAS,eAAe,OAAO;AAChC;AACA;AACA,oBAAY,aAAa,GAAG;AACnB,uBAAQ,iBAAiB,aAAa;AAC/C,UAAK,OAAmD;AACpD,aAAK,iBAAiB,OAAO,aAAa,CAAC,uCAAuC,KAAK;AAAA,MAC3F;AACS;AAAA,WAER;AACQ;AAAA,IACb;AACO,mBAAQ,SAAS,QAAQ,MAAM;AAAA,EAC1C;AAdS;AAeT,WAAS,YAAY,MAAM;AACjB,0BAAgB,QAAQ,iBAAiB,IAAI;AACnD,QAAI,eAAe;AACf,cAAQ,YAAY,aAAa;AAAA,eAE3B,OAAwC;AAC9C,WAAK,qCAAqC,OAAO,IAAI,CAAC,GAAG;AAAA,IAC7D;AAAA,EACJ;AARS;AAST,WAAS,YAAY;AACjB,WAAO,QAAQ,YAAY,IAAI,kBAAgB,aAAa,MAAM;AAAA,EACtE;AAFS;AAGT,WAAS,SAAS,MAAM;AACpB,WAAO,CAAC,CAAC,QAAQ,iBAAiB,IAAI;AAAA,EAC1C;AAFS;AAGA,WAAAuC,SAAQ,aAAa,iBAAiB;AAI3C,sBAAkB,OAAO,CAAI,sBAAmB,aAAa,KAAK;AAC9D,eAAO,gBAAgB,UAAU;AACjC,YAAM,qBAAqB,SAASwxB,eAAc,aAAa,gBAAgB,IAAI;AAC7EC,4BAAe,QAAQ,QAAQ,EAAE,MAAM,mBAAmB,QAAQ,eAAe;AACvF,YAAMC,QAAO,cAAc,WAAW,mBAAmB,QAAQ;AACjE,UAAK,OAAwC;AACrCA,kBAAK,WAAW,IAAI;AACpB,eAAK,aAAa,WAAW,kBAAkBA,KAAI,4DAA4D;AAAA,iBAC1G,CAACD,cAAa,QAAQ,QAAQ;AAC9B,yDAA0C,WAAW,GAAG;AAAA,QACjE;AAAA,MACJ;AAEO,oBAAO,oBAAoBA,eAAc;AAAA,QAC5C,QAAQ,aAAaA,cAAa,MAAM;AAAA,QACxC,MAAM,OAAO,mBAAmB,IAAI;AAAA,QACpC,gBAAgB;AAAA,QAChB,MAAAC;AAAAA,MAAA,CACH;AAAA,IACL;AACA,QAAK,OAAyE;AACrE;AAAA,cAA+F,WAAW;AACxG,aAAA1xB,SAAQ,EAAE;AAAA,IACrB;AACI;AAEA,oBAAY,QAAQ,MAAM;AAC1B,UAAK,OAIuC;AACnC,sBAAS,YAAY,IAAI,gGAAgG;AAAA,MAClI;AACkB,+BAAO,CAAC,GAAG,aAAa;AAAA,QACtC,MAAM,SAASwxB,eAAc,YAAY,MAAM,gBAAgB,IAAI,EAAE;AAAA,OACxE;AAAA,WAEA;AAED,YAAM,eAAe,OAAO,CAAC,GAAG,YAAY,MAAM;AAClD,iBAAW,OAAO,cAAc;AACxB,yBAAa,GAAG,KAAK,MAAM;AAC3B,iBAAO,aAAa,GAAG;AAAA,QAC3B;AAAA,MACJ;AAEkB,+BAAO,CAAC,GAAG,aAAa;AAAA,QACtC,QAAQ,aAAa,YAAY;AAAA,OACpC;AAGe,+BAAS,aAAa,gBAAgB,MAAM;AAAA,IAChE;AACA,UAAM,eAAe,QAAQ,QAAQ,iBAAiB,eAAe;AAC/D,iBAAO,YAAY,QAAQ;AACjC,QAAK,OAAyE;AAC1E,WAAK,mEAAmE,IAAI,YAAY,IAAI,IAAI;AAAA,IACpG;AAGA,iBAAa,SAAS,gBAAgB,aAAa,aAAa,MAAM,CAAC;AACvE,UAAM,WAAW,aAAa,kBAAkB,OAAO,IAAI,aAAa;AAAA,MACpE,MAAM,WAAW,IAAI;AAAA,MACrB,MAAM,aAAa;AAAA,IACtB,EAAC;AACI,iBAAO,cAAc,WAAW,QAAQ;AAC9C,QAAK,OAAwC;AACrC,eAAK,WAAW,IAAI,GAAG;AACvB,aAAK,aAAa,WAAW,kBAAkB,IAAI,4DAA4D;AAAA,MAE1G,YAAC,aAAa,QAAQ,QAAQ;AACnC,aAAK,0CAA0C,YAAY,QAAQ,OAAO,YAAY,OAAO,WAAW,GAAG;AAAA,MAC/G;AAAA,IACJ;AACA,WAAO,OAAO;AAAA,MACV;AAAA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMA,qBAAqB,iBACf,eAAe,YAAY,KAAK,IAC/B,YAAY,SAAS,CAAC;AAAA;AAAA,OAC9B,cAAc;AAAA,MACb,gBAAgB;AAAA,MAChB;AAAA,KACH;AAAA,EACL;AAjGS,SAAAxxB,UAAA;AAkGT,WAAS,iBAAiB,IAAI;AAC1B,WAAO,OAAO,OAAO,WACf,SAASwxB,eAAc,IAAI,aAAa,MAAM,IAAI,IAClD,OAAO,IAAI,EAAE;AAAA,EACvB;AAJS;AAKA,mCAAwB,IAAI,MAAM;AACvC,QAAI,oBAAoB,IAAI;AACxB,aAAO,kBAAkB,GAAyC;AAAA,QAC9D;AAAA,QACA;AAAA,OACH;AAAA,IACL;AAAA,EACJ;AAPS;AAQT,WAAS,KAAK,IAAI;AACd,WAAO,iBAAiB,EAAE;AAAA,EAC9B;AAFS;AAGT,WAAS,QAAQ,IAAI;AACV,gBAAK,OAAO,iBAAiB,EAAE,GAAG,EAAE,SAAS,KAAM,EAAC;AAAA,EAC/D;AAFS;AAGT,WAAS,qBAAqB,IAAI;AAC9B,UAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,SAAS,CAAC;AAChD,uBAAe,YAAY,UAAU;AAC/B,cAAE,SAAa;AACrB,UAAI,oBAAoB,OAAO,aAAa,aAAa,SAAS,EAAE,IAAI;AACpE,iBAAO,sBAAsB,UAAU;AAEnC,8CAAkB,SAAS,GAAG,KAAK,kBAAkB,SAAS,GAAG,IAC1D,oBAAoB,iBAAiB,iBAAiB;AAAA;AAAA,UAErD,EAAE,MAAM,kBAAkB;AAAA;AAGtC,0BAAkB,SAAS;MAC/B;AACA,UAAK,OAE+B;AAC3B;AAAA,EAA4B,KAAK,UAAU,mBAAmB,MAAM,CAAC,CAAC;AAAA,uBAA0B,GAAG,QAAQ,2EAA2E;AACrL,kBAAI,MAAM,kBAAkB;AAAA,MACtC;AACA,aAAO,OAAO;AAAA,QACV,OAAO,GAAG;AAAA,QACV,MAAM,GAAG;AAAA;AAAA,QAET,QAAQ,kBAAkB,QAAQ,OAAO,KAAK,GAAG;AAAA,SAClD,iBAAiB;AAAA,IACxB;AAAA,EACJ;AA5BS;AA6BA,4BAAiB,IAAI,gBAAgB;AACpC,2BAAkB,kBAAkBxxB,SAAQ,EAAE;AACpD,UAAM,OAAO,aAAa;AAC1B,UAAMJ,SAAO,GAAG;AAChB,UAAM,QAAQ,GAAG;AAEXsxB,qBAAU,GAAG,YAAY;AACzB,2BAAiB,qBAAqB,cAAc;AACtD;AACO;AAAA,QAAiB,OAAO,iBAAiB,cAAc,GAAG;AAAA,UAC7D,OAAO,OAAO,mBAAmB,WAC3B,OAAO,CAAI,GAAAtxB,QAAM,eAAe,KAAK,IACrCA;AAAA,UACN;AAAA,UACA,SAAAsxB;AAAAA,QAAA,CACH;AAAA;AAAA,QAED,kBAAkB;AAAA;AAEtB,UAAM,aAAa;AACnB,eAAW,iBAAiB;AACxB;AACJ,QAAI,CAAC,SAAS,oBAAoB,kBAAkB,MAAM,cAAc,GAAG;AACvE,gBAAU,kBAAkB,IAA2C,EAAE,IAAI,YAAY,MAAM;AAE/F;AAAA,QAAa;AAAA,QAAM;AAAA;AAAA;AAAA,QAGnB;AAAA;AAAA;AAAA,QAGA;AAAA;AAAA,IACJ;AACA,YAAQ,UAAU,QAAQ,QAAQ,OAAO,IAAI,SAAS,YAAY,IAAI,GACjE,MAAM,CAAC,UAAU,oBAAoB,KAAK;AAAA;AAAA,MAEvC;AAAA,QAAoB;AAAA,QAAO;AAAA;AAAA,UACrB,QACA,YAAY,KAAK;AAAA;AAAA;AAAA,MAEvB,aAAa,OAAO,YAAY,IAAI;AAAA,KAAC,EACxC,KAAK,CAACS,aAAY;AACnB,UAAIA,UAAS;AACL;AAAA,UAAoBA;AAAAA,UAAS;AAAA;AAAA,WAA+C;AAC5E,cAAK,OASc;AACf,iBAAK,mFAAmF,KAAK,QAAQ,SAAS,WAAW,QAAQ;AAAA,gNAAyP;AAC1X,mBAAO,QAAQ,OAAO,IAAI,MAAM,uCAAuC,CAAC;AAAA,UAC5E;AACO;AAAA;AAAA,YAEP,OAAO;AAAA;AAAA,cAEH,SAAAT;AAAAA,YAAA,GACD,iBAAiBS,SAAQ,EAAE,GAAG;AAAA,cAC7B,OAAO,OAAOA,SAAQ,OAAO,WACvB,OAAO,IAAI/xB,QAAM+xB,SAAQ,GAAG,KAAK,IACjC/xB;AAAA,cACN;AAAA,aACH;AAAA;AAAA,YAED,kBAAkB;AAAA;AAAA,QACtB;AAAA,aAEC;AAED+xB,mBAAU,mBAAmB,YAAY,MAAM,MAAMT,UAAStxB,MAAI;AAAA,MACtE;AACiB,mCAAY,MAAM+xB,QAAO;AACnCA;AAAAA,IAAA,CACV;AAAA,EACL;AA/ES;AAqFA,4CAAiC,IAAI,MAAM;AAC1C,kBAAQ,wBAAwB,IAAI,IAAI;AAC9C,WAAO,QAAQ,QAAQ,OAAO,KAAK,IAAI,QAAQ;EACnD;AAHS;AAIT,WAAS,eAAe,IAAI;AACxB,UAAM7yB,OAAM,cAAc,OAAO,EAAE,OAAO;AAEnC,WAAAA,QAAO,OAAOA,KAAI,mBAAmB,aACtCA,KAAI,eAAe,EAAE,IACrB;EACV;AANS;AAQA,oBAAS,IAAI,MAAM;AACpB;AACJ,UAAM,CAAC,gBAAgB,iBAAiB,eAAe,IAAI,uBAAuB,IAAI,IAAI;AAE1F,aAAS,wBAAwB,eAAe,QAAW,uBAAoB,IAAI,IAAI;AAEvF,eAAW,UAAU,gBAAgB;AAC1B,yBAAY,QAAQ,CAAS;AAChC,eAAO,KAAK,iBAAiB,OAAO,IAAI,IAAI,CAAC;AAAA,OAChD;AAAA,IACL;AACA,UAAM,0BAA0B,iCAAiC,KAAK,MAAM,IAAI,IAAI;AACpF,WAAO,KAAK,uBAAuB;AAEnC,WAAQ,cAAc,MAAM,EACvB,KAAK,MAAM;AAEZ,eAAS;AACE,0BAAS,aAAa,QAAQ;AACrC,eAAO,KAAK,iBAAiB,OAAO,IAAI,IAAI,CAAC;AAAA,MACjD;AACA,aAAO,KAAK,uBAAuB;AACnC,aAAO,cAAc,MAAM;AAAA,KAC9B,EACI,KAAK,MAAM;AAEZ,eAAS,wBAAwB,iBAAiB,qBAAqB,IAAI,IAAI;AAC/E,iBAAW,UAAU,iBAAiB;AAC3B,4BAAa,QAAQ,CAAS;AACjC,iBAAO,KAAK,iBAAiB,OAAO,IAAI,IAAI,CAAC;AAAA,SAChD;AAAA,MACL;AACA,aAAO,KAAK,uBAAuB;AAEnC,aAAO,cAAc,MAAM;AAAA,KAC9B,EACI,KAAK,MAAM;AAEZ,eAAS;AACT,iBAAW,UAAU,iBAAiB;AAElC,YAAI,OAAO,aAAa;AAChB,sBAAQ,OAAO,WAAW,GAAG;AAC7B,uBAAW,eAAe,OAAO;AAC7B,qBAAO,KAAK,iBAAiB,aAAa,IAAI,IAAI,CAAC;AAAA,iBAEtD;AACD,mBAAO,KAAK,iBAAiB,OAAO,aAAa,IAAI,IAAI,CAAC;AAAA,UAC9D;AAAA,QACJ;AAAA,MACJ;AACA,aAAO,KAAK,uBAAuB;AAEnC,aAAO,cAAc,MAAM;AAAA,KAC9B,EACI,KAAK,MAAM;AAGZ,SAAG,QAAQ,QAAQ,YAAW,OAAO,iBAAiB,EAAG;AAEzD,eAAS,wBAAwB,iBAAiB,oBAAoB,IAAI,MAAM,cAAc;AAC9F,aAAO,KAAK,uBAAuB;AAEnC,aAAO,cAAc,MAAM;AAAA,KAC9B,EACI,KAAK,MAAM;AAEZ,eAAS;AACE,0BAAS,oBAAoB,QAAQ;AAC5C,eAAO,KAAK,iBAAiB,OAAO,IAAI,IAAI,CAAC;AAAA,MACjD;AACA,aAAO,KAAK,uBAAuB;AACnC,aAAO,cAAc,MAAM;AAAA,KAC9B,EAEI,MAAM,CAAO;AAAA,MAAoB;AAAA,MAAK;AAAA;AAAA,IACrC,UACA,QAAQ,OAAO,GAAG,CAAC;AAAA,EAC7B;AA9ES;AA+EA,4BAAiB,IAAI,MAAM,SAAS;AAIpC,uBACA,QAAQ,CAAS,yBAAe,MAAM,MAAM,IAAI,MAAM,OAAO,CAAC,CAAC;AAAA,EACxE;AANS;AAYT,WAAS,mBAAmB,YAAY,MAAM,QAAQoyB,UAAStxB,QAAM;AAE3D,kBAAQ,wBAAwB,YAAY,IAAI;AAClD;AACO;AAEX,UAAM,oBAAoB,SAAS;AACnC,UAAM,QAAQ,CAAC,YAAY,KAAK,QAAQ;AAGxC,QAAI,QAAQ;AAGR,UAAIsxB,YAAW;AACG,8BAAQ,WAAW,UAAU,OAAO;AAAA,UAC9C,QAAQ,qBAAqB,SAAS,MAAM;AAAA,WAC7CtxB,MAAI,CAAC;AAAA;AAEM,2BAAK,WAAW,UAAUA,MAAI;AAAA,IACpD;AAEA,iBAAa,QAAQ;AACR,6BAAY,MAAM,QAAQ,iBAAiB;AAC5C;EAChB;AAxBS;AAyBL;AAEJ,WAAS,iBAAiB;AAElB;AACA;AACJ,4BAAwB,cAAc,OAAO,CAAC,IAAI,OAAO,SAAS;AAC9D,UAAI,CAAC0xB,QAAO;AACR;AAEE,yBAAatxB,SAAQ,EAAE;AAIvB,6BAAiB,qBAAqB,UAAU;AACtD,UAAI,gBAAgB;AACC,gCAAO,gBAAgB,EAAE,SAAS,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI;AAClF;AAAA,MACJ;AACkB;AAClB,YAAM,OAAO,aAAa;AAE1B,UAAI,WAAW;AACX,2BAAmB,aAAa,KAAK,UAAU,KAAK,KAAK,GAAG,uBAAuB;AAAA,MACvF;AACA,eAAS,YAAY,IAAI,EACpB,MAAM,CAAC,UAAU;AACd;AAAA,UAAoB;AAAA,UAAO,IAAwC;AAAA;AAAA,WAA0C;AACtG;AAAA,QACX;AACI;AAAA,UAAoB;AAAA,UAAO;AAAA;AAAA,WAA+C;AAU1E;AAAA,YAAiB,MAAM;AAAA,YAAI;AAAA;AAAA,YAGtB,KAAK,CAAW;AAIb;AAAA,cAAoB;AAAA,cAAS,IAC7B;AAAA;AAAA,iBACA,CAAC,KAAK,SACN,KAAK,SAAS,eAAe,KAAK;AACpB,+BAAG,IAAI,KAAK;AAAA,YAC9B;AAAA,WACH,EACI,MAAM,IAAI;AAEf,iBAAO,QAAQ;QACnB;AAEA,YAAI,KAAK,OAAO;AACZ,wBAAc,GAAG,CAAC,KAAK,OAAO,KAAK;AAAA,QACvC;AAEO,4BAAa,OAAO,YAAY,IAAI;AAAA,OAC9C,EACI,KAAK,CAAC,YAAY;AACnB,kBACI,WACI;AAAA;AAAA,UAEA;AAAA,UAAY;AAAA,UAAM;AAAA;AAE1B,YAAI,SAAS;AACT,cAAI,KAAK;AAAA;AAAA,UAGL,CAAC;AAAA,YAAoB;AAAA,YAAS;AAAA;AAAA,aAA0C;AACxE,0BAAc,GAAG,CAAC,KAAK,OAAO,KAAK;AAAA,UAE9B,gBAAK,SAAS,eAAe,OAClC;AAAA,YAAoB;AAAA,YAAS,IAAwC;AAAA;AAAA,aAA4C;AAGnG,6BAAG,IAAI,KAAK;AAAA,UAC9B;AAAA,QACJ;AACiB,qCAAY,MAAM,OAAO;AAAA,OAC7C,EAEI,MAAM,IAAI;AAAA,KAClB;AAAA,EACL;AAzFS;AA2FT,MAAI,gBAAgB;AACpB,MAAI,iBAAiB;AACjB;AASK,wBAAa,OAAO,IAAI,MAAM;AACnC,gBAAY,KAAK;AACX,iBAAO,eAAe;AAC5B,QAAI,KAAK,QAAQ;AACb,WAAK,QAAQ,CAAWV,sBAAQ,OAAO,IAAI,IAAI,CAAC;AAAA,WAE/C;AACD,UAAK,OAAwC;AACzC,aAAK,yCAAyC;AAAA,MAClD;AACA,cAAQ,MAAM,KAAK;AAAA,IACvB;AAEO,mBAAQ,OAAO,KAAK;AAAA,EAC/B;AAdS;AAeT,WAAS,UAAU;AACX,iBAAS,aAAa,UAAU;AAChC,aAAO,QAAQ;AACnB,WAAO,IAAI,QAAQ,CAACU,WAASS,YAAW;AACpC,oBAAc,IAAI,CAACT,WAASS,OAAM,CAAC;AAAA,KACtC;AAAA,EACL;AANS;AAOT,WAAS,YAAY,KAAK;AACtB,QAAI,CAAC,OAAO;AAER,cAAQ,CAAC;AACM;AACf,oBACK,KAAK,EACL,QAAQ,CAAC,CAACT,WAASS,OAAM,MAAO,MAAMA,QAAO,GAAG,IAAIT,UAAU;AACnE,oBAAc,MAAM;AAAA,IACxB;AACO;AAAA,EACX;AAXS;AAaT,WAAS,aAAa,IAAI,MAAM,QAAQ,mBAAmB;AACjD,YAAE,eAAmB,IAAAvC;AACvB,SAAC,aAAa,CAAC;AACf,aAAO,QAAQ;AACnB,UAAM,iBAAkB,CAAC,UAAU,uBAAuB,aAAa,GAAG,UAAU,CAAC,CAAC,MAChF,qBAAqB,CAAC,WACpB,QAAQ,SACR,QAAQ,MAAM,UAClB;AACG,sBACF,KAAK,MAAM,eAAe,IAAI,MAAM,cAAc,CAAC,EACnD,KAAK,eAAYoK,aAAY,iBAAiBA,SAAQ,CAAC,EACvD,MAAM,SAAO,aAAa,KAAK,IAAI,IAAI,CAAC;AAAA,EACjD;AAbS;AAcT,QAAM,KAAK,wBAACia,WAAU,cAAc,GAAGA,MAAK,GAAjC;AACP;AACE,4CAAoB;AAC1B,QAAMwP,UAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,aAAa,QAAQ;AAAA,IACrB;AAAA,IACA;AAAA,IACA,SAAAtxB;AAAA,IACA,SAAAvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM,6BAAM,GAAG,EAAE,GAAX;AAAA,IACN,SAAS,6BAAM,GAAG,CAAC,GAAV;AAAA,IACT,YAAY,aAAa;AAAA,IACzB,eAAe,oBAAoB;AAAA,IACnC,WAAW,YAAY;AAAA,IACvB,SAAS,eAAe;AAAA,IACxB;AAAA,IACA,QAAQqB,MAAK;AACT,YAAMwyB,WAAS;AACX,MAAAxyB,KAAA,UAAU,cAAc,UAAU;AAClC,MAAAA,KAAA,UAAU,cAAc,UAAU;AAClC,MAAAA,KAAA,OAAO,iBAAiB,UAAUwyB;AACtC,aAAO,eAAexyB,KAAI,OAAO,kBAAkB,UAAU;AAAA,QACzD,YAAY;AAAA,QACZ,KAAK,6BAAM,MAAM,YAAY,GAAxB;AAAA,MAAwB,CAChC;AAIG;AAAA;AAAA,MAGA,CAAC,WACD,aAAa,UAAU,2BAA2B;AAExC;AACV,aAAK,cAAc,QAAQ,EAAE,MAAM,CAAO;AACjC;AACD,iBAAK,8CAA8C,GAAG;AAAA,SAC7D;AAAA,MACL;AACA,YAAM,gBAAgB;AACtB,iBAAW,OAAO,2BAA2B;AAClC,8BAAe,eAAe,KAAK;AAAA,UACtC,KAAK,6BAAM,aAAa,MAAM,GAAG,GAA5B;AAAA,UACL,YAAY;AAAA,SACf;AAAA,MACL;AACI,MAAAA,KAAA,QAAQ,WAAWwyB,QAAM;AAC7B,MAAAxyB,KAAI,QAAQ,kBAAkB,gBAAgB,aAAa,CAAC;AACxD,MAAAA,KAAA,QAAQ,uBAAuB,YAAY;AAC/C,YAAM,aAAaA,KAAI;AACvB,oBAAc,IAAIA,IAAG;AACrB,MAAAA,KAAI,UAAU,WAAY;AACtB,sBAAc,OAAOA,IAAG;AAEpB,0BAAc,OAAO,GAAG;AAEN;AAClB,mCAAyB,sBAAsB;AACvB;AACxB,uBAAa,QAAQ;AACX;AACF;AAAA,QACZ;AACW;MAAA;AAGf,UAAgD,OAAqC;AACrE,oBAAAA,MAAKwyB,UAAQ,OAAO;AAAA,MACpC;AAAA,IACJ;AAAA;AAGJ,WAAS,cAAc,QAAQ;AAC3B,WAAO,OAAO,OAAO,CAAC,SAAS,UAAU,QAAQ,KAAK,MAAM,eAAe,KAAK,CAAC,GAAG,QAAQ,QAAS;AAAA,EACzG;AAFS;AAGF,SAAAA;AACX;AAxoBS;AAyoBT,SAAS,uBAAuB,IAAI,MAAM;AACtC,QAAM,iBAAiB;AACvB,QAAM,kBAAkB;AACxB,QAAM,kBAAkB;AAClB,cAAM,KAAK,IAAI,KAAK,QAAQ,QAAQ,GAAG,QAAQ,MAAM;AAC3D,WAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AACpB,uBAAa,KAAK,QAAQ,CAAC;AACjC,QAAI,YAAY;AACZ,UAAI,GAAG,QAAQ,KAAK,YAAU,kBAAkB,QAAQ,UAAU,CAAC;AAC/D,wBAAgB,KAAK,UAAU;AAAA;AAE/B,uBAAe,KAAK,UAAU;AAAA,IACtC;AACM,qBAAW,GAAG,QAAQ,CAAC;AAC7B,QAAI,UAAU;AAEN,WAAC,KAAK,QAAQ,KAAK,YAAU,kBAAkB,QAAQ,QAAQ,CAAC,GAAG;AACnE,wBAAgB,KAAK,QAAQ;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ;AACO,UAAC,gBAAgB,iBAAiB,eAAe;AAC5D;AAtBS;AA4BT,SAAS,YAAY;AACjB,SAAO,OAAO,SAAS;AAC3B;AAFS;AAOT,SAAS,SAAS,OAAO;AACrB,SAAO,OAAO,gBAAgB;AAClC;AAFS;;;;;SCtpHUxL,UAAA,GAAAC,mBAAA;AAAA;;;;;ACSnB,MAAM,iBAAiB,OAAO,SAAS,aAAa;AACpD,MAAM,WAAW,eAAe,MAAM,OAAO,SAAS;AAEtD,MAAM,sBAAsB,wBAC1B,IACA,MACA3lB,UACG;AACH,MAAI,cAAc;AACX,IAAAA;EAAA,OACA;AACL,IAAAA,MAAK,GAAG;AAAA,EACV;AACF,GAV4B;AAY5B,MAAM,SAAS,aAAa;AAAA,EAC1B,SAAS,iBACL,qBAAqB;AAAA;AAAA;AAAA;AAAA,IAIrB,iBAAiB,QAAQ;AAAA;AAAA,EAC7B,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,WAAW,6BAAM,2BAAO,yBAAuB,mEAApC;AAAA,UACX,aAAa,8BAAO,IAAI,MAAMA,UAAS;AACrC,kBAAM,YAAY;AAClB,kBAAM,UAAU;AAChB,gBAAI,UAAU,YAAY;AACxB,cAAAA,MAAK,cAAc;AAAA,mBACd;AACA,cAAAA;YACP;AAAA,UACF,GARa;AAAA,QASf;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,WAAW,6BAAM,2BAAO,8BAA4B,yCAAzC;AAAA,QACb;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,WAAW,6BAAM,2BAAO,+BAA6B,+DAA1C;AAAA,UACX,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,WAAW,6BAAM,2BAAO,2BAAyB,+DAAtC;AAAA,UACX,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,WAAW,6BAAM,2BAAO,2BAAyB,+DAAtC;AAAA,UACX,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,WAAW,6BAAM,2BAAO,gCAA8B,yCAA3C;AAAA,UACX,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,WAAW,6BAAM,2BAAO,+BAA6B,yCAA1C;AAAA,UACX,aAAa;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,eAAe,IAAI,MAAM,eAAe;AACtC,QAAI,eAAe;AACV;AAAA,WACF;AACE,eAAE,KAAK;IAChB;AAAA,EACF;AACF,CAAC;AClGD,IAAInD,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,OAAO;AAAA,IACL,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACD,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,YAAY;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,kBAAkB;AAAA,IACnB;AAAA,IACD,OAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,aAAa;AAAA,IACd;AAAA,IACD,MAAM;AAAA,MACJ,oBAAoB;AAAA,MACpB,0BAA0B;AAAA,IAC3B;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,SAAS;AAAA,EACV;AACH;AClDA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,SAAS;AAAA,EACV;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,MAAM;AAAA,IACJ,cAAc;AAAA,EACf;AAAA,EACD,cAAc;AAAA,IACZ,SAAS;AAAA,EACV;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACH;AChGA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,EACf;AAAA,EACD,OAAO;AAAA,IACL,aAAa;AAAA,IACb,QAAQ;AAAA,EACT;AAAA,EACD,IAAI;AAAA,IACF,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,EACX;AAAA,EACD,IAAI;AAAA,IACF,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,EACX;AACH;ACtBA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,SAAS;AAAA,IACT,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,EACT;AAAA,EACD,KAAK;AAAA,IACH,MAAM;AAAA,EACP;AAAA,EACD,IAAI;AAAA,IACF,UAAU;AAAA,IACV,UAAU;AAAA,IACV,QAAQ;AAAA,EACT;AAAA,EACD,IAAI;AAAA,IACF,UAAU;AAAA,IACV,UAAU;AAAA,IACV,QAAQ;AAAA,EACT;AAAA,EACD,IAAI;AAAA,IACF,UAAU;AAAA,IACV,UAAU;AAAA,IACV,QAAQ;AAAA,EACT;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;ACzFA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,EACf;AACH;ACJA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,KAAK;AAAA,IACL,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,YAAY;AAAA,IACb;AAAA,IACD,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,WAAW;AAAA,IACT,OAAO;AAAA,EACR;AACH;AC3BA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,qBAAqB;AAAA,IACrB,KAAK;AAAA,IACL,UAAU;AAAA,IACV,UAAU;AAAA,IACV,eAAe;AAAA,IACf,IAAI;AAAA,MACF,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACX;AAAA,IACD,IAAI;AAAA,MACF,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACX;AAAA,IACD,OAAO;AAAA,MACL,YAAY;AAAA,IACb;AAAA,IACD,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,IACT;AAAA,IACD,WAAW;AAAA,IACX,oBAAoB;AAAA,EACrB;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,WAAW;AAAA,UACT,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,SAAS;AAAA,UACP,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,QAAQ;AAAA,UACN,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,UAAU;AAAA,UACR,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,UAAU;AAAA,QACR,SAAS;AAAA,UACP,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,WAAW;AAAA,UACT,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,SAAS;AAAA,UACP,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,QAAQ;AAAA,UACN,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,UAAU;AAAA,UACR,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,OAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,MACF;AAAA,MACD,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,WAAW;AAAA,UACT,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,SAAS;AAAA,UACP,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,QAAQ;AAAA,UACN,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,OAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,MACF;AAAA,MACD,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,WAAW;AAAA,UACT,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,SAAS;AAAA,UACP,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,QAAQ;AAAA,UACN,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,QACD,UAAU;AAAA,UACR,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,mBAAmB;AAAA,UACnB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,UAAU;AAAA,QACR,SAAS;AAAA,UACP,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,WAAW;AAAA,UACT,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,SAAS;AAAA,UACP,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,QAAQ;AAAA,UACN,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,UAAU;AAAA,UACR,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,QACD,OAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,aAAa;AAAA,UACb,OAAO;AAAA,QACR;AAAA,MACF;AAAA,MACD,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,WAAW;AAAA,UACT,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,SAAS;AAAA,UACP,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,MAAM;AAAA,UACJ,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,QAAQ;AAAA,UACN,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,QACD,OAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,kBAAkB;AAAA,UAClB,OAAO;AAAA,QACR;AAAA,MACF;AAAA,MACD,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACH;ACteA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,SAAS;AAAA,IACP,KAAK;AAAA,EACN;AAAA,EACD,OAAO;AAAA,IACL,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,EACR;AACH;ACrBA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,SAAS;AAAA,IACP,KAAK;AAAA,EACN;AAAA,EACD,eAAe;AAAA,IACb,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,WAAW;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,MACnB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AACH;ACvCA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,SAAS;AAAA,IACT,cAAc;AAAA,IACd,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,MAAM;AAAA,IACP;AAAA,EACF;AACH;ACzDA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,4BAA4B;AAAA,IAC5B,oBAAoB;AAAA,IACpB,QAAQ;AAAA,IACR,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,eAAe;AAAA,EAChB;AACH;ACnCA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,UAAU;AAAA,IACV,UAAU;AAAA,IACV,KAAK;AAAA,IACL,oBAAoB;AAAA,EACrB;AAAA,EACD,OAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,MAAM;AAAA,IACJ,MAAM;AAAA,EACP;AAAA,EACD,YAAY;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,MACD,YAAY;AAAA,QACV,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,OAAO;AAAA,MACR;AAAA,MACD,YAAY;AAAA,QACV,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;ACnDA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,SAAS;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,MACD,QAAQ;AAAA,QACN,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,MACD,QAAQ;AAAA,QACN,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;ACxCA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AAAA,EACD,SAAS;AAAA,IACP,KAAK;AAAA,EACN;AACH;ACRA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,aAAa;AAAA,EACd;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AAAA,EACD,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,SAAS;AAAA,EACV;AACH;ACtBA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,IACd,KAAK;AAAA,IACL,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,aAAa;AAAA,IACd;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,WAAW;AAAA,IACT,aAAa;AAAA,EACd;AACH;ACrCA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,aAAa;AAAA,IACb,SAAS;AAAA,EACV;AAAA,EACD,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,aAAa;AAAA,IACb,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,KAAK;AAAA,IACL,SAAS;AAAA,IACT,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,YAAY;AAAA,EACb;AAAA,EACD,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,aAAa;AAAA,IACb,SAAS;AAAA,EACV;AAAA,EACD,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,EACV;AAAA,EACD,cAAc;AAAA,IACZ,YAAY;AAAA,EACb;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,aAAa;AAAA,IACb,SAAS;AAAA,EACV;AAAA,EACD,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACb;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACD,iBAAiB;AAAA,IACf,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,IACzB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,MAAM;AAAA,IACN,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,eAAe;AAAA,MACb,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,cAAc;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,IACT;AAAA,IACD,gBAAgB;AAAA,MACd,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,cAAc;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,KAAK;AAAA,IACN;AAAA,IACD,MAAM;AAAA,MACJ,aAAa;AAAA,IACd;AAAA,IACD,gBAAgB;AAAA,MACd,SAAS;AAAA,MACT,KAAK;AAAA,IACN;AAAA,IACD,YAAY;AAAA,MACV,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,yBAAyB;AAAA,MACzB,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,oBAAoB;AAAA,MACpB,WAAW;AAAA,QACT,aAAa;AAAA,MACd;AAAA,MACD,SAAS;AAAA,MACT,cAAc;AAAA,IACf;AAAA,EACF;AAAA,EACD,cAAc;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACD,iBAAiB;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,aAAa;AAAA,MACd;AAAA,MACD,KAAK;AAAA,QACH,mBAAmB;AAAA,MACpB;AAAA,MACD,UAAU;AAAA,QACR,qBAAqB;AAAA,MACtB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,aAAa;AAAA,MACd;AAAA,MACD,KAAK;AAAA,QACH,mBAAmB;AAAA,MACpB;AAAA,MACD,UAAU;AAAA,QACR,qBAAqB;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AACH;ACxKA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,SAAS;AAAA,EACV;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,cAAc;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACD,iBAAiB;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AACH;ACvCA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,SAAS;AAAA,EACV;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAK;AAAA,EACN;AAAA,EACD,OAAO;AAAA,IACL,KAAK;AAAA,IACL,YAAY;AAAA,EACb;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,WAAW;AAAA,IACT,OAAO;AAAA,EACR;AAAA,EACD,aAAa;AAAA,IACX,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,YAAY;AAAA,IACV,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,OAAO;AAAA,IACL,aAAa;AAAA,IACb,KAAK;AAAA,EACN;AAAA,EACD,SAAS;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,OAAO;AAAA,EACR;AAAA,EACD,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,SAAS;AAAA,IACT,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,WAAW;AAAA,IACT,QAAQ;AAAA,EACT;AAAA,EACD,OAAO;AAAA,IACL,cAAc;AAAA,EACf;AAAA,EACD,UAAU;AAAA,IACR,QAAQ;AAAA,EACT;AAAA,EACD,MAAM;AAAA,IACJ,cAAc;AAAA,EACf;AAAA,EACD,WAAW;AAAA,IACT,SAAS;AAAA,IACT,aAAa;AAAA,EACd;AAAA,EACD,YAAY;AAAA,IACV,SAAS;AAAA,IACT,aAAa;AAAA,IACb,KAAK;AAAA,IACL,WAAW;AAAA,EACZ;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,MACD,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,MACD,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;AC3IA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,EACT;AAAA,EACD,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,OAAO;AAAA,IACL,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,EACV;AAAA,EACD,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AACH;ACvBA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,aAAa;AAAA,EACd;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,OAAO;AAAA,EACR;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAAS;AAAA,MACP,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAAS;AAAA,MACP,SAAS;AAAA,IACV;AAAA,EACF;AACH;ACtBA,IAAIA,WAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AACH;ACnBA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,EACT;AAAA,EACD,QAAQ;AAAA,IACN,SAAS;AAAA,EACV;AAAA,EACD,OAAO;AAAA,IACL,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,EACV;AACH;AClBA,IAAIA,UAAQ;AAAA,EACV,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,EACV;AAAA,EACD,eAAe;AAAA,IACb,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,EACf;AACH;AChCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,oBAAoB;AAAA,EACrB;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,KAAK;AAAA,IACL,YAAY;AAAA,IACZ,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,YAAY;AAAA,IACV,OAAO;AAAA,IACP,YAAY;AAAA,EACb;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,EACV;AACH;ACnCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,oBAAoB;AAAA,EACrB;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,aAAa;AAAA,IACb,cAAc;AAAA,IACd,KAAK;AAAA,EACN;AAAA,EACD,SAAS;AAAA,IACP,sBAAsB;AAAA,IACtB,SAAS;AAAA,EACV;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,IACL,aAAa;AAAA,IACb,MAAM;AAAA,MACJ,KAAK;AAAA,IACN;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,QAAQ;AAAA,EACT;AAAA,EACD,OAAO;AAAA,IACL,KAAK;AAAA,EACN;AACH;AClCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,oBAAoB;AAAA,EACrB;AACH;ACPA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,oBAAoB;AAAA,EACrB;AAAA,EACD,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,cAAc;AAAA,IACf;AAAA,IACD,MAAM;AAAA,MACJ,cAAc;AAAA,IACf;AAAA,IACD,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACD,mBAAmB;AAAA,IACjB,YAAY;AAAA,IACZ,SAAS;AAAA,EACV;AAAA,EACD,oBAAoB;AAAA,IAClB,MAAM;AAAA,IACN,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,wBAAwB;AAAA,IACtB,MAAM;AAAA,EACP;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,SAAS;AAAA,EACV;AAAA,EACD,eAAe;AAAA,IACb,KAAK;AAAA,IACL,SAAS;AAAA,EACV;AAAA,EACD,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,oBAAoB;AAAA,IAClB,YAAY;AAAA,EACb;AAAA,EACD,sBAAsB;AAAA,IACpB,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,EACnB;AAAA,EACD,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,OAAO;AAAA,EACR;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,iBAAiB;AAAA,IACf,MAAM;AAAA,EACP;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,oBAAoB;AAAA,QAClB,iBAAiB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MACb;AAAA,MACD,iBAAiB;AAAA,QACf,YAAY;AAAA,QACZ,iBAAiB;AAAA,MAClB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,oBAAoB;AAAA,QAClB,iBAAiB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MACb;AAAA,MACD,iBAAiB;AAAA,QACf,YAAY;AAAA,QACZ,iBAAiB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACH;AC/HA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,OAAO;AAAA,EACR;AACH;ACJA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,SAAS;AAAA,IACP,MAAM;AAAA,MACJ,MAAM;AAAA,IACP;AAAA,IACD,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,UAAU;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,MACL,QAAQ;AAAA,IACT;AAAA,IACD,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AACH;AC3CA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,KAAK;AAAA,EACN;AAAA,EACD,MAAM;AAAA,IACJ,YAAY;AAAA,EACb;AAAA,EACD,MAAM;AAAA,IACJ,MAAM;AAAA,EACP;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACH;AC1FA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,SAAS;AAAA,IACP,iBAAiB;AAAA,IACjB,YAAY;AAAA,EACb;AACH;ACjBA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,iBAAiB;AAAA,QACjB,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,iBAAiB;AAAA,QACjB,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;AC3CA,IAAIA,UAAQ;AAAA,EACV,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,EACf;AACH;ACPA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,cAAc;AAAA,IACd,iBAAiB;AAAA,EAClB;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACH;ACrCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,IACpB,IAAI;AAAA,MACF,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACX;AAAA,IACD,IAAI;AAAA,MACF,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACX;AAAA,EACF;AACH;ACpCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,IACpB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,OAAO;AAAA,IACL,YAAY;AAAA,EACb;AAAA,EACD,OAAO;AAAA,IACL,YAAY;AAAA,EACb;AAAA,EACD,MAAM;AAAA,IACJ,OAAO;AAAA,EACR;AACH;ACpBA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,SAAS;AAAA,EACV;AAAA,EACD,WAAW;AAAA,IACT,OAAO;AAAA,IACP,aAAa;AAAA,IACb,WAAW;AAAA,EACZ;AAAA,EACD,cAAc;AAAA,IACZ,SAAS;AAAA,EACV;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,mBAAmB;AAAA,MACpB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,mBAAmB;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AACH;ACjEA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,KAAK;AAAA,IACL,qBAAqB;AAAA,MACnB,SAAS;AAAA,MACT,KAAK;AAAA,IACN;AAAA,IACD,uBAAuB;AAAA,MACrB,SAAS;AAAA,IACV;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,UAAU;AAAA,IACR,cAAc;AAAA,IACd,SAAS;AAAA,EACV;AAAA,EACD,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,IACd,KAAK;AAAA,IACL,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,aAAa;AAAA,IACd;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,EACN;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,cAAc;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,EACR;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,WAAW;AAAA,IACT,aAAa;AAAA,EACd;AAAA,EACD,cAAc;AAAA,IACZ,cAAc;AAAA,IACd,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AACH;AC7EA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,KAAK;AAAA,IACL,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,YAAY;AAAA,IACb;AAAA,EACF;AAAA,EACD,cAAc;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,EACR;AAAA,EACD,WAAW;AAAA,IACT,aAAa;AAAA,EACd;AACH;AClCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,KAAK;AAAA,IACL,SAAS;AAAA,IACT,oBAAoB;AAAA,EACrB;AAAA,EACD,UAAU;AAAA,IACR,cAAc;AAAA,IACd,SAAS;AAAA,EACV;AAAA,EACD,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,IACd,KAAK;AAAA,IACL,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,aAAa;AAAA,IACd;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,IACL,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,WAAW;AAAA,IACT,aAAa;AAAA,EACd;AAAA,EACD,cAAc;AAAA,IACZ,cAAc;AAAA,IACd,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AACH;AC7DA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,aAAa;AAAA,IACb,oBAAoB;AAAA,EACrB;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AAAA,EACD,MAAM;AAAA,IACJ,MAAM;AAAA,EACP;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,WAAW;AAAA,IACT,MAAM;AAAA,EACP;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACH;AChMA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,KAAK;AAAA,EACN;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,MAAM;AAAA,EACP;AAAA,EACD,OAAO;AAAA,IACL,KAAK;AAAA,EACN;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACD,WAAW;AAAA,IACT,MAAM;AAAA,EACP;AAAA,EACD,WAAW;AAAA,IACT,aAAa;AAAA,IACb,eAAe;AAAA,EAChB;AACH;ACtBA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,SAAS;AAAA,IACT,cAAc;AAAA,IACd,KAAK;AAAA,EACN;AAAA,EACD,aAAa;AAAA,IACX,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,SAAS;AAAA,EACV;AAAA,EACD,MAAM;AAAA,IACJ,cAAc;AAAA,EACf;AAAA,EACD,cAAc;AAAA,IACZ,SAAS;AAAA,EACV;AACH;ACpEA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,EACN;AAAA,EACD,UAAU;AAAA,IACR,KAAK;AAAA,EACN;AACH;ACPA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,aAAa;AAAA,IACb,OAAO;AAAA,IACP,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,mBAAmB;AAAA,IACnB,cAAc;AAAA,EACf;AAAA,EACD,kBAAkB;AAAA,IAChB,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,WAAW;AAAA,IACT,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,EACT;AACH;ACtCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,SAAS;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,IACR;AAAA,EACF;AACH;ACPA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,oBAAoB;AAAA,EACrB;AAAA,EACD,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,mBAAmB;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EACD,iBAAiB;AAAA,IACf,UAAU;AAAA,EACX;AACH;ACjCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,EACf;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,EACf;AAAA,EACD,kBAAkB;AAAA,IAChB,SAAS;AAAA,EACV;AAAA,EACD,OAAO;AAAA,IACL,YAAY;AAAA,EACb;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,EACV;AAAA,EACD,QAAQ;AAAA,IACN,SAAS;AAAA,EACV;AACH;AC3BA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,oBAAoB;AAAA,EACrB;AAAA,EACD,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,MACL,aAAa;AAAA,MACb,iBAAiB;AAAA,IAClB;AAAA,IACD,MAAM;AAAA,MACJ,aAAa;AAAA,MACb,oBAAoB;AAAA,IACrB;AAAA,EACF;AAAA,EACD,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,SAAS;AAAA,IACT,cAAc;AAAA,IACd,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,YAAY;AAAA,IACb;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,EACb;AACH;ACxCA,IAAIA,UAAQ;AAAA,EACV,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,QAAQ;AAAA,EACT;AAAA,EACD,MAAM;AAAA,IACJ,OAAO;AAAA,EACR;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,EACT;AAAA,EACD,SAAS;AAAA,IACP,KAAK;AAAA,EACN;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,UAAU;AAAA,QACR,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,MACnB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,UAAU;AAAA,QACR,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AACH;ACpCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,EACN;AAAA,EACD,UAAU;AAAA,IACR,KAAK;AAAA,EACN;AACH;ACPA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,aAAa;AAAA,EACd;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,EACV;AACH;ACbA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,QAAQ;AAAA,EACT;AAAA,EACD,OAAO;AAAA,IACL,YAAY;AAAA,EACb;AAAA,EACD,OAAO;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AACH;ACdA,IAAIA,UAAQ;AAAA,EACV,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACH;ACnBA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,yBAAyB;AAAA,IACzB,4BAA4B;AAAA,IAC5B,oBAAoB;AAAA,IACpB,QAAQ;AAAA,IACR,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,eAAe;AAAA,EAChB;AACH;ACjCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AACH;ACXA,IAAIA,UAAQ;AAAA,EACV,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,YAAY;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACH;ACbA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,KAAK;AAAA,IACH,MAAM;AAAA,IACN,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,KAAK;AAAA,QACH,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,KAAK;AAAA,QACH,YAAY;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACH;AC3BA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,SAAS;AAAA,EACV;AAAA,EACD,WAAW;AAAA,IACT,OAAO;AAAA,EACR;AAAA,EACD,WAAW;AAAA,IACT,OAAO;AAAA,IACP,aAAa;AAAA,IACb,WAAW;AAAA,EACZ;AAAA,EACD,cAAc;AAAA,IACZ,SAAS;AAAA,EACV;AACH;ACxEA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,oBAAoB;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACH;AChBA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,qBAAqB;AAAA,MACtB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,qBAAqB;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AACH;AClBA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,MAAM;AAAA,EACP;AAAA,EACD,OAAO;AAAA,IACL,YAAY;AAAA,EACb;AAAA,EACD,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,SAAS;AAAA,MACP,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,QAAQ;AAAA,QACN,mBAAmB;AAAA,MACpB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,mBAAmB;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AACH;AC7CA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,KAAK;AAAA,IACL,oBAAoB;AAAA,EACrB;AACH;ACLA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,qBAAqB;AAAA,IACrB,cAAc;AAAA,EACf;AACH;ACNA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,oBAAoB;AAAA,EACrB;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,EACb;AAAA,EACD,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AACH;ACtBA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,MAAM;AAAA,EACP;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,YAAY;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,KAAK;AAAA,EACN;AAAA,EACD,WAAW;AAAA,IACT,OAAO;AAAA,IACP,aAAa;AAAA,IACb,YAAY;AAAA,EACb;AAAA,EACD,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,QAAQ;AAAA,EACT;AAAA,EACD,YAAY;AAAA,IACV,SAAS;AAAA,EACV;AAAA,EACD,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,SAAS;AAAA,EACV;AACH;ACpDA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,WAAW;AAAA,IACT,YAAY;AAAA,EACb;AAAA,EACD,UAAU;AAAA,IACR,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,KAAK;AAAA,EACN;AAAA,EACD,WAAW;AAAA,IACT,OAAO;AAAA,IACP,aAAa;AAAA,IACb,YAAY;AAAA,EACb;AAAA,EACD,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,QAAQ;AAAA,EACT;AACH;ACpCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,SAAS;AAAA,IACP,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,WAAW;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,EACb;AACH;AC1CA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,SAAS;AAAA,IACP,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,WAAW;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,EACb;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,WAAW;AAAA,QACT,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,WAAW;AAAA,QACT,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACH;AC1EA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,KAAK;AAAA,IACH,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,EACR;AAAA,EACD,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,YAAY;AAAA,EACb;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,WAAW;AAAA,QACT,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,WAAW;AAAA,QACT,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACH;ACpCA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,qBAAqB;AAAA,EACtB;AAAA,EACD,MAAM;AAAA,IACJ,MAAM;AAAA,EACP;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;AC1EA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,QAAQ;AAAA,IACN,KAAK;AAAA,EACN;AAAA,EACD,iBAAiB;AAAA,IACf,QAAQ;AAAA,EACT;AACH;ACfA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AACH;AC1BA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc;AAAA,IACd,KAAK;AAAA,IACL,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,aAAa;AAAA,IACd;AAAA,EACF;AAAA,EACD,cAAc;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,OAAO;AAAA,EACR;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,EACd;AAAA,EACD,WAAW;AAAA,IACT,aAAa;AAAA,EACd;AACH;AC3CA,IAAIA,UAAQ;AAAA,EACV,OAAO;AAAA,IACL,WAAW;AAAA,EACZ;AAAA,EACD,YAAY;AAAA,IACV,cAAc;AAAA,MACZ,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,cAAc;AAAA,MACZ,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,MACP,cAAc;AAAA,MACd,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,aAAa;AAAA,IACd;AAAA,EACF;AAAA,EACD,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AACH;AC/BA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,cAAc;AAAA,IACd,aAAa;AAAA,IACb,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,MAAM;AAAA,EACP;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,MAAM;AAAA,IACJ,KAAK;AAAA,EACN;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,UAAU;AAAA,EACX;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,EACX;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,WAAW;AAAA,IACT,MAAM;AAAA,EACP;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,SAAS;AAAA,QACP,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,MACD,UAAU;AAAA,QACR,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACH;ACtNA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,KAAK;AAAA,IACL,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,eAAe;AAAA,EAChB;AAAA,EACD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,eAAe;AAAA,EAChB;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,mBAAmB;AAAA,QACnB,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,oBAAoB;AAAA,MACrB;AAAA,MACD,SAAS;AAAA,QACP,mBAAmB;AAAA,MACpB;AAAA,MACD,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,cAAc;AAAA,MACf;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,mBAAmB;AAAA,QACnB,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,oBAAoB;AAAA,MACrB;AAAA,MACD,SAAS;AAAA,QACP,mBAAmB;AAAA,MACpB;AAAA,MACD,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,cAAc;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACH;ACrEA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,yBAAyB;AAAA,IACzB,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,eAAe;AAAA,IACf,oBAAoB;AAAA,EACrB;AAAA,EACD,QAAQ;AAAA,IACN,cAAc;AAAA,IACd,MAAM;AAAA,IACN,oBAAoB;AAAA,EACrB;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,wBAAwB;AAAA,MACzB;AAAA,MACD,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,wBAAwB;AAAA,MACzB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,wBAAwB;AAAA,MACzB;AAAA,MACD,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,wBAAwB;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AACH;AC3DA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,KAAK;AAAA,IACL,SAAS;AAAA,EACV;AACH;ACTA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,cAAc;AAAA,EACf;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;ACtBA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,oBAAoB;AAAA,EACrB;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,KAAK;AAAA,EACN;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,EAChB;AAAA,EACD,kBAAkB;AAAA,IAChB,cAAc;AAAA,IACd,MAAM;AAAA,IACN,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,IACzB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,EACP;AACH;AClDA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,oBAAoB;AAAA,EACrB;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACD,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,EACT;AAAA,EACD,MAAM;AAAA,IACJ,SAAS;AAAA,EACV;AAAA,EACD,cAAc;AAAA,IACZ,SAAS;AAAA,EACV;AAAA,EACD,MAAM;AAAA,IACJ,cAAc;AAAA,EACf;AACH;AC9CA,IAAIA,UAAQ;AAAA,EACV,MAAM;AAAA,IACJ,oBAAoB;AAAA,EACrB;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,aAAa;AAAA,IACb,SAAS;AAAA,EACV;AAAA,EACD,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,aAAa;AAAA,IACb,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,KAAK;AAAA,IACL,SAAS;AAAA,IACT,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,aAAa;AAAA,IACX,YAAY;AAAA,EACb;AAAA,EACD,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,aAAa;AAAA,IACb,SAAS;AAAA,IACT,KAAK;AAAA,EACN;AAAA,EACD,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,EACV;AAAA,EACD,cAAc;AAAA,IACZ,YAAY;AAAA,EACb;AAAA,EACD,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,OAAO;AAAA,IACP,aAAa;AAAA,IACb,SAAS;AAAA,EACV;AAAA,EACD,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACD,UAAU;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACb;AAAA,EACD,aAAa;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACD,kBAAkB;AAAA,IAChB,iBAAiB;AAAA,IACjB,yBAAyB;AAAA,IACzB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,MAAM;AAAA,IACN,cAAc;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,EACF;AAAA,EACD,cAAc;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACD,iBAAiB;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,EACd;AAAA,EACD,aAAa;AAAA,IACX,OAAO;AAAA,MACL,MAAM;AAAA,QACJ,aAAa;AAAA,MACd;AAAA,MACD,UAAU;AAAA,QACR,qBAAqB;AAAA,MACtB;AAAA,IACF;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,aAAa;AAAA,MACd;AAAA,MACD,UAAU;AAAA,QACR,qBAAqB;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AACH;AC1HA,IAAIA,UAAQ;AAAA,EACV,QAAQ;AAAA,IACN,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,OAAO;AAAA,IACR;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,IACP;AAAA,EACF;AACH;AC4EA,IAAI,QAAQ;AAAA,EACV,WAAW;AAAA,IACT,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACL;AAAA,IACD,SAAS;AAAA,MACP,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,OAAO;AAAA,MACL,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,KAAK;AAAA,MACH,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,OAAO;AAAA,MACL,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,KAAK;AAAA,MACH,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,SAAS;AAAA,MACP,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,OAAO;AAAA,MACL,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,SAAS;AAAA,MACP,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,OAAO;AAAA,MACL,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,oBAAoB;AAAA,IACpB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AAAA,IACD,iBAAiB;AAAA,IACjB,UAAU;AAAA,IACV,cAAc;AAAA,IACd,SAAS;AAAA,MACP,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,IACD,WAAW;AAAA,MACT,UAAU;AAAA,MACV,UAAU;AAAA,MACV,cAAc;AAAA,MACd,WAAW;AAAA,QACT,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,oBAAoB;AAAA,IACrB;AAAA,IACD,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,KAAK;AAAA,MACL,QAAQ;AAAA,QACN,SAAS;AAAA,MACV;AAAA,MACD,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,cAAc;AAAA,MACf;AAAA,MACD,aAAa;AAAA,QACX,SAAS;AAAA,QACT,YAAY;AAAA,MACb;AAAA,IACF;AAAA,IACD,SAAS;AAAA,MACP,cAAc;AAAA,IACf;AAAA,IACD,MAAM;AAAA,MACJ,oBAAoB;AAAA,IACrB;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,KAAK;AAAA,MACN;AAAA,MACD,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,cAAc;AAAA,QACd,KAAK;AAAA,MACN;AAAA,MACD,cAAc;AAAA,QACZ,SAAS;AAAA,QACT,YAAY;AAAA,MACb;AAAA,MACD,aAAa;AAAA,QACX,MAAM;AAAA,MACP;AAAA,IACF;AAAA,IACD,SAAS;AAAA,MACP,QAAQ;AAAA,QACN,cAAc;AAAA,QACd,QAAQ;AAAA,MACT;AAAA,MACD,SAAS;AAAA,QACP,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,MACT;AAAA,MACD,OAAO;AAAA,QACL,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,MACT;AAAA,MACD,YAAY;AAAA,QACV,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,IACD,aAAa;AAAA,MACX,OAAO;AAAA,QACL,SAAS;AAAA,UACP,GAAG;AAAA,UACH,IAAI;AAAA,UACJ,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,QACN;AAAA,QACD,SAAS;AAAA,UACP,OAAO;AAAA,UACP,eAAe;AAAA,UACf,YAAY;AAAA,UACZ,aAAa;AAAA,QACd;AAAA,QACD,WAAW;AAAA,UACT,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,OAAO;AAAA,UACP,YAAY;AAAA,QACb;AAAA,QACD,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,OAAO;AAAA,QACR;AAAA,QACD,WAAW;AAAA,UACT,YAAY;AAAA,UACZ,oBAAoB;AAAA,UACpB,kBAAkB;AAAA,UAClB,uBAAuB;AAAA,UACvB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,kBAAkB;AAAA,UAClB,oBAAoB;AAAA,UACpB,OAAO;AAAA,UACP,eAAe;AAAA,UACf,kBAAkB;AAAA,UAClB,iBAAiB;AAAA,UACjB,sBAAsB;AAAA,UACtB,wBAAwB;AAAA,UACxB,WAAW;AAAA,UACX,QAAQ;AAAA,QACT;AAAA,QACD,MAAM;AAAA,UACJ,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,YAAY;AAAA,UACZ,iBAAiB;AAAA,QAClB;AAAA,QACD,SAAS;AAAA,UACP,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,aAAa;AAAA,UACb,OAAO;AAAA,UACP,YAAY;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,QAAQ;AAAA,YACN,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,OAAO;AAAA,UACR;AAAA,UACD,SAAS;AAAA,YACP,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,OAAO;AAAA,UACR;AAAA,UACD,OAAO;AAAA,YACL,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,MAAM;AAAA,UACJ,QAAQ;AAAA,YACN,iBAAiB;AAAA,YACjB,oBAAoB;AAAA,YACpB,yBAAyB;AAAA,YACzB,OAAO;AAAA,YACP,YAAY;AAAA,YACZ,eAAe;AAAA,YACf,oBAAoB;AAAA,YACpB,MAAM;AAAA,cACJ,OAAO;AAAA,cACP,YAAY;AAAA,YACb;AAAA,UACF;AAAA,UACD,aAAa;AAAA,YACX,YAAY;AAAA,YACZ,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,YAAY;AAAA,UACV,MAAM;AAAA,YACJ,iBAAiB;AAAA,YACjB,kBAAkB;AAAA,YAClB,OAAO;AAAA,YACP,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,MAAM;AAAA,cACJ,OAAO;AAAA,cACP,YAAY;AAAA,cACZ,aAAa;AAAA,YACd;AAAA,UACF;AAAA,UACD,cAAc;AAAA,YACZ,YAAY;AAAA,YACZ,OAAO;AAAA,UACR;AAAA,UACD,aAAa;AAAA,YACX,OAAO;AAAA,YACP,YAAY;AAAA,YACZ,aAAa;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAAA,MACD,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,GAAG;AAAA,UACH,IAAI;AAAA,UACJ,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,QACN;AAAA,QACD,SAAS;AAAA,UACP,OAAO;AAAA,UACP,eAAe;AAAA,UACf,YAAY;AAAA,UACZ,aAAa;AAAA,QACd;AAAA,QACD,WAAW;AAAA,UACT,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,OAAO;AAAA,UACP,YAAY;AAAA,QACb;AAAA,QACD,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,OAAO;AAAA,QACR;AAAA,QACD,WAAW;AAAA,UACT,YAAY;AAAA,UACZ,oBAAoB;AAAA,UACpB,kBAAkB;AAAA,UAClB,uBAAuB;AAAA,UACvB,aAAa;AAAA,UACb,kBAAkB;AAAA,UAClB,kBAAkB;AAAA,UAClB,oBAAoB;AAAA,UACpB,OAAO;AAAA,UACP,eAAe;AAAA,UACf,kBAAkB;AAAA,UAClB,iBAAiB;AAAA,UACjB,sBAAsB;AAAA,UACtB,wBAAwB;AAAA,UACxB,WAAW;AAAA,UACX,QAAQ;AAAA,QACT;AAAA,QACD,MAAM;AAAA,UACJ,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,YAAY;AAAA,UACZ,iBAAiB;AAAA,QAClB;AAAA,QACD,SAAS;AAAA,UACP,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,aAAa;AAAA,UACb,OAAO;AAAA,UACP,YAAY;AAAA,QACb;AAAA,QACD,SAAS;AAAA,UACP,QAAQ;AAAA,YACN,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,OAAO;AAAA,UACR;AAAA,UACD,SAAS;AAAA,YACP,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,OAAO;AAAA,UACR;AAAA,UACD,OAAO;AAAA,YACL,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,MAAM;AAAA,UACJ,QAAQ;AAAA,YACN,iBAAiB;AAAA,YACjB,oBAAoB;AAAA,YACpB,yBAAyB;AAAA,YACzB,OAAO;AAAA,YACP,YAAY;AAAA,YACZ,eAAe;AAAA,YACf,oBAAoB;AAAA,YACpB,MAAM;AAAA,cACJ,OAAO;AAAA,cACP,YAAY;AAAA,YACb;AAAA,UACF;AAAA,UACD,aAAa;AAAA,YACX,YAAY;AAAA,YACZ,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,YAAY;AAAA,UACV,MAAM;AAAA,YACJ,iBAAiB;AAAA,YACjB,kBAAkB;AAAA,YAClB,OAAO;AAAA,YACP,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,MAAM;AAAA,cACJ,OAAO;AAAA,cACP,YAAY;AAAA,cACZ,aAAa;AAAA,YACd;AAAA,UACF;AAAA,UACD,cAAc;AAAA,YACZ,YAAY;AAAA,YACZ,OAAO;AAAA,UACR;AAAA,UACD,aAAa;AAAA,YACX,OAAO;AAAA,YACP,YAAY;AAAA,YACZ,aAAa;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACD,YAAY;AAAA,IACV,WAAW20B;AAAAA,IACX,cAAcC;AAAAA,IACd,QAAQC;AAAAA,IACR,OAAOC;AAAAA,IACP,SAASC;AAAAA,IACT,YAAYC;AAAAA,IACZ,QAAQC;AAAAA,IACR,YAAYC;AAAAA,IACZ,MAAMC;AAAAA,IACN,UAAUC;AAAAA,IACV,eAAeC;AAAAA,IACf,UAAUC;AAAAA,IACV,MAAMC;AAAAA,IACN,aAAaC;AAAAA,IACb,eAAeC;AAAAA,IACf,cAAcC;AAAAA,IACd,aAAaC;AAAAA,IACb,UAAUC;AAAAA,IACV,WAAWC;AAAAA,IACX,QAAQC;AAAAA,IACR,SAASC;AAAAA,IACT,MAAMC;AAAAA,IACN,QAAQC;AAAAA,IACR,QAAQC;AAAAA,IACR,UAAUC;AAAAA,IACV,YAAYC;AAAAA,IACZ,YAAYC;AAAAA,IACZ,UAAUC;AAAAA,IACV,WAAWC;AAAAA,IACX,OAAOC;AAAAA,IACP,eAAeC;AAAAA,IACf,SAASC;AAAAA,IACT,YAAYC;AAAAA,IACZ,YAAYC;AAAAA,IACZ,aAAaC;AAAAA,IACb,WAAWC;AAAAA,IACX,MAAMC;AAAAA,IACN,SAASC;AAAAA,IACT,UAAUC;AAAAA,IACV,MAAM/hB;AAAAA,IACN,SAASgiB;AAAAA,IACT,SAAStyB;AAAAA,IACT,YAAYuyB;AAAAA,IACZ,aAAaC;AAAAA,IACb,WAAWC;AAAAA,IACX,mBAAmBC;AAAAA,IACnB,cAAcC;AAAAA,IACd,SAASC;AAAAA,IACT,WAAWC;AAAAA,IACX,UAAUC;AAAAA,IACV,OAAOhiB;AAAAA,IACP,WAAWiiB;AAAAA,IACX,UAAUC;AAAAA,IACV,aAAaC;AAAAA,IACb,iBAAiBC;AAAAA,IACjB,aAAaC;AAAAA,IACb,QAAQC;AAAAA,IACR,aAAaC;AAAAA,IACb,QAAQC;AAAAA,IACR,cAAcC;AAAAA,IACd,UAAUC;AAAAA,IACV,QAAQC;AAAAA,IACR,WAAWC;AAAAA,IACX,UAAUC;AAAAA,IACV,aAAaC;AAAAA,IACb,SAASC;AAAAA,IACT,OAAOC;AAAAA,IACP,SAASC;AAAAA,IACT,MAAMvQ;AAAAA,IACN,SAASwQ;AAAAA,IACT,UAAUC;AAAAA,IACV,YAAYC;AAAAA,IACZ,KAAKC;AAAAA,IACL,UAAUC;AAAAA,IACV,UAAUC;AAAAA,IACV,cAAcC;AAAAA,IACd,cAAcC;AAAAA,IACd,MAAMC;AAAAA,IACN,YAAYC;AAAAA,IACZ,WAAWC;AAAAA,IACX,OAAOC;AAAAA,IACP,SAASC;AAAAA,IACT,iBAAiBC;AAAAA,EAClB;AAAA,EACD,YAAY;AAAA,IACV,SAASC;AAAAA,IACT,QAAQC;AAAAA,EACT;AACH;AC5yBA,IAAI,sBAAsB;AAAA,EACxB,SAAS,gCAASlyB,SAAQ5F,MAAK;AAC7B,QAAI+3B,uBAAsB;AAAA,MACxB,SAAS,gCAASC,SAAQr5B,UAAS;AACjC,6BAAqB,KAAK,WAAWA,QAAO;AAAA,MAC7C,GAFQ;AAAA,MAGT,OAAO,gCAASa,SAAQ;AACtB,6BAAqB,KAAK,OAAO;AAAA,MAClC,GAFM;AAAA,IAGb;AACI,IAAAQ,KAAI,OAAO,iBAAiB,WAAW+3B;AACvC,IAAA/3B,KAAI,QAAQ,uBAAuB+3B,oBAAmB;AAAA,EACvD,GAXQ;AAYX;ACdG,IAAC,gBAAgB,SAAQ;ACC5B,IAAI,eAAe;AAAA,EACjB,SAAS,gCAASnyB,SAAQ5F,MAAK;AAC7B,QAAIi4B,gBAAe;AAAA,MACjB,KAAK,gCAASnxB,KAAI/D,UAAS;AACzB,sBAAc,KAAK,OAAOA,QAAO;AAAA,MAClC,GAFI;AAAA,MAGL,QAAQ,gCAAS1G,QAAO0G,UAAS;AAC/B,sBAAc,KAAK,UAAUA,QAAO;AAAA,MACrC,GAFO;AAAA,MAGR,aAAa,gCAAS,YAAY,OAAO;AACvC,sBAAc,KAAK,gBAAgB,KAAK;AAAA,MACzC,GAFY;AAAA,MAGb,iBAAiB,gCAAS,kBAAkB;AAC1C,sBAAc,KAAK,mBAAmB;AAAA,MACvC,GAFgB;AAAA,IAGvB;AACI,IAAA/C,KAAI,OAAO,iBAAiB,SAASi4B;AACrC,IAAAj4B,KAAI,QAAQ,qBAAqBi4B,aAAY;AAAA,EAC9C,GAjBQ;AAkBX;ACpBA,IAAI,QAAQ,gCAASphB,QAAM,MAAM;AAC/B,MAAIyB,MAAK,KAAK;AACd,SAAO,+EAA+E,OAAOA,IAAG,mBAAmB,GAAG,+DAA+D,EAAE,OAAOA,IAAG,gBAAgB,GAAG,6DAA6D,EAAE,OAAOA,IAAG,gBAAgB,GAAG,wGAAwG,EAAE,OAAOA,IAAG,oBAAoB,GAAG,gBAAgB,EAAE,OAAOA,IAAG,eAAe,GAAG,kBAAkB,EAAE,OAAOA,IAAG,iBAAiB,GAAG,qBAAqB,EAAE,OAAOA,IAAG,gBAAgB,GAAG,wBAAwB,EAAE,OAAOA,IAAG,uBAAuB,GAAG,mOAAmO,EAAE,OAAOA,IAAG,gBAAgB,GAAG,wBAAwB,EAAE,OAAOA,IAAG,gBAAgB,GAAG,GAAG,EAAE,OAAOA,IAAG,gBAAgB,GAAG,GAAG,EAAE,OAAOA,IAAG,gBAAgB,GAAG,+BAA+B,EAAE,OAAOA,IAAG,oBAAoB,GAAG,wEAAwE,EAAE,OAAOA,IAAG,gBAAgB,GAAG,wBAAwB,EAAE,OAAOA,IAAG,gBAAgB,GAAG,KAAK,EAAE,OAAOA,IAAG,gBAAgB,GAAG,GAAG,EAAE,OAAOA,IAAG,gBAAgB,GAAG,4BAA4B,EAAE,OAAOA,IAAG,oBAAoB,GAAG,wEAAwE,EAAE,OAAOA,IAAG,gBAAgB,GAAG,wBAAwB,EAAE,OAAOA,IAAG,gBAAgB,GAAG,GAAG,EAAE,OAAOA,IAAG,gBAAgB,GAAG,KAAK,EAAE,OAAOA,IAAG,gBAAgB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,oBAAoB,GAAG,8BAA8B,EAAE,OAAOA,IAAG,oBAAoB,GAAG,2EAA2E,EAAE,OAAOA,IAAG,gBAAgB,GAAG,0BAA0B,EAAE,OAAOA,IAAG,gBAAgB,GAAG,GAAG,EAAE,OAAOA,IAAG,gBAAgB,GAAG,GAAG,EAAE,OAAOA,IAAG,gBAAgB,GAAG,2BAA2B,EAAE,OAAOA,IAAG,oBAAoB,GAAG,8BAA8B,EAAE,OAAOA,IAAG,oBAAoB,GAAG,QAAQ;AAClkE,GAHY;AAIZ,IAAI,UAAU;AAAA,EACZ,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AACR;AACA,IAAI,eAAe,UAAU,OAAO;AAAA,EAClC,MAAM;AAAA,EACN;AAAA,EACA;AACF,CAAC;ACRD,IAAI,cAAc,cAAc,OAAO;AAAA,EACrC,OAAO;AACT,CAAC;AAED,SAAS,eAAe,GAAGvY,IAAG;AAAE,SAAO,gBAAgB,CAAC,KAAK,sBAAsB,GAAGA,EAAC,KAAK,4BAA4B,GAAGA,EAAC,KAAK,iBAAgB;AAAK;AAA7I;AACT,SAAS,mBAAmB;AAAE,QAAM,IAAI,UAAU,2IAA2I;AAAI;AAAxL;AACT,SAAS,4BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAO,kBAAkB,GAAG,CAAC;AAAG,QAAI+C,KAAI,GAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAaA,MAAK,EAAE,gBAAgBA,KAAI,EAAE,YAAY,OAAO,UAAUA,MAAK,UAAUA,KAAI,MAAM,KAAK,CAAC,IAAI,gBAAgBA,MAAK,2CAA2C,KAAKA,EAAC,IAAI,kBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjX;AACT,SAAS,kBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS/C,KAAI,GAAG,IAAI,MAAM,CAAC,GAAGA,KAAI,GAAGA,KAAK,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAG,SAAO;AAAI;AAA3I;AACT,SAAS,sBAAsB,GAAG,GAAG;AAAE,MAAI+C,KAAI,QAAQ,IAAI,OAAO,eAAe,OAAO,UAAU,EAAE,OAAO,QAAQ,KAAK,EAAE,YAAY;AAAG,MAAI,QAAQA,IAAG;AAAE,QAAI/C,IAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAI,IAAI;AAAI,QAAI;AAAE,UAAI,KAAK+C,KAAIA,GAAE,KAAK,CAAC,GAAG,MAAM,MAAM,EAAG;AAAA,UAAO,QAAO,EAAE,KAAK/C,KAAI,EAAE,KAAK+C,EAAC,GAAG,UAAU,EAAE,KAAK/C,GAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,KAAG;AAAA,IAAG,SAAQwV,IAAG;AAAE,UAAI,MAAI,IAAIA;AAAA,IAAI;AAAW,UAAI;AAAE,YAAI,CAAC,KAAK,QAAQzS,GAAE,QAAQ,MAAM,IAAIA,GAAE,QAAQ,EAAC,GAAI,OAAO,CAAC,MAAM,GAAI;AAAA,MAAS;AAAW,YAAI,EAAG,OAAM;AAAA,MAAI;AAAA;AAAG,WAAO;AAAA,EAAE;AAAI;AAA1e;AACT,SAAS,gBAAgB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAO;AAAI;AAAtD;AACT,SAAS,gBAAgB/C,IAAG,GAAG+C,IAAG;AAAE,UAAQ,IAAI,eAAe,CAAC,MAAM/C,KAAI,OAAO,eAAeA,IAAG,GAAG,EAAE,OAAO+C,IAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,KAAI/C,GAAE,CAAC,IAAI+C,IAAG/C;AAAI;AAA3K;AACT,SAAS,eAAe+C,IAAG;AAAE,MAAI,IAAI,aAAaA,IAAG,QAAQ;AAAG,SAAO,YAAY,QAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApG;AACT,SAAS,aAAaA,IAAG,GAAG;AAAE,MAAI,YAAY,QAAQA,EAAC,KAAK,CAACA,GAAG,QAAOA;AAAG,MAAI/C,KAAI+C,GAAE,OAAO,WAAW;AAAG,MAAI,WAAW/C,IAAG;AAAE,QAAI,IAAIA,GAAE,KAAK+C,IAAG,KAAK,SAAS;AAAG,QAAI,YAAY,QAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQA,EAAC;AAAI;AAAnT;AACT,SAAS,QAAQ,GAAG;AAAE;AAA2B,SAAO,UAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAU8S,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,QAAQ,CAAC;AAAI;AAArT;AACT,IAAI,UAAU,YAAY,OAAO,WAAW;AAAA,EAC1C,aAAa,gCAAS3T,aAAY,IAAItD,UAAS;AAC7C,QAAI;AACJ,QAAI,SAAS,KAAK,UAAU,EAAE;AAC9B,WAAO,sBAAsB,KAAK,aAAaA,QAAO;AACtD,QAAI,CAACA,SAAQ,MAAO;AAAA,aAAgB,OAAOA,SAAQ,UAAU,UAAU;AACrE,aAAO,kBAAkBA,SAAQ;AACjC,aAAO,qBAAqB;AAC5B,aAAO,mBAAmB;AAC1B,aAAO,kBAAkB;AACzB,aAAO,uBAAuB;AAC9B,aAAO,mBAAmB,kBAAmB,IAAG;AAChD,aAAO,sBAAsB;AAC7B,aAAO,sBAAsB;AAC7B,aAAO,qBAAqB;AAAA,IAClC,WAAe,QAAQA,SAAQ,KAAK,MAAM,YAAYA,SAAQ,OAAO;AAC/D,UAAI,QAAQA,SAAQ,MAAM,KAAK,KAAKA,SAAQ,MAAM,MAAM,WAAW,GAAI;AAAA,WAAY;AACjF,eAAO,kBAAkBA,SAAQ,MAAM;AACvC,eAAO,qBAAqB,CAAC,CAACA,SAAQ,MAAM,aAAaA,SAAQ,MAAM,WAAWA,SAAQ,MAAM,WAAW;AAC3G,eAAO,mBAAmB,CAAC,CAACA,SAAQ,MAAM,WAAWA,SAAQ,MAAM,SAASA,SAAQ,MAAM,SAAS;AACnG,eAAO,kBAAkBA,SAAQ,MAAM,OAAO,KAAK;AACnD,eAAO,uBAAuB,CAAC,CAACA,SAAQ,MAAM,eAAeA,SAAQ,MAAM,aAAaA,SAAQ,MAAM,aAAa;AACnH,eAAO,mBAAmBA,SAAQ,MAAM,MAAM,kBAAmB,IAAG;AACpE,eAAO,sBAAsBA,SAAQ,MAAM,aAAa;AACxD,eAAO,sBAAsBA,SAAQ,MAAM,aAAa;AACxD,eAAO,qBAAqB,CAAC,CAACA,SAAQ,MAAM,aAAaA,SAAQ,MAAM,WAAWA,SAAQ,MAAM,WAAW;AAAA,MAC5G;AAAA,IACF;AACD,WAAO,oBAAoB,wBAAwBA,SAAQ,SAAS,eAAe,QAAQ,0BAA0B,WAAW,wBAAwB,sBAAsB,YAAY,QAAQ,0BAA0B,WAAW,wBAAwB,sBAAsB,YAAY,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAC3W,SAAK,WAAW,QAAQA,QAAO;AAC/B,OAAG,aAAa,mBAAmB,IAAI;AAAA,EACxC,GA9BY;AAAA,EA+Bb,SAAS,gCAASyD,UAAQ,IAAIzD,UAAS;AACrC,QAAI,SAAS,KAAK,UAAU,EAAE;AAC9B,WAAO,sBAAsB,KAAK,aAAaA,QAAO;AACtD,SAAK,aAAa,MAAM;AACxB,QAAI,CAACA,SAAQ,OAAO;AAClB;AAAA,IACD;AACD,QAAI,OAAOA,SAAQ,UAAU,UAAU;AACrC,aAAO,kBAAkBA,SAAQ;AACjC,aAAO,qBAAqB;AAC5B,aAAO,mBAAmB;AAC1B,aAAO,kBAAkB;AACzB,aAAO,mBAAmB,OAAO,oBAAoB,kBAAiB,IAAK;AAC3E,aAAO,sBAAsB;AAC7B,aAAO,sBAAsB;AAC7B,aAAO,qBAAqB;AAC5B,WAAK,WAAW,QAAQA,QAAO;AAAA,IACrC,WAAe,QAAQA,SAAQ,KAAK,MAAM,YAAYA,SAAQ,OAAO;AAC/D,UAAI,QAAQA,SAAQ,MAAM,KAAK,KAAKA,SAAQ,MAAM,MAAM,KAAM,MAAK,IAAI;AACrE,aAAK,aAAa,QAAQA,QAAO;AACjC;AAAA,MACR,OAAa;AACL,eAAO,kBAAkBA,SAAQ,MAAM;AACvC,eAAO,qBAAqB,CAAC,CAACA,SAAQ,MAAM,aAAaA,SAAQ,MAAM,WAAWA,SAAQ,MAAM,WAAW;AAC3G,eAAO,mBAAmB,CAAC,CAACA,SAAQ,MAAM,WAAWA,SAAQ,MAAM,SAASA,SAAQ,MAAM,SAAS;AACnG,eAAO,kBAAkBA,SAAQ,MAAM,OAAO,KAAK;AACnD,eAAO,uBAAuB,CAAC,CAACA,SAAQ,MAAM,eAAeA,SAAQ,MAAM,aAAaA,SAAQ,MAAM,aAAa;AACnH,eAAO,mBAAmBA,SAAQ,MAAM,MAAM,OAAO,oBAAoB,kBAAmB,IAAG;AAC/F,eAAO,sBAAsBA,SAAQ,MAAM,aAAa;AACxD,eAAO,sBAAsBA,SAAQ,MAAM,aAAa;AACxD,eAAO,qBAAqB,CAAC,CAACA,SAAQ,MAAM,aAAaA,SAAQ,MAAM,WAAWA,SAAQ,MAAM,WAAW;AAC3G,aAAK,WAAW,QAAQA,QAAO;AAAA,MAChC;AAAA,IACF;AAAA,EACF,GAlCQ;AAAA,EAmCT,WAAW,gCAAS2D,WAAU,IAAI3D,UAAS;AACzC,QAAI,SAAS,KAAK,UAAU,EAAE;AAC9B,SAAK,OAAO,MAAM;AAClB,SAAK,aAAa,QAAQA,QAAO;AACjC,QAAI,OAAO,yBAAyB;AAClC,aAAO,wBAAwB;AAC/B,aAAO,0BAA0B;AAAA,IAClC;AAAA,EACF,GARU;AAAA,EASX,OAAO;AAAA,EACP,SAAS;AAAA,IACP,YAAY,gCAAS0uB,YAAW,IAAI1uB,UAAS;AAC3C,UAAI,QAAQ;AACZ,UAAI,YAAY,GAAG;AACnB,UAAI,UAAU,OAAO;AACnB,WAAG,eAAe,SAAU,OAAO;AACjC,iBAAO,MAAM,QAAQ,OAAOA,QAAO;AAAA,QAC7C;AACQ,WAAG,iBAAiB,SAAS,GAAG,YAAY;AAC5C,WAAG,iBAAiB,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAC;AAAA,MAC1D,OAAa;AACL,WAAG,oBAAoB,SAAU,OAAO;AACtC,iBAAO,MAAM,aAAa,OAAOA,QAAO;AAAA,QAClD;AACQ,WAAG,iBAAiB,cAAc,GAAG,iBAAiB;AACtD,WAAG,iBAAiB,cAAc,KAAK,aAAa,KAAK,IAAI,CAAC;AAC9D,WAAG,iBAAiB,SAAS,KAAK,QAAQ,KAAK,IAAI,CAAC;AAAA,MACrD;AACD,SAAG,iBAAiB,WAAW,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,IACzD,GAlBW;AAAA,IAmBZ,cAAc,gCAASovB,cAAa,IAAI;AACtC,UAAI,YAAY,GAAG;AACnB,UAAI,UAAU,OAAO;AACnB,WAAG,oBAAoB,SAAS,GAAG,YAAY;AAC/C,WAAG,eAAe;AAClB,WAAG,oBAAoB,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAC;AAAA,MAC7D,OAAa;AACL,WAAG,oBAAoB,cAAc,GAAG,iBAAiB;AACzD,WAAG,oBAAoB;AACvB,WAAG,oBAAoB,cAAc,KAAK,aAAa,KAAK,IAAI,CAAC;AACjE,WAAG,oBAAoB,SAAS,KAAK,QAAQ,KAAK,IAAI,CAAC;AAAA,MACxD;AACD,SAAG,oBAAoB,WAAW,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,IAC5D,GAba;AAAA,IAcd,oBAAoB,gCAAS/X,oBAAmB,IAAI;AAClD,UAAI,SAAS;AACb,UAAI,CAAC,GAAG,yBAAyB;AAC/B,WAAG,0BAA0B,IAAI,8BAA8B,IAAI,WAAY;AAC7E,iBAAO,KAAK,EAAE;AAAA,QACxB,CAAS;AAAA,MACF;AACD,SAAG,wBAAwB;IAC5B,GARmB;AAAA,IASpB,sBAAsB,gCAASC,sBAAqB,IAAI;AACtD,UAAI,GAAG,yBAAyB;AAC9B,WAAG,wBAAwB;MAC5B;AAAA,IACF,GAJqB;AAAA,IAKtB,cAAc,gCAAS,aAAa,OAAOtX,UAAS;AAClD,UAAI,KAAK,MAAM;AACf,UAAI,YAAY,GAAG;AACnB,WAAK,KAAK,IAAIA,UAAS,SAAS;AAAA,IACjC,GAJa;AAAA,IAKd,cAAc,gCAAS,aAAa,OAAO;AACzC,UAAI,KAAK,MAAM;AACf,UAAI,YAAY,GAAG;AACnB,UAAI,WAAW,GAAG;AAClB,UAAI,CAAC,UAAU;AACb,YAAI,QAAQ,aAAa,MAAM,QAAQ,cAAc,MAAM,aAAa,aAAa,MAAM,QAAQ,iBAAiB,MAAM,WAAW,aAAa,MAAM,QAAQ,iBAAiB,MAAM,UAAU,aAAa,MAAM,eAAe,cAAc,MAAM,aAAa,aAAa,MAAM,eAAe,iBAAiB,MAAM,WAAW,aAAa,MAAM,eAAe,iBAAiB,MAAM;AACjY,SAAC,SAAS,KAAK,KAAK,IAAI,SAAS;AAAA,MACzC,OAAa;AACL,aAAK,KAAK,IAAI,SAAS;AAAA,MACxB;AAAA,IACF,GAVa;AAAA,IAWd,SAAS,gCAASqgB,SAAQ,OAAOrgB,UAAS;AACxC,UAAI,KAAK,MAAM;AACf,UAAI,YAAY,GAAG;AACnB,WAAK,KAAK,IAAIA,UAAS,SAAS;AAAA,IACjC,GAJQ;AAAA,IAKT,QAAQ,gCAASsgB,QAAO,OAAO;AAC7B,UAAI,KAAK,MAAM;AACf,UAAI,YAAY,GAAG;AACnB,WAAK,KAAK,IAAI,SAAS;AAAA,IACxB,GAJO;AAAA,IAKR,SAAS,gCAASrC,SAAQ,OAAO;AAC/B,UAAI,KAAK,MAAM;AACf,UAAI,YAAY,GAAG;AACnB,WAAK,KAAK,IAAI,SAAS;AAAA,IACxB,GAJQ;AAAA,IAKT,WAAW,gCAAS8J,WAAU,OAAO;AACnC,UAAI,KAAK,MAAM;AACf,UAAI,YAAY,GAAG;AACnB,YAAM,SAAS,YAAY,KAAK,KAAK,MAAM,eAAe,SAAS;AAAA,IACpE,GAJU;AAAA,IAKX,gBAAgB,gCAAS,eAAe,IAAI/nB,UAAS;AACnD,UAAI,GAAG,sBAAsB,CAAC,QAAQ,EAAE,GAAG;AACzC;AAAA,MACD;AACD,UAAI,iBAAiB,KAAK,OAAO,IAAIA,QAAO;AAC5C,WAAK,MAAM,EAAE;AACb,OAAC,KAAK,WAAY,KAAI,OAAO,gBAAgB,GAAG;AAChD,UAAI,QAAQ;AACZ,aAAO,iBAAiB,UAAU,gCAAS,iBAAiB;AAC1D,YAAI,CAAC,cAAa,GAAI;AACpB,gBAAM,KAAK,EAAE;AAAA,QACd;AACD,eAAO,oBAAoB,UAAU,cAAc;AAAA,MAC3D,GALwC,iBAKjC;AACD,qBAAe,iBAAiB,cAAc,gCAAS,iBAAiB;AACtE,cAAM,KAAK,EAAE;AACb,uBAAe,oBAAoB,cAAc,cAAc;AAAA,MACvE,GAHoD,iBAG7C;AACD,WAAK,mBAAmB,EAAE;AAC1B,aAAO,IAAI,WAAW,gBAAgB,GAAG,gBAAgB;AAAA,IAC1D,GApBe;AAAA,IAqBhB,MAAM,gCAAS2mB,MAAK,IAAI3mB,UAAS,WAAW;AAC1C,UAAI,SAAS;AACb,UAAI,cAAc,QAAW;AAC3B,aAAK,QAAQ,WAAW,WAAY;AAClC,iBAAO,OAAO,eAAe,IAAIA,QAAO;AAAA,QACzC,GAAE,SAAS;AAAA,MACpB,OAAa;AACL,aAAK,eAAe,IAAIA,QAAO;AAAA,MAChC;AAAA,IACF,GATK;AAAA,IAUN,gBAAgB,gCAAS,eAAe,IAAI;AAC1C,WAAK,OAAO,EAAE;AACd,WAAK,qBAAqB,EAAE;AAAA,IAC7B,GAHe;AAAA,IAIhB,MAAM,gCAASutB,MAAK,IAAI,WAAW;AACjC,UAAI,SAAS;AACb,mBAAa,KAAK,KAAK;AACvB,UAAI,cAAc,QAAW;AAC3B,mBAAW,WAAY;AACrB,iBAAO,OAAO,eAAe,EAAE;AAAA,QAChC,GAAE,SAAS;AAAA,MACpB,OAAa;AACL,aAAK,eAAe,EAAE;AAAA,MACvB;AAAA,IACF,GAVK;AAAA,IAWN,mBAAmB,gCAAS,kBAAkB,IAAI;AAChD,aAAO,SAAS,eAAe,GAAG,YAAY;AAAA,IAC/C,GAFkB;AAAA,IAGnB,QAAQ,gCAASxgB,QAAO,IAAI;AAC1B,UAAI,YAAY,GAAG;AACnB,UAAI,eAAe,cAAc,OAAO;AAAA,QACtC,SAAS,CAAC,KAAK,WAAY,KAAI,KAAK,GAAG,OAAO;AAAA,QAC9C,UAAU,KAAK,IAAI,SAAS;AAAA,UAC1B,SAAS;AAAA,QACnB,CAAS;AAAA,MACT,CAAO;AACD,UAAI,cAAc,cAAc,OAAO;AAAA,QACrC,SAAS,CAAC,KAAK,WAAY,KAAI,KAAK,GAAG,MAAM;AAAA,QAC7C,UAAU,KAAK,IAAI,QAAQ;AAAA,UACzB,SAAS;AAAA,QACnB,CAAS;AAAA,MACT,CAAO;AACD,UAAI,CAAC,GAAG,kBAAkB;AACxB,oBAAY,YAAY,GAAG;AAAA,MACnC,OAAa;AACL,oBAAY,YAAY;AACxB,oBAAY,YAAY,SAAS,eAAe,GAAG,eAAe,CAAC;AAAA,MACpE;AACD,UAAI,YAAY,cAAc,OAAO,gBAAgB,gBAAgB;AAAA,QACnE,IAAI,GAAG;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,UACL,SAAS;AAAA,UACT,OAAO,GAAG,uBAAuB,gBAAgB;AAAA,UACjD,eAAe,CAAC,KAAK,WAAY,KAAI,GAAG,sBAAsB;AAAA,QAC/D;AAAA,QACD,SAAS,CAAC,CAAC,KAAK,WAAY,KAAI,KAAK,GAAG,MAAM,GAAG,GAAG,eAAe;AAAA,MAC3E,GAAS,KAAK,eAAe,EAAE,GAAG,UAAU,KAAK,IAAI,QAAQ;AAAA,QACrD,SAAS;AAAA,MACjB,CAAO,CAAC,GAAG,cAAc,WAAW;AAC9B,eAAS,KAAK,YAAY,SAAS;AACnC,SAAG,eAAe,UAAU;AAC5B,WAAK,MAAM;AACX,aAAO;AAAA,IACR,GApCO;AAAA,IAqCR,QAAQ,gCAASrP,QAAO,IAAI;AAC1B,UAAI,IAAI;AACN,YAAI,iBAAiB,KAAK,kBAAkB,EAAE;AAC9C,YAAI,kBAAkB,eAAe,eAAe;AAClD,iBAAO,MAAM,cAAc;AAC3B,mBAAS,KAAK,YAAY,cAAc;AAAA,QACzC;AACD,WAAG,eAAe;AAAA,MACnB;AAAA,IACF,GATO;AAAA,IAUR,OAAO,gCAAS,MAAM,IAAI;AACxB,UAAI,YAAY,GAAG;AACnB,UAAI,UAAU,KAAK;AACjB,aAAK,SAAS,EAAE;AAChB,YAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,eAAK,YAAY,EAAE;AACnB,cAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,iBAAK,SAAS,EAAE;AAAA,UACjB;AAAA,QACF;AAAA,MACT,WAAiB,UAAU,MAAM;AACzB,aAAK,UAAU,EAAE;AACjB,YAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,eAAK,WAAW,EAAE;AAClB,cAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,iBAAK,SAAS,EAAE;AAChB,gBAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,mBAAK,YAAY,EAAE;AACnB,kBAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,qBAAK,UAAU,EAAE;AAAA,cAClB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACT,WAAiB,UAAU,QAAQ;AAC3B,aAAK,YAAY,EAAE;AACnB,YAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,eAAK,SAAS,EAAE;AAChB,cAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,iBAAK,YAAY,EAAE;AAAA,UACpB;AAAA,QACF;AAAA,MACT,OAAa;AACL,aAAK,WAAW,EAAE;AAClB,YAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,eAAK,UAAU,EAAE;AACjB,cAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,iBAAK,SAAS,EAAE;AAChB,gBAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,mBAAK,YAAY,EAAE;AACnB,kBAAI,KAAK,cAAc,EAAE,GAAG;AAC1B,qBAAK,WAAW,EAAE;AAAA,cACnB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,GA/CM;AAAA,IAgDP,eAAe,gCAAS,cAAc,IAAI;AACxC,UAAI,SAAS,GAAG;AAChB,UAAI,aAAa,OAAO,OAAO,oBAAmB;AAClD,UAAI,YAAY,OAAO,MAAM,mBAAkB;AAC/C,aAAO;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,MACb;AAAA,IACK,GARc;AAAA,IASf,YAAY,gCAAS,WAAW,IAAI;AAClC,WAAK,SAAS,IAAI,OAAO;AACzB,UAAI,iBAAiB,KAAK,kBAAkB,EAAE;AAC9C,UAAI,aAAa,KAAK,cAAc,EAAE;AACtC,UAAI,OAAO,WAAW,OAAO,cAAc,EAAE;AAC7C,UAAI,MAAM,WAAW,OAAO,eAAe,EAAE,IAAI,eAAe,cAAc,KAAK;AACnF,qBAAe,MAAM,OAAO,OAAO;AACnC,qBAAe,MAAM,MAAM,MAAM;AAAA,IAClC,GARW;AAAA,IASZ,WAAW,gCAAS,UAAU,IAAI;AAChC,WAAK,SAAS,IAAI,MAAM;AACxB,UAAI,iBAAiB,KAAK,kBAAkB,EAAE;AAC9C,UAAI,aAAa,KAAK,cAAc,EAAE;AACtC,UAAI,OAAO,WAAW,OAAO,cAAc,cAAc;AACzD,UAAI,MAAM,WAAW,OAAO,eAAe,EAAE,IAAI,eAAe,cAAc,KAAK;AACnF,qBAAe,MAAM,OAAO,OAAO;AACnC,qBAAe,MAAM,MAAM,MAAM;AAAA,IAClC,GARU;AAAA,IASX,UAAU,gCAAS,SAAS,IAAI;AAC9B,WAAK,SAAS,IAAI,KAAK;AACvB,UAAI,iBAAiB,KAAK,kBAAkB,EAAE;AAC9C,UAAI,aAAa,KAAK,cAAc,EAAE;AACtC,UAAI,OAAO,WAAW,QAAQ,cAAc,EAAE,IAAI,cAAc,cAAc,KAAK;AACnF,UAAI,MAAM,WAAW,MAAM,eAAe,cAAc;AACxD,qBAAe,MAAM,OAAO,OAAO;AACnC,qBAAe,MAAM,MAAM,MAAM;AAAA,IAClC,GARS;AAAA,IASV,aAAa,gCAAS,YAAY,IAAI;AACpC,WAAK,SAAS,IAAI,QAAQ;AAC1B,UAAI,iBAAiB,KAAK,kBAAkB,EAAE;AAC9C,UAAI,aAAa,KAAK,cAAc,EAAE;AACtC,UAAI,OAAO,WAAW,QAAQ,cAAc,EAAE,IAAI,cAAc,cAAc,KAAK;AACnF,UAAI,MAAM,WAAW,MAAM,eAAe,EAAE;AAC5C,qBAAe,MAAM,OAAO,OAAO;AACnC,qBAAe,MAAM,MAAM,MAAM;AAAA,IAClC,GARY;AAAA,IASb,UAAU,gCAAS,SAAS,IAAI0M,WAAU;AACxC,UAAI,iBAAiB,KAAK,kBAAkB,EAAE;AAC9C,qBAAe,MAAM,OAAO;AAC5B,qBAAe,MAAM,MAAM;AAC3B,kBAAY,gBAAgB,aAAa,OAAO,eAAe,kBAAkB,CAAC;AAClF,OAAC,KAAK,WAAU,KAAM,SAAS,gBAAgB,aAAa,OAAOA,SAAQ,CAAC;AAC5E,qBAAe,qBAAqBA;AACpC,qBAAe,aAAa,mBAAmBA,SAAQ;AACvD,UAAI,eAAe,WAAW,gBAAgB,2BAA2B;AACzE,mBAAa,MAAM,MAAMA,cAAa,WAAW,MAAMA,cAAa,WAAWA,cAAa,UAAUA,cAAa,WAAWA,cAAa,UAAUA,cAAa,SAASA,cAAa,WAAW,QAAQ;AAC3M,mBAAa,MAAM,SAASA,cAAa,QAAQ,MAAM;AACvD,mBAAa,MAAM,OAAOA,cAAa,WAAWA,cAAa,WAAWA,cAAa,UAAUA,cAAa,SAASA,cAAa,WAAW,MAAMA,cAAa,SAASA,cAAa,WAAW,QAAQ;AAC3M,mBAAa,MAAM,QAAQA,cAAa,SAAS,MAAM;AAAA,IACxD,GAbS;AAAA,IAcV,eAAe,gCAAS,cAAc,IAAI;AACxC,UAAI,iBAAiB,KAAK,kBAAkB,EAAE;AAC9C,UAAI,SAAS,eAAe;AAC5B,UAAI,YAAY,OAAO;AACvB,UAAI,aAAa,OAAO;AACxB,UAAIyL,SAAQ,cAAc,cAAc;AACxC,UAAI,SAAS,eAAe,cAAc;AAC1C,UAAI,WAAW;AACf,aAAO,aAAaA,SAAQ,SAAS,SAAS,aAAa,KAAK,YAAY,KAAK,YAAY,SAAS,SAAS;AAAA,IAChH,GATc;AAAA,IAUf,WAAW,gCAAS0jB,WAAU,IAAI;AAChC,aAAO,SAAS,IAAI,gBAAgB,IAAI,WAAW,IAAI,OAAO,IAAI;AAAA,IACnE,GAFU;AAAA,IAGX,cAAc,gCAAS,aAAav5B,UAAS;AAE3C,UAAIA,SAAQ,aAAa,OAAO,KAAKA,SAAQ,SAAS,EAAE,QAAQ;AAC9D,eAAOA,SAAQ;AAAA,MAChB;AAGD,UAAIA,SAAQ,OAAO,QAAQA,SAAQ,GAAG,MAAM,UAAU;AACpD,eAAO,OAAO,QAAQA,SAAQ,GAAG,EAAE,OAAO,SAAU,KAAK,MAAM;AAC7D,cAAI,QAAQ,eAAe,MAAM,CAAC,GAChC,MAAM,MAAM,CAAC,GACb,MAAM,MAAM,CAAC;AACf,cAAI,QAAQ,WAAW,QAAQ,WAAY,KAAI,GAAG,IAAI;AACtD,iBAAO;AAAA,QACR,GAAE,CAAE;AAAA,MACN;AACD,aAAO;IACR,GAjBa;AAAA,EAkBf;AACH,CAAC;AChZD,MAAM,gBAAgB,aAAaw5B,OAAM;AAAA,EACvC,UAAU;AAAA,IACR,SAASA,MAAK,WAAW,EAAE;AAAA,EAC7B;AACF,CAAC;AAED,MAAM,MAAM,UAAUC,WAAG;AACzB,MAAM,QAAQ,YAAY;AAC1B,IAAI,UAAU,WAAW,OAAO;AAChC,IACG,IAAI,MAAM,EACV,IAAI,UAAU;AAAA,EACb,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA;AAAA;AAAA,MAGA,kBAAkB;AAAA,IACpB;AAAA,EACF;AACF,CAAC,EACA,IAAI,mBAAmB,EACvB,IAAI,YAAY,EAChB,IAAI,KAAK,EACT,IAAI,IAAI,EACR,MAAM,UAAU","names":["set","extend","remove","hasOwnProperty","hasOwn","isArray","toTypeString","isDate","isRegExp","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","isPlainObject","cacheStringFunction","cache","camelizeRE","camelize","_","hyphenateRE","hyphenate","capitalize","oldValue","_globalThis","getGlobalThis","generateCodeFrame","start","item","escapeHtml","index","isRef","toDisplayString","v","warn","effect","trigger","computed","options","newValue","get","isReadonly","isShallow","toReactive","forEach","self","toValue","toRefs","toRef","warn$1","open","close","keys","p","findInsertionIndex","id","seen","diff","e","app","version","Text","validator","isValid","isModelListener","number","trim","handler","prev","_id","attrs","emit","render","data","render2","root","isVNode","resolve","patch","createElement","hasWarned","next","node","block","lifecycle","load","reject","ref2","has","defaults","callHook","created","beforeMount","mounted","beforeUpdate","updated","beforeUnmount","unmounted","register","_hook","h","mergeOptions","hydrate","createApp","prop","t","message","isBoolean","normalizeSlot","ref","patchProp","insert","content","next2","format","supported","perf","initFeatureFlags","remove2","isFlushing","once","filter","enterCbKey","mode","onBeforeEnter","onEnter","onAfterEnter","onBeforeLeave","onLeave","onAfterLeave","disabled","mount","g","setup","compile","track","formatValue","devtools","e2","def","isAsync","css","clone","modelValue","getValue","checked","assign","option","isVue2","isVue3","Vue2","install","del","now","pinia","MutationType","_global","saveAs","isSafari","formatDisplay","state","store","events","assign$1","api","noop","$reset","currentInstance","suffix","add","util","items","objectUtil","errorMap","map","x","errorUtil","transform","ctx","step","result","mask","issues","elements","size","processed","p2","ZodFirstPartyTypeKind","prefix","zod.ZodError","error","LinkReleaseTriggerMode","LinkReleaseTriggerAction","NodeSourceType","NodeBadgeMode","inputSpec","bind","toString","isNumber","prototype","merge","descriptors","position","matches","replacer","stack","AxiosError","code","config","utils","toFormData","PlatformFormData","encode","URLSearchParams","FormData","Blob","platform","isFormData","isFileList","transitional","header","AxiosHeaders","isCancel","CanceledError","validateStatus","timestamp","invoke","isURLSameOrigin","isAbsoluteURL","headersToObject","mergeConfig","handleError","signal","pos","done","res","adapter","adapters","VERSION","validators","Axios","CancelToken","spread","isAxiosError","HttpStatusCode","create","all","buffer","undefined","INFINITY","global","apply","comparator","collection","runInContext","Array","Date","Error","Function","Math","Object","RegExp","String","TypeError","uid","Buffer","Symbol","Uint8Array","DataView","Map","Promise","Set","WeakMap","lodash","isObjectLike","iteratee","values","isBuffer","isTypedArray","getTag","isSet","isMap","key","setTimeout","includes","object","identity","indexOf","baseToString","clearTimeout","cloneRegExp","ary","toNumber","othValue","rand","findLastIndex","join","reverse","uniq","toArray","parent","find","findLast","throttle","gt","gte","isArrayBuffer","isElement","isEmpty","isFinite","isNaN","isUndefined","lt","lte","findKey","omit","clamp","endsWith","escape","escapeRegExp","parseInt","repeat","startsWith","unescape","bindAll","chain","range","define","this","TaskItemDisplayStatus","messages","queue","history","tasks","clear","RE_ARGS","locale","handlers","src","des","warnMessages","errorMessages","location","context","isLiteral","parse","baseCompile","type","i18n","code$1","inc$1","getWarnMessage","format$1","inc","resolveValue","msg","source","custom","locales","_context","te","parts","composer","dist","node2","horizontal","value2","label","menu","setValue","color","doc","selected","isSelected","options2","options3","panel","LGraph","classes","origin","y","widget","onResize","fileInput","ComfyDialog","onChange","toggle","width","isAndroid","isClient","isIOS","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","compare","toTokenKey","_createForOfIteratorHelper","_unsupportedIterableToArray","F","r","_arrayLikeToArray","contains","equals","_typeof$1","o","_toPropertyKey$1","_toPrimitive$1","ConnectedOverlayScrollHandler","bindScrollListener","unbindScrollListener","_typeof","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_toPropertyKey","_defineProperty","_toPrimitive","_default","init","hexToRgb","theme","matchRegex2","mergeKeys2","matchRegex3","toKebabCase2","isObject2","isNotEmpty2","resolve2","matchRegex4","toTokenKey2","isObject3","css2","mergeKeys3","mergeKeys4","ownKeys","_objectSpread","tryOnMounted","defaultDocument","document","stop","unload","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","dt","inlineStyles","Theme","BaseComponentStyle","script","_load","ThemeService","fn","loadCSS","loadTheme","BaseComponent","provide","BaseIcon","_hoisted_1","createElementVNode","_hoisted_2","script$1","_getPTValue","_getPTDatasets","_getPT","_usePT","_useDefaultPT","defaultPT","_loadStyles","_loadCoreStyles","_loadThemeStyles","_loadScopedThemeStyles","_themeChangeListener","_mergeProps","handleHook","isUnstyled","ptm","ptmo","cx","sx","handleWatch","scrollTo","scrollTop","numToleratedItems","itemSize","calculateFirst","calculateCoord","scrollInView","calculateFirstInViewport","calculateNumItemsInViewport","calculateNumToleratedItems","calculateLast","vertical","setProp","calculateTranslateVal","setTransform","calculateScrollPos","calculateCurrentIndex","calculateTriggerIndex","containerClass","SpinnerIcon","getPTOptions","_loop","contentRef","InputText","VirtualScroller","InputIcon","IconField","SearchIcon","CheckIcon","BlankIcon","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","onClick","icon","hasFluid","Badge","download","initialize","$attrsId","isVertical","onScroll","onKeyDown","onKeyUp","requestAnimationFrame","TimesCircleIcon","debounce","getOptions","formattedValue","parseValue","isDecimalSign","isMinusSign","maxFractionDigits","updateValue","updateModel","clearTimer","filled","AngleUpIcon","AngleDownIcon","getOptionIndex","getOptionLabel","getOptionValue","getOptionRenderKey","isOptionDisabled","isOptionGroup","getOptionGroupLabel","getOptionGroupChildren","getAriaPosInset","_hide","onFocus","onBlur","onFirstHiddenFocus","onLastHiddenFocus","onOptionSelect","onOptionMouseMove","onFilterChange","onFilterKeyDown","onFilterBlur","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onHomeKey","onEndKey","onPageUpKey","onPageDownKey","onEnterKey","onSpaceKey","alignOverlay","bindResizeListener","unbindResizeListener","isOptionMatched","isValidOption","isValidSelectedOption","findFirstOptionIndex","findLastOptionIndex","findNextOptionIndex","findPrevOptionIndex","findSelectedOptionIndex","findFirstFocusedOptionIndex","findLastFocusedOptionIndex","searchOptions","changeFocusedOptionIndex","autoUpdateModel","flatOptions","listRef","virtualScrollerRef","visibleOptions","hasSelectedOption","equalityKey","searchFields","filterResultMessageText","filterMessageText","emptyFilterMessageText","emptyMessageText","selectionMessageText","emptySelectionMessageText","selectedMessageText","focusedOptionId","ariaSetSize","virtualScrollerDisabled","Portal","TimesIcon","ChevronDownIcon","onMouseDown","_useModel","CustomFormValue","ToggleSwitch","InputNumber","InputSlider","Select","a11yAttrs","v2","isDefined","delta","set$1","formatDate","_2","index2","renderList","window","elementRef","distance","isSupported","activeIndex","navigator","data2","buildState","mergeDefaults","pausableWatch","confirm","mode2","onUpdated","preventDefault","dataTypes","els","root2","fetch","loading","setType","x2","y2","scrollHeight","scrollWidth","defaultOptions","orientation","_navigator","onTouchEnd","diff2","containerRef","getOffset","size2","show","i","s","n","a","c","l","d","f","m","S","w","u","b","z","FitAddon","Terminal","tabs","ChevronLeftIcon","ChevronRightIcon","onKeydown","InfoCircleIcon","ExclamationTriangleIcon","settingStore","_withScopeId","_popScopeId","_openBlock","_createElementBlock","PromptDialogContent","_ComfyDialog","isLittleEndian","splitValues","setWidgetValue","decode","memoize","text","onHide","closeOnEscape","obj","path","norm","score","pattern","parseQuery","searchers","query","createIndex","nodeDefs","ResourceState","defaultClone","diffFilter","patchFilter","reverseFilter","collectChildrenPatchFilter","collectChildrenReverseFilter","nestedPatchFilter","nested.collectChildrenDiffFilter","trivial.diffFilter","dates.diffFilter","texts.diffFilter","nested.objectsDiffFilter","arrays.diffFilter","nested.collectChildrenPatchFilter","arrays.collectChildrenPatchFilter","trivial.patchFilter","texts.patchFilter","nested.patchFilter","arrays.patchFilter","nested.collectChildrenReverseFilter","arrays.collectChildrenReverseFilter","trivial.reverseFilter","texts.reverseFilter","nested.reverseFilter","arrays.reverseFilter","undefinedType","logger","jsondiffpatch.diff","basePath","loadedWorkflow","preview","ratio","convertToInput","settingsDialog","keybindings","commands","indeterminate","MinusIcon","script$2","_createForOfIteratorHelper$1","_unsupportedIterableToArray$1","ownKeys$1","_objectSpread$1","_defineProperty$1","_toConsumableArray$1","_arrayWithoutHoles$1","_iterableToArray$1","_nonIterableSpread$1","_arrayLikeToArray$1","onTabKey","Checkbox","_hoisted_1$1","render$1","AngleRightIcon","getItemProp","getItemLabel","isItemDisabled","isItemVisible","isItemGroup","hide","activeItemPath","onItemClick","onItemMouseEnter","onItemMouseMove","onEscapeKey","bindOutsideClickListener","unbindOutsideClickListener","processedItems","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","bind_1","unbind","bindAll_1","require$$0","require$$1","bindEvents","arrayWithoutHoles","iterableToArray","nonIterableSpread","isFirefox","onDragEnd","rafSchd","wrapperFn","hasChanged","event","unbindEvents","addToRegistry","record","active","dispatchEventToSource","registerUsage","expandedKeys","search","autoFocus","createFocusableElement","focus","onOverlayClick","defaultColorPalette","bookmarks","findFocusableElement","bindDocumentKeyDownListener","unbindDocumentKeyDownListener","createStyle","destroyStyle","closeAriaLabel","attributeSelector","Button","WindowMinimizeIcon","WindowMaximizeIcon","ToggleButton","updateInput","onOverlayEnter","onOverlayLeave","onOverlayAfterLeave","onInputClick","onDrag","bindDragListeners","unbindDragListeners","NodeLibrarySidebarTab","isTargetClicked","_hoisted_1$3","_hoisted_2$2","stopSlideShow","navBackward","navForward","onRightKey","onLeftKey","findFocusedIndicatorIndex","changedFocusedIndicator","isNavBackwardDisabled","isNavForwardDisabled","isItemActive","ariaPageLabel","ChevronUpIcon","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","maskRef","onMaskMouseDown","onMaskMouseUp","accept","acceptLabel","rejectLabel","acceptIcon","rejectIcon","Dialog","WorkflowTreeType","workflow","WorkflowsSidebarTab","PrimeVue","loadCommonTheme","stringifyQuery","NavigationType","NavigationDirection","replace","NavigationFailureType","re","stringify","router","route","parseQuery$1","matchedRoute","href","failure","accordion","autocomplete","avatar","badge","blockui","breadcrumb","button","datepicker","card","carousel","cascadeselect","checkbox","chip","colorpicker","confirmdialog","confirmpopup","contextmenu","dataview","datatable","dialog","divider","dock","drawer","editor","fieldset","fileupload","floatlabel","galleria","iconfield","image","inlinemessage","inplace","inputchips","inputgroup","inputnumber","inputtext","knob","listbox","megamenu","menubar","metergroup","multiselect","orderlist","organizationchart","overlaybadge","popover","paginator","password","panelmenu","picklist","progressbar","progressspinner","radiobutton","rating","scrollpanel","select","selectbutton","skeleton","slider","speeddial","splitter","splitbutton","stepper","steps","tabmenu","tabview","textarea","tieredmenu","tag","terminal","timeline","togglebutton","toggleswitch","tree","treeselect","treetable","toast","toolbar","virtualscroller","tooltip","ripple","ConfirmationService","require","ToastService","getTarget","Aura","App"],"ignoreList":[0,1,2,3,4,6,7,8,9,10,11,12,14,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,75,76,77,78,80,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,128,129,132,137,138,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,157,158,159,160,161,162,164,165,170,171,177,178,179,180,181,182,185,186,194,195,196,197,201,202,203,204,211,217,218,239,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,272,273,274,275,276,277,278,279,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,328,329,339,340,341,342,348,349,350,351,352,353,354,355,356,357,363,364,365,366,371,372,373,379,380,385,386,387,388,391,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484],"sources":["../../node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../node_modules/vue/dist/vue.runtime.esm-bundler.js","../../src/config.ts","../../node_modules/pinia/node_modules/vue-demi/lib/index.mjs","../../node_modules/@vue/devtools-api/lib/esm/env.js","../../node_modules/@vue/devtools-api/lib/esm/const.js","../../node_modules/@vue/devtools-api/lib/esm/time.js","../../node_modules/@vue/devtools-api/lib/esm/proxy.js","../../node_modules/@vue/devtools-api/lib/esm/index.js","../../node_modules/pinia/dist/pinia.mjs","../../src/stores/toastStore.ts","../../node_modules/zod/lib/index.mjs","../../node_modules/zod-validation-error/dist/index.mjs","../../src/types/comfyWorkflow.ts","../../src/types/colorPalette.ts","../../src/types/searchBoxTypes.ts","../../src/types/nodeSource.ts","../../src/types/keyBindingTypes.ts","../../src/types/apiTypes.ts","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/core/AxiosError.js","../../node_modules/axios/lib/helpers/null.js","../../node_modules/axios/lib/helpers/toFormData.js","../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/defaults/transitional.js","../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/axios/lib/platform/browser/index.js","../../node_modules/axios/lib/platform/common/utils.js","../../node_modules/axios/lib/platform/index.js","../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/axios/lib/defaults/index.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/axios/lib/helpers/speedometer.js","../../node_modules/axios/lib/helpers/throttle.js","../../node_modules/axios/lib/helpers/progressEventReducer.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/helpers/resolveConfig.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/helpers/composeSignals.js","../../node_modules/axios/lib/helpers/trackStream.js","../../node_modules/axios/lib/adapters/fetch.js","../../node_modules/axios/lib/adapters/adapters.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/env/data.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/axios/lib/axios.js","../../node_modules/axios/index.js","../../src/scripts/api.ts","../../node_modules/lodash/lodash.js","../../src/stores/queueStore.ts","../../node_modules/@intlify/shared/dist/shared.mjs","../../node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js","../../node_modules/@intlify/core-base/dist/core-base.mjs","../../node_modules/vue-i18n/dist/vue-i18n.mjs","../../src/hooks/errorHooks.ts","../../node_modules/@comfyorg/litegraph/dist/litegraph.es.js","../../src/scripts/domWidget.ts","../../src/scripts/widgets.ts","../../src/scripts/ui/dialog.ts","../../src/scripts/ui/toggleSwitch.ts","../../src/scripts/ui/settings.ts","../../src/stores/dialogStore.ts","../../node_modules/@primeuix/utils/dom/index.mjs","../../node_modules/@primeuix/utils/object/index.mjs","../../node_modules/@primevue/core/api/index.mjs","../../node_modules/@primeuix/utils/eventbus/index.mjs","../../node_modules/@primeuix/utils/uuid/index.mjs","../../node_modules/@primeuix/utils/zindex/index.mjs","../../node_modules/@primevue/core/utils/index.mjs","../../node_modules/@primeuix/styled/index.mjs","../../node_modules/@primevue/core/base/index.mjs","../../node_modules/@primevue/core/usestyle/index.mjs","../../node_modules/@primevue/core/base/style/index.mjs","../../node_modules/@primevue/core/basecomponent/index.mjs","../../node_modules/@primevue/icons/baseicon/style/index.mjs","../../node_modules/@primevue/icons/baseicon/index.mjs","../../node_modules/@primevue/icons/blank/index.mjs","../../node_modules/@primevue/icons/check/index.mjs","../../node_modules/@primevue/icons/search/index.mjs","../../node_modules/primevue/iconfield/style/index.mjs","../../node_modules/primevue/iconfield/index.mjs","../../node_modules/primevue/inputicon/style/index.mjs","../../node_modules/primevue/inputicon/index.mjs","../../node_modules/primevue/inputtext/style/index.mjs","../../node_modules/primevue/inputtext/index.mjs","../../node_modules/@primevue/core/service/index.mjs","../../node_modules/@primevue/core/basedirective/index.mjs","../../node_modules/primevue/ripple/style/index.mjs","../../node_modules/primevue/ripple/index.mjs","../../node_modules/@primevue/icons/spinner/index.mjs","../../node_modules/primevue/virtualscroller/style/index.mjs","../../node_modules/primevue/virtualscroller/index.mjs","../../node_modules/primevue/listbox/style/index.mjs","../../node_modules/primevue/listbox/index.mjs","../../node_modules/primevue/badge/style/index.mjs","../../node_modules/primevue/badge/index.mjs","../../node_modules/primevue/button/style/index.mjs","../../node_modules/primevue/button/index.mjs","../../node_modules/primevue/card/style/index.mjs","../../node_modules/primevue/card/index.mjs","../../src/components/common/NoResultsPlaceholder.vue","../../src/components/dialog/content/LoadWorkflowWarning.vue","../../src/hooks/downloadHooks.ts","../../node_modules/primevue/progressbar/style/index.mjs","../../node_modules/primevue/progressbar/index.mjs","../../src/utils/formatUtil.ts","../../src/utils/envUtil.ts","../../node_modules/@comfyorg/comfyui-electron-types/index.mjs","../../src/stores/electronDownloadStore.ts","../../src/components/common/ElectronFileDownload.vue","../../src/components/common/FileDownload.vue","../../src/components/dialog/content/MissingModelsWarning.vue","../../node_modules/primevue/tabs/style/index.mjs","../../node_modules/primevue/tabs/index.mjs","../../node_modules/primevue/tabpanels/style/index.mjs","../../node_modules/primevue/tabpanels/index.mjs","../../node_modules/primevue/divider/style/index.mjs","../../node_modules/primevue/divider/index.mjs","../../node_modules/primevue/scrollpanel/style/index.mjs","../../node_modules/primevue/scrollpanel/index.mjs","../../node_modules/@primevue/icons/timescircle/index.mjs","../../node_modules/primevue/chip/style/index.mjs","../../node_modules/primevue/chip/index.mjs","../../src/components/common/SearchBox.vue","../../node_modules/primevue/tag/style/index.mjs","../../node_modules/primevue/tag/index.mjs","../../node_modules/@primevue/icons/angledown/index.mjs","../../node_modules/@primevue/icons/angleup/index.mjs","../../node_modules/primevue/inputnumber/style/index.mjs","../../node_modules/primevue/inputnumber/index.mjs","../../node_modules/@primevue/icons/chevrondown/index.mjs","../../node_modules/@primevue/icons/times/index.mjs","../../node_modules/primevue/overlayeventbus/index.mjs","../../node_modules/primevue/portal/index.mjs","../../node_modules/primevue/select/style/index.mjs","../../node_modules/primevue/select/index.mjs","../../node_modules/primevue/toggleswitch/style/index.mjs","../../node_modules/primevue/toggleswitch/index.mjs","../../src/components/common/CustomFormValue.vue","../../node_modules/primevue/slider/style/index.mjs","../../node_modules/primevue/slider/index.mjs","../../src/components/common/InputSlider.vue","../../src/components/common/FormItem.vue","../../src/components/dialog/content/setting/SettingItem.vue","../../src/components/dialog/content/setting/SettingsPanel.vue","../../node_modules/primevue/tabpanel/style/index.mjs","../../node_modules/primevue/tabpanel/index.mjs","../../src/components/dialog/content/setting/PanelTemplate.vue","../../src/stores/systemStatsStore.ts","../../src/constants/coreMenuCommands.ts","../../src/stores/menuItemStore.ts","../../src/stores/executionStore.ts","../../node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs","../../node_modules/@vueuse/shared/index.mjs","../../node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs","../../node_modules/@vueuse/core/index.mjs","../../node_modules/@xterm/addon-fit/lib/addon-fit.js","../../node_modules/@xterm/xterm/lib/xterm.js","../../src/hooks/bottomPanelTabs/useTerminal.ts","../../src/components/bottomPanel/tabs/terminal/BaseTerminal.vue","../../node_modules/primevue/progressspinner/style/index.mjs","../../node_modules/primevue/progressspinner/index.mjs","../../src/components/bottomPanel/tabs/terminal/LogsTerminal.vue","../../src/components/bottomPanel/tabs/terminal/CommandTerminal.vue","../../src/hooks/bottomPanelTabs/terminalTabs.ts","../../src/stores/workspace/bottomPanelStore.ts","../../src/stores/widgetStore.ts","../../src/stores/extensionStore.ts","../../src/stores/aboutPanelStore.ts","../../node_modules/@primevue/icons/chevronleft/index.mjs","../../node_modules/@primevue/icons/chevronright/index.mjs","../../node_modules/primevue/tabview/style/index.mjs","../../node_modules/primevue/tabview/index.mjs","../../src/components/common/DeviceInfo.vue","../../src/components/common/SystemStatsPanel.vue","../../src/components/dialog/content/setting/AboutPanel.vue","../../node_modules/@primevue/icons/exclamationtriangle/index.mjs","../../node_modules/@primevue/icons/infocircle/index.mjs","../../node_modules/primevue/message/style/index.mjs","../../node_modules/primevue/message/index.mjs","../../src/components/dialog/content/setting/FirstTimeUIMessage.vue","../../src/stores/userStore.ts","../../src/components/dialog/content/setting/CurrentUserMessage.vue","../../src/utils/treeUtil.ts","../../src/components/dialog/content/SettingDialogContent.vue","../../src/components/dialog/header/SettingDialogHeader.vue","../../node_modules/primevue/usetoast/index.mjs","../../src/components/dialog/content/error/FindIssueButton.vue","../../src/components/dialog/content/error/ReportIssueButton.vue","../../src/hooks/clipboardHooks.ts","../../src/components/dialog/content/ExecutionErrorDialogContent.vue","../../src/components/templates/TemplateWorkflowsContent.vue","../../node_modules/primevue/floatlabel/style/index.mjs","../../node_modules/primevue/floatlabel/index.mjs","../../src/components/dialog/content/PromptDialogContent.vue","../../src/components/dialog/content/ConfirmationDialogContent.vue","../../src/i18n.ts","../../src/services/dialogService.ts","../../src/scripts/ui.ts","../../src/scripts/defaultGraph.ts","../../src/scripts/metadata/png.ts","../../src/scripts/metadata/flac.ts","../../src/scripts/pnginfo.ts","../../src/scripts/ui/imagePreview.ts","../../src/utils/colorUtil.ts","../../src/scripts/utils.ts","../../src/scripts/ui/components/buttonGroup.ts","../../src/scripts/ui/utils.ts","../../src/scripts/ui/components/button.ts","../../src/scripts/ui/components/popup.ts","../../src/scripts/ui/components/splitButton.ts","../../src/scripts/ui/components/asyncDialog.ts","../../src/scripts/ui/draggableList.ts","../../src/scripts/ui/menu/index.ts","../../node_modules/fuse.js/dist/fuse.mjs","../../src/services/nodeSearchService.ts","../../src/stores/nodeDefStore.ts","../../src/stores/modelStore.ts","../../src/utils/syncUtil.ts","../../src/stores/userFileStore.ts","../../node_modules/jsondiffpatch/lib/processor.js","../../node_modules/jsondiffpatch/lib/pipe.js","../../node_modules/jsondiffpatch/lib/contexts/context.js","../../node_modules/jsondiffpatch/lib/clone.js","../../node_modules/jsondiffpatch/lib/contexts/diff.js","../../node_modules/jsondiffpatch/lib/contexts/patch.js","../../node_modules/jsondiffpatch/lib/contexts/reverse.js","../../node_modules/jsondiffpatch/lib/filters/trivial.js","../../node_modules/jsondiffpatch/lib/filters/nested.js","../../node_modules/jsondiffpatch/lib/filters/lcs.js","../../node_modules/jsondiffpatch/lib/filters/arrays.js","../../node_modules/jsondiffpatch/lib/filters/dates.js","../../node_modules/jsondiffpatch/lib/filters/texts.js","../../node_modules/jsondiffpatch/lib/diffpatcher.js","../../node_modules/jsondiffpatch/lib/date-reviver.js","../../node_modules/jsondiffpatch/lib/index.js","../../node_modules/loglevel/lib/loglevel.js","../../src/scripts/changeTracker.ts","../../src/stores/workflowStore.ts","../../src/services/workflowService.ts","../../src/extensions/core/vintageClipboard.ts","../../src/scripts/app.ts","../../src/constants/coreSettings.ts","../../src/stores/settingStore.ts","../../src/constants/coreKeybindings.ts","../../src/stores/keybindingStore.ts","../../src/stores/commandStore.ts","../../node_modules/primevue/tree/style/index.mjs","../../node_modules/@primevue/icons/minus/index.mjs","../../node_modules/primevue/checkbox/style/index.mjs","../../node_modules/primevue/checkbox/index.mjs","../../node_modules/primevue/tree/index.mjs","../../node_modules/primevue/contextmenu/style/index.mjs","../../node_modules/@primevue/icons/angleright/index.mjs","../../node_modules/primevue/contextmenu/index.mjs","../../src/components/common/EditableText.vue","../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../node_modules/bind-event-listener/dist/bind.js","../../node_modules/bind-event-listener/dist/bind-all.js","../../node_modules/bind-event-listener/dist/index.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/honey-pot-data-attribute.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/is-honey-pot-element.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/get-element-from-point-without-honey-pot.js","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/max-z-index.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/make-honey-pot-fix.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/once.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-firefox.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-safari.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/count-events-for-safari.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-from-another-window.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-leaving-window.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/detect-broken-drag.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/get-input.js","../../node_modules/raf-schd/dist/raf-schd.esm.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/dispatch-consumer-event.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/lifecycle-manager.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/usage-ledger.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/combine.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/add-attribute.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-drop-target.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-monitor.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-adapter.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/android.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/text-media-type.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/url-media-type.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter-native-data-key.js","../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter.js","../../src/hooks/dndHooks.ts","../../src/components/common/TreeExplorerTreeNode.vue","../../src/components/common/TreeExplorer.vue","../../node_modules/primevue/toolbar/style/index.mjs","../../node_modules/primevue/toolbar/index.mjs","../../src/components/sidebar/tabs/SidebarTabTemplate.vue","../../src/components/sidebar/tabs/modelLibrary/ModelPreview.vue","../../src/components/sidebar/tabs/modelLibrary/ModelTreeLeaf.vue","../../src/components/sidebar/tabs/modelLibrary/DownloadItem.vue","../../src/components/sidebar/tabs/modelLibrary/ElectronDownloadItems.vue","../../src/stores/modelToNodeStore.ts","../../src/hooks/treeHooks.ts","../../src/components/sidebar/tabs/ModelLibrarySidebarTab.vue","../../src/hooks/sidebarTabs/modelLibrarySidebarTab.ts","../../node_modules/primevue/focustrap/style/index.mjs","../../node_modules/primevue/focustrap/index.mjs","../../node_modules/primevue/popover/style/index.mjs","../../node_modules/primevue/popover/index.mjs","../../src/extensions/core/colorPalette.ts","../../src/components/node/NodePreview.vue","../../src/stores/nodeBookmarkStore.ts","../../src/components/sidebar/tabs/nodeLibrary/NodeTreeLeaf.vue","../../src/components/sidebar/tabs/nodeLibrary/NodeTreeFolder.vue","../../node_modules/@primevue/icons/windowmaximize/index.mjs","../../node_modules/@primevue/icons/windowminimize/index.mjs","../../node_modules/primevue/dialog/style/index.mjs","../../node_modules/primevue/dialog/index.mjs","../../node_modules/primevue/togglebutton/style/index.mjs","../../node_modules/primevue/togglebutton/index.mjs","../../node_modules/primevue/selectbutton/style/index.mjs","../../node_modules/primevue/selectbutton/index.mjs","../../node_modules/primevue/colorpicker/style/index.mjs","../../node_modules/primevue/colorpicker/index.mjs","../../src/components/common/CustomizationDialog.vue","../../src/components/sidebar/tabs/nodeLibrary/NodeBookmarkTreeExplorer.vue","../../src/components/searchbox/NodeSearchFilter.vue","../../src/components/sidebar/tabs/NodeLibrarySidebarTab.vue","../../src/hooks/sidebarTabs/nodeLibrarySidebarTab.ts","../../node_modules/primevue/useconfirm/index.mjs","../../node_modules/primevue/confirmationeventbus/index.mjs","../../node_modules/primevue/confirmpopup/style/index.mjs","../../node_modules/primevue/confirmpopup/index.mjs","../../src/components/common/ComfyImage.vue","../../src/components/sidebar/tabs/queue/ResultVideo.vue","../../src/components/sidebar/tabs/queue/ResultItem.vue","../../src/components/sidebar/tabs/queue/TaskItem.vue","../../node_modules/primevue/galleria/style/index.mjs","../../node_modules/@primevue/icons/chevronup/index.mjs","../../node_modules/primevue/galleria/index.mjs","../../src/components/sidebar/tabs/queue/ResultGallery.vue","../../src/components/sidebar/tabs/QueueSidebarTab.vue","../../src/hooks/sidebarTabs/queueSidebarTab.ts","../../src/components/sidebar/tabs/workflows/WorkflowTreeLeaf.vue","../../src/components/common/TextDivider.vue","../../node_modules/primevue/confirmdialog/style/index.mjs","../../node_modules/primevue/confirmdialog/index.mjs","../../src/components/sidebar/tabs/WorkflowsSidebarTab.vue","../../src/hooks/sidebarTabs/workflowsSidebarTab.ts","../../src/stores/workspace/sidebarTabStore.ts","../../src/stores/workspaceStore.ts","../../node_modules/primevue/blockui/style/index.mjs","../../node_modules/primevue/blockui/index.mjs","../../node_modules/@primevue/core/basecomponent/style/index.mjs","../../node_modules/@primevue/core/config/index.mjs","../../src/components/dialog/GlobalDialog.vue","../../src/App.vue","../../node_modules/vue-router/dist/vue-router.mjs","../../src/views/layouts/LayoutDefault.vue","../../src/router.ts","../../node_modules/@primevue/themes/aura/accordion/index.mjs","../../node_modules/@primevue/themes/aura/autocomplete/index.mjs","../../node_modules/@primevue/themes/aura/avatar/index.mjs","../../node_modules/@primevue/themes/aura/badge/index.mjs","../../node_modules/@primevue/themes/aura/blockui/index.mjs","../../node_modules/@primevue/themes/aura/breadcrumb/index.mjs","../../node_modules/@primevue/themes/aura/button/index.mjs","../../node_modules/@primevue/themes/aura/card/index.mjs","../../node_modules/@primevue/themes/aura/carousel/index.mjs","../../node_modules/@primevue/themes/aura/cascadeselect/index.mjs","../../node_modules/@primevue/themes/aura/checkbox/index.mjs","../../node_modules/@primevue/themes/aura/chip/index.mjs","../../node_modules/@primevue/themes/aura/colorpicker/index.mjs","../../node_modules/@primevue/themes/aura/confirmdialog/index.mjs","../../node_modules/@primevue/themes/aura/confirmpopup/index.mjs","../../node_modules/@primevue/themes/aura/contextmenu/index.mjs","../../node_modules/@primevue/themes/aura/datatable/index.mjs","../../node_modules/@primevue/themes/aura/dataview/index.mjs","../../node_modules/@primevue/themes/aura/datepicker/index.mjs","../../node_modules/@primevue/themes/aura/dialog/index.mjs","../../node_modules/@primevue/themes/aura/divider/index.mjs","../../node_modules/@primevue/themes/aura/dock/index.mjs","../../node_modules/@primevue/themes/aura/drawer/index.mjs","../../node_modules/@primevue/themes/aura/editor/index.mjs","../../node_modules/@primevue/themes/aura/fieldset/index.mjs","../../node_modules/@primevue/themes/aura/fileupload/index.mjs","../../node_modules/@primevue/themes/aura/floatlabel/index.mjs","../../node_modules/@primevue/themes/aura/galleria/index.mjs","../../node_modules/@primevue/themes/aura/iconfield/index.mjs","../../node_modules/@primevue/themes/aura/image/index.mjs","../../node_modules/@primevue/themes/aura/inlinemessage/index.mjs","../../node_modules/@primevue/themes/aura/inplace/index.mjs","../../node_modules/@primevue/themes/aura/inputchips/index.mjs","../../node_modules/@primevue/themes/aura/inputgroup/index.mjs","../../node_modules/@primevue/themes/aura/inputnumber/index.mjs","../../node_modules/@primevue/themes/aura/inputtext/index.mjs","../../node_modules/@primevue/themes/aura/knob/index.mjs","../../node_modules/@primevue/themes/aura/listbox/index.mjs","../../node_modules/@primevue/themes/aura/megamenu/index.mjs","../../node_modules/@primevue/themes/aura/menu/index.mjs","../../node_modules/@primevue/themes/aura/menubar/index.mjs","../../node_modules/@primevue/themes/aura/message/index.mjs","../../node_modules/@primevue/themes/aura/metergroup/index.mjs","../../node_modules/@primevue/themes/aura/multiselect/index.mjs","../../node_modules/@primevue/themes/aura/orderlist/index.mjs","../../node_modules/@primevue/themes/aura/organizationchart/index.mjs","../../node_modules/@primevue/themes/aura/overlaybadge/index.mjs","../../node_modules/@primevue/themes/aura/paginator/index.mjs","../../node_modules/@primevue/themes/aura/panel/index.mjs","../../node_modules/@primevue/themes/aura/panelmenu/index.mjs","../../node_modules/@primevue/themes/aura/password/index.mjs","../../node_modules/@primevue/themes/aura/picklist/index.mjs","../../node_modules/@primevue/themes/aura/popover/index.mjs","../../node_modules/@primevue/themes/aura/progressbar/index.mjs","../../node_modules/@primevue/themes/aura/progressspinner/index.mjs","../../node_modules/@primevue/themes/aura/radiobutton/index.mjs","../../node_modules/@primevue/themes/aura/rating/index.mjs","../../node_modules/@primevue/themes/aura/ripple/index.mjs","../../node_modules/@primevue/themes/aura/scrollpanel/index.mjs","../../node_modules/@primevue/themes/aura/select/index.mjs","../../node_modules/@primevue/themes/aura/selectbutton/index.mjs","../../node_modules/@primevue/themes/aura/skeleton/index.mjs","../../node_modules/@primevue/themes/aura/slider/index.mjs","../../node_modules/@primevue/themes/aura/speeddial/index.mjs","../../node_modules/@primevue/themes/aura/splitbutton/index.mjs","../../node_modules/@primevue/themes/aura/splitter/index.mjs","../../node_modules/@primevue/themes/aura/stepper/index.mjs","../../node_modules/@primevue/themes/aura/steps/index.mjs","../../node_modules/@primevue/themes/aura/tabmenu/index.mjs","../../node_modules/@primevue/themes/aura/tabs/index.mjs","../../node_modules/@primevue/themes/aura/tabview/index.mjs","../../node_modules/@primevue/themes/aura/tag/index.mjs","../../node_modules/@primevue/themes/aura/terminal/index.mjs","../../node_modules/@primevue/themes/aura/textarea/index.mjs","../../node_modules/@primevue/themes/aura/tieredmenu/index.mjs","../../node_modules/@primevue/themes/aura/timeline/index.mjs","../../node_modules/@primevue/themes/aura/toast/index.mjs","../../node_modules/@primevue/themes/aura/togglebutton/index.mjs","../../node_modules/@primevue/themes/aura/toggleswitch/index.mjs","../../node_modules/@primevue/themes/aura/toolbar/index.mjs","../../node_modules/@primevue/themes/aura/tooltip/index.mjs","../../node_modules/@primevue/themes/aura/tree/index.mjs","../../node_modules/@primevue/themes/aura/treeselect/index.mjs","../../node_modules/@primevue/themes/aura/treetable/index.mjs","../../node_modules/@primevue/themes/aura/virtualscroller/index.mjs","../../node_modules/@primevue/themes/aura/index.mjs","../../node_modules/primevue/confirmationservice/index.mjs","../../node_modules/primevue/toasteventbus/index.mjs","../../node_modules/primevue/toastservice/index.mjs","../../node_modules/primevue/tooltip/style/index.mjs","../../node_modules/primevue/tooltip/index.mjs","../../src/main.ts"],"sourcesContent":["/**\n* @vue/shared v3.4.31\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val.__v_isRef === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.4.31\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n this.onStop && this.onStop();\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope) recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n const depsMap = targetMap.get(object);\n return depsMap && depsMap.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal, oldVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal,\n oldValue: oldVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n const oldVal = this._rawValue;\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal, oldVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst deferredComputed = computed;\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\"\n};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","/**\n* @vue/runtime-core v3.4.31\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, shallowReadonly, ref, track, reactive, shallowReactive, trigger, ReactiveEffect, isShallow, isReactive, getCurrentScope, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, isBuiltInDirective, isGloballyAllowed, NO, isReservedProp, EMPTY_ARR, toRawType, makeMap, def, remove, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, invokeArrayFns, hasChanged, isSet, isMap, isPlainObject, isRegExp } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n pauseTracking();\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.active !== false) cb();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre) return -1;\n if (b.pre && !a.pre) return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(() => {\n instance.parent.update();\n hmrDirtyComponents.delete(oldComp);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted) return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n props,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n const prev = setCurrentRenderingInstance(instance);\n let result;\n let fallthroughAttrs;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return shallowReadonly(attrs);\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n null\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs, false, true);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root, null, false, true);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect, optimized2) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized2\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n const suspensible = vnode.props && vnode.props.suspensible;\n return suspensible != null && suspensible !== false;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\") props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n\n\n","\n\n\n\n\n","import { onMounted, ref } from 'vue'\n\nexport function useDownload(url: string, fileName?: string) {\n const fileSize = ref(null)\n\n const fetchFileSize = async (): Promise => {\n try {\n const response = await fetch(url, { method: 'HEAD' })\n if (!response.ok) throw new Error('Failed to fetch file size')\n\n const size = response.headers.get('content-length')\n if (size) {\n return parseInt(size)\n } else {\n console.error('\"content-length\" header not found')\n return null\n }\n } catch (e) {\n console.error('Error fetching file size:', e)\n return null\n }\n }\n\n /**\n * Trigger browser download\n */\n const triggerBrowserDownload = () => {\n const link = document.createElement('a')\n link.href = url\n link.download = fileName || url.split('/').pop() || 'download'\n link.target = '_blank' // Opens in new tab if download attribute is not supported\n link.rel = 'noopener noreferrer' // Security best practice for _blank links\n link.click()\n }\n\n onMounted(async () => {\n fileSize.value = await fetchFileSize()\n })\n\n return {\n triggerBrowserDownload,\n fileSize\n }\n}\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-progressbar {\\n position: relative;\\n overflow: hidden;\\n height: \".concat(dt('progressbar.height'), \";\\n background: \").concat(dt('progressbar.background'), \";\\n border-radius: \").concat(dt('progressbar.border.radius'), \";\\n}\\n\\n.p-progressbar-value {\\n margin: 0;\\n background: \").concat(dt('progressbar.value.background'), \";\\n}\\n\\n.p-progressbar-label {\\n color: \").concat(dt('progressbar.label.color'), \";\\n font-size: \").concat(dt('progressbar.label.font.size'), \";\\n font-weight: \").concat(dt('progressbar.label.font.weight'), \";\\n}\\n\\n.p-progressbar-determinate .p-progressbar-value {\\n height: 100%;\\n width: 0%;\\n position: absolute;\\n display: none;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n transition: width 1s ease-in-out;\\n}\\n\\n.p-progressbar-determinate .p-progressbar-label {\\n display: inline-flex;\\n}\\n\\n.p-progressbar-indeterminate .p-progressbar-value::before {\\n content: \\\"\\\";\\n position: absolute;\\n background: inherit;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n will-change: left, right;\\n animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\\n}\\n\\n.p-progressbar-indeterminate .p-progressbar-value::after {\\n content: \\\"\\\";\\n position: absolute;\\n background: inherit;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n will-change: left, right;\\n animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\\n animation-delay: 1.15s;\\n}\\n\\n@-webkit-keyframes p-progressbar-indeterminate-anim {\\n 0% {\\n left: -35%;\\n right: 100%;\\n }\\n 60% {\\n left: 100%;\\n right: -90%;\\n }\\n 100% {\\n left: 100%;\\n right: -90%;\\n }\\n}\\n@keyframes p-progressbar-indeterminate-anim {\\n 0% {\\n left: -35%;\\n right: 100%;\\n }\\n 60% {\\n left: 100%;\\n right: -90%;\\n }\\n 100% {\\n left: 100%;\\n right: -90%;\\n }\\n}\\n@-webkit-keyframes p-progressbar-indeterminate-anim-short {\\n 0% {\\n left: -200%;\\n right: 100%;\\n }\\n 60% {\\n left: 107%;\\n right: -8%;\\n }\\n 100% {\\n left: 107%;\\n right: -8%;\\n }\\n}\\n@keyframes p-progressbar-indeterminate-anim-short {\\n 0% {\\n left: -200%;\\n right: 100%;\\n }\\n 60% {\\n left: 107%;\\n right: -8%;\\n }\\n 100% {\\n left: 107%;\\n right: -8%;\\n }\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance;\n return ['p-progressbar p-component', {\n 'p-progressbar-determinate': instance.determinate,\n 'p-progressbar-indeterminate': instance.indeterminate\n }];\n },\n value: 'p-progressbar-value',\n label: 'p-progressbar-label'\n};\nvar ProgressBarStyle = BaseStyle.extend({\n name: 'progressbar',\n theme: theme,\n classes: classes\n});\n\nexport { ProgressBarStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ProgressBarStyle from 'primevue/progressbar/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseProgressBar',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: Number,\n \"default\": null\n },\n mode: {\n type: String,\n \"default\": 'determinate'\n },\n showValue: {\n type: Boolean,\n \"default\": true\n }\n },\n style: ProgressBarStyle,\n provide: function provide() {\n return {\n $pcProgressBar: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ProgressBar',\n \"extends\": script$1,\n inheritAttrs: false,\n computed: {\n progressStyle: function progressStyle() {\n return {\n width: this.value + '%',\n display: 'flex'\n };\n },\n indeterminate: function indeterminate() {\n return this.mode === 'indeterminate';\n },\n determinate: function determinate() {\n return this.mode === 'determinate';\n }\n }\n};\n\nvar _hoisted_1 = [\"aria-valuenow\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n role: \"progressbar\",\n \"class\": _ctx.cx('root'),\n \"aria-valuemin\": \"0\",\n \"aria-valuenow\": _ctx.value,\n \"aria-valuemax\": \"100\"\n }, _ctx.ptmi('root')), [$options.determinate ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('value'),\n style: $options.progressStyle\n }, _ctx.ptm('value')), [_ctx.value != null && _ctx.value !== 0 && _ctx.showValue ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('label')\n }, _ctx.ptm('label')), [renderSlot(_ctx.$slots, \"default\", {}, function () {\n return [createTextVNode(toDisplayString(_ctx.value + '%'), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16)) : $options.indeterminate ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('value')\n }, _ctx.ptm('value')), null, 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","export function formatCamelCase(str: string): string {\n // Check if the string is camel case\n const isCamelCase = /^([A-Z][a-z]*)+$/.test(str)\n\n if (!isCamelCase) {\n return str // Return original string if not camel case\n }\n\n // Split the string into words, keeping acronyms together\n const words = str.split(/(?=[A-Z][a-z])|\\d+/)\n\n // Process each word\n const processedWords = words.map((word) => {\n // If the word is all uppercase and longer than one character, it's likely an acronym\n if (word.length > 1 && word === word.toUpperCase()) {\n return word // Keep acronyms as is\n }\n // For other words, ensure the first letter is capitalized\n return word.charAt(0).toUpperCase() + word.slice(1)\n })\n\n // Join the words with spaces\n return processedWords.join(' ')\n}\n\nexport function appendJsonExt(path: string) {\n if (!path.toLowerCase().endsWith('.json')) {\n path += '.json'\n }\n return path\n}\n\nexport function trimJsonExt(path?: string) {\n return path?.replace(/\\.json$/, '')\n}\n\nexport function highlightQuery(text: string, query: string) {\n if (!query) return text\n const regex = new RegExp(`(${query})`, 'gi')\n return text.replace(regex, '$1')\n}\n\nexport function formatNumberWithSuffix(\n num: number,\n {\n precision = 1,\n roundToInt = false\n }: { precision?: number; roundToInt?: boolean } = {}\n): string {\n const suffixes = ['', 'k', 'm', 'b', 't']\n const absNum = Math.abs(num)\n\n if (absNum < 1000) {\n return roundToInt ? Math.round(num).toString() : num.toFixed(precision)\n }\n\n const exp = Math.min(Math.floor(Math.log10(absNum) / 3), suffixes.length - 1)\n const formattedNum = (num / Math.pow(1000, exp)).toFixed(precision)\n\n return `${formattedNum}${suffixes[exp]}`\n}\n\nexport function formatSize(value?: number) {\n if (value === null || value === undefined) {\n return '-'\n }\n\n const bytes = value\n if (bytes === 0) return '0 B'\n const k = 1024\n const sizes = ['B', 'KB', 'MB', 'GB']\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`\n}\n\n/**\n * Finds the common directory prefix between two paths\n * @example\n * findCommonPrefix('a/b/c', 'a/b/d') // returns 'a/b'\n * findCommonPrefix('x/y/z', 'a/b/c') // returns ''\n * findCommonPrefix('a/b/c', 'a/b/c/d') // returns 'a/b/c'\n */\nexport function findCommonPrefix(path1: string, path2: string): string {\n const parts1 = path1.split('/')\n const parts2 = path2.split('/')\n\n const commonParts: string[] = []\n for (let i = 0; i < Math.min(parts1.length, parts2.length); i++) {\n if (parts1[i] === parts2[i]) {\n commonParts.push(parts1[i])\n } else {\n break\n }\n }\n return commonParts.join('/')\n}\n\n/**\n * Returns various filename components.\n * Example:\n * - fullFilename: 'file.txt'\n * - filename: 'file'\n * - suffix: 'txt'\n */\nexport function getFilenameDetails(fullFilename: string) {\n if (fullFilename.includes('.')) {\n return {\n filename: fullFilename.split('.').slice(0, -1).join('.'),\n suffix: fullFilename.split('.').pop() ?? null\n }\n } else {\n return { filename: fullFilename, suffix: null }\n }\n}\n\n/**\n * Returns various path components.\n * Example:\n * - path: 'dir/file.txt'\n * - directory: 'dir'\n * - fullFilename: 'file.txt'\n * - filename: 'file'\n * - suffix: 'txt'\n */\nexport function getPathDetails(path: string) {\n const directory = path.split('/').slice(0, -1).join('/')\n const fullFilename = path.split('/').pop() ?? path\n return { directory, fullFilename, ...getFilenameDetails(fullFilename) }\n}\n\n/**\n * Normalizes a string to be used as an i18n key.\n * Replaces dots with underscores.\n */\nexport function normalizeI18nKey(key: string) {\n return key.replace(/\\./g, '_')\n}\n","import { ElectronAPI } from '@comfyorg/comfyui-electron-types'\n\nexport function isElectron() {\n return 'electronAPI' in window && window['electronAPI'] !== undefined\n}\n\nexport function electronAPI() {\n return (window as any)['electronAPI'] as ElectronAPI\n}\n\ntype NativeContextOptions = Parameters[0]\nexport function showNativeMenu(options?: NativeContextOptions) {\n electronAPI()?.showContextMenu(options)\n}\n","const IPC_CHANNELS = {\n LOADING_PROGRESS: \"loading-progress\",\n IS_PACKAGED: \"is-packaged\",\n RENDERER_READY: \"renderer-ready\",\n RESTART_APP: \"restart-app\",\n REINSTALL: \"reinstall\",\n LOG_MESSAGE: \"log-message\",\n OPEN_DIALOG: \"open-dialog\",\n DOWNLOAD_PROGRESS: \"download-progress\",\n START_DOWNLOAD: \"start-download\",\n PAUSE_DOWNLOAD: \"pause-download\",\n RESUME_DOWNLOAD: \"resume-download\",\n CANCEL_DOWNLOAD: \"cancel-download\",\n DELETE_MODEL: \"delete-model\",\n GET_ALL_DOWNLOADS: \"get-all-downloads\",\n GET_ELECTRON_VERSION: \"get-electron-version\",\n SEND_ERROR_TO_SENTRY: \"send-error-to-sentry\",\n GET_BASE_PATH: \"get-base-path\",\n GET_MODEL_CONFIG_PATH: \"get-model-config-path\",\n OPEN_PATH: \"open-path\",\n OPEN_LOGS_PATH: \"open-logs-path\",\n OPEN_DEV_TOOLS: \"open-dev-tools\",\n TERMINAL_WRITE: \"execute-terminal-command\",\n TERMINAL_RESIZE: \"resize-terminal\",\n TERMINAL_RESTORE: \"restore-terminal\",\n TERMINAL_ON_OUTPUT: \"terminal-output\",\n IS_FIRST_TIME_SETUP: \"is-first-time-setup\",\n GET_SYSTEM_PATHS: \"get-system-paths\",\n VALIDATE_INSTALL_PATH: \"validate-install-path\",\n VALIDATE_COMFYUI_SOURCE: \"validate-comfyui-source\",\n SHOW_DIRECTORY_PICKER: \"show-directory-picker\",\n INSTALL_COMFYUI: \"install-comfyui\",\n SHOW_CONTEXT_MENU: \"show-context-menu\"\n};\nvar ProgressStatus = /* @__PURE__ */ ((ProgressStatus2) => {\n ProgressStatus2[\"INITIAL_STATE\"] = \"initial-state\";\n ProgressStatus2[\"PYTHON_SETUP\"] = \"python-setup\";\n ProgressStatus2[\"STARTING_SERVER\"] = \"starting-server\";\n ProgressStatus2[\"READY\"] = \"ready\";\n ProgressStatus2[\"ERROR\"] = \"error\";\n return ProgressStatus2;\n})(ProgressStatus || {});\nconst ProgressMessages = {\n [\n \"initial-state\"\n /* INITIAL_STATE */\n ]: \"Loading...\",\n [\n \"python-setup\"\n /* PYTHON_SETUP */\n ]: \"Setting up Python Environment...\",\n [\n \"starting-server\"\n /* STARTING_SERVER */\n ]: \"Starting ComfyUI server...\",\n [\n \"ready\"\n /* READY */\n ]: \"Finishing...\",\n [\n \"error\"\n /* ERROR */\n ]: \"Was not able to start ComfyUI. Please check the logs for more details. You can open it from the Help menu. Please report issues to: https://forum.comfy.org\"\n};\nconst ELECTRON_BRIDGE_API = \"electronAPI\";\nconst SENTRY_URL_ENDPOINT = \"https://942cadba58d247c9cab96f45221aa813@o4507954455314432.ingest.us.sentry.io/4508007940685824\";\nconst MigrationItems = [\n {\n id: \"user_files\",\n label: \"User Files\",\n description: \"Settings and user-created workflows\"\n },\n {\n id: \"models\",\n label: \"Models\",\n description: \"Reference model files from existing ComfyUI installations. (No copy)\"\n }\n // TODO: Decide whether we want to auto-migrate custom nodes, and install their dependencies.\n // huchenlei: This is a very essential thing for migration experience.\n // {\n // id: 'custom_nodes',\n // label: 'Custom Nodes',\n // description: 'Reference custom node files from existing ComfyUI installations. (No copy)',\n // },\n];\nconst DEFAULT_SERVER_ARGS = {\n /** The host to use for the ComfyUI server. */\n host: \"127.0.0.1\",\n /** The port to use for the ComfyUI server. */\n port: 8e3,\n // Extra arguments to pass to the ComfyUI server.\n extraServerArgs: {}\n};\nvar DownloadStatus = /* @__PURE__ */ ((DownloadStatus2) => {\n DownloadStatus2[\"PENDING\"] = \"pending\";\n DownloadStatus2[\"IN_PROGRESS\"] = \"in_progress\";\n DownloadStatus2[\"COMPLETED\"] = \"completed\";\n DownloadStatus2[\"PAUSED\"] = \"paused\";\n DownloadStatus2[\"ERROR\"] = \"error\";\n DownloadStatus2[\"CANCELLED\"] = \"cancelled\";\n return DownloadStatus2;\n})(DownloadStatus || {});\nexport {\n DEFAULT_SERVER_ARGS,\n DownloadStatus,\n ELECTRON_BRIDGE_API,\n IPC_CHANNELS,\n MigrationItems,\n ProgressMessages,\n ProgressStatus,\n SENTRY_URL_ENDPOINT\n};\n","import { computed, ref } from 'vue'\nimport { defineStore } from 'pinia'\nimport { isElectron, electronAPI } from '@/utils/envUtil'\nimport {\n type DownloadState,\n DownloadStatus\n} from '@comfyorg/comfyui-electron-types'\n\nexport interface ElectronDownload\n extends Pick {\n progress?: number\n savePath?: string\n status?: DownloadStatus\n}\n\n/** Electron donwloads store handler */\nexport const useElectronDownloadStore = defineStore('downloads', () => {\n const downloads = ref([])\n const { DownloadManager } = electronAPI()\n\n const findByUrl = (url: string) =>\n downloads.value.find((download) => url === download.url)\n\n const initialize = async () => {\n if (isElectron()) {\n const allDownloads = await DownloadManager.getAllDownloads()\n\n for (const download of allDownloads) {\n downloads.value.push(download)\n }\n\n // ToDO: replace with ElectronDownload type\n DownloadManager.onDownloadProgress((data) => {\n if (!findByUrl(data.url)) {\n downloads.value.push(data)\n }\n\n const download = findByUrl(data.url)\n\n if (download) {\n download.progress = data.progress\n download.status = data.status\n download.filename = data.filename\n download.savePath = data.savePath\n }\n })\n }\n }\n\n void initialize()\n\n const start = ({\n url,\n savePath,\n filename\n }: {\n url: string\n savePath: string\n filename: string\n }) => DownloadManager.startDownload(url, savePath, filename)\n const pause = (url: string) => DownloadManager.pauseDownload(url)\n const resume = (url: string) => DownloadManager.resumeDownload(url)\n const cancel = (url: string) => DownloadManager.cancelDownload(url)\n\n return {\n downloads,\n start,\n pause,\n resume,\n cancel,\n findByUrl,\n initialize,\n inProgressDownloads: computed(() =>\n downloads.value.filter(\n ({ status }) => status !== DownloadStatus.COMPLETED\n )\n )\n }\n})\n","\n\n\n\n","\n\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tabs {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-tablist {\\n display: flex;\\n position: relative;\\n}\\n\\n.p-tabs-scrollable > .p-tablist {\\n overflow: hidden;\\n}\\n\\n.p-tablist-viewport {\\n overflow-x: auto;\\n overflow-y: hidden;\\n scroll-behavior: smooth;\\n scrollbar-width: none;\\n overscroll-behavior: contain auto;\\n}\\n\\n.p-tablist-viewport::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.p-tablist-tab-list {\\n position: relative;\\n display: flex;\\n background: \".concat(dt('tabs.tablist.background'), \";\\n border-style: solid;\\n border-color: \").concat(dt('tabs.tablist.border.color'), \";\\n border-width: \").concat(dt('tabs.tablist.border.width'), \";\\n}\\n\\n.p-tablist-content {\\n flex-grow: 1;\\n}\\n\\n.p-tablist-nav-button {\\n all: unset;\\n position: absolute !important;\\n flex-shrink: 0;\\n top: 0;\\n z-index: 2;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: \").concat(dt('tabs.nav.button.background'), \";\\n color: \").concat(dt('tabs.nav.button.color'), \";\\n width: \").concat(dt('tabs.nav.button.width'), \";\\n transition: color \").concat(dt('tabs.transition.duration'), \", outline-color \").concat(dt('tabs.transition.duration'), \", box-shadow \").concat(dt('tabs.transition.duration'), \";\\n box-shadow: \").concat(dt('tabs.nav.button.shadow'), \";\\n outline-color: transparent;\\n cursor: pointer;\\n}\\n\\n.p-tablist-nav-button:focus-visible {\\n z-index: 1;\\n box-shadow: \").concat(dt('tabs.nav.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('tabs.nav.button.focus.ring.width'), \" \").concat(dt('tabs.nav.button.focus.ring.style'), \" \").concat(dt('tabs.nav.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tabs.nav.button.focus.ring.offset'), \";\\n}\\n\\n.p-tablist-nav-button:hover {\\n color: \").concat(dt('tabs.nav.button.hover.color'), \";\\n}\\n\\n.p-tablist-prev-button {\\n left: 0;\\n}\\n\\n.p-tablist-next-button {\\n right: 0;\\n}\\n\\n.p-tab {\\n flex-shrink: 0;\\n cursor: pointer;\\n user-select: none;\\n position: relative;\\n border-style: solid;\\n white-space: nowrap;\\n background: \").concat(dt('tabs.tab.background'), \";\\n border-width: \").concat(dt('tabs.tab.border.width'), \";\\n border-color: \").concat(dt('tabs.tab.border.color'), \";\\n color: \").concat(dt('tabs.tab.color'), \";\\n padding: \").concat(dt('tabs.tab.padding'), \";\\n font-weight: \").concat(dt('tabs.tab.font.weight'), \";\\n transition: background \").concat(dt('tabs.transition.duration'), \", border-color \").concat(dt('tabs.transition.duration'), \", color \").concat(dt('tabs.transition.duration'), \", outline-color \").concat(dt('tabs.transition.duration'), \", box-shadow \").concat(dt('tabs.transition.duration'), \";\\n margin: \").concat(dt('tabs.tab.margin'), \";\\n outline-color: transparent;\\n}\\n\\n.p-tab:not(.p-disabled):focus-visible {\\n z-index: 1;\\n box-shadow: \").concat(dt('tabs.tab.focus.ring.shadow'), \";\\n outline: \").concat(dt('tabs.tab.focus.ring.width'), \" \").concat(dt('tabs.tab.focus.ring.style'), \" \").concat(dt('tabs.tab.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tabs.tab.focus.ring.offset'), \";\\n}\\n\\n.p-tab:not(.p-tab-active):not(.p-disabled):hover {\\n background: \").concat(dt('tabs.tab.hover.background'), \";\\n border-color: \").concat(dt('tabs.tab.hover.border.color'), \";\\n color: \").concat(dt('tabs.tab.hover.color'), \";\\n}\\n\\n.p-tab-active {\\n background: \").concat(dt('tabs.tab.active.background'), \";\\n border-color: \").concat(dt('tabs.tab.active.border.color'), \";\\n color: \").concat(dt('tabs.tab.active.color'), \";\\n}\\n\\n.p-tabpanels {\\n background: \").concat(dt('tabs.tabpanel.background'), \";\\n color: \").concat(dt('tabs.tabpanel.color'), \";\\n padding: \").concat(dt('tabs.tabpanel.padding'), \";\\n outline: 0 none;\\n}\\n\\n.p-tabpanel:focus-visible {\\n box-shadow: \").concat(dt('tabs.tabpanel.focus.ring.shadow'), \";\\n outline: \").concat(dt('tabs.tabpanel.focus.ring.width'), \" \").concat(dt('tabs.tabpanel.focus.ring.style'), \" \").concat(dt('tabs.tabpanel.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tabs.tabpanel.focus.ring.offset'), \";\\n}\\n\\n.p-tablist-active-bar {\\n z-index: 1;\\n display: block;\\n position: absolute;\\n bottom: \").concat(dt('tabs.active.bar.bottom'), \";\\n height: \").concat(dt('tabs.active.bar.height'), \";\\n background: \").concat(dt('tabs.active.bar.background'), \";\\n transition: 250ms cubic-bezier(0.35, 0, 0.25, 1);\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tabs p-component', {\n 'p-tabs-scrollable': props.scrollable\n }];\n }\n};\nvar TabsStyle = BaseStyle.extend({\n name: 'tabs',\n theme: theme,\n classes: classes\n});\n\nexport { TabsStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabsStyle from 'primevue/tabs/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseTabs',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n lazy: {\n type: Boolean,\n \"default\": false\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n showNavigators: {\n type: Boolean,\n \"default\": true\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n }\n },\n style: TabsStyle,\n provide: function provide() {\n return {\n $pcTabs: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Tabs',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:value'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_value: this.value\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n value: function value(newValue) {\n this.d_value = newValue;\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n updateValue: function updateValue(newValue) {\n if (this.d_value !== newValue) {\n this.d_value = newValue;\n this.$emit('update:value', newValue);\n }\n },\n isVertical: function isVertical() {\n return this.orientation === 'vertical';\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-tabpanels'\n};\nvar TabPanelsStyle = BaseStyle.extend({\n name: 'tabpanels',\n classes: classes\n});\n\nexport { TabPanelsStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport TabPanelsStyle from 'primevue/tabpanels/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseTabPanels',\n \"extends\": BaseComponent,\n props: {},\n style: TabPanelsStyle,\n provide: function provide() {\n return {\n $pcTabPanels: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabPanels',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"presentation\"\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-divider-horizontal {\\n display: flex;\\n width: 100%;\\n position: relative;\\n align-items: center;\\n margin: \".concat(dt('divider.horizontal.margin'), \";\\n padding: \").concat(dt('divider.horizontal.padding'), \";\\n}\\n\\n.p-divider-horizontal:before {\\n position: absolute;\\n display: block;\\n top: 50%;\\n left: 0;\\n width: 100%;\\n content: \\\"\\\";\\n border-top: 1px solid \").concat(dt('divider.border.color'), \";\\n}\\n\\n.p-divider-horizontal .p-divider-content {\\n padding: \").concat(dt('divider.horizontal.content.padding'), \";\\n}\\n\\n.p-divider-vertical {\\n min-height: 100%;\\n margin: 0 1rem;\\n display: flex;\\n position: relative;\\n justify-content: center;\\n margin: \").concat(dt('divider.vertical.margin'), \";\\n padding: \").concat(dt('divider.vertical.padding'), \";\\n}\\n\\n.p-divider-vertical:before {\\n position: absolute;\\n display: block;\\n top: 0;\\n left: 50%;\\n height: 100%;\\n content: \\\"\\\";\\n border-left: 1px solid \").concat(dt('divider.border.color'), \";\\n}\\n\\n.p-divider.p-divider-vertical .p-divider-content {\\n padding: \").concat(dt('divider.vertical.content.padding'), \";\\n}\\n\\n.p-divider-content {\\n z-index: 1;\\n background: \").concat(dt('divider.content.background'), \";\\n color: \").concat(dt('divider.content.color'), \";\\n}\\n\\n.p-divider-solid.p-divider-horizontal:before {\\n border-top-style: solid;\\n}\\n\\n.p-divider-solid.p-divider-vertical:before {\\n border-left-style: solid;\\n}\\n\\n.p-divider-dashed.p-divider-horizontal:before {\\n border-top-style: dashed;\\n}\\n\\n.p-divider-dashed.p-divider-vertical:before {\\n border-left-style: dashed;\\n}\\n\\n.p-divider-dotted.p-divider-horizontal:before {\\n border-top-style: dotted;\\n}\\n\\n.p-divider-dotted.p-divider-vertical:before {\\n border-left-style: dotted;\\n}\\n\");\n};\n\n/* Position */\nvar inlineStyles = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return {\n justifyContent: props.layout === 'horizontal' ? props.align === 'center' || props.align === null ? 'center' : props.align === 'left' ? 'flex-start' : props.align === 'right' ? 'flex-end' : null : null,\n alignItems: props.layout === 'vertical' ? props.align === 'center' || props.align === null ? 'center' : props.align === 'top' ? 'flex-start' : props.align === 'bottom' ? 'flex-end' : null : null\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return ['p-divider p-component', 'p-divider-' + props.layout, 'p-divider-' + props.type, {\n 'p-divider-left': props.layout === 'horizontal' && (!props.align || props.align === 'left')\n }, {\n 'p-divider-center': props.layout === 'horizontal' && props.align === 'center'\n }, {\n 'p-divider-right': props.layout === 'horizontal' && props.align === 'right'\n }, {\n 'p-divider-top': props.layout === 'vertical' && props.align === 'top'\n }, {\n 'p-divider-center': props.layout === 'vertical' && (!props.align || props.align === 'center')\n }, {\n 'p-divider-bottom': props.layout === 'vertical' && props.align === 'bottom'\n }];\n },\n content: 'p-divider-content'\n};\nvar DividerStyle = BaseStyle.extend({\n name: 'divider',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { DividerStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport DividerStyle from 'primevue/divider/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseDivider',\n \"extends\": BaseComponent,\n props: {\n align: {\n type: String,\n \"default\": null\n },\n layout: {\n type: String,\n \"default\": 'horizontal'\n },\n type: {\n type: String,\n \"default\": 'solid'\n }\n },\n style: DividerStyle,\n provide: function provide() {\n return {\n $pcDivider: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Divider',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nvar _hoisted_1 = [\"aria-orientation\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n role: \"separator\",\n \"aria-orientation\": _ctx.layout\n }, _ctx.ptmi('root')), [_ctx.$slots[\"default\"] ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"default\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-scrollpanel-content-container {\\n overflow: hidden;\\n width: 100%;\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n float: left;\\n}\\n\\n.p-scrollpanel-content {\\n height: calc(100% + calc(2 * \".concat(dt('scrollpanel.bar.size'), \"));\\n width: calc(100% + calc(2 * \").concat(dt('scrollpanel.bar.size'), \"));\\n padding: 0 calc(2 * \").concat(dt('scrollpanel.bar.size'), \") calc(2 * \").concat(dt('scrollpanel.bar.size'), \") 0;\\n position: relative;\\n overflow: auto;\\n box-sizing: border-box;\\n scrollbar-width: none;\\n}\\n\\n.p-scrollpanel-content::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.p-scrollpanel-bar {\\n position: relative;\\n border-radius: \").concat(dt('scrollpanel.bar.border.radius'), \";\\n z-index: 2;\\n cursor: pointer;\\n opacity: 0;\\n outline-color: transparent;\\n transition: outline-color \").concat(dt('scrollpanel.transition.duration'), \";\\n background: \").concat(dt('scrollpanel.bar.background'), \";\\n border: 0 none;\\n transition: outline-color \").concat(dt('scrollpanel.transition.duration'), \", opacity \").concat(dt('scrollpanel.transition.duration'), \";\\n}\\n\\n.p-scrollpanel-bar:focus-visible {\\n box-shadow: \").concat(dt('scrollpanel.bar.focus.ring.shadow'), \";\\n outline: \").concat(dt('scrollpanel.barfocus.ring.width'), \" \").concat(dt('scrollpanel.bar.focus.ring.style'), \" \").concat(dt('scrollpanel.bar.focus.ring.color'), \";\\n outline-offset: \").concat(dt('scrollpanel.barfocus.ring.offset'), \";\\n}\\n\\n.p-scrollpanel-bar-y {\\n width: \").concat(dt('scrollpanel.bar.size'), \";\\n top: 0;\\n}\\n\\n.p-scrollpanel-bar-x {\\n height: \").concat(dt('scrollpanel.bar.size'), \";\\n bottom: 0;\\n}\\n\\n.p-scrollpanel-hidden {\\n visibility: hidden;\\n}\\n\\n.p-scrollpanel:hover .p-scrollpanel-bar,\\n.p-scrollpanel:active .p-scrollpanel-bar {\\n opacity: 1;\\n}\\n\\n.p-scrollpanel-grabbed {\\n user-select: none;\\n}\\n\");\n};\nvar classes = {\n root: 'p-scrollpanel p-component',\n contentContainer: 'p-scrollpanel-content-container',\n content: 'p-scrollpanel-content',\n barX: 'p-scrollpanel-bar p-scrollpanel-bar-x',\n barY: 'p-scrollpanel-bar p-scrollpanel-bar-y'\n};\nvar ScrollPanelStyle = BaseStyle.extend({\n name: 'scrollpanel',\n theme: theme,\n classes: classes\n});\n\nexport { ScrollPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { getHeight, addClass, removeClass } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ScrollPanelStyle from 'primevue/scrollpanel/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseScrollPanel',\n \"extends\": BaseComponent,\n props: {\n step: {\n type: Number,\n \"default\": 5\n }\n },\n style: ScrollPanelStyle,\n provide: function provide() {\n return {\n $pcScrollPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ScrollPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n initialized: false,\n documentResizeListener: null,\n documentMouseMoveListener: null,\n documentMouseUpListener: null,\n frame: null,\n scrollXRatio: null,\n scrollYRatio: null,\n isXBarClicked: false,\n isYBarClicked: false,\n lastPageX: null,\n lastPageY: null,\n timer: null,\n outsideClickListener: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n orientation: 'vertical',\n lastScrollTop: 0,\n lastScrollLeft: 0\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n if (this.$el.offsetParent) {\n this.initialize();\n }\n },\n updated: function updated() {\n if (!this.initialized && this.$el.offsetParent) {\n this.initialize();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindDocumentResizeListener();\n if (this.frame) {\n window.cancelAnimationFrame(this.frame);\n }\n },\n methods: {\n initialize: function initialize() {\n this.moveBar();\n this.bindDocumentResizeListener();\n this.calculateContainerHeight();\n },\n calculateContainerHeight: function calculateContainerHeight() {\n var containerStyles = getComputedStyle(this.$el),\n xBarStyles = getComputedStyle(this.$refs.xBar),\n pureContainerHeight = getHeight(this.$el) - parseInt(xBarStyles['height'], 10);\n if (containerStyles['max-height'] !== 'none' && pureContainerHeight === 0) {\n if (this.$refs.content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n this.$el.style.height = containerStyles['max-height'];\n } else {\n this.$el.style.height = this.$refs.content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + 'px';\n }\n }\n },\n moveBar: function moveBar() {\n var _this = this;\n if (this.$refs.content) {\n /* horizontal scroll */\n var totalWidth = this.$refs.content.scrollWidth;\n var ownWidth = this.$refs.content.clientWidth;\n var bottom = (this.$el.clientHeight - this.$refs.xBar.clientHeight) * -1;\n this.scrollXRatio = ownWidth / totalWidth;\n\n /* vertical scroll */\n var totalHeight = this.$refs.content.scrollHeight;\n var ownHeight = this.$refs.content.clientHeight;\n var right = (this.$el.clientWidth - this.$refs.yBar.clientWidth) * -1;\n this.scrollYRatio = ownHeight / totalHeight;\n this.frame = this.requestAnimationFrame(function () {\n if (_this.$refs.xBar) {\n if (_this.scrollXRatio >= 1) {\n _this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !_this.isUnstyled && addClass(_this.$refs.xBar, 'p-scrollpanel-hidden');\n } else {\n _this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !_this.isUnstyled && removeClass(_this.$refs.xBar, 'p-scrollpanel-hidden');\n _this.$refs.xBar.style.cssText = 'width:' + Math.max(_this.scrollXRatio * 100, 10) + '%; left:' + _this.$refs.content.scrollLeft / totalWidth * 100 + '%;bottom:' + bottom + 'px;';\n }\n }\n if (_this.$refs.yBar) {\n if (_this.scrollYRatio >= 1) {\n _this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !_this.isUnstyled && addClass(_this.$refs.yBar, 'p-scrollpanel-hidden');\n } else {\n _this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !_this.isUnstyled && removeClass(_this.$refs.yBar, 'p-scrollpanel-hidden');\n _this.$refs.yBar.style.cssText = 'height:' + Math.max(_this.scrollYRatio * 100, 10) + '%; top: calc(' + _this.$refs.content.scrollTop / totalHeight * 100 + '% - ' + _this.$refs.xBar.clientHeight + 'px);right:' + right + 'px;';\n }\n }\n });\n }\n },\n onYBarMouseDown: function onYBarMouseDown(e) {\n this.isYBarClicked = true;\n this.$refs.yBar.focus();\n this.lastPageY = e.pageY;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onXBarMouseDown: function onXBarMouseDown(e) {\n this.isXBarClicked = true;\n this.$refs.xBar.focus();\n this.lastPageX = e.pageX;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onScroll: function onScroll(event) {\n if (this.lastScrollLeft !== event.target.scrollLeft) {\n this.lastScrollLeft = event.target.scrollLeft;\n this.orientation = 'horizontal';\n } else if (this.lastScrollTop !== event.target.scrollTop) {\n this.lastScrollTop = event.target.scrollTop;\n this.orientation = 'vertical';\n }\n this.moveBar();\n },\n onKeyDown: function onKeyDown(event) {\n if (this.orientation === 'vertical') {\n switch (event.code) {\n case 'ArrowDown':\n {\n this.setTimer('scrollTop', this.step);\n event.preventDefault();\n break;\n }\n case 'ArrowUp':\n {\n this.setTimer('scrollTop', this.step * -1);\n event.preventDefault();\n break;\n }\n case 'ArrowLeft':\n case 'ArrowRight':\n {\n event.preventDefault();\n break;\n }\n }\n } else if (this.orientation === 'horizontal') {\n switch (event.code) {\n case 'ArrowRight':\n {\n this.setTimer('scrollLeft', this.step);\n event.preventDefault();\n break;\n }\n case 'ArrowLeft':\n {\n this.setTimer('scrollLeft', this.step * -1);\n event.preventDefault();\n break;\n }\n case 'ArrowDown':\n case 'ArrowUp':\n {\n event.preventDefault();\n break;\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {\n this.clearTimer();\n },\n repeat: function repeat(bar, step) {\n this.$refs.content[bar] += step;\n this.moveBar();\n },\n setTimer: function setTimer(bar, step) {\n var _this2 = this;\n this.clearTimer();\n this.timer = setTimeout(function () {\n _this2.repeat(bar, step);\n }, 40);\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n },\n onDocumentMouseMove: function onDocumentMouseMove(e) {\n if (this.isXBarClicked) {\n this.onMouseMoveForXBar(e);\n } else if (this.isYBarClicked) {\n this.onMouseMoveForYBar(e);\n } else {\n this.onMouseMoveForXBar(e);\n this.onMouseMoveForYBar(e);\n }\n },\n onMouseMoveForXBar: function onMouseMoveForXBar(e) {\n var _this3 = this;\n var deltaX = e.pageX - this.lastPageX;\n this.lastPageX = e.pageX;\n this.frame = this.requestAnimationFrame(function () {\n _this3.$refs.content.scrollLeft += deltaX / _this3.scrollXRatio;\n });\n },\n onMouseMoveForYBar: function onMouseMoveForYBar(e) {\n var _this4 = this;\n var deltaY = e.pageY - this.lastPageY;\n this.lastPageY = e.pageY;\n this.frame = this.requestAnimationFrame(function () {\n _this4.$refs.content.scrollTop += deltaY / _this4.scrollYRatio;\n });\n },\n onFocus: function onFocus(event) {\n if (this.$refs.xBar.isSameNode(event.target)) {\n this.orientation = 'horizontal';\n } else if (this.$refs.yBar.isSameNode(event.target)) {\n this.orientation = 'vertical';\n }\n },\n onBlur: function onBlur() {\n if (this.orientation === 'horizontal') {\n this.orientation = 'vertical';\n }\n },\n onDocumentMouseUp: function onDocumentMouseUp() {\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n this.$refs.xBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(document.body, 'p-scrollpanel-grabbed');\n this.unbindDocumentMouseListeners();\n this.isXBarClicked = false;\n this.isYBarClicked = false;\n },\n requestAnimationFrame: function requestAnimationFrame(f) {\n var frame = window.requestAnimationFrame || this.timeoutFrame;\n return frame(f);\n },\n refresh: function refresh() {\n this.moveBar();\n },\n scrollTop: function scrollTop(_scrollTop) {\n var scrollableHeight = this.$refs.content.scrollHeight - this.$refs.content.clientHeight;\n _scrollTop = _scrollTop > scrollableHeight ? scrollableHeight : _scrollTop > 0 ? _scrollTop : 0;\n this.$refs.content.scrollTop = _scrollTop;\n },\n timeoutFrame: function timeoutFrame(fn) {\n setTimeout(fn, 0);\n },\n bindDocumentMouseListeners: function bindDocumentMouseListeners() {\n var _this5 = this;\n if (!this.documentMouseMoveListener) {\n this.documentMouseMoveListener = function (e) {\n _this5.onDocumentMouseMove(e);\n };\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n }\n if (!this.documentMouseUpListener) {\n this.documentMouseUpListener = function (e) {\n _this5.onDocumentMouseUp(e);\n };\n document.addEventListener('mouseup', this.documentMouseUpListener);\n }\n },\n unbindDocumentMouseListeners: function unbindDocumentMouseListeners() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n },\n bindDocumentResizeListener: function bindDocumentResizeListener() {\n var _this6 = this;\n if (!this.documentResizeListener) {\n this.documentResizeListener = function () {\n _this6.moveBar();\n };\n window.addEventListener('resize', this.documentResizeListener);\n }\n },\n unbindDocumentResizeListener: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n },\n computed: {\n contentId: function contentId() {\n return this.id + '_content';\n }\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"aria-controls\", \"aria-valuenow\"];\nvar _hoisted_3 = [\"aria-controls\", \"aria-valuenow\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('contentContainer')\n }, _ctx.ptm('contentContainer')), [createElementVNode(\"div\", mergeProps({\n ref: \"content\",\n id: $options.contentId,\n \"class\": _ctx.cx('content'),\n onScroll: _cache[0] || (_cache[0] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n }),\n onMouseenter: _cache[1] || (_cache[1] = function () {\n return $options.moveBar && $options.moveBar.apply($options, arguments);\n })\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"default\")], 16, _hoisted_1)], 16), createElementVNode(\"div\", mergeProps({\n ref: \"xBar\",\n \"class\": _ctx.cx('barx'),\n tabindex: \"0\",\n role: \"scrollbar\",\n \"aria-orientation\": \"horizontal\",\n \"aria-controls\": $options.contentId,\n \"aria-valuenow\": $data.lastScrollLeft,\n onMousedown: _cache[2] || (_cache[2] = function () {\n return $options.onXBarMouseDown && $options.onXBarMouseDown.apply($options, arguments);\n }),\n onKeydown: _cache[3] || (_cache[3] = function ($event) {\n return $options.onKeyDown($event);\n }),\n onKeyup: _cache[4] || (_cache[4] = function () {\n return $options.onKeyUp && $options.onKeyUp.apply($options, arguments);\n }),\n onFocus: _cache[5] || (_cache[5] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[6] || (_cache[6] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n })\n }, _ctx.ptm('barx'), {\n \"data-pc-group-section\": \"bar\"\n }), null, 16, _hoisted_2), createElementVNode(\"div\", mergeProps({\n ref: \"yBar\",\n \"class\": _ctx.cx('bary'),\n tabindex: \"0\",\n role: \"scrollbar\",\n \"aria-orientation\": \"vertical\",\n \"aria-controls\": $options.contentId,\n \"aria-valuenow\": $data.lastScrollTop,\n onMousedown: _cache[7] || (_cache[7] = function () {\n return $options.onYBarMouseDown && $options.onYBarMouseDown.apply($options, arguments);\n }),\n onKeydown: _cache[8] || (_cache[8] = function ($event) {\n return $options.onKeyDown($event);\n }),\n onKeyup: _cache[9] || (_cache[9] = function () {\n return $options.onKeyUp && $options.onKeyUp.apply($options, arguments);\n }),\n onFocus: _cache[10] || (_cache[10] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n })\n }, _ctx.ptm('bary'), {\n \"data-pc-group-section\": \"bar\"\n }), null, 16, _hoisted_3)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'TimesCircleIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M7 14C5.61553 14 4.26215 13.5895 3.11101 12.8203C1.95987 12.0511 1.06266 10.9579 0.532846 9.67879C0.00303296 8.3997 -0.13559 6.99224 0.134506 5.63437C0.404603 4.2765 1.07129 3.02922 2.05026 2.05026C3.02922 1.07129 4.2765 0.404603 5.63437 0.134506C6.99224 -0.13559 8.3997 0.00303296 9.67879 0.532846C10.9579 1.06266 12.0511 1.95987 12.8203 3.11101C13.5895 4.26215 14 5.61553 14 7C14 8.85652 13.2625 10.637 11.9497 11.9497C10.637 13.2625 8.85652 14 7 14ZM7 1.16667C5.84628 1.16667 4.71846 1.50879 3.75918 2.14976C2.79989 2.79074 2.05222 3.70178 1.61071 4.76768C1.16919 5.83358 1.05367 7.00647 1.27876 8.13803C1.50384 9.26958 2.05941 10.309 2.87521 11.1248C3.69102 11.9406 4.73042 12.4962 5.86198 12.7212C6.99353 12.9463 8.16642 12.8308 9.23232 12.3893C10.2982 11.9478 11.2093 11.2001 11.8502 10.2408C12.4912 9.28154 12.8333 8.15373 12.8333 7C12.8333 5.45291 12.2188 3.96918 11.1248 2.87521C10.0308 1.78125 8.5471 1.16667 7 1.16667ZM4.66662 9.91668C4.58998 9.91704 4.51404 9.90209 4.44325 9.87271C4.37246 9.84333 4.30826 9.8001 4.2544 9.74557C4.14516 9.6362 4.0838 9.48793 4.0838 9.33335C4.0838 9.17876 4.14516 9.0305 4.2544 8.92113L6.17553 7L4.25443 5.07891C4.15139 4.96832 4.09529 4.82207 4.09796 4.67094C4.10063 4.51982 4.16185 4.37563 4.26872 4.26876C4.3756 4.16188 4.51979 4.10066 4.67091 4.09799C4.82204 4.09532 4.96829 4.15142 5.07887 4.25446L6.99997 6.17556L8.92106 4.25446C9.03164 4.15142 9.1779 4.09532 9.32903 4.09799C9.48015 4.10066 9.62434 4.16188 9.73121 4.26876C9.83809 4.37563 9.89931 4.51982 9.90198 4.67094C9.90464 4.82207 9.84855 4.96832 9.74551 5.07891L7.82441 7L9.74554 8.92113C9.85478 9.0305 9.91614 9.17876 9.91614 9.33335C9.91614 9.48793 9.85478 9.6362 9.74554 9.74557C9.69168 9.8001 9.62748 9.84333 9.55669 9.87271C9.4859 9.90209 9.40996 9.91704 9.33332 9.91668C9.25668 9.91704 9.18073 9.90209 9.10995 9.87271C9.03916 9.84333 8.97495 9.8001 8.9211 9.74557L6.99997 7.82444L5.07884 9.74557C5.02499 9.8001 4.96078 9.84333 4.88999 9.87271C4.81921 9.90209 4.74326 9.91704 4.66662 9.91668Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-chip {\\n display: inline-flex;\\n align-items: center;\\n background: \".concat(dt('chip.background'), \";\\n color: \").concat(dt('chip.color'), \";\\n border-radius: \").concat(dt('chip.border.radius'), \";\\n padding: \").concat(dt('chip.padding.y'), \" \").concat(dt('chip.padding.x'), \";\\n gap: \").concat(dt('chip.gap'), \";\\n}\\n\\n.p-chip-icon {\\n color: \").concat(dt('chip.icon.color'), \";\\n font-size: \").concat(dt('chip.icon.font.size'), \";\\n width: \").concat(dt('chip.icon.size'), \";\\n height: \").concat(dt('chip.icon.size'), \";\\n}\\n\\n.p-chip-image {\\n border-radius: 50%;\\n width: \").concat(dt('chip.image.width'), \";\\n height: \").concat(dt('chip.image.height'), \";\\n margin-left: calc(-1 * \").concat(dt('chip.padding.y'), \");\\n}\\n\\n.p-chip:has(.p-chip-remove-icon) {\\n padding-right: \").concat(dt('chip.padding.y'), \";\\n}\\n\\n.p-chip:has(.p-chip-image) {\\n padding-top: calc(\").concat(dt('chip.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('chip.padding.y'), \" / 2);\\n}\\n\\n.p-chip-remove-icon {\\n cursor: pointer;\\n font-size: \").concat(dt('chip.remove.icon.size'), \";\\n width: \").concat(dt('chip.remove.icon.size'), \";\\n height: \").concat(dt('chip.remove.icon.size'), \";\\n color: \").concat(dt('chip.remove.icon.color'), \";\\n border-radius: 50%;\\n transition: outline-color \").concat(dt('chip.transition.duration'), \", box-shadow \").concat(dt('chip.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-chip-remove-icon:focus-visible {\\n box-shadow: \").concat(dt('chip.remove.icon.focus.ring.shadow'), \";\\n outline: \").concat(dt('chip.remove.icon.focus.ring.width'), \" \").concat(dt('chip.remove.icon.focus.ring.style'), \" \").concat(dt('chip.remove.icon.focus.ring.color'), \";\\n outline-offset: \").concat(dt('chip.remove.icon.focus.ring.offset'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-chip p-component',\n image: 'p-chip-image',\n icon: 'p-chip-icon',\n label: 'p-chip-label',\n removeIcon: 'p-chip-remove-icon'\n};\nvar ChipStyle = BaseStyle.extend({\n name: 'chip',\n theme: theme,\n classes: classes\n});\n\nexport { ChipStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import TimesCircleIcon from '@primevue/icons/timescircle';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ChipStyle from 'primevue/chip/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createBlock, resolveDynamicComponent, createCommentVNode, toDisplayString } from 'vue';\n\nvar script$1 = {\n name: 'BaseChip',\n \"extends\": BaseComponent,\n props: {\n label: {\n type: String,\n \"default\": null\n },\n icon: {\n type: String,\n \"default\": null\n },\n image: {\n type: String,\n \"default\": null\n },\n removable: {\n type: Boolean,\n \"default\": false\n },\n removeIcon: {\n type: String,\n \"default\": undefined\n }\n },\n style: ChipStyle,\n provide: function provide() {\n return {\n $pcChip: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Chip',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['remove'],\n data: function data() {\n return {\n visible: true\n };\n },\n methods: {\n onKeydown: function onKeydown(event) {\n if (event.key === 'Enter' || event.key === 'Backspace') {\n this.close(event);\n }\n },\n close: function close(event) {\n this.visible = false;\n this.$emit('remove', event);\n }\n },\n components: {\n TimesCircleIcon: TimesCircleIcon\n }\n};\n\nvar _hoisted_1 = [\"aria-label\"];\nvar _hoisted_2 = [\"src\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return $data.visible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('root'),\n \"aria-label\": _ctx.label\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\", {}, function () {\n return [_ctx.image ? (openBlock(), createElementBlock(\"img\", mergeProps({\n key: 0,\n src: _ctx.image\n }, _ctx.ptm('image'), {\n \"class\": _ctx.cx('image')\n }), null, 16, _hoisted_2)) : _ctx.$slots.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.icon), mergeProps({\n key: 1,\n \"class\": _ctx.cx('icon')\n }, _ctx.ptm('icon')), null, 16, [\"class\"])) : _ctx.icon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": [_ctx.cx('icon'), _ctx.icon]\n }, _ctx.ptm('icon')), null, 16)) : createCommentVNode(\"\", true), _ctx.label ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 3,\n \"class\": _ctx.cx('label')\n }, _ctx.ptm('label')), toDisplayString(_ctx.label), 17)) : createCommentVNode(\"\", true)];\n }), _ctx.removable ? renderSlot(_ctx.$slots, \"removeicon\", {\n key: 0,\n removeCallback: $options.close,\n keydownCallback: $options.onKeydown\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.removeIcon ? 'span' : 'TimesCircleIcon'), mergeProps({\n tabindex: \"0\",\n \"class\": [_ctx.cx('removeIcon'), _ctx.removeIcon],\n onClick: $options.close,\n onKeydown: $options.onKeydown\n }, _ctx.ptm('removeIcon')), null, 16, [\"class\", \"onClick\", \"onKeydown\"]))];\n }) : createCommentVNode(\"\", true)], 16, _hoisted_1)) : createCommentVNode(\"\", true);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tag {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n background: \".concat(dt('tag.primary.background'), \";\\n color: \").concat(dt('tag.primary.color'), \";\\n font-size: \").concat(dt('tag.font.size'), \";\\n font-weight: \").concat(dt('tag.font.weight'), \";\\n padding: \").concat(dt('tag.padding'), \";\\n border-radius: \").concat(dt('tag.border.radius'), \";\\n gap: \").concat(dt('tag.gap'), \";\\n}\\n\\n.p-tag-icon {\\n font-size: \").concat(dt('tag.icon.size'), \";\\n width: \").concat(dt('tag.icon.size'), \";\\n height:\").concat(dt('tag.icon.size'), \";\\n}\\n\\n.p-tag-rounded {\\n border-radius: \").concat(dt('tag.rounded.border.radius'), \";\\n}\\n\\n.p-tag-success {\\n background: \").concat(dt('tag.success.background'), \";\\n color: \").concat(dt('tag.success.color'), \";\\n}\\n\\n.p-tag-info {\\n background: \").concat(dt('tag.info.background'), \";\\n color: \").concat(dt('tag.info.color'), \";\\n}\\n\\n.p-tag-warn {\\n background: \").concat(dt('tag.warn.background'), \";\\n color: \").concat(dt('tag.warn.color'), \";\\n}\\n\\n.p-tag-danger {\\n background: \").concat(dt('tag.danger.background'), \";\\n color: \").concat(dt('tag.danger.color'), \";\\n}\\n\\n.p-tag-secondary {\\n background: \").concat(dt('tag.secondary.background'), \";\\n color: \").concat(dt('tag.secondary.color'), \";\\n}\\n\\n.p-tag-contrast {\\n background: \").concat(dt('tag.contrast.background'), \";\\n color: \").concat(dt('tag.contrast.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tag p-component', {\n 'p-tag-info': props.severity === 'info',\n 'p-tag-success': props.severity === 'success',\n 'p-tag-warn': props.severity === 'warn',\n 'p-tag-danger': props.severity === 'danger',\n 'p-tag-secondary': props.severity === 'secondary',\n 'p-tag-contrast': props.severity === 'contrast',\n 'p-tag-rounded': props.rounded\n }];\n },\n icon: 'p-tag-icon',\n label: 'p-tag-label'\n};\nvar TagStyle = BaseStyle.extend({\n name: 'tag',\n theme: theme,\n classes: classes\n});\n\nexport { TagStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport TagStyle from 'primevue/tag/style';\nimport { openBlock, createElementBlock, mergeProps, createBlock, resolveDynamicComponent, createCommentVNode, renderSlot, createElementVNode, toDisplayString } from 'vue';\n\nvar script$1 = {\n name: 'BaseTag',\n \"extends\": BaseComponent,\n props: {\n value: null,\n severity: null,\n rounded: Boolean,\n icon: String\n },\n style: TagStyle,\n provide: function provide() {\n return {\n $pcTag: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Tag',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.$slots.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.icon), mergeProps({\n key: 0,\n \"class\": _ctx.cx('icon')\n }, _ctx.ptm('icon')), null, 16, [\"class\"])) : _ctx.icon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('icon'), _ctx.icon]\n }, _ctx.ptm('icon')), null, 16)) : createCommentVNode(\"\", true), _ctx.value != null || _ctx.$slots[\"default\"] ? renderSlot(_ctx.$slots, \"default\", {\n key: 2\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('label')\n }, _ctx.ptm('label')), toDisplayString(_ctx.value), 17)];\n }) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleUpIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-inputnumber {\\n display: inline-flex;\\n position: relative;\\n}\\n\\n.p-inputnumber-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 0 0 auto;\\n cursor: pointer;\\n background: \".concat(dt('inputnumber.button.background'), \";\\n color: \").concat(dt('inputnumber.button.color'), \";\\n width: \").concat(dt('inputnumber.button.width'), \";\\n transition: background \").concat(dt('inputnumber.transition.duration'), \", color \").concat(dt('inputnumber.transition.duration'), \", border-color \").concat(dt('inputnumber.transition.duration'), \", outline-color \").concat(dt('inputnumber.transition.duration'), \";\\n}\\n\\n.p-inputnumber-button:hover {\\n background: \").concat(dt('inputnumber.button.hover.background'), \";\\n color: \").concat(dt('inputnumber.button.hover.color'), \";\\n}\\n\\n.p-inputnumber-button:active {\\n background: \").concat(dt('inputnumber.button.active.background'), \";\\n color: \").concat(dt('inputnumber.button.active.color'), \";\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-button {\\n position: relative;\\n border: 0 none;\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-button-group {\\n display: flex;\\n flex-direction: column;\\n position: absolute;\\n top: 1px;\\n right: 1px;\\n height: calc(100% - 2px);\\n z-index: 1;\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-increment-button {\\n padding: 0;\\n border-top-right-radius: calc(\").concat(dt('inputnumber.button.border.radius'), \" - 1px);\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-decrement-button {\\n padding: 0;\\n border-bottom-right-radius: calc(\").concat(dt('inputnumber.button.border.radius'), \" - 1px);\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-button {\\n flex: 1 1 auto;\\n border: 0 none;\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-button {\\n border: 1px solid \").concat(dt('inputnumber.button.border.color'), \";\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-button:hover {\\n border-color: \").concat(dt('inputnumber.button.hover.border.color'), \";\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-button:active {\\n border-color: \").concat(dt('inputnumber.button.active.border.color'), \";\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-increment-button {\\n order: 3;\\n border-top-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-left: 0 none;\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-input {\\n order: 2;\\n border-radius: 0;\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-decrement-button {\\n order: 1;\\n border-top-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-bottom-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-right: 0 none;\\n}\\n\\n.p-inputnumber-vertical {\\n flex-direction: column;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-button {\\n border: 1px solid \").concat(dt('inputnumber.button.border.color'), \";\\n padding: \").concat(dt('inputnumber.button.vertical.padding'), \"; 0;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-button:hover {\\n border-color: \").concat(dt('inputnumber.button.hover.border.color'), \";\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-button:active {\\n border-color: \").concat(dt('inputnumber.button.active.border.color'), \";\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-increment-button {\\n order: 1;\\n border-top-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-top-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n width: 100%;\\n border-bottom: 0 none;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-input {\\n order: 2;\\n border-radius: 0;\\n text-align: center;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-decrement-button {\\n order: 3;\\n border-bottom-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n width: 100%;\\n border-top: 0 none;\\n}\\n\\n.p-inputnumber-input {\\n flex: 1 1 auto;\\n}\\n\\n.p-inputnumber-fluid {\\n width: 100%;\\n}\\n\\n.p-inputnumber-fluid .p-inputnumber-input {\\n width: 1%;\\n}\\n\\n.p-inputnumber-fluid.p-inputnumber-vertical .p-inputnumber-input {\\n width: 100%;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-inputnumber p-component p-inputwrapper', {\n 'p-inputwrapper-filled': instance.filled || props.allowEmpty === false,\n 'p-inputwrapper-focus': instance.focused,\n 'p-inputnumber-stacked': props.showButtons && props.buttonLayout === 'stacked',\n 'p-inputnumber-horizontal': props.showButtons && props.buttonLayout === 'horizontal',\n 'p-inputnumber-vertical': props.showButtons && props.buttonLayout === 'vertical',\n 'p-inputnumber-fluid': instance.hasFluid\n }];\n },\n pcInput: 'p-inputnumber-input',\n buttonGroup: 'p-inputnumber-button-group',\n incrementButton: function incrementButton(_ref3) {\n var instance = _ref3.instance,\n props = _ref3.props;\n return ['p-inputnumber-button p-inputnumber-increment-button', {\n 'p-disabled': props.showButtons && props.max !== null && instance.maxBoundry()\n }];\n },\n decrementButton: function decrementButton(_ref4) {\n var instance = _ref4.instance,\n props = _ref4.props;\n return ['p-inputnumber-button p-inputnumber-decrement-button', {\n 'p-disabled': props.showButtons && props.min !== null && instance.minBoundry()\n }];\n }\n};\nvar InputNumberStyle = BaseStyle.extend({\n name: 'inputnumber',\n theme: theme,\n classes: classes\n});\n\nexport { InputNumberStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getSelection, clearSelection } from '@primeuix/utils/dom';\nimport { isNotEmpty, isEmpty } from '@primeuix/utils/object';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleUpIcon from '@primevue/icons/angleup';\nimport InputText from 'primevue/inputtext';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport InputNumberStyle from 'primevue/inputnumber/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createVNode, normalizeClass, normalizeStyle, renderSlot, createElementVNode, toHandlers, createBlock, resolveDynamicComponent, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseInputNumber',\n \"extends\": BaseComponent,\n props: {\n modelValue: {\n type: Number,\n \"default\": null\n },\n format: {\n type: Boolean,\n \"default\": true\n },\n showButtons: {\n type: Boolean,\n \"default\": false\n },\n buttonLayout: {\n type: String,\n \"default\": 'stacked'\n },\n incrementButtonClass: {\n type: String,\n \"default\": null\n },\n decrementButtonClass: {\n type: String,\n \"default\": null\n },\n incrementButtonIcon: {\n type: String,\n \"default\": undefined\n },\n incrementIcon: {\n type: String,\n \"default\": undefined\n },\n decrementButtonIcon: {\n type: String,\n \"default\": undefined\n },\n decrementIcon: {\n type: String,\n \"default\": undefined\n },\n locale: {\n type: String,\n \"default\": undefined\n },\n localeMatcher: {\n type: String,\n \"default\": undefined\n },\n mode: {\n type: String,\n \"default\": 'decimal'\n },\n prefix: {\n type: String,\n \"default\": null\n },\n suffix: {\n type: String,\n \"default\": null\n },\n currency: {\n type: String,\n \"default\": undefined\n },\n currencyDisplay: {\n type: String,\n \"default\": undefined\n },\n useGrouping: {\n type: Boolean,\n \"default\": true\n },\n minFractionDigits: {\n type: Number,\n \"default\": undefined\n },\n maxFractionDigits: {\n type: Number,\n \"default\": undefined\n },\n roundingMode: {\n type: String,\n \"default\": 'halfExpand',\n validator: function validator(value) {\n return ['ceil', 'floor', 'expand', 'trunc', 'halfCeil', 'halfFloor', 'halfExpand', 'halfTrunc', 'halfEven'].includes(value);\n }\n },\n min: {\n type: Number,\n \"default\": null\n },\n max: {\n type: Number,\n \"default\": null\n },\n step: {\n type: Number,\n \"default\": 1\n },\n allowEmpty: {\n type: Boolean,\n \"default\": true\n },\n highlightOnFocus: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n placeholder: {\n type: String,\n \"default\": null\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: InputNumberStyle,\n provide: function provide() {\n return {\n $pcInputNumber: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'InputNumber',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'input', 'focus', 'blur'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n numberFormat: null,\n _numeral: null,\n _decimal: null,\n _group: null,\n _minusSign: null,\n _currency: null,\n _suffix: null,\n _prefix: null,\n _index: null,\n groupChar: '',\n isSpecialChar: null,\n prefixChar: null,\n suffixChar: null,\n timer: null,\n data: function data() {\n return {\n d_modelValue: this.modelValue,\n focused: false\n };\n },\n watch: {\n modelValue: function modelValue(newValue) {\n this.d_modelValue = newValue;\n },\n locale: function locale(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n localeMatcher: function localeMatcher(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n mode: function mode(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n currency: function currency(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n currencyDisplay: function currencyDisplay(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n useGrouping: function useGrouping(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n minFractionDigits: function minFractionDigits(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n maxFractionDigits: function maxFractionDigits(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n suffix: function suffix(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n prefix: function prefix(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n }\n },\n created: function created() {\n this.constructParser();\n },\n methods: {\n getOptions: function getOptions() {\n return {\n localeMatcher: this.localeMatcher,\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits,\n maximumFractionDigits: this.maxFractionDigits,\n roundingMode: this.roundingMode\n };\n },\n constructParser: function constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.locale, this.getOptions());\n var numerals = _toConsumableArray(new Intl.NumberFormat(this.locale, {\n useGrouping: false\n }).format(9876543210)).reverse();\n var index = new Map(numerals.map(function (d, i) {\n return [d, i];\n }));\n this._numeral = new RegExp(\"[\".concat(numerals.join(''), \"]\"), 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n this._index = function (d) {\n return index.get(d);\n };\n },\n updateConstructParser: function updateConstructParser(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.constructParser();\n }\n },\n escapeRegExp: function escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n },\n getDecimalExpression: function getDecimalExpression() {\n var formatter = new Intl.NumberFormat(this.locale, _objectSpread(_objectSpread({}, this.getOptions()), {}, {\n useGrouping: false\n }));\n return new RegExp(\"[\".concat(formatter.format(1.1).replace(this._currency, '').trim().replace(this._numeral, ''), \"]\"), 'g');\n },\n getGroupingExpression: function getGroupingExpression() {\n var formatter = new Intl.NumberFormat(this.locale, {\n useGrouping: true\n });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(\"[\".concat(this.groupChar, \"]\"), 'g');\n },\n getMinusSignExpression: function getMinusSignExpression() {\n var formatter = new Intl.NumberFormat(this.locale, {\n useGrouping: false\n });\n return new RegExp(\"[\".concat(formatter.format(-1).trim().replace(this._numeral, ''), \"]\"), 'g');\n },\n getCurrencyExpression: function getCurrencyExpression() {\n if (this.currency) {\n var formatter = new Intl.NumberFormat(this.locale, {\n style: 'currency',\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n roundingMode: this.roundingMode\n });\n return new RegExp(\"[\".concat(formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, ''), \"]\"), 'g');\n }\n return new RegExp(\"[]\", 'g');\n },\n getPrefixExpression: function getPrefixExpression() {\n if (this.prefix) {\n this.prefixChar = this.prefix;\n } else {\n var formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay\n });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n return new RegExp(\"\".concat(this.escapeRegExp(this.prefixChar || '')), 'g');\n },\n getSuffixExpression: function getSuffixExpression() {\n if (this.suffix) {\n this.suffixChar = this.suffix;\n } else {\n var formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n roundingMode: this.roundingMode\n });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n return new RegExp(\"\".concat(this.escapeRegExp(this.suffixChar || '')), 'g');\n },\n formatValue: function formatValue(value) {\n if (value != null) {\n if (value === '-') {\n // Minus sign\n return value;\n }\n if (this.format) {\n var formatter = new Intl.NumberFormat(this.locale, this.getOptions());\n var formattedValue = formatter.format(value);\n if (this.prefix) {\n formattedValue = this.prefix + formattedValue;\n }\n if (this.suffix) {\n formattedValue = formattedValue + this.suffix;\n }\n return formattedValue;\n }\n return value.toString();\n }\n return '';\n },\n parseValue: function parseValue(text) {\n var filteredText = text.replace(this._suffix, '').replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '').replace(this._group, '').replace(this._minusSign, '-').replace(this._decimal, '.').replace(this._numeral, this._index);\n if (filteredText) {\n if (filteredText === '-')\n // Minus sign\n return filteredText;\n var parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n return null;\n },\n repeat: function repeat(event, interval, dir) {\n var _this = this;\n if (this.readonly) {\n return;\n }\n var i = interval || 500;\n this.clearTimer();\n this.timer = setTimeout(function () {\n _this.repeat(event, 40, dir);\n }, i);\n this.spin(event, dir);\n },\n spin: function spin(event, dir) {\n if (this.$refs.input) {\n var step = this.step * dir;\n var currentValue = this.parseValue(this.$refs.input.$el.value) || 0;\n var newValue = this.validateValue(currentValue + step);\n this.updateInput(newValue, null, 'spin');\n this.updateModel(event, newValue);\n this.handleOnInput(event, currentValue, newValue);\n }\n },\n onUpButtonMouseDown: function onUpButtonMouseDown(event) {\n if (!this.disabled) {\n this.$refs.input.$el.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n },\n onUpButtonMouseUp: function onUpButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onUpButtonMouseLeave: function onUpButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onUpButtonKeyUp: function onUpButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onUpButtonKeyDown: function onUpButtonKeyDown(event) {\n if (event.code === 'Space' || event.code === 'Enter' || event.code === 'NumpadEnter') {\n this.repeat(event, null, 1);\n }\n },\n onDownButtonMouseDown: function onDownButtonMouseDown(event) {\n if (!this.disabled) {\n this.$refs.input.$el.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n },\n onDownButtonMouseUp: function onDownButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onDownButtonMouseLeave: function onDownButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onDownButtonKeyUp: function onDownButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onDownButtonKeyDown: function onDownButtonKeyDown(event) {\n if (event.code === 'Space' || event.code === 'Enter' || event.code === 'NumpadEnter') {\n this.repeat(event, null, -1);\n }\n },\n onUserInput: function onUserInput() {\n if (this.isSpecialChar) {\n this.$refs.input.$el.value = this.lastValue;\n }\n this.isSpecialChar = false;\n },\n onInputKeyDown: function onInputKeyDown(event) {\n if (this.readonly) {\n return;\n }\n if (event.altKey || event.ctrlKey || event.metaKey) {\n this.isSpecialChar = true;\n this.lastValue = this.$refs.input.$el.value;\n return;\n }\n this.lastValue = event.target.value;\n var selectionStart = event.target.selectionStart;\n var selectionEnd = event.target.selectionEnd;\n var inputValue = event.target.value;\n var newValueStr = null;\n switch (event.code) {\n case 'ArrowUp':\n this.spin(event, 1);\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.spin(event, -1);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n if (!this.isNumeralChar(inputValue.charAt(selectionStart - 1))) {\n event.preventDefault();\n }\n break;\n case 'ArrowRight':\n if (!this.isNumeralChar(inputValue.charAt(selectionStart))) {\n event.preventDefault();\n }\n break;\n case 'Tab':\n case 'Enter':\n case 'NumpadEnter':\n newValueStr = this.validateValue(this.parseValue(inputValue));\n this.$refs.input.$el.value = this.formatValue(newValueStr);\n this.$refs.input.$el.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n case 'Backspace':\n {\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n var deleteChar = inputValue.charAt(selectionStart - 1);\n var _this$getDecimalCharI = this.getDecimalCharIndexes(inputValue),\n decimalCharIndex = _this$getDecimalCharI.decimalCharIndex,\n decimalCharIndexWithoutPrefix = _this$getDecimalCharI.decimalCharIndexWithoutPrefix;\n if (this.isNumeralChar(deleteChar)) {\n var decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n if (decimalLength) {\n this.$refs.input.$el.setSelectionRange(selectionStart - 1, selectionStart - 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n var insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n this.updateValue(event, newValueStr, null, 'delete-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n }\n case 'Delete':\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n var _deleteChar = inputValue.charAt(selectionStart);\n var _this$getDecimalCharI2 = this.getDecimalCharIndexes(inputValue),\n _decimalCharIndex = _this$getDecimalCharI2.decimalCharIndex,\n _decimalCharIndexWithoutPrefix = _this$getDecimalCharI2.decimalCharIndexWithoutPrefix;\n if (this.isNumeralChar(_deleteChar)) {\n var _decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(_deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n } else if (this._decimal.test(_deleteChar)) {\n this._decimal.lastIndex = 0;\n if (_decimalLength) {\n this.$refs.input.$el.setSelectionRange(selectionStart + 1, selectionStart + 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n } else if (_decimalCharIndex > 0 && selectionStart > _decimalCharIndex) {\n var _insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < _decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart) + _insertedText + inputValue.slice(selectionStart + 1);\n } else if (_decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n this.updateValue(event, newValueStr, null, 'delete-back-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n case 'Home':\n event.preventDefault();\n if (isNotEmpty(this.min)) {\n this.updateModel(event, this.min);\n }\n break;\n case 'End':\n event.preventDefault();\n if (isNotEmpty(this.max)) {\n this.updateModel(event, this.max);\n }\n break;\n }\n },\n onInputKeyPress: function onInputKeyPress(event) {\n if (this.readonly) {\n return;\n }\n var _char = event.key;\n var isDecimalSign = this.isDecimalSign(_char);\n var isMinusSign = this.isMinusSign(_char);\n if (event.code !== 'Enter') {\n event.preventDefault();\n }\n if (Number(_char) >= 0 && Number(_char) <= 9 || isMinusSign || isDecimalSign) {\n this.insert(event, _char, {\n isDecimalSign: isDecimalSign,\n isMinusSign: isMinusSign\n });\n }\n },\n onPaste: function onPaste(event) {\n event.preventDefault();\n var data = (event.clipboardData || window['clipboardData']).getData('Text');\n if (data) {\n var filteredData = this.parseValue(data);\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n },\n allowMinusSign: function allowMinusSign() {\n return this.min === null || this.min < 0;\n },\n isMinusSign: function isMinusSign(_char2) {\n if (this._minusSign.test(_char2) || _char2 === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n return false;\n },\n isDecimalSign: function isDecimalSign(_char3) {\n if (this._decimal.test(_char3)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n return false;\n },\n isDecimalMode: function isDecimalMode() {\n return this.mode === 'decimal';\n },\n getDecimalCharIndexes: function getDecimalCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var filteredVal = val.replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '');\n var decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n decimalCharIndexWithoutPrefix: decimalCharIndexWithoutPrefix\n };\n },\n getCharIndexes: function getCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n var suffixCharIndex = val.search(this._suffix);\n this._suffix.lastIndex = 0;\n var currencyCharIndex = val.search(this._currency);\n this._currency.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n minusCharIndex: minusCharIndex,\n suffixCharIndex: suffixCharIndex,\n currencyCharIndex: currencyCharIndex\n };\n },\n insert: function insert(event, text) {\n var sign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n isDecimalSign: false,\n isMinusSign: false\n };\n var minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n var selectionStart = this.$refs.input.$el.selectionStart;\n var selectionEnd = this.$refs.input.$el.selectionEnd;\n var inputValue = this.$refs.input.$el.value.trim();\n var _this$getCharIndexes = this.getCharIndexes(inputValue),\n decimalCharIndex = _this$getCharIndexes.decimalCharIndex,\n minusCharIndex = _this$getCharIndexes.minusCharIndex,\n suffixCharIndex = _this$getCharIndexes.suffixCharIndex,\n currencyCharIndex = _this$getCharIndexes.currencyCharIndex;\n var newValueStr;\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n } else if (decimalCharIndex === -1 && this.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else {\n var maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n var operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n var charIndex = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length;\n newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n } else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n },\n insertText: function insertText(value, text, start, end) {\n var textSplit = text === '.' ? text : text.split('.');\n if (textSplit.length === 2) {\n var decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex > 0 ? value.slice(0, start) + this.formatValue(text) + value.slice(end) : this.formatValue(text) || value;\n } else if (end - start === value.length) {\n return this.formatValue(text);\n } else if (start === 0) {\n return text + value.slice(end);\n } else if (end === value.length) {\n return value.slice(0, start) + text;\n } else {\n return value.slice(0, start) + text + value.slice(end);\n }\n },\n deleteRange: function deleteRange(value, start, end) {\n var newValueStr;\n if (end - start === value.length) newValueStr = '';else if (start === 0) newValueStr = value.slice(end);else if (end === value.length) newValueStr = value.slice(0, start);else newValueStr = value.slice(0, start) + value.slice(end);\n return newValueStr;\n },\n initCursor: function initCursor() {\n var selectionStart = this.$refs.input.$el.selectionStart;\n var inputValue = this.$refs.input.$el.value;\n var valueLength = inputValue.length;\n var index = null;\n\n // remove prefix\n var prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n selectionStart = selectionStart - prefixLength;\n var _char4 = inputValue.charAt(selectionStart);\n if (this.isNumeralChar(_char4)) {\n return selectionStart + prefixLength;\n }\n\n //left\n var i = selectionStart - 1;\n while (i >= 0) {\n _char4 = inputValue.charAt(i);\n if (this.isNumeralChar(_char4)) {\n index = i + prefixLength;\n break;\n } else {\n i--;\n }\n }\n if (index !== null) {\n this.$refs.input.$el.setSelectionRange(index + 1, index + 1);\n } else {\n i = selectionStart;\n while (i < valueLength) {\n _char4 = inputValue.charAt(i);\n if (this.isNumeralChar(_char4)) {\n index = i + prefixLength;\n break;\n } else {\n i++;\n }\n }\n if (index !== null) {\n this.$refs.input.$el.setSelectionRange(index, index);\n }\n }\n return index || 0;\n },\n onInputClick: function onInputClick() {\n var currentValue = this.$refs.input.$el.value;\n if (!this.readonly && currentValue !== getSelection()) {\n this.initCursor();\n }\n },\n isNumeralChar: function isNumeralChar(_char5) {\n if (_char5.length === 1 && (this._numeral.test(_char5) || this._decimal.test(_char5) || this._group.test(_char5) || this._minusSign.test(_char5))) {\n this.resetRegex();\n return true;\n }\n return false;\n },\n resetRegex: function resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n },\n updateValue: function updateValue(event, valueStr, insertedValueStr, operation) {\n var currentValue = this.$refs.input.$el.value;\n var newValue = null;\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n this.handleOnInput(event, currentValue, newValue);\n }\n },\n handleOnInput: function handleOnInput(event, currentValue, newValue) {\n if (this.isValueChanged(currentValue, newValue)) {\n this.$emit('input', {\n originalEvent: event,\n value: newValue,\n formattedValue: currentValue\n });\n }\n },\n isValueChanged: function isValueChanged(currentValue, newValue) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n if (newValue != null) {\n var parsedCurrentValue = typeof currentValue === 'string' ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n return false;\n },\n validateValue: function validateValue(value) {\n if (value === '-' || value == null) {\n return null;\n }\n if (this.min != null && value < this.min) {\n return this.min;\n }\n if (this.max != null && value > this.max) {\n return this.max;\n }\n return value;\n },\n updateInput: function updateInput(value, insertedValueStr, operation, valueStr) {\n insertedValueStr = insertedValueStr || '';\n var inputValue = this.$refs.input.$el.value;\n var newValue = this.formatValue(value);\n var currentLength = inputValue.length;\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr);\n }\n if (currentLength === 0) {\n this.$refs.input.$el.value = newValue;\n this.$refs.input.$el.setSelectionRange(0, 0);\n var index = this.initCursor();\n var selectionEnd = index + insertedValueStr.length;\n this.$refs.input.$el.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n var selectionStart = this.$refs.input.$el.selectionStart;\n var _selectionEnd = this.$refs.input.$el.selectionEnd;\n this.$refs.input.$el.value = newValue;\n var newLength = newValue.length;\n if (operation === 'range-insert') {\n var startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n var startValueStr = startValue !== null ? startValue.toString() : '';\n var startExpr = startValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n var tExpr = insertedValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n _selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single') {\n this.$refs.input.$el.setSelectionRange(_selectionEnd + 1, _selectionEnd + 1);\n } else if (operation === 'delete-single') {\n this.$refs.input.$el.setSelectionRange(_selectionEnd - 1, _selectionEnd - 1);\n } else if (operation === 'delete-range' || operation === 'spin') {\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n }\n } else if (operation === 'delete-back-single') {\n var prevChar = inputValue.charAt(_selectionEnd - 1);\n var nextChar = inputValue.charAt(_selectionEnd);\n var diff = currentLength - newLength;\n var isGroupChar = this._group.test(nextChar);\n if (isGroupChar && diff === 1) {\n _selectionEnd += 1;\n } else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n _selectionEnd += -1 * diff + 1;\n }\n this._group.lastIndex = 0;\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (inputValue === '-' && operation === 'insert') {\n this.$refs.input.$el.setSelectionRange(0, 0);\n var _index = this.initCursor();\n var _selectionEnd2 = _index + insertedValueStr.length + 1;\n this.$refs.input.$el.setSelectionRange(_selectionEnd2, _selectionEnd2);\n } else {\n _selectionEnd = _selectionEnd + (newLength - currentLength);\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n }\n }\n this.$refs.input.$el.setAttribute('aria-valuenow', value);\n },\n concatValues: function concatValues(val1, val2) {\n if (val1 && val2) {\n var decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n if (this.suffixChar) {\n return decimalCharIndex !== -1 ? val1.replace(this.suffixChar, '').split(this._decimal)[0] + val2.replace(this.suffixChar, '').slice(decimalCharIndex) + this.suffixChar : val1;\n } else {\n return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1;\n }\n }\n return val1;\n },\n getDecimalLength: function getDecimalLength(value) {\n if (value) {\n var valueSplit = value.split(this._decimal);\n if (valueSplit.length === 2) {\n return valueSplit[1].replace(this._suffix, '').trim().replace(/\\s/g, '').replace(this._currency, '').length;\n }\n }\n return 0;\n },\n updateModel: function updateModel(event, value) {\n this.d_modelValue = value;\n this.$emit('update:modelValue', value);\n },\n onInputFocus: function onInputFocus(event) {\n this.focused = true;\n if (!this.disabled && !this.readonly && this.$refs.input.$el.value !== getSelection() && this.highlightOnFocus) {\n event.target.select();\n }\n this.$emit('focus', event);\n },\n onInputBlur: function onInputBlur(event) {\n this.focused = false;\n var input = event.target;\n var newValue = this.validateValue(this.parseValue(input.value));\n this.$emit('blur', {\n originalEvent: event,\n value: input.value\n });\n input.value = this.formatValue(newValue);\n input.setAttribute('aria-valuenow', newValue);\n this.updateModel(event, newValue);\n if (!this.disabled && !this.readonly && this.highlightOnFocus) {\n clearSelection();\n }\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n },\n maxBoundry: function maxBoundry() {\n return this.d_modelValue >= this.max;\n },\n minBoundry: function minBoundry() {\n return this.d_modelValue <= this.min;\n }\n },\n computed: {\n filled: function filled() {\n return this.modelValue != null && this.modelValue.toString().length > 0;\n },\n upButtonListeners: function upButtonListeners() {\n var _this2 = this;\n return {\n mousedown: function mousedown(event) {\n return _this2.onUpButtonMouseDown(event);\n },\n mouseup: function mouseup(event) {\n return _this2.onUpButtonMouseUp(event);\n },\n mouseleave: function mouseleave(event) {\n return _this2.onUpButtonMouseLeave(event);\n },\n keydown: function keydown(event) {\n return _this2.onUpButtonKeyDown(event);\n },\n keyup: function keyup(event) {\n return _this2.onUpButtonKeyUp(event);\n }\n };\n },\n downButtonListeners: function downButtonListeners() {\n var _this3 = this;\n return {\n mousedown: function mousedown(event) {\n return _this3.onDownButtonMouseDown(event);\n },\n mouseup: function mouseup(event) {\n return _this3.onDownButtonMouseUp(event);\n },\n mouseleave: function mouseleave(event) {\n return _this3.onDownButtonMouseLeave(event);\n },\n keydown: function keydown(event) {\n return _this3.onDownButtonKeyDown(event);\n },\n keyup: function keyup(event) {\n return _this3.onDownButtonKeyUp(event);\n }\n };\n },\n formattedValue: function formattedValue() {\n var val = !this.modelValue && !this.allowEmpty ? 0 : this.modelValue;\n return this.formatValue(val);\n },\n getFormatter: function getFormatter() {\n return this.numberFormat;\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n InputText: InputText,\n AngleUpIcon: AngleUpIcon,\n AngleDownIcon: AngleDownIcon\n }\n};\n\nvar _hoisted_1 = [\"disabled\"];\nvar _hoisted_2 = [\"disabled\"];\nvar _hoisted_3 = [\"disabled\"];\nvar _hoisted_4 = [\"disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_InputText = resolveComponent(\"InputText\");\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createVNode(_component_InputText, {\n ref: \"input\",\n id: _ctx.inputId,\n role: \"spinbutton\",\n \"class\": normalizeClass([_ctx.cx('pcInput'), _ctx.inputClass]),\n style: normalizeStyle(_ctx.inputStyle),\n value: $options.formattedValue,\n \"aria-valuemin\": _ctx.min,\n \"aria-valuemax\": _ctx.max,\n \"aria-valuenow\": _ctx.modelValue,\n inputmode: _ctx.mode === 'decimal' && !_ctx.minFractionDigits ? 'numeric' : 'decimal',\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n placeholder: _ctx.placeholder,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n invalid: _ctx.invalid,\n variant: _ctx.variant,\n onInput: $options.onUserInput,\n onKeydown: $options.onInputKeyDown,\n onKeypress: $options.onInputKeyPress,\n onPaste: $options.onPaste,\n onClick: $options.onInputClick,\n onFocus: $options.onInputFocus,\n onBlur: $options.onInputBlur,\n pt: _ctx.ptm('pcInput'),\n unstyled: _ctx.unstyled\n }, null, 8, [\"id\", \"class\", \"style\", \"value\", \"aria-valuemin\", \"aria-valuemax\", \"aria-valuenow\", \"inputmode\", \"disabled\", \"readonly\", \"placeholder\", \"aria-labelledby\", \"aria-label\", \"invalid\", \"variant\", \"onInput\", \"onKeydown\", \"onKeypress\", \"onPaste\", \"onClick\", \"onFocus\", \"onBlur\", \"pt\", \"unstyled\"]), _ctx.showButtons && _ctx.buttonLayout === 'stacked' ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('buttonGroup')\n }, _ctx.ptm('buttonGroup')), [renderSlot(_ctx.$slots, \"incrementbutton\", {\n listeners: $options.upButtonListeners\n }, function () {\n return [createElementVNode(\"button\", mergeProps({\n \"class\": [_ctx.cx('incrementButton'), _ctx.incrementButtonClass]\n }, toHandlers($options.upButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('incrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.incrementicon ? 'incrementicon' : 'incrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.incrementIcon || _ctx.incrementButtonIcon ? 'span' : 'AngleUpIcon'), mergeProps({\n \"class\": [_ctx.incrementIcon, _ctx.incrementButtonIcon]\n }, _ctx.ptm('incrementIcon'), {\n \"data-pc-section\": \"incrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_1)];\n }), renderSlot(_ctx.$slots, \"decrementbutton\", {\n listeners: $options.downButtonListeners\n }, function () {\n return [createElementVNode(\"button\", mergeProps({\n \"class\": [_ctx.cx('decrementButton'), _ctx.decrementButtonClass]\n }, toHandlers($options.downButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('decrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.decrementicon ? 'decrementicon' : 'decrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.decrementIcon || _ctx.decrementButtonIcon ? 'span' : 'AngleDownIcon'), mergeProps({\n \"class\": [_ctx.decrementIcon, _ctx.decrementButtonIcon]\n }, _ctx.ptm('decrementIcon'), {\n \"data-pc-section\": \"decrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_2)];\n })], 16)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"incrementbutton\", {\n listeners: $options.upButtonListeners\n }, function () {\n return [_ctx.showButtons && _ctx.buttonLayout !== 'stacked' ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('incrementButton'), _ctx.incrementButtonClass]\n }, toHandlers($options.upButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('incrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.incrementicon ? 'incrementicon' : 'incrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.incrementIcon || _ctx.incrementButtonIcon ? 'span' : 'AngleUpIcon'), mergeProps({\n \"class\": [_ctx.incrementIcon, _ctx.incrementButtonIcon]\n }, _ctx.ptm('incrementIcon'), {\n \"data-pc-section\": \"incrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_3)) : createCommentVNode(\"\", true)];\n }), renderSlot(_ctx.$slots, \"decrementbutton\", {\n listeners: $options.downButtonListeners\n }, function () {\n return [_ctx.showButtons && _ctx.buttonLayout !== 'stacked' ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('decrementButton'), _ctx.decrementButtonClass]\n }, toHandlers($options.downButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('decrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.decrementicon ? 'decrementicon' : 'decrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.decrementIcon || _ctx.decrementButtonIcon ? 'span' : 'AngleDownIcon'), mergeProps({\n \"class\": [_ctx.decrementIcon, _ctx.decrementButtonIcon]\n }, _ctx.ptm('decrementIcon'), {\n \"data-pc-section\": \"decrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)) : createCommentVNode(\"\", true)];\n })], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'TimesIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nvar OverlayEventBus = EventBus();\n\nexport { OverlayEventBus as default };\n//# sourceMappingURL=index.mjs.map\n","import { isClient } from '@primeuix/utils/dom';\nimport { renderSlot, openBlock, createBlock, Teleport, createCommentVNode } from 'vue';\n\nvar script = {\n name: 'Portal',\n props: {\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n disabled: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n mounted: false\n };\n },\n mounted: function mounted() {\n this.mounted = isClient();\n },\n computed: {\n inline: function inline() {\n return this.disabled || this.appendTo === 'self';\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return $options.inline ? renderSlot(_ctx.$slots, \"default\", {\n key: 0\n }) : $data.mounted ? (openBlock(), createBlock(Teleport, {\n key: 1,\n to: $props.appendTo\n }, [renderSlot(_ctx.$slots, \"default\")], 8, [\"to\"])) : createCommentVNode(\"\", true);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-select {\\n display: inline-flex;\\n cursor: pointer;\\n position: relative;\\n user-select: none;\\n background: \".concat(dt('select.background'), \";\\n border: 1px solid \").concat(dt('select.border.color'), \";\\n transition: background \").concat(dt('select.transition.duration'), \", color \").concat(dt('select.transition.duration'), \", border-color \").concat(dt('select.transition.duration'), \",\\n outline-color \").concat(dt('select.transition.duration'), \", box-shadow \").concat(dt('select.transition.duration'), \";\\n border-radius: \").concat(dt('select.border.radius'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('select.shadow'), \";\\n}\\n\\n.p-select:not(.p-disabled):hover {\\n border-color: \").concat(dt('select.hover.border.color'), \";\\n}\\n\\n.p-select:not(.p-disabled).p-focus {\\n border-color: \").concat(dt('select.focus.border.color'), \";\\n box-shadow: \").concat(dt('select.focus.ring.shadow'), \";\\n outline: \").concat(dt('select.focus.ring.width'), \" \").concat(dt('select.focus.ring.style'), \" \").concat(dt('select.focus.ring.color'), \";\\n outline-offset: \").concat(dt('select.focus.ring.offset'), \";\\n}\\n\\n.p-select.p-variant-filled {\\n background: \").concat(dt('select.filled.background'), \";\\n}\\n\\n.p-select.p-variant-filled.p-focus {\\n background: \").concat(dt('select.filled.focus.background'), \";\\n}\\n\\n.p-select.p-invalid {\\n border-color: \").concat(dt('select.invalid.border.color'), \";\\n}\\n\\n.p-select.p-disabled {\\n opacity: 1;\\n background: \").concat(dt('select.disabled.background'), \";\\n}\\n\\n.p-select-clear-icon {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5rem;\\n color: \").concat(dt('select.clear.icon.color'), \";\\n right: \").concat(dt('select.dropdown.width'), \";\\n}\\n\\n.p-select-dropdown {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n background: transparent;\\n color: \").concat(dt('select.dropdown.color'), \";\\n width: \").concat(dt('select.dropdown.width'), \";\\n border-top-right-radius: \").concat(dt('select.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('select.border.radius'), \";\\n}\\n\\n.p-select-label {\\n display: block;\\n white-space: nowrap;\\n overflow: hidden;\\n flex: 1 1 auto;\\n width: 1%;\\n padding: \").concat(dt('select.padding.y'), \" \").concat(dt('select.padding.x'), \";\\n text-overflow: ellipsis;\\n cursor: pointer;\\n color: \").concat(dt('select.color'), \";\\n background: transparent;\\n border: 0 none;\\n outline: 0 none;\\n}\\n\\n.p-select-label.p-placeholder {\\n color: \").concat(dt('select.placeholder.color'), \";\\n}\\n\\n.p-select:has(.p-select-clear-icon) .p-select-label {\\n padding-right: calc(1rem + \").concat(dt('select.padding.x'), \");\\n}\\n\\n.p-select.p-disabled .p-select-label {\\n color: \").concat(dt('select.disabled.color'), \";\\n}\\n\\n.p-select-label-empty {\\n overflow: hidden;\\n opacity: 0;\\n}\\n\\ninput.p-select-label {\\n cursor: default;\\n}\\n\\n.p-select .p-select-overlay {\\n min-width: 100%;\\n}\\n\\n.p-select-overlay {\\n position: absolute;\\n top: 0;\\n left: 0;\\n background: \").concat(dt('select.overlay.background'), \";\\n color: \").concat(dt('select.overlay.color'), \";\\n border: 1px solid \").concat(dt('select.overlay.border.color'), \";\\n border-radius: \").concat(dt('select.overlay.border.radius'), \";\\n box-shadow: \").concat(dt('select.overlay.shadow'), \";\\n}\\n\\n.p-select-header {\\n padding: \").concat(dt('select.list.header.padding'), \";\\n}\\n\\n.p-select-filter {\\n width: 100%;\\n}\\n\\n.p-select-list-container {\\n overflow: auto;\\n}\\n\\n.p-select-option-group {\\n cursor: auto;\\n margin: 0;\\n padding: \").concat(dt('select.option.group.padding'), \";\\n background: \").concat(dt('select.option.group.background'), \";\\n color: \").concat(dt('select.option.group.color'), \";\\n font-weight: \").concat(dt('select.option.group.font.weight'), \";\\n}\\n\\n.p-select-list {\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n padding: \").concat(dt('select.list.padding'), \";\\n gap: \").concat(dt('select.list.gap'), \";\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-select-option {\\n cursor: pointer;\\n font-weight: normal;\\n white-space: nowrap;\\n position: relative;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n padding: \").concat(dt('select.option.padding'), \";\\n border: 0 none;\\n color: \").concat(dt('select.option.color'), \";\\n background: transparent;\\n transition: background \").concat(dt('select.transition.duration'), \", color \").concat(dt('select.transition.duration'), \", border-color \").concat(dt('select.transition.duration'), \",\\n box-shadow \").concat(dt('select.transition.duration'), \", outline-color \").concat(dt('select.transition.duration'), \";\\n border-radius: \").concat(dt('select.option.border.radius'), \";\\n}\\n\\n.p-select-option:not(.p-select-option-selected):not(.p-disabled).p-focus {\\n background: \").concat(dt('select.option.focus.background'), \";\\n color: \").concat(dt('select.option.focus.color'), \";\\n}\\n\\n.p-select-option.p-select-option-selected {\\n background: \").concat(dt('select.option.selected.background'), \";\\n color: \").concat(dt('select.option.selected.color'), \";\\n}\\n\\n.p-select-option.p-select-option-selected.p-focus {\\n background: \").concat(dt('select.option.selected.focus.background'), \";\\n color: \").concat(dt('select.option.selected.focus.color'), \";\\n}\\n\\n.p-select-option-check-icon {\\n position: relative;\\n margin-inline-start: \").concat(dt('select.checkmark.gutter.start'), \";\\n margin-inline-end: \").concat(dt('select.checkmark.gutter.end'), \";\\n color: \").concat(dt('select.checkmark.color'), \";\\n}\\n\\n.p-select-empty-message {\\n padding: \").concat(dt('select.empty.message.padding'), \";\\n}\\n\\n.p-select-fluid {\\n display: flex;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props,\n state = _ref2.state;\n return ['p-select p-component p-inputwrapper', {\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled',\n 'p-focus': state.focused,\n 'p-inputwrapper-filled': instance.hasSelectedOption,\n 'p-inputwrapper-focus': state.focused || state.overlayVisible,\n 'p-select-open': state.overlayVisible,\n 'p-select-fluid': instance.hasFluid\n }];\n },\n label: function label(_ref3) {\n var instance = _ref3.instance,\n props = _ref3.props;\n return ['p-select-label', {\n 'p-placeholder': !props.editable && instance.label === props.placeholder,\n 'p-select-label-empty': !props.editable && !instance.$slots['value'] && (instance.label === 'p-emptylabel' || instance.label.length === 0)\n }];\n },\n clearIcon: 'p-select-clear-icon',\n dropdown: 'p-select-dropdown',\n loadingicon: 'p-select-loading-icon',\n dropdownIcon: 'p-select-dropdown-icon',\n overlay: 'p-select-overlay p-component',\n header: 'p-select-header',\n pcFilter: 'p-select-filter',\n listContainer: 'p-select-list-container',\n list: 'p-select-list',\n optionGroup: 'p-select-option-group',\n optionGroupLabel: 'p-select-option-group-label',\n option: function option(_ref4) {\n var instance = _ref4.instance,\n props = _ref4.props,\n state = _ref4.state,\n _option = _ref4.option,\n focusedOption = _ref4.focusedOption;\n return ['p-select-option', {\n 'p-select-option-selected': instance.isSelected(_option) && props.highlightOnSelect,\n 'p-focus': state.focusedOptionIndex === focusedOption,\n 'p-disabled': instance.isOptionDisabled(_option)\n }];\n },\n optionLabel: 'p-select-option-label',\n optionCheckIcon: 'p-select-option-check-icon',\n optionBlankIcon: 'p-select-option-blank-icon',\n emptyMessage: 'p-select-empty-message'\n};\nvar SelectStyle = BaseStyle.extend({\n name: 'select',\n theme: theme,\n classes: classes\n});\n\nexport { SelectStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { focus, isAndroid, getFirstFocusableElement, getLastFocusableElement, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice, isVisible, getFocusableElements, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isPrintableCharacter, isNotEmpty, equals, findLastIndex, isEmpty } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SelectStyle from 'primevue/select/style';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, renderSlot, createTextVNode, toDisplayString, normalizeClass, createBlock, resolveDynamicComponent, createCommentVNode, createElementVNode, createVNode, withCtx, Transition, normalizeProps, createSlots, Fragment, renderList, withDirectives } from 'vue';\n\nvar script$1 = {\n name: 'BaseSelect',\n \"extends\": BaseComponent,\n props: {\n modelValue: null,\n options: Array,\n optionLabel: [String, Function],\n optionValue: [String, Function],\n optionDisabled: [String, Function],\n optionGroupLabel: [String, Function],\n optionGroupChildren: [String, Function],\n scrollHeight: {\n type: String,\n \"default\": '14rem'\n },\n filter: Boolean,\n filterPlaceholder: String,\n filterLocale: String,\n filterMatchMode: {\n type: String,\n \"default\": 'contains'\n },\n filterFields: {\n type: Array,\n \"default\": null\n },\n editable: Boolean,\n placeholder: {\n type: String,\n \"default\": null\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n dataKey: null,\n showClear: {\n type: Boolean,\n \"default\": false\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n labelId: {\n type: String,\n \"default\": null\n },\n labelClass: {\n type: [String, Object],\n \"default\": null\n },\n labelStyle: {\n type: Object,\n \"default\": null\n },\n panelClass: {\n type: [String, Object],\n \"default\": null\n },\n overlayStyle: {\n type: Object,\n \"default\": null\n },\n overlayClass: {\n type: [String, Object],\n \"default\": null\n },\n panelStyle: {\n type: Object,\n \"default\": null\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n clearIcon: {\n type: String,\n \"default\": undefined\n },\n dropdownIcon: {\n type: String,\n \"default\": undefined\n },\n filterIcon: {\n type: String,\n \"default\": undefined\n },\n loadingIcon: {\n type: String,\n \"default\": undefined\n },\n resetFilterOnHide: {\n type: Boolean,\n \"default\": false\n },\n resetFilterOnClear: {\n type: Boolean,\n \"default\": false\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n autoOptionFocus: {\n type: Boolean,\n \"default\": false\n },\n autoFilterFocus: {\n type: Boolean,\n \"default\": false\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n focusOnHover: {\n type: Boolean,\n \"default\": true\n },\n highlightOnSelect: {\n type: Boolean,\n \"default\": true\n },\n checkmark: {\n type: Boolean,\n \"default\": false\n },\n filterMessage: {\n type: String,\n \"default\": null\n },\n selectionMessage: {\n type: String,\n \"default\": null\n },\n emptySelectionMessage: {\n type: String,\n \"default\": null\n },\n emptyFilterMessage: {\n type: String,\n \"default\": null\n },\n emptyMessage: {\n type: String,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabel: {\n type: String,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n }\n },\n style: SelectStyle,\n provide: function provide() {\n return {\n $pcSelect: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script = {\n name: 'Select',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n labelClickListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n searchTimeout: null,\n searchValue: null,\n isModelValueChanged: false,\n data: function data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n modelValue: function modelValue() {\n this.isModelValueChanged = true;\n },\n options: function options() {\n this.autoUpdateModel();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindLabelClickListener();\n },\n updated: function updated() {\n if (this.overlayVisible && this.isModelValueChanged) {\n this.scrollInView(this.findSelectedOptionIndex());\n }\n this.isModelValueChanged = false;\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindLabelClickListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex: function getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel: function getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue: function getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey: function getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTItemOptions: function getPTItemOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n option: option,\n index: index,\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled: function isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup: function isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel: function getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren: function getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this = this;\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(function (option) {\n return _this.isOptionGroup(option);\n }).length : index) + 1;\n },\n show: function show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n isFocus && focus(this.$refs.focusInput);\n },\n hide: function hide(isFocus) {\n var _this2 = this;\n var _hide = function _hide() {\n _this2.$emit('before-hide');\n _this2.overlayVisible = false;\n _this2.clicked = false;\n _this2.focusedOptionIndex = -1;\n _this2.searchValue = '';\n _this2.resetFilterOnHide && (_this2.filterValue = null);\n isFocus && focus(_this2.$refs.focusInput);\n };\n setTimeout(function () {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus: function onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n this.focused = true;\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled || isAndroid()) {\n event.preventDefault();\n return;\n }\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, this.editable);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n case 'End':\n this.onEndKey(event, this.editable);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event, this.editable);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'Backspace':\n this.onBackspaceKey(event, this.editable);\n break;\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n break;\n }\n this.clicked = false;\n },\n onEditableInput: function onEditableInput(event) {\n var value = event.target.value;\n this.searchValue = '';\n var matched = this.searchOptions(event, value);\n !matched && (this.focusedOptionIndex = -1);\n this.updateModel(event, value);\n !this.overlayVisible && isNotEmpty(value) && this.show();\n },\n onContainerClick: function onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n this.clicked = true;\n },\n onClearClick: function onClearClick(event) {\n this.updateModel(event, null);\n this.resetFilterOnClear && (this.filterValue = null);\n },\n onFirstHiddenFocus: function onFirstHiddenFocus(event) {\n var focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n focus(focusableEl);\n },\n onLastHiddenFocus: function onLastHiddenFocus(event) {\n var focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n focus(focusableEl);\n },\n onOptionSelect: function onOptionSelect(event, option) {\n var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var value = this.getOptionValue(option);\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionMouseMove: function onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onFilterChange: function onFilterChange(event) {\n var value = event.target.value;\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', {\n originalEvent: event,\n value: value\n });\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown: function onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n case 'Home':\n this.onHomeKey(event, true);\n break;\n case 'End':\n this.onEndKey(event, true);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event, true);\n break;\n }\n },\n onFilterBlur: function onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated: function onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown: function onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey: function onHomeKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n var target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n var target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n var len = target.value.length;\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.hide();\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n !pressedInInputText && this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n event.stopPropagation(); //@todo will be changed next versionss\n },\n onTabKey: function onTabKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onBackspaceKey: function onBackspaceKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n },\n onOverlayEnter: function onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n this.scrollInView();\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n },\n onOverlayAfterEnter: function onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onOverlayLeave: function onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.autoFilterFocus && focus(this.$refs.focusInput);\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay: function alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this3 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this3.overlayVisible && _this3.overlay && !_this3.$el.contains(event.target) && !_this3.overlay.contains(event.target)) {\n _this3.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this4 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, function () {\n if (_this4.overlayVisible) {\n _this4.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this5 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this5.overlayVisible && !isTouchDevice()) {\n _this5.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindLabelClickListener: function bindLabelClickListener() {\n var _this6 = this;\n if (!this.editable && !this.labelClickListener) {\n var label = document.querySelector(\"label[for=\\\"\".concat(this.inputId, \"\\\"]\"));\n if (label && isVisible(label)) {\n this.labelClickListener = function () {\n focus(_this6.$refs.focusInput);\n };\n label.addEventListener('click', this.labelClickListener);\n }\n }\n },\n unbindLabelClickListener: function unbindLabelClickListener() {\n if (this.labelClickListener) {\n var label = document.querySelector(\"label[for=\\\"\".concat(this.inputId, \"\\\"]\"));\n if (label && isVisible(label)) {\n label.removeEventListener('click', this.labelClickListener);\n }\n }\n },\n hasFocusableElements: function hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n },\n isOptionMatched: function isOptionMatched(option) {\n var _this$getOptionLabel;\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && ((_this$getOptionLabel = this.getOptionLabel(option)) === null || _this$getOptionLabel === void 0 ? void 0 : _this$getOptionLabel.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)));\n },\n isValidOption: function isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption: function isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isSelected: function isSelected(option) {\n return this.isValidOption(option) && equals(this.modelValue, this.getOptionValue(option), this.equalityKey);\n },\n findFirstOptionIndex: function findFirstOptionIndex() {\n var _this7 = this;\n return this.visibleOptions.findIndex(function (option) {\n return _this7.isValidOption(option);\n });\n },\n findLastOptionIndex: function findLastOptionIndex() {\n var _this8 = this;\n return findLastIndex(this.visibleOptions, function (option) {\n return _this8.isValidOption(option);\n });\n },\n findNextOptionIndex: function findNextOptionIndex(index) {\n var _this9 = this;\n var matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n return _this9.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex: function findPrevOptionIndex(index) {\n var _this10 = this;\n var matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n return _this10.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex: function findSelectedOptionIndex() {\n var _this11 = this;\n return this.hasSelectedOption ? this.visibleOptions.findIndex(function (option) {\n return _this11.isValidSelectedOption(option);\n }) : -1;\n },\n findFirstFocusedOptionIndex: function findFirstFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex: function findLastFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions: function searchOptions(event, _char) {\n var _this12 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var optionIndex = -1;\n var matched = false;\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex(function (option) {\n return _this12.isOptionMatched(option);\n });\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex(function (option) {\n return _this12.isOptionMatched(option);\n }) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex(function (option) {\n return _this12.isOptionMatched(option);\n });\n }\n if (optionIndex !== -1) {\n matched = true;\n }\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this12.searchValue = '';\n _this12.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedOptionIndex: function changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView: function scrollInView() {\n var _this13 = this;\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n this.$nextTick(function () {\n var id = index !== -1 ? \"\".concat(_this13.id, \"_\").concat(index) : _this13.focusedOptionId;\n var element = findSingle(_this13.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n } else if (!_this13.virtualScrollerDisabled) {\n _this13.virtualScroller && _this13.virtualScroller.scrollToIndex(index !== -1 ? index : _this13.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel: function autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel: function updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', {\n originalEvent: event,\n value: value\n });\n },\n flatOptions: function flatOptions(options) {\n var _this14 = this;\n return (options || []).reduce(function (result, option, index) {\n result.push({\n optionGroup: option,\n group: true,\n index: index\n });\n var optionGroupChildren = _this14.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach(function (o) {\n return result.push(o);\n });\n return result;\n }, []);\n },\n overlayRef: function overlayRef(el) {\n this.overlay = el;\n },\n listRef: function listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef: function virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions: function visibleOptions() {\n var _this15 = this;\n var options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n if (this.filterValue) {\n var filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n if (this.optionGroupLabel) {\n var optionGroups = this.options || [];\n var filtered = [];\n optionGroups.forEach(function (group) {\n var groupChildren = _this15.getOptionGroupChildren(group);\n var filteredItems = groupChildren.filter(function (item) {\n return filteredOptions.includes(item);\n });\n if (filteredItems.length > 0) filtered.push(_objectSpread(_objectSpread({}, group), {}, _defineProperty({}, typeof _this15.optionGroupChildren === 'string' ? _this15.optionGroupChildren : 'items', _toConsumableArray(filteredItems))));\n });\n return this.flatOptions(filtered);\n }\n return filteredOptions;\n }\n return options;\n },\n hasSelectedOption: function hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n label: function label() {\n var selectedOptionIndex = this.findSelectedOptionIndex();\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';\n },\n editableInputValue: function editableInputValue() {\n var selectedOptionIndex = this.findSelectedOptionIndex();\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.modelValue || '';\n },\n equalityKey: function equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields: function searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n filterResultMessageText: function filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText: function filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText: function emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText: function emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText: function selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText: function emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText: function selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n },\n focusedOptionId: function focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? \"\".concat(this.id, \"_\").concat(this.focusedOptionIndex) : null;\n },\n ariaSetSize: function ariaSetSize() {\n var _this16 = this;\n return this.visibleOptions.filter(function (option) {\n return !_this16.isOptionGroup(option);\n }).length;\n },\n isClearIconVisible: function isClearIconVisible() {\n return this.showClear && this.modelValue != null && isNotEmpty(this.options);\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText: InputText,\n VirtualScroller: VirtualScroller,\n Portal: Portal,\n InputIcon: InputIcon,\n IconField: IconField,\n TimesIcon: TimesIcon,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n SearchIcon: SearchIcon,\n CheckIcon: CheckIcon,\n BlankIcon: BlankIcon\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"id\", \"value\", \"placeholder\", \"tabindex\", \"disabled\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-invalid\"];\nvar _hoisted_3 = [\"id\", \"tabindex\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-disabled\"];\nvar _hoisted_4 = [\"id\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousemove\", \"data-p-selected\", \"data-p-focused\", \"data-p-disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_SearchIcon = resolveComponent(\"SearchIcon\");\n var _component_InputIcon = resolveComponent(\"InputIcon\");\n var _component_IconField = resolveComponent(\"IconField\");\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_BlankIcon = resolveComponent(\"BlankIcon\");\n var _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n var _component_Portal = resolveComponent(\"Portal\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n id: $data.id,\n \"class\": _ctx.cx('root'),\n onClick: _cache[11] || (_cache[11] = function () {\n return $options.onContainerClick && $options.onContainerClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [_ctx.editable ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n ref: \"focusInput\",\n id: _ctx.labelId || _ctx.inputId,\n type: \"text\",\n \"class\": [_ctx.cx('label'), _ctx.inputClass, _ctx.labelClass],\n style: [_ctx.inputStyle, _ctx.labelStyle],\n value: $options.editableInputValue,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n disabled: _ctx.disabled,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[2] || (_cache[2] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n onInput: _cache[3] || (_cache[3] = function () {\n return $options.onEditableInput && $options.onEditableInput.apply($options, arguments);\n })\n }, _ctx.ptm('label')), null, 16, _hoisted_2)) : (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n ref: \"focusInput\",\n id: _ctx.labelId || _ctx.inputId,\n \"class\": [_ctx.cx('label'), _ctx.inputClass, _ctx.labelClass],\n style: [_ctx.inputStyle, _ctx.labelStyle],\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel || ($options.label === 'p-emptylabel' ? undefined : $options.label),\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-disabled\": _ctx.disabled,\n onFocus: _cache[4] || (_cache[4] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[5] || (_cache[5] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[6] || (_cache[6] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('label')), [renderSlot(_ctx.$slots, \"value\", {\n value: _ctx.modelValue,\n placeholder: _ctx.placeholder\n }, function () {\n return [createTextVNode(toDisplayString($options.label === 'p-emptylabel' ? ' ' : $options.label || 'empty'), 1)];\n })], 16, _hoisted_3)), $options.isClearIconVisible ? renderSlot(_ctx.$slots, \"clearicon\", {\n key: 2,\n \"class\": normalizeClass(_ctx.cx('clearIcon')),\n clearCallback: $options.onClearClick\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.clearIcon ? 'i' : 'TimesIcon'), mergeProps({\n ref: \"clearIcon\",\n \"class\": [_ctx.cx('clearIcon'), _ctx.clearIcon],\n onClick: $options.onClearClick\n }, _ctx.ptm('clearIcon'), {\n \"data-pc-section\": \"clearicon\"\n }), null, 16, [\"class\", \"onClick\"]))];\n }) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('dropdown')\n }, _ctx.ptm('dropdown')), [_ctx.loading ? renderSlot(_ctx.$slots, \"loadingicon\", {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('loadingIcon'))\n }, function () {\n return [_ctx.loadingIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('loadingIcon'), 'pi-spin', _ctx.loadingIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loadingIcon')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('loadingIcon'),\n spin: \"\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loadingIcon')), null, 16, [\"class\"]))];\n }) : renderSlot(_ctx.$slots, \"dropdownicon\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('dropdownIcon'))\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": [_ctx.cx('dropdownIcon'), _ctx.dropdownIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('dropdownIcon')), null, 16, [\"class\"]))];\n })], 16), createVNode(_component_Portal, {\n appendTo: _ctx.appendTo\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.overlayVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n \"class\": [_ctx.cx('overlay'), _ctx.panelClass, _ctx.overlayClass],\n style: [_ctx.panelStyle, _ctx.overlayStyle],\n onClick: _cache[9] || (_cache[9] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n }),\n onKeydown: _cache[10] || (_cache[10] = function () {\n return $options.onOverlayKeyDown && $options.onOverlayKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('overlay')), [createElementVNode(\"span\", mergeProps({\n ref: \"firstHiddenFocusableElementOnOverlay\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"class\": \"p-hidden-accessible p-hidden-focusable\",\n tabindex: 0,\n onFocus: _cache[7] || (_cache[7] = function () {\n return $options.onFirstHiddenFocus && $options.onFirstHiddenFocus.apply($options, arguments);\n })\n }, _ctx.ptm('hiddenFirstFocusableEl'), {\n \"data-p-hidden-accessible\": true,\n \"data-p-hidden-focusable\": true\n }), null, 16), renderSlot(_ctx.$slots, \"header\", {\n value: _ctx.modelValue,\n options: $options.visibleOptions\n }), _ctx.filter ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [createVNode(_component_IconField, {\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcFilterContainer')\n }, {\n \"default\": withCtx(function () {\n return [createVNode(_component_InputText, {\n ref: \"filterInput\",\n type: \"text\",\n value: $data.filterValue,\n onVnodeMounted: $options.onFilterUpdated,\n onVnodeUpdated: $options.onFilterUpdated,\n \"class\": normalizeClass(_ctx.cx('pcFilter')),\n placeholder: _ctx.filterPlaceholder,\n variant: _ctx.variant,\n unstyled: _ctx.unstyled,\n role: \"searchbox\",\n autocomplete: \"off\",\n \"aria-owns\": $data.id + '_list',\n \"aria-activedescendant\": $options.focusedOptionId,\n onKeydown: $options.onFilterKeyDown,\n onBlur: $options.onFilterBlur,\n onInput: $options.onFilterChange,\n pt: _ctx.ptm('pcFilter')\n }, null, 8, [\"value\", \"onVnodeMounted\", \"onVnodeUpdated\", \"class\", \"placeholder\", \"variant\", \"unstyled\", \"aria-owns\", \"aria-activedescendant\", \"onKeydown\", \"onBlur\", \"onInput\", \"pt\"]), createVNode(_component_InputIcon, mergeProps({\n unstyled: _ctx.unstyled\n }, _ctx.ptm('pcFilterIconContainer')), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"filtericon\", {}, function () {\n return [_ctx.filterIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.filterIcon\n }, _ctx.ptm('filterIcon')), null, 16)) : (openBlock(), createBlock(_component_SearchIcon, normalizeProps(mergeProps({\n key: 1\n }, _ctx.ptm('filterIcon'))), null, 16))];\n })];\n }),\n _: 3\n }, 16, [\"unstyled\"])];\n }),\n _: 3\n }, 8, [\"unstyled\", \"pt\"]), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenFilterResult'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.filterResultMessageText), 17)], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('listContainer'),\n style: {\n 'max-height': $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }\n }, _ctx.ptm('listContainer')), [createVNode(_component_VirtualScroller, mergeProps({\n ref: $options.virtualScrollerRef\n }, _ctx.virtualScrollerOptions, {\n items: $options.visibleOptions,\n style: {\n height: _ctx.scrollHeight\n },\n tabindex: -1,\n disabled: $options.virtualScrollerDisabled,\n pt: _ctx.ptm('virtualScroller')\n }), createSlots({\n content: withCtx(function (_ref) {\n var styleClass = _ref.styleClass,\n contentRef = _ref.contentRef,\n items = _ref.items,\n getItemOptions = _ref.getItemOptions,\n contentStyle = _ref.contentStyle,\n itemSize = _ref.itemSize;\n return [createElementVNode(\"ul\", mergeProps({\n ref: function ref(el) {\n return $options.listRef(el, contentRef);\n },\n id: $data.id + '_list',\n \"class\": [_ctx.cx('list'), styleClass],\n style: contentStyle,\n role: \"listbox\"\n }, _ctx.ptm('list')), [(openBlock(true), createElementBlock(Fragment, null, renderList(items, function (option, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n }, [$options.isOptionGroup(option) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('optionGroup'),\n role: \"option\",\n ref_for: true\n }, _ctx.ptm('optionGroup')), [renderSlot(_ctx.$slots, \"optiongroup\", {\n option: option.optionGroup,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('optionGroupLabel'),\n ref_for: true\n }, _ctx.ptm('optionGroupLabel')), toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 17)];\n })], 16, _hoisted_5)) : withDirectives((openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n \"class\": _ctx.cx('option', {\n option: option,\n focusedOption: $options.getOptionIndex(i, getItemOptions)\n }),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": $options.isSelected(option),\n \"aria-disabled\": $options.isOptionDisabled(option),\n \"aria-setsize\": $options.ariaSetSize,\n \"aria-posinset\": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)),\n onClick: function onClick($event) {\n return $options.onOptionSelect($event, option);\n },\n onMousemove: function onMousemove($event) {\n return $options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions));\n },\n \"data-p-selected\": $options.isSelected(option),\n \"data-p-focused\": $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions),\n \"data-p-disabled\": $options.isOptionDisabled(option),\n ref_for: true\n }, $options.getPTItemOptions(option, getItemOptions, i, 'option')), [_ctx.checkmark ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [$options.isSelected(option) ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 0,\n \"class\": _ctx.cx('optionCheckIcon'),\n ref_for: true\n }, _ctx.ptm('optionCheckIcon')), null, 16, [\"class\"])) : (openBlock(), createBlock(_component_BlankIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('optionBlankIcon'),\n ref_for: true\n }, _ctx.ptm('optionBlankIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"option\", {\n option: option,\n selected: $options.isSelected(option),\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('optionLabel'),\n ref_for: true\n }, _ctx.ptm('optionLabel')), toDisplayString($options.getOptionLabel(option)), 17)];\n })], 16, _hoisted_6)), [[_directive_ripple]])], 64);\n }), 128)), $data.filterValue && (!items || items && items.length === 0) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), [renderSlot(_ctx.$slots, \"emptyfilter\", {}, function () {\n return [createTextVNode(toDisplayString($options.emptyFilterMessageText), 1)];\n })], 16)) : !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), [renderSlot(_ctx.$slots, \"empty\", {}, function () {\n return [createTextVNode(toDisplayString($options.emptyMessageText), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_4)];\n }),\n _: 2\n }, [_ctx.$slots.loader ? {\n name: \"loader\",\n fn: withCtx(function (_ref2) {\n var options = _ref2.options;\n return [renderSlot(_ctx.$slots, \"loader\", {\n options: options\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"items\", \"style\", \"disabled\", \"pt\"])], 16), renderSlot(_ctx.$slots, \"footer\", {\n value: _ctx.modelValue,\n options: $options.visibleOptions\n }), !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenEmptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.emptyMessageText), 17)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSelectedMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.selectedMessageText), 17), createElementVNode(\"span\", mergeProps({\n ref: \"lastHiddenFocusableElementOnOverlay\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"class\": \"p-hidden-accessible p-hidden-focusable\",\n tabindex: 0,\n onFocus: _cache[8] || (_cache[8] = function () {\n return $options.onLastHiddenFocus && $options.onLastHiddenFocus.apply($options, arguments);\n })\n }, _ctx.ptm('hiddenLastFocusableEl'), {\n \"data-p-hidden-accessible\": true,\n \"data-p-hidden-focusable\": true\n }), null, 16)], 16)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\"])], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-toggleswitch {\\n display: inline-block;\\n width: \".concat(dt('toggleswitch.width'), \";\\n height: \").concat(dt('toggleswitch.height'), \";\\n}\\n\\n.p-toggleswitch-input {\\n cursor: pointer;\\n appearance: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n padding: 0;\\n margin: 0;\\n opacity: 0;\\n z-index: 1;\\n outline: 0 none;\\n border-radius: \").concat(dt('toggleswitch.border.radius'), \";\\n}\\n\\n.p-toggleswitch-slider {\\n display: inline-block;\\n cursor: pointer;\\n width: 100%;\\n height: 100%;\\n border-width: \").concat(dt('toggleswitch.border.width'), \";\\n border-style: solid;\\n border-color: \").concat(dt('toggleswitch.border.color'), \";\\n background: \").concat(dt('toggleswitch.background'), \";\\n transition: background \").concat(dt('toggleswitch.transition.duration'), \", color \").concat(dt('toggleswitch.transition.duration'), \", border-color \").concat(dt('toggleswitch.transition.duration'), \", outline-color \").concat(dt('toggleswitch.transition.duration'), \", box-shadow \").concat(dt('toggleswitch.transition.duration'), \";\\n border-radius: \").concat(dt('toggleswitch.border.radius'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('toggleswitch.shadow'), \";\\n}\\n\\n.p-toggleswitch-slider:before {\\n position: absolute;\\n content: \\\"\\\";\\n top: 50%;\\n background: \").concat(dt('toggleswitch.handle.background'), \";\\n width: \").concat(dt('toggleswitch.handle.size'), \";\\n height: \").concat(dt('toggleswitch.handle.size'), \";\\n left: \").concat(dt('toggleswitch.gap'), \";\\n margin-top: calc(-1 * calc(\").concat(dt('toggleswitch.handle.size'), \" / 2));\\n border-radius: \").concat(dt('toggleswitch.handle.border.radius'), \";\\n transition: background \").concat(dt('toggleswitch.transition.duration'), \", left \").concat(dt('toggleswitch.slide.duration'), \";\\n}\\n\\n.p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.checked.background'), \";\\n border-color: \").concat(dt('toggleswitch.checked.border.color'), \";\\n}\\n\\n.p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.checked.background'), \";\\n left: calc(\").concat(dt('toggleswitch.width'), \" - calc(\").concat(dt('toggleswitch.handle.size'), \" + \").concat(dt('toggleswitch.gap'), \"));\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.hover.background'), \";\\n border-color: \").concat(dt('toggleswitch.hover.border.color'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.hover.background'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.checked.hover.background'), \";\\n border-color: \").concat(dt('toggleswitch.checked.hover.border.color'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.checked.hover.background'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:focus-visible) .p-toggleswitch-slider {\\n box-shadow: \").concat(dt('toggleswitch.focus.ring.shadow'), \";\\n outline: \").concat(dt('toggleswitch.focus.ring.width'), \" \").concat(dt('toggleswitch.focus.ring.style'), \" \").concat(dt('toggleswitch.focus.ring.color'), \";\\n outline-offset: \").concat(dt('toggleswitch.focus.ring.offset'), \";\\n}\\n\\n.p-toggleswitch.p-invalid > .p-toggleswitch-slider {\\n border-color: \").concat(dt('toggleswitch.invalid.border.color'), \";\\n}\\n\\n.p-toggleswitch.p-disabled {\\n opacity: 1;\\n}\\n\\n.p-toggleswitch.p-disabled .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.disabled.background'), \";\\n}\\n\\n.p-toggleswitch.p-disabled .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.disabled.background'), \";\\n}\\n\");\n};\nvar inlineStyles = {\n root: {\n position: 'relative'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-toggleswitch p-component', {\n 'p-toggleswitch-checked': instance.checked,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid\n }];\n },\n input: 'p-toggleswitch-input',\n slider: 'p-toggleswitch-slider'\n};\nvar ToggleSwitchStyle = BaseStyle.extend({\n name: 'toggleswitch',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { ToggleSwitchStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ToggleSwitchStyle from 'primevue/toggleswitch/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseToggleSwitch',\n \"extends\": BaseComponent,\n props: {\n modelValue: {\n type: null,\n \"default\": false\n },\n trueValue: {\n type: null,\n \"default\": true\n },\n falseValue: {\n type: null,\n \"default\": false\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: ToggleSwitchStyle,\n provide: function provide() {\n return {\n $pcToggleSwitch: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ToggleSwitch',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur'],\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n });\n },\n onChange: function onChange(event) {\n if (!this.disabled && !this.readonly) {\n var newValue = this.checked ? this.falseValue : this.trueValue;\n this.$emit('update:modelValue', newValue);\n this.$emit('change', event);\n }\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.$emit('blur', event);\n }\n },\n computed: {\n checked: function checked() {\n return this.modelValue === this.trueValue;\n }\n }\n};\n\nvar _hoisted_1 = [\"data-p-checked\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"id\", \"checked\", \"tabindex\", \"disabled\", \"readonly\", \"aria-checked\", \"aria-labelledby\", \"aria-label\", \"aria-invalid\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root')\n }, $options.getPTOptions('root'), {\n \"data-p-checked\": $options.checked,\n \"data-p-disabled\": _ctx.disabled\n }), [createElementVNode(\"input\", mergeProps({\n id: _ctx.inputId,\n type: \"checkbox\",\n role: \"switch\",\n \"class\": [_ctx.cx('input'), _ctx.inputClass],\n style: _ctx.inputStyle,\n checked: $options.checked,\n tabindex: _ctx.tabindex,\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n \"aria-checked\": $options.checked,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onChange: _cache[2] || (_cache[2] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, $options.getPTOptions('input')), null, 16, _hoisted_2), createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('slider')\n }, $options.getPTOptions('slider')), null, 16)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-slider {\\n position: relative;\\n background: \".concat(dt('slider.track.background'), \";\\n border-radius: \").concat(dt('slider.border.radius'), \";\\n}\\n\\n.p-slider-handle {\\n cursor: grab;\\n touch-action: none;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n height: \").concat(dt('slider.handle.height'), \";\\n width: \").concat(dt('slider.handle.width'), \";\\n background: \").concat(dt('slider.handle.background'), \";\\n border-radius: \").concat(dt('slider.handle.border.radius'), \";\\n transition: background \").concat(dt('slider.transition.duration'), \", color \").concat(dt('slider.transition.duration'), \", border-color \").concat(dt('slider.transition.duration'), \", box-shadow \").concat(dt('slider.transition.duration'), \", outline-color \").concat(dt('slider.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-slider-handle::before {\\n content: \\\"\\\";\\n width: \").concat(dt('slider.handle.content.width'), \";\\n height: \").concat(dt('slider.handle.content.height'), \";\\n display: block;\\n background: \").concat(dt('slider.handle.content.background'), \";\\n border-radius: \").concat(dt('slider.handle.content.border.radius'), \";\\n box-shadow: \").concat(dt('slider.handle.content.shadow'), \";\\n transition: background \").concat(dt('slider.transition.duration'), \";\\n}\\n\\n.p-slider:not(.p-disabled) .p-slider-handle:hover {\\n background: \").concat(dt('slider.handle.hover.background'), \";\\n}\\n\\n.p-slider:not(.p-disabled) .p-slider-handle:hover::before {\\n background: \").concat(dt('slider.handle.content.hover.background'), \";\\n}\\n\\n.p-slider-handle:focus-visible {\\n border-color: \").concat(dt('slider.handle.focus.border.color'), \";\\n box-shadow: \").concat(dt('slider.handle.focus.ring.shadow'), \";\\n outline: \").concat(dt('slider.handle.focus.ring.width'), \" \").concat(dt('slider.handle.focus.ring.style'), \" \").concat(dt('slider.handle.focus.ring.color'), \";\\n outline-offset: \").concat(dt('slider.handle.focus.ring.offset'), \";\\n}\\n\\n.p-slider-range {\\n display: block;\\n background: \").concat(dt('slider.range.background'), \";\\n border-radius: \").concat(dt('slider.border.radius'), \";\\n}\\n\\n.p-slider.p-slider-horizontal {\\n height: \").concat(dt('slider.track.size'), \";\\n}\\n\\n.p-slider-horizontal .p-slider-range {\\n top: 0;\\n left: 0;\\n height: 100%;\\n}\\n\\n.p-slider-horizontal .p-slider-handle {\\n top: 50%;\\n margin-top: calc(-1 * calc(\").concat(dt('slider.handle.height'), \" / 2));\\n margin-left: calc(-1 * calc(\").concat(dt('slider.handle.width'), \" / 2));\\n}\\n\\n.p-slider-vertical {\\n min-height: 100px;\\n width: \").concat(dt('slider.track.size'), \";\\n}\\n\\n.p-slider-vertical .p-slider-handle {\\n left: 50%;\\n margin-left: calc(-1 * calc(\").concat(dt('slider.handle.width'), \" / 2));\\n margin-bottom: calc(-1 * calc(\").concat(dt('slider.handle.height'), \" / 2));\\n}\\n\\n.p-slider-vertical .p-slider-range {\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n}\\n\");\n};\nvar inlineStyles = {\n handle: {\n position: 'absolute'\n },\n range: {\n position: 'absolute'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-slider p-component', {\n 'p-disabled': props.disabled,\n 'p-slider-horizontal': props.orientation === 'horizontal',\n 'p-slider-vertical': props.orientation === 'vertical'\n }];\n },\n range: 'p-slider-range',\n handle: 'p-slider-handle'\n};\nvar SliderStyle = BaseStyle.extend({\n name: 'slider',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { SliderStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getWindowScrollLeft, getWindowScrollTop, getAttribute } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SliderStyle from 'primevue/slider/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseSlider',\n \"extends\": BaseComponent,\n props: {\n modelValue: [Number, Array],\n min: {\n type: Number,\n \"default\": 0\n },\n max: {\n type: Number,\n \"default\": 100\n },\n orientation: {\n type: String,\n \"default\": 'horizontal'\n },\n step: {\n type: Number,\n \"default\": null\n },\n range: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: SliderStyle,\n provide: function provide() {\n return {\n $pcSlider: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Slider',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'slideend'],\n dragging: false,\n handleIndex: null,\n initX: null,\n initY: null,\n barWidth: null,\n barHeight: null,\n dragListener: null,\n dragEndListener: null,\n beforeUnmount: function beforeUnmount() {\n this.unbindDragListeners();\n },\n methods: {\n updateDomData: function updateDomData() {\n var rect = this.$el.getBoundingClientRect();\n this.initX = rect.left + getWindowScrollLeft();\n this.initY = rect.top + getWindowScrollTop();\n this.barWidth = this.$el.offsetWidth;\n this.barHeight = this.$el.offsetHeight;\n },\n setValue: function setValue(event) {\n var handleValue;\n var pageX = event.touches ? event.touches[0].pageX : event.pageX;\n var pageY = event.touches ? event.touches[0].pageY : event.pageY;\n if (this.orientation === 'horizontal') handleValue = (pageX - this.initX) * 100 / this.barWidth;else handleValue = (this.initY + this.barHeight - pageY) * 100 / this.barHeight;\n var newValue = (this.max - this.min) * (handleValue / 100) + this.min;\n if (this.step) {\n var oldValue = this.range ? this.value[this.handleIndex] : this.value;\n var diff = newValue - oldValue;\n if (diff < 0) newValue = oldValue + Math.ceil(newValue / this.step - oldValue / this.step) * this.step;else if (diff > 0) newValue = oldValue + Math.floor(newValue / this.step - oldValue / this.step) * this.step;\n } else {\n newValue = Math.floor(newValue);\n }\n this.updateModel(event, newValue);\n },\n updateModel: function updateModel(event, value) {\n var newValue = parseFloat(value.toFixed(10));\n var modelValue;\n if (this.range) {\n modelValue = this.value ? _toConsumableArray(this.value) : [];\n if (this.handleIndex == 0) {\n if (newValue < this.min) newValue = this.min;else if (newValue >= this.max) newValue = this.max;\n modelValue[0] = newValue;\n } else {\n if (newValue > this.max) newValue = this.max;else if (newValue <= this.min) newValue = this.min;\n modelValue[1] = newValue;\n }\n } else {\n if (newValue < this.min) newValue = this.min;else if (newValue > this.max) newValue = this.max;\n modelValue = newValue;\n }\n this.$emit('update:modelValue', modelValue);\n this.$emit('change', modelValue);\n },\n onDragStart: function onDragStart(event, index) {\n if (this.disabled) {\n return;\n }\n this.$el.setAttribute('data-p-sliding', true);\n this.dragging = true;\n this.updateDomData();\n if (this.range && this.value[0] === this.max) {\n this.handleIndex = 0;\n } else {\n this.handleIndex = index;\n }\n event.currentTarget.focus();\n event.preventDefault();\n },\n onDrag: function onDrag(event) {\n if (this.dragging) {\n this.setValue(event);\n event.preventDefault();\n }\n },\n onDragEnd: function onDragEnd(event) {\n if (this.dragging) {\n this.dragging = false;\n this.$el.setAttribute('data-p-sliding', false);\n this.$emit('slideend', {\n originalEvent: event,\n value: this.value\n });\n }\n },\n onBarClick: function onBarClick(event) {\n if (this.disabled) {\n return;\n }\n if (getAttribute(event.target, 'data-pc-section') !== 'handle') {\n this.updateDomData();\n this.setValue(event);\n }\n },\n onMouseDown: function onMouseDown(event, index) {\n this.bindDragListeners();\n this.onDragStart(event, index);\n },\n onKeyDown: function onKeyDown(event, index) {\n this.handleIndex = index;\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n this.decrementValue(event, index);\n event.preventDefault();\n break;\n case 'ArrowUp':\n case 'ArrowRight':\n this.incrementValue(event, index);\n event.preventDefault();\n break;\n case 'PageDown':\n this.decrementValue(event, index, true);\n event.preventDefault();\n break;\n case 'PageUp':\n this.incrementValue(event, index, true);\n event.preventDefault();\n break;\n case 'Home':\n this.updateModel(event, this.min);\n event.preventDefault();\n break;\n case 'End':\n this.updateModel(event, this.max);\n event.preventDefault();\n break;\n }\n },\n decrementValue: function decrementValue(event, index) {\n var pageKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var newValue;\n if (this.range) {\n if (this.step) newValue = this.value[index] - this.step;else newValue = this.value[index] - 1;\n } else {\n if (this.step) newValue = this.value - this.step;else if (!this.step && pageKey) newValue = this.value - 10;else newValue = this.value - 1;\n }\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n incrementValue: function incrementValue(event, index) {\n var pageKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var newValue;\n if (this.range) {\n if (this.step) newValue = this.value[index] + this.step;else newValue = this.value[index] + 1;\n } else {\n if (this.step) newValue = this.value + this.step;else if (!this.step && pageKey) newValue = this.value + 10;else newValue = this.value + 1;\n }\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n bindDragListeners: function bindDragListeners() {\n if (!this.dragListener) {\n this.dragListener = this.onDrag.bind(this);\n document.addEventListener('mousemove', this.dragListener);\n }\n if (!this.dragEndListener) {\n this.dragEndListener = this.onDragEnd.bind(this);\n document.addEventListener('mouseup', this.dragEndListener);\n }\n },\n unbindDragListeners: function unbindDragListeners() {\n if (this.dragListener) {\n document.removeEventListener('mousemove', this.dragListener);\n this.dragListener = null;\n }\n if (this.dragEndListener) {\n document.removeEventListener('mouseup', this.dragEndListener);\n this.dragEndListener = null;\n }\n }\n },\n computed: {\n value: function value() {\n var _this$modelValue3;\n if (this.range) {\n var _this$modelValue$, _this$modelValue, _this$modelValue$2, _this$modelValue2;\n return [(_this$modelValue$ = (_this$modelValue = this.modelValue) === null || _this$modelValue === void 0 ? void 0 : _this$modelValue[0]) !== null && _this$modelValue$ !== void 0 ? _this$modelValue$ : this.min, (_this$modelValue$2 = (_this$modelValue2 = this.modelValue) === null || _this$modelValue2 === void 0 ? void 0 : _this$modelValue2[1]) !== null && _this$modelValue$2 !== void 0 ? _this$modelValue$2 : this.max];\n }\n return (_this$modelValue3 = this.modelValue) !== null && _this$modelValue3 !== void 0 ? _this$modelValue3 : this.min;\n },\n horizontal: function horizontal() {\n return this.orientation === 'horizontal';\n },\n vertical: function vertical() {\n return this.orientation === 'vertical';\n },\n rangeStyle: function rangeStyle() {\n if (this.range) {\n var rangeSliderWidth = this.rangeEndPosition > this.rangeStartPosition ? this.rangeEndPosition - this.rangeStartPosition : this.rangeStartPosition - this.rangeEndPosition;\n var rangeSliderPosition = this.rangeEndPosition > this.rangeStartPosition ? this.rangeStartPosition : this.rangeEndPosition;\n if (this.horizontal) return {\n left: rangeSliderPosition + '%',\n width: rangeSliderWidth + '%'\n };else return {\n bottom: rangeSliderPosition + '%',\n height: rangeSliderWidth + '%'\n };\n } else {\n if (this.horizontal) return {\n width: this.handlePosition + '%'\n };else return {\n height: this.handlePosition + '%'\n };\n }\n },\n handleStyle: function handleStyle() {\n if (this.horizontal) return {\n left: this.handlePosition + '%'\n };else return {\n bottom: this.handlePosition + '%'\n };\n },\n handlePosition: function handlePosition() {\n if (this.value < this.min) return 0;else if (this.value > this.max) return 100;else return (this.value - this.min) * 100 / (this.max - this.min);\n },\n rangeStartPosition: function rangeStartPosition() {\n if (this.value && this.value[0]) return (this.value[0] < this.min ? 0 : this.value[0] - this.min) * 100 / (this.max - this.min);else return 0;\n },\n rangeEndPosition: function rangeEndPosition() {\n if (this.value && this.value.length === 2) return (this.value[1] > this.max ? 100 : this.value[1] - this.min) * 100 / (this.max - this.min);else return 100;\n },\n rangeStartHandleStyle: function rangeStartHandleStyle() {\n if (this.horizontal) return {\n left: this.rangeStartPosition + '%'\n };else return {\n bottom: this.rangeStartPosition + '%'\n };\n },\n rangeEndHandleStyle: function rangeEndHandleStyle() {\n if (this.horizontal) return {\n left: this.rangeEndPosition + '%'\n };else return {\n bottom: this.rangeEndPosition + '%'\n };\n }\n }\n};\n\nvar _hoisted_1 = [\"tabindex\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuemax\", \"aria-labelledby\", \"aria-label\", \"aria-orientation\"];\nvar _hoisted_2 = [\"tabindex\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuemax\", \"aria-labelledby\", \"aria-label\", \"aria-orientation\"];\nvar _hoisted_3 = [\"tabindex\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuemax\", \"aria-labelledby\", \"aria-label\", \"aria-orientation\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n onClick: _cache[15] || (_cache[15] = function () {\n return $options.onBarClick && $options.onBarClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root'), {\n \"data-p-sliding\": false\n }), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('range'),\n style: [_ctx.sx('range'), $options.rangeStyle]\n }, _ctx.ptm('range')), null, 16), !_ctx.range ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('handle'),\n style: [_ctx.sx('handle'), $options.handleStyle],\n onTouchstartPassive: _cache[0] || (_cache[0] = function ($event) {\n return $options.onDragStart($event);\n }),\n onTouchmovePassive: _cache[1] || (_cache[1] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[2] || (_cache[2] = function ($event) {\n return $options.onDragEnd($event);\n }),\n onMousedown: _cache[3] || (_cache[3] = function ($event) {\n return $options.onMouseDown($event);\n }),\n onKeydown: _cache[4] || (_cache[4] = function ($event) {\n return $options.onKeyDown($event);\n }),\n tabindex: _ctx.tabindex,\n role: \"slider\",\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue,\n \"aria-valuemax\": _ctx.max,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.orientation\n }, _ctx.ptm('handle')), null, 16, _hoisted_1)) : createCommentVNode(\"\", true), _ctx.range ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('handle'),\n style: [_ctx.sx('handle'), $options.rangeStartHandleStyle],\n onTouchstartPassive: _cache[5] || (_cache[5] = function ($event) {\n return $options.onDragStart($event, 0);\n }),\n onTouchmovePassive: _cache[6] || (_cache[6] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[7] || (_cache[7] = function ($event) {\n return $options.onDragEnd($event);\n }),\n onMousedown: _cache[8] || (_cache[8] = function ($event) {\n return $options.onMouseDown($event, 0);\n }),\n onKeydown: _cache[9] || (_cache[9] = function ($event) {\n return $options.onKeyDown($event, 0);\n }),\n tabindex: _ctx.tabindex,\n role: \"slider\",\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue ? _ctx.modelValue[0] : null,\n \"aria-valuemax\": _ctx.max,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.orientation\n }, _ctx.ptm('startHandler')), null, 16, _hoisted_2)) : createCommentVNode(\"\", true), _ctx.range ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": _ctx.cx('handle'),\n style: [_ctx.sx('handle'), $options.rangeEndHandleStyle],\n onTouchstartPassive: _cache[10] || (_cache[10] = function ($event) {\n return $options.onDragStart($event, 1);\n }),\n onTouchmovePassive: _cache[11] || (_cache[11] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[12] || (_cache[12] = function ($event) {\n return $options.onDragEnd($event);\n }),\n onMousedown: _cache[13] || (_cache[13] = function ($event) {\n return $options.onMouseDown($event, 1);\n }),\n onKeydown: _cache[14] || (_cache[14] = function ($event) {\n return $options.onKeyDown($event, 1);\n }),\n tabindex: _ctx.tabindex,\n role: \"slider\",\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue ? _ctx.modelValue[1] : null,\n \"aria-valuemax\": _ctx.max,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.orientation\n }, _ctx.ptm('endHandler')), null, 16, _hoisted_3)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n\n\n\n","\n\n\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-tabpanel', {\n 'p-tabpanel-active': instance.active\n }];\n }\n};\nvar TabPanelStyle = BaseStyle.extend({\n name: 'tabpanel',\n classes: classes\n});\n\nexport { TabPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { equals } from '@primeuix/utils/object';\nimport { mergeProps, renderSlot, openBlock, createElementBlock, Fragment, withDirectives, createBlock, resolveDynamicComponent, withCtx, vShow, createCommentVNode, normalizeClass } from 'vue';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabPanelStyle from 'primevue/tabpanel/style';\n\nvar script$1 = {\n name: 'BaseTabPanel',\n \"extends\": BaseComponent,\n props: {\n // in Tabs\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n as: {\n type: [String, Object],\n \"default\": 'DIV'\n },\n asChild: {\n type: Boolean,\n \"default\": false\n },\n // in TabView\n header: null,\n headerStyle: null,\n headerClass: null,\n headerProps: null,\n headerActionProps: null,\n contentStyle: null,\n contentClass: null,\n contentProps: null,\n disabled: Boolean\n },\n style: TabPanelStyle,\n provide: function provide() {\n return {\n $pcTabPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n computed: {\n active: function active() {\n var _this$$pcTabs;\n return equals((_this$$pcTabs = this.$pcTabs) === null || _this$$pcTabs === void 0 ? void 0 : _this$$pcTabs.d_value, this.value);\n },\n id: function id() {\n var _this$$pcTabs2;\n return \"\".concat((_this$$pcTabs2 = this.$pcTabs) === null || _this$$pcTabs2 === void 0 ? void 0 : _this$$pcTabs2.id, \"_tabpanel_\").concat(this.value);\n },\n ariaLabelledby: function ariaLabelledby() {\n var _this$$pcTabs3;\n return \"\".concat((_this$$pcTabs3 = this.$pcTabs) === null || _this$$pcTabs3 === void 0 ? void 0 : _this$$pcTabs3.id, \"_tab_\").concat(this.value);\n },\n attrs: function attrs() {\n return mergeProps(this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n a11yAttrs: function a11yAttrs() {\n var _this$$pcTabs4;\n return {\n id: this.id,\n tabindex: (_this$$pcTabs4 = this.$pcTabs) === null || _this$$pcTabs4 === void 0 ? void 0 : _this$$pcTabs4.tabindex,\n role: 'tabpanel',\n 'aria-labelledby': this.ariaLabelledby,\n 'data-pc-name': 'tabpanel',\n 'data-p-active': this.active\n };\n },\n ptParams: function ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _$options$$pcTabs, _$options$$pcTabs2;\n return !$options.$pcTabs ? renderSlot(_ctx.$slots, \"default\", {\n key: 0\n }) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [!_ctx.asChild ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [((_$options$$pcTabs = $options.$pcTabs) !== null && _$options$$pcTabs !== void 0 && _$options$$pcTabs.lazy ? $options.active : true) ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n \"class\": _ctx.cx('root')\n }, $options.attrs), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 3\n }, 16, [\"class\"])), [[vShow, (_$options$$pcTabs2 = $options.$pcTabs) !== null && _$options$$pcTabs2 !== void 0 && _$options$$pcTabs2.lazy ? true : $options.active]]) : createCommentVNode(\"\", true)], 64)) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('root')),\n active: $options.active,\n a11yAttrs: $options.a11yAttrs\n })], 64));\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import { defineStore } from 'pinia'\nimport { ref } from 'vue'\nimport { api } from '@/scripts/api'\nimport type { SystemStats } from '@/types/apiTypes'\n\nexport const useSystemStatsStore = defineStore('systemStats', () => {\n const systemStats = ref(null)\n const isLoading = ref(false)\n const error = ref(null)\n\n async function fetchSystemStats() {\n isLoading.value = true\n error.value = null\n\n try {\n systemStats.value = await api.getSystemStats()\n } catch (err) {\n error.value =\n err instanceof Error\n ? err.message\n : 'An error occurred while fetching system stats'\n console.error('Error fetching system stats:', err)\n } finally {\n isLoading.value = false\n }\n }\n\n return {\n systemStats,\n isLoading,\n error,\n fetchSystemStats\n }\n})\n","export const CORE_MENU_COMMANDS = [\n [['Workflow'], ['Comfy.NewBlankWorkflow']],\n [['Workflow'], ['Comfy.OpenWorkflow', 'Comfy.BrowseTemplates']],\n [\n ['Workflow'],\n [\n 'Comfy.SaveWorkflow',\n 'Comfy.SaveWorkflowAs',\n 'Comfy.ExportWorkflow',\n 'Comfy.ExportWorkflowAPI'\n ]\n ],\n [['Edit'], ['Comfy.Undo', 'Comfy.Redo']],\n [['Edit'], ['Comfy.RefreshNodeDefinitions']],\n [['Edit'], ['Comfy.ClearWorkflow']],\n [['Edit'], ['Comfy.OpenClipspace']],\n [\n ['Help'],\n [\n 'Comfy.Help.OpenComfyUIIssues',\n 'Comfy.Help.OpenComfyUIDocs',\n 'Comfy.Help.OpenComfyOrgDiscord'\n ]\n ]\n]\n","import { defineStore } from 'pinia'\nimport type { MenuItem } from 'primevue/menuitem'\nimport { ref } from 'vue'\nimport { useCommandStore } from './commandStore'\nimport { ComfyExtension } from '@/types/comfy'\nimport { CORE_MENU_COMMANDS } from '@/constants/coreMenuCommands'\n\nexport const useMenuItemStore = defineStore('menuItem', () => {\n const commandStore = useCommandStore()\n const menuItems = ref([])\n\n const registerMenuGroup = (path: string[], items: MenuItem[]) => {\n let currentLevel = menuItems.value\n\n // Traverse the path, creating nodes if necessary\n for (let i = 0; i < path.length; i++) {\n const segment = path[i]\n let found = currentLevel.find((item) => item.label === segment)\n\n if (!found) {\n // Create a new node if it doesn't exist\n found = {\n label: segment,\n items: []\n }\n currentLevel.push(found)\n }\n\n // Ensure the found item has an 'items' array\n if (!found.items) {\n found.items = []\n }\n\n // Move to the next level\n currentLevel = found.items\n }\n\n if (currentLevel.length > 0) {\n currentLevel.push({\n separator: true\n })\n }\n // Add the new items to the last level\n currentLevel.push(...items)\n }\n\n const registerCommands = (path: string[], commandIds: string[]) => {\n const items = commandIds\n .map((commandId) => commandStore.getCommand(commandId))\n .map(\n (command) =>\n ({\n command: () => commandStore.execute(command.id),\n label: command.menubarLabel,\n icon: command.icon,\n tooltip: command.tooltip,\n comfyCommand: command\n }) as MenuItem\n )\n registerMenuGroup(path, items)\n }\n\n const loadExtensionMenuCommands = (extension: ComfyExtension) => {\n if (!extension.menuCommands) {\n return\n }\n\n const extensionCommandIds = new Set(\n extension.commands?.map((command) => command.id) ?? []\n )\n extension.menuCommands.forEach((menuCommand) => {\n const commands = menuCommand.commands.filter((command) =>\n extensionCommandIds.has(command)\n )\n if (commands.length) {\n registerCommands(menuCommand.path, commands)\n }\n })\n }\n\n const registerCoreMenuCommands = () => {\n for (const [path, commands] of CORE_MENU_COMMANDS) {\n registerCommands(path, commands)\n }\n }\n\n return {\n menuItems,\n registerMenuGroup,\n registerCommands,\n loadExtensionMenuCommands,\n registerCoreMenuCommands\n }\n})\n","import { ref, computed } from 'vue'\nimport { defineStore } from 'pinia'\nimport { api } from '@/scripts/api'\nimport { ComfyWorkflow } from './workflowStore'\nimport type { ComfyNode, ComfyWorkflowJSON } from '@/types/comfyWorkflow'\nimport type {\n ExecutedWsMessage,\n ExecutingWsMessage,\n ExecutionCachedWsMessage,\n ExecutionStartWsMessage,\n ProgressWsMessage,\n StatusWsMessage\n} from '@/types/apiTypes'\n\nexport interface QueuedPrompt {\n nodes: Record\n workflow?: ComfyWorkflow\n}\n\nexport const useExecutionStore = defineStore('execution', () => {\n const clientId = ref(null)\n const activePromptId = ref(null)\n const queuedPrompts = ref>({})\n const executingNodeId = ref(null)\n const executingNode = computed(() => {\n if (!executingNodeId.value) return null\n\n const workflow: ComfyWorkflow | undefined = activePrompt.value?.workflow\n if (!workflow) return null\n\n const canvasState: ComfyWorkflowJSON | null =\n workflow.changeTracker?.activeState ?? null\n if (!canvasState) return null\n\n return (\n canvasState.nodes.find(\n (n: ComfyNode) => String(n.id) === executingNodeId.value\n ) ?? null\n )\n })\n\n // This is the progress of the currently executing node, if any\n const _executingNodeProgress = ref(null)\n const executingNodeProgress = computed(() =>\n _executingNodeProgress.value\n ? Math.round(\n (_executingNodeProgress.value.value /\n _executingNodeProgress.value.max) *\n 100\n )\n : null\n )\n\n const activePrompt = computed(\n () => queuedPrompts.value[activePromptId.value ?? '']\n )\n\n const totalNodesToExecute = computed(() => {\n if (!activePrompt.value) return 0\n return Object.values(activePrompt.value.nodes).length\n })\n\n const isIdle = computed(() => !activePromptId.value)\n\n const nodesExecuted = computed(() => {\n if (!activePrompt.value) return 0\n return Object.values(activePrompt.value.nodes).filter(Boolean).length\n })\n\n const executionProgress = computed(() => {\n if (!activePrompt.value) return 0\n const total = totalNodesToExecute.value\n const done = nodesExecuted.value\n return Math.round((done / total) * 100)\n })\n\n function bindExecutionEvents() {\n api.addEventListener(\n 'execution_start',\n handleExecutionStart as EventListener\n )\n api.addEventListener(\n 'execution_cached',\n handleExecutionCached as EventListener\n )\n api.addEventListener('executed', handleExecuted as EventListener)\n api.addEventListener('executing', handleExecuting as EventListener)\n api.addEventListener('progress', handleProgress as EventListener)\n api.addEventListener('status', handleStatus as EventListener)\n }\n\n function unbindExecutionEvents() {\n api.removeEventListener(\n 'execution_start',\n handleExecutionStart as EventListener\n )\n api.removeEventListener(\n 'execution_cached',\n handleExecutionCached as EventListener\n )\n api.removeEventListener('executed', handleExecuted as EventListener)\n api.removeEventListener('executing', handleExecuting as EventListener)\n api.removeEventListener('progress', handleProgress as EventListener)\n api.removeEventListener('status', handleStatus as EventListener)\n }\n\n function handleExecutionStart(e: CustomEvent) {\n activePromptId.value = e.detail.prompt_id\n queuedPrompts.value[activePromptId.value] ??= { nodes: {} }\n }\n\n function handleExecutionCached(e: CustomEvent) {\n if (!activePrompt.value) return\n for (const n of e.detail.nodes) {\n activePrompt.value.nodes[n] = true\n }\n }\n\n function handleExecuted(e: CustomEvent) {\n if (!activePrompt.value) return\n activePrompt.value.nodes[e.detail.node] = true\n }\n\n function handleExecuting(e: CustomEvent) {\n // Clear the current node progress when a new node starts executing\n _executingNodeProgress.value = null\n\n if (!activePrompt.value) return\n\n if (executingNodeId.value && activePrompt.value) {\n // Seems sometimes nodes that are cached fire executing but not executed\n activePrompt.value.nodes[executingNodeId.value] = true\n }\n executingNodeId.value = e.detail ? String(e.detail) : null\n if (!executingNodeId.value) {\n if (activePromptId.value) {\n delete queuedPrompts.value[activePromptId.value]\n }\n activePromptId.value = null\n }\n }\n\n function handleProgress(e: CustomEvent) {\n _executingNodeProgress.value = e.detail\n }\n\n function handleStatus(e: CustomEvent) {\n if (api.clientId) {\n clientId.value = api.clientId\n\n // Once we've received the clientId we no longer need to listen\n api.removeEventListener('status', handleStatus as EventListener)\n }\n }\n\n function storePrompt({\n nodes,\n id,\n workflow\n }: {\n nodes: string[]\n id: string\n workflow: ComfyWorkflow\n }) {\n queuedPrompts.value[id] ??= { nodes: {} }\n const queuedPrompt = queuedPrompts.value[id]\n queuedPrompt.nodes = {\n ...nodes.reduce((p: Record, n) => {\n p[n] = false\n return p\n }, {}),\n ...queuedPrompt.nodes\n }\n queuedPrompt.workflow = workflow\n\n console.debug(\n `queued task ${id} with ${Object.values(queuedPrompt.nodes).length} nodes`\n )\n }\n\n return {\n isIdle,\n clientId,\n activePromptId,\n queuedPrompts,\n executingNodeId,\n activePrompt,\n totalNodesToExecute,\n nodesExecuted,\n executionProgress,\n executingNode,\n executingNodeProgress,\n bindExecutionEvents,\n unbindExecutionEvents,\n storePrompt\n }\n})\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get(v);\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, notNullish, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, computedWithControl, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, tryOnBeforeUnmount, identity, isDef, whenever, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, isVue2, readonly, reactive, nextTick, markRaw, unref, getCurrentScope, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n let startTimestamp;\n let hasLongPressed = false;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n startTimestamp = void 0;\n hasLongPressed = false;\n }\n function onRelease(ev) {\n var _a2, _b2, _c;\n const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n clear();\n if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n return;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - _posStart.x;\n const dy = ev.y - _posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n startTimestamp = ev.timeStamp;\n timeout = setTimeout(\n () => {\n hasLongPressed = true;\n handler(ev);\n },\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n if (!isFocusedElementEditable() && isTypedCharValid(event)) {\n callback(event);\n }\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, isVue2 ? void 0 : instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true,\n triggerOnRemoval = false\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = ref();\n const trigger = () => {\n activeElement.value = getDeepActiveElement();\n };\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n trigger();\n }, true);\n useEventListener(window, \"focus\", trigger, true);\n }\n if (triggerOnRemoval) {\n useMutationObserver(document, (mutations) => {\n mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => {\n if (node === activeElement.value)\n trigger();\n });\n }, {\n childList: true,\n subtree: true\n });\n }\n trigger();\n return activeElement;\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp;\n const delta = timestamp - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp;\n fn({ delta, timestamp });\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n if (!animate.value)\n update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n if (el)\n update();\n });\n watch(() => keyframes, (value) => {\n if (animate.value)\n update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => update(true), false);\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n if (!animate.value)\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n useEventListener(animate, \"finish\", () => {\n var _a;\n if (commitStyles)\n (_a = animate.value) == null ? void 0 : _a.commitStyles();\n });\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n if (activeIndex.value === tasks.length - 1)\n onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetifyV2 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904\n};\nconst breakpointsVuetifyV3 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n};\nconst breakpointsVuetify = breakpointsVuetifyV2;\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[toValue(k)]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && isAllowed(permissionWrite.value))\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n function isAllowed(status) {\n return status === \"granted\" || status === \"prompt\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n if (storage instanceof Storage)\n useEventListener(window, \"storage\", update);\n else\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window && !(storage instanceof Storage)) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue,\n storageArea: storage\n }\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n const classesToAdd = /* @__PURE__ */ new Set();\n const classesToRemove = /* @__PURE__ */ new Set();\n let attributeToChange = null;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n classesToAdd.add(v);\n else\n classesToRemove.add(v);\n });\n } else {\n attributeToChange = { key: attribute2, value };\n }\n if (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n style.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n window.document.head.appendChild(style);\n }\n for (const c of classesToAdd) {\n el.classList.add(c);\n }\n for (const c of classesToRemove) {\n el.classList.remove(c);\n }\n if (attributeToChange) {\n el.setAttribute(attributeToChange.key, attributeToChange.value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue, observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window && key) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n (_, old) => {\n if (old[0] && old[1] && window)\n window.getComputedStyle(old[0]).removeProperty(old[1]);\n updateCssVar();\n },\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n const raw_prop = toValue(prop);\n if (((_a = elRef.value) == null ? void 0 : _a.style) && raw_prop) {\n if (val == null)\n elRef.value.style.removeProperty(raw_prop);\n else\n elRef.value.style.setProperty(raw_prop, val);\n }\n }\n );\n return variable;\n}\n\nfunction useCurrentElement(rootComponent) {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev,\n go: set\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n var _a2;\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener(\"ended\", stop));\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target,\n buttons = [0]\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!toValue(buttons).includes(e.button))\n return;\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const _targets = toValue(target);\n return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n });\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els) {\n if (_el)\n observer.observe(_el, observerOptions);\n }\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true,\n updateTiming = \"sync\"\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function recalculate() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n function update() {\n if (updateTiming === \"sync\")\n recalculate();\n else if (updateTiming === \"next-frame\")\n requestAnimationFrame(() => recalculate());\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const rect = $elem.getBoundingClientRect();\n width.value = rect.width;\n height.value = rect.height;\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction resolveNestedOptions$1(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const urlRef = toRef(url);\n const lastEventId = shallowRef(null);\n let explicitlyClosed = false;\n let retried = 0;\n const {\n withCredentials = false,\n immediate = true\n } = options;\n const close = () => {\n if (isClient && eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n explicitlyClosed = true;\n }\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const es = new EventSource(urlRef.value, { withCredentials });\n status.value = \"CONNECTING\";\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {\n es.close();\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions$1(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n lastEventId.value = e.lastEventId;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n };\n const open = () => {\n if (!isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n tryOnScopeDispose(close);\n return {\n eventSource,\n event,\n data,\n status,\n error,\n open,\n close,\n lastEventId\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n return reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries(headers.entries());\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished: readonly(isFinished),\n isFetching: readonly(isFetching),\n statusCode,\n response,\n error,\n data,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input && input.value) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n await updateFile();\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false, preventScroll = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll });\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n index: gamepad.index,\n connected: gamepad.connected,\n mapping: gamepad.mapping,\n timestamp: gamepad.timestamp,\n vibrationActuator: gamepad.vibrationActuator,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n onGamepadConnected(gamepad);\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c, _d;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n if (x != null)\n internalX.value = scrollContainer.scrollLeft;\n if (y != null)\n internalY.value = scrollContainer.scrollTop;\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading,\n reset() {\n nextTick(() => checkAndLoad());\n }\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n target = toRef(target);\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n if (isPlaying)\n el.play();\n else\n el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el || !(el instanceof HTMLElement))\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const screenOrientation = reactive(useScreenOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) {\n return \"deviceOrientation\";\n }\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.gamma / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.gamma / 90;\n break;\n case \"portrait-primary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-secondary\":\n value = orientation.beta / 90;\n break;\n default:\n value = -orientation.beta / 90;\n }\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.beta / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-primary\":\n value = orientation.gamma / 90;\n break;\n case \"portrait-secondary\":\n value = -orientation.gamma / 90;\n break;\n default:\n value = orientation.gamma / 90;\n }\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock();\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n if (isIOS)\n stopTouchMoveListener == null ? void 0 : stopTouchMoveListener();\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n maxAlternatives = 1,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.maxAlternatives = maxAlternatives;\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const currentResult = event.results[event.resultIndex];\n const { transcript } = currentResult[0];\n isFinal.value = currentResult.isFinal;\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n if (utterance)\n synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorageAsync\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n var _a;\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : \"height\";\n const textareaScrollHeight = ref(1);\n const textareaOldWidth = ref(0);\n function triggerResize() {\n var _a2;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style[styleProp] = \"1px\";\n textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;\n const _styleTarget = toValue(options == null ? void 0 : options.styleTarget);\n if (_styleTarget)\n _styleTarget.style[styleProp] = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style[styleProp] = height;\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n watch(textareaScrollHeight, () => {\n var _a2;\n return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options);\n });\n useResizeObserver(textarea, ([{ contentRect }]) => {\n if (textareaOldWidth.value === contentRect.width)\n return;\n textareaOldWidth.value = contentRect.width;\n triggerResize();\n });\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n stop();\n });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n watch([size.width, size.height, list, containerRef], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n const requestedType = ref(false);\n const sentinel = shallowRef(null);\n const documentVisibility = useDocumentVisibility({ document });\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = computed(() => !!sentinel.value && documentVisibility.value === \"visible\");\n if (isSupported.value) {\n useEventListener(sentinel, \"release\", () => {\n var _a, _b;\n requestedType.value = (_b = (_a = sentinel.value) == null ? void 0 : _a.type) != null ? _b : false;\n });\n whenever(\n () => documentVisibility.value === \"visible\" && (document == null ? void 0 : document.visibilityState) === \"visible\" && requestedType.value,\n (type) => {\n requestedType.value = false;\n forceRequest(type);\n }\n );\n }\n async function forceRequest(type) {\n var _a;\n await ((_a = sentinel.value) == null ? void 0 : _a.release());\n sentinel.value = isSupported.value ? await navigator.wakeLock.request(type) : null;\n }\n async function request(type) {\n if (documentVisibility.value === \"visible\")\n await forceRequest(type);\n else\n requestedType.value = type;\n }\n async function release() {\n requestedType.value = false;\n const s = sentinel.value;\n sentinel.value = null;\n await (s == null ? void 0 : s.release());\n }\n return {\n sentinel,\n isSupported,\n isActive,\n request,\n forceRequest,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => {\n if (!window || !(\"Notification\" in window))\n return false;\n try {\n new Notification(\"\");\n } catch (e) {\n return false;\n }\n return true;\n });\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n wsRef.value = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE,\n responseMessage = message\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === responseMessage)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n open();\n watch(urlRef, open);\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps, localDeps) {\n if (deps.length === 0 && localDeps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n const depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n const str = fn.toString();\n if (str.trim().startsWith(\"function\")) {\n return str;\n } else {\n const name = fn.name;\n return `const ${name} = ${str}`;\n }\n }).join(\";\");\n const importString = `importScripts(${depsString});`;\n return `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\n\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n localDependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n var _a;\n promise.value = {\n resolve,\n reject\n };\n (_a = worker.value) == null ? void 0 : _a.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true,\n type = \"inner\"\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (type === \"outer\") {\n width.value = window.outerWidth;\n height.value = window.outerHeight;\n } else if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.FitAddon=t():e.FitAddon=t()}(self,(()=>(()=>{\"use strict\";var e={};return(()=>{var t=e;Object.defineProperty(t,\"__esModule\",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(e){this._terminal=e}dispose(){}fit(){const e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;const t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal)return;if(!this._terminal.element||!this._terminal.element.parentElement)return;const e=this._terminal._core,t=e._renderService.dimensions;if(0===t.css.cell.width||0===t.css.cell.height)return;const r=0===this._terminal.options.scrollback?0:e.viewport.scrollBarWidth,i=window.getComputedStyle(this._terminal.element.parentElement),o=parseInt(i.getPropertyValue(\"height\")),s=Math.max(0,parseInt(i.getPropertyValue(\"width\"))),n=window.getComputedStyle(this._terminal.element),l=o-(parseInt(n.getPropertyValue(\"padding-top\"))+parseInt(n.getPropertyValue(\"padding-bottom\"))),a=s-(parseInt(n.getPropertyValue(\"padding-right\"))+parseInt(n.getPropertyValue(\"padding-left\")))-r;return{cols:Math.max(2,Math.floor(a/t.css.cell.width)),rows:Math.max(1,Math.floor(l/t.css.cell.height))}}}})(),e})()));\n//# sourceMappingURL=addon-fit.js.map","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var i=t();for(var s in i)(\"object\"==typeof exports?exports:e)[s]=i[s]}}(globalThis,(()=>(()=>{\"use strict\";var e={4567:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.AccessibilityManager=void 0;const n=i(9042),o=i(9924),a=i(844),h=i(4725),c=i(2585),l=i(3656);let d=t.AccessibilityManager=class extends a.Disposable{constructor(e,t,i,s){super(),this._terminal=e,this._coreBrowserService=i,this._renderService=s,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce=\"\",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement(\"div\"),this._accessibilityContainer.classList.add(\"xterm-accessibility\"),this._rowContainer=this._coreBrowserService.mainDocument.createElement(\"div\"),this._rowContainer.setAttribute(\"role\",\"list\"),this._rowContainer.classList.add(\"xterm-accessibility-tree\"),this._rowElements=[];for(let e=0;ethis._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement(\"div\"),this._liveRegion.classList.add(\"live-region\"),this._liveRegion.setAttribute(\"aria-live\",\"assertive\"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new o.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error(\"Cannot enable accessibility before Terminal.open\");this._terminal.element.insertAdjacentElement(\"afterbegin\",this._accessibilityContainer),this.register(this._terminal.onResize((e=>this._handleResize(e.rows)))),this.register(this._terminal.onRender((e=>this._refreshRows(e.start,e.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((e=>this._handleChar(e)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(\"\\n\")))),this.register(this._terminal.onA11yTab((e=>this._handleTab(e)))),this.register(this._terminal.onKey((e=>this._handleKey(e.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this.register((0,l.addDisposableDomListener)(document,\"selectionchange\",(()=>this._handleSelectionChange()))),this.register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,a.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(e){for(let t=0;t0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,\"\\n\"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=n.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent=\"\",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){const i=this._terminal.buffer,s=i.lines.length.toString();for(let r=e;r<=t;r++){const e=i.lines.get(i.ydisp+r),t=[],n=e?.translateToString(!0,void 0,void 0,t)||\"\",o=(i.ydisp+r+1).toString(),a=this._rowElements[r];a&&(0===n.length?(a.innerText=\" \",this._rowColumns.set(a,[0,1])):(a.textContent=n,this._rowColumns.set(a,t)),a.setAttribute(\"aria-posinset\",o),a.setAttribute(\"aria-setsize\",s))}this._announceCharacters()}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce=\"\")}_handleBoundaryFocus(e,t){const i=e.target,s=this._rowElements[0===t?1:this._rowElements.length-2];if(i.getAttribute(\"aria-posinset\")===(0===t?\"1\":`${this._terminal.buffer.lines.length}`))return;if(e.relatedTarget!==s)return;let r,n;if(0===t?(r=i,n=this._rowElements.pop(),this._rowContainer.removeChild(n)):(r=this._rowElements.shift(),n=i,this._rowContainer.removeChild(r)),r.removeEventListener(\"focus\",this._topBoundaryFocusListener),n.removeEventListener(\"focus\",this._bottomBoundaryFocusListener),0===t){const e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement(\"afterbegin\",e)}else{const e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(0===this._rowElements.length)return;const e=document.getSelection();if(!e)return;if(e.isCollapsed)return void(this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection());if(!e.anchorNode||!e.focusNode)return void console.error(\"anchorNode and/or focusNode are null\");let t={node:e.anchorNode,offset:e.anchorOffset},i={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(i.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===i.node&&t.offset>i.offset)&&([t,i]=[i,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;const s=this._rowElements.slice(-1)[0];if(i.node.compareDocumentPosition(s)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(i={node:s,offset:s.textContent?.length??0}),!this._rowContainer.contains(i.node))return;const r=({node:e,offset:t})=>{const i=e instanceof Text?e.parentNode:e;let s=parseInt(i?.getAttribute(\"aria-posinset\"),10)-1;if(isNaN(s))return console.warn(\"row is invalid. Race condition?\"),null;const r=this._rowColumns.get(i);if(!r)return console.warn(\"columns is null. Race condition?\"),null;let n=t=this._terminal.cols&&(++s,n=0),{row:s,column:n}},n=r(t),o=r(i);if(n&&o){if(n.row>o.row||n.row===o.row&&n.column>=o.column)throw new Error(\"invalid range\");this._terminal.select(n.column,n.row,(o.row-n.row)*this._terminal.cols-n.column+o.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener(\"focus\",this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;ee;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const e=this._coreBrowserService.mainDocument.createElement(\"div\");return e.setAttribute(\"role\",\"listitem\"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e{function i(e){return e.replace(/\\r?\\n/g,\"\\r\")}function s(e,t){return t?\"\u001b[200~\"+e+\"\u001b[201~\":e}function r(e,t,r,n){e=s(e=i(e),r.decPrivateModes.bracketedPasteMode&&!0!==n.rawOptions.ignoreBracketedPasteMode),r.triggerDataEvent(e,!0),t.value=\"\"}function n(e,t,i){const s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width=\"20px\",t.style.height=\"20px\",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex=\"1000\",t.focus()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=i,t.bracketTextForPaste=s,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData(\"text/plain\",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,i,s){e.stopPropagation(),e.clipboardData&&r(e.clipboardData.getData(\"text/plain\"),t,i,s)},t.paste=r,t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,i,s,r){n(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}},7239:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ColorContrastCache=void 0;const s=i(1505);t.ColorContrastCache=class{constructor(){this._color=new s.TwoKeyMap,this._css=new s.TwoKeyMap}setCss(e,t,i){this._css.set(e,t,i)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,i){this._color.set(e,t,i)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}}},3656:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},3551:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.Linkifier=void 0;const n=i(3656),o=i(8460),a=i(844),h=i(2585),c=i(4725);let l=t.Linkifier=class extends a.Disposable{get currentLink(){return this._currentLink}constructor(e,t,i,s,r){super(),this._element=e,this._mouseService=t,this._renderService=i,this._bufferService=s,this._linkProviderService=r,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new o.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new o.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,a.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,a.toDisposable)((()=>{this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this.register((0,n.addDisposableDomListener)(this._element,\"mouseleave\",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,n.addDisposableDomListener)(this._element,\"mousemove\",this._handleMouseMove.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,\"mousedown\",this._handleMouseDown.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,\"mouseup\",this._handleMouseUp.bind(this)))}_handleMouseMove(e){this._lastMouseEvent=e;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;const i=e.composedPath();for(let e=0;e{e?.forEach((e=>{e.link.dispose&&e.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=e.y);let i=!1;for(const[s,r]of this._linkProviderService.linkProviders.entries())if(t){const t=this._activeProviderReplies?.get(s);t&&(i=this._checkLinkProviderResult(s,e,i))}else r.provideLinks(e.y,(t=>{if(this._isMouseOut)return;const r=t?.map((e=>({link:e})));this._activeProviderReplies?.set(s,r),i=this._checkLinkProviderResult(s,e,i),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)}))}_removeIntersectingLinks(e,t){const i=new Set;for(let s=0;se?this._bufferService.cols:s.link.range.end.x;for(let e=n;e<=o;e++){if(i.has(e)){r.splice(t--,1);break}i.add(e)}}}}_checkLinkProviderResult(e,t,i){if(!this._activeProviderReplies)return i;const s=this._activeProviderReplies.get(e);let r=!1;for(let t=0;tthis._linkAtPosition(e.link,t)));e&&(i=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!i)for(let e=0;ethis._linkAtPosition(e.link,t)));if(s){i=!0,this._handleNewLink(s);break}}return i}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){this._currentLink&&this._lastMouseEvent&&(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,a.disposeArray)(this._linkCacheDisposables))}_handleNewLink(e){if(!this._lastMouseEvent)return;const t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:void 0===e.link.decorations||e.link.decorations.underline,pointerCursor:void 0===e.link.decorations||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle(\"xterm-cursor-pointer\",e))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:t=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((e=>{if(!this._currentLink)return;const t=0===e.start?0:e.start+1+this._bufferService.buffer.ydisp,i=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(t,i),this._lastMouseEvent)){const e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}}))))}_linkHover(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add(\"xterm-cursor-pointer\")),t.hover&&t.hover(i,t.text)}_fireUnderlineEvent(e,t){const i=e.range,s=this._bufferService.buffer.ydisp,r=this._createLinkUnderlineEvent(i.start.x-1,i.start.y-s-1,i.end.x,i.end.y-s-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(r)}_linkLeave(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove(\"xterm-cursor-pointer\")),t.leave&&t.leave(i,t.text)}_linkAtPosition(e,t){const i=e.range.start.y*this._bufferService.cols+e.range.start.x,s=e.range.end.y*this._bufferService.cols+e.range.end.x,r=t.y*this._bufferService.cols+t.x;return i<=r&&r<=s}_positionFromMouseEvent(e,t,i){const s=i.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(s)return{x:s[0],y:s[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,i,s,r){return{x1:e,y1:t,x2:i,y2:s,cols:this._bufferService.cols,fg:r}}};t.Linkifier=l=s([r(1,c.IMouseService),r(2,c.IRenderService),r(3,h.IBufferService),r(4,c.ILinkProviderService)],l)},9042:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel=\"Terminal input\",t.tooMuchOutput=\"Too much output to announce, navigate to rows manually to read\"},3730:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscLinkProvider=void 0;const n=i(511),o=i(2585);let a=t.OscLinkProvider=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){const i=this._bufferService.buffer.lines.get(e-1);if(!i)return void t(void 0);const s=[],r=this._optionsService.rawOptions.linkHandler,o=new n.CellData,a=i.getTrimmedLength();let c=-1,l=-1,d=!1;for(let t=0;tr?r.activate(e,t,n):h(0,t),hover:(e,t)=>r?.hover?.(e,t,n),leave:(e,t)=>r?.leave?.(e,t,n)})}d=!1,o.hasExtendedAttrs()&&o.extended.urlId?(l=t,c=o.extended.urlId):(l=-1,c=-1)}}t(s)}};function h(e,t){if(confirm(`Do you want to navigate to ${t}?\\n\\nWARNING: This link could potentially be dangerous`)){const e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(\"Opening link blocked as opener could not be cleared\")}}t.OscLinkProvider=a=s([r(0,o.IBufferService),r(1,o.IOptionsService),r(2,o.IOscLinkService)],a)},6193:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}}},3236:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Terminal=void 0;const s=i(3614),r=i(3656),n=i(3551),o=i(9042),a=i(3730),h=i(1680),c=i(3107),l=i(5744),d=i(2950),_=i(1296),u=i(428),f=i(4269),v=i(5114),p=i(8934),g=i(3230),m=i(9312),S=i(4725),C=i(6731),b=i(8055),w=i(8969),y=i(8460),E=i(844),k=i(6114),L=i(8437),D=i(2584),R=i(7399),x=i(5941),A=i(9074),B=i(2585),T=i(5435),M=i(4567),O=i(779);class P extends w.CoreTerminal{get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(e={}){super(e),this.browser=k,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new E.MutableDisposable),this._onCursorMove=this.register(new y.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new y.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new y.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new y.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new y.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new y.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new y.EventEmitter),this._onBlur=this.register(new y.EventEmitter),this._onA11yCharEmitter=this.register(new y.EventEmitter),this._onA11yTabEmitter=this.register(new y.EventEmitter),this._onWillOpen=this.register(new y.EventEmitter),this._setup(),this._decorationService=this._instantiationService.createInstance(A.DecorationService),this._instantiationService.setService(B.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(O.LinkProviderService),this._instantiationService.setService(S.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(a.OscLinkProvider)),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((e,t)=>this.refresh(e,t)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((e=>this._reportWindowsOptions(e)))),this.register(this._inputHandler.onColor((e=>this._handleColorEvent(e)))),this.register((0,y.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,y.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((e=>this._afterResize(e.cols,e.rows)))),this.register((0,E.toDisposable)((()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)})))}_handleColorEvent(e){if(this._themeService)for(const t of e){let e,i=\"\";switch(t.index){case 256:e=\"foreground\",i=\"10\";break;case 257:e=\"background\",i=\"11\";break;case 258:e=\"cursor\",i=\"12\";break;default:e=\"ansi\",i=\"4;\"+t.index}switch(t.type){case 0:const s=b.color.toColorRGB(\"ansi\"===e?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${D.C0.ESC}]${i};${(0,x.toRgbString)(s)}${D.C1_ESCAPED.ST}`);break;case 1:if(\"ansi\"===e)this._themeService.modifyColors((e=>e.ansi[t.index]=b.channels.toColor(...t.color)));else{const i=e;this._themeService.modifyColors((e=>e[i]=b.channels.toColor(...t.color)))}break;case 2:this._themeService.restoreColor(t.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+\"[I\"),this.element.classList.add(\"focus\"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value=\"\",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+\"[O\"),this.element.classList.remove(\"focus\"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;const i=Math.min(this.buffer.x,this.cols-1),s=this._renderService.dimensions.css.cell.height,r=t.getWidth(i),n=this._renderService.dimensions.css.cell.width*r,o=this.buffer.y*this._renderService.dimensions.css.cell.height,a=i*this._renderService.dimensions.css.cell.width;this.textarea.style.left=a+\"px\",this.textarea.style.top=o+\"px\",this.textarea.style.width=n+\"px\",this.textarea.style.height=s+\"px\",this.textarea.style.lineHeight=s+\"px\",this.textarea.style.zIndex=\"-5\"}_initGlobal(){this._bindKeys(),this.register((0,r.addDisposableDomListener)(this.element,\"copy\",(e=>{this.hasSelection()&&(0,s.copyHandler)(e,this._selectionService)})));const e=e=>(0,s.handlePasteEvent)(e,this.textarea,this.coreService,this.optionsService);this.register((0,r.addDisposableDomListener)(this.textarea,\"paste\",e)),this.register((0,r.addDisposableDomListener)(this.element,\"paste\",e)),k.isFirefox?this.register((0,r.addDisposableDomListener)(this.element,\"mousedown\",(e=>{2===e.button&&(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,r.addDisposableDomListener)(this.element,\"contextmenu\",(e=>{(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),k.isLinux&&this.register((0,r.addDisposableDomListener)(this.element,\"auxclick\",(e=>{1===e.button&&(0,s.moveTextAreaUnderMouseCursor)(e,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,r.addDisposableDomListener)(this.textarea,\"keyup\",(e=>this._keyUp(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,\"keydown\",(e=>this._keyDown(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,\"keypress\",(e=>this._keyPress(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,\"compositionstart\",(()=>this._compositionHelper.compositionstart()))),this.register((0,r.addDisposableDomListener)(this.textarea,\"compositionupdate\",(e=>this._compositionHelper.compositionupdate(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,\"compositionend\",(()=>this._compositionHelper.compositionend()))),this.register((0,r.addDisposableDomListener)(this.textarea,\"input\",(e=>this._inputEvent(e)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(e){if(!e)throw new Error(\"Terminal requires a parent element.\");if(e.isConnected||this._logService.debug(\"Terminal.open was called on an element that was not attached to the DOM\"),this.element?.ownerDocument.defaultView&&this._coreBrowserService)return void(this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView));this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement(\"div\"),this.element.dir=\"ltr\",this.element.classList.add(\"terminal\"),this.element.classList.add(\"xterm\"),e.appendChild(this.element);const t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement(\"div\"),this._viewportElement.classList.add(\"xterm-viewport\"),t.appendChild(this._viewportElement),this._viewportScrollArea=this._document.createElement(\"div\"),this._viewportScrollArea.classList.add(\"xterm-scroll-area\"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=this._document.createElement(\"div\"),this.screenElement.classList.add(\"xterm-screen\"),this.register((0,r.addDisposableDomListener)(this.screenElement,\"mousemove\",(e=>this.updateCursorStyle(e)))),this._helperContainer=this._document.createElement(\"div\"),this._helperContainer.classList.add(\"xterm-helpers\"),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement),this.textarea=this._document.createElement(\"textarea\"),this.textarea.classList.add(\"xterm-helper-textarea\"),this.textarea.setAttribute(\"aria-label\",o.promptLabel),k.isChromeOS||this.textarea.setAttribute(\"aria-multiline\",\"false\"),this.textarea.setAttribute(\"autocorrect\",\"off\"),this.textarea.setAttribute(\"autocapitalize\",\"off\"),this.textarea.setAttribute(\"spellcheck\",\"false\"),this.textarea.tabIndex=0,this._coreBrowserService=this.register(this._instantiationService.createInstance(v.CoreBrowserService,this.textarea,e.ownerDocument.defaultView??window,this._document??\"undefined\"!=typeof window?window.document:null)),this._instantiationService.setService(S.ICoreBrowserService,this._coreBrowserService),this.register((0,r.addDisposableDomListener)(this.textarea,\"focus\",(e=>this._handleTextAreaFocus(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,\"blur\",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(u.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(S.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(C.ThemeService),this._instantiationService.setService(S.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(f.CharacterJoinerService),this._instantiationService.setService(S.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(g.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(S.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((e=>this._onRender.fire(e)))),this.onResize((e=>this._renderService.resize(e.cols,e.rows))),this._compositionView=this._document.createElement(\"div\"),this._compositionView.classList.add(\"composition-view\"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(p.MouseService),this._instantiationService.setService(S.IMouseService,this._mouseService),this.linkifier=this.register(this._instantiationService.createInstance(n.Linkifier,this.screenElement)),this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this.viewport=this._instantiationService.createInstance(h.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent,1))),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.handleBlur()))),this.register(this.onFocus((()=>this._renderService.handleFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(m.SelectionService,this.element,this.screenElement,this.linkifier)),this._instantiationService.setService(S.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((e=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,r.addDisposableDomListener)(this._viewportElement,\"scroll\",(()=>this._selectionService.refresh()))),this.register(this._instantiationService.createInstance(c.BufferDecorationRenderer,this.screenElement)),this.register((0,r.addDisposableDomListener)(this.element,\"mousedown\",(e=>this._selectionService.handleMouseDown(e)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add(\"enable-mouse-events\")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange(\"screenReaderMode\",(e=>this._handleScreenReaderModeOptionChange(e)))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange(\"overviewRulerWidth\",(e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(_.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){const e=this,t=this.element;function i(t){const i=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!i)return!1;let s,r;switch(t.overrideType||t.type){case\"mousemove\":r=32,void 0===t.buttons?(s=3,void 0!==t.button&&(s=t.button<3?t.button:3)):s=1&t.buttons?0:4&t.buttons?1:2&t.buttons?2:3;break;case\"mouseup\":r=0,s=t.button<3?t.button:3;break;case\"mousedown\":r=1,s=t.button<3?t.button:3;break;case\"wheel\":if(e._customWheelEventHandler&&!1===e._customWheelEventHandler(t))return!1;if(0===e.viewport.getLinesScrolled(t))return!1;r=t.deltaY<0?0:1,s=4;break;default:return!1}return!(void 0===r||void 0===s||s>4)&&e.coreMouseService.triggerMouseEvent({col:i.col,row:i.row,x:i.x,y:i.y,button:s,action:r,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}const s={mouseup:null,wheel:null,mousedrag:null,mousemove:null},n={mouseup:e=>(i(e),e.buttons||(this._document.removeEventListener(\"mouseup\",s.mouseup),s.mousedrag&&this._document.removeEventListener(\"mousemove\",s.mousedrag)),this.cancel(e)),wheel:e=>(i(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&i(e)},mousemove:e=>{e.buttons||i(e)}};this.register(this.coreMouseService.onProtocolChange((e=>{e?(\"debug\"===this.optionsService.rawOptions.logLevel&&this._logService.debug(\"Binding to mouse events:\",this.coreMouseService.explainEvents(e)),this.element.classList.add(\"enable-mouse-events\"),this._selectionService.disable()):(this._logService.debug(\"Unbinding from mouse events.\"),this.element.classList.remove(\"enable-mouse-events\"),this._selectionService.enable()),8&e?s.mousemove||(t.addEventListener(\"mousemove\",n.mousemove),s.mousemove=n.mousemove):(t.removeEventListener(\"mousemove\",s.mousemove),s.mousemove=null),16&e?s.wheel||(t.addEventListener(\"wheel\",n.wheel,{passive:!1}),s.wheel=n.wheel):(t.removeEventListener(\"wheel\",s.wheel),s.wheel=null),2&e?s.mouseup||(s.mouseup=n.mouseup):(this._document.removeEventListener(\"mouseup\",s.mouseup),s.mouseup=null),4&e?s.mousedrag||(s.mousedrag=n.mousedrag):(this._document.removeEventListener(\"mousemove\",s.mousedrag),s.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,r.addDisposableDomListener)(t,\"mousedown\",(e=>{if(e.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(e))return i(e),s.mouseup&&this._document.addEventListener(\"mouseup\",s.mouseup),s.mousedrag&&this._document.addEventListener(\"mousemove\",s.mousedrag),this.cancel(e)}))),this.register((0,r.addDisposableDomListener)(t,\"wheel\",(e=>{if(!s.wheel){if(this._customWheelEventHandler&&!1===this._customWheelEventHandler(e))return!1;if(!this.buffer.hasScrollback){const t=this.viewport.getLinesScrolled(e);if(0===t)return;const i=D.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?\"O\":\"[\")+(e.deltaY<0?\"A\":\"B\");let s=\"\";for(let e=0;e{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(e),this.cancel(e)}),{passive:!0})),this.register((0,r.addDisposableDomListener)(t,\"touchmove\",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(e)?void 0:this.cancel(e)}),{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add(\"column-select\"):this.element.classList.remove(\"column-select\")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t,i=0){1===i?(super.scrollLines(e,t,i),this.refresh(0,this.rows-1)):this.viewport?.scrollLines(e)}paste(e){(0,s.paste)(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");const t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(e,t,i){this._selectionService.setSelection(e,t,i)}getSelection(){return this._selectionService?this._selectionService.selectionText:\"\"}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;const t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;t||\"Dead\"!==e.key&&\"AltGraph\"!==e.key||(this._unprocessedDeadKey=!0);const i=(0,R.evaluateKeyboardEvent)(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===i.type||2===i.type){const t=this.rows-1;return this.scrollLines(2===i.type?-t:t),this.cancel(e,!0)}return 1===i.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(i.cancel&&this.cancel(e,!0),!i.key||!!(e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&1===e.key.length&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(i.key!==D.C0.ETX&&i.key!==D.C0.CR||(this.textarea.value=\"\"),this._onKey.fire({key:i.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(i.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey?this.cancel(e,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(e,t){const i=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState(\"AltGraph\");return\"keypress\"===t.type?i:i&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)||(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(e){if(e.data&&\"insertText\"===e.inputType&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){e!==this.cols||t!==this.rows?super.resize(e,t):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(e,t){this._charSizeService?.measure(),this.viewport?.syncScrollArea(!0)}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(e,t=1e3){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t;const s=Date.now();if(s-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=s,this._innerRefresh();else if(!this._additionalRefreshRequested){const e=s-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),t)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}}},1680:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.Viewport=void 0;const n=i(3656),o=i(4725),a=i(8460),h=i(844),c=i(2585);let l=t.Viewport=class extends h.Disposable{constructor(e,t,i,s,r,o,h,c){super(),this._viewportElement=e,this._scrollArea=t,this._bufferService=i,this._optionsService=s,this._charSizeService=r,this._renderService=o,this._coreBrowserService=h,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this._onRequestScrollLines=this.register(new a.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,n.addDisposableDomListener)(this._viewportElement,\"scroll\",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((e=>this._renderDimensions=e))),this._handleThemeChange(c.colors),this.register(c.onChangeColors((e=>this._handleThemeChange(e)))),this.register(this._optionsService.onSpecificOptionChange(\"scrollback\",(()=>this.syncScrollArea()))),setTimeout((()=>this.syncScrollArea()))}_handleThemeChange(e){this._viewportElement.style.backgroundColor=e.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame((()=>this.syncScrollArea()))}_refresh(e){if(e)return this._innerRefresh(),void(null!==this._refreshAnimationFrame&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderDimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderDimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;const e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderDimensions.css.canvas.height);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+\"px\")}const e=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=e),this._refreshAnimationFrame=null}syncScrollArea(e=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(e);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(e)}_handleScroll(e){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});const t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:t,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||-1===this._smoothScrollState.origin||-1===this._smoothScrollState.target)return;const e=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(e*(this._smoothScrollState.target-this._smoothScrollState.origin)),e<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(e,t){const i=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&i0&&(i=e),s=\"\"}}return{bufferElements:r,cursorElement:i}}getLinesScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t}_applyScrollModifier(e,t){const i=this._optionsService.rawOptions.fastScrollModifier;return\"alt\"===i&&t.altKey||\"ctrl\"===i&&t.ctrlKey||\"shift\"===i&&t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(e){this._lastTouchY=e.touches[0].pageY}handleTouchMove(e){const t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}};t.Viewport=l=s([r(2,c.IBufferService),r(3,c.IOptionsService),r(4,o.ICharSizeService),r(5,o.IRenderService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],l)},3107:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferDecorationRenderer=void 0;const n=i(4725),o=i(844),a=i(2585);let h=t.BufferDecorationRenderer=class extends o.Disposable{constructor(e,t,i,s,r){super(),this._screenElement=e,this._bufferService=t,this._coreBrowserService=i,this._decorationService=s,this._renderService=r,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement(\"div\"),this._container.classList.add(\"xterm-decoration-container\"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._doRefreshDecorations()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((e=>this._removeDecoration(e)))),this.register((0,o.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(const e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){const t=this._coreBrowserService.mainDocument.createElement(\"div\");t.classList.add(\"xterm-decoration\"),t.classList.toggle(\"xterm-decoration-top-layer\",\"top\"===e?.options?.layer),t.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,t.style.height=(e.options.height||1)*this._renderService.dimensions.css.cell.height+\"px\",t.style.top=(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+\"px\",t.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;const i=e.options.x??0;return i&&i>this._bufferService.cols&&(t.style.display=\"none\"),this._refreshXPosition(e,t),t}_refreshStyle(e){const t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display=\"none\",e.onRenderEmitter.fire(e.element));else{let i=this._decorationElements.get(e);i||(i=this._createElement(e),e.element=i,this._decorationElements.set(e,i),this._container.appendChild(i),e.onDispose((()=>{this._decorationElements.delete(e),i.remove()}))),i.style.top=t*this._renderService.dimensions.css.cell.height+\"px\",i.style.display=this._altBufferIsActive?\"none\":\"block\",e.onRenderEmitter.fire(i)}}_refreshXPosition(e,t=e.element){if(!t)return;const i=e.options.x??0;\"right\"===(e.options.anchor||\"left\")?t.style.right=i?i*this._renderService.dimensions.css.cell.width+\"px\":\"\":t.style.left=i?i*this._renderService.dimensions.css.cell.width+\"px\":\"\"}_removeDecoration(e){this._decorationElements.get(e)?.remove(),this._decorationElements.delete(e),e.dispose()}};t.BufferDecorationRenderer=h=s([r(1,a.IBufferService),r(2,n.ICoreBrowserService),r(3,a.IDecorationService),r(4,n.IRenderService)],h)},5871:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(const t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position))return void this._addLineToZone(t,e.marker.line)}if(this._zonePoolIndex=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,i){return t>=e.startBufferLine-this._linePadding[i||\"full\"]&&t<=e.endBufferLine+this._linePadding[i||\"full\"]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}}},5744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OverviewRulerRenderer=void 0;const n=i(5871),o=i(4725),a=i(844),h=i(2585),c={full:0,left:0,center:0,right:0},l={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0};let _=t.OverviewRulerRenderer=class extends a.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(e,t,i,s,r,o,h){super(),this._viewportElement=e,this._screenElement=t,this._bufferService=i,this._decorationService=s,this._renderService=r,this._optionsService=o,this._coreBrowserService=h,this._colorZoneStore=new n.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement(\"canvas\"),this._canvas.classList.add(\"xterm-decoration-overview-ruler\"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement);const c=this._canvas.getContext(\"2d\");if(!c)throw new Error(\"Ctx cannot be null\");this._ctx=c,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,a.toDisposable)((()=>{this._canvas?.remove()})))}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?\"none\":\"block\"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onSpecificOptionChange(\"overviewRulerWidth\",(()=>this._queueRefresh(!0)))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh(!0)))),this._queueRefresh(!0)}_refreshDrawConstants(){const e=Math.floor(this._canvas.width/3),t=Math.ceil(this._canvas.width/3);l.full=this._canvas.width,l.left=e,l.center=t,l.right=e,this._refreshDrawHeightConstants(),d.full=0,d.left=0,d.center=l.left,d.right=l.left+l.center}_refreshDrawHeightConstants(){c.full=Math.round(2*this._coreBrowserService.dpr);const e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowserService.dpr);c.left=t,c.center=t,c.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(const e of this._decorationService.decorations)this._colorZoneStore.addDecoration(e);this._ctx.lineWidth=1;const e=this._colorZoneStore.zones;for(const t of e)\"full\"!==t.position&&this._renderColorZone(t);for(const t of e)\"full\"===t.position&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(d[e.position||\"full\"],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-c[e.position||\"full\"]/2),l[e.position||\"full\"],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+c[e.position||\"full\"]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};t.OverviewRulerRenderer=_=s([r(2,h.IBufferService),r(3,h.IDecorationService),r(4,o.IRenderService),r(5,h.IOptionsService),r(6,o.ICoreBrowserService)],_)},2950:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CompositionHelper=void 0;const n=i(4725),o=i(2585),a=i(2584);let h=t.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(e,t,i,s,r,n){this._textarea=e,this._compositionView=t,this._bufferService=i,this._optionsService=s,this._coreService=r,this._renderService=n,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=\"\"}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent=\"\",this._dataAlreadySent=\"\",this._compositionView.classList.add(\"active\")}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(e){if(this._compositionView.classList.remove(\"active\"),this._isComposing=!1,e){const e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let t;this._isSendingComposition=!1,e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,e.end):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}}),0)}else{this._isSendingComposition=!1;const e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){const e=this._textarea.value;setTimeout((()=>{if(!this._isComposing){const t=this._textarea.value,i=t.replace(e,\"\");this._dataAlreadySent=i,t.length>e.length?this._coreService.triggerDataEvent(i,!0):t.lengththis.updateCompositionElements(!0)),0)}}};t.CompositionHelper=h=s([r(2,o.IBufferService),r(3,o.IOptionsService),r(4,o.ICoreService),r(5,n.IRenderService)],h)},9806:(e,t)=>{function i(e,t,i){const s=i.getBoundingClientRect(),r=e.getComputedStyle(i),n=parseInt(r.getPropertyValue(\"padding-left\")),o=parseInt(r.getPropertyValue(\"padding-top\"));return[t.clientX-s.left-n,t.clientY-s.top-o]}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=i,t.getCoords=function(e,t,s,r,n,o,a,h,c){if(!o)return;const l=i(e,t,s);return l?(l[0]=Math.ceil((l[0]+(c?a/2:0))/a),l[1]=Math.ceil(l[1]/h),l[0]=Math.min(Math.max(l[0],1),r+(c?1:0)),l[1]=Math.min(Math.max(l[1],1),n),l):void 0}},9504:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.moveToCellSequence=void 0;const s=i(2584);function r(e,t,i,s){const r=e-n(e,i),a=t-n(t,i),l=Math.abs(r-a)-function(e,t,i){let s=0;const r=e-n(e,i),a=t-n(t,i);for(let n=0;n=0&&et?\"A\":\"B\"}function a(e,t,i,s,r,n){let o=e,a=t,h=\"\";for(;o!==i||a!==s;)o+=r?1:-1,r&&o>n.cols-1?(h+=n.buffer.translateBufferLineToString(a,!1,e,o),o=0,e=0,a++):!r&&o<0&&(h+=n.buffer.translateBufferLineToString(a,!1,0,e+1),o=n.cols-1,e=o,a--);return h+n.buffer.translateBufferLineToString(a,!1,e,o)}function h(e,t){const i=t?\"O\":\"[\";return s.C0.ESC+i+e}function c(e,t){e=Math.floor(e);let i=\"\";for(let s=0;s0?s-n(s,o):t;const _=s,u=function(e,t,i,s,o,a){let h;return h=r(i,s,o,a).length>0?s-n(s,o):t,e=i&&he?\"D\":\"C\",c(Math.abs(o-e),h(d,s));d=l>t?\"D\":\"C\";const _=Math.abs(l-t);return c(function(e,t){return t.cols-e}(l>t?e:o,i)+(_-1)*i.cols+1+((l>t?o:e)-1),h(d,s))}},1296:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.DomRenderer=void 0;const n=i(3787),o=i(2550),a=i(2223),h=i(6171),c=i(6052),l=i(4725),d=i(8055),_=i(8460),u=i(844),f=i(2585),v=\"xterm-dom-renderer-owner-\",p=\"xterm-rows\",g=\"xterm-fg-\",m=\"xterm-bg-\",S=\"xterm-focus\",C=\"xterm-selection\";let b=1,w=t.DomRenderer=class extends u.Disposable{constructor(e,t,i,s,r,a,l,d,f,g,m,S,w){super(),this._terminal=e,this._document=t,this._element=i,this._screenElement=s,this._viewportElement=r,this._helperContainer=a,this._linkifier2=l,this._charSizeService=f,this._optionsService=g,this._bufferService=m,this._coreBrowserService=S,this._themeService=w,this._terminalClass=b++,this._rowElements=[],this._selectionRenderModel=(0,c.createSelectionRenderModel)(),this.onRequestRedraw=this.register(new _.EventEmitter).event,this._rowContainer=this._document.createElement(\"div\"),this._rowContainer.classList.add(p),this._rowContainer.style.lineHeight=\"normal\",this._rowContainer.setAttribute(\"aria-hidden\",\"true\"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement(\"div\"),this._selectionContainer.classList.add(C),this._selectionContainer.setAttribute(\"aria-hidden\",\"true\"),this.dimensions=(0,h.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._themeService.onChangeColors((e=>this._injectCss(e)))),this._injectCss(this._themeService.colors),this._rowFactory=d.createInstance(n.DomRendererRowFactory,document),this._element.classList.add(v+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((e=>this._handleLinkHover(e)))),this.register(this._linkifier2.onHideLinkUnderline((e=>this._handleLinkLeave(e)))),this.register((0,u.toDisposable)((()=>{this._element.classList.remove(v+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()}))),this._widthCache=new o.WidthCache(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){const e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(const e of this._rowElements)e.style.width=`${this.dimensions.css.canvas.width}px`,e.style.height=`${this.dimensions.css.cell.height}px`,e.style.lineHeight=`${this.dimensions.css.cell.height}px`,e.style.overflow=\"hidden\";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement(\"style\"),this._screenElement.appendChild(this._dimensionsStyleElement));const t=`${this._terminalSelector} .${p} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=this._document.createElement(\"style\"),this._screenElement.appendChild(this._themeStyleElement));let t=`${this._terminalSelector} .${p} { color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;t+=`${this._terminalSelector} .${p} .xterm-dim { color: ${d.color.multiplyOpacity(e.foreground,.5).css};}`,t+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;const i=`blink_underline_${this._terminalClass}`,s=`blink_bar_${this._terminalClass}`,r=`blink_block_${this._terminalClass}`;t+=`@keyframes ${i} { 50% { border-bottom-style: hidden; }}`,t+=`@keyframes ${s} { 50% { box-shadow: none; }}`,t+=`@keyframes ${r} { 0% { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css}; } 50% { background-color: inherit; color: ${e.cursor.css}; }}`,t+=`${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${i} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${s} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${r} 1s step-end infinite;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css};}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${e.cursor.css} !important; color: ${e.cursorAccent.css} !important;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${e.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,t+=`${this._terminalSelector} .${C} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${C} div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .${C} div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(const[i,s]of e.ansi.entries())t+=`${this._terminalSelector} .${g}${i} { color: ${s.css}; }${this._terminalSelector} .${g}${i}.xterm-dim { color: ${d.color.multiplyOpacity(s,.5).css}; }${this._terminalSelector} .${m}${i} { background-color: ${s.css}; }`;t+=`${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR} { color: ${d.color.opaque(e.background).css}; }${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${d.color.multiplyOpacity(d.color.opaque(e.background),.5).css}; }${this._terminalSelector} .${m}${a.INVERTED_DEFAULT_COLOR} { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=t}_setDefaultSpacing(){const e=this.dimensions.css.cell.width-this._widthCache.get(\"W\",!1,!1);this._rowContainer.style.letterSpacing=`${e}px`,this._rowFactory.defaultSpacing=e}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(e,t){for(let e=this._rowElements.length;e<=t;e++){const e=this._document.createElement(\"div\");this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,t){this._refreshRowElements(e,t),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(S),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(S),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(e,t,i){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(e,t,i),this.renderRows(0,this._bufferService.rows-1),!e||!t)return;this._selectionRenderModel.update(this._terminal,e,t,i);const s=this._selectionRenderModel.viewportStartRow,r=this._selectionRenderModel.viewportEndRow,n=this._selectionRenderModel.viewportCappedStartRow,o=this._selectionRenderModel.viewportCappedEndRow;if(n>=this._bufferService.rows||o<0)return;const a=this._document.createDocumentFragment();if(i){const i=e[0]>t[0];a.appendChild(this._createSelectionElement(n,i?t[0]:e[0],i?e[0]:t[0],o-n+1))}else{const i=s===n?e[0]:0,h=n===r?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(n,i,h));const c=o-n-1;if(a.appendChild(this._createSelectionElement(n+1,0,this._bufferService.cols,c)),n!==o){const e=r===o?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(a)}_createSelectionElement(e,t,i,s=1){const r=this._document.createElement(\"div\"),n=t*this.dimensions.css.cell.width;let o=this.dimensions.css.cell.width*(i-t);return n+o>this.dimensions.css.canvas.width&&(o=this.dimensions.css.canvas.width-n),r.style.height=s*this.dimensions.css.cell.height+\"px\",r.style.top=e*this.dimensions.css.cell.height+\"px\",r.style.left=`${n}px`,r.style.width=`${o}px`,r}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(const e of this._rowElements)e.replaceChildren()}renderRows(e,t){const i=this._bufferService.buffer,s=i.ybase+i.y,r=Math.min(i.x,this._bufferService.cols-1),n=this._optionsService.rawOptions.cursorBlink,o=this._optionsService.rawOptions.cursorStyle,a=this._optionsService.rawOptions.cursorInactiveStyle;for(let h=e;h<=t;h++){const e=h+i.ydisp,t=this._rowElements[h],c=i.lines.get(e);if(!t||!c)break;t.replaceChildren(...this._rowFactory.createRow(c,e,e===s,o,a,r,n,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${v}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,i,s,r,n){i<0&&(e=0),s<0&&(t=0);const o=this._bufferService.rows-1;i=Math.max(Math.min(i,o),0),s=Math.max(Math.min(s,o),0),r=Math.min(r,this._bufferService.cols);const a=this._bufferService.buffer,h=a.ybase+a.y,c=Math.min(a.x,r-1),l=this._optionsService.rawOptions.cursorBlink,d=this._optionsService.rawOptions.cursorStyle,_=this._optionsService.rawOptions.cursorInactiveStyle;for(let o=i;o<=s;++o){const u=o+a.ydisp,f=this._rowElements[o],v=a.lines.get(u);if(!f||!v)break;f.replaceChildren(...this._rowFactory.createRow(v,u,u===h,d,_,c,l,this.dimensions.css.cell.width,this._widthCache,n?o===i?e:0:-1,n?(o===s?t:r)-1:-1))}}};t.DomRenderer=w=s([r(7,f.IInstantiationService),r(8,l.ICharSizeService),r(9,f.IOptionsService),r(10,f.IBufferService),r(11,l.ICoreBrowserService),r(12,l.IThemeService)],w)},3787:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.DomRendererRowFactory=void 0;const n=i(2223),o=i(643),a=i(511),h=i(2585),c=i(8055),l=i(4725),d=i(4269),_=i(6171),u=i(3734);let f=t.DomRendererRowFactory=class{constructor(e,t,i,s,r,n,o){this._document=e,this._characterJoinerService=t,this._optionsService=i,this._coreBrowserService=s,this._coreService=r,this._decorationService=n,this._themeService=o,this._workCell=new a.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(e,t,i){this._selectionStart=e,this._selectionEnd=t,this._columnSelectMode=i}createRow(e,t,i,s,r,a,h,l,_,f,p){const g=[],m=this._characterJoinerService.getJoinedCharacters(t),S=this._themeService.colors;let C,b=e.getNoBgTrimmedLength();i&&b0&&M===m[0][0]){O=!0;const t=m.shift();I=new d.JoinedCellData(this._workCell,e.translateToString(!0,t[0],t[1]),t[1]-t[0]),P=t[1]-1,b=I.getWidth()}const H=this._isCellInSelection(M,t),F=i&&M===a,W=T&&M>=f&&M<=p;let U=!1;this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{U=!0}));let N=I.getChars()||o.WHITESPACE_CELL_CHAR;if(\" \"===N&&(I.isUnderline()||I.isOverline())&&(N=\" \"),A=b*l-_.get(N,I.isBold(),I.isItalic()),C){if(w&&(H&&x||!H&&!x&&I.bg===E)&&(H&&x&&S.selectionForeground||I.fg===k)&&I.extended.ext===L&&W===D&&A===R&&!F&&!O&&!U){I.isInvisible()?y+=o.WHITESPACE_CELL_CHAR:y+=N,w++;continue}w&&(C.textContent=y),C=this._document.createElement(\"span\"),w=0,y=\"\"}else C=this._document.createElement(\"span\");if(E=I.bg,k=I.fg,L=I.extended.ext,D=W,R=A,x=H,O&&a>=M&&a<=P&&(a=M),!this._coreService.isCursorHidden&&F&&this._coreService.isCursorInitialized)if(B.push(\"xterm-cursor\"),this._coreBrowserService.isFocused)h&&B.push(\"xterm-cursor-blink\"),B.push(\"bar\"===s?\"xterm-cursor-bar\":\"underline\"===s?\"xterm-cursor-underline\":\"xterm-cursor-block\");else if(r)switch(r){case\"outline\":B.push(\"xterm-cursor-outline\");break;case\"block\":B.push(\"xterm-cursor-block\");break;case\"bar\":B.push(\"xterm-cursor-bar\");break;case\"underline\":B.push(\"xterm-cursor-underline\")}if(I.isBold()&&B.push(\"xterm-bold\"),I.isItalic()&&B.push(\"xterm-italic\"),I.isDim()&&B.push(\"xterm-dim\"),y=I.isInvisible()?o.WHITESPACE_CELL_CHAR:I.getChars()||o.WHITESPACE_CELL_CHAR,I.isUnderline()&&(B.push(`xterm-underline-${I.extended.underlineStyle}`),\" \"===y&&(y=\" \"),!I.isUnderlineColorDefault()))if(I.isUnderlineColorRGB())C.style.textDecorationColor=`rgb(${u.AttributeData.toColorRGB(I.getUnderlineColor()).join(\",\")})`;else{let e=I.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&I.isBold()&&e<8&&(e+=8),C.style.textDecorationColor=S.ansi[e].css}I.isOverline()&&(B.push(\"xterm-overline\"),\" \"===y&&(y=\" \")),I.isStrikethrough()&&B.push(\"xterm-strikethrough\"),W&&(C.style.textDecoration=\"underline\");let $=I.getFgColor(),j=I.getFgColorMode(),z=I.getBgColor(),K=I.getBgColorMode();const q=!!I.isInverse();if(q){const e=$;$=z,z=e;const t=j;j=K,K=t}let V,G,X,J=!1;switch(this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{\"top\"!==e.options.layer&&J||(e.backgroundColorRGB&&(K=50331648,z=e.backgroundColorRGB.rgba>>8&16777215,V=e.backgroundColorRGB),e.foregroundColorRGB&&(j=50331648,$=e.foregroundColorRGB.rgba>>8&16777215,G=e.foregroundColorRGB),J=\"top\"===e.options.layer)})),!J&&H&&(V=this._coreBrowserService.isFocused?S.selectionBackgroundOpaque:S.selectionInactiveBackgroundOpaque,z=V.rgba>>8&16777215,K=50331648,J=!0,S.selectionForeground&&(j=50331648,$=S.selectionForeground.rgba>>8&16777215,G=S.selectionForeground)),J&&B.push(\"xterm-decoration-top\"),K){case 16777216:case 33554432:X=S.ansi[z],B.push(`xterm-bg-${z}`);break;case 50331648:X=c.channels.toColor(z>>16,z>>8&255,255&z),this._addStyle(C,`background-color:#${v((z>>>0).toString(16),\"0\",6)}`);break;default:q?(X=S.foreground,B.push(`xterm-bg-${n.INVERTED_DEFAULT_COLOR}`)):X=S.background}switch(V||I.isDim()&&(V=c.color.multiplyOpacity(X,.5)),j){case 16777216:case 33554432:I.isBold()&&$<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&($+=8),this._applyMinimumContrast(C,X,S.ansi[$],I,V,void 0)||B.push(`xterm-fg-${$}`);break;case 50331648:const e=c.channels.toColor($>>16&255,$>>8&255,255&$);this._applyMinimumContrast(C,X,e,I,V,G)||this._addStyle(C,`color:#${v($.toString(16),\"0\",6)}`);break;default:this._applyMinimumContrast(C,X,S.foreground,I,V,G)||q&&B.push(`xterm-fg-${n.INVERTED_DEFAULT_COLOR}`)}B.length&&(C.className=B.join(\" \"),B.length=0),F||O||U?C.textContent=y:w++,A!==this.defaultSpacing&&(C.style.letterSpacing=`${A}px`),g.push(C),M=P}return C&&w&&(C.textContent=y),g}_applyMinimumContrast(e,t,i,s,r,n){if(1===this._optionsService.rawOptions.minimumContrastRatio||(0,_.treatGlyphAsBackgroundColor)(s.getCode()))return!1;const o=this._getContrastCache(s);let a;if(r||n||(a=o.getColor(t.rgba,i.rgba)),void 0===a){const e=this._optionsService.rawOptions.minimumContrastRatio/(s.isDim()?2:1);a=c.color.ensureContrastRatio(r||t,n||i,e),o.setColor((r||t).rgba,(n||i).rgba,a??null)}return!!a&&(this._addStyle(e,`color:${a.css}`),!0)}_getContrastCache(e){return e.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(e,t){e.setAttribute(\"style\",`${e.getAttribute(\"style\")||\"\"}${t};`)}_isCellInSelection(e,t){const i=this._selectionStart,s=this._selectionEnd;return!(!i||!s)&&(this._columnSelectMode?i[0]<=s[0]?e>=i[0]&&t>=i[1]&&e=i[1]&&e>=s[0]&&t<=s[1]:t>i[1]&&t=i[0]&&e=i[0])}};function v(e,t,i){for(;e.length{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WidthCache=void 0,t.WidthCache=class{constructor(e,t){this._flat=new Float32Array(256),this._font=\"\",this._fontSize=0,this._weight=\"normal\",this._weightBold=\"bold\",this._measureElements=[],this._container=e.createElement(\"div\"),this._container.classList.add(\"xterm-width-cache-measure-container\"),this._container.setAttribute(\"aria-hidden\",\"true\"),this._container.style.whiteSpace=\"pre\",this._container.style.fontKerning=\"none\";const i=e.createElement(\"span\");i.classList.add(\"xterm-char-measure-element\");const s=e.createElement(\"span\");s.classList.add(\"xterm-char-measure-element\"),s.style.fontWeight=\"bold\";const r=e.createElement(\"span\");r.classList.add(\"xterm-char-measure-element\"),r.style.fontStyle=\"italic\";const n=e.createElement(\"span\");n.classList.add(\"xterm-char-measure-element\"),n.style.fontWeight=\"bold\",n.style.fontStyle=\"italic\",this._measureElements=[i,s,r,n],this._container.appendChild(i),this._container.appendChild(s),this._container.appendChild(r),this._container.appendChild(n),t.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(e,t,i,s){e===this._font&&t===this._fontSize&&i===this._weight&&s===this._weightBold||(this._font=e,this._fontSize=t,this._weight=i,this._weightBold=s,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${i}`,this._measureElements[1].style.fontWeight=`${s}`,this._measureElements[2].style.fontWeight=`${i}`,this._measureElements[3].style.fontWeight=`${s}`,this.clear())}get(e,t,i){let s=0;if(!t&&!i&&1===e.length&&(s=e.charCodeAt(0))<256){if(-9999!==this._flat[s])return this._flat[s];const t=this._measure(e,0);return t>0&&(this._flat[s]=t),t}let r=e;t&&(r+=\"B\"),i&&(r+=\"I\");let n=this._holey.get(r);if(void 0===n){let s=0;t&&(s|=1),i&&(s|=2),n=this._measure(e,s),n>0&&this._holey.set(r,n)}return n}_measure(e,t){const i=this._measureElements[t];return i.textContent=e.repeat(32),i.offsetWidth/32}}},2223:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?\"bottom\":\"ideographic\"},6171:(e,t)=>{function i(e){return 57508<=e&&e<=57558}function s(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}Object.defineProperty(t,\"__esModule\",{value:!0}),t.computeNextVariantOffset=t.createRenderDimensions=t.treatGlyphAsBackgroundColor=t.allowRescaling=t.isEmoji=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error(\"value must not be falsy\");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.isEmoji=s,t.allowRescaling=function(e,t,r,n){return 1===t&&r>Math.ceil(1.5*n)&&void 0!==e&&e>255&&!s(e)&&!i(e)&&!function(e){return 57344<=e&&e<=63743}(e)},t.treatGlyphAsBackgroundColor=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},t.computeNextVariantOffset=function(e,t,i=0){return(e-(2*Math.round(t)-i))%(2*Math.round(t))}},6052:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.createSelectionRenderModel=void 0;class i{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,i,s=!1){if(this.selectionStart=t,this.selectionEnd=i,!t||!i||t[0]===i[0]&&t[1]===i[1])return void this.clear();const r=e.buffers.active.ydisp,n=t[1]-r,o=i[1]-r,a=Math.max(n,0),h=Math.min(o,e.rows-1);a>=e.rows||h<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=n,this.viewportEndRow=o,this.viewportCappedStartRow=a,this.viewportCappedEndRow=h,this.startCol=t[0],this.endCol=i[0])}isCellSelected(e,t,i){return!!this.hasSelection&&(i-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&i>=this.viewportCappedStartRow&&t=this.viewportCappedStartRow&&t>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i=this.startCol&&t=this.startCol)}}t.createSelectionRenderModel=function(){return new i}},456:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?e%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){const e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])}handleTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharSizeService=void 0;const n=i(2585),o=i(8460),a=i(844);let h=t.CharSizeService=class extends a.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(e,t,i){super(),this._optionsService=i,this.width=0,this.height=0,this._onCharSizeChange=this.register(new o.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this.register(new d(this._optionsService))}catch{this._measureStrategy=this.register(new l(e,t,this._optionsService))}this.register(this._optionsService.onMultipleOptionChange([\"fontFamily\",\"fontSize\"],(()=>this.measure())))}measure(){const e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};t.CharSizeService=h=s([r(2,n.IOptionsService)],h);class c extends a.Disposable{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(e,t){void 0!==e&&e>0&&void 0!==t&&t>0&&(this._result.width=e,this._result.height=t)}}class l extends c{constructor(e,t,i){super(),this._document=e,this._parentElement=t,this._optionsService=i,this._measureElement=this._document.createElement(\"span\"),this._measureElement.classList.add(\"xterm-char-measure-element\"),this._measureElement.textContent=\"W\".repeat(32),this._measureElement.setAttribute(\"aria-hidden\",\"true\"),this._measureElement.style.whiteSpace=\"pre\",this._measureElement.style.fontKerning=\"none\",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}}class d extends c{constructor(e){super(),this._optionsService=e,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext(\"2d\");const t=this._ctx.measureText(\"W\");if(!(\"width\"in t&&\"fontBoundingBoxAscent\"in t&&\"fontBoundingBoxDescent\"in t))throw new Error(\"Required font metrics not supported\")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;const e=this._ctx.measureText(\"W\");return this._validateAndSet(e.width,e.fontBoundingBoxAscent+e.fontBoundingBoxDescent),this._result}}},4269:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;const n=i(3734),o=i(643),a=i(511),h=i(2585);class c extends n.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData=\"\",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error(\"not implemented\")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=c;let l=t.CharacterJoinerService=class e{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}register(e){const t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreBrowserService=void 0;const s=i(844),r=i(8460),n=i(3656);class o extends s.Disposable{constructor(e,t,i){super(),this._textarea=e,this._window=t,this.mainDocument=i,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=new a(this._window),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._onWindowChange=this.register(new r.EventEmitter),this.onWindowChange=this._onWindowChange.event,this.register(this.onWindowChange((e=>this._screenDprMonitor.setWindow(e)))),this.register((0,r.forwardEvent)(this._screenDprMonitor.onDprChange,this._onDprChange)),this._textarea.addEventListener(\"focus\",(()=>this._isFocused=!0)),this._textarea.addEventListener(\"blur\",(()=>this._isFocused=!1))}get window(){return this._window}set window(e){this._window!==e&&(this._window=e,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return void 0===this._cachedIsFocused&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}t.CoreBrowserService=o;class a extends s.Disposable{constructor(e){super(),this._parentWindow=e,this._windowResizeListener=this.register(new s.MutableDisposable),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this.register((0,s.toDisposable)((()=>this.clearListener())))}setWindow(e){this._parentWindow=e,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=(0,n.addDisposableDomListener)(this._parentWindow,\"resize\",(()=>this._setDprAndFireIfDiffers()))}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}}},779:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.LinkProviderService=void 0;const s=i(844);class r extends s.Disposable{constructor(){super(),this.linkProviders=[],this.register((0,s.toDisposable)((()=>this.linkProviders.length=0)))}registerLinkProvider(e){return this.linkProviders.push(e),{dispose:()=>{const t=this.linkProviders.indexOf(e);-1!==t&&this.linkProviders.splice(t,1)}}}}t.LinkProviderService=r},8934:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.MouseService=void 0;const n=i(4725),o=i(9806);let a=t.MouseService=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,i,s,r){return(0,o.getCoords)(window,e,t,i,s,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,r)}getMouseReportCoords(e,t){const i=(0,o.getCoordsRelativeToElement)(window,e,t);if(this._charSizeService.hasValidSize)return i[0]=Math.min(Math.max(i[0],0),this._renderService.dimensions.css.canvas.width-1),i[1]=Math.min(Math.max(i[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(i[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(i[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(i[0]),y:Math.floor(i[1])}}};t.MouseService=a=s([r(0,n.IRenderService),r(1,n.ICharSizeService)],a)},3230:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderService=void 0;const n=i(6193),o=i(4725),a=i(8460),h=i(844),c=i(7226),l=i(2585);let d=t.RenderService=class extends h.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(e,t,i,s,r,o,l,d){super(),this._rowCount=e,this._charSizeService=s,this._renderer=this.register(new h.MutableDisposable),this._pausedResizeTask=new c.DebouncedIdleTask,this._observerDisposable=this.register(new h.MutableDisposable),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new a.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new a.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new a.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new a.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new n.RenderDebouncer(((e,t)=>this._renderRows(e,t)),l),this.register(this._renderDebouncer),this.register(l.onDprChange((()=>this.handleDevicePixelRatioChange()))),this.register(o.onResize((()=>this._fullRefresh()))),this.register(o.buffers.onBufferActivate((()=>this._renderer.value?.clear()))),this.register(i.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this.register(r.onDecorationRegistered((()=>this._fullRefresh()))),this.register(r.onDecorationRemoved((()=>this._fullRefresh()))),this.register(i.onMultipleOptionChange([\"customGlyphs\",\"drawBoldTextInBrightColors\",\"letterSpacing\",\"lineHeight\",\"fontFamily\",\"fontSize\",\"fontWeight\",\"fontWeightBold\",\"minimumContrastRatio\",\"rescaleOverlappingGlyphs\"],(()=>{this.clear(),this.handleResize(o.cols,o.rows),this._fullRefresh()}))),this.register(i.onMultipleOptionChange([\"cursorBlink\",\"cursorStyle\"],(()=>this.refreshRows(o.buffer.y,o.buffer.y,!0)))),this.register(d.onChangeColors((()=>this._fullRefresh()))),this._registerIntersectionObserver(l.window,t),this.register(l.onWindowChange((e=>this._registerIntersectionObserver(e,t))))}_registerIntersectionObserver(e,t){if(\"IntersectionObserver\"in e){const i=new e.IntersectionObserver((e=>this._handleIntersectionChange(e[e.length-1])),{threshold:0});i.observe(t),this._observerDisposable.value=(0,h.toDisposable)((()=>i.disconnect()))}}_handleIntersectionChange(e){this._isPaused=void 0===e.isIntersecting?0===e.intersectionRatio:!e.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,i=!1){this._isPaused?this._needsFullRefresh=!0:(i||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount))}_renderRows(e,t){this._renderer.value&&(e=Math.min(e,this._rowCount-1),t=Math.min(t,this._rowCount-1),this._renderer.value.renderRows(e,t),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0)}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(e){this._renderer.value=e,this._renderer.value&&(this._renderer.value.onRequestRedraw((e=>this.refreshRows(e.start,e.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,t){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.value?.handleResize(e,t))):this._renderer.value.handleResize(e,t),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(e,t,i){this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=i,this._renderer.value?.handleSelectionChanged(e,t,i)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};t.RenderService=d=s([r(2,l.IOptionsService),r(3,o.ICharSizeService),r(4,l.IDecorationService),r(5,l.IBufferService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],d)},9312:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.SelectionService=void 0;const n=i(9806),o=i(9504),a=i(456),h=i(4725),c=i(8460),l=i(844),d=i(6114),_=i(4841),u=i(511),f=i(2585),v=String.fromCharCode(160),p=new RegExp(v,\"g\");let g=t.SelectionService=class extends l.Disposable{constructor(e,t,i,s,r,n,o,h,d){super(),this._element=e,this._screenElement=t,this._linkifier=i,this._bufferService=s,this._coreService=r,this._mouseService=n,this._optionsService=o,this._renderService=h,this._coreBrowserService=d,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new u.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new c.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new c.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new c.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new c.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=e=>this._handleMouseMove(e),this._mouseUpListener=e=>this._handleMouseUp(e),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((e=>this._handleTrim(e))),this.register(this._bufferService.buffers.onBufferActivate((e=>this._handleBufferActivate(e)))),this.enable(),this._model=new a.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,l.toDisposable)((()=>{this._removeMouseDownListeners()})))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t||e[0]===t[0]&&e[1]===t[1])}get selectionText(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return\"\";const i=this._bufferService.buffer,s=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return\"\";const r=e[0]e.replace(p,\" \"))).join(d.isWindows?\"\\r\\n\":\"\\n\")}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),d.isLinux&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(e){const t=this._getMouseBufferCoords(e),i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!!(i&&s&&t)&&this._areCoordsInSelection(t,i,s)}isCellInSelection(e,t){const i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!(!i||!s)&&this._areCoordsInSelection([e,t],i,s)}_areCoordsInSelection(e,t,i){return e[1]>t[1]&&e[1]=t[0]&&e[0]=t[0]}_selectWordAtCursor(e,t){const i=this._linkifier.currentLink?.link?.range;if(i)return this._model.selectionStart=[i.start.x-1,i.start.y-1],this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const s=this._getMouseBufferCoords(e);return!!s&&(this._selectWordAt(s,t),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){const t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=(0,n.getCoordsRelativeToElement)(this._coreBrowserService.window,e,this._screenElement)[1];const i=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=i?0:(t>i&&(t-=i),t=Math.min(Math.max(t,-50),50),t/=50,t/Math.abs(t)+Math.round(14*t))}shouldForceSelection(e){return d.isMac?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):1===e.detail?this._handleSingleClick(e):2===e.detail?this._handleDoubleClick(e):3===e.detail&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener(\"mouseup\",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener(\"mouseup\",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;const t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){const t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(d.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;const t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const i=this._bufferService.buffer;if(this._model.selectionEnd[1]0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){const t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&void 0!==t[0]&&void 0!==t[1]){const e=(0,o.moveToCellSequence)(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,i=!(!e||!t||e[0]===t[0]&&e[1]===t[1]);i?e&&t&&(this._oldSelectionStart&&this._oldSelectionEnd&&e[0]===this._oldSelectionStart[0]&&e[1]===this._oldSelectionStart[1]&&t[0]===this._oldSelectionEnd[0]&&t[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(e,t,i)):this._oldHasSelection&&this._fireOnSelectionChange(e,t,i)}_fireOnSelectionChange(e,t,i){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=i,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim((e=>this._handleTrim(e)))}_convertViewportColToCharacterIndex(e,t){let i=t;for(let s=0;t>=s;s++){const r=e.loadCell(s,this._workCell).getChars().length;0===this._workCell.getWidth()?i--:r>1&&t!==s&&(i+=r-1)}return i}setSelection(e,t,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=i,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,i=!0,s=!0){if(e[0]>=this._bufferService.cols)return;const r=this._bufferService.buffer,n=r.lines.get(e[1]);if(!n)return;const o=r.translateBufferLineToString(e[1],!1);let a=this._convertViewportColToCharacterIndex(n,e[0]),h=a;const c=e[0]-a;let l=0,d=0,_=0,u=0;if(\" \"===o.charAt(a)){for(;a>0&&\" \"===o.charAt(a-1);)a--;for(;h1&&(u+=s-1,h+=s-1);t>0&&a>0&&!this._isCharWordSeparator(n.loadCell(t-1,this._workCell));){n.loadCell(t-1,this._workCell);const e=this._workCell.getChars().length;0===this._workCell.getWidth()?(l++,t--):e>1&&(_+=e-1,a-=e-1),a--,t--}for(;i1&&(u+=e-1,h+=e-1),h++,i++}}h++;let f=a+c-l+_,v=Math.min(this._bufferService.cols,h-a+l+d-_-u);if(t||\"\"!==o.slice(a,h).trim()){if(i&&0===f&&32!==n.getCodePoint(0)){const t=r.lines.get(e[1]-1);if(t&&n.isWrapped&&32!==t.getCodePoint(this._bufferService.cols-1)){const t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){const e=this._bufferService.cols-t.start;f-=e,v+=e}}}if(s&&f+v===this._bufferService.cols&&32!==n.getCodePoint(this._bufferService.cols-1)){const t=r.lines.get(e[1]+1);if(t?.isWrapped&&32!==t.getCodePoint(0)){const t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(v+=t.length)}}return{start:f,length:v}}}_selectWordAt(e,t){const i=this._getWordAt(e,t);if(i){for(;i.start<0;)i.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[i.start,e[1]],this._model.selectionStartLength=i.length}}_selectToWordAt(e){const t=this._getWordAt(e,!0);if(t){let i=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,i--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,i++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,i]}}_isCharWordSeparator(e){return 0!==e.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){const t=this._bufferService.buffer.getWrappedRangeForLine(e),i={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols)}};t.SelectionService=g=s([r(3,f.IBufferService),r(4,f.ICoreService),r(5,h.IMouseService),r(6,f.IOptionsService),r(7,h.IRenderService),r(8,h.ICoreBrowserService)],g)},4725:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ILinkProviderService=t.IThemeService=t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;const s=i(8343);t.ICharSizeService=(0,s.createDecorator)(\"CharSizeService\"),t.ICoreBrowserService=(0,s.createDecorator)(\"CoreBrowserService\"),t.IMouseService=(0,s.createDecorator)(\"MouseService\"),t.IRenderService=(0,s.createDecorator)(\"RenderService\"),t.ISelectionService=(0,s.createDecorator)(\"SelectionService\"),t.ICharacterJoinerService=(0,s.createDecorator)(\"CharacterJoinerService\"),t.IThemeService=(0,s.createDecorator)(\"ThemeService\"),t.ILinkProviderService=(0,s.createDecorator)(\"LinkProviderService\")},6731:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.ThemeService=t.DEFAULT_ANSI_COLORS=void 0;const n=i(7239),o=i(8055),a=i(8460),h=i(844),c=i(2585),l=o.css.toColor(\"#ffffff\"),d=o.css.toColor(\"#000000\"),_=o.css.toColor(\"#ffffff\"),u=o.css.toColor(\"#000000\"),f={css:\"rgba(255, 255, 255, 0.3)\",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const e=[o.css.toColor(\"#2e3436\"),o.css.toColor(\"#cc0000\"),o.css.toColor(\"#4e9a06\"),o.css.toColor(\"#c4a000\"),o.css.toColor(\"#3465a4\"),o.css.toColor(\"#75507b\"),o.css.toColor(\"#06989a\"),o.css.toColor(\"#d3d7cf\"),o.css.toColor(\"#555753\"),o.css.toColor(\"#ef2929\"),o.css.toColor(\"#8ae234\"),o.css.toColor(\"#fce94f\"),o.css.toColor(\"#729fcf\"),o.css.toColor(\"#ad7fa8\"),o.css.toColor(\"#34e2e2\"),o.css.toColor(\"#eeeeec\")],t=[0,95,135,175,215,255];for(let i=0;i<216;i++){const s=t[i/36%6|0],r=t[i/6%6|0],n=t[i%6];e.push({css:o.channels.toCss(s,r,n),rgba:o.channels.toRgba(s,r,n)})}for(let t=0;t<24;t++){const i=8+10*t;e.push({css:o.channels.toCss(i,i,i),rgba:o.channels.toRgba(i,i,i)})}return e})());let v=t.ThemeService=class extends h.Disposable{get colors(){return this._colors}constructor(e){super(),this._optionsService=e,this._contrastCache=new n.ColorContrastCache,this._halfContrastCache=new n.ColorContrastCache,this._onChangeColors=this.register(new a.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:l,background:d,cursor:_,cursorAccent:u,selectionForeground:void 0,selectionBackgroundTransparent:f,selectionBackgroundOpaque:o.color.blend(d,f),selectionInactiveBackgroundTransparent:f,selectionInactiveBackgroundOpaque:o.color.blend(d,f),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange(\"minimumContrastRatio\",(()=>this._contrastCache.clear()))),this.register(this._optionsService.onSpecificOptionChange(\"theme\",(()=>this._setTheme(this._optionsService.rawOptions.theme))))}_setTheme(e={}){const i=this._colors;if(i.foreground=p(e.foreground,l),i.background=p(e.background,d),i.cursor=p(e.cursor,_),i.cursorAccent=p(e.cursorAccent,u),i.selectionBackgroundTransparent=p(e.selectionBackground,f),i.selectionBackgroundOpaque=o.color.blend(i.background,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundTransparent=p(e.selectionInactiveBackground,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundOpaque=o.color.blend(i.background,i.selectionInactiveBackgroundTransparent),i.selectionForeground=e.selectionForeground?p(e.selectionForeground,o.NULL_COLOR):void 0,i.selectionForeground===o.NULL_COLOR&&(i.selectionForeground=void 0),o.color.isOpaque(i.selectionBackgroundTransparent)){const e=.3;i.selectionBackgroundTransparent=o.color.opacity(i.selectionBackgroundTransparent,e)}if(o.color.isOpaque(i.selectionInactiveBackgroundTransparent)){const e=.3;i.selectionInactiveBackgroundTransparent=o.color.opacity(i.selectionInactiveBackgroundTransparent,e)}if(i.ansi=t.DEFAULT_ANSI_COLORS.slice(),i.ansi[0]=p(e.black,t.DEFAULT_ANSI_COLORS[0]),i.ansi[1]=p(e.red,t.DEFAULT_ANSI_COLORS[1]),i.ansi[2]=p(e.green,t.DEFAULT_ANSI_COLORS[2]),i.ansi[3]=p(e.yellow,t.DEFAULT_ANSI_COLORS[3]),i.ansi[4]=p(e.blue,t.DEFAULT_ANSI_COLORS[4]),i.ansi[5]=p(e.magenta,t.DEFAULT_ANSI_COLORS[5]),i.ansi[6]=p(e.cyan,t.DEFAULT_ANSI_COLORS[6]),i.ansi[7]=p(e.white,t.DEFAULT_ANSI_COLORS[7]),i.ansi[8]=p(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),i.ansi[9]=p(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),i.ansi[10]=p(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),i.ansi[11]=p(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),i.ansi[12]=p(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),i.ansi[13]=p(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),i.ansi[14]=p(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),i.ansi[15]=p(e.brightWhite,t.DEFAULT_ANSI_COLORS[15]),e.extendedAnsi){const s=Math.min(i.ansi.length-16,e.extendedAnsi.length);for(let r=0;r{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CircularList=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this.register(new s.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new s.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new s.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;const t=new Array(e);for(let i=0;ithis._length)for(let t=this._length;t=e;t--)this._array[this._getCyclicIndex(t+i.length)]=this._array[this._getCyclicIndex(t)];for(let t=0;tthis._maxLength){const e=this._length+i.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=i.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,i){if(!(t<=0)){if(e<0||e>=this._length)throw new Error(\"start argument out of range\");if(e+i<0)throw new Error(\"Cannot shift elements in list beyond index 0\");if(i>0){for(let s=t-1;s>=0;s--)this.set(e+s+i,this.get(e+s));const s=e+t+i-this._length;if(s>0)for(this._length+=s;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let s=0;s{Object.defineProperty(t,\"__esModule\",{value:!0}),t.clone=void 0,t.clone=function e(t,i=5){if(\"object\"!=typeof t)return t;const s=Array.isArray(t)?[]:{};for(const r in t)s[r]=i<=1?t[r]:t[r]&&e(t[r],i-1);return s}},8055:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let i=0,s=0,r=0,n=0;var o,a,h,c,l;function d(e){const t=e.toString(16);return t.length<2?\"0\"+t:t}function _(e,t){return e>>0},e.toColor=function(t,i,s,r){return{css:e.toCss(t,i,s,r),rgba:e.toRgba(t,i,s,r)}}}(o||(t.channels=o={})),function(e){function t(e,t){return n=Math.round(255*t),[i,s,r]=l.toChannels(e.rgba),{css:o.toCss(i,s,r,n),rgba:o.toRgba(i,s,r,n)}}e.blend=function(e,t){if(n=(255&t.rgba)/255,1===n)return{css:t.css,rgba:t.rgba};const a=t.rgba>>24&255,h=t.rgba>>16&255,c=t.rgba>>8&255,l=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),{css:o.toCss(i,s,r),rgba:o.toRgba(i,s,r)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=l.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return o.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[i,s,r]=l.toChannels(t),{css:o.toCss(i,s,r),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return n=255&e.rgba,t(e,n*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(a||(t.color=a={})),function(e){let t,a;try{const e=document.createElement(\"canvas\");e.width=1,e.height=1;const i=e.getContext(\"2d\",{willReadFrequently:!0});i&&(t=i,t.globalCompositeOperation=\"copy\",a=t.createLinearGradient(0,0,1,1))}catch{}e.toColor=function(e){if(e.match(/#[\\da-f]{3,8}/i))switch(e.length){case 4:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),o.toColor(i,s,r);case 5:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),n=parseInt(e.slice(4,5).repeat(2),16),o.toColor(i,s,r,n);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const h=e.match(/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(,\\s*(0|1|\\d?\\.(\\d+))\\s*)?\\)/);if(h)return i=parseInt(h[1]),s=parseInt(h[2]),r=parseInt(h[3]),n=Math.round(255*(void 0===h[5]?1:parseFloat(h[5]))),o.toColor(i,s,r,n);if(!t||!a)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillStyle=a,t.fillStyle=e,\"string\"!=typeof t.fillStyle)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillRect(0,0,1,1),[i,s,r,n]=t.getImageData(0,0,1,1).data,255!==n)throw new Error(\"css.toColor: Unsupported css format\");return{rgba:o.toRgba(i,s,r,n),css:e}}}(h||(t.css=h={})),function(e){function t(e,t,i){const s=e/255,r=t/255,n=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(c||(t.rgb=c={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l0||a>0||h>0);)o-=Math.max(0,Math.ceil(.1*o)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}function a(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l>>0}e.blend=function(e,t){if(n=(255&t)/255,1===n)return t;const a=t>>24&255,h=t>>16&255,c=t>>8&255,l=e>>24&255,d=e>>16&255,_=e>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),o.toRgba(i,s,r)},e.ensureContrastRatio=function(e,i,s){const r=c.relativeLuminance(e>>8),n=c.relativeLuminance(i>>8);if(_(r,n)>8));if(o_(r,c.relativeLuminance(t>>8))?n:t}return n}const o=a(e,i,s),h=_(r,c.relativeLuminance(o>>8));if(h_(r,c.relativeLuminance(n>>8))?o:n}return o}},e.reduceLuminance=t,e.increaseLuminance=a,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}}(l||(t.rgba=l={})),t.toPaddedHex=d,t.contrastRatio=_},8969:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreTerminal=void 0;const s=i(844),r=i(2585),n=i(4348),o=i(7866),a=i(744),h=i(7302),c=i(6975),l=i(8460),d=i(1753),_=i(1480),u=i(7994),f=i(9282),v=i(5435),p=i(5981),g=i(2660);let m=!1;class S extends s.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new l.EventEmitter),this._onScroll.event((e=>{this._onScrollApi?.fire(e.position)}))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(const t in e)this.optionsService.options[t]=e[t]}constructor(e){super(),this._windowsWrappingHeuristics=this.register(new s.MutableDisposable),this._onBinary=this.register(new l.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new l.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new l.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new l.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new l.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new l.EventEmitter),this._instantiationService=new n.InstantiationService,this.optionsService=this.register(new h.OptionsService(e)),this._instantiationService.setService(r.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(a.BufferService)),this._instantiationService.setService(r.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(o.LogService)),this._instantiationService.setService(r.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(c.CoreService)),this._instantiationService.setService(r.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(r.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(_.UnicodeService)),this._instantiationService.setService(r.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(u.CharsetService),this._instantiationService.setService(r.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(g.OscLinkService),this._instantiationService.setService(r.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new v.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,l.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,l.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,l.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,l.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom()))),this.register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this.register(this.optionsService.onMultipleOptionChange([\"windowsMode\",\"windowsPty\"],(()=>this._handleWindowsPtyOptionChange()))),this.register(this._bufferService.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this.register(new p.WriteBuffer(((e,t)=>this._inputHandler.parse(e,t)))),this.register((0,l.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=r.LogLevelEnum.WARN&&!m&&(this._logService.warn(\"writeSync is unreliable and will be removed soon.\"),m=!0),this._writeBuffer.writeSync(e,t)}input(e,t=!0){this.coreService.triggerDataEvent(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,a.MINIMUM_COLS),t=Math.max(t,a.MINIMUM_ROWS),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t,i){this._bufferService.scrollLines(e,t,i)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){const t=e-this._bufferService.buffer.ydisp;0!==t&&this.scrollLines(t)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1;const t=this.optionsService.rawOptions.windowsPty;t&&void 0!==t.buildNumber&&void 0!==t.buildNumber?e=!!(\"conpty\"===t.backend&&t.buildNumber<21376):this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){const e=[];e.push(this.onLineFeed(f.updateWindowsModeWrappedState.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:\"H\"},(()=>((0,f.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics.value=(0,s.toDisposable)((()=>{for(const t of e)t.dispose()}))}}}t.CoreTerminal=S},8460:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;tt.fire(e)))},t.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))}},5435:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;const n=i(2584),o=i(7116),a=i(2015),h=i(844),c=i(482),l=i(8437),d=i(8460),_=i(643),u=i(511),f=i(3734),v=i(2585),p=i(1480),g=i(6242),m=i(6351),S=i(5941),C={\"(\":0,\")\":1,\"*\":2,\"+\":3,\"-\":1,\".\":2},b=131072;function w(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var y;!function(e){e[e.GET_WIN_SIZE_PIXELS=0]=\"GET_WIN_SIZE_PIXELS\",e[e.GET_CELL_SIZE_PIXELS=1]=\"GET_CELL_SIZE_PIXELS\"}(y||(t.WindowsOptionsReportType=y={}));let E=0;class k extends h.Disposable{getAttrData(){return this._curAttrData}constructor(e,t,i,s,r,h,_,f,v=new a.EscapeSequenceParser){super(),this._bufferService=e,this._charsetService=t,this._coreService=i,this._logService=s,this._optionsService=r,this._oscLinkService=h,this._coreMouseService=_,this._unicodeService=f,this._parser=v,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new c.StringToUtf32,this._utf8Decoder=new c.Utf8ToUtf32,this._workCell=new u.CellData,this._windowTitle=\"\",this._iconName=\"\",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new d.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new d.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new d.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new d.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new d.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new d.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new d.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new d.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new d.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new d.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new d.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new d.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new d.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new L(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._parser.setCsiHandlerFallback(((e,t)=>{this._logService.debug(\"Unknown CSI code: \",{identifier:this._parser.identToString(e),params:t.toArray()})})),this._parser.setEscHandlerFallback((e=>{this._logService.debug(\"Unknown ESC code: \",{identifier:this._parser.identToString(e)})})),this._parser.setExecuteHandlerFallback((e=>{this._logService.debug(\"Unknown EXECUTE code: \",{code:e})})),this._parser.setOscHandlerFallback(((e,t,i)=>{this._logService.debug(\"Unknown OSC code: \",{identifier:e,action:t,data:i})})),this._parser.setDcsHandlerFallback(((e,t,i)=>{\"HOOK\"===t&&(i=i.toArray()),this._logService.debug(\"Unknown DCS code: \",{identifier:this._parser.identToString(e),action:t,payload:i})})),this._parser.setPrintHandler(((e,t,i)=>this.print(e,t,i))),this._parser.registerCsiHandler({final:\"@\"},(e=>this.insertChars(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"@\"},(e=>this.scrollLeft(e))),this._parser.registerCsiHandler({final:\"A\"},(e=>this.cursorUp(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"A\"},(e=>this.scrollRight(e))),this._parser.registerCsiHandler({final:\"B\"},(e=>this.cursorDown(e))),this._parser.registerCsiHandler({final:\"C\"},(e=>this.cursorForward(e))),this._parser.registerCsiHandler({final:\"D\"},(e=>this.cursorBackward(e))),this._parser.registerCsiHandler({final:\"E\"},(e=>this.cursorNextLine(e))),this._parser.registerCsiHandler({final:\"F\"},(e=>this.cursorPrecedingLine(e))),this._parser.registerCsiHandler({final:\"G\"},(e=>this.cursorCharAbsolute(e))),this._parser.registerCsiHandler({final:\"H\"},(e=>this.cursorPosition(e))),this._parser.registerCsiHandler({final:\"I\"},(e=>this.cursorForwardTab(e))),this._parser.registerCsiHandler({final:\"J\"},(e=>this.eraseInDisplay(e,!1))),this._parser.registerCsiHandler({prefix:\"?\",final:\"J\"},(e=>this.eraseInDisplay(e,!0))),this._parser.registerCsiHandler({final:\"K\"},(e=>this.eraseInLine(e,!1))),this._parser.registerCsiHandler({prefix:\"?\",final:\"K\"},(e=>this.eraseInLine(e,!0))),this._parser.registerCsiHandler({final:\"L\"},(e=>this.insertLines(e))),this._parser.registerCsiHandler({final:\"M\"},(e=>this.deleteLines(e))),this._parser.registerCsiHandler({final:\"P\"},(e=>this.deleteChars(e))),this._parser.registerCsiHandler({final:\"S\"},(e=>this.scrollUp(e))),this._parser.registerCsiHandler({final:\"T\"},(e=>this.scrollDown(e))),this._parser.registerCsiHandler({final:\"X\"},(e=>this.eraseChars(e))),this._parser.registerCsiHandler({final:\"Z\"},(e=>this.cursorBackwardTab(e))),this._parser.registerCsiHandler({final:\"`\"},(e=>this.charPosAbsolute(e))),this._parser.registerCsiHandler({final:\"a\"},(e=>this.hPositionRelative(e))),this._parser.registerCsiHandler({final:\"b\"},(e=>this.repeatPrecedingCharacter(e))),this._parser.registerCsiHandler({final:\"c\"},(e=>this.sendDeviceAttributesPrimary(e))),this._parser.registerCsiHandler({prefix:\">\",final:\"c\"},(e=>this.sendDeviceAttributesSecondary(e))),this._parser.registerCsiHandler({final:\"d\"},(e=>this.linePosAbsolute(e))),this._parser.registerCsiHandler({final:\"e\"},(e=>this.vPositionRelative(e))),this._parser.registerCsiHandler({final:\"f\"},(e=>this.hVPosition(e))),this._parser.registerCsiHandler({final:\"g\"},(e=>this.tabClear(e))),this._parser.registerCsiHandler({final:\"h\"},(e=>this.setMode(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"h\"},(e=>this.setModePrivate(e))),this._parser.registerCsiHandler({final:\"l\"},(e=>this.resetMode(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"l\"},(e=>this.resetModePrivate(e))),this._parser.registerCsiHandler({final:\"m\"},(e=>this.charAttributes(e))),this._parser.registerCsiHandler({final:\"n\"},(e=>this.deviceStatus(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"n\"},(e=>this.deviceStatusPrivate(e))),this._parser.registerCsiHandler({intermediates:\"!\",final:\"p\"},(e=>this.softReset(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"q\"},(e=>this.setCursorStyle(e))),this._parser.registerCsiHandler({final:\"r\"},(e=>this.setScrollRegion(e))),this._parser.registerCsiHandler({final:\"s\"},(e=>this.saveCursor(e))),this._parser.registerCsiHandler({final:\"t\"},(e=>this.windowOptions(e))),this._parser.registerCsiHandler({final:\"u\"},(e=>this.restoreCursor(e))),this._parser.registerCsiHandler({intermediates:\"'\",final:\"}\"},(e=>this.insertColumns(e))),this._parser.registerCsiHandler({intermediates:\"'\",final:\"~\"},(e=>this.deleteColumns(e))),this._parser.registerCsiHandler({intermediates:'\"',final:\"q\"},(e=>this.selectProtected(e))),this._parser.registerCsiHandler({intermediates:\"$\",final:\"p\"},(e=>this.requestMode(e,!0))),this._parser.registerCsiHandler({prefix:\"?\",intermediates:\"$\",final:\"p\"},(e=>this.requestMode(e,!1))),this._parser.setExecuteHandler(n.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(n.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(n.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(n.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(n.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(n.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(n.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(n.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(n.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new g.OscHandler((e=>(this.setTitle(e),this.setIconName(e),!0)))),this._parser.registerOscHandler(1,new g.OscHandler((e=>this.setIconName(e)))),this._parser.registerOscHandler(2,new g.OscHandler((e=>this.setTitle(e)))),this._parser.registerOscHandler(4,new g.OscHandler((e=>this.setOrReportIndexedColor(e)))),this._parser.registerOscHandler(8,new g.OscHandler((e=>this.setHyperlink(e)))),this._parser.registerOscHandler(10,new g.OscHandler((e=>this.setOrReportFgColor(e)))),this._parser.registerOscHandler(11,new g.OscHandler((e=>this.setOrReportBgColor(e)))),this._parser.registerOscHandler(12,new g.OscHandler((e=>this.setOrReportCursorColor(e)))),this._parser.registerOscHandler(104,new g.OscHandler((e=>this.restoreIndexedColor(e)))),this._parser.registerOscHandler(110,new g.OscHandler((e=>this.restoreFgColor(e)))),this._parser.registerOscHandler(111,new g.OscHandler((e=>this.restoreBgColor(e)))),this._parser.registerOscHandler(112,new g.OscHandler((e=>this.restoreCursorColor(e)))),this._parser.registerEscHandler({final:\"7\"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:\"8\"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:\"D\"},(()=>this.index())),this._parser.registerEscHandler({final:\"E\"},(()=>this.nextLine())),this._parser.registerEscHandler({final:\"H\"},(()=>this.tabSet())),this._parser.registerEscHandler({final:\"M\"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:\"=\"},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:\">\"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:\"c\"},(()=>this.fullReset())),this._parser.registerEscHandler({final:\"n\"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:\"o\"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:\"|\"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:\"}\"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:\"~\"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:\"%\",final:\"@\"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:\"%\",final:\"G\"},(()=>this.selectDefaultCharset()));for(const e in o.CHARSETS)this._parser.registerEscHandler({intermediates:\"(\",final:e},(()=>this.selectCharset(\"(\"+e))),this._parser.registerEscHandler({intermediates:\")\",final:e},(()=>this.selectCharset(\")\"+e))),this._parser.registerEscHandler({intermediates:\"*\",final:e},(()=>this.selectCharset(\"*\"+e))),this._parser.registerEscHandler({intermediates:\"+\",final:e},(()=>this.selectCharset(\"+\"+e))),this._parser.registerEscHandler({intermediates:\"-\",final:e},(()=>this.selectCharset(\"-\"+e))),this._parser.registerEscHandler({intermediates:\".\",final:e},(()=>this.selectCharset(\".\"+e))),this._parser.registerEscHandler({intermediates:\"/\",final:e},(()=>this.selectCharset(\"/\"+e)));this._parser.registerEscHandler({intermediates:\"#\",final:\"8\"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((e=>(this._logService.error(\"Parsing error: \",e),e))),this._parser.registerDcsHandler({intermediates:\"$\",final:\"q\"},new m.DcsHandler(((e,t)=>this.requestStatusString(e,t))))}_preserveStack(e,t,i,s){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=i,this._parseStack.position=s}_logSlowResolvingAsync(e){this._logService.logLevel<=v.LogLevelEnum.WARN&&Promise.race([e,new Promise(((e,t)=>setTimeout((()=>t(\"#SLOW_TIMEOUT\")),5e3)))]).catch((e=>{if(\"#SLOW_TIMEOUT\"!==e)throw e;console.warn(\"async parser handler taking longer than 5000 ms\")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let i,s=this._activeBuffer.x,r=this._activeBuffer.y,n=0;const o=this._parseStack.paused;if(o){if(i=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(i),i;s=this._parseStack.cursorStartX,r=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>b&&(n=this._parseStack.position+b)}if(this._logService.logLevel<=v.LogLevelEnum.DEBUG&&this._logService.debug(\"parsing data\"+(\"string\"==typeof e?` \"${e}\"`:` \"${Array.prototype.map.call(e,(e=>String.fromCharCode(e))).join(\"\")}\"`),\"string\"==typeof e?e.split(\"\").map((e=>e.charCodeAt(0))):e),this._parseBuffer.lengthb)for(let t=n;t0&&2===f.getWidth(this._activeBuffer.x-1)&&f.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let v=this._parser.precedingJoinState;for(let g=t;ga)if(h){const e=f;let t=this._activeBuffer.x-m;for(this._activeBuffer.x=m,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),f=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),m>0&&f instanceof l.BufferLine&&f.copyCellsFrom(e,t,0,m,!1);t=0;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}else if(d&&(f.insertCells(this._activeBuffer.x,r-m,this._activeBuffer.getNullCell(u)),2===f.getWidth(a-1)&&f.setCellFromCodepoint(a-1,_.NULL_CELL_CODE,_.NULL_CELL_WIDTH,u)),f.setCellFromCodepoint(this._activeBuffer.x++,s,r,u),r>0)for(;--r;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=v,this._activeBuffer.x0&&0===f.getWidth(this._activeBuffer.x)&&!f.hasContent(this._activeBuffer.x)&&f.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return\"t\"!==e.final||e.prefix||e.intermediates?this._parser.registerCsiHandler(e,t):this._parser.registerCsiHandler(e,(e=>!w(e.params[0],this._optionsService.rawOptions.windowOptions)||t(e)))}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new m.DcsHandler(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new g.OscHandler(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(0===this._activeBuffer.x&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){const t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){const t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){const t=e.params[0];return 0===t?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===t&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){const t=e.params[0];return 1===t&&(this._curAttrData.bg|=536870912),2!==t&&0!==t||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,i,s=!1,r=!1){const n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.replaceCells(t,i,this._activeBuffer.getNullCell(this._eraseAttrData()),r),s&&(n.isWrapped=!1)}_resetBufferLine(e,t=!1){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i&&(i.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),i.isWrapped=!1)}eraseInDisplay(e,t=!1){let i;switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);i=this._bufferService.cols&&(this._activeBuffer.lines.get(i+1).isWrapped=!1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 2:for(i=this._bufferService.rows,this._dirtyRowTracker.markDirty(i-1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 3:const e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0))}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.y65535?2:1}let h=a;for(let e=1;e0||(this._is(\"xterm\")||this._is(\"rxvt-unicode\")||this._is(\"screen\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[?1;2c\"):this._is(\"linux\")&&this._coreService.triggerDataEvent(n.C0.ESC+\"[?6c\")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is(\"xterm\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[>0;276;0c\"):this._is(\"rxvt-unicode\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[>85;95;0c\"):this._is(\"linux\")?this._coreService.triggerDataEvent(e.params[0]+\"c\"):this._is(\"screen\")&&this._coreService.triggerDataEvent(n.C0.ESC+\"[>83;40003;0c\")),!0}_is(e){return 0===(this._optionsService.rawOptions.termName+\"\").indexOf(e)}setMode(e){for(let t=0;te?1:2,u=e.params[0];return f=u,v=t?2===u?4:4===u?_(o.modes.insertMode):12===u?3:20===u?_(d.convertEol):0:1===u?_(i.applicationCursorKeys):3===u?d.windowOptions.setWinLines?80===h?2:132===h?1:0:0:6===u?_(i.origin):7===u?_(i.wraparound):8===u?3:9===u?_(\"X10\"===s):12===u?_(d.cursorBlink):25===u?_(!o.isCursorHidden):45===u?_(i.reverseWraparound):66===u?_(i.applicationKeypad):67===u?4:1e3===u?_(\"VT200\"===s):1002===u?_(\"DRAG\"===s):1003===u?_(\"ANY\"===s):1004===u?_(i.sendFocus):1005===u?4:1006===u?_(\"SGR\"===r):1015===u?4:1016===u?_(\"SGR_PIXELS\"===r):1048===u?1:47===u||1047===u||1049===u?_(c===l):2004===u?_(i.bracketedPasteMode):0,o.triggerDataEvent(`${n.C0.ESC}[${t?\"\":\"?\"}${f};${v}$y`),!0;var f,v}_updateAttrColor(e,t,i,s,r){return 2===t?(e|=50331648,e&=-16777216,e|=f.AttributeData.fromColorRGB([i,s,r])):5===t&&(e&=-50331904,e|=33554432|255&i),e}_extractColor(e,t,i){const s=[0,0,-1,0,0,0];let r=0,n=0;do{if(s[n+r]=e.params[t+n],e.hasSubParams(t+n)){const i=e.getSubParams(t+n);let o=0;do{5===s[1]&&(r=1),s[n+o+1+r]=i[o]}while(++o=2||2===s[1]&&n+r>=5)break;s[1]&&(r=1)}while(++n+t5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,0===e&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=l.DEFAULT_ATTR_DATA.fg,e.bg=l.DEFAULT_ATTR_DATA.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(1===e.length&&0===e.params[0])return this._processSGR0(this._curAttrData),!0;const t=e.length;let i;const s=this._curAttrData;for(let r=0;r=30&&i<=37?(s.fg&=-50331904,s.fg|=16777216|i-30):i>=40&&i<=47?(s.bg&=-50331904,s.bg|=16777216|i-40):i>=90&&i<=97?(s.fg&=-50331904,s.fg|=16777224|i-90):i>=100&&i<=107?(s.bg&=-50331904,s.bg|=16777224|i-100):0===i?this._processSGR0(s):1===i?s.fg|=134217728:3===i?s.bg|=67108864:4===i?(s.fg|=268435456,this._processUnderline(e.hasSubParams(r)?e.getSubParams(r)[0]:1,s)):5===i?s.fg|=536870912:7===i?s.fg|=67108864:8===i?s.fg|=1073741824:9===i?s.fg|=2147483648:2===i?s.bg|=134217728:21===i?this._processUnderline(2,s):22===i?(s.fg&=-134217729,s.bg&=-134217729):23===i?s.bg&=-67108865:24===i?(s.fg&=-268435457,this._processUnderline(0,s)):25===i?s.fg&=-536870913:27===i?s.fg&=-67108865:28===i?s.fg&=-1073741825:29===i?s.fg&=2147483647:39===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg):49===i?(s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):38===i||48===i||58===i?r+=this._extractColor(e,r,s):53===i?s.bg|=1073741824:55===i?s.bg&=-1073741825:59===i?(s.extended=s.extended.clone(),s.extended.underlineColor=-1,s.updateExtended()):100===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg,s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):this._logService.debug(\"Unknown SGR attribute: %d.\",i);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${n.C0.ESC}[0n`);break;case 6:const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[${e};${t}R`)}return!0}deviceStatusPrivate(e){if(6===e.params[0]){const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[?${e};${t}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){const t=e.params[0]||1;switch(t){case 1:case 2:this._optionsService.options.cursorStyle=\"block\";break;case 3:case 4:this._optionsService.options.cursorStyle=\"underline\";break;case 5:case 6:this._optionsService.options.cursorStyle=\"bar\"}const i=t%2==1;return this._optionsService.options.cursorBlink=i,!0}setScrollRegion(e){const t=e.params[0]||1;let i;return(e.length<2||(i=e.params[1])>this._bufferService.rows||0===i)&&(i=this._bufferService.rows),i>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=i-1,this._setCursor(0,0)),!0}windowOptions(e){if(!w(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;const t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:2!==t&&this._onRequestWindowsOptionsReport.fire(y.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(y.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${n.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:0!==t&&2!==t||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),0!==t&&1!==t||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:0!==t&&2!==t||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),0!==t&&1!==t||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){const t=[],i=e.split(\";\");for(;i.length>1;){const e=i.shift(),s=i.shift();if(/^\\d+$/.exec(e)){const i=parseInt(e);if(D(i))if(\"?\"===s)t.push({type:0,index:i});else{const e=(0,S.parseColor)(s);e&&t.push({type:1,index:i,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){const t=e.split(\";\");return!(t.length<2)&&(t[1]?this._createHyperlink(t[0],t[1]):!t[0]&&this._finishHyperlink())}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();const i=e.split(\":\");let s;const r=i.findIndex((e=>e.startsWith(\"id=\")));return-1!==r&&(s=i[r].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:s,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){const i=e.split(\";\");for(let e=0;e=this._specialColors.length);++e,++t)if(\"?\"===i[e])this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{const s=(0,S.parseColor)(i[e]);s&&this._onColor.fire([{type:1,index:this._specialColors[t],color:s}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;const t=[],i=e.split(\";\");for(let e=0;e=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){const e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){const e=new u.CellData;e.content=1<<22|\"E\".charCodeAt(0),e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t(this._coreService.triggerDataEvent(`${n.C0.ESC}${e}${n.C0.ESC}\\\\`),!0))('\"q'===e?`P1$r${this._curAttrData.isProtected()?1:0}\"q`:'\"p'===e?'P1$r61;1\"p':\"r\"===e?`P1$r${i.scrollTop+1};${i.scrollBottom+1}r`:\"m\"===e?\"P1$r0m\":\" q\"===e?`P1$r${{block:2,underline:4,bar:6}[s.cursorStyle]-(s.cursorBlink?1:0)} q`:\"P0$r\")}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}}t.InputHandler=k;let L=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){ethis.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(E=e,e=t,t=E),ethis.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function D(e){return 0<=e&&e<256}L=s([r(0,v.IBufferService)],L)},844:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},1505:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,n){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,n)}get(e,t,i,s){return this._data.get(e,t)?.get(i,s)}clear(){this._data.clear()}}},6114:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode=\"undefined\"!=typeof process&&\"title\"in process;const i=t.isNode?\"node\":navigator.userAgent,s=t.isNode?\"node\":navigator.platform;t.isFirefox=i.includes(\"Firefox\"),t.isLegacyEdge=i.includes(\"Edge\"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\\/(\\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=[\"Macintosh\",\"MacIntel\",\"MacPPC\",\"Mac68K\"].includes(s),t.isIpad=\"iPad\"===s,t.isIphone=\"iPhone\"===s,t.isWindows=[\"Windows\",\"Win16\",\"Win32\",\"WinCE\"].includes(s),t.isLinux=s.indexOf(\"Linux\")>=0,t.isChromeOS=/\\bCrOS\\b/.test(i)},6106:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.SortedList=void 0;let i=0;t.SortedList=class{constructor(e){this._getKey=e,this._array=[]}clear(){this._array.length=0}insert(e){0!==this._array.length?(i=this._search(this._getKey(e)),this._array.splice(i,0,e)):this._array.push(e)}delete(e){if(0===this._array.length)return!1;const t=this._getKey(e);if(void 0===t)return!1;if(i=this._search(t),-1===i)return!1;if(this._getKey(this._array[i])!==t)return!1;do{if(this._array[i]===e)return this._array.splice(i,1),!0}while(++i=this._array.length)&&this._getKey(this._array[i])===e))do{yield this._array[i]}while(++i=this._array.length)&&this._getKey(this._array[i])===e))do{t(this._array[i])}while(++i=t;){let s=t+i>>1;const r=this._getKey(this._array[s]);if(r>e)i=s-1;else{if(!(r0&&this._getKey(this._array[s-1])===e;)s--;return s}t=s+1}}return t}}},7226:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const s=i(6114);class r{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._ir)return s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),void this._start();s=r}this.clear()}}class n extends r{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=n,t.IdleTaskQueue=!s.isNode&&\"requestIdleCallback\"in window?class extends r{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:n,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},9282:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.updateWindowsModeWrappedState=void 0;const s=i(643);t.updateWindowsModeWrappedState=function(e){const t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1),i=t?.get(e.cols-1),r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);r&&i&&(r.isWrapped=i[s.CHAR_DATA_CODE_INDEX]!==s.NULL_CELL_CODE&&i[s.CHAR_DATA_CODE_INDEX]!==s.WHITESPACE_CELL_CODE)}},3734:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}t.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){const e=(3758096384&this._ext)>>29;return e<0?4294967288^e:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},9092:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Buffer=t.MAX_BUFFER_SIZE=void 0;const s=i(6349),r=i(7226),n=i(3734),o=i(8437),a=i(4634),h=i(511),c=i(643),l=i(4863),d=i(7116);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(e,t,i){this._hasScrollback=e,this._optionsService=t,this._bufferService=i,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=o.DEFAULT_ATTR_DATA.clone(),this.savedCharset=d.DEFAULT_CHARSET,this.markers=[],this._nullCell=h.CellData.fromCharData([0,c.NULL_CELL_CHAR,c.NULL_CELL_WIDTH,c.NULL_CELL_CODE]),this._whitespaceCell=h.CellData.fromCharData([0,c.WHITESPACE_CELL_CHAR,c.WHITESPACE_CELL_WIDTH,c.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new r.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new n.ExtendedAttrs),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new n.ExtendedAttrs),this._whitespaceCell}getBlankLine(e,t){return new o.BufferLine(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const e=this.ybase+this.y-this.ydisp;return e>=0&&et.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:i}fillViewportRows(e){if(0===this.lines.length){void 0===e&&(e=o.DEFAULT_ATTR_DATA);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){const i=this.getNullCell(o.DEFAULT_ATTR_DATA);let s=0;const r=this._getCorrectBufferLength(t);if(r>this.lines.maxLength&&(this.lines.maxLength=r),this.lines.length>0){if(this._cols0&&this.lines.length<=this.ybase+this.y+n+1?(this.ybase--,n++,this.ydisp>0&&this.ydisp--):this.lines.push(new o.BufferLine(e,i)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(r0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=r}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),n&&(this.y+=n),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let t=0;t.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition100)return!0;return e}get _isReflowEnabled(){const e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&\"conpty\"===e.backend&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){const i=(0,a.reflowLargerGetLinesToRemove)(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(o.DEFAULT_ATTR_DATA));if(i.length>0){const s=(0,a.reflowLargerCreateNewLayout)(this.lines,i);(0,a.reflowLargerApplyNewLayout)(this.lines,s.layout),this._reflowLargerAdjustViewport(e,t,s.countRemoved)}}_reflowLargerAdjustViewport(e,t,i){const s=this.getNullCell(o.DEFAULT_ATTR_DATA);let r=i;for(;r-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length=0;n--){let h=this.lines.get(n);if(!h||!h.isWrapped&&h.getTrimmedLength()<=e)continue;const c=[h];for(;h.isWrapped&&n>0;)h=this.lines.get(--n),c.unshift(h);const l=this.ybase+this.y;if(l>=n&&l0&&(s.push({start:n+c.length+r,newLines:v}),r+=v.length),c.push(...v);let p=_.length-1,g=_[p];0===g&&(p--,g=_[p]);let m=c.length-u-1,S=d;for(;m>=0;){const e=Math.min(S,g);if(void 0===c[p])break;if(c[p].copyCellsFrom(c[m],S-e,g-e,e,!0),g-=e,0===g&&(p--,g=_[p]),S-=e,0===S){m--;const e=Math.max(m,0);S=(0,a.getWrappedLineTrimmedLength)(c,e,this._cols)}}for(let t=0;t0;)0===this.ybase?this.y0){const e=[],t=[];for(let e=0;e=0;c--)if(a&&a.start>n+h){for(let e=a.newLines.length-1;e>=0;e--)this.lines.set(c--,a.newLines[e]);c++,e.push({index:n+1,amount:a.newLines.length}),h+=a.newLines.length,a=s[++o]}else this.lines.set(c,t[n--]);let c=0;for(let t=e.length-1;t>=0;t--)e[t].index+=c,this.lines.onInsertEmitter.fire(e[t]),c+=e[t].amount;const l=Math.max(0,i+r-this.lines.maxLength);l>0&&this.lines.onTrimEmitter.fire(l)}}translateBufferLineToString(e,t,i=0,s){const r=this.lines.get(e);return r?r.translateToString(t,i,s):\"\"}getWrappedRangeForLine(e){let t=e,i=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;i+10;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t{t.line-=e,t.line<0&&t.dispose()}))),t.register(this.lines.onInsert((e=>{t.line>=e.index&&(t.line+=e.amount)}))),t.register(this.lines.onDelete((e=>{t.line>=e.index&&t.linee.index&&(t.line-=e.amount)}))),t.register(t.onDispose((()=>this._removeMarker(t)))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}}},8437:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;const s=i(3734),r=i(511),n=i(643),o=i(482);t.DEFAULT_ATTR_DATA=Object.freeze(new s.AttributeData);let a=0;class h{constructor(e,t,i=!1){this.isWrapped=i,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);const s=t||r.CellData.fromCharData([0,n.NULL_CELL_CHAR,n.NULL_CELL_WIDTH,n.NULL_CELL_CODE]);for(let t=0;t>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):i]}set(e,t){this._data[3*e+1]=t[n.CHAR_DATA_ATTR_INDEX],t[n.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[3*e+0]=2097152|e|t[n.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*e+0]=t[n.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[n.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 12582912&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e]:2097151&t?(0,o.stringFromCodePoint)(2097151&t):\"\"}isProtected(e){return 536870912&this._data[3*e+2]}loadCell(e,t){return a=3*e,t.content=this._data[a+0],t.fg=this._data[a+1],t.bg=this._data[a+2],2097152&t.content&&(t.combinedData=this._combined[e]),268435456&t.bg&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),268435456&t.bg&&(this._extendedAttrs[e]=t.extended),this._data[3*e+0]=t.content,this._data[3*e+1]=t.fg,this._data[3*e+2]=t.bg}setCellFromCodepoint(e,t,i,s){268435456&s.bg&&(this._extendedAttrs[e]=s.extended),this._data[3*e+0]=t|i<<22,this._data[3*e+1]=s.fg,this._data[3*e+2]=s.bg}addCodepointToCell(e,t,i){let s=this._data[3*e+0];2097152&s?this._combined[e]+=(0,o.stringFromCodePoint)(t):2097151&s?(this._combined[e]=(0,o.stringFromCodePoint)(2097151&s)+(0,o.stringFromCodePoint)(t),s&=-2097152,s|=2097152):s=t|1<<22,i&&(s&=-12582913,s|=i<<22),this._data[3*e+0]=s}insertCells(e,t,i){if((e%=this.length)&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),t=0;--i)this.setCell(e+t+i,this.loadCell(e+i,s));for(let s=0;sthis.length){if(this._data.buffer.byteLength>=4*i)this._data=new Uint32Array(this._data.buffer,0,i);else{const e=new Uint32Array(i);e.set(this._data),this._data=e}for(let i=this.length;i=e&&delete this._combined[s]}const s=Object.keys(this._extendedAttrs);for(let t=0;t=e&&delete this._extendedAttrs[i]}}return this.length=e,4*i*2=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0]||50331648&this._data[3*e+2])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,t,i,s,r){const n=e._data;if(r)for(let r=s-1;r>=0;r--){for(let e=0;e<3;e++)this._data[3*(i+r)+e]=n[3*(t+r)+e];268435456&n[3*(t+r)+2]&&(this._extendedAttrs[i+r]=e._extendedAttrs[t+r])}else for(let r=0;r=t&&(this._combined[r-t+i]=e._combined[r])}}translateToString(e,t,i,s){t=t??0,i=i??this.length,e&&(i=Math.min(i,this.getTrimmedLength())),s&&(s.length=0);let r=\"\";for(;t>22||1}return s&&s.push(t),r}}t.BufferLine=h},4841:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(e,t){if(e.start.y>e.end.y)throw new Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}},4634:(e,t)=>{function i(e,t,i){if(t===e.length-1)return e[t].getTrimmedLength();const s=!e[t].hasContent(i-1)&&1===e[t].getWidth(i-1),r=2===e[t+1].getWidth(0);return s&&r?i-1:i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(e,t,s,r,n){const o=[];for(let a=0;a=a&&r0&&(e>d||0===l[e].getTrimmedLength());e--)v++;v>0&&(o.push(a+l.length-v),o.push(v)),a+=l.length-1}return o},t.reflowLargerCreateNewLayout=function(e,t){const i=[];let s=0,r=t[s],n=0;for(let o=0;oi(e,r,t))).reduce(((e,t)=>e+t));let o=0,a=0,h=0;for(;hc&&(o-=c,a++);const l=2===e[a].getWidth(o-1);l&&o--;const d=l?s-1:s;r.push(d),h+=d}return r},t.getWrappedLineTrimmedLength=i},5295:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferSet=void 0;const s=i(8460),r=i(844),n=i(9092);class o extends r.Disposable{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this.register(new s.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange(\"scrollback\",(()=>this.resize(this._bufferService.cols,this._bufferService.rows)))),this.register(this._optionsService.onSpecificOptionChange(\"tabStopWidth\",(()=>this.setupTabStops())))}reset(){this._normal=new n.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new n.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}}t.BufferSet=o},511:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CellData=void 0;const s=i(482),r=i(643),n=i(3734);class o extends n.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new n.ExtendedAttrs,this.combinedData=\"\"}static fromCharData(e){const t=new o;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):\"\"}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=o},643:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR=\"\",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=\" \",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Marker=void 0;const s=i(8460),r=i(844);class n{get id(){return this._id}constructor(e){this.line=e,this.isDisposed=!1,this._disposables=[],this._id=n._nextId++,this._onDispose=this.register(new s.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,r.disposeArray)(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}}t.Marker=n,n._nextId=1},7116:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={\"`\":\"◆\",a:\"▒\",b:\"␉\",c:\"␌\",d:\"␍\",e:\"␊\",f:\"°\",g:\"±\",h:\"␤\",i:\"␋\",j:\"┘\",k:\"┐\",l:\"┌\",m:\"└\",n:\"┼\",o:\"⎺\",p:\"⎻\",q:\"─\",r:\"⎼\",s:\"⎽\",t:\"├\",u:\"┤\",v:\"┴\",w:\"┬\",x:\"│\",y:\"≤\",z:\"≥\",\"{\":\"π\",\"|\":\"≠\",\"}\":\"£\",\"~\":\"·\"},t.CHARSETS.A={\"#\":\"£\"},t.CHARSETS.B=void 0,t.CHARSETS[4]={\"#\":\"£\",\"@\":\"¾\",\"[\":\"ij\",\"\\\\\":\"½\",\"]\":\"|\",\"{\":\"¨\",\"|\":\"f\",\"}\":\"¼\",\"~\":\"´\"},t.CHARSETS.C=t.CHARSETS[5]={\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"é\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS.R={\"#\":\"£\",\"@\":\"à\",\"[\":\"°\",\"\\\\\":\"ç\",\"]\":\"§\",\"{\":\"é\",\"|\":\"ù\",\"}\":\"è\",\"~\":\"¨\"},t.CHARSETS.Q={\"@\":\"à\",\"[\":\"â\",\"\\\\\":\"ç\",\"]\":\"ê\",\"^\":\"î\",\"`\":\"ô\",\"{\":\"é\",\"|\":\"ù\",\"}\":\"è\",\"~\":\"û\"},t.CHARSETS.K={\"@\":\"§\",\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Ü\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"ü\",\"~\":\"ß\"},t.CHARSETS.Y={\"#\":\"£\",\"@\":\"§\",\"[\":\"°\",\"\\\\\":\"ç\",\"]\":\"é\",\"`\":\"ù\",\"{\":\"à\",\"|\":\"ò\",\"}\":\"è\",\"~\":\"ì\"},t.CHARSETS.E=t.CHARSETS[6]={\"@\":\"Ä\",\"[\":\"Æ\",\"\\\\\":\"Ø\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"ä\",\"{\":\"æ\",\"|\":\"ø\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS.Z={\"#\":\"£\",\"@\":\"§\",\"[\":\"¡\",\"\\\\\":\"Ñ\",\"]\":\"¿\",\"{\":\"°\",\"|\":\"ñ\",\"}\":\"ç\"},t.CHARSETS.H=t.CHARSETS[7]={\"@\":\"É\",\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"é\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS[\"=\"]={\"#\":\"ù\",\"@\":\"à\",\"[\":\"é\",\"\\\\\":\"ç\",\"]\":\"ê\",\"^\":\"î\",_:\"è\",\"`\":\"ô\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"ü\",\"~\":\"û\"}},2584:(e,t)=>{var i,s,r;Object.defineProperty(t,\"__esModule\",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(e){e.NUL=\"\\0\",e.SOH=\"\u0001\",e.STX=\"\u0002\",e.ETX=\"\u0003\",e.EOT=\"\u0004\",e.ENQ=\"\u0005\",e.ACK=\"\u0006\",e.BEL=\"\u0007\",e.BS=\"\\b\",e.HT=\"\\t\",e.LF=\"\\n\",e.VT=\"\\v\",e.FF=\"\\f\",e.CR=\"\\r\",e.SO=\"\u000e\",e.SI=\"\u000f\",e.DLE=\"\u0010\",e.DC1=\"\u0011\",e.DC2=\"\u0012\",e.DC3=\"\u0013\",e.DC4=\"\u0014\",e.NAK=\"\u0015\",e.SYN=\"\u0016\",e.ETB=\"\u0017\",e.CAN=\"\u0018\",e.EM=\"\u0019\",e.SUB=\"\u001a\",e.ESC=\"\u001b\",e.FS=\"\u001c\",e.GS=\"\u001d\",e.RS=\"\u001e\",e.US=\"\u001f\",e.SP=\" \",e.DEL=\"\"}(i||(t.C0=i={})),function(e){e.PAD=\"€\",e.HOP=\"\",e.BPH=\"‚\",e.NBH=\"ƒ\",e.IND=\"„\",e.NEL=\"…\",e.SSA=\"†\",e.ESA=\"‡\",e.HTS=\"ˆ\",e.HTJ=\"‰\",e.VTS=\"Š\",e.PLD=\"‹\",e.PLU=\"Œ\",e.RI=\"\",e.SS2=\"Ž\",e.SS3=\"\",e.DCS=\"\",e.PU1=\"‘\",e.PU2=\"’\",e.STS=\"“\",e.CCH=\"”\",e.MW=\"•\",e.SPA=\"–\",e.EPA=\"—\",e.SOS=\"˜\",e.SGCI=\"™\",e.SCI=\"š\",e.CSI=\"›\",e.ST=\"œ\",e.OSC=\"\",e.PM=\"ž\",e.APC=\"Ÿ\"}(s||(t.C1=s={})),function(e){e.ST=`${i.ESC}\\\\`}(r||(t.C1_ESCAPED=r={}))},7399:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.evaluateKeyboardEvent=void 0;const s=i(2584),r={48:[\"0\",\")\"],49:[\"1\",\"!\"],50:[\"2\",\"@\"],51:[\"3\",\"#\"],52:[\"4\",\"$\"],53:[\"5\",\"%\"],54:[\"6\",\"^\"],55:[\"7\",\"&\"],56:[\"8\",\"*\"],57:[\"9\",\"(\"],186:[\";\",\":\"],187:[\"=\",\"+\"],188:[\",\",\"<\"],189:[\"-\",\"_\"],190:[\".\",\">\"],191:[\"/\",\"?\"],192:[\"`\",\"~\"],219:[\"[\",\"{\"],220:[\"\\\\\",\"|\"],221:[\"]\",\"}\"],222:[\"'\",'\"']};t.evaluateKeyboardEvent=function(e,t,i,n){const o={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:\"UIKeyInputUpArrow\"===e.key?o.key=t?s.C0.ESC+\"OA\":s.C0.ESC+\"[A\":\"UIKeyInputLeftArrow\"===e.key?o.key=t?s.C0.ESC+\"OD\":s.C0.ESC+\"[D\":\"UIKeyInputRightArrow\"===e.key?o.key=t?s.C0.ESC+\"OC\":s.C0.ESC+\"[C\":\"UIKeyInputDownArrow\"===e.key&&(o.key=t?s.C0.ESC+\"OB\":s.C0.ESC+\"[B\");break;case 8:o.key=e.ctrlKey?\"\\b\":s.C0.DEL,e.altKey&&(o.key=s.C0.ESC+o.key);break;case 9:if(e.shiftKey){o.key=s.C0.ESC+\"[Z\";break}o.key=s.C0.HT,o.cancel=!0;break;case 13:o.key=e.altKey?s.C0.ESC+s.C0.CR:s.C0.CR,o.cancel=!0;break;case 27:o.key=s.C0.ESC,e.altKey&&(o.key=s.C0.ESC+s.C0.ESC),o.cancel=!0;break;case 37:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"D\",o.key===s.C0.ESC+\"[1;3D\"&&(o.key=s.C0.ESC+(i?\"b\":\"[1;5D\"))):o.key=t?s.C0.ESC+\"OD\":s.C0.ESC+\"[D\";break;case 39:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"C\",o.key===s.C0.ESC+\"[1;3C\"&&(o.key=s.C0.ESC+(i?\"f\":\"[1;5C\"))):o.key=t?s.C0.ESC+\"OC\":s.C0.ESC+\"[C\";break;case 38:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"A\",i||o.key!==s.C0.ESC+\"[1;3A\"||(o.key=s.C0.ESC+\"[1;5A\")):o.key=t?s.C0.ESC+\"OA\":s.C0.ESC+\"[A\";break;case 40:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"B\",i||o.key!==s.C0.ESC+\"[1;3B\"||(o.key=s.C0.ESC+\"[1;5B\")):o.key=t?s.C0.ESC+\"OB\":s.C0.ESC+\"[B\";break;case 45:e.shiftKey||e.ctrlKey||(o.key=s.C0.ESC+\"[2~\");break;case 46:o.key=a?s.C0.ESC+\"[3;\"+(a+1)+\"~\":s.C0.ESC+\"[3~\";break;case 36:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"H\":t?s.C0.ESC+\"OH\":s.C0.ESC+\"[H\";break;case 35:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"F\":t?s.C0.ESC+\"OF\":s.C0.ESC+\"[F\";break;case 33:e.shiftKey?o.type=2:e.ctrlKey?o.key=s.C0.ESC+\"[5;\"+(a+1)+\"~\":o.key=s.C0.ESC+\"[5~\";break;case 34:e.shiftKey?o.type=3:e.ctrlKey?o.key=s.C0.ESC+\"[6;\"+(a+1)+\"~\":o.key=s.C0.ESC+\"[6~\";break;case 112:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"P\":s.C0.ESC+\"OP\";break;case 113:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"Q\":s.C0.ESC+\"OQ\";break;case 114:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"R\":s.C0.ESC+\"OR\";break;case 115:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"S\":s.C0.ESC+\"OS\";break;case 116:o.key=a?s.C0.ESC+\"[15;\"+(a+1)+\"~\":s.C0.ESC+\"[15~\";break;case 117:o.key=a?s.C0.ESC+\"[17;\"+(a+1)+\"~\":s.C0.ESC+\"[17~\";break;case 118:o.key=a?s.C0.ESC+\"[18;\"+(a+1)+\"~\":s.C0.ESC+\"[18~\";break;case 119:o.key=a?s.C0.ESC+\"[19;\"+(a+1)+\"~\":s.C0.ESC+\"[19~\";break;case 120:o.key=a?s.C0.ESC+\"[20;\"+(a+1)+\"~\":s.C0.ESC+\"[20~\";break;case 121:o.key=a?s.C0.ESC+\"[21;\"+(a+1)+\"~\":s.C0.ESC+\"[21~\";break;case 122:o.key=a?s.C0.ESC+\"[23;\"+(a+1)+\"~\":s.C0.ESC+\"[23~\";break;case 123:o.key=a?s.C0.ESC+\"[24;\"+(a+1)+\"~\":s.C0.ESC+\"[24~\";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(i&&!n||!e.altKey||e.metaKey)!i||e.altKey||e.ctrlKey||e.shiftKey||!e.metaKey?e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?o.key=e.key:e.key&&e.ctrlKey&&(\"_\"===e.key&&(o.key=s.C0.US),\"@\"===e.key&&(o.key=s.C0.NUL)):65===e.keyCode&&(o.type=1);else{const t=r[e.keyCode],i=t?.[e.shiftKey?1:0];if(i)o.key=s.C0.ESC+i;else if(e.keyCode>=65&&e.keyCode<=90){const t=e.ctrlKey?e.keyCode-64:e.keyCode+32;let i=String.fromCharCode(t);e.shiftKey&&(i=i.toUpperCase()),o.key=s.C0.ESC+i}else if(32===e.keyCode)o.key=s.C0.ESC+(e.ctrlKey?s.C0.NUL:\" \");else if(\"Dead\"===e.key&&e.code.startsWith(\"Key\")){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),o.key=s.C0.ESC+t,o.cancel=!0}}else e.keyCode>=65&&e.keyCode<=90?o.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?o.key=s.C0.NUL:e.keyCode>=51&&e.keyCode<=55?o.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?o.key=s.C0.DEL:219===e.keyCode?o.key=s.C0.ESC:220===e.keyCode?o.key=s.C0.FS:221===e.keyCode&&(o.key=s.C0.GS)}return o}},482:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s=\"\";for(let r=t;r65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let n=r;n=i)return this._interim=r,s;const o=e.charCodeAt(n);56320<=o&&o<=57343?t[s++]=1024*(r-55296)+o-56320+65536:(t[s++]=r,t[s++]=o)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,n,o,a=0,h=0,c=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let n,o=0;for(;(n=63&this.interim[++o])&&o<4;)r<<=6,r|=n;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,l=h-o;for(;c=i)return 0;if(n=e[c++],128!=(192&n)){c--,s=!0;break}this.interim[o++]=n,r<<=6,r|=63&n}s||(2===h?r<128?c--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const l=i-4;let d=c;for(;d=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&n,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=n,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&n)<<6|63&o,h<65536||h>1114111)continue;t[a++]=h}}return a}}},225:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeV6=void 0;const s=i(1480),r=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],n=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let o;t.UnicodeV6=class{constructor(){if(this.version=\"6\",!o){o=new Uint8Array(65536),o.fill(1),o[0]=0,o.fill(0,1,32),o.fill(0,127,160),o.fill(2,4352,4448),o[9001]=2,o[9002]=2,o.fill(2,11904,42192),o[12351]=1,o.fill(2,44032,55204),o.fill(2,63744,64256),o.fill(2,65040,65050),o.fill(2,65072,65136),o.fill(2,65280,65377),o.fill(2,65504,65511);for(let e=0;et[r][1])return!1;for(;r>=s;)if(i=s+r>>1,e>t[i][1])s=i+1;else{if(!(e=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let i=this.wcwidth(e),r=0===i&&0!==t;if(r){const e=s.UnicodeService.extractWidth(t);0===e?r=!1:e>i&&(i=e)}return s.UnicodeService.createPropertyValue(0,i,r)}}},5981:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WriteBuffer=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new s.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(void 0!==t&&this._syncCalls>t)return void(this._syncCalls=0);if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let i;for(this._isSyncWriting=!0;i=this._writeBuffer.shift();){this._action(i);const e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>5e7)throw new Error(\"write data discarded, use flow control to avoid losing data\");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){const i=e||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const e=this._writeBuffer[this._bufferOffset],s=this._action(e,t);if(s){const e=e=>Date.now()-i>=12?setTimeout((()=>this._innerWrite(0,e))):this._innerWrite(i,e);return void s.catch((e=>(queueMicrotask((()=>{throw e})),Promise.resolve(!1)))).then(e)}const r=this._callbacks[this._bufferOffset];if(r&&r(),this._bufferOffset++,this._pendingData-=e.length,Date.now()-i>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}t.WriteBuffer=n},5941:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.toRgbString=t.parseColor=void 0;const i=/^([\\da-f])\\/([\\da-f])\\/([\\da-f])$|^([\\da-f]{2})\\/([\\da-f]{2})\\/([\\da-f]{2})$|^([\\da-f]{3})\\/([\\da-f]{3})\\/([\\da-f]{3})$|^([\\da-f]{4})\\/([\\da-f]{4})\\/([\\da-f]{4})$/,s=/^[\\da-f]+$/;function r(e,t){const i=e.toString(16),s=i.length<2?\"0\"+i:i;switch(t){case 4:return i[0];case 8:return s;case 12:return(s+s).slice(0,3);default:return s+s}}t.parseColor=function(e){if(!e)return;let t=e.toLowerCase();if(0===t.indexOf(\"rgb:\")){t=t.slice(4);const e=i.exec(t);if(e){const t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(0===t.indexOf(\"#\")&&(t=t.slice(1),s.exec(t)&&[3,6,9,12].includes(t.length))){const e=t.length/3,i=[0,0,0];for(let s=0;s<3;++s){const r=parseInt(t.slice(e*s,e*s+e),16);i[s]=1===e?r<<4:2===e?r:3===e?r>>4:r>>8}return i}},t.toRgbString=function(e,t=16){const[i,s,n]=e;return`rgb:${r(i,t)}/${r(s,t)}/${r(n,t)}`}},5770:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DcsHandler=t.DcsParser=void 0;const s=i(482),r=i(8742),n=i(5770),o=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=o,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=o}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=o,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||o,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(t);else this._handlerFb(this._ident,\"HOOK\",t)}put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._ident,\"PUT\",(0,s.utf32ToString)(e,t,i))}unhook(e,t=!0){if(this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].unhook(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].unhook(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._ident,\"UNHOOK\",e);this._active=o,this._ident=0}};const a=new r.Params;a.addParam(0),t.DcsHandler=class{constructor(e){this._handler=e,this._data=\"\",this._params=a,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():a,this._data=\"\",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,s.utf32ToString)(e,t,i),this._data.length>n.PAYLOAD_LIMIT&&(this._data=\"\",this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then((e=>(this._params=a,this._data=\"\",this._hitLimit=!1,e)));return this._params=a,this._data=\"\",this._hitLimit=!1,t}}},2015:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;const s=i(844),r=i(8742),n=i(6242),o=i(6351);class a{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,i,s){this.table[t<<8|e]=i<<4|s}addMany(e,t,i,s){for(let r=0;rt)),i=(e,i)=>t.slice(e,i),s=i(32,127),r=i(0,24);r.push(25),r.push.apply(r,i(28,32));const n=i(0,14);let o;for(o in e.setDefault(1,0),e.addMany(s,0,2,0),n)e.addMany([24,26,153,154],o,3,0),e.addMany(i(128,144),o,3,0),e.addMany(i(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(r,0,3,0),e.addMany(r,1,3,1),e.add(127,1,0,1),e.addMany(r,8,0,8),e.addMany(r,3,3,3),e.add(127,3,0,3),e.addMany(r,4,3,4),e.add(127,4,0,4),e.addMany(r,6,3,6),e.addMany(r,5,3,5),e.add(127,5,0,5),e.addMany(r,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(s,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(i(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(s,7,0,7),e.addMany(r,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(i(64,127),3,7,0),e.addMany(i(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(i(48,60),4,8,4),e.addMany(i(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(i(32,64),6,0,6),e.add(127,6,0,6),e.addMany(i(64,127),6,0,0),e.addMany(i(32,48),3,9,5),e.addMany(i(32,48),5,9,5),e.addMany(i(48,64),5,0,6),e.addMany(i(64,127),5,7,0),e.addMany(i(32,48),4,9,5),e.addMany(i(32,48),1,9,2),e.addMany(i(32,48),2,9,2),e.addMany(i(48,127),2,10,0),e.addMany(i(48,80),1,10,0),e.addMany(i(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(i(96,127),1,10,0),e.add(80,1,11,9),e.addMany(r,9,0,9),e.add(127,9,0,9),e.addMany(i(28,32),9,0,9),e.addMany(i(32,48),9,9,12),e.addMany(i(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(r,11,0,11),e.addMany(i(32,128),11,0,11),e.addMany(i(28,32),11,0,11),e.addMany(r,10,0,10),e.add(127,10,0,10),e.addMany(i(28,32),10,0,10),e.addMany(i(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(i(32,48),10,9,12),e.addMany(r,12,0,12),e.add(127,12,0,12),e.addMany(i(28,32),12,0,12),e.addMany(i(32,48),12,9,12),e.addMany(i(48,64),12,0,11),e.addMany(i(64,127),12,12,13),e.addMany(i(64,127),10,12,13),e.addMany(i(64,127),9,12,13),e.addMany(r,13,13,13),e.addMany(s,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(h,0,2,0),e.add(h,8,5,8),e.add(h,6,0,6),e.add(h,11,0,11),e.add(h,13,13,13),e}();class c extends s.Disposable{constructor(e=t.VT500_TRANSITION_TABLE){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new r.Params,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(e,t,i)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,s.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this.register(new n.OscParser),this._dcsParser=this.register(new o.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:\"\\\\\"},(()=>!0))}_identifier(e,t=[64,126]){let i=0;if(e.prefix){if(e.prefix.length>1)throw new Error(\"only one byte as prefix supported\");if(i=e.prefix.charCodeAt(0),i&&60>i||i>63)throw new Error(\"prefix must be in range 0x3c .. 0x3f\")}if(e.intermediates){if(e.intermediates.length>2)throw new Error(\"only two bytes as intermediates are supported\");for(let t=0;ts||s>47)throw new Error(\"intermediate must be in range 0x20 .. 0x2f\");i<<=8,i|=s}}if(1!==e.final.length)throw new Error(\"final must be a single byte\");const s=e.final.charCodeAt(0);if(t[0]>s||s>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return i<<=8,i|=s,i}identToString(e){const t=[];for(;e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join(\"\")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){const i=this._identifier(e,[48,126]);void 0===this._escHandlers[i]&&(this._escHandlers[i]=[]);const s=this._escHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){const i=this._identifier(e);void 0===this._csiHandlers[i]&&(this._csiHandlers[i]=[]);const s=this._csiHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,i,s,r){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=i,this._parseStack.transition=s,this._parseStack.chunkPos=r}parse(e,t,i){let s,r=0,n=0,o=0;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,o=this._parseStack.chunkPos+1;else{if(void 0===i||1===this._parseStack.state)throw this._parseStack.state=1,new Error(\"improper continuation due to previous async handler, giving up parsing\");const t=this._parseStack.handlers;let n=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](this._params),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 4:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],s=this._dcsParser.unhook(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],s=this._oscParser.end(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,o=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let i=o;i>4){case 2:for(let s=i+1;;++s){if(s>=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=0&&(s=o[a](this._params),!0!==s);a--)if(s instanceof Promise)return this._preserveStack(3,o,a,n,i),s;a<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingJoinState=0;break;case 8:do{switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}}while(++i47&&r<60);i--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:const c=this._escHandlers[this._collect<<8|r];let l=c?c.length-1:-1;for(;l>=0&&(s=c[l](),!0!==s);l--)if(s instanceof Promise)return this._preserveStack(4,c,l,n,i),s;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let s=i+1;;++s)if(s>=t||24===(r=e[s])||26===r||27===r||r>127&&r=t||(r=e[s])<32||r>127&&r{Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscHandler=t.OscParser=void 0;const s=i(5770),r=i(482),n=[];t.OscParser=class{constructor(){this._state=0,this._active=n,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=n}reset(){if(2===this._state)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=n,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||n,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].start();else this._handlerFb(this._id,\"START\")}_put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._id,\"PUT\",(0,r.utf32ToString)(e,t,i))}start(){this.reset(),this._state=1}put(e,t,i){if(3!==this._state){if(1===this._state)for(;t0&&this._put(e,t,i)}}end(e,t=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].end(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].end(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._id,\"END\",e);this._active=n,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(e){this._handler=e,this._data=\"\",this._hitLimit=!1}start(){this._data=\"\",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,r.utf32ToString)(e,t,i),this._data.length>s.PAYLOAD_LIMIT&&(this._data=\"\",this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then((e=>(this._data=\"\",this._hitLimit=!1,e)));return this._data=\"\",this._hitLimit=!1,t}}},8742:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Params=void 0;const i=2147483647;class s{static fromArray(e){const t=new s;if(!e.length)return t;for(let i=Array.isArray(e[0])?1:0;i256)throw new Error(\"maxSubParamsLength must not be greater than 256\");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){const e=new s(this.maxLength,this.maxSubParamsLength);return e.params.set(this.params),e.length=this.length,e._subParams.set(this._subParams),e._subParamsLength=this._subParamsLength,e._subParamsIdx.set(this._subParamsIdx),e._rejectDigits=this._rejectDigits,e._rejectSubDigits=this._rejectSubDigits,e._digitIsSub=this._digitIsSub,e}toArray(){const e=[];for(let t=0;t>8,s=255&this._subParamsIdx[t];s-i>0&&e.push(Array.prototype.slice.call(this._subParams,i,s))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>i?i:e}}addSubParam(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParams[this._subParamsLength++]=e>i?i:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0}getSubParams(e){const t=this._subParamsIdx[e]>>8,i=255&this._subParamsIdx[e];return i-t>0?this._subParams.subarray(t,i):null}getSubParamsAll(){const e={};for(let t=0;t>8,s=255&this._subParamsIdx[t];s-i>0&&(e[t]=this._subParams.slice(i,s))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const s=this._digitIsSub?this._subParams:this.params,r=s[t-1];s[t-1]=~r?Math.min(10*r+e,i):e}}t.Params=s},5741:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){const i={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(i),t.dispose=()=>this._wrappedAddonDispose(i),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let i=0;i{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferApiView=void 0;const s=i(3785),r=i(511);t.BufferApiView=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){const t=this._buffer.lines.get(e);if(t)return new s.BufferLineApiView(t)}getNullCell(){return new r.CellData}}},3785:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferLineApiView=void 0;const s=i(511);t.BufferLineApiView=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new s.CellData)}translateToString(e,t,i){return this._line.translateToString(e,t,i)}}},8285:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferNamespaceApi=void 0;const s=i(8771),r=i(8460),n=i(844);class o extends n.Disposable{constructor(e){super(),this._core=e,this._onBufferChange=this.register(new r.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new s.BufferApiView(this._core.buffers.normal,\"normal\"),this._alternate=new s.BufferApiView(this._core.buffers.alt,\"alternate\"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error(\"Active buffer is neither normal nor alternate\")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}t.BufferNamespaceApi=o},7975:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,(e=>t(e.toArray())))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,((e,i)=>t(e,i.toArray())))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}}},7090:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}}},744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;const n=i(8460),o=i(844),a=i(5295),h=i(2585);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let c=t.BufferService=class extends o.Disposable{get buffer(){return this.buffers.active}constructor(e){super(),this.isUserScrolling=!1,this._onResize=this.register(new n.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new n.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(e.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=this.register(new a.BufferSet(e,this))}resize(e,t){this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){const i=this.buffer;let s;s=this._cachedBlankLine,s&&s.length===this.cols&&s.getFg(0)===e.fg&&s.getBg(0)===e.bg||(s=i.getBlankLine(e,t),this._cachedBlankLine=s),s.isWrapped=t;const r=i.ybase+i.scrollTop,n=i.ybase+i.scrollBottom;if(0===i.scrollTop){const e=i.lines.isFull;n===i.lines.length-1?e?i.lines.recycle().copyFrom(s):i.lines.push(s.clone()):i.lines.splice(n+1,0,s.clone()),e?this.isUserScrolling&&(i.ydisp=Math.max(i.ydisp-1,0)):(i.ybase++,this.isUserScrolling||i.ydisp++)}else{const e=n-r+1;i.lines.shiftElements(r+1,e-1,-1),i.lines.set(n,s.clone())}this.isUserScrolling||(i.ydisp=i.ybase),this._onScroll.fire(i.ydisp)}scrollLines(e,t,i){const s=this.buffer;if(e<0){if(0===s.ydisp)return;this.isUserScrolling=!0}else e+s.ydisp>=s.ybase&&(this.isUserScrolling=!1);const r=s.ydisp;s.ydisp=Math.max(Math.min(s.ydisp+e,s.ybase),0),r!==s.ydisp&&(t||this._onScroll.fire(s.ydisp))}};t.BufferService=c=s([r(0,h.IOptionsService)],c)},7994:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}}},1753:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreMouseService=void 0;const n=i(2585),o=i(8460),a=i(844),h={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>32!==e.action},DRAG:{events:23,restrict:e=>32!==e.action||3!==e.button},ANY:{events:31,restrict:e=>!0}};function c(e,t){let i=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(i|=64,i|=e.action):(i|=3&e.button,4&e.button&&(i|=64),8&e.button&&(i|=128),32===e.action?i|=32:0!==e.action||t||(i|=3)),i}const l=String.fromCharCode,d={DEFAULT:e=>{const t=[c(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?\"\":`\u001b[M${l(t[0])}${l(t[1])}${l(t[2])}`},SGR:e=>{const t=0===e.action&&4!==e.button?\"m\":\"M\";return`\u001b[<${c(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{const t=0===e.action&&4!==e.button?\"m\":\"M\";return`\u001b[<${c(e,!0)};${e.x};${e.y}${t}`}};let _=t.CoreMouseService=class extends a.Disposable{constructor(e,t){super(),this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol=\"\",this._activeEncoding=\"\",this._lastEvent=null,this._onProtocolChange=this.register(new o.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(const e of Object.keys(h))this.addProtocol(e,h[e]);for(const e of Object.keys(d))this.addEncoding(e,d[e]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(e){if(!this._protocols[e])throw new Error(`unknown protocol \"${e}\"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw new Error(`unknown encoding \"${e}\"`);this._activeEncoding=e}reset(){this.activeProtocol=\"NONE\",this.activeEncoding=\"DEFAULT\",this._lastEvent=null}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._equalEvents(this._lastEvent,e,\"SGR_PIXELS\"===this._activeEncoding))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;const t=this._encodings[this._activeEncoding](e);return t&&(\"DEFAULT\"===this._activeEncoding?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(1&e),up:!!(2&e),drag:!!(4&e),move:!!(8&e),wheel:!!(16&e)}}_equalEvents(e,t,i){if(i){if(e.x!==t.x)return!1;if(e.y!==t.y)return!1}else{if(e.col!==t.col)return!1;if(e.row!==t.row)return!1}return e.button===t.button&&e.action===t.action&&e.ctrl===t.ctrl&&e.alt===t.alt&&e.shift===t.shift}};t.CoreMouseService=_=s([r(0,n.IBufferService),r(1,n.ICoreService)],_)},6975:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreService=void 0;const n=i(1439),o=i(8460),a=i(844),h=i(2585),c=Object.freeze({insertMode:!1}),l=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let d=t.CoreService=class extends a.Disposable{constructor(e,t,i){super(),this._bufferService=e,this._logService=t,this._optionsService=i,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new o.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new o.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new o.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new o.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}reset(){this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;const i=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&i.ybase!==i.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data \"${e}\"`,(()=>e.split(\"\").map((e=>e.charCodeAt(0))))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary \"${e}\"`,(()=>e.split(\"\").map((e=>e.charCodeAt(0))))),this._onBinary.fire(e))}};t.CoreService=d=s([r(0,h.IBufferService),r(1,h.ILogService),r(2,h.IOptionsService)],d)},9074:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DecorationService=void 0;const s=i(8055),r=i(8460),n=i(844),o=i(6106);let a=0,h=0;class c extends n.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new o.SortedList((e=>e?.marker.line)),this._onDecorationRegistered=this.register(new r.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new r.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,n.toDisposable)((()=>this.reset())))}registerDecoration(e){if(e.marker.isDisposed)return;const t=new l(e);if(t){const e=t.marker.onDispose((()=>t.dispose()));t.onDispose((()=>{t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())})),this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(const e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,i){let s=0,r=0;for(const n of this._decorations.getKeyIterator(t))s=n.options.x??0,r=s+(n.options.width??1),e>=s&&e{a=t.options.x??0,h=a+(t.options.width??1),e>=a&&e{Object.defineProperty(t,\"__esModule\",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;const s=i(2585),r=i(8343);class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}forEach(e){for(const[t,i]of this._entries.entries())e(t,i)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}}t.ServiceCollection=n,t.InstantiationService=class{constructor(){this._services=new n,this._services.set(s.IInstantiationService,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){const i=(0,r.getServiceDependencies)(e).sort(((e,t)=>e.index-t.index)),s=[];for(const t of i){const i=this._services.get(t.id);if(!i)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`);s.push(i)}const n=i.length>0?i[0].index:t.length;if(t.length!==n)throw new Error(`[createInstance] First service dependency of ${e.name} at position ${n+1} conflicts with ${t.length} static arguments`);return new e(...[...t,...s])}}},7866:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;const n=i(844),o=i(2585),a={trace:o.LogLevelEnum.TRACE,debug:o.LogLevelEnum.DEBUG,info:o.LogLevelEnum.INFO,warn:o.LogLevelEnum.WARN,error:o.LogLevelEnum.ERROR,off:o.LogLevelEnum.OFF};let h,c=t.LogService=class extends n.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=o.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange(\"logLevel\",(()=>this._updateLogLevel()))),h=this}_updateLogLevel(){this._logLevel=a[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;tJSON.stringify(e))).join(\", \")})`);const t=s.apply(this,e);return h.trace(`GlyphRenderer#${s.name} return`,t),t}}},7302:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;const s=i(8460),r=i(844),n=i(6114);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:\"block\",cursorWidth:1,cursorInactiveStyle:\"outline\",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:\"alt\",fastScrollSensitivity:5,fontFamily:\"courier-new, courier, monospace\",fontSize:15,fontWeight:\"normal\",fontWeightBold:\"bold\",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:\"info\",logger:null,scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rescaleOverlappingGlyphs:!1,rightClickSelectsWord:n.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:\" ()[]{}',\\\"`\",altClickMovesCursor:!0,convertEol:!1,termName:\"xterm\",cancelEvents:!1,overviewRulerWidth:0};const o=[\"normal\",\"bold\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"];class a extends r.Disposable{constructor(e){super(),this._onOptionChange=this.register(new s.EventEmitter),this.onOptionChange=this._onOptionChange.event;const i={...t.DEFAULT_OPTIONS};for(const t in e)if(t in i)try{const s=e[t];i[t]=this._sanitizeAndValidateOption(t,s)}catch(e){console.error(e)}this.rawOptions=i,this.options={...i},this._setupOptions(),this.register((0,r.toDisposable)((()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null})))}onSpecificOptionChange(e,t){return this.onOptionChange((i=>{i===e&&t(this.rawOptions[e])}))}onMultipleOptionChange(e,t){return this.onOptionChange((i=>{-1!==e.indexOf(i)&&t()}))}_setupOptions(){const e=e=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key \"${e}\"`);return this.rawOptions[e]},i=(e,i)=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key \"${e}\"`);i=this._sanitizeAndValidateOption(e,i),this.rawOptions[e]!==i&&(this.rawOptions[e]=i,this._onOptionChange.fire(e))};for(const t in this.rawOptions){const s={get:e.bind(this,t),set:i.bind(this,t)};Object.defineProperty(this.options,t,s)}}_sanitizeAndValidateOption(e,i){switch(e){case\"cursorStyle\":if(i||(i=t.DEFAULT_OPTIONS[e]),!function(e){return\"block\"===e||\"underline\"===e||\"bar\"===e}(i))throw new Error(`\"${i}\" is not a valid value for ${e}`);break;case\"wordSeparator\":i||(i=t.DEFAULT_OPTIONS[e]);break;case\"fontWeight\":case\"fontWeightBold\":if(\"number\"==typeof i&&1<=i&&i<=1e3)break;i=o.includes(i)?i:t.DEFAULT_OPTIONS[e];break;case\"cursorWidth\":i=Math.floor(i);case\"lineHeight\":case\"tabStopWidth\":if(i<1)throw new Error(`${e} cannot be less than 1, value: ${i}`);break;case\"minimumContrastRatio\":i=Math.max(1,Math.min(21,Math.round(10*i)/10));break;case\"scrollback\":if((i=Math.min(i,4294967295))<0)throw new Error(`${e} cannot be less than 0, value: ${i}`);break;case\"fastScrollSensitivity\":case\"scrollSensitivity\":if(i<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${i}`);break;case\"rows\":case\"cols\":if(!i&&0!==i)throw new Error(`${e} must be numeric, value: ${i}`);break;case\"windowsPty\":i=i??{}}return i}}t.OptionsService=a},2660:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscLinkService=void 0;const n=i(2585);let o=t.OscLinkService=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){const t=this._bufferService.buffer;if(void 0===e.id){const i=t.addMarker(t.ybase+t.y),s={data:e,id:this._nextId++,lines:[i]};return i.onDispose((()=>this._removeMarkerFromLink(s,i))),this._dataByLinkId.set(s.id,s),s.id}const i=e,s=this._getEntryIdKey(i),r=this._entriesWithId.get(s);if(r)return this.addLineToLink(r.id,t.ybase+t.y),r.id;const n=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(i),data:i,lines:[n]};return n.onDispose((()=>this._removeMarkerFromLink(o,n))),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){const i=this._dataByLinkId.get(e);if(i&&i.lines.every((e=>e.line!==t))){const e=this._bufferService.buffer.addMarker(t);i.lines.push(e),e.onDispose((()=>this._removeMarkerFromLink(i,e)))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){const i=e.lines.indexOf(t);-1!==i&&(e.lines.splice(i,1),0===e.lines.length&&(void 0!==e.data.id&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};t.OscLinkService=o=s([r(0,n.IBufferService)],o)},8343:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;const i=\"di$target\",s=\"di$dependencies\";t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[s]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const r=function(e,t,n){if(3!==arguments.length)throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");!function(e,t,r){t[i]===t?t[s].push({id:e,index:r}):(t[s]=[{id:e,index:r}],t[i]=t)}(r,e,n)};return r.toString=()=>e,t.serviceRegistry.set(e,r),r}},2585:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(8343);var r;t.IBufferService=(0,s.createDecorator)(\"BufferService\"),t.ICoreMouseService=(0,s.createDecorator)(\"CoreMouseService\"),t.ICoreService=(0,s.createDecorator)(\"CoreService\"),t.ICharsetService=(0,s.createDecorator)(\"CharsetService\"),t.IInstantiationService=(0,s.createDecorator)(\"InstantiationService\"),function(e){e[e.TRACE=0]=\"TRACE\",e[e.DEBUG=1]=\"DEBUG\",e[e.INFO=2]=\"INFO\",e[e.WARN=3]=\"WARN\",e[e.ERROR=4]=\"ERROR\",e[e.OFF=5]=\"OFF\"}(r||(t.LogLevelEnum=r={})),t.ILogService=(0,s.createDecorator)(\"LogService\"),t.IOptionsService=(0,s.createDecorator)(\"OptionsService\"),t.IOscLinkService=(0,s.createDecorator)(\"OscLinkService\"),t.IUnicodeService=(0,s.createDecorator)(\"UnicodeService\"),t.IDecorationService=(0,s.createDecorator)(\"DecorationService\")},1480:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeService=void 0;const s=i(8460),r=i(225);class n{static extractShouldJoin(e){return 0!=(1&e)}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,i=!1){return(16777215&e)<<3|(3&t)<<1|(i?1:0)}constructor(){this._providers=Object.create(null),this._active=\"\",this._onChange=new s.EventEmitter,this.onChange=this._onChange.event;const e=new r.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version \"${e}\"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0,i=0;const s=e.length;for(let r=0;r=s)return t+this.wcwidth(o);const i=e.charCodeAt(r);56320<=i&&i<=57343?o=1024*(o-55296)+i-56320+65536:t+=this.wcwidth(i)}const a=this.charProperties(o,i);let h=n.extractWidth(a);n.extractShouldJoin(a)&&(h-=n.extractWidth(i)),t+=h,i=a}return t}charProperties(e,t){return this._activeProvider.charProperties(e,t)}}t.UnicodeService=n}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}var s={};return(()=>{var e=s;Object.defineProperty(e,\"__esModule\",{value:!0}),e.Terminal=void 0;const t=i(9042),r=i(3236),n=i(844),o=i(5741),a=i(8285),h=i(7975),c=i(7090),l=[\"cols\",\"rows\"];class d extends n.Disposable{constructor(e){super(),this._core=this.register(new r.Terminal(e)),this._addonManager=this.register(new o.AddonManager),this._publicOptions={...this._core.options};const t=e=>this._core.options[e],i=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(const e in this._core.options){const s={get:t.bind(this,e),set:i.bind(this,e)};Object.defineProperty(this._publicOptions,e,s)}}_checkReadonlyOptions(e){if(l.includes(e))throw new Error(`Option \"${e}\" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error(\"You must set the allowProposedApi option to true to use proposed API\")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new h.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new c.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this.register(new a.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const e=this._core.coreService.decPrivateModes;let t=\"none\";switch(this._core.coreMouseService.activeProtocol){case\"X10\":t=\"x10\";break;case\"VT200\":t=\"vt200\";break;case\"DRAG\":t=\"drag\";break;case\"ANY\":t=\"any\"}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(const t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,i){this._verifyIntegers(e,t,i),this._core.select(e,t,i)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write(\"\\r\\n\",t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return t}_verifyIntegers(...e){for(const t of e)if(t===1/0||isNaN(t)||t%1!=0)throw new Error(\"This API only accepts integers\")}_verifyPositiveIntegers(...e){for(const t of e)if(t&&(t===1/0||isNaN(t)||t%1!=0||t<0))throw new Error(\"This API only accepts positive integers\")}}e.Terminal=d})(),s})()));\n//# sourceMappingURL=xterm.js.map","import { FitAddon } from '@xterm/addon-fit'\nimport { Terminal } from '@xterm/xterm'\nimport { debounce } from 'lodash'\nimport { markRaw, onMounted, onUnmounted, Ref } from 'vue'\nimport '@xterm/xterm/css/xterm.css'\n\nexport function useTerminal(element: Ref) {\n const fitAddon = new FitAddon()\n const terminal = markRaw(\n new Terminal({\n convertEol: true\n })\n )\n terminal.loadAddon(fitAddon)\n\n terminal.attachCustomKeyEventHandler((event) => {\n if (event.type === 'keydown' && (event.ctrlKey || event.metaKey)) {\n if (event.key === 'c' || event.key === 'v') {\n // Allow default browser copy/paste handling\n return false\n }\n }\n return true\n })\n\n onMounted(async () => {\n terminal.open(element.value)\n })\n\n onUnmounted(() => {\n terminal.dispose()\n })\n\n return {\n terminal,\n useAutoSize(\n root: Ref,\n autoRows: boolean = true,\n autoCols: boolean = true,\n onResize?: () => void\n ) {\n const ensureValidRows = (rows: number | undefined) => {\n if (rows == null || isNaN(rows)) {\n return root.value?.clientHeight / 20\n }\n return rows\n }\n\n const ensureValidCols = (cols: number | undefined): number => {\n if (cols == null || isNaN(cols)) {\n // Sometimes this is NaN if so, estimate.\n return root.value?.clientWidth / 8\n }\n return cols\n }\n\n const resize = () => {\n const dims = fitAddon.proposeDimensions()\n // Sometimes propose returns NaN, so we may need to estimate.\n terminal.resize(\n autoCols ? ensureValidCols(dims?.cols) : terminal.cols,\n autoRows ? ensureValidRows(dims?.rows) : terminal.rows\n )\n onResize?.()\n }\n\n const resizeObserver = new ResizeObserver(debounce(resize, 25))\n\n onMounted(async () => {\n resizeObserver.observe(root.value)\n resize()\n })\n\n onUnmounted(() => {\n resizeObserver.disconnect()\n })\n\n return { resize }\n }\n }\n}\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-progressspinner {\\n position: relative;\\n margin: 0 auto;\\n width: 100px;\\n height: 100px;\\n display: inline-block;\\n}\\n\\n.p-progressspinner::before {\\n content: \\\"\\\";\\n display: block;\\n padding-top: 100%;\\n}\\n\\n.p-progressspinner-spin {\\n height: 100%;\\n transform-origin: center center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n margin: auto;\\n animation: p-progressspinner-rotate 2s linear infinite;\\n}\\n\\n.p-progressspinner-circle {\\n stroke-dasharray: 89, 200;\\n stroke-dashoffset: 0;\\n stroke: \".concat(dt('progressspinner.color.1'), \";\\n animation: p-progressspinner-dash 1.5s ease-in-out infinite, p-progressspinner-color 6s ease-in-out infinite;\\n stroke-linecap: round;\\n}\\n\\n@keyframes p-progressspinner-rotate {\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes p-progressspinner-dash {\\n 0% {\\n stroke-dasharray: 1, 200;\\n stroke-dashoffset: 0;\\n }\\n 50% {\\n stroke-dasharray: 89, 200;\\n stroke-dashoffset: -35px;\\n }\\n 100% {\\n stroke-dasharray: 89, 200;\\n stroke-dashoffset: -124px;\\n }\\n}\\n@keyframes p-progressspinner-color {\\n 100%,\\n 0% {\\n stroke: \").concat(dt('progressspinner.color.1'), \";\\n }\\n 40% {\\n stroke: \").concat(dt('progressspinner.color.2'), \";\\n }\\n 66% {\\n stroke: \").concat(dt('progressspinner.color.3'), \";\\n }\\n 80%,\\n 90% {\\n stroke: \").concat(dt('progressspinner.color.4'), \";\\n }\\n}\\n\");\n};\nvar classes = {\n root: 'p-progressspinner',\n spin: 'p-progressspinner-spin',\n circle: 'p-progressspinner-circle'\n};\nvar ProgressSpinnerStyle = BaseStyle.extend({\n name: 'progressspinner',\n theme: theme,\n classes: classes\n});\n\nexport { ProgressSpinnerStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ProgressSpinnerStyle from 'primevue/progressspinner/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseProgressSpinner',\n \"extends\": BaseComponent,\n props: {\n strokeWidth: {\n type: String,\n \"default\": '2'\n },\n fill: {\n type: String,\n \"default\": 'none'\n },\n animationDuration: {\n type: String,\n \"default\": '2s'\n }\n },\n style: ProgressSpinnerStyle,\n provide: function provide() {\n return {\n $pcProgressSpinner: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ProgressSpinner',\n \"extends\": script$1,\n inheritAttrs: false,\n computed: {\n svgStyle: function svgStyle() {\n return {\n 'animation-duration': this.animationDuration\n };\n }\n }\n};\n\nvar _hoisted_1 = [\"fill\", \"stroke-width\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"progressbar\"\n }, _ctx.ptmi('root')), [(openBlock(), createElementBlock(\"svg\", mergeProps({\n \"class\": _ctx.cx('spin'),\n viewBox: \"25 25 50 50\",\n style: $options.svgStyle\n }, _ctx.ptm('spin')), [createElementVNode(\"circle\", mergeProps({\n \"class\": _ctx.cx('circle'),\n cx: \"50\",\n cy: \"50\",\n r: \"20\",\n fill: _ctx.fill,\n \"stroke-width\": _ctx.strokeWidth,\n strokeMiterlimit: \"10\"\n }, _ctx.ptm('circle')), null, 16, _hoisted_1)], 16))], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n\n\n","import { useI18n } from 'vue-i18n'\nimport { markRaw } from 'vue'\nimport { BottomPanelExtension } from '@/types/extensionTypes'\nimport LogsTerminal from '@/components/bottomPanel/tabs/terminal/LogsTerminal.vue'\nimport CommandTerminal from '@/components/bottomPanel/tabs/terminal/CommandTerminal.vue'\n\nexport const useLogsTerminalTab = (): BottomPanelExtension => {\n const { t } = useI18n()\n return {\n id: 'logs-terminal',\n title: t('g.logs'),\n component: markRaw(LogsTerminal),\n type: 'vue'\n }\n}\n\nexport const useCommandTerminalTab = (): BottomPanelExtension => {\n const { t } = useI18n()\n return {\n id: 'command-terminal',\n title: t('g.terminal'),\n component: markRaw(CommandTerminal),\n type: 'vue'\n }\n}\n","import type { BottomPanelExtension } from '@/types/extensionTypes'\nimport { defineStore } from 'pinia'\nimport { computed, ref } from 'vue'\nimport { useCommandStore } from '@/stores/commandStore'\nimport {\n useLogsTerminalTab,\n useCommandTerminalTab\n} from '@/hooks/bottomPanelTabs/terminalTabs'\nimport { ComfyExtension } from '@/types/comfy'\nimport { isElectron } from '@/utils/envUtil'\n\nexport const useBottomPanelStore = defineStore('bottomPanel', () => {\n const bottomPanelVisible = ref(false)\n const toggleBottomPanel = () => {\n // If there are no tabs, don't show the bottom panel\n if (bottomPanelTabs.value.length === 0) {\n return\n }\n bottomPanelVisible.value = !bottomPanelVisible.value\n }\n\n const bottomPanelTabs = ref([])\n const activeBottomPanelTabId = ref(null)\n const activeBottomPanelTab = computed(() => {\n return (\n bottomPanelTabs.value.find(\n (tab) => tab.id === activeBottomPanelTabId.value\n ) ?? null\n )\n })\n const setActiveTab = (tabId: string) => {\n activeBottomPanelTabId.value = tabId\n }\n const toggleBottomPanelTab = (tabId: string) => {\n if (activeBottomPanelTabId.value === tabId && bottomPanelVisible.value) {\n bottomPanelVisible.value = false\n } else {\n activeBottomPanelTabId.value = tabId\n bottomPanelVisible.value = true\n }\n }\n const registerBottomPanelTab = (tab: BottomPanelExtension) => {\n bottomPanelTabs.value = [...bottomPanelTabs.value, tab]\n if (bottomPanelTabs.value.length === 1) {\n activeBottomPanelTabId.value = tab.id\n }\n useCommandStore().registerCommand({\n id: `Workspace.ToggleBottomPanelTab.${tab.id}`,\n icon: 'pi pi-list',\n label: `Toggle ${tab.title} Bottom Panel`,\n function: () => toggleBottomPanelTab(tab.id)\n })\n }\n\n const registerCoreBottomPanelTabs = () => {\n registerBottomPanelTab(useLogsTerminalTab())\n if (isElectron()) {\n registerBottomPanelTab(useCommandTerminalTab())\n }\n }\n\n const registerExtensionBottomPanelTabs = (extension: ComfyExtension) => {\n if (extension.bottomPanelTabs) {\n extension.bottomPanelTabs.forEach(registerBottomPanelTab)\n }\n }\n\n return {\n bottomPanelVisible,\n toggleBottomPanel,\n bottomPanelTabs,\n activeBottomPanelTab,\n activeBottomPanelTabId,\n setActiveTab,\n toggleBottomPanelTab,\n registerBottomPanelTab,\n registerCoreBottomPanelTabs,\n registerExtensionBottomPanelTabs\n }\n})\n","import { ComfyWidgets, ComfyWidgetConstructor } from '@/scripts/widgets'\nimport { defineStore } from 'pinia'\nimport { ref, computed } from 'vue'\nimport type { BaseInputSpec } from './nodeDefStore'\n\nexport const useWidgetStore = defineStore('widget', () => {\n const coreWidgets = ComfyWidgets\n const customWidgets = ref>({})\n const widgets = computed(() => ({\n ...customWidgets.value,\n ...coreWidgets\n }))\n\n function getWidgetType(type: string, inputName: string) {\n if (type === 'COMBO') {\n return 'COMBO'\n } else if (`${type}:${inputName}` in widgets.value) {\n return `${type}:${inputName}`\n } else if (type in widgets.value) {\n return type\n } else {\n return null\n }\n }\n\n function inputIsWidget(spec: BaseInputSpec) {\n return getWidgetType(spec.type, spec.name) !== null\n }\n\n function registerCustomWidgets(\n newWidgets: Record\n ) {\n customWidgets.value = {\n ...customWidgets.value,\n ...newWidgets\n }\n }\n\n return {\n widgets,\n getWidgetType,\n inputIsWidget,\n registerCustomWidgets\n }\n})\n","import { ref, computed, markRaw } from 'vue'\nimport { defineStore } from 'pinia'\nimport type { ComfyExtension } from '@/types/comfy'\nimport { useKeybindingStore } from './keybindingStore'\nimport { useCommandStore } from './commandStore'\nimport { useSettingStore } from './settingStore'\nimport { app } from '@/scripts/app'\nimport { useMenuItemStore } from './menuItemStore'\nimport { useBottomPanelStore } from './workspace/bottomPanelStore'\nimport { useWidgetStore } from './widgetStore'\n\nexport const useExtensionStore = defineStore('extension', () => {\n // For legacy reasons, the name uniquely identifies an extension\n const extensionByName = ref>({})\n const extensions = computed(() => Object.values(extensionByName.value))\n // Not using computed because disable extension requires reloading of the page.\n // Dynamically update this list won't affect extensions that are already loaded.\n const disabledExtensionNames = ref>(new Set())\n\n // Disabled extension names that are currently not in the extension list.\n // If a node pack is disabled in the backend, we shouldn't remove the configuration\n // of the frontend extension disable list, in case the node pack is re-enabled.\n const inactiveDisabledExtensionNames = computed(() => {\n return Array.from(disabledExtensionNames.value).filter(\n (name) => !(name in extensionByName.value)\n )\n })\n\n const isExtensionEnabled = (name: string) =>\n !disabledExtensionNames.value.has(name)\n const enabledExtensions = computed(() => {\n return extensions.value.filter((ext) => isExtensionEnabled(ext.name))\n })\n\n function registerExtension(extension: ComfyExtension) {\n if (!extension.name) {\n throw new Error(\"Extensions must have a 'name' property.\")\n }\n\n if (extensionByName.value[extension.name]) {\n throw new Error(`Extension named '${extension.name}' already registered.`)\n }\n\n if (disabledExtensionNames.value.has(extension.name)) {\n console.log(`Extension ${extension.name} is disabled.`)\n }\n\n extensionByName.value[extension.name] = markRaw(extension)\n useKeybindingStore().loadExtensionKeybindings(extension)\n useCommandStore().loadExtensionCommands(extension)\n useMenuItemStore().loadExtensionMenuCommands(extension)\n useSettingStore().loadExtensionSettings(extension)\n useBottomPanelStore().registerExtensionBottomPanelTabs(extension)\n if (extension.getCustomWidgets) {\n // TODO(huchenlei): We should deprecate the async return value of\n // getCustomWidgets.\n ;(async () => {\n if (extension.getCustomWidgets) {\n const widgets = await extension.getCustomWidgets(app)\n useWidgetStore().registerCustomWidgets(widgets)\n }\n })()\n }\n /*\n * Extensions are currently stored in both extensionStore and app.extensions.\n * Legacy jest tests still depend on app.extensions being populated.\n */\n app.extensions.push(extension)\n }\n\n function loadDisabledExtensionNames() {\n disabledExtensionNames.value = new Set(\n useSettingStore().get('Comfy.Extension.Disabled')\n )\n // pysssss.Locking is replaced by pin/unpin in ComfyUI core.\n // https://github.com/Comfy-Org/litegraph.js/pull/117\n disabledExtensionNames.value.add('pysssss.Locking')\n // pysssss.SnapToGrid is replaced by Comfy.Graph.AlwaysSnapToGrid in ComfyUI core.\n // pysssss.SnapToGrid tries to write global app.shiftDown state, which is no longer\n // allowed since v1.3.12.\n // https://github.com/Comfy-Org/ComfyUI_frontend/issues/1176\n disabledExtensionNames.value.add('pysssss.SnapToGrid')\n }\n\n // Some core extensions are registered before the store is initialized, e.g.\n // colorPalette.\n // Register them manually here so the state of app.extensions and\n // extensionByName are in sync.\n for (const ext of app.extensions) {\n extensionByName.value[ext.name] = markRaw(ext)\n }\n\n return {\n extensions,\n enabledExtensions,\n inactiveDisabledExtensionNames,\n isExtensionEnabled,\n registerExtension,\n loadDisabledExtensionNames\n }\n})\n","import { AboutPageBadge } from '@/types/comfy'\nimport { defineStore } from 'pinia'\nimport { computed } from 'vue'\nimport { useSystemStatsStore } from './systemStatsStore'\nimport { useExtensionStore } from './extensionStore'\nimport { electronAPI, isElectron } from '@/utils/envUtil'\n\nexport const useAboutPanelStore = defineStore('aboutPanel', () => {\n const frontendVersion = __COMFYUI_FRONTEND_VERSION__\n const extensionStore = useExtensionStore()\n const systemStatsStore = useSystemStatsStore()\n const coreVersion = computed(\n () => systemStatsStore?.systemStats?.system?.comfyui_version ?? ''\n )\n\n const coreBadges = computed(() => [\n // In electron, the ComfyUI is packaged without the git repo,\n // so the python server's API doesn't have the version info.\n {\n label: `ComfyUI ${\n isElectron()\n ? 'v' + electronAPI().getComfyUIVersion()\n : coreVersion.value\n }`,\n url: 'https://github.com/comfyanonymous/ComfyUI',\n icon: 'pi pi-github'\n },\n {\n label: `ComfyUI_frontend v${frontendVersion}`,\n url: 'https://github.com/Comfy-Org/ComfyUI_frontend',\n icon: 'pi pi-github'\n },\n {\n label: 'Discord',\n url: 'https://www.comfy.org/discord',\n icon: 'pi pi-discord'\n },\n { label: 'ComfyOrg', url: 'https://www.comfy.org/', icon: 'pi pi-globe' }\n ])\n\n const allBadges = computed(() => [\n ...coreBadges.value,\n ...extensionStore.extensions.flatMap((e) => e.aboutPageBadges ?? [])\n ])\n\n return {\n badges: allBadges\n }\n})\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronLeftIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronRightIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tabview-tablist-container {\\n position: relative;\\n}\\n\\n.p-tabview-scrollable > .p-tabview-tablist-container {\\n overflow: hidden;\\n}\\n\\n.p-tabview-tablist-scroll-container {\\n overflow-x: auto;\\n overflow-y: hidden;\\n scroll-behavior: smooth;\\n scrollbar-width: none;\\n overscroll-behavior: contain auto;\\n}\\n\\n.p-tabview-tablist-scroll-container::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.p-tabview-tablist {\\n display: flex;\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n flex: 1 1 auto;\\n background: \".concat(dt('tabview.tab.list.background'), \";\\n border: 1px solid \").concat(dt('tabview.tab.list.border.color'), \";\\n border-width: 0 0 1px 0;\\n position: relative;\\n}\\n\\n.p-tabview-tab-header {\\n cursor: pointer;\\n user-select: none;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n position: relative;\\n overflow: hidden;\\n border-style: solid;\\n border-width: 0 0 1px 0;\\n border-color: transparent transparent \").concat(dt('tabview.tab.border.color'), \" transparent;\\n color: \").concat(dt('tabview.tab.color'), \";\\n padding: 1rem 1.125rem;\\n font-weight: 600;\\n border-top-right-radius: \").concat(dt('border.radius.md'), \";\\n border-top-left-radius: \").concat(dt('border.radius.md'), \";\\n transition: color \").concat(dt('tabview.transition.duration'), \", outline-color \").concat(dt('tabview.transition.duration'), \";\\n margin: 0 0 -1px 0;\\n outline-color: transparent;\\n}\\n\\n.p-tabview-tablist-item:not(.p-disabled) .p-tabview-tab-header:focus-visible {\\n outline: \").concat(dt('focus.ring.width'), \" \").concat(dt('focus.ring.style'), \" \").concat(dt('focus.ring.color'), \";\\n outline-offset: -1px;\\n}\\n\\n.p-tabview-tablist-item:not(.p-highlight):not(.p-disabled):hover > .p-tabview-tab-header {\\n color: \").concat(dt('tabview.tab.hover.color'), \";\\n}\\n\\n.p-tabview-tablist-item.p-highlight > .p-tabview-tab-header {\\n color: \").concat(dt('tabview.tab.active.color'), \";\\n}\\n\\n.p-tabview-tab-title {\\n line-height: 1;\\n white-space: nowrap;\\n}\\n\\n.p-tabview-next-button,\\n.p-tabview-prev-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n z-index: 2;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: \").concat(dt('tabview.nav.button.background'), \";\\n color: \").concat(dt('tabview.nav.button.color'), \";\\n width: 2.5rem;\\n border-radius: 0;\\n outline-color: transparent;\\n transition: color \").concat(dt('tabview.transition.duration'), \", outline-color \").concat(dt('tabview.transition.duration'), \";\\n box-shadow: \").concat(dt('tabview.nav.button.shadow'), \";\\n border: none;\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.p-tabview-next-button:focus-visible,\\n.p-tabview-prev-button:focus-visible {\\n outline: \").concat(dt('focus.ring.width'), \" \").concat(dt('focus.ring.style'), \" \").concat(dt('focus.ring.color'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-tabview-next-button:hover,\\n.p-tabview-prev-button:hover {\\n color: \").concat(dt('tabview.nav.button.hover.color'), \";\\n}\\n\\n.p-tabview-prev-button {\\n left: 0;\\n}\\n\\n.p-tabview-next-button {\\n right: 0;\\n}\\n\\n.p-tabview-panels {\\n background: \").concat(dt('tabview.tab.panel.background'), \";\\n color: \").concat(dt('tabview.tab.panel.color'), \";\\n padding: 0.875rem 1.125rem 1.125rem 1.125rem;\\n}\\n\\n.p-tabview-ink-bar {\\n z-index: 1;\\n display: block;\\n position: absolute;\\n bottom: -1px;\\n height: 1px;\\n background: \").concat(dt('tabview.tab.active.border.color'), \";\\n transition: 250ms cubic-bezier(0.35, 0, 0.25, 1);\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tabview p-component', {\n 'p-tabview-scrollable': props.scrollable\n }];\n },\n navContainer: 'p-tabview-tablist-container',\n prevButton: 'p-tabview-prev-button',\n navContent: 'p-tabview-tablist-scroll-container',\n nav: 'p-tabview-tablist',\n tab: {\n header: function header(_ref3) {\n var instance = _ref3.instance,\n tab = _ref3.tab,\n index = _ref3.index;\n return ['p-tabview-tablist-item', instance.getTabProp(tab, 'headerClass'), {\n 'p-tabview-tablist-item-active': instance.d_activeIndex === index,\n 'p-disabled': instance.getTabProp(tab, 'disabled')\n }];\n },\n headerAction: 'p-tabview-tab-header',\n headerTitle: 'p-tabview-tab-title',\n content: function content(_ref4) {\n var instance = _ref4.instance,\n tab = _ref4.tab;\n return ['p-tabview-panel', instance.getTabProp(tab, 'contentClass')];\n }\n },\n inkbar: 'p-tabview-ink-bar',\n nextButton: 'p-tabview-next-button',\n panelContainer: 'p-tabview-panels'\n};\nvar TabViewStyle = BaseStyle.extend({\n name: 'tabview',\n theme: theme,\n classes: classes\n});\n\nexport { TabViewStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { getWidth, getAttribute, findSingle, focus, getOffset } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveDirective, openBlock, createElementBlock, createElementVNode, withDirectives, renderSlot, createBlock, resolveDynamicComponent, createCommentVNode, Fragment, renderList, toDisplayString, vShow } from 'vue';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabViewStyle from 'primevue/tabview/style';\n\nvar script$1 = {\n name: 'BaseTabView',\n \"extends\": BaseComponent,\n props: {\n activeIndex: {\n type: Number,\n \"default\": 0\n },\n lazy: {\n type: Boolean,\n \"default\": false\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n prevButtonProps: {\n type: null,\n \"default\": null\n },\n nextButtonProps: {\n type: null,\n \"default\": null\n },\n prevIcon: {\n type: String,\n \"default\": undefined\n },\n nextIcon: {\n type: String,\n \"default\": undefined\n }\n },\n style: TabViewStyle,\n provide: function provide() {\n return {\n $pcTabs: undefined,\n // Backwards compatible to prevent component from breaking\n $pcTabView: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabView',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:activeIndex', 'tab-change', 'tab-click'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_activeIndex: this.activeIndex,\n isPrevButtonDisabled: true,\n isNextButtonDisabled: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeIndex: function activeIndex(newValue) {\n this.d_activeIndex = newValue;\n this.scrollInView({\n index: newValue\n });\n }\n },\n mounted: function mounted() {\n console.warn('Deprecated since v4. Use Tabs component instead.');\n this.id = this.id || UniqueComponentId();\n this.updateInkBar();\n this.scrollable && this.updateButtonState();\n },\n updated: function updated() {\n this.updateInkBar();\n this.scrollable && this.updateButtonState();\n },\n methods: {\n isTabPanel: function isTabPanel(child) {\n return child.type.name === 'TabPanel';\n },\n isTabActive: function isTabActive(index) {\n return this.d_activeIndex === index;\n },\n getTabProp: function getTabProp(tab, name) {\n return tab.props ? tab.props[name] : undefined;\n },\n getKey: function getKey(tab, index) {\n return this.getTabProp(tab, 'header') || index;\n },\n getTabHeaderActionId: function getTabHeaderActionId(index) {\n return \"\".concat(this.id, \"_\").concat(index, \"_header_action\");\n },\n getTabContentId: function getTabContentId(index) {\n return \"\".concat(this.id, \"_\").concat(index, \"_content\");\n },\n getTabPT: function getTabPT(tab, key, index) {\n var count = this.tabs.length;\n var tabMetaData = {\n props: tab.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: index,\n count: count,\n first: index === 0,\n last: index === count - 1,\n active: this.isTabActive(index)\n }\n };\n return mergeProps(this.ptm(\"tabpanel.\".concat(key), {\n tabpanel: tabMetaData\n }), this.ptm(\"tabpanel.\".concat(key), tabMetaData), this.ptmo(this.getTabProp(tab, 'pt'), key, tabMetaData));\n },\n onScroll: function onScroll(event) {\n this.scrollable && this.updateButtonState();\n event.preventDefault();\n },\n onPrevButtonClick: function onPrevButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content);\n var pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick: function onNextButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content) - this.getVisibleButtonWidths();\n var pos = content.scrollLeft + width;\n var lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n onTabClick: function onTabClick(event, tab, index) {\n this.changeActiveIndex(event, tab, index);\n this.$emit('tab-click', {\n originalEvent: event,\n index: index\n });\n },\n onTabKeyDown: function onTabKeyDown(event, tab, index) {\n switch (event.code) {\n case 'ArrowLeft':\n this.onTabArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onTabArrowRightKey(event);\n break;\n case 'Home':\n this.onTabHomeKey(event);\n break;\n case 'End':\n this.onTabEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onTabEnterKey(event, tab, index);\n break;\n }\n },\n onTabArrowRightKey: function onTabArrowRightKey(event) {\n var nextHeaderAction = this.findNextHeaderAction(event.target.parentElement);\n nextHeaderAction ? this.changeFocusedTab(event, nextHeaderAction) : this.onTabHomeKey(event);\n event.preventDefault();\n },\n onTabArrowLeftKey: function onTabArrowLeftKey(event) {\n var prevHeaderAction = this.findPrevHeaderAction(event.target.parentElement);\n prevHeaderAction ? this.changeFocusedTab(event, prevHeaderAction) : this.onTabEndKey(event);\n event.preventDefault();\n },\n onTabHomeKey: function onTabHomeKey(event) {\n var firstHeaderAction = this.findFirstHeaderAction();\n this.changeFocusedTab(event, firstHeaderAction);\n event.preventDefault();\n },\n onTabEndKey: function onTabEndKey(event) {\n var lastHeaderAction = this.findLastHeaderAction();\n this.changeFocusedTab(event, lastHeaderAction);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView({\n index: this.$refs.nav.children.length - 2\n });\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView({\n index: 0\n });\n event.preventDefault();\n },\n onTabEnterKey: function onTabEnterKey(event, tab, index) {\n this.changeActiveIndex(event, tab, index);\n event.preventDefault();\n },\n findNextHeaderAction: function findNextHeaderAction(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var headerElement = selfCheck ? tabElement : tabElement.nextElementSibling;\n return headerElement ? getAttribute(headerElement, 'data-p-disabled') || getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findNextHeaderAction(headerElement) : findSingle(headerElement, '[data-pc-section=\"headeraction\"]') : null;\n },\n findPrevHeaderAction: function findPrevHeaderAction(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var headerElement = selfCheck ? tabElement : tabElement.previousElementSibling;\n return headerElement ? getAttribute(headerElement, 'data-p-disabled') || getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findPrevHeaderAction(headerElement) : findSingle(headerElement, '[data-pc-section=\"headeraction\"]') : null;\n },\n findFirstHeaderAction: function findFirstHeaderAction() {\n return this.findNextHeaderAction(this.$refs.nav.firstElementChild, true);\n },\n findLastHeaderAction: function findLastHeaderAction() {\n return this.findPrevHeaderAction(this.$refs.nav.lastElementChild, true);\n },\n changeActiveIndex: function changeActiveIndex(event, tab, index) {\n if (!this.getTabProp(tab, 'disabled') && this.d_activeIndex !== index) {\n this.d_activeIndex = index;\n this.$emit('update:activeIndex', index);\n this.$emit('tab-change', {\n originalEvent: event,\n index: index\n });\n this.scrollInView({\n index: index\n });\n }\n },\n changeFocusedTab: function changeFocusedTab(event, element) {\n if (element) {\n focus(element);\n this.scrollInView({\n element: element\n });\n if (this.selectOnFocus) {\n var index = parseInt(element.parentElement.dataset.pcIndex, 10);\n var tab = this.tabs[index];\n this.changeActiveIndex(event, tab, index);\n }\n }\n },\n scrollInView: function scrollInView(_ref) {\n var element = _ref.element,\n _ref$index = _ref.index,\n index = _ref$index === void 0 ? -1 : _ref$index;\n var currentElement = element || this.$refs.nav.children[index];\n if (currentElement) {\n currentElement.scrollIntoView && currentElement.scrollIntoView({\n block: 'nearest'\n });\n }\n },\n updateInkBar: function updateInkBar() {\n var tabHeader = this.$refs.nav.children[this.d_activeIndex];\n this.$refs.inkbar.style.width = getWidth(tabHeader) + 'px';\n this.$refs.inkbar.style.left = getOffset(tabHeader).left - getOffset(this.$refs.nav).left + 'px';\n },\n updateButtonState: function updateButtonState() {\n var content = this.$refs.content;\n var scrollLeft = content.scrollLeft,\n scrollWidth = content.scrollWidth;\n var width = getWidth(content);\n this.isPrevButtonDisabled = scrollLeft === 0;\n this.isNextButtonDisabled = parseInt(scrollLeft) === scrollWidth - width;\n },\n getVisibleButtonWidths: function getVisibleButtonWidths() {\n var _this$$refs = this.$refs,\n prevBtn = _this$$refs.prevBtn,\n nextBtn = _this$$refs.nextBtn;\n return [prevBtn, nextBtn].reduce(function (acc, el) {\n return el ? acc + getWidth(el) : acc;\n }, 0);\n }\n },\n computed: {\n tabs: function tabs() {\n var _this = this;\n return this.$slots[\"default\"]().reduce(function (tabs, child) {\n if (_this.isTabPanel(child)) {\n tabs.push(child);\n } else if (child.children && child.children instanceof Array) {\n child.children.forEach(function (nestedChild) {\n if (_this.isTabPanel(nestedChild)) {\n tabs.push(nestedChild);\n }\n });\n }\n return tabs;\n }, []);\n },\n prevButtonAriaLabel: function prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel: function nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n ChevronLeftIcon: ChevronLeftIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"tabindex\", \"aria-label\"];\nvar _hoisted_2 = [\"data-p-active\", \"data-p-disabled\", \"data-pc-index\"];\nvar _hoisted_3 = [\"id\", \"tabindex\", \"aria-disabled\", \"aria-selected\", \"aria-controls\", \"onClick\", \"onKeydown\"];\nvar _hoisted_4 = [\"tabindex\", \"aria-label\"];\nvar _hoisted_5 = [\"id\", \"aria-labelledby\", \"data-pc-index\", \"data-p-active\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"tablist\"\n }, _ctx.ptmi('root')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('navContainer')\n }, _ctx.ptm('navContainer')), [_ctx.scrollable && !$data.isPrevButtonDisabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"prevBtn\",\n type: \"button\",\n \"class\": _ctx.cx('prevButton'),\n tabindex: _ctx.tabindex,\n \"aria-label\": $options.prevButtonAriaLabel,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onPrevButtonClick && $options.onPrevButtonClick.apply($options, arguments);\n })\n }, _objectSpread(_objectSpread({}, _ctx.prevButtonProps), _ctx.ptm('prevButton')), {\n \"data-pc-group-section\": \"navbutton\"\n }), [renderSlot(_ctx.$slots, \"previcon\", {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.prevIcon ? 'span' : 'ChevronLeftIcon'), mergeProps({\n \"aria-hidden\": \"true\",\n \"class\": _ctx.prevIcon\n }, _ctx.ptm('prevIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_1)), [[_directive_ripple]]) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n ref: \"content\",\n \"class\": _ctx.cx('navContent'),\n onScroll: _cache[1] || (_cache[1] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n })\n }, _ctx.ptm('navContent')), [createElementVNode(\"ul\", mergeProps({\n ref: \"nav\",\n \"class\": _ctx.cx('nav')\n }, _ctx.ptm('nav')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.tabs, function (tab, index) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: $options.getKey(tab, index),\n style: $options.getTabProp(tab, 'headerStyle'),\n \"class\": _ctx.cx('tab.header', {\n tab: tab,\n index: index\n }),\n role: \"presentation\",\n ref_for: true\n }, _objectSpread(_objectSpread(_objectSpread({}, $options.getTabProp(tab, 'headerProps')), $options.getTabPT(tab, 'root', index)), $options.getTabPT(tab, 'header', index)), {\n \"data-pc-name\": \"tabpanel\",\n \"data-p-active\": $data.d_activeIndex === index,\n \"data-p-disabled\": $options.getTabProp(tab, 'disabled'),\n \"data-pc-index\": index\n }), [withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n id: $options.getTabHeaderActionId(index),\n \"class\": _ctx.cx('tab.headerAction'),\n tabindex: $options.getTabProp(tab, 'disabled') || !$options.isTabActive(index) ? -1 : _ctx.tabindex,\n role: \"tab\",\n \"aria-disabled\": $options.getTabProp(tab, 'disabled'),\n \"aria-selected\": $options.isTabActive(index),\n \"aria-controls\": $options.getTabContentId(index),\n onClick: function onClick($event) {\n return $options.onTabClick($event, tab, index);\n },\n onKeydown: function onKeydown($event) {\n return $options.onTabKeyDown($event, tab, index);\n },\n ref_for: true\n }, _objectSpread(_objectSpread({}, $options.getTabProp(tab, 'headerActionProps')), $options.getTabPT(tab, 'headerAction', index))), [tab.props && tab.props.header ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('tab.headerTitle'),\n ref_for: true\n }, $options.getTabPT(tab, 'headerTitle', index)), toDisplayString(tab.props.header), 17)) : createCommentVNode(\"\", true), tab.children && tab.children.header ? (openBlock(), createBlock(resolveDynamicComponent(tab.children.header), {\n key: 1\n })) : createCommentVNode(\"\", true)], 16, _hoisted_3)), [[_directive_ripple]])], 16, _hoisted_2);\n }), 128)), createElementVNode(\"li\", mergeProps({\n ref: \"inkbar\",\n \"class\": _ctx.cx('inkbar'),\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('inkbar')), null, 16)], 16)], 16), _ctx.scrollable && !$data.isNextButtonDisabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 1,\n ref: \"nextBtn\",\n type: \"button\",\n \"class\": _ctx.cx('nextButton'),\n tabindex: _ctx.tabindex,\n \"aria-label\": $options.nextButtonAriaLabel,\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.onNextButtonClick && $options.onNextButtonClick.apply($options, arguments);\n })\n }, _objectSpread(_objectSpread({}, _ctx.nextButtonProps), _ctx.ptm('nextButton')), {\n \"data-pc-group-section\": \"navbutton\"\n }), [renderSlot(_ctx.$slots, \"nexticon\", {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.nextIcon ? 'span' : 'ChevronRightIcon'), mergeProps({\n \"aria-hidden\": \"true\",\n \"class\": _ctx.nextIcon\n }, _ctx.ptm('nextIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)), [[_directive_ripple]]) : createCommentVNode(\"\", true)], 16), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('panelContainer')\n }, _ctx.ptm('panelContainer')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.tabs, function (tab, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getKey(tab, index)\n }, [(_ctx.lazy ? $options.isTabActive(index) : true) ? withDirectives((openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n id: $options.getTabContentId(index),\n style: $options.getTabProp(tab, 'contentStyle'),\n \"class\": _ctx.cx('tab.content', {\n tab: tab\n }),\n role: \"tabpanel\",\n \"aria-labelledby\": $options.getTabHeaderActionId(index),\n ref_for: true\n }, _objectSpread(_objectSpread(_objectSpread({}, $options.getTabProp(tab, 'contentProps')), $options.getTabPT(tab, 'root', index)), $options.getTabPT(tab, 'content', index)), {\n \"data-pc-name\": \"tabpanel\",\n \"data-pc-index\": index,\n \"data-p-active\": $data.d_activeIndex === index\n }), [(openBlock(), createBlock(resolveDynamicComponent(tab)))], 16, _hoisted_5)), [[vShow, _ctx.lazy ? true : $options.isTabActive(index)]]) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","\n\n\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ExclamationTriangleIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M13.4018 13.1893H0.598161C0.49329 13.189 0.390283 13.1615 0.299143 13.1097C0.208003 13.0578 0.131826 12.9832 0.0780112 12.8932C0.0268539 12.8015 0 12.6982 0 12.5931C0 12.4881 0.0268539 12.3848 0.0780112 12.293L6.47985 1.08982C6.53679 1.00399 6.61408 0.933574 6.70484 0.884867C6.7956 0.836159 6.897 0.810669 7 0.810669C7.103 0.810669 7.2044 0.836159 7.29516 0.884867C7.38592 0.933574 7.46321 1.00399 7.52015 1.08982L13.922 12.293C13.9731 12.3848 14 12.4881 14 12.5931C14 12.6982 13.9731 12.8015 13.922 12.8932C13.8682 12.9832 13.792 13.0578 13.7009 13.1097C13.6097 13.1615 13.5067 13.189 13.4018 13.1893ZM1.63046 11.989H12.3695L7 2.59425L1.63046 11.989Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M6.99996 8.78801C6.84143 8.78594 6.68997 8.72204 6.57787 8.60993C6.46576 8.49782 6.40186 8.34637 6.39979 8.18784V5.38703C6.39979 5.22786 6.46302 5.0752 6.57557 4.96265C6.68813 4.85009 6.84078 4.78686 6.99996 4.78686C7.15914 4.78686 7.31179 4.85009 7.42435 4.96265C7.5369 5.0752 7.60013 5.22786 7.60013 5.38703V8.18784C7.59806 8.34637 7.53416 8.49782 7.42205 8.60993C7.30995 8.72204 7.15849 8.78594 6.99996 8.78801Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_3 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M6.99996 11.1887C6.84143 11.1866 6.68997 11.1227 6.57787 11.0106C6.46576 10.8985 6.40186 10.7471 6.39979 10.5885V10.1884C6.39979 10.0292 6.46302 9.87658 6.57557 9.76403C6.68813 9.65147 6.84078 9.58824 6.99996 9.58824C7.15914 9.58824 7.31179 9.65147 7.42435 9.76403C7.5369 9.87658 7.60013 10.0292 7.60013 10.1884V10.5885C7.59806 10.7471 7.53416 10.8985 7.42205 11.0106C7.30995 11.1227 7.15849 11.1866 6.99996 11.1887Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_4 = [_hoisted_1, _hoisted_2, _hoisted_3];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_4, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'InfoCircleIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M3.11101 12.8203C4.26215 13.5895 5.61553 14 7 14C8.85652 14 10.637 13.2625 11.9497 11.9497C13.2625 10.637 14 8.85652 14 7C14 5.61553 13.5895 4.26215 12.8203 3.11101C12.0511 1.95987 10.9579 1.06266 9.67879 0.532846C8.3997 0.00303296 6.99224 -0.13559 5.63437 0.134506C4.2765 0.404603 3.02922 1.07129 2.05026 2.05026C1.07129 3.02922 0.404603 4.2765 0.134506 5.63437C-0.13559 6.99224 0.00303296 8.3997 0.532846 9.67879C1.06266 10.9579 1.95987 12.0511 3.11101 12.8203ZM3.75918 2.14976C4.71846 1.50879 5.84628 1.16667 7 1.16667C8.5471 1.16667 10.0308 1.78125 11.1248 2.87521C12.2188 3.96918 12.8333 5.45291 12.8333 7C12.8333 8.15373 12.4912 9.28154 11.8502 10.2408C11.2093 11.2001 10.2982 11.9478 9.23232 12.3893C8.16642 12.8308 6.99353 12.9463 5.86198 12.7212C4.73042 12.4962 3.69102 11.9406 2.87521 11.1248C2.05941 10.309 1.50384 9.26958 1.27876 8.13803C1.05367 7.00647 1.16919 5.83358 1.61071 4.76768C2.05222 3.70178 2.79989 2.79074 3.75918 2.14976ZM7.00002 4.8611C6.84594 4.85908 6.69873 4.79698 6.58977 4.68801C6.48081 4.57905 6.4187 4.43185 6.41669 4.27776V3.88888C6.41669 3.73417 6.47815 3.58579 6.58754 3.4764C6.69694 3.367 6.84531 3.30554 7.00002 3.30554C7.15473 3.30554 7.3031 3.367 7.4125 3.4764C7.52189 3.58579 7.58335 3.73417 7.58335 3.88888V4.27776C7.58134 4.43185 7.51923 4.57905 7.41027 4.68801C7.30131 4.79698 7.1541 4.85908 7.00002 4.8611ZM7.00002 10.6945C6.84594 10.6925 6.69873 10.6304 6.58977 10.5214C6.48081 10.4124 6.4187 10.2652 6.41669 10.1111V6.22225C6.41669 6.06754 6.47815 5.91917 6.58754 5.80977C6.69694 5.70037 6.84531 5.63892 7.00002 5.63892C7.15473 5.63892 7.3031 5.70037 7.4125 5.80977C7.52189 5.91917 7.58335 6.06754 7.58335 6.22225V10.1111C7.58134 10.2652 7.51923 10.4124 7.41027 10.5214C7.30131 10.6304 7.1541 10.6925 7.00002 10.6945Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-message {\\n border-radius: \".concat(dt('message.border.radius'), \";\\n outline-width: \").concat(dt('message.border.width'), \";\\n outline-style: solid;\\n}\\n\\n.p-message-content {\\n display: flex;\\n align-items: center;\\n padding: \").concat(dt('message.content.padding'), \";\\n gap: \").concat(dt('message.content.gap'), \";\\n height: 100%;\\n}\\n\\n.p-message-icon {\\n flex-shrink: 0;\\n}\\n\\n.p-message-close-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n margin: 0 0 0 auto;\\n overflow: hidden;\\n position: relative;\\n width: \").concat(dt('message.close.button.width'), \";\\n height: \").concat(dt('message.close.button.height'), \";\\n border-radius: \").concat(dt('message.close.button.border.radius'), \";\\n background: transparent;\\n transition: background \").concat(dt('message.transition.duration'), \", color \").concat(dt('message.transition.duration'), \", outline-color \").concat(dt('message.transition.duration'), \", box-shadow \").concat(dt('message.transition.duration'), \", opacity 0.3s;\\n outline-color: transparent;\\n color: inherit;\\n padding: 0;\\n border: none;\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.p-message-close-icon {\\n font-size: \").concat(dt('message.close.icon.size'), \";\\n width: \").concat(dt('message.close.icon.size'), \";\\n height: \").concat(dt('message.close.icon.size'), \";\\n}\\n\\n.p-message-close-button:focus-visible {\\n outline-width: \").concat(dt('message.close.button.focus.ring.width'), \";\\n outline-style: \").concat(dt('message.close.button.focus.ring.style'), \";\\n outline-offset: \").concat(dt('message.close.button.focus.ring.offset'), \";\\n}\\n\\n.p-message-info {\\n background: \").concat(dt('message.info.background'), \";\\n outline-color: \").concat(dt('message.info.border.color'), \";\\n color: \").concat(dt('message.info.color'), \";\\n box-shadow: \").concat(dt('message.info.shadow'), \";\\n}\\n\\n.p-message-info .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.info.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.info.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-info .p-message-close-button:hover {\\n background: \").concat(dt('message.info.close.button.hover.background'), \";\\n}\\n\\n.p-message-success {\\n background: \").concat(dt('message.success.background'), \";\\n outline-color: \").concat(dt('message.success.border.color'), \";\\n color: \").concat(dt('message.success.color'), \";\\n box-shadow: \").concat(dt('message.success.shadow'), \";\\n}\\n\\n.p-message-success .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.success.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.success.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-success .p-message-close-button:hover {\\n background: \").concat(dt('message.success.close.button.hover.background'), \";\\n}\\n\\n.p-message-warn {\\n background: \").concat(dt('message.warn.background'), \";\\n outline-color: \").concat(dt('message.warn.border.color'), \";\\n color: \").concat(dt('message.warn.color'), \";\\n box-shadow: \").concat(dt('message.warn.shadow'), \";\\n}\\n\\n.p-message-warn .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.warn.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.warn.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-warn .p-message-close-button:hover {\\n background: \").concat(dt('message.warn.close.button.hover.background'), \";\\n}\\n\\n.p-message-error {\\n background: \").concat(dt('message.error.background'), \";\\n outline-color: \").concat(dt('message.error.border.color'), \";\\n color: \").concat(dt('message.error.color'), \";\\n box-shadow: \").concat(dt('message.error.shadow'), \";\\n}\\n\\n.p-message-error .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.error.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.error.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-error .p-message-close-button:hover {\\n background: \").concat(dt('message.error.close.button.hover.background'), \";\\n}\\n\\n.p-message-secondary {\\n background: \").concat(dt('message.secondary.background'), \";\\n outline-color: \").concat(dt('message.secondary.border.color'), \";\\n color: \").concat(dt('message.secondary.color'), \";\\n box-shadow: \").concat(dt('message.secondary.shadow'), \";\\n}\\n\\n.p-message-secondary .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.secondary.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.secondary.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-secondary .p-message-close-button:hover {\\n background: \").concat(dt('message.secondary.close.button.hover.background'), \";\\n}\\n\\n.p-message-contrast {\\n background: \").concat(dt('message.contrast.background'), \";\\n outline-color: \").concat(dt('message.contrast.border.color'), \";\\n color: \").concat(dt('message.contrast.color'), \";\\n box-shadow: \").concat(dt('message.contrast.shadow'), \";\\n}\\n\\n.p-message-contrast .p-message-close-button:focus-visible {\\n outline-color: \").concat(dt('message.contrast.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('message.contrast.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-message-contrast .p-message-close-button:hover {\\n background: \").concat(dt('message.contrast.close.button.hover.background'), \";\\n}\\n\\n.p-message-text {\\n font-size: \").concat(dt('message.text.font.size'), \";\\n font-weight: \").concat(dt('message.text.font.weight'), \";\\n}\\n\\n.p-message-icon {\\n font-size: \").concat(dt('message.icon.size'), \";\\n width: \").concat(dt('message.icon.size'), \";\\n height: \").concat(dt('message.icon.size'), \";\\n}\\n\\n.p-message-enter-from {\\n opacity: 0;\\n}\\n\\n.p-message-enter-active {\\n transition: opacity 0.3s;\\n}\\n\\n.p-message.p-message-leave-from {\\n max-height: 1000px;\\n}\\n\\n.p-message.p-message-leave-to {\\n max-height: 0;\\n opacity: 0;\\n margin: 0;\\n}\\n\\n.p-message-leave-active {\\n overflow: hidden;\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin 0.3s;\\n}\\n\\n.p-message-leave-active .p-message-close-button {\\n opacity: 0;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return 'p-message p-component p-message-' + props.severity;\n },\n content: 'p-message-content',\n icon: 'p-message-icon',\n text: 'p-message-text',\n closeButton: 'p-message-close-button',\n closeIcon: 'p-message-close-icon'\n};\nvar MessageStyle = BaseStyle.extend({\n name: 'message',\n theme: theme,\n classes: classes\n});\n\nexport { MessageStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import CheckIcon from '@primevue/icons/check';\nimport ExclamationTriangleIcon from '@primevue/icons/exclamationtriangle';\nimport InfoCircleIcon from '@primevue/icons/infocircle';\nimport TimesIcon from '@primevue/icons/times';\nimport TimesCircleIcon from '@primevue/icons/timescircle';\nimport Ripple from 'primevue/ripple';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MessageStyle from 'primevue/message/style';\nimport { resolveComponent, resolveDirective, openBlock, createBlock, Transition, mergeProps, withCtx, withDirectives, createElementVNode, renderSlot, createElementBlock, resolveDynamicComponent, createCommentVNode, vShow } from 'vue';\n\nvar script$1 = {\n name: 'BaseMessage',\n \"extends\": BaseComponent,\n props: {\n severity: {\n type: String,\n \"default\": 'info'\n },\n closable: {\n type: Boolean,\n \"default\": false\n },\n life: {\n type: Number,\n \"default\": null\n },\n icon: {\n type: String,\n \"default\": undefined\n },\n closeIcon: {\n type: String,\n \"default\": undefined\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n style: MessageStyle,\n provide: function provide() {\n return {\n $pcMessage: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Message',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['close', 'life-end'],\n timeout: null,\n data: function data() {\n return {\n visible: true\n };\n },\n mounted: function mounted() {\n var _this = this;\n if (this.life) {\n setTimeout(function () {\n _this.visible = false;\n _this.$emit('life-end');\n }, this.life);\n }\n },\n methods: {\n close: function close(event) {\n this.visible = false;\n this.$emit('close', event);\n }\n },\n computed: {\n iconComponent: function iconComponent() {\n return {\n info: InfoCircleIcon,\n success: CheckIcon,\n warn: ExclamationTriangleIcon,\n error: TimesCircleIcon\n }[this.severity];\n },\n closeAriaLabel: function closeAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n TimesIcon: TimesIcon,\n InfoCircleIcon: InfoCircleIcon,\n CheckIcon: CheckIcon,\n ExclamationTriangleIcon: ExclamationTriangleIcon,\n TimesCircleIcon: TimesCircleIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-label\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_TimesIcon = resolveComponent(\"TimesIcon\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createBlock(Transition, mergeProps({\n name: \"p-message\",\n appear: \"\"\n }, _ctx.ptmi('transition')), {\n \"default\": withCtx(function () {\n return [withDirectives(createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, _ctx.ptm('root')), [_ctx.$slots.container ? renderSlot(_ctx.$slots, \"container\", {\n key: 0,\n closeCallback: $options.close\n }) : (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"icon\", {\n \"class\": \"p-message-icon\"\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.icon ? 'span' : null), mergeProps({\n \"class\": [_ctx.cx('icon'), _ctx.icon]\n }, _ctx.ptm('icon')), null, 16, [\"class\"]))];\n }), _ctx.$slots[\"default\"] ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": [\"p-message-text\", _ctx.cx('text')]\n }, _ctx.ptm('text')), [renderSlot(_ctx.$slots, \"default\")], 16)) : createCommentVNode(\"\", true), _ctx.closable ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('closeButton'),\n \"aria-label\": $options.closeAriaLabel,\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.close($event);\n })\n }, _objectSpread(_objectSpread({}, _ctx.closeButtonProps), _ctx.ptm('closeButton'))), [renderSlot(_ctx.$slots, \"closeicon\", {}, function () {\n return [_ctx.closeIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('closeIcon'), _ctx.closeIcon]\n }, _ctx.ptm('closeIcon')), null, 16)) : (openBlock(), createBlock(_component_TimesIcon, mergeProps({\n key: 1,\n \"class\": [_ctx.cx('closeIcon'), _ctx.closeIcon]\n }, _ctx.ptm('closeIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_1)), [[_directive_ripple]]) : createCommentVNode(\"\", true)], 16))], 16), [[vShow, $data.visible]])];\n }),\n _: 3\n }, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import { api } from '@/scripts/api'\nimport { defineStore } from 'pinia'\nimport { computed, ref, watchEffect } from 'vue'\nimport type { User as UserConfig } from '@/types/apiTypes'\n\nexport interface User {\n userId: string\n username: string\n}\n\nexport const useUserStore = defineStore('user', () => {\n /**\n * The user config. null if not loaded.\n */\n const userConfig = ref(null)\n /**\n * The current user id. null if not logged in or in single user mode.\n */\n const currentUserId = ref(null)\n const isMultiUserServer = computed(\n () => userConfig.value && 'users' in userConfig.value\n )\n const needsLogin = computed(\n () => !currentUserId.value && isMultiUserServer.value\n )\n const users = computed(() =>\n Object.entries(userConfig.value?.users ?? {}).map(([userId, username]) => ({\n userId,\n username\n }))\n )\n const currentUser = computed(\n () =>\n users.value.find((user) => user.userId === currentUserId.value) ?? null\n )\n const initialized = computed(() => userConfig.value !== null)\n\n /**\n * Initialize the user store.\n */\n async function initialize() {\n userConfig.value = await api.getUserConfig()\n currentUserId.value = localStorage['Comfy.userId']\n }\n\n /**\n * Create a new user.\n *\n * @param username - The username.\n * @returns The new user.\n */\n async function createUser(username: string): Promise {\n const resp = await api.createUser(username)\n const data = await resp.json()\n if (resp.status >= 300) {\n throw new Error(\n data.error ??\n 'Error creating user: ' + resp.status + ' ' + resp.statusText\n )\n }\n return {\n userId: data,\n username\n }\n }\n\n /**\n * Login the current user.\n *\n * @param user - The user.\n */\n async function login({\n userId,\n username\n }: {\n userId: string\n username: string\n }) {\n currentUserId.value = userId\n localStorage['Comfy.userId'] = userId\n localStorage['Comfy.userName'] = username\n }\n\n watchEffect(() => {\n if (isMultiUserServer.value && currentUserId.value) {\n api.user = currentUserId.value\n }\n })\n\n /**\n * Logout the current user.\n */\n async function logout() {\n delete localStorage['Comfy.userId']\n delete localStorage['Comfy.userName']\n }\n\n return {\n users,\n currentUser,\n isMultiUserServer,\n needsLogin,\n initialized,\n initialize,\n createUser,\n login,\n logout\n }\n})\n","\n\n\n\n","import type { TreeNode } from 'primevue/treenode'\n\nexport function buildTree(items: T[], key: (item: T) => string[]): TreeNode {\n const root: TreeNode = {\n key: 'root',\n label: 'root',\n children: []\n }\n\n const map: Record = {\n root: root\n }\n\n for (const item of items) {\n const keys = key(item)\n let parent = root\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i]\n // 'a/b/c/' represents an empty folder 'c' in folder 'b' in folder 'a'\n // 'a/b/c/' is split into ['a', 'b', 'c', '']\n if (k === '' && i === keys.length - 1) break\n\n const id = parent.key + '/' + k\n if (!map[id]) {\n const node: TreeNode = {\n key: id,\n label: k,\n leaf: false,\n children: []\n }\n map[id] = node\n parent.children?.push(node)\n }\n parent = map[id]\n }\n parent.leaf = keys[keys.length - 1] !== ''\n parent.data = item\n }\n return root\n}\n\nexport function flattenTree(tree: TreeNode): T[] {\n const result: T[] = []\n const stack: TreeNode[] = [tree]\n while (stack.length) {\n const node = stack.pop()!\n if (node.leaf && node.data) result.push(node.data)\n stack.push(...(node.children || []))\n }\n return result\n}\n\n/**\n * Sort the children of the node recursively.\n * @param node - The node to sort.\n * @param options - The options for sorting.\n * @param options.groupLeaf - Whether to group leaf nodes together.\n * @returns The sorted node.\n */\nexport function sortedTree(\n node: TreeNode,\n {\n groupLeaf = false\n }: {\n groupLeaf?: boolean\n } = {}\n): TreeNode {\n const newNode: TreeNode = {\n ...node\n }\n\n if (node.children) {\n if (groupLeaf) {\n // Split children into folders and files\n const folders = node.children.filter((child) => !child.leaf)\n const files = node.children.filter((child) => child.leaf)\n\n // Sort folders and files separately by label\n const sortedFolders = folders.sort((a, b) =>\n (a.label ?? '').localeCompare(b.label ?? '')\n )\n const sortedFiles = files.sort((a, b) =>\n (a.label ?? '').localeCompare(b.label ?? '')\n )\n\n // Recursively sort folder children\n newNode.children = [\n ...sortedFolders.map((folder) =>\n sortedTree(folder, { groupLeaf: true })\n ),\n ...sortedFiles\n ]\n } else {\n const sortedChildren = [...node.children].sort((a, b) =>\n (a.label ?? '').localeCompare(b.label ?? '')\n )\n newNode.children = [\n ...sortedChildren.map((child) =>\n sortedTree(child, { groupLeaf: false })\n )\n ]\n }\n }\n\n return newNode\n}\n\nexport const findNodeByKey = (root: TreeNode, key: string): TreeNode | null => {\n if (root.key === key) {\n return root\n }\n if (!root.children) {\n return null\n }\n for (const child of root.children) {\n const result = findNodeByKey(child, key)\n if (result) {\n return result\n }\n }\n return null\n}\n","\n\n\n\n\n\n\n","\n\n\n","import { inject } from 'vue';\n\nvar PrimeVueToastSymbol = Symbol();\nfunction useToast() {\n var PrimeVueToast = inject(PrimeVueToastSymbol);\n if (!PrimeVueToast) {\n throw new Error('No PrimeVue Toast provided!');\n }\n return PrimeVueToast;\n}\n\nexport { PrimeVueToastSymbol, useToast };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","import { useClipboard } from '@vueuse/core'\nimport { useToast } from 'primevue/usetoast'\n\nexport function useCopyToClipboard() {\n const { copy, isSupported } = useClipboard()\n const toast = useToast()\n\n const copyToClipboard = async (text: string) => {\n if (isSupported) {\n try {\n await copy(text)\n toast.add({\n severity: 'success',\n summary: 'Success',\n detail: 'Copied to clipboard',\n life: 3000\n })\n } catch (err) {\n toast.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Failed to copy report'\n })\n }\n } else {\n toast.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Clipboard API not supported in your browser'\n })\n }\n }\n\n return {\n copyToClipboard\n }\n}\n","\n\n\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-floatlabel {\\n display: block;\\n position: relative;\\n}\\n\\n.p-floatlabel label {\\n position: absolute;\\n pointer-events: none;\\n top: 50%;\\n margin-top: -.5rem;\\n transition-property: all;\\n transition-timing-function: ease;\\n line-height: 1;\\n left: 0.75rem;\\n color: \".concat(dt('floatlabel.color'), \";\\n transition-duration: \").concat(dt('floatlabel.transition.duration'), \";\\n}\\n\\n.p-floatlabel:has(textarea) label {\\n top: 1rem;\\n}\\n\\n.p-floatlabel:has(input:focus) label,\\n.p-floatlabel:has(input.p-filled) label,\\n.p-floatlabel:has(input:-webkit-autofill) label,\\n.p-floatlabel:has(textarea:focus) label,\\n.p-floatlabel:has(textarea.p-filled) label,\\n.p-floatlabel:has(.p-inputwrapper-focus) label,\\n.p-floatlabel:has(.p-inputwrapper-filled) label {\\n top: -.75rem;\\n font-size: 12px;\\n color: \").concat(dt('floatlabel.focus.color'), \";\\n}\\n\\n.p-floatlabel .p-placeholder,\\n.p-floatlabel input::placeholder,\\n.p-floatlabel .p-inputtext::placeholder {\\n opacity: 0;\\n transition-property: all;\\n transition-timing-function: ease;\\n}\\n\\n.p-floatlabel .p-focus .p-placeholder,\\n.p-floatlabel input:focus::placeholder,\\n.p-floatlabel .p-inputtext:focus::placeholder {\\n opacity: 1;\\n transition-property: all;\\n transition-timing-function: ease;\\n}\\n\\n.p-floatlabel > .p-invalid + label {\\n color: \").concat(dt('floatlabel.invalid.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-floatlabel'\n};\nvar FloatLabelStyle = BaseStyle.extend({\n name: 'floatlabel',\n theme: theme,\n classes: classes\n});\n\nexport { FloatLabelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport FloatLabelStyle from 'primevue/floatlabel/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseFloatLabel',\n \"extends\": BaseComponent,\n props: {},\n style: FloatLabelStyle,\n provide: function provide() {\n return {\n $pcFloatLabel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'FloatLabel',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n\n\n","import { createI18n } from 'vue-i18n'\nimport en from './locales/en/main.json'\nimport zh from './locales/zh/main.json'\nimport ru from './locales/ru/main.json'\nimport ja from './locales/ja/main.json'\nimport ko from './locales/ko/main.json'\nimport enNodes from './locales/en/nodeDefs.json'\nimport zhNodes from './locales/zh/nodeDefs.json'\nimport ruNodes from './locales/ru/nodeDefs.json'\nimport jaNodes from './locales/ja/nodeDefs.json'\nimport koNodes from './locales/ko/nodeDefs.json'\nimport enCommands from './locales/en/commands.json'\nimport zhCommands from './locales/zh/commands.json'\nimport ruCommands from './locales/ru/commands.json'\nimport jaCommands from './locales/ja/commands.json'\nimport koCommands from './locales/ko/commands.json'\n\nfunction buildLocale(main: M, nodes: N, commands: C) {\n return {\n ...main,\n nodeDefs: nodes,\n commands: commands\n }\n}\n\nconst messages = {\n en: buildLocale(en, enNodes, enCommands),\n zh: buildLocale(zh, zhNodes, zhCommands),\n ru: buildLocale(ru, ruNodes, ruCommands),\n ja: buildLocale(ja, jaNodes, jaCommands),\n ko: buildLocale(ko, koNodes, koCommands)\n}\n\nexport const i18n = createI18n({\n // Must set `false`, as Vue I18n Legacy API is for Vue 2\n legacy: false,\n locale: navigator.language.split('-')[0] || 'en',\n fallbackLocale: 'en',\n messages,\n // Ignore warnings for locale options as each option is in its own language.\n // e.g. \"English\", \"中文\", \"Русский\", \"日本語\", \"한국어\"\n missingWarn: /^(?!settingsDialog\\.Comfy_Locale\\.options\\.).+/,\n fallbackWarn: /^(?!settingsDialog\\.Comfy_Locale\\.options\\.).+/\n})\n\n/** Convenience shorthand: i18n.global */\nexport const { t, te } = i18n.global\n\n/**\n * Safe translation function that returns the fallback message if the key is not found.\n *\n * @param key - The key to translate.\n * @param fallbackMessage - The fallback message to use if the key is not found.\n */\nexport function st(key: string, fallbackMessage: string) {\n return te(key) ? t(key) : fallbackMessage\n}\n","// This module is mocked in tests-ui/\n// Import vue components here to avoid tests-ui/ reporting errors\n// about importing primevue components.\nimport { useDialogStore, type ShowDialogOptions } from '@/stores/dialogStore'\nimport LoadWorkflowWarning from '@/components/dialog/content/LoadWorkflowWarning.vue'\nimport MissingModelsWarning from '@/components/dialog/content/MissingModelsWarning.vue'\nimport SettingDialogContent from '@/components/dialog/content/SettingDialogContent.vue'\nimport SettingDialogHeader from '@/components/dialog/header/SettingDialogHeader.vue'\nimport type { ExecutionErrorWsMessage } from '@/types/apiTypes'\nimport ExecutionErrorDialogContent from '@/components/dialog/content/ExecutionErrorDialogContent.vue'\nimport TemplateWorkflowsContent from '@/components/templates/TemplateWorkflowsContent.vue'\nimport PromptDialogContent from '@/components/dialog/content/PromptDialogContent.vue'\nimport ConfirmationDialogContent from '@/components/dialog/content/ConfirmationDialogContent.vue'\nimport { t } from '@/i18n'\nimport type { MissingNodeType } from '@/types/comfy'\n\nexport function showLoadWorkflowWarning(props: {\n missingNodeTypes: MissingNodeType[]\n [key: string]: any\n}) {\n const dialogStore = useDialogStore()\n dialogStore.showDialog({\n key: 'global-load-workflow-warning',\n component: LoadWorkflowWarning,\n props\n })\n}\n\nexport function showMissingModelsWarning(props: {\n missingModels: any[]\n paths: Record\n [key: string]: any\n}) {\n const dialogStore = useDialogStore()\n dialogStore.showDialog({\n key: 'global-missing-models-warning',\n component: MissingModelsWarning,\n props\n })\n}\n\nexport function showSettingsDialog() {\n useDialogStore().showDialog({\n key: 'global-settings',\n headerComponent: SettingDialogHeader,\n component: SettingDialogContent\n })\n}\n\nexport function showExecutionErrorDialog(error: ExecutionErrorWsMessage) {\n useDialogStore().showDialog({\n key: 'global-execution-error',\n component: ExecutionErrorDialogContent,\n props: {\n error\n }\n })\n}\n\nexport function showTemplateWorkflowsDialog() {\n useDialogStore().showDialog({\n key: 'global-template-workflows',\n title: t('templateWorkflows.title'),\n component: TemplateWorkflowsContent\n })\n}\n\nexport async function showPromptDialog({\n title,\n message,\n defaultValue = ''\n}: {\n title: string\n message: string\n defaultValue?: string\n}): Promise {\n const dialogStore = useDialogStore()\n\n return new Promise((resolve) => {\n dialogStore.showDialog({\n key: 'global-prompt',\n title,\n component: PromptDialogContent,\n props: {\n message,\n defaultValue,\n onConfirm: (value: string) => {\n resolve(value)\n }\n },\n dialogComponentProps: {\n onClose: () => {\n resolve(null)\n }\n }\n })\n })\n}\n\nexport type ConfirmationDialogType =\n | 'overwrite'\n | 'delete'\n | 'dirtyClose'\n | 'reinstall'\n\n/**\n *\n * @returns `true` if the user confirms the dialog,\n * `false` if denied (e.g. no in yes/no/cancel), or\n * `null` if the dialog is cancelled or closed\n */\nexport async function showConfirmationDialog({\n title,\n type,\n message,\n itemList = []\n}: {\n /** Dialog heading */\n title: string\n /** Pre-configured dialog type */\n type: ConfirmationDialogType\n /** The main message body */\n message: string\n /** Displayed as an unorderd list immediately below the message body */\n itemList?: string[]\n}): Promise {\n return new Promise((resolve) => {\n const options: ShowDialogOptions = {\n key: 'global-prompt',\n title,\n component: ConfirmationDialogContent,\n props: {\n message,\n type,\n itemList,\n onConfirm: resolve\n },\n dialogComponentProps: {\n onClose: () => resolve(null)\n }\n }\n\n useDialogStore().showDialog(options)\n })\n}\n","// @ts-strict-ignore\nimport { api } from './api'\nimport { ComfyDialog as _ComfyDialog } from './ui/dialog'\nimport { toggleSwitch } from './ui/toggleSwitch'\nimport { ComfySettingsDialog } from './ui/settings'\nimport { ComfyApp, app } from './app'\nimport { TaskItem, type StatusWsMessageStatus } from '@/types/apiTypes'\nimport { showSettingsDialog } from '@/services/dialogService'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useCommandStore } from '@/stores/commandStore'\nimport { useWorkspaceStore } from '@/stores/workspaceStore'\n\nexport const ComfyDialog = _ComfyDialog\n\ntype Position2D = {\n x: number\n y: number\n}\n\ntype Props = {\n parent?: HTMLElement\n $?: (el: HTMLElement) => void\n dataset?: DOMStringMap\n style?: Partial\n for?: string\n textContent?: string\n [key: string]: any\n}\n\ntype Children = Element[] | Element | string | string[]\n\ntype ElementType = K extends keyof HTMLElementTagNameMap\n ? HTMLElementTagNameMap[K]\n : HTMLElement\n\nexport function $el(\n tag: TTag,\n propsOrChildren?: Children | Props,\n children?: Children\n): ElementType {\n const split = tag.split('.')\n const element = document.createElement(split.shift() as string)\n if (split.length > 0) {\n element.classList.add(...split)\n }\n\n if (propsOrChildren) {\n if (typeof propsOrChildren === 'string') {\n propsOrChildren = { textContent: propsOrChildren }\n } else if (propsOrChildren instanceof Element) {\n propsOrChildren = [propsOrChildren]\n }\n if (Array.isArray(propsOrChildren)) {\n element.append(...propsOrChildren)\n } else {\n const {\n parent,\n $: cb,\n dataset,\n style,\n ...rest\n } = propsOrChildren as Props\n\n if (rest.for) {\n element.setAttribute('for', rest.for)\n }\n\n if (style) {\n Object.assign(element.style, style)\n }\n\n if (dataset) {\n Object.assign(element.dataset, dataset)\n }\n\n Object.assign(element, rest)\n if (children) {\n element.append(...(Array.isArray(children) ? children : [children]))\n }\n\n if (parent) {\n parent.append(element)\n }\n\n if (cb) {\n cb(element)\n }\n }\n }\n return element as ElementType\n}\n\nfunction dragElement(dragEl, settings): () => void {\n var posDiffX = 0,\n posDiffY = 0,\n posStartX = 0,\n posStartY = 0,\n newPosX = 0,\n newPosY = 0\n if (dragEl.getElementsByClassName('drag-handle')[0]) {\n // if present, the handle is where you move the DIV from:\n dragEl.getElementsByClassName('drag-handle')[0].onmousedown = dragMouseDown\n } else {\n // otherwise, move the DIV from anywhere inside the DIV:\n dragEl.onmousedown = dragMouseDown\n }\n\n // When the element resizes (e.g. view queue) ensure it is still in the windows bounds\n const resizeObserver = new ResizeObserver(() => {\n ensureInBounds()\n }).observe(dragEl)\n\n function ensureInBounds() {\n try {\n newPosX = Math.min(\n document.body.clientWidth - dragEl.clientWidth,\n Math.max(0, dragEl.offsetLeft)\n )\n newPosY = Math.min(\n document.body.clientHeight - dragEl.clientHeight,\n Math.max(0, dragEl.offsetTop)\n )\n\n positionElement()\n } catch (exception) {\n // robust\n }\n }\n\n function positionElement() {\n if (dragEl.style.display === 'none') return\n\n const halfWidth = document.body.clientWidth / 2\n const anchorRight = newPosX + dragEl.clientWidth / 2 > halfWidth\n\n // set the element's new position:\n if (anchorRight) {\n dragEl.style.left = 'unset'\n dragEl.style.right =\n document.body.clientWidth - newPosX - dragEl.clientWidth + 'px'\n } else {\n dragEl.style.left = newPosX + 'px'\n dragEl.style.right = 'unset'\n }\n\n dragEl.style.top = newPosY + 'px'\n dragEl.style.bottom = 'unset'\n\n if (savePos) {\n localStorage.setItem(\n 'Comfy.MenuPosition',\n JSON.stringify({\n x: dragEl.offsetLeft,\n y: dragEl.offsetTop\n })\n )\n }\n }\n\n function restorePos() {\n let posString = localStorage.getItem('Comfy.MenuPosition')\n if (posString) {\n const pos = JSON.parse(posString) as Position2D\n newPosX = pos.x\n newPosY = pos.y\n positionElement()\n ensureInBounds()\n }\n }\n\n let savePos = undefined\n settings.addSetting({\n id: 'Comfy.MenuPosition',\n category: ['Comfy', 'Menu', 'MenuPosition'],\n name: \"Save legacy menu's position\",\n type: 'boolean',\n defaultValue: savePos,\n onChange(value) {\n if (savePos === undefined && value) {\n restorePos()\n }\n savePos = value\n }\n })\n\n function dragMouseDown(e) {\n e = e || window.event\n e.preventDefault()\n // get the mouse cursor position at startup:\n posStartX = e.clientX\n posStartY = e.clientY\n document.onmouseup = closeDragElement\n // call a function whenever the cursor moves:\n document.onmousemove = elementDrag\n }\n\n function elementDrag(e) {\n e = e || window.event\n e.preventDefault()\n\n dragEl.classList.add('comfy-menu-manual-pos')\n\n // calculate the new cursor position:\n posDiffX = e.clientX - posStartX\n posDiffY = e.clientY - posStartY\n posStartX = e.clientX\n posStartY = e.clientY\n\n newPosX = Math.min(\n document.body.clientWidth - dragEl.clientWidth,\n Math.max(0, dragEl.offsetLeft + posDiffX)\n )\n newPosY = Math.min(\n document.body.clientHeight - dragEl.clientHeight,\n Math.max(0, dragEl.offsetTop + posDiffY)\n )\n\n positionElement()\n }\n\n window.addEventListener('resize', () => {\n ensureInBounds()\n })\n\n function closeDragElement() {\n // stop moving when mouse button is released:\n document.onmouseup = null\n document.onmousemove = null\n }\n\n return restorePos\n}\n\nclass ComfyList {\n #type\n #text\n #reverse\n element: HTMLDivElement\n button?: HTMLButtonElement\n\n constructor(text, type?, reverse?) {\n this.#text = text\n this.#type = type || text.toLowerCase()\n this.#reverse = reverse || false\n this.element = $el('div.comfy-list') as HTMLDivElement\n this.element.style.display = 'none'\n }\n\n get visible() {\n return this.element.style.display !== 'none'\n }\n\n async load() {\n const items = await api.getItems(this.#type)\n this.element.replaceChildren(\n ...Object.keys(items).flatMap((section) => [\n $el('h4', {\n textContent: section\n }),\n $el('div.comfy-list-items', [\n ...(this.#reverse ? items[section].reverse() : items[section]).map(\n (item: TaskItem) => {\n // Allow items to specify a custom remove action (e.g. for interrupt current prompt)\n const removeAction =\n 'remove' in item\n ? item.remove\n : {\n name: 'Delete',\n cb: () => api.deleteItem(this.#type, item.prompt[1])\n }\n return $el('div', { textContent: item.prompt[0] + ': ' }, [\n $el('button', {\n textContent: 'Load',\n onclick: async () => {\n await app.loadGraphData(\n item.prompt[3].extra_pnginfo.workflow,\n true,\n false\n )\n if ('outputs' in item) {\n app.nodeOutputs = {}\n for (const [key, value] of Object.entries(item.outputs)) {\n const realKey = item['meta']?.[key]?.display_node ?? key\n app.nodeOutputs[realKey] = value\n }\n }\n }\n }),\n $el('button', {\n textContent: removeAction.name,\n onclick: async () => {\n await removeAction.cb()\n await this.update()\n }\n })\n ])\n }\n )\n ])\n ]),\n $el('div.comfy-list-actions', [\n $el('button', {\n textContent: 'Clear ' + this.#text,\n onclick: async () => {\n await api.clearItems(this.#type)\n await this.load()\n }\n }),\n $el('button', { textContent: 'Refresh', onclick: () => this.load() })\n ])\n )\n }\n\n async update() {\n if (this.visible) {\n await this.load()\n }\n }\n\n async show() {\n this.element.style.display = 'block'\n this.button.textContent = 'Close'\n\n await this.load()\n }\n\n hide() {\n this.element.style.display = 'none'\n this.button.textContent = 'View ' + this.#text\n }\n\n toggle() {\n if (this.visible) {\n this.hide()\n return false\n } else {\n this.show()\n return true\n }\n }\n}\n\nexport class ComfyUI {\n app: ComfyApp\n dialog: _ComfyDialog\n settings: ComfySettingsDialog\n batchCount: number\n lastQueueSize: number\n queue: ComfyList\n history: ComfyList\n autoQueueMode: string\n graphHasChanged: boolean\n autoQueueEnabled: boolean\n menuContainer: HTMLDivElement\n queueSize: Element\n restoreMenuPosition: () => void\n loadFile: () => void\n\n constructor(app) {\n this.app = app\n this.dialog = new ComfyDialog()\n this.settings = new ComfySettingsDialog(app)\n\n this.batchCount = 1\n this.lastQueueSize = 0\n this.queue = new ComfyList('Queue')\n this.history = new ComfyList('History', 'history', true)\n\n api.addEventListener('status', () => {\n this.queue.update()\n this.history.update()\n })\n\n this.setup(document.body)\n }\n\n setup(containerElement: HTMLElement) {\n const fileInput = $el('input', {\n id: 'comfy-file-input',\n type: 'file',\n accept: '.json,image/png,.latent,.safetensors,image/webp,audio/flac',\n style: { display: 'none' },\n parent: document.body,\n onchange: async () => {\n await app.handleFile(fileInput.files[0])\n fileInput.value = ''\n }\n })\n\n this.loadFile = () => fileInput.click()\n\n const autoQueueModeEl = toggleSwitch(\n 'autoQueueMode',\n [\n {\n text: 'instant',\n tooltip: 'A new prompt will be queued as soon as the queue reaches 0'\n },\n {\n text: 'change',\n tooltip:\n 'A new prompt will be queued when the queue is at 0 and the graph is/has changed'\n }\n ],\n {\n onChange: (value) => {\n this.autoQueueMode = value.item.value\n }\n }\n )\n autoQueueModeEl.style.display = 'none'\n\n api.addEventListener('graphChanged', () => {\n if (this.autoQueueMode === 'change' && this.autoQueueEnabled === true) {\n if (this.lastQueueSize === 0) {\n this.graphHasChanged = false\n app.queuePrompt(0, this.batchCount)\n } else {\n this.graphHasChanged = true\n }\n }\n })\n\n this.menuContainer = $el('div.comfy-menu', { parent: containerElement }, [\n $el(\n 'div.drag-handle.comfy-menu-header',\n {\n style: {\n overflow: 'hidden',\n position: 'relative',\n width: '100%',\n cursor: 'default'\n }\n },\n [\n $el('span.drag-handle'),\n $el('span.comfy-menu-queue-size', { $: (q) => (this.queueSize = q) }),\n $el('div.comfy-menu-actions', [\n $el('button.comfy-settings-btn', {\n textContent: '⚙️',\n onclick: showSettingsDialog\n }),\n $el('button.comfy-close-menu-btn', {\n textContent: '\\u00d7',\n onclick: () => {\n useWorkspaceStore().focusMode = true\n }\n })\n ])\n ]\n ),\n $el('button.comfy-queue-btn', {\n id: 'queue-button',\n textContent: 'Queue Prompt',\n onclick: () => app.queuePrompt(0, this.batchCount)\n }),\n $el('div', {}, [\n $el('label', { innerHTML: 'Extra options' }, [\n $el('input', {\n type: 'checkbox',\n onchange: (i) => {\n document.getElementById('extraOptions').style.display = i\n .srcElement.checked\n ? 'block'\n : 'none'\n this.batchCount = i.srcElement.checked\n ? Number.parseInt(\n (\n document.getElementById(\n 'batchCountInputRange'\n ) as HTMLInputElement\n ).value\n )\n : 1\n ;(\n document.getElementById('autoQueueCheckbox') as HTMLInputElement\n ).checked = false\n this.autoQueueEnabled = false\n }\n })\n ])\n ]),\n $el(\n 'div',\n { id: 'extraOptions', style: { width: '100%', display: 'none' } },\n [\n $el('div', [\n $el('label', { innerHTML: 'Batch count' }),\n $el('input', {\n id: 'batchCountInputNumber',\n type: 'number',\n value: this.batchCount,\n min: '1',\n style: { width: '35%', marginLeft: '0.4em' },\n oninput: (i) => {\n this.batchCount = i.target.value\n /* Even though an element with a type of range logically represents a number (since\n it's used for numeric input), the value it holds is still treated as a string in HTML and\n JavaScript. This behavior is consistent across all elements regardless of their type\n (like text, number, or range), where the .value property is always a string. */\n ;(\n document.getElementById(\n 'batchCountInputRange'\n ) as HTMLInputElement\n ).value = this.batchCount.toString()\n }\n }),\n $el('input', {\n id: 'batchCountInputRange',\n type: 'range',\n min: '1',\n max: '100',\n value: this.batchCount,\n oninput: (i) => {\n this.batchCount = i.srcElement.value\n // Note\n ;(\n document.getElementById(\n 'batchCountInputNumber'\n ) as HTMLInputElement\n ).value = i.srcElement.value\n }\n })\n ]),\n $el('div', [\n $el('label', {\n for: 'autoQueueCheckbox',\n innerHTML: 'Auto Queue'\n }),\n $el('input', {\n id: 'autoQueueCheckbox',\n type: 'checkbox',\n checked: false,\n title: 'Automatically queue prompt when the queue size hits 0',\n onchange: (e) => {\n this.autoQueueEnabled = e.target.checked\n autoQueueModeEl.style.display = this.autoQueueEnabled\n ? ''\n : 'none'\n }\n }),\n autoQueueModeEl\n ])\n ]\n ),\n $el('div.comfy-menu-btns', [\n $el('button', {\n id: 'queue-front-button',\n textContent: 'Queue Front',\n onclick: () => app.queuePrompt(-1, this.batchCount)\n }),\n $el('button', {\n $: (b) => (this.queue.button = b as HTMLButtonElement),\n id: 'comfy-view-queue-button',\n textContent: 'View Queue',\n onclick: () => {\n this.history.hide()\n this.queue.toggle()\n }\n }),\n $el('button', {\n $: (b) => (this.history.button = b as HTMLButtonElement),\n id: 'comfy-view-history-button',\n textContent: 'View History',\n onclick: () => {\n this.queue.hide()\n this.history.toggle()\n }\n })\n ]),\n this.queue.element,\n this.history.element,\n $el('button', {\n id: 'comfy-save-button',\n textContent: 'Save',\n onclick: () => {\n useCommandStore().execute('Comfy.ExportWorkflow')\n }\n }),\n $el('button', {\n id: 'comfy-dev-save-api-button',\n textContent: 'Save (API Format)',\n style: { width: '100%', display: 'none' },\n onclick: () => {\n useCommandStore().execute('Comfy.ExportWorkflowAPI')\n }\n }),\n $el('button', {\n id: 'comfy-load-button',\n textContent: 'Load',\n onclick: () => fileInput.click()\n }),\n $el('button', {\n id: 'comfy-refresh-button',\n textContent: 'Refresh',\n onclick: () => app.refreshComboInNodes()\n }),\n $el('button', {\n id: 'comfy-clipspace-button',\n textContent: 'Clipspace',\n onclick: () => app.openClipspace()\n }),\n $el('button', {\n id: 'comfy-clear-button',\n textContent: 'Clear',\n onclick: () => {\n if (\n !useSettingStore().get('Comfy.ConfirmClear') ||\n confirm('Clear workflow?')\n ) {\n app.clean()\n app.graph.clear()\n app.resetView()\n api.dispatchCustomEvent('graphCleared')\n }\n }\n }),\n $el('button', {\n id: 'comfy-load-default-button',\n textContent: 'Load Default',\n onclick: async () => {\n if (\n !useSettingStore().get('Comfy.ConfirmClear') ||\n confirm('Load default workflow?')\n ) {\n app.resetView()\n await app.loadGraphData()\n }\n }\n }),\n $el('button', {\n id: 'comfy-reset-view-button',\n textContent: 'Reset View',\n onclick: async () => {\n app.resetView()\n }\n })\n ]) as HTMLDivElement\n // Hide by default on construction so it does not interfere with other views.\n this.menuContainer.style.display = 'none'\n\n this.restoreMenuPosition = dragElement(this.menuContainer, this.settings)\n\n // @ts-expect-error\n this.setStatus({ exec_info: { queue_remaining: 'X' } })\n }\n\n setStatus(status: StatusWsMessageStatus | null) {\n this.queueSize.textContent =\n 'Queue size: ' + (status ? status.exec_info.queue_remaining : 'ERR')\n if (status) {\n if (\n this.lastQueueSize != 0 &&\n status.exec_info.queue_remaining == 0 &&\n this.autoQueueEnabled &&\n (this.autoQueueMode === 'instant' || this.graphHasChanged) &&\n !app.lastExecutionError\n ) {\n app.queuePrompt(0, this.batchCount)\n status.exec_info.queue_remaining += this.batchCount\n this.graphHasChanged = false\n }\n this.lastQueueSize = status.exec_info.queue_remaining\n }\n }\n}\n","import type { ComfyWorkflowJSON } from '@/types/comfyWorkflow'\n\nexport const defaultGraph: ComfyWorkflowJSON = {\n last_node_id: 9,\n last_link_id: 9,\n nodes: [\n {\n id: 7,\n type: 'CLIPTextEncode',\n pos: [413, 389],\n size: [425.27801513671875, 180.6060791015625],\n flags: {},\n order: 3,\n mode: 0,\n inputs: [{ name: 'clip', type: 'CLIP', link: 5 }],\n outputs: [\n {\n name: 'CONDITIONING',\n type: 'CONDITIONING',\n links: [6],\n slot_index: 0\n }\n ],\n properties: {},\n widgets_values: ['text, watermark']\n },\n {\n id: 6,\n type: 'CLIPTextEncode',\n pos: [415, 186],\n size: [422.84503173828125, 164.31304931640625],\n flags: {},\n order: 2,\n mode: 0,\n inputs: [{ name: 'clip', type: 'CLIP', link: 3 }],\n outputs: [\n {\n name: 'CONDITIONING',\n type: 'CONDITIONING',\n links: [4],\n slot_index: 0\n }\n ],\n properties: {},\n widgets_values: [\n 'beautiful scenery nature glass bottle landscape, , purple galaxy bottle,'\n ]\n },\n {\n id: 5,\n type: 'EmptyLatentImage',\n pos: [473, 609],\n size: [315, 106],\n flags: {},\n order: 1,\n mode: 0,\n outputs: [{ name: 'LATENT', type: 'LATENT', links: [2], slot_index: 0 }],\n properties: {},\n widgets_values: [512, 512, 1]\n },\n {\n id: 3,\n type: 'KSampler',\n pos: [863, 186],\n size: [315, 262],\n flags: {},\n order: 4,\n mode: 0,\n inputs: [\n { name: 'model', type: 'MODEL', link: 1 },\n { name: 'positive', type: 'CONDITIONING', link: 4 },\n { name: 'negative', type: 'CONDITIONING', link: 6 },\n { name: 'latent_image', type: 'LATENT', link: 2 }\n ],\n outputs: [{ name: 'LATENT', type: 'LATENT', links: [7], slot_index: 0 }],\n properties: {},\n widgets_values: [156680208700286, true, 20, 8, 'euler', 'normal', 1]\n },\n {\n id: 8,\n type: 'VAEDecode',\n pos: [1209, 188],\n size: [210, 46],\n flags: {},\n order: 5,\n mode: 0,\n inputs: [\n { name: 'samples', type: 'LATENT', link: 7 },\n { name: 'vae', type: 'VAE', link: 8 }\n ],\n outputs: [{ name: 'IMAGE', type: 'IMAGE', links: [9], slot_index: 0 }],\n properties: {}\n },\n {\n id: 9,\n type: 'SaveImage',\n pos: [1451, 189],\n size: [210, 26],\n flags: {},\n order: 6,\n mode: 0,\n inputs: [{ name: 'images', type: 'IMAGE', link: 9 }],\n properties: {}\n },\n {\n id: 4,\n type: 'CheckpointLoaderSimple',\n pos: [26, 474],\n size: [315, 98],\n flags: {},\n order: 0,\n mode: 0,\n outputs: [\n { name: 'MODEL', type: 'MODEL', links: [1], slot_index: 0 },\n { name: 'CLIP', type: 'CLIP', links: [3, 5], slot_index: 1 },\n { name: 'VAE', type: 'VAE', links: [8], slot_index: 2 }\n ],\n properties: {},\n widgets_values: ['v1-5-pruned-emaonly.ckpt']\n }\n ],\n links: [\n [1, 4, 0, 3, 0, 'MODEL'],\n [2, 5, 0, 3, 3, 'LATENT'],\n [3, 4, 1, 6, 0, 'CLIP'],\n [4, 6, 0, 3, 1, 'CONDITIONING'],\n [5, 4, 1, 7, 0, 'CLIP'],\n [6, 7, 0, 3, 2, 'CONDITIONING'],\n [7, 3, 0, 8, 0, 'LATENT'],\n [8, 4, 2, 8, 1, 'VAE'],\n [9, 8, 0, 9, 0, 'IMAGE']\n ],\n groups: [],\n config: {},\n extra: {},\n version: 0.4\n}\n\nexport const defaultGraphJSON = JSON.stringify(defaultGraph)\n\nexport const blankGraph: ComfyWorkflowJSON = {\n last_node_id: 0,\n last_link_id: 0,\n nodes: [],\n links: [],\n groups: [],\n config: {},\n extra: {},\n version: 0.4\n}\n","// @ts-strict-ignore\nexport function getFromPngBuffer(buffer: ArrayBuffer) {\n // Get the PNG data as a Uint8Array\n const pngData = new Uint8Array(buffer)\n const dataView = new DataView(pngData.buffer)\n\n // Check that the PNG signature is present\n if (dataView.getUint32(0) !== 0x89504e47) {\n console.error('Not a valid PNG file')\n return\n }\n\n // Start searching for chunks after the PNG signature\n let offset = 8\n let txt_chunks: Record = {}\n // Loop through the chunks in the PNG file\n while (offset < pngData.length) {\n // Get the length of the chunk\n const length = dataView.getUint32(offset)\n // Get the chunk type\n const type = String.fromCharCode(...pngData.slice(offset + 4, offset + 8))\n if (type === 'tEXt' || type == 'comf' || type === 'iTXt') {\n // Get the keyword\n let keyword_end = offset + 8\n while (pngData[keyword_end] !== 0) {\n keyword_end++\n }\n const keyword = String.fromCharCode(\n ...pngData.slice(offset + 8, keyword_end)\n )\n // Get the text\n const contentArraySegment = pngData.slice(\n keyword_end + 1,\n offset + 8 + length\n )\n const contentJson = new TextDecoder('utf-8').decode(contentArraySegment)\n txt_chunks[keyword] = contentJson\n }\n\n offset += 12 + length\n }\n return txt_chunks\n}\n\nexport function getFromPngFile(file: File) {\n return new Promise>((r) => {\n const reader = new FileReader()\n reader.onload = (event) => {\n r(getFromPngBuffer(event.target.result as ArrayBuffer))\n }\n\n reader.readAsArrayBuffer(file)\n })\n}\n","// @ts-strict-ignore\nexport function getFromFlacBuffer(buffer: ArrayBuffer): Record {\n const dataView = new DataView(buffer)\n\n // Verify the FLAC signature\n const signature = String.fromCharCode(...new Uint8Array(buffer, 0, 4))\n if (signature !== 'fLaC') {\n console.error('Not a valid FLAC file')\n return\n }\n\n // Parse metadata blocks\n let offset = 4\n let vorbisComment = null\n while (offset < dataView.byteLength) {\n const isLastBlock = dataView.getUint8(offset) & 0x80\n const blockType = dataView.getUint8(offset) & 0x7f\n const blockSize = dataView.getUint32(offset, false) & 0xffffff\n offset += 4\n\n if (blockType === 4) {\n // Vorbis Comment block type\n vorbisComment = parseVorbisComment(\n new DataView(buffer, offset, blockSize)\n )\n }\n\n offset += blockSize\n if (isLastBlock) break\n }\n\n return vorbisComment\n}\n\nexport function getFromFlacFile(file: File): Promise> {\n return new Promise((r) => {\n const reader = new FileReader()\n reader.onload = function (event) {\n const arrayBuffer = event.target.result as ArrayBuffer\n r(getFromFlacBuffer(arrayBuffer))\n }\n reader.readAsArrayBuffer(file)\n })\n}\n\n// Function to parse the Vorbis Comment block\nfunction parseVorbisComment(dataView: DataView): Record {\n let offset = 0\n const vendorLength = dataView.getUint32(offset, true)\n offset += 4\n const vendorString = getString(dataView, offset, vendorLength)\n offset += vendorLength\n\n const userCommentListLength = dataView.getUint32(offset, true)\n offset += 4\n const comments = {}\n for (let i = 0; i < userCommentListLength; i++) {\n const commentLength = dataView.getUint32(offset, true)\n offset += 4\n const comment = getString(dataView, offset, commentLength)\n offset += commentLength\n\n const ind = comment.indexOf('=')\n const key = comment.substring(0, ind)\n\n comments[key] = comment.substring(ind + 1)\n }\n\n return comments\n}\n\nfunction getString(dataView: DataView, offset: number, length: number): string {\n let string = ''\n for (let i = 0; i < length; i++) {\n string += String.fromCharCode(dataView.getUint8(offset + i))\n }\n return string\n}\n","// @ts-strict-ignore\nimport { LiteGraph } from '@comfyorg/litegraph'\nimport { api } from './api'\nimport { getFromPngFile } from './metadata/png'\nimport { getFromFlacFile } from './metadata/flac'\nimport { workflowService } from '@/services/workflowService'\n\n// Original functions left in for backwards compatibility\nexport function getPngMetadata(file: File): Promise> {\n return getFromPngFile(file)\n}\n\nexport function getFlacMetadata(file: File): Promise> {\n return getFromFlacFile(file)\n}\n\nfunction parseExifData(exifData) {\n // Check for the correct TIFF header (0x4949 for little-endian or 0x4D4D for big-endian)\n const isLittleEndian = String.fromCharCode(...exifData.slice(0, 2)) === 'II'\n\n // Function to read 16-bit and 32-bit integers from binary data\n function readInt(offset, isLittleEndian, length) {\n let arr = exifData.slice(offset, offset + length)\n if (length === 2) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).getUint16(\n 0,\n isLittleEndian\n )\n } else if (length === 4) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).getUint32(\n 0,\n isLittleEndian\n )\n }\n }\n\n // Read the offset to the first IFD (Image File Directory)\n const ifdOffset = readInt(4, isLittleEndian, 4)\n\n function parseIFD(offset) {\n const numEntries = readInt(offset, isLittleEndian, 2)\n const result = {}\n\n for (let i = 0; i < numEntries; i++) {\n const entryOffset = offset + 2 + i * 12\n const tag = readInt(entryOffset, isLittleEndian, 2)\n const type = readInt(entryOffset + 2, isLittleEndian, 2)\n const numValues = readInt(entryOffset + 4, isLittleEndian, 4)\n const valueOffset = readInt(entryOffset + 8, isLittleEndian, 4)\n\n // Read the value(s) based on the data type\n let value\n if (type === 2) {\n // ASCII string\n value = new TextDecoder('utf-8').decode(\n exifData.subarray(valueOffset, valueOffset + numValues - 1)\n )\n }\n\n result[tag] = value\n }\n\n return result\n }\n\n // Parse the first IFD\n const ifdData = parseIFD(ifdOffset)\n return ifdData\n}\n\nfunction splitValues(input) {\n var output = {}\n for (var key in input) {\n var value = input[key]\n var splitValues = value.split(':', 2)\n output[splitValues[0]] = splitValues[1]\n }\n return output\n}\n\nexport function getWebpMetadata(file) {\n return new Promise>((r) => {\n const reader = new FileReader()\n reader.onload = (event) => {\n const webp = new Uint8Array(event.target.result as ArrayBuffer)\n const dataView = new DataView(webp.buffer)\n\n // Check that the WEBP signature is present\n if (\n dataView.getUint32(0) !== 0x52494646 ||\n dataView.getUint32(8) !== 0x57454250\n ) {\n console.error('Not a valid WEBP file')\n r({})\n return\n }\n\n // Start searching for chunks after the WEBP signature\n let offset = 12\n let txt_chunks = {}\n // Loop through the chunks in the WEBP file\n while (offset < webp.length) {\n const chunk_length = dataView.getUint32(offset + 4, true)\n const chunk_type = String.fromCharCode(\n ...webp.slice(offset, offset + 4)\n )\n if (chunk_type === 'EXIF') {\n if (\n String.fromCharCode(...webp.slice(offset + 8, offset + 8 + 6)) ==\n 'Exif\\0\\0'\n ) {\n offset += 6\n }\n let data = parseExifData(\n webp.slice(offset + 8, offset + 8 + chunk_length)\n )\n for (var key in data) {\n const value = data[key] as string\n if (typeof value === 'string') {\n const index = value.indexOf(':')\n txt_chunks[value.slice(0, index)] = value.slice(index + 1)\n }\n }\n break\n }\n\n offset += 8 + chunk_length\n }\n\n r(txt_chunks)\n }\n\n reader.readAsArrayBuffer(file)\n })\n}\n\nexport function getLatentMetadata(file) {\n return new Promise((r) => {\n const reader = new FileReader()\n reader.onload = (event) => {\n const safetensorsData = new Uint8Array(event.target.result as ArrayBuffer)\n const dataView = new DataView(safetensorsData.buffer)\n let header_size = dataView.getUint32(0, true)\n let offset = 8\n let header = JSON.parse(\n new TextDecoder().decode(\n safetensorsData.slice(offset, offset + header_size)\n )\n )\n r(header.__metadata__)\n }\n\n var slice = file.slice(0, 1024 * 1024 * 4)\n reader.readAsArrayBuffer(slice)\n })\n}\n\nexport async function importA1111(graph, parameters) {\n const p = parameters.lastIndexOf('\\nSteps:')\n if (p > -1) {\n const embeddings = await api.getEmbeddings()\n const opts = parameters\n .substr(p)\n .split('\\n')[1]\n .match(\n new RegExp('\\\\s*([^:]+:\\\\s*([^\"\\\\{].*?|\".*?\"|\\\\{.*?\\\\}))\\\\s*(,|$)', 'g')\n )\n .reduce((p, n) => {\n const s = n.split(':')\n if (s[1].endsWith(',')) {\n s[1] = s[1].substr(0, s[1].length - 1)\n }\n p[s[0].trim().toLowerCase()] = s[1].trim()\n return p\n }, {})\n const p2 = parameters.lastIndexOf('\\nNegative prompt:', p)\n if (p2 > -1) {\n let positive = parameters.substr(0, p2).trim()\n let negative = parameters.substring(p2 + 18, p).trim()\n\n const ckptNode = LiteGraph.createNode('CheckpointLoaderSimple')\n const clipSkipNode = LiteGraph.createNode('CLIPSetLastLayer')\n const positiveNode = LiteGraph.createNode('CLIPTextEncode')\n const negativeNode = LiteGraph.createNode('CLIPTextEncode')\n const samplerNode = LiteGraph.createNode('KSampler')\n const imageNode = LiteGraph.createNode('EmptyLatentImage')\n const vaeNode = LiteGraph.createNode('VAEDecode')\n const vaeLoaderNode = LiteGraph.createNode('VAELoader')\n const saveNode = LiteGraph.createNode('SaveImage')\n let hrSamplerNode = null\n let hrSteps = null\n\n const ceil64 = (v) => Math.ceil(v / 64) * 64\n\n const getWidget = (node, name) => {\n return node.widgets.find((w) => w.name === name)\n }\n\n const setWidgetValue = (node, name, value, isOptionPrefix?) => {\n const w = getWidget(node, name)\n if (isOptionPrefix) {\n const o = w.options.values.find((w) => w.startsWith(value))\n if (o) {\n w.value = o\n } else {\n console.warn(`Unknown value '${value}' for widget '${name}'`, node)\n w.value = value\n }\n } else {\n w.value = value\n }\n }\n\n const createLoraNodes = (clipNode, text, prevClip, prevModel) => {\n const loras = []\n text = text.replace(/]+)>/g, function (m, c) {\n const s = c.split(':')\n const weight = parseFloat(s[1])\n if (isNaN(weight)) {\n console.warn('Invalid LORA', m)\n } else {\n loras.push({ name: s[0], weight })\n }\n return ''\n })\n\n for (const l of loras) {\n const loraNode = LiteGraph.createNode('LoraLoader')\n graph.add(loraNode)\n setWidgetValue(loraNode, 'lora_name', l.name, true)\n setWidgetValue(loraNode, 'strength_model', l.weight)\n setWidgetValue(loraNode, 'strength_clip', l.weight)\n prevModel.node.connect(prevModel.index, loraNode, 0)\n prevClip.node.connect(prevClip.index, loraNode, 1)\n prevModel = { node: loraNode, index: 0 }\n prevClip = { node: loraNode, index: 1 }\n }\n\n prevClip.node.connect(1, clipNode, 0)\n prevModel.node.connect(0, samplerNode, 0)\n if (hrSamplerNode) {\n prevModel.node.connect(0, hrSamplerNode, 0)\n }\n\n return { text, prevModel, prevClip }\n }\n\n const replaceEmbeddings = (text) => {\n if (!embeddings.length) return text\n return text.replaceAll(\n new RegExp(\n '\\\\b(' +\n embeddings\n .map((e) => e.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n .join('\\\\b|\\\\b') +\n ')\\\\b',\n 'ig'\n ),\n 'embedding:$1'\n )\n }\n\n const popOpt = (name) => {\n const v = opts[name]\n delete opts[name]\n return v\n }\n\n graph.clear()\n graph.add(ckptNode)\n graph.add(clipSkipNode)\n graph.add(positiveNode)\n graph.add(negativeNode)\n graph.add(samplerNode)\n graph.add(imageNode)\n graph.add(vaeNode)\n graph.add(vaeLoaderNode)\n graph.add(saveNode)\n\n ckptNode.connect(1, clipSkipNode, 0)\n clipSkipNode.connect(0, positiveNode, 0)\n clipSkipNode.connect(0, negativeNode, 0)\n ckptNode.connect(0, samplerNode, 0)\n positiveNode.connect(0, samplerNode, 1)\n negativeNode.connect(0, samplerNode, 2)\n imageNode.connect(0, samplerNode, 3)\n vaeNode.connect(0, saveNode, 0)\n samplerNode.connect(0, vaeNode, 0)\n vaeLoaderNode.connect(0, vaeNode, 1)\n\n const handlers = {\n model(v) {\n setWidgetValue(ckptNode, 'ckpt_name', v, true)\n },\n vae(v) {\n setWidgetValue(vaeLoaderNode, 'vae_name', v, true)\n },\n 'cfg scale'(v) {\n setWidgetValue(samplerNode, 'cfg', +v)\n },\n 'clip skip'(v) {\n setWidgetValue(clipSkipNode, 'stop_at_clip_layer', -v)\n },\n sampler(v) {\n let name = v.toLowerCase().replace('++', 'pp').replaceAll(' ', '_')\n if (name.includes('karras')) {\n name = name.replace('karras', '').replace(/_+$/, '')\n setWidgetValue(samplerNode, 'scheduler', 'karras')\n } else {\n setWidgetValue(samplerNode, 'scheduler', 'normal')\n }\n const w = getWidget(samplerNode, 'sampler_name')\n const o = w.options.values.find(\n (w) => w === name || w === 'sample_' + name\n )\n if (o) {\n setWidgetValue(samplerNode, 'sampler_name', o)\n }\n },\n size(v) {\n const wxh = v.split('x')\n const w = ceil64(+wxh[0])\n const h = ceil64(+wxh[1])\n const hrUp = popOpt('hires upscale')\n const hrSz = popOpt('hires resize')\n hrSteps = popOpt('hires steps')\n let hrMethod = popOpt('hires upscaler')\n\n setWidgetValue(imageNode, 'width', w)\n setWidgetValue(imageNode, 'height', h)\n\n if (hrUp || hrSz) {\n let uw, uh\n if (hrUp) {\n uw = w * hrUp\n uh = h * hrUp\n } else {\n const s = hrSz.split('x')\n uw = +s[0]\n uh = +s[1]\n }\n\n let upscaleNode\n let latentNode\n\n if (hrMethod.startsWith('Latent')) {\n latentNode = upscaleNode = LiteGraph.createNode('LatentUpscale')\n graph.add(upscaleNode)\n samplerNode.connect(0, upscaleNode, 0)\n\n switch (hrMethod) {\n case 'Latent (nearest-exact)':\n hrMethod = 'nearest-exact'\n break\n }\n setWidgetValue(upscaleNode, 'upscale_method', hrMethod, true)\n } else {\n const decode = LiteGraph.createNode('VAEDecodeTiled')\n graph.add(decode)\n samplerNode.connect(0, decode, 0)\n vaeLoaderNode.connect(0, decode, 1)\n\n const upscaleLoaderNode =\n LiteGraph.createNode('UpscaleModelLoader')\n graph.add(upscaleLoaderNode)\n setWidgetValue(upscaleLoaderNode, 'model_name', hrMethod, true)\n\n const modelUpscaleNode = LiteGraph.createNode(\n 'ImageUpscaleWithModel'\n )\n graph.add(modelUpscaleNode)\n decode.connect(0, modelUpscaleNode, 1)\n upscaleLoaderNode.connect(0, modelUpscaleNode, 0)\n\n upscaleNode = LiteGraph.createNode('ImageScale')\n graph.add(upscaleNode)\n modelUpscaleNode.connect(0, upscaleNode, 0)\n\n const vaeEncodeNode = (latentNode =\n LiteGraph.createNode('VAEEncodeTiled'))\n graph.add(vaeEncodeNode)\n upscaleNode.connect(0, vaeEncodeNode, 0)\n vaeLoaderNode.connect(0, vaeEncodeNode, 1)\n }\n\n setWidgetValue(upscaleNode, 'width', ceil64(uw))\n setWidgetValue(upscaleNode, 'height', ceil64(uh))\n\n hrSamplerNode = LiteGraph.createNode('KSampler')\n graph.add(hrSamplerNode)\n ckptNode.connect(0, hrSamplerNode, 0)\n positiveNode.connect(0, hrSamplerNode, 1)\n negativeNode.connect(0, hrSamplerNode, 2)\n latentNode.connect(0, hrSamplerNode, 3)\n hrSamplerNode.connect(0, vaeNode, 0)\n }\n },\n steps(v) {\n setWidgetValue(samplerNode, 'steps', +v)\n },\n seed(v) {\n setWidgetValue(samplerNode, 'seed', +v)\n }\n }\n\n for (const opt in opts) {\n if (opt in handlers) {\n handlers[opt](popOpt(opt))\n }\n }\n\n if (hrSamplerNode) {\n setWidgetValue(\n hrSamplerNode,\n 'steps',\n hrSteps ? +hrSteps : getWidget(samplerNode, 'steps').value\n )\n setWidgetValue(\n hrSamplerNode,\n 'cfg',\n getWidget(samplerNode, 'cfg').value\n )\n setWidgetValue(\n hrSamplerNode,\n 'scheduler',\n getWidget(samplerNode, 'scheduler').value\n )\n setWidgetValue(\n hrSamplerNode,\n 'sampler_name',\n getWidget(samplerNode, 'sampler_name').value\n )\n setWidgetValue(\n hrSamplerNode,\n 'denoise',\n +(popOpt('denoising strength') || '1')\n )\n }\n\n let n = createLoraNodes(\n positiveNode,\n positive,\n { node: clipSkipNode, index: 0 },\n { node: ckptNode, index: 0 }\n )\n positive = n.text\n n = createLoraNodes(negativeNode, negative, n.prevClip, n.prevModel)\n negative = n.text\n\n setWidgetValue(positiveNode, 'text', replaceEmbeddings(positive))\n setWidgetValue(negativeNode, 'text', replaceEmbeddings(negative))\n\n graph.arrange()\n\n for (const opt of [\n 'model hash',\n 'ensd',\n 'version',\n 'vae hash',\n 'ti hashes',\n 'lora hashes',\n 'hashes'\n ]) {\n delete opts[opt]\n }\n\n console.warn('Unhandled parameters:', opts)\n }\n }\n}\n","// @ts-strict-ignore\nimport { app } from '../app'\nimport { $el } from '../ui'\n\nexport function calculateImageGrid(imgs, dw, dh) {\n let best = 0\n let w = imgs[0].naturalWidth\n let h = imgs[0].naturalHeight\n const numImages = imgs.length\n\n let cellWidth, cellHeight, cols, rows, shiftX\n // compact style\n for (let c = 1; c <= numImages; c++) {\n const r = Math.ceil(numImages / c)\n const cW = dw / c\n const cH = dh / r\n const scaleX = cW / w\n const scaleY = cH / h\n\n const scale = Math.min(scaleX, scaleY, 1)\n const imageW = w * scale\n const imageH = h * scale\n const area = imageW * imageH * numImages\n\n if (area > best) {\n best = area\n cellWidth = imageW\n cellHeight = imageH\n cols = c\n rows = r\n shiftX = c * ((cW - imageW) / 2)\n }\n }\n\n return { cellWidth, cellHeight, cols, rows, shiftX }\n}\n\nexport function createImageHost(node) {\n const el = $el('div.comfy-img-preview')\n let currentImgs\n let first = true\n\n function updateSize() {\n let w = null\n let h = null\n\n if (currentImgs) {\n let elH = el.clientHeight\n if (first) {\n first = false\n // On first run, if we are small then grow a bit\n if (elH < 190) {\n elH = 190\n }\n el.style.setProperty('--comfy-widget-min-height', elH.toString())\n } else {\n el.style.setProperty('--comfy-widget-min-height', null)\n }\n\n const nw = node.size[0]\n ;({ cellWidth: w, cellHeight: h } = calculateImageGrid(\n currentImgs,\n nw - 20,\n elH\n ))\n w += 'px'\n h += 'px'\n\n el.style.setProperty('--comfy-img-preview-width', w)\n el.style.setProperty('--comfy-img-preview-height', h)\n }\n }\n return {\n el,\n updateImages(imgs) {\n if (imgs !== currentImgs) {\n if (currentImgs == null) {\n requestAnimationFrame(() => {\n updateSize()\n })\n }\n el.replaceChildren(...imgs)\n currentImgs = imgs\n node.onResize(node.size)\n node.graph.setDirtyCanvas(true, true)\n }\n },\n getHeight() {\n updateSize()\n },\n onDraw() {\n // Element from point uses a hittest find elements so we need to toggle pointer events\n el.style.pointerEvents = 'all'\n const over = document.elementFromPoint(\n app.canvas.mouse[0],\n app.canvas.mouse[1]\n )\n el.style.pointerEvents = 'none'\n\n if (!over) return\n // Set the overIndex so Open Image etc work\n const idx = currentImgs.indexOf(over)\n node.overIndex = idx\n }\n }\n}\n","import { memoize } from 'lodash'\n\ntype RGB = { r: number; g: number; b: number }\ntype HSL = { h: number; s: number; l: number }\ntype HSLA = { h: number; s: number; l: number; a: number }\ntype ColorFormat = 'hex' | 'rgb' | 'rgba' | 'hsl' | 'hsla'\n\nexport interface ColorAdjustOptions {\n lightness?: number\n opacity?: number\n}\n\nfunction rgbToHsl({ r, g, b }: RGB): HSL {\n r /= 255\n g /= 255\n b /= 255\n const max = Math.max(r, g, b),\n min = Math.min(r, g, b)\n let h = 0,\n s = 0\n const l: number = (max + min) / 2\n\n if (max !== min) {\n const d = max - min\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0)\n break\n case g:\n h = (b - r) / d + 2\n break\n case b:\n h = (r - g) / d + 4\n break\n }\n h /= 6\n }\n\n return { h, s, l }\n}\n\nfunction hexToRgb(hex: string): RGB {\n let r = 0,\n g = 0,\n b = 0\n // 3 digits\n if (hex.length == 4) {\n r = parseInt(hex[1] + hex[1], 16)\n g = parseInt(hex[2] + hex[2], 16)\n b = parseInt(hex[3] + hex[3], 16)\n }\n // 6 digits\n else if (hex.length == 7) {\n r = parseInt(hex.slice(1, 3), 16)\n g = parseInt(hex.slice(3, 5), 16)\n b = parseInt(hex.slice(5, 7), 16)\n }\n return { r, g, b }\n}\n\nconst identifyColorFormat = (color: string): ColorFormat | null => {\n if (!color) return null\n if (color.startsWith('#') && (color.length === 4 || color.length === 7))\n return 'hex'\n if (/rgba?\\(\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*/.test(color))\n return color.includes('rgba') ? 'rgba' : 'rgb'\n if (/hsla?\\(\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%/.test(color))\n return color.includes('hsla') ? 'hsla' : 'hsl'\n return null\n}\n\nconst isHSLA = (color: unknown): color is HSLA => {\n if (typeof color !== 'object' || color === null) return false\n\n return ['h', 's', 'l', 'a'].every(\n (key) =>\n typeof (color as Record)[key] === 'number' &&\n !isNaN((color as Record)[key])\n )\n}\n\nfunction parseToHSLA(color: string, format: ColorFormat): HSLA | null {\n let match: RegExpMatchArray | null\n\n switch (format) {\n case 'hex': {\n const hsl = rgbToHsl(hexToRgb(color))\n return {\n h: Math.round(hsl.h * 360),\n s: +(hsl.s * 100).toFixed(1),\n l: +(hsl.l * 100).toFixed(1),\n a: 1\n }\n }\n\n case 'rgb':\n case 'rgba': {\n match = color.match(/\\d+(\\.\\d+)?/g)\n if (!match || match.length < 3) return null\n const [r, g, b] = match.map(Number)\n const hsl = rgbToHsl({ r, g, b })\n\n const a = format === 'rgba' && match[3] ? parseFloat(match[3]) : 1\n\n return {\n h: Math.round(hsl.h * 360),\n s: +(hsl.s * 100).toFixed(1),\n l: +(hsl.l * 100).toFixed(1),\n a\n }\n }\n\n case 'hsl':\n case 'hsla': {\n match = color.match(/\\d+(\\.\\d+)?/g)\n if (!match || match.length < 3) return null\n const [h, s, l] = match.map(Number)\n const a = format === 'hsla' && match[3] ? parseFloat(match[3]) : 1\n return { h, s, l, a }\n }\n default:\n return null\n }\n}\n\nconst applyColorAdjustments = (\n color: string,\n options: ColorAdjustOptions\n): string => {\n if (!Object.keys(options).length) return color\n\n const format = identifyColorFormat(color)\n if (!format) {\n console.warn(`Unsupported color format in color palette: ${color}`)\n return color\n }\n\n const hsla = parseToHSLA(color, format)\n if (!isHSLA(hsla)) {\n console.warn(`Invalid color values in color palette: ${color}`)\n return color\n }\n\n if (options.lightness) {\n hsla.l = Math.max(0, Math.min(100, hsla.l + options.lightness * 100.0))\n }\n\n if (options.opacity) {\n hsla.a = Math.max(0, Math.min(1, options.opacity))\n }\n\n return `hsla(${hsla.h}, ${hsla.s}%, ${hsla.l}%, ${hsla.a})`\n}\n\nexport const adjustColor: (\n color: string,\n options: ColorAdjustOptions\n) => string = memoize(\n applyColorAdjustments,\n (color: string, options: ColorAdjustOptions): string =>\n `${color}-${JSON.stringify(options)}`\n)\n","// @ts-strict-ignore\nimport { api } from './api'\nimport type { ComfyApp } from './app'\nimport { $el } from './ui'\n\n// Simple date formatter\nconst parts = {\n d: (d) => d.getDate(),\n M: (d) => d.getMonth() + 1,\n h: (d) => d.getHours(),\n m: (d) => d.getMinutes(),\n s: (d) => d.getSeconds()\n}\nconst format =\n Object.keys(parts)\n .map((k) => k + k + '?')\n .join('|') + '|yyy?y?'\n\nfunction formatDate(text: string, date: Date) {\n return text.replace(new RegExp(format, 'g'), (text: string): string => {\n if (text === 'yy') return (date.getFullYear() + '').substring(2)\n if (text === 'yyyy') return date.getFullYear().toString()\n if (text[0] in parts) {\n const p = parts[text[0]](date)\n return (p + '').padStart(text.length, '0')\n }\n return text\n })\n}\n\nexport function clone(obj: any) {\n try {\n if (typeof structuredClone !== 'undefined') {\n return structuredClone(obj)\n }\n } catch (error) {\n // structuredClone is stricter than using JSON.parse/stringify so fallback to that\n }\n\n return JSON.parse(JSON.stringify(obj))\n}\n\nexport function applyTextReplacements(app: ComfyApp, value: string): string {\n return value.replace(/%([^%]+)%/g, function (match, text) {\n const split = text.split('.')\n if (split.length !== 2) {\n // Special handling for dates\n if (split[0].startsWith('date:')) {\n return formatDate(split[0].substring(5), new Date())\n }\n\n if (text !== 'width' && text !== 'height') {\n // Dont warn on standard replacements\n console.warn('Invalid replacement pattern', text)\n }\n return match\n }\n\n // Find node with matching S&R property name\n let nodes = app.graph.nodes.filter(\n (n) => n.properties?.['Node name for S&R'] === split[0]\n )\n // If we cant, see if there is a node with that title\n if (!nodes.length) {\n nodes = app.graph.nodes.filter((n) => n.title === split[0])\n }\n if (!nodes.length) {\n console.warn('Unable to find node', split[0])\n return match\n }\n\n if (nodes.length > 1) {\n console.warn('Multiple nodes matched', split[0], 'using first match')\n }\n\n const node = nodes[0]\n\n const widget = node.widgets?.find((w) => w.name === split[1])\n if (!widget) {\n console.warn('Unable to find widget', split[1], 'on node', split[0], node)\n return match\n }\n\n return ((widget.value ?? '') + '').replaceAll(/\\/|\\\\/g, '_')\n })\n}\n\nexport async function addStylesheet(\n urlOrFile: string,\n relativeTo?: string\n): Promise {\n return new Promise((res, rej) => {\n let url\n if (urlOrFile.endsWith('.js')) {\n url = urlOrFile.substr(0, urlOrFile.length - 2) + 'css'\n } else {\n url = new URL(\n urlOrFile,\n relativeTo ?? `${window.location.protocol}//${window.location.host}`\n ).toString()\n }\n $el('link', {\n parent: document.head,\n rel: 'stylesheet',\n type: 'text/css',\n href: url,\n onload: res,\n onerror: rej\n })\n })\n}\n\n/**\n * @param { string } filename\n * @param { Blob } blob\n */\nexport function downloadBlob(filename, blob) {\n const url = URL.createObjectURL(blob)\n const a = $el('a', {\n href: url,\n download: filename,\n style: { display: 'none' },\n parent: document.body\n })\n a.click()\n setTimeout(function () {\n a.remove()\n window.URL.revokeObjectURL(url)\n }, 0)\n}\n\nexport function prop(\n target: object,\n name: string,\n defaultValue: T,\n onChanged?: (\n currentValue: T,\n previousValue: T,\n target: object,\n name: string\n ) => void\n): T {\n let currentValue\n Object.defineProperty(target, name, {\n get() {\n return currentValue\n },\n set(newValue) {\n const prevValue = currentValue\n currentValue = newValue\n onChanged?.(currentValue, prevValue, target, name)\n }\n })\n return defaultValue\n}\n\nexport function getStorageValue(id: string) {\n const clientId = api.clientId ?? api.initialClientId\n return (\n (clientId && sessionStorage.getItem(`${id}:${clientId}`)) ??\n localStorage.getItem(id)\n )\n}\n\nexport function setStorageValue(id: string, value: string) {\n const clientId = api.clientId ?? api.initialClientId\n if (clientId) {\n sessionStorage.setItem(`${id}:${clientId}`, value)\n }\n localStorage.setItem(id, value)\n}\n","// @ts-strict-ignore\nimport { $el } from '../../ui'\nimport { ComfyButton } from './button'\nimport { prop } from '../../utils'\n\nexport class ComfyButtonGroup {\n element = $el('div.comfyui-button-group')\n buttons: (HTMLElement | ComfyButton)[]\n\n constructor(...buttons: (HTMLElement | ComfyButton)[]) {\n this.buttons = prop(this, 'buttons', buttons, () => this.update())\n }\n\n insert(button: ComfyButton, index: number) {\n this.buttons.splice(index, 0, button)\n this.update()\n }\n\n append(button: ComfyButton) {\n this.buttons.push(button)\n this.update()\n }\n\n remove(indexOrButton: ComfyButton | number) {\n if (typeof indexOrButton !== 'number') {\n indexOrButton = this.buttons.indexOf(indexOrButton)\n }\n if (indexOrButton > -1) {\n const r = this.buttons.splice(indexOrButton, 1)\n this.update()\n return r\n }\n }\n\n update() {\n this.element.replaceChildren(...this.buttons.map((b) => b['element'] ?? b))\n }\n}\n","// @ts-strict-ignore\nexport type ClassList = string | string[] | Record\n\nexport function applyClasses(\n element: HTMLElement,\n classList: ClassList,\n ...requiredClasses: string[]\n) {\n classList ??= ''\n\n let str: string\n if (typeof classList === 'string') {\n str = classList\n } else if (classList instanceof Array) {\n str = classList.join(' ')\n } else {\n str = Object.entries(classList).reduce((p, c) => {\n if (c[1]) {\n p += (p.length ? ' ' : '') + c[0]\n }\n return p\n }, '')\n }\n element.className = str\n if (requiredClasses) {\n element.classList.add(...requiredClasses)\n }\n}\n\nexport function toggleElement(\n element: HTMLElement,\n {\n onHide,\n onShow\n }: {\n onHide?: (el: HTMLElement) => void\n onShow?: (el: HTMLElement, value) => void\n } = {}\n) {\n let placeholder: HTMLElement | Comment\n let hidden: boolean\n return (value) => {\n if (value) {\n if (hidden) {\n hidden = false\n placeholder.replaceWith(element)\n }\n onShow?.(element, value)\n } else {\n if (!placeholder) {\n placeholder = document.createComment('')\n }\n hidden = true\n element.replaceWith(placeholder)\n onHide?.(element)\n }\n }\n}\n","// @ts-strict-ignore\nimport { $el } from '../../ui'\nimport { applyClasses, ClassList, toggleElement } from '../utils'\nimport { prop } from '../../utils'\nimport type { ComfyPopup } from './popup'\nimport type { ComfyComponent } from '.'\nimport type { ComfyApp } from '@/scripts/app'\nimport { Settings } from '@/types/apiTypes'\n\ntype ComfyButtonProps = {\n icon?: string\n overIcon?: string\n iconSize?: number\n content?: string | HTMLElement\n tooltip?: string\n enabled?: boolean\n action?: (e: Event, btn: ComfyButton) => void\n classList?: ClassList\n visibilitySetting?: { id: keyof Settings; showValue: boolean }\n app?: ComfyApp\n}\n\nexport class ComfyButton implements ComfyComponent {\n #over = 0\n #popupOpen = false\n isOver = false\n iconElement = $el('i.mdi')\n contentElement = $el('span')\n popup: ComfyPopup\n element: HTMLElement\n overIcon: string\n iconSize: number\n content: string | HTMLElement\n icon: string\n tooltip: string\n classList: ClassList\n hidden: boolean\n enabled: boolean\n action: (e: Event, btn: ComfyButton) => void\n\n constructor({\n icon,\n overIcon,\n iconSize,\n content,\n tooltip,\n action,\n classList = 'comfyui-button',\n visibilitySetting,\n app,\n enabled = true\n }: ComfyButtonProps) {\n this.element = $el(\n 'button',\n {\n onmouseenter: () => {\n this.isOver = true\n if (this.overIcon) {\n this.updateIcon()\n }\n },\n onmouseleave: () => {\n this.isOver = false\n if (this.overIcon) {\n this.updateIcon()\n }\n }\n },\n [this.iconElement, this.contentElement]\n )\n\n this.icon = prop(\n this,\n 'icon',\n icon,\n toggleElement(this.iconElement, { onShow: this.updateIcon })\n )\n this.overIcon = prop(this, 'overIcon', overIcon, () => {\n if (this.isOver) {\n this.updateIcon()\n }\n })\n this.iconSize = prop(this, 'iconSize', iconSize, this.updateIcon)\n this.content = prop(\n this,\n 'content',\n content,\n toggleElement(this.contentElement, {\n onShow: (el, v) => {\n if (typeof v === 'string') {\n el.textContent = v\n } else {\n el.replaceChildren(v)\n }\n }\n })\n )\n\n this.tooltip = prop(this, 'tooltip', tooltip, (v) => {\n if (v) {\n this.element.title = v\n } else {\n this.element.removeAttribute('title')\n }\n })\n if (tooltip !== undefined) {\n this.element.setAttribute('aria-label', tooltip)\n }\n this.classList = prop(this, 'classList', classList, this.updateClasses)\n this.hidden = prop(this, 'hidden', false, this.updateClasses)\n this.enabled = prop(this, 'enabled', enabled, () => {\n this.updateClasses()\n ;(this.element as HTMLButtonElement).disabled = !this.enabled\n })\n this.action = prop(this, 'action', action)\n this.element.addEventListener('click', (e) => {\n if (this.popup) {\n // we are either a touch device or triggered by click not hover\n if (!this.#over) {\n this.popup.toggle()\n }\n }\n this.action?.(e, this)\n })\n\n if (visibilitySetting?.id) {\n const settingUpdated = () => {\n this.hidden =\n app.ui.settings.getSettingValue(visibilitySetting.id) !==\n visibilitySetting.showValue\n }\n app.ui.settings.addEventListener(\n visibilitySetting.id + '.change',\n settingUpdated\n )\n settingUpdated()\n }\n }\n\n updateIcon = () =>\n (this.iconElement.className = `mdi mdi-${(this.isOver && this.overIcon) || this.icon}${this.iconSize ? ' mdi-' + this.iconSize + 'px' : ''}`)\n updateClasses = () => {\n const internalClasses = []\n if (this.hidden) {\n internalClasses.push('hidden')\n }\n if (!this.enabled) {\n internalClasses.push('disabled')\n }\n if (this.popup) {\n if (this.#popupOpen) {\n internalClasses.push('popup-open')\n } else {\n internalClasses.push('popup-closed')\n }\n }\n applyClasses(this.element, this.classList, ...internalClasses)\n }\n\n withPopup(popup: ComfyPopup, mode: 'click' | 'hover' = 'click') {\n this.popup = popup\n\n if (mode === 'hover') {\n for (const el of [this.element, this.popup.element]) {\n el.addEventListener('mouseenter', () => {\n this.popup.open = !!++this.#over\n })\n el.addEventListener('mouseleave', () => {\n this.popup.open = !!--this.#over\n })\n }\n }\n\n popup.addEventListener('change', () => {\n this.#popupOpen = popup.open\n this.updateClasses()\n })\n\n return this\n }\n}\n","// @ts-strict-ignore\nimport { prop } from '../../utils'\nimport { $el } from '../../ui'\nimport { applyClasses, ClassList } from '../utils'\n\nexport class ComfyPopup extends EventTarget {\n element = $el('div.comfyui-popup')\n open: boolean\n children: HTMLElement[]\n target: HTMLElement\n ignoreTarget: boolean\n container: HTMLElement\n position: string\n closeOnEscape: boolean\n horizontal: string\n classList: ClassList\n\n constructor(\n {\n target,\n container = document.body,\n classList = '',\n ignoreTarget = true,\n closeOnEscape = true,\n position = 'absolute',\n horizontal = 'left'\n }: {\n target: HTMLElement\n container?: HTMLElement\n classList?: ClassList\n ignoreTarget?: boolean\n closeOnEscape?: boolean\n position?: 'absolute' | 'relative'\n horizontal?: 'left' | 'right'\n },\n ...children: HTMLElement[]\n ) {\n super()\n this.target = target\n this.ignoreTarget = ignoreTarget\n this.container = container\n this.position = position\n this.closeOnEscape = closeOnEscape\n this.horizontal = horizontal\n\n container.append(this.element)\n\n this.children = prop(this, 'children', children, () => {\n this.element.replaceChildren(...this.children)\n this.update()\n })\n this.classList = prop(this, 'classList', classList, () =>\n applyClasses(this.element, this.classList, 'comfyui-popup', horizontal)\n )\n this.open = prop(this, 'open', false, (v, o) => {\n if (v === o) return\n if (v) {\n this.#show()\n } else {\n this.#hide()\n }\n })\n }\n\n toggle() {\n this.open = !this.open\n }\n\n #hide() {\n this.element.classList.remove('open')\n window.removeEventListener('resize', this.update)\n window.removeEventListener('click', this.#clickHandler, { capture: true })\n window.removeEventListener('keydown', this.#escHandler, { capture: true })\n\n this.dispatchEvent(new CustomEvent('close'))\n this.dispatchEvent(new CustomEvent('change'))\n }\n\n #show() {\n this.element.classList.add('open')\n this.update()\n\n window.addEventListener('resize', this.update)\n window.addEventListener('click', this.#clickHandler, { capture: true })\n if (this.closeOnEscape) {\n window.addEventListener('keydown', this.#escHandler, { capture: true })\n }\n\n this.dispatchEvent(new CustomEvent('open'))\n this.dispatchEvent(new CustomEvent('change'))\n }\n\n #escHandler = (e) => {\n if (e.key === 'Escape') {\n this.open = false\n e.preventDefault()\n e.stopImmediatePropagation()\n }\n }\n\n #clickHandler = (e) => {\n /** @type {any} */\n const target = e.target\n if (\n !this.element.contains(target) &&\n this.ignoreTarget &&\n !this.target.contains(target)\n ) {\n this.open = false\n }\n }\n\n update = () => {\n const rect = this.target.getBoundingClientRect()\n this.element.style.setProperty('--bottom', 'unset')\n if (this.position === 'absolute') {\n if (this.horizontal === 'left') {\n this.element.style.setProperty('--left', rect.left + 'px')\n } else {\n this.element.style.setProperty(\n '--left',\n rect.right - this.element.clientWidth + 'px'\n )\n }\n this.element.style.setProperty('--top', rect.bottom + 'px')\n this.element.style.setProperty('--limit', rect.bottom + 'px')\n } else {\n this.element.style.setProperty('--left', 0 + 'px')\n this.element.style.setProperty('--top', rect.height + 'px')\n this.element.style.setProperty('--limit', rect.height + 'px')\n }\n\n const thisRect = this.element.getBoundingClientRect()\n if (thisRect.height < 30) {\n // Move up instead\n this.element.style.setProperty('--top', 'unset')\n this.element.style.setProperty('--bottom', rect.height + 5 + 'px')\n this.element.style.setProperty('--limit', rect.height + 5 + 'px')\n }\n }\n}\n","import { $el } from '../../ui'\nimport { ComfyButton } from './button'\nimport { prop } from '../../utils'\nimport { ComfyPopup } from './popup'\n\nexport class ComfySplitButton {\n arrow: ComfyButton\n element: HTMLElement\n popup: ComfyPopup\n items: Array\n\n constructor(\n {\n primary,\n mode,\n horizontal = 'left',\n position = 'relative'\n }: {\n primary: ComfyButton\n mode?: 'hover' | 'click'\n horizontal?: 'left' | 'right'\n position?: 'relative' | 'absolute'\n },\n ...items: Array\n ) {\n this.arrow = new ComfyButton({\n icon: 'chevron-down'\n })\n this.element = $el(\n 'div.comfyui-split-button' + (mode === 'hover' ? '.hover' : ''),\n [\n $el(\n 'div.comfyui-split-primary',\n {\n ariaLabel: 'Queue current workflow'\n },\n primary.element\n ),\n $el(\n 'div.comfyui-split-arrow',\n {\n ariaLabel: 'Open extra opens',\n ariaHasPopup: 'true'\n },\n this.arrow.element\n )\n ]\n )\n this.popup = new ComfyPopup({\n target: this.element,\n container: position === 'relative' ? this.element : document.body,\n classList:\n 'comfyui-split-button-popup' + (mode === 'hover' ? ' hover' : ''),\n closeOnEscape: mode === 'click',\n position,\n horizontal\n })\n\n this.arrow.withPopup(this.popup, mode)\n\n this.items = prop(this, 'items', items, () => this.update())\n }\n\n update() {\n this.popup.element.replaceChildren(\n ...this.items.map((b) => ('element' in b ? b.element : b))\n )\n }\n}\n","// @ts-strict-ignore\nimport { ComfyDialog } from '../dialog'\nimport { $el } from '../../ui'\n\nexport class ComfyAsyncDialog extends ComfyDialog {\n #resolve: (value: any) => void\n\n constructor(actions?: Array) {\n super(\n 'dialog.comfy-dialog.comfyui-dialog',\n actions?.map((opt) => {\n if (typeof opt === 'string') {\n opt = { text: opt }\n }\n return $el('button.comfyui-button', {\n type: 'button',\n textContent: opt.text,\n onclick: () => this.close(opt.value ?? opt.text)\n })\n })\n )\n }\n\n show(html: string | HTMLElement | HTMLElement[]) {\n this.element.addEventListener('close', () => {\n this.close()\n })\n\n super.show(html)\n\n return new Promise((resolve) => {\n this.#resolve = resolve\n })\n }\n\n showModal(html: string | HTMLElement | HTMLElement[]) {\n this.element.addEventListener('close', () => {\n this.close()\n })\n\n super.show(html)\n this.element.showModal()\n\n return new Promise((resolve) => {\n this.#resolve = resolve\n })\n }\n\n close(result = null) {\n this.#resolve(result)\n this.element.close()\n super.close()\n }\n\n static async prompt({\n title = null,\n message,\n actions\n }: {\n title: string | null\n message: string\n actions: Array\n }) {\n const dialog = new ComfyAsyncDialog(actions)\n const content = [$el('span', message)]\n if (title) {\n content.unshift($el('h3', title))\n }\n const res = await dialog.showModal(content)\n dialog.element.remove()\n return res\n }\n}\n","// @ts-strict-ignore\n/*\n Original implementation:\n https://github.com/TahaSh/drag-to-reorder\n MIT License\n\n Copyright (c) 2023 Taha Shashtari\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n*/\n\nimport { $el } from '../ui'\n\n$el('style', {\n parent: document.head,\n textContent: `\n .draggable-item {\n position: relative;\n will-change: transform;\n user-select: none;\n }\n .draggable-item.is-idle {\n transition: 0.25s ease transform;\n }\n .draggable-item.is-draggable {\n z-index: 10;\n }\n `\n})\n\nexport class DraggableList extends EventTarget {\n listContainer\n draggableItem\n pointerStartX\n pointerStartY\n scrollYMax\n itemsGap = 0\n items = []\n itemSelector\n handleClass = 'drag-handle'\n off = []\n offDrag = []\n\n constructor(element, itemSelector) {\n super()\n this.listContainer = element\n this.itemSelector = itemSelector\n\n if (!this.listContainer) return\n\n this.off.push(this.on(this.listContainer, 'mousedown', this.dragStart))\n this.off.push(this.on(this.listContainer, 'touchstart', this.dragStart))\n this.off.push(this.on(document, 'mouseup', this.dragEnd))\n this.off.push(this.on(document, 'touchend', this.dragEnd))\n }\n\n getAllItems() {\n if (!this.items?.length) {\n this.items = Array.from(\n this.listContainer.querySelectorAll(this.itemSelector)\n )\n this.items.forEach((element) => {\n element.classList.add('is-idle')\n })\n }\n return this.items\n }\n\n getIdleItems() {\n return this.getAllItems().filter((item) =>\n item.classList.contains('is-idle')\n )\n }\n\n isItemAbove(item) {\n return item.hasAttribute('data-is-above')\n }\n\n isItemToggled(item) {\n return item.hasAttribute('data-is-toggled')\n }\n\n on(source, event, listener, options?) {\n listener = listener.bind(this)\n source.addEventListener(event, listener, options)\n return () => source.removeEventListener(event, listener)\n }\n\n dragStart(e) {\n if (e.target.classList.contains(this.handleClass)) {\n this.draggableItem = e.target.closest(this.itemSelector)\n }\n\n if (!this.draggableItem) return\n\n this.pointerStartX = e.clientX || e.touches[0].clientX\n this.pointerStartY = e.clientY || e.touches[0].clientY\n this.scrollYMax =\n this.listContainer.scrollHeight - this.listContainer.clientHeight\n\n this.setItemsGap()\n this.initDraggableItem()\n this.initItemsState()\n\n this.offDrag.push(this.on(document, 'mousemove', this.drag))\n this.offDrag.push(\n this.on(document, 'touchmove', this.drag, { passive: false })\n )\n\n this.dispatchEvent(\n new CustomEvent('dragstart', {\n detail: {\n element: this.draggableItem,\n position: this.getAllItems().indexOf(this.draggableItem)\n }\n })\n )\n }\n\n setItemsGap() {\n if (this.getIdleItems().length <= 1) {\n this.itemsGap = 0\n return\n }\n\n const item1 = this.getIdleItems()[0]\n const item2 = this.getIdleItems()[1]\n\n const item1Rect = item1.getBoundingClientRect()\n const item2Rect = item2.getBoundingClientRect()\n\n this.itemsGap = Math.abs(item1Rect.bottom - item2Rect.top)\n }\n\n initItemsState() {\n this.getIdleItems().forEach((item, i) => {\n if (this.getAllItems().indexOf(this.draggableItem) > i) {\n item.dataset.isAbove = ''\n }\n })\n }\n\n initDraggableItem() {\n this.draggableItem.classList.remove('is-idle')\n this.draggableItem.classList.add('is-draggable')\n }\n\n drag(e) {\n if (!this.draggableItem) return\n\n e.preventDefault()\n\n const clientX = e.clientX || e.touches[0].clientX\n const clientY = e.clientY || e.touches[0].clientY\n\n const listRect = this.listContainer.getBoundingClientRect()\n\n if (clientY > listRect.bottom) {\n if (this.listContainer.scrollTop < this.scrollYMax) {\n this.listContainer.scrollBy(0, 10)\n this.pointerStartY -= 10\n }\n } else if (clientY < listRect.top && this.listContainer.scrollTop > 0) {\n this.pointerStartY += 10\n this.listContainer.scrollBy(0, -10)\n }\n\n const pointerOffsetX = clientX - this.pointerStartX\n const pointerOffsetY = clientY - this.pointerStartY\n\n this.updateIdleItemsStateAndPosition()\n this.draggableItem.style.transform = `translate(${pointerOffsetX}px, ${pointerOffsetY}px)`\n }\n\n updateIdleItemsStateAndPosition() {\n const draggableItemRect = this.draggableItem.getBoundingClientRect()\n const draggableItemY = draggableItemRect.top + draggableItemRect.height / 2\n\n // Update state\n this.getIdleItems().forEach((item) => {\n const itemRect = item.getBoundingClientRect()\n const itemY = itemRect.top + itemRect.height / 2\n if (this.isItemAbove(item)) {\n if (draggableItemY <= itemY) {\n item.dataset.isToggled = ''\n } else {\n delete item.dataset.isToggled\n }\n } else {\n if (draggableItemY >= itemY) {\n item.dataset.isToggled = ''\n } else {\n delete item.dataset.isToggled\n }\n }\n })\n\n // Update position\n this.getIdleItems().forEach((item) => {\n if (this.isItemToggled(item)) {\n const direction = this.isItemAbove(item) ? 1 : -1\n item.style.transform = `translateY(${direction * (draggableItemRect.height + this.itemsGap)}px)`\n } else {\n item.style.transform = ''\n }\n })\n }\n\n dragEnd() {\n if (!this.draggableItem) return\n\n this.applyNewItemsOrder()\n this.cleanup()\n }\n\n applyNewItemsOrder() {\n const reorderedItems = []\n\n let oldPosition = -1\n this.getAllItems().forEach((item, index) => {\n if (item === this.draggableItem) {\n oldPosition = index\n return\n }\n if (!this.isItemToggled(item)) {\n reorderedItems[index] = item\n return\n }\n const newIndex = this.isItemAbove(item) ? index + 1 : index - 1\n reorderedItems[newIndex] = item\n })\n\n for (let index = 0; index < this.getAllItems().length; index++) {\n const item = reorderedItems[index]\n if (typeof item === 'undefined') {\n reorderedItems[index] = this.draggableItem\n }\n }\n\n reorderedItems.forEach((item) => {\n this.listContainer.appendChild(item)\n })\n\n this.items = reorderedItems\n\n this.dispatchEvent(\n new CustomEvent('dragend', {\n detail: {\n element: this.draggableItem,\n oldPosition,\n newPosition: reorderedItems.indexOf(this.draggableItem)\n }\n })\n )\n }\n\n cleanup() {\n this.itemsGap = 0\n this.items = []\n this.unsetDraggableItem()\n this.unsetItemState()\n\n this.offDrag.forEach((f) => f())\n this.offDrag = []\n }\n\n unsetDraggableItem() {\n this.draggableItem.style = null\n this.draggableItem.classList.remove('is-draggable')\n this.draggableItem.classList.add('is-idle')\n this.draggableItem = null\n }\n\n unsetItemState() {\n this.getIdleItems().forEach((item, i) => {\n delete item.dataset.isAbove\n delete item.dataset.isToggled\n item.style.transform = ''\n })\n }\n\n dispose() {\n this.off.forEach((f) => f())\n }\n}\n","import type { ComfyApp } from '@/scripts/app'\nimport { $el } from '../../ui'\nimport { ComfyButtonGroup } from '../components/buttonGroup'\nimport './menu.css'\n\n// Export to make sure following components are shimmed and exported by vite\nexport { ComfyButton } from '../components/button'\nexport { ComfySplitButton } from '../components/splitButton'\nexport { ComfyPopup } from '../components/popup'\nexport { ComfyAsyncDialog } from '@/scripts/ui/components/asyncDialog'\nexport { DraggableList } from '@/scripts/ui/draggableList'\nexport { applyTextReplacements, addStylesheet } from '@/scripts/utils'\n\nexport class ComfyAppMenu {\n app: ComfyApp\n actionsGroup: ComfyButtonGroup\n settingsGroup: ComfyButtonGroup\n viewGroup: ComfyButtonGroup\n element: HTMLElement\n\n constructor(app: ComfyApp) {\n this.app = app\n\n // Keep the group as there are custom scripts attaching extra\n // elements to it.\n this.actionsGroup = new ComfyButtonGroup()\n this.settingsGroup = new ComfyButtonGroup()\n this.viewGroup = new ComfyButtonGroup()\n\n this.element = $el('div.flex.gap-2.mx-2', [\n this.actionsGroup.element,\n this.settingsGroup.element,\n this.viewGroup.element\n ])\n }\n}\n","/**\n * Fuse.js v7.0.0 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2023 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n let getFn = null;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n getFn = key.getFn;\n }\n\n return { path, id, weight, src, getFn }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// ❗Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {\n throw new Error(EXTENDED_SEARCH_UNAVAILABLE)\n }\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '7.0.0';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\nexport { Fuse as default };\n","// @ts-strict-ignore\nimport { ComfyNodeDefImpl } from '@/stores/nodeDefStore'\nimport Fuse, { IFuseOptions, FuseSearchOptions } from 'fuse.js'\nimport _ from 'lodash'\n\nexport type SearchAuxScore = number[]\n\ninterface ExtraSearchOptions {\n matchWildcards?: boolean\n}\n\nexport class FuseSearch {\n public readonly fuse: Fuse\n public readonly keys: string[]\n public readonly data: T[]\n public readonly advancedScoring: boolean\n\n constructor(\n data: T[],\n options?: IFuseOptions,\n createIndex: boolean = true,\n advancedScoring: boolean = false\n ) {\n this.data = data\n this.keys = (options.keys ?? []) as string[]\n this.advancedScoring = advancedScoring\n const index =\n createIndex && options?.keys\n ? Fuse.createIndex(options.keys, data)\n : undefined\n this.fuse = new Fuse(data, options, index)\n }\n\n public search(query: string, options?: FuseSearchOptions): T[] {\n const fuseResult = !query\n ? this.data.map((x) => ({ item: x, score: 0 }))\n : this.fuse.search(query, options)\n\n if (!this.advancedScoring) {\n return fuseResult.map((x) => x.item)\n }\n\n const aux = fuseResult\n .map((x) => ({\n item: x.item,\n scores: this.calcAuxScores(query.toLocaleLowerCase(), x.item, x.score)\n }))\n .sort((a, b) => this.compareAux(a.scores, b.scores))\n\n return aux.map((x) => x.item)\n }\n\n public calcAuxScores(query: string, entry: T, score: number): SearchAuxScore {\n let values: string[] = []\n if (!this.keys.length) values = [entry as string]\n else values = this.keys.map((x) => entry[x])\n const scores = values.map((x) => this.calcAuxSingle(query, x, score))\n let result = scores.sort(this.compareAux)[0]\n\n const deprecated = values.some((x) =>\n x.toLocaleLowerCase().includes('deprecated')\n )\n result[0] += deprecated && result[0] != 0 ? 5 : 0\n if (entry['postProcessSearchScores']) {\n result = entry['postProcessSearchScores'](result) as SearchAuxScore\n }\n return result\n }\n\n public calcAuxSingle(\n query: string,\n item: string,\n score: number\n ): SearchAuxScore {\n const itemWords = item\n .split(/ |\\b|(?<=[a-z])(?=[A-Z])|(?=[A-Z][a-z])/)\n .map((x) => x.toLocaleLowerCase())\n const queryParts = query.split(' ')\n item = item.toLocaleLowerCase()\n\n let main = 9\n let aux1 = 0\n let aux2 = 0\n\n if (item == query) {\n main = 0\n } else if (item.startsWith(query)) {\n main = 1\n aux2 = item.length\n } else if (itemWords.includes(query)) {\n main = 2\n aux1 = item.indexOf(query) + item.length * 0.5\n aux2 = item.length\n } else if (item.includes(query)) {\n main = 3\n aux1 = item.indexOf(query) + item.length * 0.5\n aux2 = item.length\n } else if (queryParts.every((x) => itemWords.includes(x))) {\n const indexes = queryParts.map((x) => itemWords.indexOf(x))\n const min = Math.min(...indexes)\n const max = Math.max(...indexes)\n main = 4\n aux1 = max - min + max * 0.5 + item.length * 0.5\n aux2 = item.length\n } else if (queryParts.every((x) => item.includes(x))) {\n const min = Math.min(...queryParts.map((x) => item.indexOf(x)))\n const max = Math.max(...queryParts.map((x) => item.indexOf(x) + x.length))\n main = 5\n aux1 = max - min + max * 0.5 + item.length * 0.5\n aux2 = item.length\n }\n\n const lengthPenalty =\n 0.2 *\n (1 -\n Math.min(item.length, query.length) /\n Math.max(item.length, query.length))\n return [main, aux1, aux2, score + lengthPenalty]\n }\n\n public compareAux(a: SearchAuxScore, b: SearchAuxScore) {\n for (let i = 0; i < Math.min(a.length, b.length); i++) {\n if (a[i] !== b[i]) {\n return a[i] - b[i]\n }\n }\n return a.length - b.length\n }\n}\n\nexport type FilterAndValue = [NodeFilter, T]\n\nexport class NodeFilter {\n public readonly fuseSearch: FuseSearch\n\n constructor(\n public readonly id: string,\n public readonly name: string,\n public readonly invokeSequence: string,\n public readonly longInvokeSequence: string,\n public readonly nodeOptions:\n | FilterOptionT[]\n | ((node: ComfyNodeDefImpl) => FilterOptionT[]),\n nodeDefs: ComfyNodeDefImpl[],\n options?: IFuseOptions\n ) {\n this.fuseSearch = new FuseSearch(this.getAllNodeOptions(nodeDefs), options)\n }\n\n public getNodeOptions(node: ComfyNodeDefImpl): FilterOptionT[] {\n return this.nodeOptions instanceof Function\n ? this.nodeOptions(node)\n : this.nodeOptions\n }\n\n public getAllNodeOptions(nodeDefs: ComfyNodeDefImpl[]): FilterOptionT[] {\n return [\n ...new Set(\n nodeDefs.reduce((acc, nodeDef) => {\n return [...acc, ...this.getNodeOptions(nodeDef)]\n }, [])\n )\n ]\n }\n\n public matches(\n node: ComfyNodeDefImpl,\n value: FilterOptionT,\n extraOptions?: ExtraSearchOptions\n ): boolean {\n const matchWildcards = extraOptions?.matchWildcards !== false\n if (matchWildcards && value === '*') {\n return true\n }\n const options = this.getNodeOptions(node)\n return (\n options.includes(value) ||\n (matchWildcards && _.some(options, (option) => option === '*'))\n )\n }\n}\n\nexport class NodeSearchService {\n public readonly nodeFuseSearch: FuseSearch\n public readonly nodeFilters: NodeFilter[]\n\n constructor(data: ComfyNodeDefImpl[]) {\n this.nodeFuseSearch = new FuseSearch(\n data,\n {\n keys: ['name', 'display_name'],\n includeScore: true,\n threshold: 0.3,\n shouldSort: false,\n useExtendedSearch: true\n },\n true,\n true\n )\n\n const filterSearchOptions = {\n includeScore: true,\n threshold: 0.3,\n shouldSort: true\n }\n\n const inputTypeFilter = new NodeFilter(\n /* id */ 'input',\n /* name */ 'Input Type',\n /* invokeSequence */ 'i',\n /* longInvokeSequence */ 'input',\n (node) => node.inputs.all.map((input) => input.type),\n data,\n filterSearchOptions\n )\n\n const outputTypeFilter = new NodeFilter(\n /* id */ 'output',\n /* name */ 'Output Type',\n /* invokeSequence */ 'o',\n /* longInvokeSequence */ 'output',\n (node) => node.outputs.all.map((output) => output.type),\n data,\n filterSearchOptions\n )\n\n const nodeCategoryFilter = new NodeFilter(\n /* id */ 'category',\n /* name */ 'Category',\n /* invokeSequence */ 'c',\n /* longInvokeSequence */ 'category',\n (node) => [node.category],\n data,\n filterSearchOptions\n )\n\n const nodeSourceFilter = new NodeFilter(\n /* id */ 'source',\n /* name */ 'Source',\n /* invokeSequence */ 's',\n /* longInvokeSequence */ 'source',\n (node) => [node.nodeSource.displayText],\n data,\n filterSearchOptions\n )\n\n this.nodeFilters = [\n inputTypeFilter,\n outputTypeFilter,\n nodeCategoryFilter,\n nodeSourceFilter\n ]\n }\n\n public endsWithFilterStartSequence(query: string): boolean {\n return query.endsWith(':')\n }\n\n public searchNode(\n query: string,\n filters: FilterAndValue[] = [],\n options?: FuseSearchOptions,\n extraOptions?: ExtraSearchOptions\n ): ComfyNodeDefImpl[] {\n const matchedNodes = this.nodeFuseSearch.search(query)\n\n const results = matchedNodes.filter((node) => {\n return _.every(filters, (filterAndValue) => {\n const [filter, value] = filterAndValue\n return filter.matches(node, value, extraOptions)\n })\n })\n\n return options?.limit ? results.slice(0, options.limit) : results\n }\n\n public getFilterById(id: string): NodeFilter | undefined {\n return this.nodeFilters.find((filter) => filter.id === id)\n }\n}\n","import {\n NodeSearchService,\n type SearchAuxScore\n} from '@/services/nodeSearchService'\nimport {\n type ComfyNodeDef,\n type ComfyInputsSpec as ComfyInputsSpecSchema,\n type ComfyOutputTypesSpec as ComfyOutputTypesSpecSchema,\n type InputSpec\n} from '@/types/apiTypes'\nimport { defineStore } from 'pinia'\nimport type { TreeNode } from 'primevue/treenode'\nimport { buildTree } from '@/utils/treeUtil'\nimport { computed, ref } from 'vue'\nimport axios from 'axios'\nimport {\n type NodeSource,\n NodeSourceType,\n getNodeSource\n} from '@/types/nodeSource'\nimport type { LGraphNode } from '@comfyorg/litegraph'\n\nexport interface BaseInputSpec {\n name: string\n type: string\n tooltip?: string\n default?: T\n\n forceInput?: boolean\n}\n\nexport interface NumericInputSpec extends BaseInputSpec {\n min?: number\n max?: number\n step?: number\n}\n\nexport interface IntInputSpec extends NumericInputSpec {\n type: 'INT'\n}\n\nexport interface FloatInputSpec extends NumericInputSpec {\n type: 'FLOAT'\n round?: number\n}\n\nexport interface BooleanInputSpec extends BaseInputSpec {\n type: 'BOOLEAN'\n labelOn?: string\n labelOff?: string\n}\n\nexport interface StringInputSpec extends BaseInputSpec {\n type: 'STRING'\n multiline?: boolean\n dynamicPrompts?: boolean\n}\n\nexport interface ComboInputSpec extends BaseInputSpec {\n type: 'COMBO'\n comboOptions: any[]\n controlAfterGenerate?: boolean\n imageUpload?: boolean\n}\n\nexport class ComfyInputsSpec {\n required: Record\n optional: Record\n hidden?: Record\n\n constructor(obj: ComfyInputsSpecSchema) {\n this.required = ComfyInputsSpec.transformInputSpecRecord(obj.required ?? {})\n this.optional = ComfyInputsSpec.transformInputSpecRecord(obj.optional ?? {})\n this.hidden = obj.hidden\n }\n\n private static transformInputSpecRecord(\n record: Record\n ): Record {\n const result: Record = {}\n for (const [key, value] of Object.entries(record)) {\n result[key] = ComfyInputsSpec.transformSingleInputSpec(key, value)\n }\n return result\n }\n\n private static isInputSpec(obj: any): boolean {\n return (\n Array.isArray(obj) &&\n obj.length >= 1 &&\n (typeof obj[0] === 'string' || Array.isArray(obj[0]))\n )\n }\n\n private static transformSingleInputSpec(\n name: string,\n value: any\n ): BaseInputSpec {\n if (!ComfyInputsSpec.isInputSpec(value)) return value\n\n const [typeRaw, _spec] = value\n const spec = _spec ?? {}\n const type = Array.isArray(typeRaw) ? 'COMBO' : value[0]\n\n switch (type) {\n case 'COMBO':\n return {\n name,\n type,\n ...spec,\n comboOptions: typeRaw,\n default: spec.default ?? typeRaw[0]\n } as ComboInputSpec\n case 'INT':\n case 'FLOAT':\n case 'BOOLEAN':\n case 'STRING':\n default:\n return { name, type, ...spec } as BaseInputSpec\n }\n }\n\n get all() {\n return [...Object.values(this.required), ...Object.values(this.optional)]\n }\n\n getInput(name: string): BaseInputSpec | undefined {\n return this.required[name] ?? this.optional[name]\n }\n}\n\nexport class ComfyOutputSpec {\n constructor(\n public index: number,\n // Name is not unique for output params\n public name: string,\n public type: string,\n public is_list: boolean,\n public comboOptions?: any[],\n public tooltip?: string\n ) {}\n}\n\nexport class ComfyOutputsSpec {\n constructor(public outputs: ComfyOutputSpec[]) {}\n\n get all() {\n return this.outputs\n }\n}\n\nexport class ComfyNodeDefImpl implements ComfyNodeDef {\n // ComfyNodeDef fields\n readonly name: string\n readonly display_name: string\n /**\n * Category is not marked as readonly as the bookmark system\n * needs to write to it to assign a node to a custom folder.\n */\n category: string\n readonly python_module: string\n readonly description: string\n readonly deprecated: boolean\n readonly experimental: boolean\n readonly output_node: boolean\n /**\n * @deprecated Use `inputs` instead\n */\n readonly input: ComfyInputsSpecSchema\n /**\n * @deprecated Use `outputs` instead\n */\n readonly output: ComfyOutputTypesSpecSchema\n /**\n * @deprecated Use `outputs[n].is_list` instead\n */\n readonly output_is_list?: boolean[]\n /**\n * @deprecated Use `outputs[n].name` instead\n */\n readonly output_name?: string[]\n /**\n * @deprecated Use `outputs[n].tooltip` instead\n */\n readonly output_tooltips?: string[]\n\n // ComfyNodeDefImpl fields\n readonly inputs: ComfyInputsSpec\n readonly outputs: ComfyOutputsSpec\n readonly nodeSource: NodeSource\n\n constructor(obj: ComfyNodeDef) {\n this.name = obj.name\n this.display_name = obj.display_name\n this.category = obj.category\n this.python_module = obj.python_module\n this.description = obj.description\n this.deprecated = obj.deprecated ?? obj.category === ''\n this.experimental =\n obj.experimental ?? obj.category.startsWith('_for_testing')\n this.output_node = obj.output_node\n this.input = obj.input ?? {}\n this.output = obj.output ?? []\n this.output_is_list = obj.output_is_list\n this.output_name = obj.output_name\n this.output_tooltips = obj.output_tooltips\n\n this.inputs = new ComfyInputsSpec(obj.input ?? {})\n this.outputs = ComfyNodeDefImpl.transformOutputSpec(obj)\n this.nodeSource = getNodeSource(obj.python_module)\n }\n\n private static transformOutputSpec(obj: any): ComfyOutputsSpec {\n const { output, output_is_list, output_name, output_tooltips } = obj\n const result = (output ?? []).map((type: string | any[], index: number) => {\n const typeString = Array.isArray(type) ? 'COMBO' : type\n\n return new ComfyOutputSpec(\n index,\n output_name?.[index],\n typeString,\n output_is_list?.[index],\n Array.isArray(type) ? type : undefined,\n output_tooltips?.[index]\n )\n })\n return new ComfyOutputsSpec(result)\n }\n\n get nodePath(): string {\n return (this.category ? this.category + '/' : '') + this.name\n }\n\n get isDummyFolder(): boolean {\n return this.name === ''\n }\n\n postProcessSearchScores(scores: SearchAuxScore): SearchAuxScore {\n const nodeFrequencyStore = useNodeFrequencyStore()\n const nodeFrequency = nodeFrequencyStore.getNodeFrequencyByName(this.name)\n return [scores[0], -nodeFrequency, ...scores.slice(1)]\n }\n\n get isCoreNode(): boolean {\n return this.nodeSource.type === NodeSourceType.Core\n }\n\n get nodeLifeCycleBadgeText(): string {\n if (this.deprecated) return '[DEPR]'\n if (this.experimental) return '[BETA]'\n return ''\n }\n}\n\nexport const SYSTEM_NODE_DEFS: Record = {\n PrimitiveNode: {\n name: 'PrimitiveNode',\n display_name: 'Primitive',\n category: 'utils',\n input: { required: {}, optional: {} },\n output: ['*'],\n output_name: ['connect to widget input'],\n output_is_list: [false],\n output_node: false,\n python_module: 'nodes',\n description: 'Primitive values like numbers, strings, and booleans.'\n },\n Reroute: {\n name: 'Reroute',\n display_name: 'Reroute',\n category: 'utils',\n input: { required: { '': ['*'] }, optional: {} },\n output: ['*'],\n output_name: [''],\n output_is_list: [false],\n output_node: false,\n python_module: 'nodes',\n description: 'Reroute the connection to another node.'\n },\n Note: {\n name: 'Note',\n display_name: 'Note',\n category: 'utils',\n input: { required: {}, optional: {} },\n output: [],\n output_name: [],\n output_is_list: [],\n output_node: false,\n python_module: 'nodes',\n description: 'Node that add notes to your project'\n }\n}\n\nexport function buildNodeDefTree(nodeDefs: ComfyNodeDefImpl[]): TreeNode {\n return buildTree(nodeDefs, (nodeDef: ComfyNodeDefImpl) =>\n nodeDef.nodePath.split('/')\n )\n}\n\nexport function createDummyFolderNodeDef(folderPath: string): ComfyNodeDefImpl {\n return new ComfyNodeDefImpl({\n name: '',\n display_name: '',\n category: folderPath.endsWith('/') ? folderPath.slice(0, -1) : folderPath,\n python_module: 'nodes',\n description: 'Dummy Folder Node (User should never see this string)',\n input: {},\n output: [],\n output_name: [],\n output_is_list: [],\n output_node: false\n } as ComfyNodeDef)\n}\n\nexport const useNodeDefStore = defineStore('nodeDef', () => {\n const nodeDefsByName = ref>({})\n const nodeDefsByDisplayName = ref>({})\n const showDeprecated = ref(false)\n const showExperimental = ref(false)\n\n const nodeDefs = computed(() => Object.values(nodeDefsByName.value))\n const visibleNodeDefs = computed(() =>\n nodeDefs.value.filter(\n (nodeDef: ComfyNodeDefImpl) =>\n (showDeprecated.value || !nodeDef.deprecated) &&\n (showExperimental.value || !nodeDef.experimental)\n )\n )\n const nodeSearchService = computed(\n () => new NodeSearchService(visibleNodeDefs.value)\n )\n const nodeTree = computed(() => buildNodeDefTree(visibleNodeDefs.value))\n\n function updateNodeDefs(nodeDefs: ComfyNodeDef[]) {\n const newNodeDefsByName: Record = {}\n const newNodeDefsByDisplayName: Record = {}\n for (const nodeDef of nodeDefs) {\n try {\n const nodeDefImpl = new ComfyNodeDefImpl(nodeDef)\n newNodeDefsByName[nodeDef.name] = nodeDefImpl\n newNodeDefsByDisplayName[nodeDef.display_name] = nodeDefImpl\n } catch (e) {\n // Avoid breaking the app for invalid nodeDefs\n // NodeDef validation is now optional for performance reasons\n console.error('Error adding nodeDef:', e)\n }\n }\n nodeDefsByName.value = newNodeDefsByName\n nodeDefsByDisplayName.value = newNodeDefsByDisplayName\n }\n function addNodeDef(nodeDef: ComfyNodeDef) {\n const nodeDefImpl = new ComfyNodeDefImpl(nodeDef)\n nodeDefsByName.value[nodeDef.name] = nodeDefImpl\n nodeDefsByDisplayName.value[nodeDef.display_name] = nodeDefImpl\n }\n function fromLGraphNode(node: LGraphNode): ComfyNodeDefImpl | null {\n // Frontend-only nodes don't have nodeDef\n return nodeDefsByName.value[node.constructor?.nodeData?.name] ?? null\n }\n\n return {\n nodeDefsByName,\n nodeDefsByDisplayName,\n showDeprecated,\n showExperimental,\n\n nodeDefs,\n visibleNodeDefs,\n nodeSearchService,\n nodeTree,\n\n updateNodeDefs,\n addNodeDef,\n fromLGraphNode\n }\n})\n\nexport const useNodeFrequencyStore = defineStore('nodeFrequency', () => {\n const topNodeDefLimit = ref(64)\n const nodeFrequencyLookup = ref>({})\n const nodeNamesByFrequency = computed(() =>\n Object.keys(nodeFrequencyLookup.value)\n )\n const isLoaded = ref(false)\n\n const loadNodeFrequencies = async () => {\n if (!isLoaded.value) {\n try {\n const response = await axios.get('assets/sorted-custom-node-map.json')\n nodeFrequencyLookup.value = response.data\n isLoaded.value = true\n } catch (error) {\n console.error('Error loading node frequencies:', error)\n }\n }\n }\n\n const getNodeFrequency = (nodeDef: ComfyNodeDefImpl) => {\n return getNodeFrequencyByName(nodeDef.name)\n }\n\n const getNodeFrequencyByName = (nodeName: string) => {\n return nodeFrequencyLookup.value[nodeName] ?? 0\n }\n\n const nodeDefStore = useNodeDefStore()\n const topNodeDefs = computed(() => {\n return nodeNamesByFrequency.value\n .map((nodeName: string) => nodeDefStore.nodeDefsByName[nodeName])\n .filter((nodeDef: ComfyNodeDefImpl) => nodeDef !== undefined)\n .slice(0, topNodeDefLimit.value)\n })\n\n return {\n nodeNamesByFrequency,\n topNodeDefs,\n isLoaded,\n loadNodeFrequencies,\n getNodeFrequency,\n getNodeFrequencyByName\n }\n})\n","import { computed, ref } from 'vue'\nimport { defineStore } from 'pinia'\nimport { api } from '@/scripts/api'\n\n/** (Internal helper) finds a value in a metadata object from any of a list of keys. */\nfunction _findInMetadata(metadata: any, ...keys: string[]): string | null {\n for (const key of keys) {\n if (key in metadata) {\n return metadata[key]\n }\n for (const k in metadata) {\n if (k.endsWith(key)) {\n return metadata[k]\n }\n }\n }\n return null\n}\n\n/** Defines and holds metadata for a model */\nexport class ComfyModelDef {\n /** Proper filename of the model */\n readonly file_name: string\n /** Normalized filename of the model, with all backslashes replaced with forward slashes */\n readonly normalized_file_name: string\n /** Directory containing the model, eg 'checkpoints' */\n readonly directory: string\n /** Simplified copy of name, used as a default title. Excludes the directory and the '.safetensors' file extension */\n readonly simplified_file_name: string\n /** Key for the model, used to uniquely identify the model. */\n readonly key: string\n /** Title / display name of the model, sometimes same as the name but not always */\n title: string\n /** Metadata: architecture ID for the model, such as 'stable-diffusion-xl-v1-base' */\n architecture_id: string = ''\n /** Metadata: author of the model */\n author: string = ''\n /** Metadata: resolution of the model, eg '1024x1024' */\n resolution: string = ''\n /** Metadata: description of the model */\n description: string = ''\n /** Metadata: usage hint for the model */\n usage_hint: string = ''\n /** Metadata: trigger phrase for the model */\n trigger_phrase: string = ''\n /** Metadata: tags list for the model */\n tags: string[] = []\n /** Metadata: image for the model */\n image: string = ''\n /** Whether the model metadata has been loaded from the server, used for `load()` */\n has_loaded_metadata: boolean = false\n /** If true, a metadata load request has been triggered, but may or may not yet have finished loading */\n is_load_requested: boolean = false\n /** A string full of auto-computed lowercase-only searchable text for this model */\n searchable: string = ''\n\n constructor(name: string, directory: string) {\n this.file_name = name\n this.normalized_file_name = name.replaceAll('\\\\', '/')\n this.simplified_file_name = this.normalized_file_name.split('/').pop() ?? ''\n if (this.simplified_file_name.endsWith('.safetensors')) {\n this.simplified_file_name = this.simplified_file_name.slice(\n 0,\n -'.safetensors'.length\n )\n }\n this.title = this.simplified_file_name\n this.directory = directory\n this.key = `${directory}/${this.normalized_file_name}`\n this.updateSearchable()\n }\n\n updateSearchable() {\n this.searchable = [\n this.file_name,\n this.title,\n this.author,\n this.description,\n this.trigger_phrase,\n this.tags.join(', ')\n ]\n .join('\\n')\n .toLowerCase()\n }\n\n /** Loads the model metadata from the server, filling in this object if data is available */\n async load(): Promise {\n if (this.has_loaded_metadata || this.is_load_requested) {\n return\n }\n this.is_load_requested = true\n try {\n const metadata = await api.viewMetadata(this.directory, this.file_name)\n if (!metadata) {\n return\n }\n this.title =\n _findInMetadata(\n metadata,\n 'modelspec.title',\n 'title',\n 'display_name',\n 'name'\n ) || this.title\n this.architecture_id =\n _findInMetadata(metadata, 'modelspec.architecture', 'architecture') ||\n ''\n this.author =\n _findInMetadata(metadata, 'modelspec.author', 'author') || ''\n this.description =\n _findInMetadata(metadata, 'modelspec.description', 'description') || ''\n this.resolution =\n _findInMetadata(metadata, 'modelspec.resolution', 'resolution') || ''\n this.usage_hint =\n _findInMetadata(metadata, 'modelspec.usage_hint', 'usage_hint') || ''\n this.trigger_phrase =\n _findInMetadata(\n metadata,\n 'modelspec.trigger_phrase',\n 'trigger_phrase'\n ) || ''\n this.image =\n _findInMetadata(\n metadata,\n 'modelspec.thumbnail',\n 'thumbnail',\n 'image',\n 'icon'\n ) || ''\n const tagsCommaSeparated =\n _findInMetadata(metadata, 'modelspec.tags', 'tags') || ''\n this.tags = tagsCommaSeparated.split(',').map((tag) => tag.trim())\n this.has_loaded_metadata = true\n this.updateSearchable()\n } catch (error) {\n console.error('Error loading model metadata', this.file_name, this, error)\n }\n }\n}\n\nexport enum ResourceState {\n Uninitialized,\n Loading,\n Loaded\n}\n\nexport class ModelFolder {\n /** Models in this folder */\n models: Record = {}\n state: ResourceState = ResourceState.Uninitialized\n\n constructor(public directory: string) {}\n\n get key(): string {\n return this.directory + '/'\n }\n\n /**\n * Loads the models in this folder from the server\n */\n async load() {\n if (this.state !== ResourceState.Uninitialized) {\n return this\n }\n this.state = ResourceState.Loading\n const models = await api.getModels(this.directory)\n for (const model of models) {\n this.models[model] = new ComfyModelDef(model, this.directory)\n }\n this.state = ResourceState.Loaded\n return this\n }\n}\n\n/** Model store handler, wraps individual per-folder model stores */\nexport const useModelStore = defineStore('models', () => {\n const modelFolderNames = ref([])\n const modelFolderByName = ref>({})\n const modelFolders = computed(() =>\n modelFolderNames.value.map(\n (folderName) => modelFolderByName.value[folderName]\n )\n )\n const models = computed(() =>\n modelFolders.value.flatMap((folder) => Object.values(folder.models))\n )\n\n /**\n * Loads the model folders from the server\n */\n async function loadModelFolders() {\n modelFolderNames.value = await api.getModelFolders()\n modelFolderByName.value = {}\n for (const folderName of modelFolderNames.value) {\n modelFolderByName.value[folderName] = new ModelFolder(folderName)\n }\n }\n\n async function getLoadedModelFolder(\n folderName: string\n ): Promise {\n const folder = modelFolderByName.value[folderName]\n return folder ? await folder.load() : null\n }\n\n /**\n * Loads all model folders' contents from the server\n */\n async function loadModels() {\n return Promise.all(modelFolders.value.map((folder) => folder.load()))\n }\n\n return {\n models,\n modelFolders,\n loadModelFolders,\n loadModels,\n getLoadedModelFolder\n }\n})\n","import { api } from '@/scripts/api'\n\n/**\n * Sync entities from the API to the entityByPath map.\n * @param dir The directory to sync from\n * @param entityByPath The map to sync to\n * @param createEntity A function to create an entity from a file\n * @param updateEntity A function to update an entity from a file\n * @param exclude A function to exclude an entity\n */\nexport async function syncEntities(\n dir: string,\n entityByPath: Record,\n createEntity: (file: any) => T,\n updateEntity: (entity: T, file: any) => void,\n exclude: (file: T) => boolean = () => false\n) {\n const files = (await api.listUserDataFullInfo(dir)).map((file) => ({\n ...file,\n path: dir ? `${dir}/${file.path}` : file.path\n }))\n\n for (const file of files) {\n const existingEntity = entityByPath[file.path]\n\n if (!existingEntity) {\n // New entity, add it to the map\n entityByPath[file.path] = createEntity(file)\n } else if (exclude(existingEntity)) {\n // Entity has been excluded, skip it\n continue\n } else {\n // Entity has been modified, update its properties\n updateEntity(existingEntity, file)\n }\n }\n\n // Remove entities that no longer exist\n for (const [path, entity] of Object.entries(entityByPath)) {\n if (exclude(entity)) continue\n if (!files.some((file) => file.path === path)) {\n delete entityByPath[path]\n }\n }\n}\n","import { defineStore } from 'pinia'\nimport { api } from '@/scripts/api'\nimport { buildTree } from '@/utils/treeUtil'\nimport { computed, ref } from 'vue'\nimport { TreeExplorerNode } from '@/types/treeExplorerTypes'\nimport { UserDataFullInfo } from '@/types/apiTypes'\nimport { syncEntities } from '@/utils/syncUtil'\nimport { getPathDetails } from '@/utils/formatUtil'\n\n/**\n * Represents a file in the user's data directory.\n */\nexport class UserFile {\n /**\n * Various path components.\n * Example:\n * - path: 'dir/file.txt'\n * - directory: 'dir'\n * - fullFilename: 'file.txt'\n * - filename: 'file'\n * - suffix: 'txt'\n */\n directory: string\n fullFilename: string\n filename: string\n suffix: string | null\n\n isLoading: boolean = false\n content: string | null = null\n originalContent: string | null = null\n\n constructor(\n /**\n * Path relative to ComfyUI/user/ directory.\n */\n public path: string,\n /**\n * Last modified timestamp.\n */\n public lastModified: number,\n /**\n * File size in bytes. -1 for temporary files.\n */\n public size: number\n ) {\n const details = getPathDetails(path)\n this.path = path\n this.directory = details.directory\n this.fullFilename = details.fullFilename\n this.filename = details.filename\n this.suffix = details.suffix\n }\n\n updatePath(newPath: string) {\n const details = getPathDetails(newPath)\n this.path = newPath\n this.directory = details.directory\n this.fullFilename = details.fullFilename\n this.filename = details.filename\n this.suffix = details.suffix\n }\n\n static createTemporary(path: string): UserFile {\n return new UserFile(path, Date.now(), -1)\n }\n\n get isTemporary() {\n return this.size === -1\n }\n\n get isPersisted() {\n return !this.isTemporary\n }\n\n get key(): string {\n return this.path\n }\n\n get isLoaded() {\n return this.content !== null\n }\n\n get isModified() {\n return this.content !== this.originalContent\n }\n\n /**\n * Loads the file content from the remote storage.\n */\n async load({\n force = false\n }: { force?: boolean } = {}): Promise {\n if (this.isTemporary || (!force && this.isLoaded))\n return this as LoadedUserFile\n\n this.isLoading = true\n const resp = await api.getUserData(this.path)\n if (resp.status !== 200) {\n throw new Error(\n `Failed to load file '${this.path}': ${resp.status} ${resp.statusText}`\n )\n }\n this.content = await resp.text()\n this.originalContent = this.content\n this.isLoading = false\n return this as LoadedUserFile\n }\n\n /**\n * Unloads the file content from memory\n */\n unload(): void {\n this.content = null\n this.originalContent = null\n this.isLoading = false\n }\n\n async saveAs(newPath: string): Promise {\n const tempFile = this.isTemporary ? this : UserFile.createTemporary(newPath)\n tempFile.content = this.content\n await tempFile.save()\n return tempFile\n }\n\n /**\n * Saves the file to the remote storage.\n * @param force Whether to force the save even if the file is not modified.\n */\n async save({ force = false }: { force?: boolean } = {}): Promise {\n if (this.isPersisted && !this.isModified && !force) return this\n\n const resp = await api.storeUserData(this.path, this.content, {\n overwrite: this.isPersisted,\n throwOnError: true,\n full_info: true\n })\n\n // Note: Backend supports full_info=true feature after\n // https://github.com/comfyanonymous/ComfyUI/pull/5446\n const updatedFile = (await resp.json()) as string | UserDataFullInfo\n if (typeof updatedFile === 'object') {\n this.lastModified = updatedFile.modified\n this.size = updatedFile.size\n }\n this.originalContent = this.content\n return this\n }\n\n async delete(): Promise {\n if (this.isTemporary) return\n\n const resp = await api.deleteUserData(this.path)\n if (resp.status !== 204) {\n throw new Error(\n `Failed to delete file '${this.path}': ${resp.status} ${resp.statusText}`\n )\n }\n }\n\n async rename(newPath: string): Promise {\n if (this.isTemporary) {\n this.updatePath(newPath)\n return this\n }\n\n const resp = await api.moveUserData(this.path, newPath)\n if (resp.status !== 200) {\n throw new Error(\n `Failed to rename file '${this.path}': ${resp.status} ${resp.statusText}`\n )\n }\n this.updatePath(newPath)\n // Note: Backend supports full_info=true feature after\n // https://github.com/comfyanonymous/ComfyUI/pull/5446\n const updatedFile = (await resp.json()) as string | UserDataFullInfo\n if (typeof updatedFile === 'object') {\n this.lastModified = updatedFile.modified\n this.size = updatedFile.size\n }\n return this\n }\n}\n\nexport interface LoadedUserFile extends UserFile {\n isLoaded: true\n originalContent: string\n content: string\n}\n\nexport const useUserFileStore = defineStore('userFile', () => {\n const userFilesByPath = ref>({})\n\n const userFiles = computed(() => Object.values(userFilesByPath.value))\n const modifiedFiles = computed(() =>\n userFiles.value.filter((file: UserFile) => file.isModified)\n )\n const loadedFiles = computed(() =>\n userFiles.value.filter((file: UserFile) => file.isLoaded)\n )\n\n const fileTree = computed>(\n () =>\n buildTree(userFiles.value, (userFile: UserFile) =>\n userFile.path.split('/')\n ) as TreeExplorerNode\n )\n\n /**\n * Syncs the files in the given directory with the API.\n * @param dir The directory to sync.\n */\n const syncFiles = async (dir: string = '') => {\n await syncEntities(\n dir,\n userFilesByPath.value,\n (file) => new UserFile(file.path, file.modified, file.size),\n (existingFile, file) => {\n existingFile.lastModified = file.modified\n existingFile.size = file.size\n existingFile.unload()\n }\n )\n }\n\n return {\n userFiles,\n modifiedFiles,\n loadedFiles,\n fileTree,\n syncFiles\n }\n})\n","class Processor {\n constructor(options) {\n this.selfOptions = options || {};\n this.pipes = {};\n }\n options(options) {\n if (options) {\n this.selfOptions = options;\n }\n return this.selfOptions;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pipe(name, pipeArg) {\n let pipe = pipeArg;\n if (typeof name === 'string') {\n if (typeof pipe === 'undefined') {\n return this.pipes[name];\n }\n else {\n this.pipes[name] = pipe;\n }\n }\n if (name && name.name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pipe = name;\n if (pipe.processor === this) {\n return pipe;\n }\n this.pipes[pipe.name] = pipe;\n }\n pipe.processor = this;\n return pipe;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n process(input, pipe) {\n let context = input;\n context.options = this.options();\n let nextPipe = pipe || input.pipe || 'default';\n let lastPipe;\n while (nextPipe) {\n if (typeof context.nextAfterChildren !== 'undefined') {\n // children processed and coming back to parent\n context.next = context.nextAfterChildren;\n context.nextAfterChildren = null;\n }\n if (typeof nextPipe === 'string') {\n nextPipe = this.pipe(nextPipe);\n }\n nextPipe.process(context);\n lastPipe = nextPipe;\n nextPipe = null;\n if (context) {\n if (context.next) {\n context = context.next;\n nextPipe = context.pipe || lastPipe;\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return context.hasResult ? context.result : undefined;\n }\n}\nexport default Processor;\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nclass Pipe {\n constructor(name) {\n this.name = name;\n this.filters = [];\n }\n process(input) {\n if (!this.processor) {\n throw new Error('add this pipe to a processor before using it');\n }\n const debug = this.debug;\n const length = this.filters.length;\n const context = input;\n for (let index = 0; index < length; index++) {\n const filter = this.filters[index];\n if (debug) {\n this.log(`filter: ${filter.filterName}`);\n }\n filter(context);\n if (typeof context === 'object' && context.exiting) {\n context.exiting = false;\n break;\n }\n }\n if (!context.next && this.resultCheck) {\n this.resultCheck(context);\n }\n }\n log(msg) {\n console.log(`[jsondiffpatch] ${this.name} pipe, ${msg}`);\n }\n append(...args) {\n this.filters.push(...args);\n return this;\n }\n prepend(...args) {\n this.filters.unshift(...args);\n return this;\n }\n indexOf(filterName) {\n if (!filterName) {\n throw new Error('a filter name is required');\n }\n for (let index = 0; index < this.filters.length; index++) {\n const filter = this.filters[index];\n if (filter.filterName === filterName) {\n return index;\n }\n }\n throw new Error(`filter not found: ${filterName}`);\n }\n list() {\n return this.filters.map((f) => f.filterName);\n }\n after(filterName, ...params) {\n const index = this.indexOf(filterName);\n this.filters.splice(index + 1, 0, ...params);\n return this;\n }\n before(filterName, ...params) {\n const index = this.indexOf(filterName);\n this.filters.splice(index, 0, ...params);\n return this;\n }\n replace(filterName, ...params) {\n const index = this.indexOf(filterName);\n this.filters.splice(index, 1, ...params);\n return this;\n }\n remove(filterName) {\n const index = this.indexOf(filterName);\n this.filters.splice(index, 1);\n return this;\n }\n clear() {\n this.filters.length = 0;\n return this;\n }\n shouldHaveResult(should) {\n if (should === false) {\n this.resultCheck = null;\n return;\n }\n if (this.resultCheck) {\n return;\n }\n this.resultCheck = (context) => {\n if (!context.hasResult) {\n console.log(context);\n const error = new Error(`${this.name} failed`);\n error.noResult = true;\n throw error;\n }\n };\n return this;\n }\n}\nexport default Pipe;\n","export default class Context {\n setResult(result) {\n this.result = result;\n this.hasResult = true;\n return this;\n }\n exit() {\n this.exiting = true;\n return this;\n }\n push(child, name) {\n child.parent = this;\n if (typeof name !== 'undefined') {\n child.childName = name;\n }\n child.root = this.root || this;\n child.options = child.options || this.options;\n if (!this.children) {\n this.children = [child];\n this.nextAfterChildren = this.next || null;\n this.next = child;\n }\n else {\n this.children[this.children.length - 1].next = child;\n this.children.push(child);\n }\n child.next = this;\n return this;\n }\n}\n","function cloneRegExp(re) {\n const regexMatch = /^\\/(.*)\\/([gimyu]*)$/.exec(re.toString());\n return new RegExp(regexMatch[1], regexMatch[2]);\n}\nexport default function clone(arg) {\n if (typeof arg !== 'object') {\n return arg;\n }\n if (arg === null) {\n return null;\n }\n if (Array.isArray(arg)) {\n return arg.map(clone);\n }\n if (arg instanceof Date) {\n return new Date(arg.getTime());\n }\n if (arg instanceof RegExp) {\n return cloneRegExp(arg);\n }\n const cloned = {};\n for (const name in arg) {\n if (Object.prototype.hasOwnProperty.call(arg, name)) {\n cloned[name] = clone(arg[name]);\n }\n }\n return cloned;\n}\n","import Context from './context.js';\nimport defaultClone from '../clone.js';\nclass DiffContext extends Context {\n constructor(left, right) {\n super();\n this.left = left;\n this.right = right;\n this.pipe = 'diff';\n }\n setResult(result) {\n if (this.options.cloneDiffValues && typeof result === 'object') {\n const clone = typeof this.options.cloneDiffValues === 'function'\n ? this.options.cloneDiffValues\n : defaultClone;\n if (typeof result[0] === 'object') {\n result[0] = clone(result[0]);\n }\n if (typeof result[1] === 'object') {\n result[1] = clone(result[1]);\n }\n }\n return super.setResult(result);\n }\n}\nexport default DiffContext;\n","import Context from './context.js';\nclass PatchContext extends Context {\n constructor(left, delta) {\n super();\n this.left = left;\n this.delta = delta;\n this.pipe = 'patch';\n }\n}\nexport default PatchContext;\n","import Context from './context.js';\nclass ReverseContext extends Context {\n constructor(delta) {\n super();\n this.delta = delta;\n this.pipe = 'reverse';\n }\n}\nexport default ReverseContext;\n","export const diffFilter = function trivialMatchesDiffFilter(context) {\n if (context.left === context.right) {\n context.setResult(undefined).exit();\n return;\n }\n if (typeof context.left === 'undefined') {\n if (typeof context.right === 'function') {\n throw new Error('functions are not supported');\n }\n context.setResult([context.right]).exit();\n return;\n }\n if (typeof context.right === 'undefined') {\n context.setResult([context.left, 0, 0]).exit();\n return;\n }\n if (typeof context.left === 'function' ||\n typeof context.right === 'function') {\n throw new Error('functions are not supported');\n }\n context.leftType = context.left === null ? 'null' : typeof context.left;\n context.rightType = context.right === null ? 'null' : typeof context.right;\n if (context.leftType !== context.rightType) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === 'boolean' || context.leftType === 'number') {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.leftType === 'object') {\n context.leftIsArray = Array.isArray(context.left);\n }\n if (context.rightType === 'object') {\n context.rightIsArray = Array.isArray(context.right);\n }\n if (context.leftIsArray !== context.rightIsArray) {\n context.setResult([context.left, context.right]).exit();\n return;\n }\n if (context.left instanceof RegExp) {\n if (context.right instanceof RegExp) {\n context\n .setResult([context.left.toString(), context.right.toString()])\n .exit();\n }\n else {\n context.setResult([context.left, context.right]).exit();\n }\n }\n};\ndiffFilter.filterName = 'trivial';\nexport const patchFilter = function trivialMatchesPatchFilter(context) {\n if (typeof context.delta === 'undefined') {\n context.setResult(context.left).exit();\n return;\n }\n context.nested = !Array.isArray(context.delta);\n if (context.nested) {\n return;\n }\n const nonNestedDelta = context.delta;\n if (nonNestedDelta.length === 1) {\n context.setResult(nonNestedDelta[0]).exit();\n return;\n }\n if (nonNestedDelta.length === 2) {\n if (context.left instanceof RegExp) {\n const regexArgs = /^\\/(.*)\\/([gimyu]+)$/.exec(nonNestedDelta[1]);\n if (regexArgs) {\n context.setResult(new RegExp(regexArgs[1], regexArgs[2])).exit();\n return;\n }\n }\n context.setResult(nonNestedDelta[1]).exit();\n return;\n }\n if (nonNestedDelta.length === 3 && nonNestedDelta[2] === 0) {\n context.setResult(undefined).exit();\n }\n};\npatchFilter.filterName = 'trivial';\nexport const reverseFilter = function trivialReferseFilter(context) {\n if (typeof context.delta === 'undefined') {\n context.setResult(context.delta).exit();\n return;\n }\n context.nested = !Array.isArray(context.delta);\n if (context.nested) {\n return;\n }\n const nonNestedDelta = context.delta;\n if (nonNestedDelta.length === 1) {\n context.setResult([nonNestedDelta[0], 0, 0]).exit();\n return;\n }\n if (nonNestedDelta.length === 2) {\n context.setResult([nonNestedDelta[1], nonNestedDelta[0]]).exit();\n return;\n }\n if (nonNestedDelta.length === 3 && nonNestedDelta[2] === 0) {\n context.setResult([nonNestedDelta[0]]).exit();\n }\n};\nreverseFilter.filterName = 'trivial';\n","import DiffContext from '../contexts/diff.js';\nimport PatchContext from '../contexts/patch.js';\nimport ReverseContext from '../contexts/reverse.js';\nexport const collectChildrenDiffFilter = (context) => {\n if (!context || !context.children) {\n return;\n }\n const length = context.children.length;\n let child;\n let result = context.result;\n for (let index = 0; index < length; index++) {\n child = context.children[index];\n if (typeof child.result === 'undefined') {\n continue;\n }\n result = result || {};\n result[child.childName] = child.result;\n }\n if (result && context.leftIsArray) {\n result._t = 'a';\n }\n context.setResult(result).exit();\n};\ncollectChildrenDiffFilter.filterName = 'collectChildren';\nexport const objectsDiffFilter = (context) => {\n if (context.leftIsArray || context.leftType !== 'object') {\n return;\n }\n const left = context.left;\n const right = context.right;\n let name;\n let child;\n const propertyFilter = context.options.propertyFilter;\n for (name in left) {\n if (!Object.prototype.hasOwnProperty.call(left, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n child = new DiffContext(left[name], right[name]);\n context.push(child, name);\n }\n for (name in right) {\n if (!Object.prototype.hasOwnProperty.call(right, name)) {\n continue;\n }\n if (propertyFilter && !propertyFilter(name, context)) {\n continue;\n }\n if (typeof left[name] === 'undefined') {\n child = new DiffContext(undefined, right[name]);\n context.push(child, name);\n }\n }\n if (!context.children || context.children.length === 0) {\n context.setResult(undefined).exit();\n return;\n }\n context.exit();\n};\nobjectsDiffFilter.filterName = 'objects';\nexport const patchFilter = function nestedPatchFilter(context) {\n if (!context.nested) {\n return;\n }\n const nestedDelta = context.delta;\n if (nestedDelta._t) {\n return;\n }\n const objectDelta = nestedDelta;\n let name;\n let child;\n for (name in objectDelta) {\n child = new PatchContext(context.left[name], objectDelta[name]);\n context.push(child, name);\n }\n context.exit();\n};\npatchFilter.filterName = 'objects';\nexport const collectChildrenPatchFilter = function collectChildrenPatchFilter(context) {\n if (!context || !context.children) {\n return;\n }\n const deltaWithChildren = context.delta;\n if (deltaWithChildren._t) {\n return;\n }\n const object = context.left;\n const length = context.children.length;\n let child;\n for (let index = 0; index < length; index++) {\n child = context.children[index];\n const property = child.childName;\n if (Object.prototype.hasOwnProperty.call(context.left, property) &&\n child.result === undefined) {\n delete object[property];\n }\n else if (object[property] !== child.result) {\n object[property] = child.result;\n }\n }\n context.setResult(object).exit();\n};\ncollectChildrenPatchFilter.filterName = 'collectChildren';\nexport const reverseFilter = function nestedReverseFilter(context) {\n if (!context.nested) {\n return;\n }\n const nestedDelta = context.delta;\n if (nestedDelta._t) {\n return;\n }\n const objectDelta = context.delta;\n let name;\n let child;\n for (name in objectDelta) {\n child = new ReverseContext(objectDelta[name]);\n context.push(child, name);\n }\n context.exit();\n};\nreverseFilter.filterName = 'objects';\nexport const collectChildrenReverseFilter = (context) => {\n if (!context || !context.children) {\n return;\n }\n const deltaWithChildren = context.delta;\n if (deltaWithChildren._t) {\n return;\n }\n const length = context.children.length;\n let child;\n const delta = {};\n for (let index = 0; index < length; index++) {\n child = context.children[index];\n const property = child.childName;\n if (delta[property] !== child.result) {\n delta[property] = child.result;\n }\n }\n context.setResult(delta).exit();\n};\ncollectChildrenReverseFilter.filterName = 'collectChildren';\n","/*\n\nLCS implementation that supports arrays or strings\n\nreference: http://en.wikipedia.org/wiki/Longest_common_subsequence_problem\n\n*/\nconst defaultMatch = function (array1, array2, index1, index2) {\n return array1[index1] === array2[index2];\n};\nconst lengthMatrix = function (array1, array2, match, context) {\n const len1 = array1.length;\n const len2 = array2.length;\n let x, y;\n // initialize empty matrix of len1+1 x len2+1\n const matrix = new Array(len1 + 1);\n for (x = 0; x < len1 + 1; x++) {\n matrix[x] = new Array(len2 + 1);\n for (y = 0; y < len2 + 1; y++) {\n matrix[x][y] = 0;\n }\n }\n matrix.match = match;\n // save sequence lengths for each coordinate\n for (x = 1; x < len1 + 1; x++) {\n for (y = 1; y < len2 + 1; y++) {\n if (match(array1, array2, x - 1, y - 1, context)) {\n matrix[x][y] = matrix[x - 1][y - 1] + 1;\n }\n else {\n matrix[x][y] = Math.max(matrix[x - 1][y], matrix[x][y - 1]);\n }\n }\n }\n return matrix;\n};\nconst backtrack = function (matrix, array1, array2, context) {\n let index1 = array1.length;\n let index2 = array2.length;\n const subsequence = {\n sequence: [],\n indices1: [],\n indices2: [],\n };\n while (index1 !== 0 && index2 !== 0) {\n const sameLetter = matrix.match(array1, array2, index1 - 1, index2 - 1, context);\n if (sameLetter) {\n subsequence.sequence.unshift(array1[index1 - 1]);\n subsequence.indices1.unshift(index1 - 1);\n subsequence.indices2.unshift(index2 - 1);\n --index1;\n --index2;\n }\n else {\n const valueAtMatrixAbove = matrix[index1][index2 - 1];\n const valueAtMatrixLeft = matrix[index1 - 1][index2];\n if (valueAtMatrixAbove > valueAtMatrixLeft) {\n --index2;\n }\n else {\n --index1;\n }\n }\n }\n return subsequence;\n};\nconst get = function (array1, array2, match, context) {\n const innerContext = context || {};\n const matrix = lengthMatrix(array1, array2, match || defaultMatch, innerContext);\n return backtrack(matrix, array1, array2, innerContext);\n};\nexport default {\n get,\n};\n","import DiffContext from '../contexts/diff.js';\nimport PatchContext from '../contexts/patch.js';\nimport ReverseContext from '../contexts/reverse.js';\nimport lcs from './lcs.js';\nconst ARRAY_MOVE = 3;\nfunction arraysHaveMatchByRef(array1, array2, len1, len2) {\n for (let index1 = 0; index1 < len1; index1++) {\n const val1 = array1[index1];\n for (let index2 = 0; index2 < len2; index2++) {\n const val2 = array2[index2];\n if (index1 !== index2 && val1 === val2) {\n return true;\n }\n }\n }\n}\nfunction matchItems(array1, array2, index1, index2, context) {\n const value1 = array1[index1];\n const value2 = array2[index2];\n if (value1 === value2) {\n return true;\n }\n if (typeof value1 !== 'object' || typeof value2 !== 'object') {\n return false;\n }\n const objectHash = context.objectHash;\n if (!objectHash) {\n // no way to match objects was provided, try match by position\n return context.matchByPosition && index1 === index2;\n }\n context.hashCache1 = context.hashCache1 || [];\n let hash1 = context.hashCache1[index1];\n if (typeof hash1 === 'undefined') {\n context.hashCache1[index1] = hash1 = objectHash(value1, index1);\n }\n if (typeof hash1 === 'undefined') {\n return false;\n }\n context.hashCache2 = context.hashCache2 || [];\n let hash2 = context.hashCache2[index2];\n if (typeof hash2 === 'undefined') {\n context.hashCache2[index2] = hash2 = objectHash(value2, index2);\n }\n if (typeof hash2 === 'undefined') {\n return false;\n }\n return hash1 === hash2;\n}\nexport const diffFilter = function arraysDiffFilter(context) {\n if (!context.leftIsArray) {\n return;\n }\n const matchContext = {\n objectHash: context.options && context.options.objectHash,\n matchByPosition: context.options && context.options.matchByPosition,\n };\n let commonHead = 0;\n let commonTail = 0;\n let index;\n let index1;\n let index2;\n const array1 = context.left;\n const array2 = context.right;\n const len1 = array1.length;\n const len2 = array2.length;\n let child;\n if (len1 > 0 &&\n len2 > 0 &&\n !matchContext.objectHash &&\n typeof matchContext.matchByPosition !== 'boolean') {\n matchContext.matchByPosition = !arraysHaveMatchByRef(array1, array2, len1, len2);\n }\n // separate common head\n while (commonHead < len1 &&\n commonHead < len2 &&\n matchItems(array1, array2, commonHead, commonHead, matchContext)) {\n index = commonHead;\n child = new DiffContext(array1[index], array2[index]);\n context.push(child, index);\n commonHead++;\n }\n // separate common tail\n while (commonTail + commonHead < len1 &&\n commonTail + commonHead < len2 &&\n matchItems(array1, array2, len1 - 1 - commonTail, len2 - 1 - commonTail, matchContext)) {\n index1 = len1 - 1 - commonTail;\n index2 = len2 - 1 - commonTail;\n child = new DiffContext(array1[index1], array2[index2]);\n context.push(child, index2);\n commonTail++;\n }\n let result;\n if (commonHead + commonTail === len1) {\n if (len1 === len2) {\n // arrays are identical\n context.setResult(undefined).exit();\n return;\n }\n // trivial case, a block (1 or more consecutive items) was added\n result = result || {\n _t: 'a',\n };\n for (index = commonHead; index < len2 - commonTail; index++) {\n result[index] = [array2[index]];\n }\n context.setResult(result).exit();\n return;\n }\n if (commonHead + commonTail === len2) {\n // trivial case, a block (1 or more consecutive items) was removed\n result = result || {\n _t: 'a',\n };\n for (index = commonHead; index < len1 - commonTail; index++) {\n result[`_${index}`] = [array1[index], 0, 0];\n }\n context.setResult(result).exit();\n return;\n }\n // reset hash cache\n delete matchContext.hashCache1;\n delete matchContext.hashCache2;\n // diff is not trivial, find the LCS (Longest Common Subsequence)\n const trimmed1 = array1.slice(commonHead, len1 - commonTail);\n const trimmed2 = array2.slice(commonHead, len2 - commonTail);\n const seq = lcs.get(trimmed1, trimmed2, matchItems, matchContext);\n const removedItems = [];\n result = result || {\n _t: 'a',\n };\n for (index = commonHead; index < len1 - commonTail; index++) {\n if (seq.indices1.indexOf(index - commonHead) < 0) {\n // removed\n result[`_${index}`] = [array1[index], 0, 0];\n removedItems.push(index);\n }\n }\n let detectMove = true;\n if (context.options &&\n context.options.arrays &&\n context.options.arrays.detectMove === false) {\n detectMove = false;\n }\n let includeValueOnMove = false;\n if (context.options &&\n context.options.arrays &&\n context.options.arrays.includeValueOnMove) {\n includeValueOnMove = true;\n }\n const removedItemsLength = removedItems.length;\n for (index = commonHead; index < len2 - commonTail; index++) {\n const indexOnArray2 = seq.indices2.indexOf(index - commonHead);\n if (indexOnArray2 < 0) {\n // added, try to match with a removed item and register as position move\n let isMove = false;\n if (detectMove && removedItemsLength > 0) {\n for (let removeItemIndex1 = 0; removeItemIndex1 < removedItemsLength; removeItemIndex1++) {\n index1 = removedItems[removeItemIndex1];\n if (matchItems(trimmed1, trimmed2, index1 - commonHead, index - commonHead, matchContext)) {\n // store position move as: [originalValue, newPosition, ARRAY_MOVE]\n result[`_${index1}`].splice(1, 2, index, ARRAY_MOVE);\n if (!includeValueOnMove) {\n // don't include moved value on diff, to save bytes\n result[`_${index1}`][0] = '';\n }\n index2 = index;\n child = new DiffContext(array1[index1], array2[index2]);\n context.push(child, index2);\n removedItems.splice(removeItemIndex1, 1);\n isMove = true;\n break;\n }\n }\n }\n if (!isMove) {\n // added\n result[index] = [array2[index]];\n }\n }\n else {\n // match, do inner diff\n index1 = seq.indices1[indexOnArray2] + commonHead;\n index2 = seq.indices2[indexOnArray2] + commonHead;\n child = new DiffContext(array1[index1], array2[index2]);\n context.push(child, index2);\n }\n }\n context.setResult(result).exit();\n};\ndiffFilter.filterName = 'arrays';\nconst compare = {\n numerically(a, b) {\n return a - b;\n },\n numericallyBy(name) {\n return (a, b) => a[name] - b[name];\n },\n};\nexport const patchFilter = function nestedPatchFilter(context) {\n if (!context.nested) {\n return;\n }\n const nestedDelta = context.delta;\n if (nestedDelta._t !== 'a') {\n return;\n }\n let index;\n let index1;\n const delta = nestedDelta;\n const array = context.left;\n // first, separate removals, insertions and modifications\n let toRemove = [];\n let toInsert = [];\n const toModify = [];\n for (index in delta) {\n if (index !== '_t') {\n if (index[0] === '_') {\n const removedOrMovedIndex = index;\n // removed item from original array\n if (delta[removedOrMovedIndex][2] === 0 ||\n delta[removedOrMovedIndex][2] === ARRAY_MOVE) {\n toRemove.push(parseInt(index.slice(1), 10));\n }\n else {\n throw new Error('only removal or move can be applied at original array indices,' +\n ` invalid diff type: ${delta[removedOrMovedIndex][2]}`);\n }\n }\n else {\n const numberIndex = index;\n if (delta[numberIndex].length === 1) {\n // added item at new array\n toInsert.push({\n index: parseInt(numberIndex, 10),\n value: delta[numberIndex][0],\n });\n }\n else {\n // modified item at new array\n toModify.push({\n index: parseInt(numberIndex, 10),\n delta: delta[numberIndex],\n });\n }\n }\n }\n }\n // remove items, in reverse order to avoid sawing our own floor\n toRemove = toRemove.sort(compare.numerically);\n for (index = toRemove.length - 1; index >= 0; index--) {\n index1 = toRemove[index];\n const indexDiff = delta[`_${index1}`];\n const removedValue = array.splice(index1, 1)[0];\n if (indexDiff[2] === ARRAY_MOVE) {\n // reinsert later\n toInsert.push({\n index: indexDiff[1],\n value: removedValue,\n });\n }\n }\n // insert items, in reverse order to avoid moving our own floor\n toInsert = toInsert.sort(compare.numericallyBy('index'));\n const toInsertLength = toInsert.length;\n for (index = 0; index < toInsertLength; index++) {\n const insertion = toInsert[index];\n array.splice(insertion.index, 0, insertion.value);\n }\n // apply modifications\n const toModifyLength = toModify.length;\n let child;\n if (toModifyLength > 0) {\n for (index = 0; index < toModifyLength; index++) {\n const modification = toModify[index];\n child = new PatchContext(array[modification.index], modification.delta);\n context.push(child, modification.index);\n }\n }\n if (!context.children) {\n context.setResult(array).exit();\n return;\n }\n context.exit();\n};\npatchFilter.filterName = 'arrays';\nexport const collectChildrenPatchFilter = function collectChildrenPatchFilter(context) {\n if (!context || !context.children) {\n return;\n }\n const deltaWithChildren = context.delta;\n if (deltaWithChildren._t !== 'a') {\n return;\n }\n const array = context.left;\n const length = context.children.length;\n let child;\n for (let index = 0; index < length; index++) {\n child = context.children[index];\n const arrayIndex = child.childName;\n array[arrayIndex] = child.result;\n }\n context.setResult(array).exit();\n};\ncollectChildrenPatchFilter.filterName = 'arraysCollectChildren';\nexport const reverseFilter = function arraysReverseFilter(context) {\n if (!context.nested) {\n const nonNestedDelta = context.delta;\n if (nonNestedDelta[2] === ARRAY_MOVE) {\n const arrayMoveDelta = nonNestedDelta;\n context.newName = `_${arrayMoveDelta[1]}`;\n context\n .setResult([\n arrayMoveDelta[0],\n parseInt(context.childName.substring(1), 10),\n ARRAY_MOVE,\n ])\n .exit();\n }\n return;\n }\n const nestedDelta = context.delta;\n if (nestedDelta._t !== 'a') {\n return;\n }\n const arrayDelta = nestedDelta;\n let name;\n let child;\n for (name in arrayDelta) {\n if (name === '_t') {\n continue;\n }\n child = new ReverseContext(arrayDelta[name]);\n context.push(child, name);\n }\n context.exit();\n};\nreverseFilter.filterName = 'arrays';\nconst reverseArrayDeltaIndex = (delta, index, itemDelta) => {\n if (typeof index === 'string' && index[0] === '_') {\n return parseInt(index.substring(1), 10);\n }\n else if (Array.isArray(itemDelta) && itemDelta[2] === 0) {\n return `_${index}`;\n }\n let reverseIndex = +index;\n for (const deltaIndex in delta) {\n const deltaItem = delta[deltaIndex];\n if (Array.isArray(deltaItem)) {\n if (deltaItem[2] === ARRAY_MOVE) {\n const moveFromIndex = parseInt(deltaIndex.substring(1), 10);\n const moveToIndex = deltaItem[1];\n if (moveToIndex === +index) {\n return moveFromIndex;\n }\n if (moveFromIndex <= reverseIndex && moveToIndex > reverseIndex) {\n reverseIndex++;\n }\n else if (moveFromIndex >= reverseIndex &&\n moveToIndex < reverseIndex) {\n reverseIndex--;\n }\n }\n else if (deltaItem[2] === 0) {\n const deleteIndex = parseInt(deltaIndex.substring(1), 10);\n if (deleteIndex <= reverseIndex) {\n reverseIndex++;\n }\n }\n else if (deltaItem.length === 1 &&\n parseInt(deltaIndex, 10) <= reverseIndex) {\n reverseIndex--;\n }\n }\n }\n return reverseIndex;\n};\nexport const collectChildrenReverseFilter = (context) => {\n if (!context || !context.children) {\n return;\n }\n const deltaWithChildren = context.delta;\n if (deltaWithChildren._t !== 'a') {\n return;\n }\n const arrayDelta = deltaWithChildren;\n const length = context.children.length;\n let child;\n const delta = {\n _t: 'a',\n };\n for (let index = 0; index < length; index++) {\n child = context.children[index];\n let name = child.newName;\n if (typeof name === 'undefined') {\n name = reverseArrayDeltaIndex(arrayDelta, child.childName, child.result);\n }\n if (delta[name] !== child.result) {\n // There's no way to type this well.\n delta[name] = child.result;\n }\n }\n context.setResult(delta).exit();\n};\ncollectChildrenReverseFilter.filterName = 'arraysCollectChildren';\n","export const diffFilter = function datesDiffFilter(context) {\n if (context.left instanceof Date) {\n if (context.right instanceof Date) {\n if (context.left.getTime() !== context.right.getTime()) {\n context.setResult([context.left, context.right]);\n }\n else {\n context.setResult(undefined);\n }\n }\n else {\n context.setResult([context.left, context.right]);\n }\n context.exit();\n }\n else if (context.right instanceof Date) {\n context.setResult([context.left, context.right]).exit();\n }\n};\ndiffFilter.filterName = 'dates';\n","const TEXT_DIFF = 2;\nconst DEFAULT_MIN_LENGTH = 60;\nlet cachedDiffPatch = null;\nfunction getDiffMatchPatch(options, required) {\n var _a;\n if (!cachedDiffPatch) {\n let instance;\n if ((_a = options === null || options === void 0 ? void 0 : options.textDiff) === null || _a === void 0 ? void 0 : _a.diffMatchPatch) {\n instance = new options.textDiff.diffMatchPatch();\n }\n else {\n if (!required) {\n return null;\n }\n const error = new Error('The diff-match-patch library was not provided. Pass the library in through the options or use the `jsondiffpatch/with-text-diffs` entry-point.');\n // eslint-disable-next-line camelcase\n error.diff_match_patch_not_found = true;\n throw error;\n }\n cachedDiffPatch = {\n diff: function (txt1, txt2) {\n return instance.patch_toText(instance.patch_make(txt1, txt2));\n },\n patch: function (txt1, patch) {\n const results = instance.patch_apply(instance.patch_fromText(patch), txt1);\n for (let i = 0; i < results[1].length; i++) {\n if (!results[1][i]) {\n const error = new Error('text patch failed');\n error.textPatchFailed = true;\n }\n }\n return results[0];\n },\n };\n }\n return cachedDiffPatch;\n}\nexport const diffFilter = function textsDiffFilter(context) {\n if (context.leftType !== 'string') {\n return;\n }\n const left = context.left;\n const right = context.right;\n const minLength = (context.options &&\n context.options.textDiff &&\n context.options.textDiff.minLength) ||\n DEFAULT_MIN_LENGTH;\n if (left.length < minLength || right.length < minLength) {\n context.setResult([left, right]).exit();\n return;\n }\n // large text, try to use a text-diff algorithm\n const diffMatchPatch = getDiffMatchPatch(context.options);\n if (!diffMatchPatch) {\n // diff-match-patch library not available,\n // fallback to regular string replace\n context.setResult([left, right]).exit();\n return;\n }\n const diff = diffMatchPatch.diff;\n context.setResult([diff(left, right), 0, TEXT_DIFF]).exit();\n};\ndiffFilter.filterName = 'texts';\nexport const patchFilter = function textsPatchFilter(context) {\n if (context.nested) {\n return;\n }\n const nonNestedDelta = context.delta;\n if (nonNestedDelta[2] !== TEXT_DIFF) {\n return;\n }\n const textDiffDelta = nonNestedDelta;\n // text-diff, use a text-patch algorithm\n const patch = getDiffMatchPatch(context.options, true).patch;\n context.setResult(patch(context.left, textDiffDelta[0])).exit();\n};\npatchFilter.filterName = 'texts';\nconst textDeltaReverse = function (delta) {\n let i;\n let l;\n let line;\n let lineTmp;\n let header = null;\n const headerRegex = /^@@ +-(\\d+),(\\d+) +\\+(\\d+),(\\d+) +@@$/;\n let lineHeader;\n const lines = delta.split('\\n');\n for (i = 0, l = lines.length; i < l; i++) {\n line = lines[i];\n const lineStart = line.slice(0, 1);\n if (lineStart === '@') {\n header = headerRegex.exec(line);\n lineHeader = i;\n // fix header\n lines[lineHeader] =\n '@@ -' +\n header[3] +\n ',' +\n header[4] +\n ' +' +\n header[1] +\n ',' +\n header[2] +\n ' @@';\n }\n else if (lineStart === '+') {\n lines[i] = '-' + lines[i].slice(1);\n if (lines[i - 1].slice(0, 1) === '+') {\n // swap lines to keep default order (-+)\n lineTmp = lines[i];\n lines[i] = lines[i - 1];\n lines[i - 1] = lineTmp;\n }\n }\n else if (lineStart === '-') {\n lines[i] = '+' + lines[i].slice(1);\n }\n }\n return lines.join('\\n');\n};\nexport const reverseFilter = function textsReverseFilter(context) {\n if (context.nested) {\n return;\n }\n const nonNestedDelta = context.delta;\n if (nonNestedDelta[2] !== TEXT_DIFF) {\n return;\n }\n const textDiffDelta = nonNestedDelta;\n // text-diff, use a text-diff algorithm\n context\n .setResult([textDeltaReverse(textDiffDelta[0]), 0, TEXT_DIFF])\n .exit();\n};\nreverseFilter.filterName = 'texts';\n","import Processor from './processor.js';\nimport Pipe from './pipe.js';\nimport DiffContext from './contexts/diff.js';\nimport PatchContext from './contexts/patch.js';\nimport ReverseContext from './contexts/reverse.js';\nimport clone from './clone.js';\nimport * as trivial from './filters/trivial.js';\nimport * as nested from './filters/nested.js';\nimport * as arrays from './filters/arrays.js';\nimport * as dates from './filters/dates.js';\nimport * as texts from './filters/texts.js';\nclass DiffPatcher {\n constructor(options) {\n this.processor = new Processor(options);\n this.processor.pipe(new Pipe('diff')\n .append(nested.collectChildrenDiffFilter, trivial.diffFilter, dates.diffFilter, texts.diffFilter, nested.objectsDiffFilter, arrays.diffFilter)\n .shouldHaveResult());\n this.processor.pipe(new Pipe('patch')\n .append(nested.collectChildrenPatchFilter, arrays.collectChildrenPatchFilter, trivial.patchFilter, texts.patchFilter, nested.patchFilter, arrays.patchFilter)\n .shouldHaveResult());\n this.processor.pipe(new Pipe('reverse')\n .append(nested.collectChildrenReverseFilter, arrays.collectChildrenReverseFilter, trivial.reverseFilter, texts.reverseFilter, nested.reverseFilter, arrays.reverseFilter)\n .shouldHaveResult());\n }\n options(options) {\n return this.processor.options(options);\n }\n diff(left, right) {\n return this.processor.process(new DiffContext(left, right));\n }\n patch(left, delta) {\n return this.processor.process(new PatchContext(left, delta));\n }\n reverse(delta) {\n return this.processor.process(new ReverseContext(delta));\n }\n unpatch(right, delta) {\n return this.patch(right, this.reverse(delta));\n }\n clone(value) {\n return clone(value);\n }\n}\nexport default DiffPatcher;\n","// use as 2nd parameter for JSON.parse to revive Date instances\nexport default function dateReviver(key, value) {\n let parts;\n if (typeof value === 'string') {\n parts =\n /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d*))?(Z|([+-])(\\d{2}):(\\d{2}))$/.exec(value);\n if (parts) {\n return new Date(Date.UTC(+parts[1], +parts[2] - 1, +parts[3], +parts[4], +parts[5], +parts[6], +(parts[7] || 0)));\n }\n }\n return value;\n}\n","import DiffPatcher from './diffpatcher.js';\nimport dateReviver from './date-reviver.js';\nexport { DiffPatcher, dateReviver };\nexport function create(options) {\n return new DiffPatcher(options);\n}\nlet defaultInstance;\nexport function diff(left, right) {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.diff(left, right);\n}\nexport function patch(left, delta) {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.patch(left, delta);\n}\nexport function unpatch(right, delta) {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.unpatch(right, delta);\n}\nexport function reverse(delta) {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.reverse(delta);\n}\nexport function clone(value) {\n if (!defaultInstance) {\n defaultInstance = new DiffPatcher();\n }\n return defaultInstance.clone(value);\n}\n","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n var _loggersByName = {};\n var defaultLogger = null;\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods() {\n /*jshint validthis:true */\n var level = this.getLevel();\n\n // Replace the actual methods.\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, this.name);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n\n // Return any important warnings.\n if (typeof console === undefinedType && level < this.levels.SILENT) {\n return \"No console available for logging\";\n }\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, _level, _loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, factory) {\n // Private instance variables.\n var self = this;\n /**\n * The level inherited from a parent logger (or a global default). We\n * cache this here rather than delegating to the parent so that it stays\n * in sync with the actual logging methods that we have installed (the\n * parent could change levels but we might not have rebuilt the loggers\n * in this child yet).\n * @type {number}\n */\n var inheritedLevel;\n /**\n * The default level for this logger, if any. If set, this overrides\n * `inheritedLevel`.\n * @type {number|null}\n */\n var defaultLevel;\n /**\n * A user-specific level for this logger. If set, this overrides\n * `defaultLevel`.\n * @type {number|null}\n */\n var userLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var cookieName = encodeURIComponent(storageKey);\n var location = cookie.indexOf(cookieName + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(\n cookie.slice(location + cookieName.length + 1)\n )[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n function normalizeLevel(input) {\n var level = input;\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n return level;\n } else {\n throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n }\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n if (userLevel != null) {\n return userLevel;\n } else if (defaultLevel != null) {\n return defaultLevel;\n } else {\n return inheritedLevel;\n }\n };\n\n self.setLevel = function (level, persist) {\n userLevel = normalizeLevel(level);\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(userLevel);\n }\n\n // NOTE: in v2, this should call rebuild(), which updates children.\n return replaceLoggingMethods.call(self);\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = normalizeLevel(level);\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n userLevel = null;\n clearPersistedLevel();\n replaceLoggingMethods.call(self);\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n self.rebuild = function () {\n if (defaultLogger !== self) {\n inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n }\n replaceLoggingMethods.call(self);\n\n if (defaultLogger === self) {\n for (var childName in _loggersByName) {\n _loggersByName[childName].rebuild();\n }\n }\n };\n\n // Initialize all the internal levels.\n inheritedLevel = normalizeLevel(\n defaultLogger ? defaultLogger.getLevel() : \"WARN\"\n );\n var initialLevel = getPersistedLevel();\n if (initialLevel != null) {\n userLevel = normalizeLevel(initialLevel);\n }\n replaceLoggingMethods.call(self);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n defaultLogger = new Logger();\n\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name,\n defaultLogger.methodFactory\n );\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","import type { ComfyApp } from './app'\nimport { api } from './api'\nimport { LGraphCanvas, LiteGraph } from '@comfyorg/litegraph'\nimport { ComfyWorkflow, useWorkflowStore } from '@/stores/workflowStore'\nimport { LGraphNode } from '@comfyorg/litegraph'\nimport type { ComfyWorkflowJSON } from '@/types/comfyWorkflow'\nimport type { ExecutedWsMessage } from '@/types/apiTypes'\nimport { useExecutionStore } from '@/stores/executionStore'\nimport _ from 'lodash'\nimport * as jsondiffpatch from 'jsondiffpatch'\nimport log from 'loglevel'\n\nfunction clone(obj: T): T {\n return JSON.parse(JSON.stringify(obj))\n}\n\nconst logger = log.getLogger('ChangeTracker')\n// Change to debug for more verbose logging\nlogger.setLevel('info')\n\nexport class ChangeTracker {\n static MAX_HISTORY = 50\n /**\n * The active state of the workflow.\n */\n activeState: ComfyWorkflowJSON\n undoQueue: ComfyWorkflowJSON[] = []\n redoQueue: ComfyWorkflowJSON[] = []\n changeCount: number = 0\n /**\n * Whether the redo/undo restoring is in progress.\n */\n private restoringState: boolean = false\n\n ds?: { scale: number; offset: [number, number] }\n nodeOutputs?: Record\n\n static app?: ComfyApp\n get app(): ComfyApp {\n return ChangeTracker.app!\n }\n\n constructor(\n /**\n * The workflow that this change tracker is tracking\n */\n public workflow: ComfyWorkflow,\n /**\n * The initial state of the workflow\n */\n public initialState: ComfyWorkflowJSON\n ) {\n this.activeState = initialState\n }\n\n /**\n * Save the current state as the initial state.\n */\n reset(state?: ComfyWorkflowJSON) {\n // Do not reset the state if we are restoring.\n if (this.restoringState) return\n\n logger.debug('Reset State')\n if (state) this.activeState = clone(state)\n this.initialState = clone(this.activeState)\n }\n\n store() {\n this.ds = {\n scale: this.app.canvas.ds.scale,\n offset: [this.app.canvas.ds.offset[0], this.app.canvas.ds.offset[1]]\n }\n }\n\n restore() {\n if (this.ds) {\n this.app.canvas.ds.scale = this.ds.scale\n this.app.canvas.ds.offset = this.ds.offset\n }\n if (this.nodeOutputs) {\n this.app.nodeOutputs = this.nodeOutputs\n }\n }\n\n updateModified() {\n api.dispatchCustomEvent('graphChanged', this.activeState)\n\n // Get the workflow from the store as ChangeTracker is raw object, i.e.\n // `this.workflow` is not reactive.\n const workflow = useWorkflowStore().getWorkflowByPath(this.workflow.path)\n if (workflow) {\n workflow.isModified = !ChangeTracker.graphEqual(\n this.initialState,\n this.activeState\n )\n if (logger.getLevel() <= logger.levels.DEBUG && workflow.isModified) {\n const diff = ChangeTracker.graphDiff(\n this.initialState,\n this.activeState\n )\n logger.debug('Graph diff:', diff)\n }\n }\n }\n\n checkState() {\n if (!this.app.graph || this.changeCount) return\n // @ts-expect-error zod types issue. Will be fixed after we enable ts-strict\n const currentState = clone(this.app.graph.serialize()) as ComfyWorkflowJSON\n if (!this.activeState) {\n this.activeState = currentState\n return\n }\n if (!ChangeTracker.graphEqual(this.activeState, currentState)) {\n this.undoQueue.push(this.activeState)\n if (this.undoQueue.length > ChangeTracker.MAX_HISTORY) {\n this.undoQueue.shift()\n }\n logger.debug('Diff detected. Undo queue length:', this.undoQueue.length)\n\n this.activeState = currentState\n this.redoQueue.length = 0\n this.updateModified()\n }\n }\n\n async updateState(source: ComfyWorkflowJSON[], target: ComfyWorkflowJSON[]) {\n const prevState = source.pop()\n if (prevState) {\n target.push(this.activeState)\n this.restoringState = true\n try {\n await this.app.loadGraphData(prevState, false, false, this.workflow, {\n showMissingModelsDialog: false,\n showMissingNodesDialog: false\n })\n this.activeState = prevState\n this.updateModified()\n } finally {\n this.restoringState = false\n }\n }\n }\n\n async undo() {\n await this.updateState(this.undoQueue, this.redoQueue)\n logger.debug(\n 'Undo. Undo queue length:',\n this.undoQueue.length,\n 'Redo queue length:',\n this.redoQueue.length\n )\n }\n\n async redo() {\n await this.updateState(this.redoQueue, this.undoQueue)\n logger.debug(\n 'Redo. Undo queue length:',\n this.undoQueue.length,\n 'Redo queue length:',\n this.redoQueue.length\n )\n }\n\n async undoRedo(e: KeyboardEvent) {\n if ((e.ctrlKey || e.metaKey) && !e.altKey) {\n const key = e.key.toUpperCase()\n // Redo: Ctrl + Y, or Ctrl + Shift + Z\n if ((key === 'Y' && !e.shiftKey) || (key == 'Z' && e.shiftKey)) {\n await this.redo()\n return true\n } else if (key === 'Z' && !e.shiftKey) {\n await this.undo()\n return true\n }\n }\n }\n\n beforeChange() {\n this.changeCount++\n }\n\n afterChange() {\n if (!--this.changeCount) {\n this.checkState()\n }\n }\n\n static init(app: ComfyApp) {\n const getCurrentChangeTracker = () =>\n useWorkflowStore().activeWorkflow?.changeTracker\n const checkState = () => getCurrentChangeTracker()?.checkState()\n\n ChangeTracker.app = app\n\n let keyIgnored = false\n window.addEventListener(\n 'keydown',\n (e: KeyboardEvent) => {\n // Do not trigger on repeat events (Holding down a key)\n // This can happen when user is holding down \"Space\" to pan the canvas.\n if (e.repeat) return\n\n const activeEl = document.activeElement\n requestAnimationFrame(async () => {\n let bindInputEl: Element | null = null\n // If we are auto queue in change mode then we do want to trigger on inputs\n if (!app.ui.autoQueueEnabled || app.ui.autoQueueMode === 'instant') {\n if (\n activeEl?.tagName === 'INPUT' ||\n (activeEl && 'type' in activeEl && activeEl.type === 'textarea')\n ) {\n // Ignore events on inputs, they have their native history\n return\n }\n bindInputEl = activeEl\n }\n\n keyIgnored =\n e.key === 'Control' ||\n e.key === 'Shift' ||\n e.key === 'Alt' ||\n e.key === 'Meta'\n if (keyIgnored) return\n\n const changeTracker = getCurrentChangeTracker()\n if (!changeTracker) return\n\n // Check if this is a ctrl+z ctrl+y\n if (await changeTracker.undoRedo(e)) return\n\n // If our active element is some type of input then handle changes after they're done\n if (ChangeTracker.bindInput(app, bindInputEl)) return\n logger.debug('checkState on keydown')\n changeTracker.checkState()\n })\n },\n true\n )\n\n window.addEventListener('keyup', (e) => {\n if (keyIgnored) {\n keyIgnored = false\n logger.debug('checkState on keyup')\n checkState()\n }\n })\n\n // Handle clicking DOM elements (e.g. widgets)\n window.addEventListener('mouseup', () => {\n logger.debug('checkState on mouseup')\n checkState()\n })\n\n // Handle prompt queue event for dynamic widget changes\n api.addEventListener('promptQueued', () => {\n logger.debug('checkState on promptQueued')\n checkState()\n })\n\n api.addEventListener('graphCleared', () => {\n logger.debug('checkState on graphCleared')\n checkState()\n })\n\n // Handle litegraph clicks\n const processMouseUp = LGraphCanvas.prototype.processMouseUp\n LGraphCanvas.prototype.processMouseUp = function (e) {\n const v = processMouseUp.apply(this, [e])\n logger.debug('checkState on processMouseUp')\n checkState()\n return v\n }\n const processMouseDown = LGraphCanvas.prototype.processMouseDown\n LGraphCanvas.prototype.processMouseDown = function (e) {\n const v = processMouseDown.apply(this, [e])\n logger.debug('checkState on processMouseDown')\n checkState()\n return v\n }\n\n // Handle litegraph dialog popup for number/string widgets\n const prompt = LGraphCanvas.prototype.prompt\n LGraphCanvas.prototype.prompt = function (\n title: string,\n value: any,\n callback: (v: any) => void,\n event: any\n ) {\n const extendedCallback = (v: any) => {\n callback(v)\n checkState()\n }\n logger.debug('checkState on prompt')\n return prompt.apply(this, [title, value, extendedCallback, event])\n }\n\n // Handle litegraph context menu for COMBO widgets\n const close = LiteGraph.ContextMenu.prototype.close\n LiteGraph.ContextMenu.prototype.close = function (e: MouseEvent) {\n const v = close.apply(this, [e])\n logger.debug('checkState on contextMenuClose')\n checkState()\n return v\n }\n\n // Detects nodes being added via the node search dialog\n const onNodeAdded = LiteGraph.LGraph.prototype.onNodeAdded\n LiteGraph.LGraph.prototype.onNodeAdded = function (node: LGraphNode) {\n const v = onNodeAdded?.apply(this, [node])\n if (!app?.configuringGraph) {\n logger.debug('checkState on onNodeAdded')\n checkState()\n }\n return v\n }\n\n // Handle multiple commands as a single transaction\n document.addEventListener('litegraph:canvas', (e: Event) => {\n const detail = (e as CustomEvent).detail\n if (detail.subType === 'before-change') {\n getCurrentChangeTracker()?.beforeChange()\n } else if (detail.subType === 'after-change') {\n getCurrentChangeTracker()?.afterChange()\n }\n })\n\n // Store node outputs\n api.addEventListener('executed', (e: CustomEvent) => {\n const detail = e.detail\n const workflow =\n useExecutionStore().queuedPrompts[detail.prompt_id]?.workflow\n const changeTracker = workflow?.changeTracker\n if (!changeTracker) return\n changeTracker.nodeOutputs ??= {}\n const nodeOutputs = changeTracker.nodeOutputs\n const output = nodeOutputs[detail.node]\n if (detail.merge && output) {\n for (const k in detail.output ?? {}) {\n const v = output[k]\n if (v instanceof Array) {\n output[k] = v.concat(detail.output[k])\n } else {\n output[k] = detail.output[k]\n }\n }\n } else {\n nodeOutputs[detail.node] = detail.output\n }\n })\n }\n\n static bindInput(app: ComfyApp, activeEl: Element | null): boolean {\n if (\n !activeEl ||\n activeEl.tagName === 'CANVAS' ||\n activeEl.tagName === 'BODY'\n ) {\n return false\n }\n\n for (const evt of ['change', 'input', 'blur']) {\n const htmlElement = activeEl as HTMLElement\n if (`on${evt}` in htmlElement) {\n const listener = () => {\n useWorkflowStore().activeWorkflow?.changeTracker?.checkState?.()\n htmlElement.removeEventListener(evt, listener)\n }\n htmlElement.addEventListener(evt, listener)\n return true\n }\n }\n return false\n }\n\n static graphEqual(a: ComfyWorkflowJSON, b: ComfyWorkflowJSON) {\n if (a === b) return true\n\n if (typeof a == 'object' && a && typeof b == 'object' && b) {\n // Compare nodes ignoring order\n if (\n !_.isEqualWith(a.nodes, b.nodes, (arrA, arrB) => {\n if (Array.isArray(arrA) && Array.isArray(arrB)) {\n return _.isEqual(new Set(arrA), new Set(arrB))\n }\n })\n ) {\n return false\n }\n\n // Compare extra properties ignoring ds\n if (\n !_.isEqual(_.omit(a.extra ?? {}, ['ds']), _.omit(b.extra ?? {}, ['ds']))\n )\n return false\n\n // Compare other properties normally\n for (const key of ['links', 'reroutes', 'groups']) {\n if (!_.isEqual(a[key], b[key])) {\n return false\n }\n }\n\n return true\n }\n\n return false\n }\n\n private static graphDiff(a: ComfyWorkflowJSON, b: ComfyWorkflowJSON) {\n function sortGraphNodes(graph: ComfyWorkflowJSON) {\n return {\n links: graph.links,\n groups: graph.groups,\n nodes: graph.nodes.sort((a, b) => {\n if (typeof a.id === 'number' && typeof b.id === 'number') {\n return a.id - b.id\n }\n return 0\n })\n }\n }\n return jsondiffpatch.diff(sortGraphNodes(a), sortGraphNodes(b))\n }\n}\n","import { defineStore } from 'pinia'\nimport { computed, markRaw, ref } from 'vue'\nimport { api } from '@/scripts/api'\nimport { UserFile } from './userFileStore'\nimport { ChangeTracker } from '@/scripts/changeTracker'\nimport { ComfyWorkflowJSON } from '@/types/comfyWorkflow'\nimport { getPathDetails } from '@/utils/formatUtil'\nimport { defaultGraphJSON } from '@/scripts/defaultGraph'\nimport { syncEntities } from '@/utils/syncUtil'\n\nexport class ComfyWorkflow extends UserFile {\n static readonly basePath = 'workflows/'\n\n /**\n * The change tracker for the workflow. Non-reactive raw object.\n */\n changeTracker: ChangeTracker | null = null\n /**\n * Whether the workflow has been modified comparing to the initial state.\n */\n private _isModified: boolean = false\n\n /**\n * @param options The path, modified, and size of the workflow.\n * Note: path is the full path, including the 'workflows/' prefix.\n */\n constructor(options: { path: string; modified: number; size: number }) {\n super(options.path, options.modified, options.size)\n }\n\n get key() {\n return this.path.substring(ComfyWorkflow.basePath.length)\n }\n\n get activeState(): ComfyWorkflowJSON | null {\n return this.changeTracker?.activeState ?? null\n }\n\n get initialState(): ComfyWorkflowJSON | null {\n return this.changeTracker?.initialState ?? null\n }\n\n get isLoaded(): boolean {\n return this.changeTracker !== null\n }\n\n get isModified(): boolean {\n return this._isModified\n }\n\n set isModified(value: boolean) {\n this._isModified = value\n }\n\n /**\n * Load the workflow content from remote storage. Directly returns the loaded\n * workflow if the content is already loaded.\n *\n * @param force Whether to force loading the content even if it is already loaded.\n * @returns this\n */\n async load({\n force = false\n }: { force?: boolean } = {}): Promise {\n await super.load({ force })\n if (!force && this.isLoaded) return this as LoadedComfyWorkflow\n\n if (!this.originalContent) {\n throw new Error('[ASSERT] Workflow content should be loaded')\n }\n\n // Note: originalContent is populated by super.load()\n console.debug('load and start tracking of workflow', this.path)\n this.changeTracker = markRaw(\n new ChangeTracker(\n this,\n /* initialState= */ JSON.parse(this.originalContent)\n )\n )\n return this as LoadedComfyWorkflow\n }\n\n unload(): void {\n console.debug('unload workflow', this.path)\n this.changeTracker = null\n super.unload()\n }\n\n async save() {\n this.content = JSON.stringify(this.activeState)\n // Force save to ensure the content is updated in remote storage incase\n // the isModified state is screwed by changeTracker.\n const ret = await super.save({ force: true })\n this.changeTracker?.reset()\n this.isModified = false\n return ret\n }\n\n /**\n * Save the workflow as a new file.\n * @param path The path to save the workflow to. Note: with 'workflows/' prefix.\n * @returns this\n */\n async saveAs(path: string) {\n this.content = JSON.stringify(this.activeState)\n return await super.saveAs(path)\n }\n}\n\nexport interface LoadedComfyWorkflow extends ComfyWorkflow {\n isLoaded: true\n originalContent: string\n content: string\n changeTracker: ChangeTracker\n initialState: ComfyWorkflowJSON\n activeState: ComfyWorkflowJSON\n}\n\n/**\n * Exposed store interface for the workflow store.\n * Explicitly typed to avoid trigger following error:\n * error TS7056: The inferred type of this node exceeds the maximum length the\n * compiler will serialize. An explicit type annotation is needed.\n */\nexport interface WorkflowStore {\n activeWorkflow: LoadedComfyWorkflow | null\n isActive: (workflow: ComfyWorkflow) => boolean\n openWorkflows: LoadedComfyWorkflow[]\n openedWorkflowIndexShift: (shift: number) => LoadedComfyWorkflow | null\n openWorkflow: (workflow: ComfyWorkflow) => Promise\n isOpen: (workflow: ComfyWorkflow) => boolean\n isBusy: boolean\n closeWorkflow: (workflow: ComfyWorkflow) => Promise\n createTemporary: (\n path?: string,\n workflowData?: ComfyWorkflowJSON\n ) => ComfyWorkflow\n renameWorkflow: (workflow: ComfyWorkflow, newPath: string) => Promise\n deleteWorkflow: (workflow: ComfyWorkflow) => Promise\n saveWorkflow: (workflow: ComfyWorkflow) => Promise\n\n workflows: ComfyWorkflow[]\n bookmarkedWorkflows: ComfyWorkflow[]\n persistedWorkflows: ComfyWorkflow[]\n modifiedWorkflows: ComfyWorkflow[]\n getWorkflowByPath: (path: string) => ComfyWorkflow | null\n syncWorkflows: (dir?: string) => Promise\n}\n\nexport const useWorkflowStore = defineStore('workflow', () => {\n /**\n * Detach the workflow from the store. lightweight helper function.\n * @param workflow The workflow to detach.\n * @returns The index of the workflow in the openWorkflowPaths array, or -1 if the workflow was not open.\n */\n const detachWorkflow = (workflow: ComfyWorkflow) => {\n delete workflowLookup.value[workflow.path]\n const index = openWorkflowPaths.value.indexOf(workflow.path)\n if (index !== -1) {\n openWorkflowPaths.value = openWorkflowPaths.value.filter(\n (path) => path !== workflow.path\n )\n }\n return index\n }\n\n /**\n * Attach the workflow to the store. lightweight helper function.\n * @param workflow The workflow to attach.\n * @param openIndex The index to open the workflow at.\n */\n const attachWorkflow = (workflow: ComfyWorkflow, openIndex: number = -1) => {\n workflowLookup.value[workflow.path] = workflow\n\n if (openIndex !== -1) {\n openWorkflowPaths.value.splice(openIndex, 0, workflow.path)\n }\n }\n\n /**\n * The active workflow currently being edited.\n */\n const activeWorkflow = ref(null)\n const isActive = (workflow: ComfyWorkflow) =>\n activeWorkflow.value?.path === workflow.path\n /**\n * All workflows.\n */\n const workflowLookup = ref>({})\n const workflows = computed(() =>\n Object.values(workflowLookup.value)\n )\n const getWorkflowByPath = (path: string): ComfyWorkflow | null =>\n workflowLookup.value[path] ?? null\n\n /**\n * The paths of the open workflows. It is setup as a ref to allow user\n * to reorder the workflows opened.\n */\n const openWorkflowPaths = ref([])\n const openWorkflowPathSet = computed(() => new Set(openWorkflowPaths.value))\n const openWorkflows = computed(() =>\n openWorkflowPaths.value.map((path) => workflowLookup.value[path])\n )\n const isOpen = (workflow: ComfyWorkflow) =>\n openWorkflowPathSet.value.has(workflow.path)\n\n /**\n * Set the workflow as the active workflow.\n * @param workflow The workflow to open.\n */\n const openWorkflow = async (\n workflow: ComfyWorkflow\n ): Promise => {\n if (isActive(workflow)) return workflow as LoadedComfyWorkflow\n\n if (!openWorkflowPaths.value.includes(workflow.path)) {\n openWorkflowPaths.value.push(workflow.path)\n }\n const loadedWorkflow = await workflow.load()\n activeWorkflow.value = loadedWorkflow\n console.debug('[workflowStore] open workflow', workflow.path)\n return loadedWorkflow\n }\n\n const getUnconflictedPath = (basePath: string): string => {\n const { directory, filename, suffix } = getPathDetails(basePath)\n let counter = 2\n let newPath = basePath\n while (workflowLookup.value[newPath]) {\n newPath = `${directory}/${filename} (${counter}).${suffix}`\n counter++\n }\n return newPath\n }\n\n const createTemporary = (path?: string, workflowData?: ComfyWorkflowJSON) => {\n const fullPath = getUnconflictedPath(\n ComfyWorkflow.basePath + (path ?? 'Unsaved Workflow.json')\n )\n const workflow = new ComfyWorkflow({\n path: fullPath,\n modified: Date.now(),\n size: -1\n })\n\n workflow.originalContent = workflow.content = workflowData\n ? JSON.stringify(workflowData)\n : defaultGraphJSON\n\n workflowLookup.value[workflow.path] = workflow\n return workflow\n }\n\n const closeWorkflow = async (workflow: ComfyWorkflow) => {\n openWorkflowPaths.value = openWorkflowPaths.value.filter(\n (path) => path !== workflow.path\n )\n if (workflow.isTemporary) {\n delete workflowLookup.value[workflow.path]\n } else {\n workflow.unload()\n }\n console.debug('[workflowStore] close workflow', workflow.path)\n }\n\n /**\n * Get the workflow at the given index shift from the active workflow.\n * @param shift The shift to the next workflow. Positive for next, negative for previous.\n * @returns The next workflow or null if the shift is out of bounds.\n */\n const openedWorkflowIndexShift = (shift: number): ComfyWorkflow | null => {\n const index = openWorkflowPaths.value.indexOf(\n activeWorkflow.value?.path ?? ''\n )\n\n if (index !== -1) {\n const length = openWorkflows.value.length\n const nextIndex = (index + shift + length) % length\n const nextWorkflow = openWorkflows.value[nextIndex]\n return nextWorkflow ?? null\n }\n return null\n }\n\n const persistedWorkflows = computed(() =>\n Array.from(workflows.value).filter((workflow) => workflow.isPersisted)\n )\n const syncWorkflows = async (dir: string = '') => {\n await syncEntities(\n dir ? 'workflows/' + dir : 'workflows',\n workflowLookup.value,\n (file) =>\n new ComfyWorkflow({\n path: file.path,\n modified: file.modified,\n size: file.size\n }),\n (existingWorkflow, file) => {\n existingWorkflow.lastModified = file.modified\n existingWorkflow.size = file.size\n existingWorkflow.unload()\n },\n /* exclude */ (workflow) => workflow.isTemporary\n )\n }\n\n const bookmarkStore = useWorkflowBookmarkStore()\n const bookmarkedWorkflows = computed(() =>\n workflows.value.filter((workflow) =>\n bookmarkStore.isBookmarked(workflow.path)\n )\n )\n const modifiedWorkflows = computed(() =>\n workflows.value.filter((workflow) => workflow.isModified)\n )\n\n /** A filesystem operation is currently in progress (e.g. save, rename, delete) */\n const isBusy = ref(false)\n\n const renameWorkflow = async (workflow: ComfyWorkflow, newPath: string) => {\n isBusy.value = true\n try {\n // Capture all needed values upfront\n const oldPath = workflow.path\n const wasBookmarked = bookmarkStore.isBookmarked(oldPath)\n\n const openIndex = detachWorkflow(workflow)\n // Perform the actual rename operation first\n try {\n await workflow.rename(newPath)\n } finally {\n attachWorkflow(workflow, openIndex)\n }\n\n // Update bookmarks\n if (wasBookmarked) {\n bookmarkStore.setBookmarked(oldPath, false)\n bookmarkStore.setBookmarked(newPath, true)\n }\n } finally {\n isBusy.value = false\n }\n }\n\n const deleteWorkflow = async (workflow: ComfyWorkflow) => {\n isBusy.value = true\n try {\n await workflow.delete()\n if (bookmarkStore.isBookmarked(workflow.path)) {\n bookmarkStore.setBookmarked(workflow.path, false)\n }\n delete workflowLookup.value[workflow.path]\n } finally {\n isBusy.value = false\n }\n }\n\n /**\n * Save a workflow.\n * @param workflow The workflow to save.\n */\n const saveWorkflow = async (workflow: ComfyWorkflow) => {\n isBusy.value = true\n try {\n // Detach the workflow and re-attach to force refresh the tree objects.\n const openIndex = detachWorkflow(workflow)\n try {\n await workflow.save()\n } finally {\n attachWorkflow(workflow, openIndex)\n }\n } finally {\n isBusy.value = false\n }\n }\n\n return {\n activeWorkflow,\n isActive,\n openWorkflows,\n openedWorkflowIndexShift,\n openWorkflow,\n isOpen,\n isBusy,\n closeWorkflow,\n createTemporary,\n renameWorkflow,\n deleteWorkflow,\n saveWorkflow,\n\n workflows,\n bookmarkedWorkflows,\n persistedWorkflows,\n modifiedWorkflows,\n getWorkflowByPath,\n syncWorkflows\n }\n}) as unknown as () => WorkflowStore\n\nexport const useWorkflowBookmarkStore = defineStore('workflowBookmark', () => {\n const bookmarks = ref>(new Set())\n\n const isBookmarked = (path: string) => bookmarks.value.has(path)\n\n const loadBookmarks = async () => {\n const resp = await api.getUserData('workflows/.index.json')\n if (resp.status === 200) {\n const info = await resp.json()\n bookmarks.value = new Set(info?.favorites ?? [])\n }\n }\n\n const saveBookmarks = async () => {\n await api.storeUserData('workflows/.index.json', {\n favorites: Array.from(bookmarks.value)\n })\n }\n\n const setBookmarked = (path: string, value: boolean) => {\n if (bookmarks.value.has(path) === value) return\n if (value) {\n bookmarks.value.add(path)\n } else {\n bookmarks.value.delete(path)\n }\n saveBookmarks()\n }\n\n const toggleBookmarked = (path: string) => {\n setBookmarked(path, !bookmarks.value.has(path))\n }\n\n return {\n isBookmarked,\n loadBookmarks,\n saveBookmarks,\n setBookmarked,\n toggleBookmarked\n }\n})\n","import { downloadBlob } from '@/scripts/utils'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useWorkflowStore, ComfyWorkflow } from '@/stores/workflowStore'\nimport { showConfirmationDialog, showPromptDialog } from './dialogService'\nimport { app } from '@/scripts/app'\nimport { useWorkspaceStore } from '@/stores/workspaceStore'\nimport { LGraphCanvas } from '@comfyorg/litegraph'\nimport { toRaw } from 'vue'\nimport { ComfyWorkflowJSON } from '@/types/comfyWorkflow'\nimport { blankGraph, defaultGraph } from '@/scripts/defaultGraph'\nimport { appendJsonExt } from '@/utils/formatUtil'\nimport { t } from '@/i18n'\nimport { useToastStore } from '@/stores/toastStore'\n\nasync function getFilename(defaultName: string): Promise {\n if (useSettingStore().get('Comfy.PromptFilename')) {\n let filename = await showPromptDialog({\n title: t('workflowService.exportWorkflow'),\n message: t('workflowService.enterFilename') + ':',\n defaultValue: defaultName\n })\n if (!filename) return null\n if (!filename.toLowerCase().endsWith('.json')) {\n filename += '.json'\n }\n return filename\n }\n return defaultName\n}\n\n// TODO(huchenlei): Auto Error Handling for all methods.\nexport const workflowService = {\n /**\n * Export the current workflow as a JSON file\n * @param filename The filename to save the workflow as\n * @param promptProperty The property of the prompt to export\n */\n async exportWorkflow(\n filename: string,\n promptProperty: 'workflow' | 'output'\n ): Promise {\n const workflow = useWorkflowStore().activeWorkflow\n if (workflow?.path) {\n filename = workflow.filename\n }\n const p = await app.graphToPrompt()\n const json = JSON.stringify(p[promptProperty], null, 2)\n const blob = new Blob([json], { type: 'application/json' })\n const file = await getFilename(filename)\n if (!file) return\n downloadBlob(file, blob)\n },\n /**\n * Save a workflow as a new file\n * @param workflow The workflow to save\n */\n async saveWorkflowAs(workflow: ComfyWorkflow) {\n const newFilename = await showPromptDialog({\n title: t('workflowService.saveWorkflow'),\n message: t('workflowService.enterFilename') + ':',\n defaultValue: workflow.filename\n })\n if (!newFilename) return\n\n const newPath = workflow.directory + '/' + appendJsonExt(newFilename)\n const newKey = newPath.substring(ComfyWorkflow.basePath.length)\n const workflowStore = useWorkflowStore()\n const existingWorkflow = workflowStore.getWorkflowByPath(newPath)\n\n if (existingWorkflow && !existingWorkflow.isTemporary) {\n const res = await showConfirmationDialog({\n title: t('sideToolbar.workflowTab.confirmOverwriteTitle'),\n type: 'overwrite',\n message: t('sideToolbar.workflowTab.confirmOverwrite'),\n itemList: [newPath]\n })\n\n if (res !== true) return\n\n if (existingWorkflow.path === workflow.path) {\n await this.saveWorkflow(workflow)\n return\n }\n const deleted = await this.deleteWorkflow(existingWorkflow, true)\n if (!deleted) return\n }\n\n if (workflow.isTemporary) {\n await this.renameWorkflow(workflow, newPath)\n await workflowStore.saveWorkflow(workflow)\n } else {\n const tempWorkflow = workflowStore.createTemporary(\n newKey,\n workflow.activeState as ComfyWorkflowJSON\n )\n await this.openWorkflow(tempWorkflow)\n await workflowStore.saveWorkflow(tempWorkflow)\n }\n },\n\n /**\n * Save a workflow\n * @param workflow The workflow to save\n */\n async saveWorkflow(workflow: ComfyWorkflow) {\n if (workflow.isTemporary) {\n await this.saveWorkflowAs(workflow)\n } else {\n await useWorkflowStore().saveWorkflow(workflow)\n }\n },\n\n /**\n * Load the default workflow\n */\n async loadDefaultWorkflow() {\n await app.loadGraphData(defaultGraph)\n },\n\n /**\n * Load a blank workflow\n */\n async loadBlankWorkflow() {\n await app.loadGraphData(blankGraph)\n },\n\n /**\n * Reload the current workflow\n * This is used to refresh the node definitions update, e.g. when the locale changes.\n */\n async reloadCurrentWorkflow() {\n const workflow = useWorkflowStore().activeWorkflow\n if (workflow) {\n await this.openWorkflow(workflow, { force: true })\n }\n },\n\n /**\n * Open a workflow in the current workspace\n * @param workflow The workflow to open\n * @param options The options for opening the workflow\n */\n async openWorkflow(\n workflow: ComfyWorkflow,\n options: { force: boolean } = { force: false }\n ) {\n if (useWorkflowStore().isActive(workflow) && !options.force) return\n\n const loadFromRemote = !workflow.isLoaded\n if (loadFromRemote) {\n await workflow.load()\n }\n\n await app.loadGraphData(\n toRaw(workflow.activeState) as ComfyWorkflowJSON,\n /* clean=*/ true,\n /* restore_view=*/ true,\n workflow,\n {\n showMissingModelsDialog: loadFromRemote,\n showMissingNodesDialog: loadFromRemote\n }\n )\n },\n\n /**\n * Close a workflow with confirmation if there are unsaved changes\n * @param workflow The workflow to close\n * @returns true if the workflow was closed, false if the user cancelled\n */\n async closeWorkflow(\n workflow: ComfyWorkflow,\n options: { warnIfUnsaved: boolean } = { warnIfUnsaved: true }\n ): Promise {\n if (!workflow.isLoaded) {\n return true\n }\n\n if (workflow.isModified && options.warnIfUnsaved) {\n const confirmed = await showConfirmationDialog({\n title: t('sideToolbar.workflowTab.dirtyCloseTitle'),\n type: 'dirtyClose',\n message: t('sideToolbar.workflowTab.dirtyClose'),\n itemList: [workflow.path]\n })\n // Cancel\n if (confirmed === null) return false\n\n if (confirmed === true) {\n await this.saveWorkflow(workflow)\n }\n }\n\n const workflowStore = useWorkflowStore()\n // If this is the last workflow, create a new default temporary workflow\n if (workflowStore.openWorkflows.length === 1) {\n await this.loadDefaultWorkflow()\n }\n // If this is the active workflow, load the next workflow\n if (workflowStore.isActive(workflow)) {\n await this.loadNextOpenedWorkflow()\n }\n\n await workflowStore.closeWorkflow(workflow)\n return true\n },\n\n async renameWorkflow(workflow: ComfyWorkflow, newPath: string) {\n await useWorkflowStore().renameWorkflow(workflow, newPath)\n },\n\n /**\n * Delete a workflow\n * @param workflow The workflow to delete\n * @returns `true` if the workflow was deleted, `false` if the user cancelled\n */\n async deleteWorkflow(\n workflow: ComfyWorkflow,\n silent = false\n ): Promise {\n const bypassConfirm = !useSettingStore().get('Comfy.Workflow.ConfirmDelete')\n let confirmed: boolean | null = bypassConfirm || silent\n\n if (!confirmed) {\n confirmed = await showConfirmationDialog({\n title: t('sideToolbar.workflowTab.confirmDeleteTitle'),\n type: 'delete',\n message: t('sideToolbar.workflowTab.confirmDelete'),\n itemList: [workflow.path]\n })\n if (!confirmed) return false\n }\n\n const workflowStore = useWorkflowStore()\n if (workflowStore.isOpen(workflow)) {\n const closed = await this.closeWorkflow(workflow, {\n warnIfUnsaved: !confirmed\n })\n if (!closed) return false\n }\n await workflowStore.deleteWorkflow(workflow)\n if (!silent) {\n useToastStore().add({\n severity: 'info',\n summary: t('sideToolbar.workflowTab.deleted'),\n life: 1000\n })\n }\n return true\n },\n\n /**\n * This method is called before loading a new graph.\n * There are 3 major functions that loads a new graph to the graph editor:\n * 1. loadGraphData\n * 2. loadApiJson\n * 3. importA1111\n *\n * This function is used to save the current workflow states before loading\n * a new graph.\n */\n beforeLoadNewGraph() {\n // Use workspaceStore here as it is patched in jest tests.\n const workflowStore = useWorkspaceStore().workflow\n const activeWorkflow = workflowStore.activeWorkflow\n if (activeWorkflow) {\n activeWorkflow.changeTracker.store()\n }\n },\n\n /**\n * Set the active workflow after the new graph is loaded.\n *\n * The call relationship is\n * workflowService.openWorkflow -> app.loadGraphData -> workflowService.afterLoadNewGraph\n * app.loadApiJson -> workflowService.afterLoadNewGraph\n * app.importA1111 -> workflowService.afterLoadNewGraph\n *\n * @param value The value to set as the active workflow.\n * @param workflowData The initial workflow data loaded to the graph editor.\n */\n async afterLoadNewGraph(\n value: string | ComfyWorkflow | null,\n workflowData: ComfyWorkflowJSON\n ) {\n // Use workspaceStore here as it is patched in jest tests.\n const workflowStore = useWorkspaceStore().workflow\n if (typeof value === 'string') {\n const workflow = workflowStore.getWorkflowByPath(\n ComfyWorkflow.basePath + appendJsonExt(value)\n )\n if (workflow?.isPersisted) {\n const loadedWorkflow = await workflowStore.openWorkflow(workflow)\n loadedWorkflow.changeTracker.restore()\n loadedWorkflow.changeTracker.reset(workflowData)\n return\n }\n }\n\n if (value === null || typeof value === 'string') {\n const path = value as string | null\n const tempWorkflow = workflowStore.createTemporary(\n path ? appendJsonExt(path) : undefined,\n workflowData\n )\n await workflowStore.openWorkflow(tempWorkflow)\n return\n }\n\n // value is a ComfyWorkflow.\n const loadedWorkflow = await workflowStore.openWorkflow(value)\n loadedWorkflow.changeTracker.reset(workflowData)\n loadedWorkflow.changeTracker.restore()\n },\n\n /**\n * Insert the given workflow into the current graph editor.\n */\n async insertWorkflow(workflow: ComfyWorkflow) {\n const loadedWorkflow = await workflow.load()\n const data = loadedWorkflow.initialState\n const old = localStorage.getItem('litegrapheditor_clipboard')\n // @ts-expect-error: zod issue. Should be fixed after enable ts-strict globally\n const graph = new LGraph(data)\n const canvasElement = document.createElement('canvas')\n const canvas = new LGraphCanvas(canvasElement, graph, {\n skip_events: true,\n skip_render: true\n })\n canvas.selectNodes()\n canvas.copyToClipboard()\n app.canvas.pasteFromClipboard()\n if (old !== null) {\n localStorage.setItem('litegrapheditor_clipboard', old)\n }\n },\n\n async loadNextOpenedWorkflow() {\n const nextWorkflow = useWorkflowStore().openedWorkflowIndexShift(1)\n if (nextWorkflow) {\n await this.openWorkflow(nextWorkflow)\n }\n },\n\n async loadPreviousOpenedWorkflow() {\n const previousWorkflow = useWorkflowStore().openedWorkflowIndexShift(-1)\n if (previousWorkflow) {\n await this.openWorkflow(previousWorkflow)\n }\n },\n\n /**\n * Takes an existing workflow and duplicates it with a new name\n */\n async duplicateWorkflow(workflow: ComfyWorkflow) {\n const state = JSON.parse(JSON.stringify(workflow.activeState))\n await app.loadGraphData(state, true, true, workflow.filename)\n }\n}\n","// @ts-strict-ignore\nimport type { LGraph, LGraphCanvas, LGraphNode } from '@comfyorg/litegraph'\nimport { LiteGraph } from '@comfyorg/litegraph'\n\n/**\n * Serialises an array of nodes using a modified version of the old Litegraph copy (& paste) function\n * @param nodes All nodes to be serialised\n * @param graph The graph we are working in\n * @returns A serialised string of all nodes, and their connections\n * @deprecated Format not in use anywhere else.\n */\nexport function serialise(nodes: LGraphNode[], graph: LGraph): string {\n const serialisable = {\n nodes: [],\n links: []\n }\n let index = 0\n const cloneable: LGraphNode[] = []\n\n for (const node of nodes) {\n if (node.clonable === false) continue\n\n node._relative_id = index++\n cloneable.push(node)\n }\n\n // Clone the node\n for (const node of cloneable) {\n const cloned = node.clone()\n if (!cloned) {\n console.warn('node type not found: ' + node.type)\n continue\n }\n\n serialisable.nodes.push(cloned.serialize())\n if (!node.inputs?.length) continue\n\n // For inputs only, gather link details of every connection\n for (const input of node.inputs) {\n if (!input || input.link == null) continue\n\n const link = graph.links.get(input.link)\n if (!link) continue\n\n const outNode = graph.getNodeById(link.origin_id)\n if (!outNode) continue\n\n // Special format for old Litegraph copy & paste only\n serialisable.links.push([\n outNode._relative_id,\n link.origin_slot,\n node._relative_id,\n link.target_slot,\n outNode.id\n ])\n }\n }\n\n return JSON.stringify(serialisable)\n}\n\n/**\n * Deserialises nodes and links using a modified version of the old Litegraph (copy &) paste function\n * @param data The serialised nodes and links to create\n * @param canvas The canvas to create the serialised items in\n */\nexport function deserialiseAndCreate(data: string, canvas: LGraphCanvas): void {\n if (!data) return\n\n const { graph, graph_mouse } = canvas\n canvas.emitBeforeChange()\n try {\n graph.beforeChange()\n\n const deserialised = JSON.parse(data)\n\n // Find the top left point of the boundary of all pasted nodes\n const topLeft = [Infinity, Infinity]\n for (const { pos } of deserialised.nodes) {\n if (topLeft[0] > pos[0]) topLeft[0] = pos[0]\n if (topLeft[1] > pos[1]) topLeft[1] = pos[1]\n }\n\n // Silent default instead of throw\n if (!Number.isFinite(topLeft[0]) || !Number.isFinite(topLeft[1])) {\n topLeft[0] = graph_mouse[0]\n topLeft[1] = graph_mouse[1]\n }\n\n // Create nodes\n const nodes: LGraphNode[] = []\n for (const info of deserialised.nodes) {\n const node = LiteGraph.createNode(info.type)\n if (!node) continue\n\n node.configure(info)\n\n // Paste to the bottom right of pointer\n node.pos[0] += graph_mouse[0] - topLeft[0]\n node.pos[1] += graph_mouse[1] - topLeft[1]\n\n graph.add(node, true)\n nodes.push(node)\n }\n\n // Create links\n for (const info of deserialised.links) {\n const relativeId = info[0]\n const outNode = relativeId != null ? nodes[relativeId] : undefined\n\n const inNode = nodes[info[2]]\n if (outNode && inNode) outNode.connect(info[1], inNode, info[3])\n else console.warn('Warning, nodes missing on pasting')\n }\n\n canvas.selectNodes(nodes)\n\n graph.afterChange()\n } finally {\n canvas.emitAfterChange()\n }\n}\n","// @ts-strict-ignore\nimport {\n type ComfyWidgetConstructor,\n ComfyWidgets,\n initWidgets\n} from './widgets'\nimport { ComfyUI, $el } from './ui'\nimport { api, type ComfyApi } from './api'\nimport { defaultGraph } from './defaultGraph'\nimport {\n getPngMetadata,\n getWebpMetadata,\n getFlacMetadata,\n importA1111,\n getLatentMetadata\n} from './pnginfo'\nimport { createImageHost, calculateImageGrid } from './ui/imagePreview'\nimport type { ComfyExtension, MissingNodeType } from '@/types/comfy'\nimport {\n type ComfyWorkflowJSON,\n type NodeId,\n validateComfyWorkflow\n} from '@/types/comfyWorkflow'\nimport type { ComfyNodeDef } from '@/types/apiTypes'\nimport { adjustColor, ColorAdjustOptions } from '@/utils/colorUtil'\nimport { ComfyAppMenu } from './ui/menu/index'\nimport { getStorageValue } from './utils'\nimport { ComfyWorkflow } from '@/stores/workflowStore'\nimport {\n LGraphCanvas,\n LGraph,\n LGraphNode,\n LiteGraph,\n LGraphEventMode\n} from '@comfyorg/litegraph'\nimport { ExtensionManager } from '@/types/extensionTypes'\nimport {\n ComfyNodeDefImpl,\n SYSTEM_NODE_DEFS,\n useNodeDefStore\n} from '@/stores/nodeDefStore'\nimport { INodeInputSlot, Vector2 } from '@comfyorg/litegraph'\nimport _ from 'lodash'\nimport {\n showExecutionErrorDialog,\n showLoadWorkflowWarning,\n showMissingModelsWarning\n} from '@/services/dialogService'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useToastStore } from '@/stores/toastStore'\nimport { useModelStore } from '@/stores/modelStore'\nimport type { ToastMessageOptions } from 'primevue/toast'\nimport { useWorkspaceStore } from '@/stores/workspaceStore'\nimport { useExecutionStore } from '@/stores/executionStore'\nimport { IWidget } from '@comfyorg/litegraph'\nimport { useExtensionStore } from '@/stores/extensionStore'\nimport { KeyComboImpl, useKeybindingStore } from '@/stores/keybindingStore'\nimport { useCommandStore } from '@/stores/commandStore'\nimport { shallowReactive } from 'vue'\nimport { type IBaseWidget } from '@comfyorg/litegraph/dist/types/widgets'\nimport { workflowService } from '@/services/workflowService'\nimport { useWidgetStore } from '@/stores/widgetStore'\nimport { deserialiseAndCreate } from '@/extensions/core/vintageClipboard'\nimport { st } from '@/i18n'\nimport { normalizeI18nKey } from '@/utils/formatUtil'\nimport { ISerialisedGraph } from '@comfyorg/litegraph'\n\nexport const ANIM_PREVIEW_WIDGET = '$$comfy_animation_preview'\n\nfunction sanitizeNodeName(string) {\n let entityMap = {\n '&': '',\n '<': '',\n '>': '',\n '\"': '',\n \"'\": '',\n '`': '',\n '=': ''\n }\n return String(string).replace(/[&<>\"'`=]/g, function fromEntityMap(s) {\n return entityMap[s]\n })\n}\n\ntype Clipspace = {\n widgets?: { type?: string; name?: string; value?: any }[] | null\n imgs?: HTMLImageElement[] | null\n original_imgs?: HTMLImageElement[] | null\n images?: any[] | null\n selectedIndex: number\n img_paste_mode: string\n}\n\n/**\n * @typedef {import(\"types/comfy\").ComfyExtension} ComfyExtension\n */\n\nexport class ComfyApp {\n /**\n * List of entries to queue\n * @type {{number: number, batchCount: number}[]}\n */\n #queueItems = []\n /**\n * If the queue is currently being processed\n * @type {boolean}\n */\n #processingQueue = false\n\n /**\n * Content Clipboard\n * @type {serialized node object}\n */\n static clipspace: Clipspace | null = null\n static clipspace_invalidate_handler: (() => void) | null = null\n static open_maskeditor = null\n static clipspace_return_node = null\n\n vueAppReady: boolean\n api: ComfyApi\n ui: ComfyUI\n extensions: ComfyExtension[]\n extensionManager: ExtensionManager\n _nodeOutputs: Record\n nodePreviewImages: Record\n graph: LGraph\n canvas: LGraphCanvas\n dragOverNode: LGraphNode | null\n canvasEl: HTMLCanvasElement\n // x, y, scale\n zoom_drag_start: [number, number, number] | null\n lastNodeErrors: any[] | null\n /** @type {ExecutionErrorWsMessage} */\n lastExecutionError: { node_id?: NodeId } | null\n /** @type {ProgressWsMessage} */\n progress: { value?: number; max?: number } | null\n configuringGraph: boolean\n ctx: CanvasRenderingContext2D\n bodyTop: HTMLElement\n bodyLeft: HTMLElement\n bodyRight: HTMLElement\n bodyBottom: HTMLElement\n canvasContainer: HTMLElement\n menu: ComfyAppMenu\n bypassBgColor: string\n // Set by Comfy.Clipspace extension\n openClipspace: () => void = () => {}\n\n /**\n * @deprecated Use useExecutionStore().executingNodeId instead\n */\n get runningNodeId(): string | null {\n return useExecutionStore().executingNodeId\n }\n\n /**\n * @deprecated Use useWorkspaceStore().shiftDown instead\n */\n get shiftDown(): boolean {\n return useWorkspaceStore().shiftDown\n }\n\n /**\n * @deprecated Use useWidgetStore().widgets instead\n */\n get widgets(): Record {\n if (this.vueAppReady) {\n return useWidgetStore().widgets\n }\n return ComfyWidgets\n }\n\n /**\n * @deprecated storageLocation is always 'server' since\n * https://github.com/comfyanonymous/ComfyUI/commit/53c8a99e6c00b5e20425100f6680cd9ea2652218\n */\n get storageLocation() {\n return 'server'\n }\n\n /**\n * @deprecated storage migration is no longer needed.\n */\n get isNewUserSession() {\n return false\n }\n\n constructor() {\n this.vueAppReady = false\n this.ui = new ComfyUI(this)\n this.api = api\n this.bodyTop = $el('div.comfyui-body-top', { parent: document.body })\n this.bodyLeft = $el('div.comfyui-body-left', { parent: document.body })\n this.bodyRight = $el('div.comfyui-body-right', { parent: document.body })\n this.bodyBottom = $el('div.comfyui-body-bottom', { parent: document.body })\n this.canvasContainer = $el('div.graph-canvas-container', {\n parent: document.body\n })\n this.menu = new ComfyAppMenu(this)\n this.bypassBgColor = '#FF00FF'\n\n /**\n * List of extensions that are registered with the app\n * @type {ComfyExtension[]}\n */\n this.extensions = []\n\n /**\n * Stores the execution output data for each node\n * @type {Record}\n */\n this.nodeOutputs = {}\n\n /**\n * Stores the preview image data for each node\n * @type {Record}\n */\n this.nodePreviewImages = {}\n }\n\n get nodeOutputs() {\n return this._nodeOutputs\n }\n\n set nodeOutputs(value) {\n this._nodeOutputs = value\n this.#invokeExtensions('onNodeOutputsUpdated', value)\n }\n\n getPreviewFormatParam() {\n let preview_format = this.ui.settings.getSettingValue('Comfy.PreviewFormat')\n if (preview_format) return `&preview=${preview_format}`\n else return ''\n }\n\n getRandParam() {\n return '&rand=' + Math.random()\n }\n\n static isImageNode(node) {\n return (\n node.imgs ||\n (node &&\n node.widgets &&\n node.widgets.findIndex((obj) => obj.name === 'image') >= 0)\n )\n }\n\n static onClipspaceEditorSave() {\n if (ComfyApp.clipspace_return_node) {\n ComfyApp.pasteFromClipspace(ComfyApp.clipspace_return_node)\n }\n }\n\n static onClipspaceEditorClosed() {\n ComfyApp.clipspace_return_node = null\n }\n\n static copyToClipspace(node) {\n var widgets = null\n if (node.widgets) {\n widgets = node.widgets.map(({ type, name, value }) => ({\n type,\n name,\n value\n }))\n }\n\n var imgs = undefined\n var orig_imgs = undefined\n if (node.imgs != undefined) {\n imgs = []\n orig_imgs = []\n\n for (let i = 0; i < node.imgs.length; i++) {\n imgs[i] = new Image()\n imgs[i].src = node.imgs[i].src\n orig_imgs[i] = imgs[i]\n }\n }\n\n var selectedIndex = 0\n if (node.imageIndex) {\n selectedIndex = node.imageIndex\n }\n\n ComfyApp.clipspace = {\n widgets: widgets,\n imgs: imgs,\n original_imgs: orig_imgs,\n images: node.images,\n selectedIndex: selectedIndex,\n img_paste_mode: 'selected' // reset to default im_paste_mode state on copy action\n }\n\n ComfyApp.clipspace_return_node = null\n\n if (ComfyApp.clipspace_invalidate_handler) {\n ComfyApp.clipspace_invalidate_handler()\n }\n }\n\n static pasteFromClipspace(node) {\n if (ComfyApp.clipspace) {\n // image paste\n if (ComfyApp.clipspace.imgs && node.imgs) {\n if (node.images && ComfyApp.clipspace.images) {\n if (ComfyApp.clipspace['img_paste_mode'] == 'selected') {\n node.images = [\n ComfyApp.clipspace.images[ComfyApp.clipspace['selectedIndex']]\n ]\n } else {\n node.images = ComfyApp.clipspace.images\n }\n\n if (app.nodeOutputs[node.id + ''])\n app.nodeOutputs[node.id + ''].images = node.images\n }\n\n if (ComfyApp.clipspace.imgs) {\n // deep-copy to cut link with clipspace\n if (ComfyApp.clipspace['img_paste_mode'] == 'selected') {\n const img = new Image()\n img.src =\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n node.imgs = [img]\n node.imageIndex = 0\n } else {\n const imgs = []\n for (let i = 0; i < ComfyApp.clipspace.imgs.length; i++) {\n imgs[i] = new Image()\n imgs[i].src = ComfyApp.clipspace.imgs[i].src\n node.imgs = imgs\n }\n }\n }\n }\n\n if (node.widgets) {\n if (ComfyApp.clipspace.images) {\n const clip_image =\n ComfyApp.clipspace.images[ComfyApp.clipspace['selectedIndex']]\n const index = node.widgets.findIndex((obj) => obj.name === 'image')\n if (index >= 0) {\n if (\n node.widgets[index].type != 'image' &&\n typeof node.widgets[index].value == 'string' &&\n clip_image.filename\n ) {\n node.widgets[index].value =\n (clip_image.subfolder ? clip_image.subfolder + '/' : '') +\n clip_image.filename +\n (clip_image.type ? ` [${clip_image.type}]` : '')\n } else {\n node.widgets[index].value = clip_image\n }\n }\n }\n if (ComfyApp.clipspace.widgets) {\n ComfyApp.clipspace.widgets.forEach(({ type, name, value }) => {\n const prop = Object.values(node.widgets).find(\n // @ts-expect-errorg\n (obj) => obj.type === type && obj.name === name\n )\n // @ts-expect-error\n if (prop && prop.type != 'button') {\n if (\n // @ts-expect-error\n prop.type != 'image' &&\n // @ts-expect-error\n typeof prop.value == 'string' &&\n value.filename\n ) {\n // @ts-expect-error\n prop.value =\n (value.subfolder ? value.subfolder + '/' : '') +\n value.filename +\n (value.type ? ` [${value.type}]` : '')\n } else {\n // @ts-expect-error\n prop.value = value\n // @ts-expect-error\n prop.callback(value)\n }\n }\n })\n }\n }\n\n app.graph.setDirtyCanvas(true)\n }\n }\n\n get enabledExtensions() {\n if (!this.vueAppReady) {\n return this.extensions\n }\n return useExtensionStore().enabledExtensions\n }\n\n /**\n * Invoke an extension callback\n * @param {keyof ComfyExtension} method The extension callback to execute\n * @param {any[]} args Any arguments to pass to the callback\n * @returns\n */\n #invokeExtensions(method, ...args) {\n let results = []\n for (const ext of this.enabledExtensions) {\n if (method in ext) {\n try {\n results.push(ext[method](...args, this))\n } catch (error) {\n console.error(\n `Error calling extension '${ext.name}' method '${method}'`,\n { error },\n { extension: ext },\n { args }\n )\n }\n }\n }\n return results\n }\n\n /**\n * Invoke an async extension callback\n * Each callback will be invoked concurrently\n * @param {string} method The extension callback to execute\n * @param {...any} args Any arguments to pass to the callback\n * @returns\n */\n async #invokeExtensionsAsync(method, ...args) {\n return await Promise.all(\n this.enabledExtensions.map(async (ext) => {\n if (method in ext) {\n try {\n return await ext[method](...args, this)\n } catch (error) {\n console.error(\n `Error calling extension '${ext.name}' method '${method}'`,\n { error },\n { extension: ext },\n { args }\n )\n }\n }\n })\n )\n }\n\n #addRestoreWorkflowView() {\n const serialize = LGraph.prototype.serialize\n const self = this\n LGraph.prototype.serialize = function () {\n const workflow = serialize.apply(this, arguments)\n\n // Store the drag & scale info in the serialized workflow if the setting is enabled\n if (useSettingStore().get('Comfy.EnableWorkflowViewRestore')) {\n if (!workflow.extra) {\n workflow.extra = {}\n }\n workflow.extra.ds = {\n scale: self.canvas.ds.scale,\n offset: self.canvas.ds.offset\n }\n } else if (workflow.extra?.ds) {\n // Clear any old view data\n delete workflow.extra.ds\n }\n\n return workflow\n }\n }\n\n /**\n * Adds special context menu handling for nodes\n * e.g. this adds Open Image functionality for nodes that show images\n * @param {*} node The node to add the menu handler\n */\n #addNodeContextMenuHandler(node) {\n function getCopyImageOption(img) {\n if (typeof window.ClipboardItem === 'undefined') return []\n return [\n {\n content: 'Copy Image',\n callback: async () => {\n const url = new URL(img.src)\n url.searchParams.delete('preview')\n\n const writeImage = async (blob) => {\n await navigator.clipboard.write([\n new ClipboardItem({\n [blob.type]: blob\n })\n ])\n }\n\n try {\n const data = await fetch(url)\n const blob = await data.blob()\n try {\n await writeImage(blob)\n } catch (error) {\n // Chrome seems to only support PNG on write, convert and try again\n if (blob.type !== 'image/png') {\n const canvas = $el('canvas', {\n width: img.naturalWidth,\n height: img.naturalHeight\n }) as HTMLCanvasElement\n const ctx = canvas.getContext('2d')\n let image\n if (typeof window.createImageBitmap === 'undefined') {\n image = new Image()\n const p = new Promise((resolve, reject) => {\n image.onload = resolve\n image.onerror = reject\n }).finally(() => {\n URL.revokeObjectURL(image.src)\n })\n image.src = URL.createObjectURL(blob)\n await p\n } else {\n image = await createImageBitmap(blob)\n }\n try {\n ctx.drawImage(image, 0, 0)\n canvas.toBlob(writeImage, 'image/png')\n } finally {\n if (typeof image.close === 'function') {\n image.close()\n }\n }\n\n return\n }\n throw error\n }\n } catch (error) {\n useToastStore().addAlert(\n 'Error copying image: ' + (error.message ?? error)\n )\n }\n }\n }\n ]\n }\n\n node.prototype.getExtraMenuOptions = function (_, options) {\n if (this.imgs) {\n // If this node has images then we add an open in new tab item\n let img\n if (this.imageIndex != null) {\n // An image is selected so select that\n img = this.imgs[this.imageIndex]\n } else if (this.overIndex != null) {\n // No image is selected but one is hovered\n img = this.imgs[this.overIndex]\n }\n if (img) {\n options.unshift(\n {\n content: 'Open Image',\n callback: () => {\n let url = new URL(img.src)\n url.searchParams.delete('preview')\n window.open(url, '_blank')\n }\n },\n ...getCopyImageOption(img),\n {\n content: 'Save Image',\n callback: () => {\n const a = document.createElement('a')\n let url = new URL(img.src)\n url.searchParams.delete('preview')\n a.href = url.toString()\n a.setAttribute(\n 'download',\n new URLSearchParams(url.search).get('filename')\n )\n document.body.append(a)\n a.click()\n requestAnimationFrame(() => a.remove())\n }\n }\n )\n }\n }\n\n options.push({\n content: 'Bypass',\n callback: (obj) => {\n if (this.mode === LGraphEventMode.BYPASS)\n this.mode = LGraphEventMode.ALWAYS\n else this.mode = LGraphEventMode.BYPASS\n this.graph.change()\n }\n })\n\n // prevent conflict of clipspace content\n if (!ComfyApp.clipspace_return_node) {\n options.push({\n content: 'Copy (Clipspace)',\n callback: (obj) => {\n ComfyApp.copyToClipspace(this)\n }\n })\n\n if (ComfyApp.clipspace != null) {\n options.push({\n content: 'Paste (Clipspace)',\n callback: () => {\n ComfyApp.pasteFromClipspace(this)\n }\n })\n }\n\n if (ComfyApp.isImageNode(this)) {\n options.push({\n content: 'Open in MaskEditor',\n callback: (obj) => {\n ComfyApp.copyToClipspace(this)\n ComfyApp.clipspace_return_node = this\n ComfyApp.open_maskeditor()\n }\n })\n }\n }\n }\n }\n\n #addNodeKeyHandler(node) {\n const app = this\n const origNodeOnKeyDown = node.prototype.onKeyDown\n\n node.prototype.onKeyDown = function (e) {\n if (origNodeOnKeyDown && origNodeOnKeyDown.apply(this, e) === false) {\n return false\n }\n\n if (this.flags.collapsed || !this.imgs || this.imageIndex === null) {\n return\n }\n\n let handled = false\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n if (e.key === 'ArrowLeft') {\n this.imageIndex -= 1\n } else if (e.key === 'ArrowRight') {\n this.imageIndex += 1\n }\n this.imageIndex %= this.imgs.length\n\n if (this.imageIndex < 0) {\n this.imageIndex = this.imgs.length + this.imageIndex\n }\n handled = true\n } else if (e.key === 'Escape') {\n this.imageIndex = null\n handled = true\n }\n\n if (handled === true) {\n e.preventDefault()\n e.stopImmediatePropagation()\n return false\n }\n }\n }\n\n /**\n * Adds Custom drawing logic for nodes\n * e.g. Draws images and handles thumbnail navigation on nodes that output images\n * @param {*} node The node to add the draw handler\n */\n #addDrawBackgroundHandler(node) {\n const app = this\n\n function getImageTop(node) {\n let shiftY\n if (node.imageOffset != null) {\n shiftY = node.imageOffset\n } else {\n if (node.widgets?.length) {\n const w = node.widgets[node.widgets.length - 1]\n shiftY = w.last_y\n if (w.computeSize) {\n shiftY += w.computeSize()[1] + 4\n } else if (w.computedHeight) {\n shiftY += w.computedHeight\n } else {\n shiftY += LiteGraph.NODE_WIDGET_HEIGHT + 4\n }\n } else {\n shiftY = node.computeSize()[1]\n }\n }\n return shiftY\n }\n\n node.prototype.setSizeForImage = function (force) {\n if (!force && this.animatedImages) return\n\n if (this.inputHeight || this.freeWidgetSpace > 210) {\n this.setSize(this.size)\n return\n }\n const minHeight = getImageTop(this) + 220\n if (this.size[1] < minHeight) {\n this.setSize([this.size[0], minHeight])\n }\n }\n\n function unsafeDrawBackground(ctx) {\n if (!this.flags.collapsed) {\n let imgURLs = []\n let imagesChanged = false\n\n const output = app.nodeOutputs[this.id + '']\n if (output?.images) {\n this.animatedImages = output?.animated?.find(Boolean)\n if (this.images !== output.images) {\n this.images = output.images\n imagesChanged = true\n imgURLs = imgURLs.concat(\n output.images.map((params) => {\n return api.apiURL(\n '/view?' +\n new URLSearchParams(params).toString() +\n (this.animatedImages ? '' : app.getPreviewFormatParam()) +\n app.getRandParam()\n )\n })\n )\n }\n }\n\n const preview = app.nodePreviewImages[this.id + '']\n if (this.preview !== preview) {\n this.preview = preview\n imagesChanged = true\n if (preview != null) {\n imgURLs.push(preview)\n }\n }\n\n if (imagesChanged) {\n this.imageIndex = null\n if (imgURLs.length > 0) {\n Promise.all(\n imgURLs.map((src) => {\n return new Promise((r) => {\n const img = new Image()\n img.onload = () => r(img)\n img.onerror = () => r(null)\n img.src = src\n })\n })\n ).then((imgs) => {\n if (\n (!output || this.images === output.images) &&\n (!preview || this.preview === preview)\n ) {\n this.imgs = imgs.filter(Boolean)\n this.setSizeForImage?.()\n app.graph.setDirtyCanvas(true)\n }\n })\n } else {\n this.imgs = null\n }\n }\n\n const is_all_same_aspect_ratio = (imgs) => {\n // assume: imgs.length >= 2\n let ratio = imgs[0].naturalWidth / imgs[0].naturalHeight\n\n for (let i = 1; i < imgs.length; i++) {\n let this_ratio = imgs[i].naturalWidth / imgs[i].naturalHeight\n if (ratio != this_ratio) return false\n }\n\n return true\n }\n\n if (this.imgs?.length) {\n const widgetIdx = this.widgets?.findIndex(\n (w) => w.name === ANIM_PREVIEW_WIDGET\n )\n\n if (this.animatedImages) {\n // Instead of using the canvas we'll use a IMG\n if (widgetIdx > -1) {\n // Replace content\n const widget = this.widgets[widgetIdx]\n widget.options.host.updateImages(this.imgs)\n } else {\n const host = createImageHost(this)\n this.setSizeForImage(true)\n const widget = this.addDOMWidget(\n ANIM_PREVIEW_WIDGET,\n 'img',\n host.el,\n {\n host,\n getHeight: host.getHeight,\n onDraw: host.onDraw,\n hideOnZoom: false\n }\n )\n widget.serializeValue = () => undefined\n widget.options.host.updateImages(this.imgs)\n }\n return\n }\n\n if (widgetIdx > -1) {\n this.widgets[widgetIdx].onRemove?.()\n this.widgets.splice(widgetIdx, 1)\n }\n\n const canvas = app.graph.list_of_graphcanvas[0]\n const mouse = canvas.graph_mouse\n if (!canvas.pointer_is_down && this.pointerDown) {\n if (\n mouse[0] === this.pointerDown.pos[0] &&\n mouse[1] === this.pointerDown.pos[1]\n ) {\n this.imageIndex = this.pointerDown.index\n }\n this.pointerDown = null\n }\n\n let imageIndex = this.imageIndex\n const numImages = this.imgs.length\n if (numImages === 1 && !imageIndex) {\n this.imageIndex = imageIndex = 0\n }\n\n const top = getImageTop(this)\n var shiftY = top\n\n let dw = this.size[0]\n let dh = this.size[1]\n dh -= shiftY\n\n if (imageIndex == null) {\n var cellWidth, cellHeight, shiftX, cell_padding, cols\n\n const compact_mode = is_all_same_aspect_ratio(this.imgs)\n if (!compact_mode) {\n // use rectangle cell style and border line\n cell_padding = 2\n // Prevent infinite canvas2d scale-up\n const largestDimension = this.imgs.reduce(\n (acc, current) =>\n Math.max(acc, current.naturalWidth, current.naturalHeight),\n 0\n )\n const fakeImgs = []\n fakeImgs.length = this.imgs.length\n fakeImgs[0] = {\n naturalWidth: largestDimension,\n naturalHeight: largestDimension\n }\n ;({ cellWidth, cellHeight, cols, shiftX } = calculateImageGrid(\n fakeImgs,\n dw,\n dh\n ))\n } else {\n cell_padding = 0\n ;({ cellWidth, cellHeight, cols, shiftX } = calculateImageGrid(\n this.imgs,\n dw,\n dh\n ))\n }\n\n let anyHovered = false\n this.imageRects = []\n for (let i = 0; i < numImages; i++) {\n const img = this.imgs[i]\n const row = Math.floor(i / cols)\n const col = i % cols\n const x = col * cellWidth + shiftX\n const y = row * cellHeight + shiftY\n if (!anyHovered) {\n anyHovered = LiteGraph.isInsideRectangle(\n mouse[0],\n mouse[1],\n x + this.pos[0],\n y + this.pos[1],\n cellWidth,\n cellHeight\n )\n if (anyHovered) {\n this.overIndex = i\n let value = 110\n if (canvas.pointer_is_down) {\n if (!this.pointerDown || this.pointerDown.index !== i) {\n this.pointerDown = { index: i, pos: [...mouse] }\n }\n value = 125\n }\n ctx.filter = `contrast(${value}%) brightness(${value}%)`\n canvas.canvas.style.cursor = 'pointer'\n }\n }\n this.imageRects.push([x, y, cellWidth, cellHeight])\n\n let wratio = cellWidth / img.width\n let hratio = cellHeight / img.height\n var ratio = Math.min(wratio, hratio)\n\n let imgHeight = ratio * img.height\n let imgY =\n row * cellHeight + shiftY + (cellHeight - imgHeight) / 2\n let imgWidth = ratio * img.width\n let imgX = col * cellWidth + shiftX + (cellWidth - imgWidth) / 2\n\n ctx.drawImage(\n img,\n imgX + cell_padding,\n imgY + cell_padding,\n imgWidth - cell_padding * 2,\n imgHeight - cell_padding * 2\n )\n if (!compact_mode) {\n // rectangle cell and border line style\n ctx.strokeStyle = '#8F8F8F'\n ctx.lineWidth = 1\n ctx.strokeRect(\n x + cell_padding,\n y + cell_padding,\n cellWidth - cell_padding * 2,\n cellHeight - cell_padding * 2\n )\n }\n\n ctx.filter = 'none'\n }\n\n if (!anyHovered) {\n this.pointerDown = null\n this.overIndex = null\n }\n } else {\n // Draw individual\n let w = this.imgs[imageIndex].naturalWidth\n let h = this.imgs[imageIndex].naturalHeight\n\n const scaleX = dw / w\n const scaleY = dh / h\n const scale = Math.min(scaleX, scaleY, 1)\n\n w *= scale\n h *= scale\n\n let x = (dw - w) / 2\n let y = (dh - h) / 2 + shiftY\n ctx.drawImage(this.imgs[imageIndex], x, y, w, h)\n\n const drawButton = (x, y, sz, text) => {\n const hovered = LiteGraph.isInsideRectangle(\n mouse[0],\n mouse[1],\n x + this.pos[0],\n y + this.pos[1],\n sz,\n sz\n )\n let fill = '#333'\n let textFill = '#fff'\n let isClicking = false\n if (hovered) {\n canvas.canvas.style.cursor = 'pointer'\n if (canvas.pointer_is_down) {\n fill = '#1e90ff'\n isClicking = true\n } else {\n fill = '#eee'\n textFill = '#000'\n }\n } else {\n this.pointerWasDown = null\n }\n\n ctx.fillStyle = fill\n ctx.beginPath()\n ctx.roundRect(x, y, sz, sz, [4])\n ctx.fill()\n ctx.fillStyle = textFill\n ctx.font = '12px Arial'\n ctx.textAlign = 'center'\n ctx.fillText(text, x + 15, y + 20)\n\n return isClicking\n }\n\n if (numImages > 1) {\n if (\n drawButton(\n dw - 40,\n dh + top - 40,\n 30,\n `${this.imageIndex + 1}/${numImages}`\n )\n ) {\n let i =\n this.imageIndex + 1 >= numImages ? 0 : this.imageIndex + 1\n if (!this.pointerDown || !this.pointerDown.index === i) {\n this.pointerDown = { index: i, pos: [...mouse] }\n }\n }\n\n if (drawButton(dw - 40, top + 10, 30, `x`)) {\n if (!this.pointerDown || !this.pointerDown.index === null) {\n this.pointerDown = { index: null, pos: [...mouse] }\n }\n }\n }\n }\n }\n }\n }\n\n node.prototype.onDrawBackground = function (ctx) {\n try {\n unsafeDrawBackground.call(this, ctx)\n } catch (error) {\n console.error('Error drawing node background', error)\n }\n }\n }\n\n /**\n * Adds a handler allowing drag+drop of files onto the window to load workflows\n */\n #addDropHandler() {\n // Get prompt from dropped PNG or json\n document.addEventListener('drop', async (event) => {\n event.preventDefault()\n event.stopPropagation()\n\n const n = this.dragOverNode\n this.dragOverNode = null\n // Node handles file drop, we dont use the built in onDropFile handler as its buggy\n // If you drag multiple files it will call it multiple times with the same file\n // @ts-expect-error This is not a standard event. TODO fix it.\n if (n && n.onDragDrop && (await n.onDragDrop(event))) {\n return\n }\n // Dragging from Chrome->Firefox there is a file but its a bmp, so ignore that\n if (\n event.dataTransfer.files.length &&\n event.dataTransfer.files[0].type !== 'image/bmp'\n ) {\n await this.handleFile(event.dataTransfer.files[0])\n } else {\n // Try loading the first URI in the transfer list\n const validTypes = ['text/uri-list', 'text/x-moz-url']\n const match = [...event.dataTransfer.types].find((t) =>\n validTypes.find((v) => t === v)\n )\n if (match) {\n const uri = event.dataTransfer.getData(match)?.split('\\n')?.[0]\n if (uri) {\n await this.handleFile(await (await fetch(uri)).blob())\n }\n }\n }\n })\n\n // Always clear over node on drag leave\n this.canvasEl.addEventListener('dragleave', async () => {\n if (this.dragOverNode) {\n this.dragOverNode = null\n this.graph.setDirtyCanvas(false, true)\n }\n })\n\n // Add handler for dropping onto a specific node\n this.canvasEl.addEventListener(\n 'dragover',\n (e) => {\n this.canvas.adjustMouseEvent(e)\n const node = this.graph.getNodeOnPos(e.canvasX, e.canvasY)\n if (node) {\n // @ts-expect-error This is not a standard event. TODO fix it.\n if (node.onDragOver && node.onDragOver(e)) {\n this.dragOverNode = node\n\n // dragover event is fired very frequently, run this on an animation frame\n requestAnimationFrame(() => {\n this.graph.setDirtyCanvas(false, true)\n })\n return\n }\n }\n this.dragOverNode = null\n },\n false\n )\n }\n\n /**\n * Adds a handler on paste that extracts and loads images or workflows from pasted JSON data\n */\n #addPasteHandler() {\n document.addEventListener('paste', async (e: ClipboardEvent) => {\n // ctrl+shift+v is used to paste nodes with connections\n // this is handled by litegraph\n if (this.shiftDown) return\n\n // @ts-expect-error: Property 'clipboardData' does not exist on type 'Window & typeof globalThis'.\n // Did you mean 'Clipboard'?ts(2551)\n // TODO: Not sure what the code wants to do.\n let data = e.clipboardData || window.clipboardData\n const items = data.items\n\n // Look for image paste data\n for (const item of items) {\n if (item.type.startsWith('image/')) {\n var imageNode = null\n\n // If an image node is selected, paste into it\n if (\n this.canvas.current_node &&\n this.canvas.current_node.is_selected &&\n ComfyApp.isImageNode(this.canvas.current_node)\n ) {\n imageNode = this.canvas.current_node\n }\n\n // No image node selected: add a new one\n if (!imageNode) {\n const newNode = LiteGraph.createNode('LoadImage')\n // @ts-expect-error array to Float32Array\n newNode.pos = [...this.canvas.graph_mouse]\n imageNode = this.graph.add(newNode)\n this.graph.change()\n }\n const blob = item.getAsFile()\n imageNode.pasteFile(blob)\n return\n }\n }\n\n // No image found. Look for node data\n data = data.getData('text/plain')\n let workflow: ComfyWorkflowJSON | null = null\n try {\n data = data.slice(data.indexOf('{'))\n workflow = JSON.parse(data)\n } catch (err) {\n try {\n data = data.slice(data.indexOf('workflow\\n'))\n data = data.slice(data.indexOf('{'))\n workflow = JSON.parse(data)\n } catch (error) {\n workflow = null\n }\n }\n\n if (workflow && workflow.version && workflow.nodes && workflow.extra) {\n await this.loadGraphData(workflow)\n } else {\n if (\n (e.target instanceof HTMLTextAreaElement &&\n e.target.type === 'textarea') ||\n (e.target instanceof HTMLInputElement && e.target.type === 'text')\n ) {\n return\n }\n\n // Litegraph default paste\n this.canvas.pasteFromClipboard()\n }\n })\n }\n\n /**\n * Adds a handler on copy that serializes selected nodes to JSON\n */\n #addCopyHandler() {\n document.addEventListener('copy', (e) => {\n if (!(e.target instanceof Element)) {\n return\n }\n if (\n (e.target instanceof HTMLTextAreaElement &&\n e.target.type === 'textarea') ||\n (e.target instanceof HTMLInputElement && e.target.type === 'text')\n ) {\n // Default system copy\n return\n }\n const isTargetInGraph =\n e.target.classList.contains('litegraph') ||\n e.target.classList.contains('graph-canvas-container')\n\n // copy nodes and clear clipboard\n if (isTargetInGraph && this.canvas.selected_nodes) {\n this.canvas.copyToClipboard()\n e.clipboardData.setData('text', ' ') //clearData doesn't remove images from clipboard\n e.preventDefault()\n e.stopImmediatePropagation()\n return false\n }\n })\n }\n\n /**\n * Handle mouse\n *\n * Move group by header\n */\n #addProcessMouseHandler() {\n const self = this\n\n const origProcessMouseDown = LGraphCanvas.prototype.processMouseDown\n LGraphCanvas.prototype.processMouseDown = function (e) {\n // prepare for ctrl+shift drag: zoom start\n const useFastZoom = useSettingStore().get('Comfy.Graph.CtrlShiftZoom')\n if (useFastZoom && e.ctrlKey && e.shiftKey && !e.altKey && e.buttons) {\n self.zoom_drag_start = [e.x, e.y, this.ds.scale]\n return\n }\n\n const res = origProcessMouseDown.apply(this, arguments)\n return res\n }\n const origProcessMouseMove = LGraphCanvas.prototype.processMouseMove\n LGraphCanvas.prototype.processMouseMove = function (e) {\n // handle ctrl+shift drag\n if (e.ctrlKey && e.shiftKey && self.zoom_drag_start) {\n // stop canvas zoom action\n if (!e.buttons) {\n self.zoom_drag_start = null\n return\n }\n\n // calculate delta\n let deltaY = e.y - self.zoom_drag_start[1]\n let startScale = self.zoom_drag_start[2]\n\n let scale = startScale - deltaY / 100\n\n this.ds.changeScale(scale, [\n self.zoom_drag_start[0],\n self.zoom_drag_start[1]\n ])\n this.graph.change()\n\n return\n }\n\n return origProcessMouseMove.apply(this, arguments)\n }\n }\n\n /**\n * Handle keypress\n */\n #addProcessKeyHandler() {\n const origProcessKey = LGraphCanvas.prototype.processKey\n LGraphCanvas.prototype.processKey = function (e: KeyboardEvent) {\n if (!this.graph) {\n return\n }\n\n var block_default = false\n\n if (e.target instanceof Element && e.target.localName == 'input') {\n return\n }\n\n if (e.type == 'keydown' && !e.repeat) {\n const keyCombo = KeyComboImpl.fromEvent(e)\n const keybindingStore = useKeybindingStore()\n const keybinding = keybindingStore.getKeybinding(keyCombo)\n if (keybinding && keybinding.targetSelector === '#graph-canvas') {\n useCommandStore().execute(keybinding.commandId)\n block_default = true\n }\n\n // Ctrl+C Copy\n if (e.key === 'c' && (e.metaKey || e.ctrlKey)) {\n // Trigger onCopy\n return true\n }\n\n // Ctrl+V Paste\n if (\n (e.key === 'v' || e.key == 'V') &&\n (e.metaKey || e.ctrlKey) &&\n !e.shiftKey\n ) {\n // Trigger onPaste\n return true\n }\n }\n\n this.graph.change()\n\n if (block_default) {\n e.preventDefault()\n e.stopImmediatePropagation()\n return false\n }\n\n // Fall through to Litegraph defaults\n return origProcessKey.apply(this, arguments)\n }\n }\n\n /**\n * Draws group header bar\n */\n #addDrawGroupsHandler() {\n const self = this\n const origDrawGroups = LGraphCanvas.prototype.drawGroups\n LGraphCanvas.prototype.drawGroups = function (canvas, ctx) {\n if (!this.graph) {\n return\n }\n\n var groups = this.graph.groups\n\n ctx.save()\n ctx.globalAlpha = 0.7 * this.editor_alpha\n\n for (var i = 0; i < groups.length; ++i) {\n var group = groups[i]\n\n if (!LiteGraph.overlapBounding(this.visible_area, group._bounding)) {\n continue\n } //out of the visible area\n\n ctx.fillStyle = group.color || '#335'\n ctx.strokeStyle = group.color || '#335'\n var pos = group._pos\n var size = group._size\n ctx.globalAlpha = 0.25 * this.editor_alpha\n ctx.beginPath()\n var font_size = group.font_size || LiteGraph.DEFAULT_GROUP_FONT_SIZE\n ctx.rect(pos[0] + 0.5, pos[1] + 0.5, size[0], font_size * 1.4)\n ctx.fill()\n ctx.globalAlpha = this.editor_alpha\n }\n\n ctx.restore()\n\n const res = origDrawGroups.apply(this, arguments)\n return res\n }\n }\n\n /**\n * Draws node highlights (executing, drag drop) and progress bar\n */\n #addDrawNodeHandler() {\n const origDrawNodeShape = LGraphCanvas.prototype.drawNodeShape\n const self = this\n LGraphCanvas.prototype.drawNodeShape = function (\n node,\n ctx,\n size,\n fgcolor,\n bgcolor,\n selected\n ) {\n const res = origDrawNodeShape.apply(this, arguments)\n\n const nodeErrors = self.lastNodeErrors?.[node.id]\n\n let color = null\n let lineWidth = 1\n if (node.id === +self.runningNodeId) {\n color = '#0f0'\n } else if (self.dragOverNode && node.id === self.dragOverNode.id) {\n color = 'dodgerblue'\n } else if (nodeErrors?.errors) {\n color = 'red'\n lineWidth = 2\n } else if (\n self.lastExecutionError &&\n +self.lastExecutionError.node_id === node.id\n ) {\n color = '#f0f'\n lineWidth = 2\n }\n\n if (color) {\n const shape =\n node._shape || node.constructor.shape || LiteGraph.ROUND_SHAPE\n ctx.lineWidth = lineWidth\n ctx.globalAlpha = 0.8\n ctx.beginPath()\n if (shape == LiteGraph.BOX_SHAPE)\n ctx.rect(\n -6,\n -6 - LiteGraph.NODE_TITLE_HEIGHT,\n 12 + size[0] + 1,\n 12 + size[1] + LiteGraph.NODE_TITLE_HEIGHT\n )\n else if (\n shape == LiteGraph.ROUND_SHAPE ||\n (shape == LiteGraph.CARD_SHAPE && node.flags.collapsed)\n )\n ctx.roundRect(\n -6,\n -6 - LiteGraph.NODE_TITLE_HEIGHT,\n 12 + size[0] + 1,\n 12 + size[1] + LiteGraph.NODE_TITLE_HEIGHT,\n this.round_radius * 2\n )\n else if (shape == LiteGraph.CARD_SHAPE)\n ctx.roundRect(\n -6,\n -6 - LiteGraph.NODE_TITLE_HEIGHT,\n 12 + size[0] + 1,\n 12 + size[1] + LiteGraph.NODE_TITLE_HEIGHT,\n [this.round_radius * 2, this.round_radius * 2, 2, 2]\n )\n else if (shape == LiteGraph.CIRCLE_SHAPE)\n ctx.arc(\n size[0] * 0.5,\n size[1] * 0.5,\n size[0] * 0.5 + 6,\n 0,\n Math.PI * 2\n )\n ctx.strokeStyle = color\n ctx.stroke()\n ctx.strokeStyle = fgcolor\n ctx.globalAlpha = 1\n }\n\n if (self.progress && node.id === +self.runningNodeId) {\n ctx.fillStyle = 'green'\n ctx.fillRect(\n 0,\n 0,\n size[0] * (self.progress.value / self.progress.max),\n 6\n )\n ctx.fillStyle = bgcolor\n }\n\n // Highlight inputs that failed validation\n if (nodeErrors) {\n ctx.lineWidth = 2\n ctx.strokeStyle = 'red'\n for (const error of nodeErrors.errors) {\n if (error.extra_info && error.extra_info.input_name) {\n const inputIndex = node.findInputSlot(error.extra_info.input_name)\n if (inputIndex !== -1) {\n let pos = node.getConnectionPos(true, inputIndex)\n ctx.beginPath()\n ctx.arc(\n pos[0] - node.pos[0],\n pos[1] - node.pos[1],\n 12,\n 0,\n 2 * Math.PI,\n false\n )\n ctx.stroke()\n }\n }\n }\n }\n\n return res\n }\n\n const origDrawNode = LGraphCanvas.prototype.drawNode\n LGraphCanvas.prototype.drawNode = function (node, ctx) {\n const editor_alpha = this.editor_alpha\n const old_color = node.color\n const old_bgcolor = node.bgcolor\n\n if (node.mode === LGraphEventMode.NEVER) {\n this.editor_alpha = 0.4\n }\n\n let bgColor: string\n if (node.mode === LGraphEventMode.BYPASS) {\n bgColor = app.bypassBgColor\n this.editor_alpha = 0.2\n } else {\n bgColor = old_bgcolor || LiteGraph.NODE_DEFAULT_BGCOLOR\n }\n\n const adjustments: ColorAdjustOptions = {}\n\n const opacity = useSettingStore().get('Comfy.Node.Opacity')\n if (opacity) adjustments.opacity = opacity\n\n if (useSettingStore().get('Comfy.ColorPalette') === 'light') {\n adjustments.lightness = 0.5\n\n // Lighten title bar of colored nodes on light theme\n if (old_color) {\n node.color = adjustColor(old_color, { lightness: 0.5 })\n }\n }\n\n node.bgcolor = adjustColor(bgColor, adjustments)\n\n const res = origDrawNode.apply(this, arguments)\n\n this.editor_alpha = editor_alpha\n node.color = old_color\n node.bgcolor = old_bgcolor\n\n return res\n }\n }\n\n /**\n * Handles updates from the API socket\n */\n #addApiUpdateHandlers() {\n api.addEventListener('status', ({ detail }) => {\n this.ui.setStatus(detail)\n })\n\n api.addEventListener('progress', ({ detail }) => {\n this.progress = detail\n this.graph.setDirtyCanvas(true, false)\n })\n\n api.addEventListener('executing', ({ detail }) => {\n this.progress = null\n this.graph.setDirtyCanvas(true, false)\n delete this.nodePreviewImages[this.runningNodeId]\n })\n\n api.addEventListener('executed', ({ detail }) => {\n const output = this.nodeOutputs[detail.display_node || detail.node]\n if (detail.merge && output) {\n for (const k in detail.output ?? {}) {\n const v = output[k]\n if (v instanceof Array) {\n output[k] = v.concat(detail.output[k])\n } else {\n output[k] = detail.output[k]\n }\n }\n } else {\n this.nodeOutputs[detail.display_node || detail.node] = detail.output\n }\n const node = this.graph.getNodeById(detail.display_node || detail.node)\n if (node) {\n if (node.onExecuted) node.onExecuted(detail.output)\n }\n })\n\n api.addEventListener('execution_start', ({ detail }) => {\n this.lastExecutionError = null\n this.graph.nodes.forEach((node) => {\n if (node.onExecutionStart) node.onExecutionStart()\n })\n })\n\n api.addEventListener('execution_error', ({ detail }) => {\n this.lastExecutionError = detail\n showExecutionErrorDialog(detail)\n this.canvas.draw(true, true)\n })\n\n api.addEventListener('b_preview', ({ detail }) => {\n const id = this.runningNodeId\n if (id == null) return\n\n const blob = detail\n const blobUrl = URL.createObjectURL(blob)\n // @ts-expect-error\n this.nodePreviewImages[id] = [blobUrl]\n })\n\n api.init()\n }\n\n #addConfigureHandler() {\n const app = this\n const configure = LGraph.prototype.configure\n // Flag that the graph is configuring to prevent nodes from running checks while its still loading\n LGraph.prototype.configure = function () {\n app.configuringGraph = true\n try {\n return configure.apply(this, arguments)\n } finally {\n app.configuringGraph = false\n }\n }\n }\n\n #addWidgetLinkHandling() {\n app.canvas.getWidgetLinkType = function (widget, node) {\n const nodeDefStore = useNodeDefStore()\n const nodeDef = nodeDefStore.nodeDefsByName[node.type]\n const input = nodeDef.inputs.getInput(widget.name)\n return input?.type\n }\n\n type ConnectingWidgetLink = {\n subType: 'connectingWidgetLink'\n widget: IWidget\n node: LGraphNode\n link: { node: LGraphNode; slot: number }\n }\n\n document.addEventListener(\n 'litegraph:canvas',\n async (e: CustomEvent) => {\n if (e.detail.subType === 'connectingWidgetLink') {\n const { convertToInput } = await import(\n '@/extensions/core/widgetInputs'\n )\n\n const { node, link, widget } = e.detail\n if (!node || !link || !widget) return\n\n const nodeData = node.constructor.nodeData\n if (!nodeData) return\n const all = {\n ...nodeData?.input?.required,\n ...nodeData?.input?.optional\n }\n const inputSpec = all[widget.name]\n if (!inputSpec) return\n\n const input = convertToInput(node, widget, inputSpec)\n if (!input) return\n\n const originNode = link.node\n\n originNode.connect(link.slot, node, node.inputs.lastIndexOf(input))\n }\n }\n )\n }\n\n #addAfterConfigureHandler() {\n const app = this\n const onConfigure = app.graph.onConfigure\n app.graph.onConfigure = function () {\n // Fire callbacks before the onConfigure, this is used by widget inputs to setup the config\n for (const node of app.graph.nodes) {\n node.onGraphConfigured?.()\n }\n\n const r = onConfigure?.apply(this, arguments)\n\n // Fire after onConfigure, used by primitives to generate widget using input nodes config\n for (const node of app.graph.nodes) {\n node.onAfterGraphConfigured?.()\n }\n\n return r\n }\n }\n\n /**\n * Loads all extensions from the API into the window in parallel\n */\n async #loadExtensions() {\n useExtensionStore().loadDisabledExtensionNames()\n\n const extensions = await api.getExtensions()\n\n // Need to load core extensions first as some custom extensions\n // may depend on them.\n await import('../extensions/core/index')\n await Promise.all(\n extensions\n .filter((extension) => !extension.includes('extensions/core'))\n .map(async (ext) => {\n try {\n await import(/* @vite-ignore */ api.fileURL(ext))\n } catch (error) {\n console.error('Error loading extension', ext, error)\n }\n })\n )\n }\n\n /**\n * Set up the app on the page\n */\n async setup(canvasEl: HTMLCanvasElement) {\n this.canvasEl = canvasEl\n // Show menu container for GraphView.\n this.ui.menuContainer.style.display = 'block'\n\n this.resizeCanvas()\n\n await Promise.all([\n useWorkspaceStore().workflow.syncWorkflows(),\n this.ui.settings.load()\n ])\n await this.#loadExtensions()\n\n this.#addProcessMouseHandler()\n this.#addProcessKeyHandler()\n this.#addConfigureHandler()\n this.#addApiUpdateHandlers()\n this.#addRestoreWorkflowView()\n\n this.graph = new LGraph()\n\n this.#addAfterConfigureHandler()\n\n // Make LGraphCanvas.state shallow reactive so that any change on the root\n // object triggers reactivity.\n this.canvas = new LGraphCanvas(canvasEl, this.graph)\n this.canvas.state = shallowReactive(this.canvas.state)\n\n this.ctx = canvasEl.getContext('2d')\n\n LiteGraph.alt_drag_do_clone_nodes = true\n\n this.graph.start()\n\n // Ensure the canvas fills the window\n this.resizeCanvas()\n window.addEventListener('resize', () => this.resizeCanvas())\n const ro = new ResizeObserver(() => this.resizeCanvas())\n ro.observe(this.bodyTop)\n ro.observe(this.bodyLeft)\n ro.observe(this.bodyRight)\n ro.observe(this.bodyBottom)\n\n await this.#invokeExtensionsAsync('init')\n await this.registerNodes()\n initWidgets(this)\n\n // Load previous workflow\n let restored = false\n try {\n const loadWorkflow = async (json) => {\n if (json) {\n const workflow = JSON.parse(json)\n const workflowName = getStorageValue('Comfy.PreviousWorkflow')\n await this.loadGraphData(workflow, true, true, workflowName)\n return true\n }\n }\n const clientId = api.initialClientId ?? api.clientId\n restored =\n (clientId &&\n (await loadWorkflow(\n sessionStorage.getItem(`workflow:${clientId}`)\n ))) ||\n (await loadWorkflow(localStorage.getItem('workflow')))\n } catch (err) {\n console.error('Error loading previous workflow', err)\n }\n\n // We failed to restore a workflow so load the default\n if (!restored) {\n await this.loadGraphData()\n }\n\n this.#addDrawNodeHandler()\n this.#addDrawGroupsHandler()\n this.#addDropHandler()\n this.#addCopyHandler()\n this.#addPasteHandler()\n this.#addWidgetLinkHandling()\n\n await this.#invokeExtensionsAsync('setup')\n }\n\n resizeCanvas() {\n // Limit minimal scale to 1, see https://github.com/comfyanonymous/ComfyUI/pull/845\n const scale = Math.max(window.devicePixelRatio, 1)\n\n // Clear fixed width and height while calculating rect so it uses 100% instead\n this.canvasEl.height = this.canvasEl.width = NaN\n const { width, height } = this.canvasEl.getBoundingClientRect()\n this.canvasEl.width = Math.round(width * scale)\n this.canvasEl.height = Math.round(height * scale)\n this.canvasEl.getContext('2d').scale(scale, scale)\n this.canvas?.draw(true, true)\n }\n\n private updateVueAppNodeDefs(defs: Record) {\n // Frontend only nodes registered by custom nodes.\n // Example: https://github.com/rgthree/rgthree-comfy/blob/dd534e5384be8cf0c0fa35865afe2126ba75ac55/src_web/comfyui/fast_groups_bypasser.ts#L10\n const rawDefs = Object.fromEntries(\n Object.entries(LiteGraph.registered_node_types).map(([name, node]) => [\n name,\n {\n name,\n display_name: name,\n category: node.category || '__frontend_only__',\n input: { required: {}, optional: {} },\n output: [],\n output_name: [],\n output_is_list: [],\n python_module: 'custom_nodes.frontend_only',\n description: `Frontend only node for ${name}`\n }\n ])\n )\n\n const allNodeDefs = {\n ...rawDefs,\n ...defs,\n ...SYSTEM_NODE_DEFS\n }\n\n const nodeDefStore = useNodeDefStore()\n const nodeDefArray: ComfyNodeDef[] = Object.values(allNodeDefs)\n this.#invokeExtensions('beforeRegisterVueAppNodeDefs', nodeDefArray, this)\n nodeDefStore.updateNodeDefs(nodeDefArray)\n }\n\n #translateNodeDefs(defs: Record) {\n return Object.fromEntries(\n Object.entries(defs).map(([name, def]) => [\n name,\n {\n ...def,\n display_name: st(\n `nodeDefs.${name}.display_name`,\n def.display_name ?? def.name\n ),\n description: def.description\n ? st(`nodeDefs.${name}.description`, def.description)\n : undefined,\n category: def.category\n .split('/')\n .map((category) => st(`nodeCategories.${category}`, category))\n .join('/')\n }\n ])\n )\n }\n\n async #getNodeDefs() {\n return this.#translateNodeDefs(\n await api.getNodeDefs({\n validate: useSettingStore().get('Comfy.Validation.NodeDefs')\n })\n )\n }\n\n /**\n * Registers nodes with the graph\n */\n async registerNodes() {\n // Load node definitions from the backend\n const defs = await this.#getNodeDefs()\n await this.registerNodesFromDefs(defs)\n await this.#invokeExtensionsAsync('registerCustomNodes')\n if (this.vueAppReady) {\n this.updateVueAppNodeDefs(defs)\n }\n }\n\n /**\n * Remove the impl after groupNode jest tests are removed.\n * @deprecated Use useWidgetStore().getWidgetType instead\n */\n getWidgetType(inputData, inputName: string) {\n const type = inputData[0]\n\n if (Array.isArray(type)) {\n return 'COMBO'\n } else if (`${type}:${inputName}` in this.widgets) {\n return `${type}:${inputName}`\n } else if (type in this.widgets) {\n return type\n } else {\n return null\n }\n }\n\n async registerNodeDef(nodeId: string, nodeData: ComfyNodeDef) {\n const self = this\n const node = class ComfyNode extends LGraphNode {\n static comfyClass? = nodeData.name\n // TODO: change to \"title?\" once litegraph.d.ts has been updated\n static title = nodeData.display_name || nodeData.name\n static nodeData? = nodeData\n static category?: string\n\n constructor(title?: string) {\n super(title)\n const requiredInputs = nodeData.input.required\n\n var inputs = nodeData['input']['required']\n if (nodeData['input']['optional'] != undefined) {\n inputs = Object.assign(\n {},\n nodeData['input']['required'],\n nodeData['input']['optional']\n )\n }\n const config: {\n minWidth: number\n minHeight: number\n widget?: IBaseWidget\n } = { minWidth: 1, minHeight: 1 }\n for (const inputName in inputs) {\n const _inputData = inputs[inputName]\n const type = _inputData[0]\n const options = _inputData[1] ?? {}\n const inputData = [type, options]\n const nameKey = `nodeDefs.${normalizeI18nKey(nodeData.name)}.inputs.${normalizeI18nKey(inputName)}.name`\n\n const inputIsRequired = requiredInputs && inputName in requiredInputs\n\n let widgetCreated = true\n const widgetType = self.getWidgetType(inputData, inputName)\n if (widgetType) {\n if (widgetType === 'COMBO') {\n Object.assign(\n config,\n self.widgets.COMBO(this, inputName, inputData, app) || {}\n )\n } else {\n Object.assign(\n config,\n self.widgets[widgetType](this, inputName, inputData, app) || {}\n )\n }\n if (config.widget) {\n config.widget.label = st(nameKey, inputName)\n }\n } else {\n // Node connection inputs\n const shapeOptions = inputIsRequired\n ? {}\n : { shape: LiteGraph.SlotShape.HollowCircle }\n const inputOptions = {\n ...shapeOptions,\n localized_name: st(nameKey, inputName)\n }\n this.addInput(inputName, type, inputOptions)\n widgetCreated = false\n }\n\n if (widgetCreated && config?.widget) {\n config.widget.options ??= {}\n if (!inputIsRequired) {\n config.widget.options.inputIsOptional = true\n }\n if (inputData[1]?.forceInput) {\n config.widget.options.forceInput = true\n }\n if (inputData[1]?.defaultInput) {\n config.widget.options.defaultInput = true\n }\n if (inputData[1]?.advanced) {\n config.widget.advanced = true\n }\n if (inputData[1]?.hidden) {\n config.widget.hidden = true\n }\n }\n }\n\n for (const o in nodeData['output']) {\n let output = nodeData['output'][o]\n if (output instanceof Array) output = 'COMBO'\n const outputName = nodeData['output_name'][o] || output\n const outputIsList = nodeData['output_is_list'][o]\n const shapeOptions = outputIsList\n ? { shape: LiteGraph.GRID_SHAPE }\n : {}\n const nameKey = `nodeDefs.${normalizeI18nKey(nodeData.name)}.outputs.${o}.name`\n const typeKey = `dataTypes.${normalizeI18nKey(output)}`\n const outputOptions = {\n ...shapeOptions,\n // If the output name is different from the output type, use the output name.\n // e.g.\n // - type (\"INT\"); name (\"Positive\") => translate name\n // - type (\"FLOAT\"); name (\"FLOAT\") => translate type\n localized_name:\n output !== outputName\n ? st(nameKey, outputName)\n : st(typeKey, outputName)\n }\n this.addOutput(outputName, output, outputOptions)\n }\n\n const s = this.computeSize()\n s[0] = Math.max(config.minWidth, s[0] * 1.5)\n s[1] = Math.max(config.minHeight, s[1])\n this.size = s\n this.serialize_widgets = true\n\n app.#invokeExtensionsAsync('nodeCreated', this)\n }\n\n configure(data: any) {\n // Keep 'name', 'type', 'shape', and 'localized_name' information from the original node definition.\n const merge = (\n current: Record,\n incoming: Record\n ) => {\n const result = { ...incoming }\n if (current.widget === undefined && incoming.widget !== undefined) {\n // Field must be input as only inputs can be converted\n this.inputs.push(current as INodeInputSlot)\n return incoming\n }\n for (const key of ['name', 'type', 'shape', 'localized_name']) {\n if (current[key] !== undefined) {\n result[key] = current[key]\n }\n }\n return result\n }\n for (const field of ['inputs', 'outputs']) {\n const slots = data[field] ?? []\n data[field] = slots.map((slot, i) =>\n merge(this[field][i] ?? {}, slot)\n )\n }\n super.configure(data)\n }\n }\n node.prototype.comfyClass = nodeData.name\n\n this.#addNodeContextMenuHandler(node)\n this.#addDrawBackgroundHandler(node)\n this.#addNodeKeyHandler(node)\n\n await this.#invokeExtensionsAsync('beforeRegisterNodeDef', node, nodeData)\n LiteGraph.registerNodeType(nodeId, node)\n // Note: Do not move this to the class definition, it will be overwritten\n node.category = nodeData.category\n }\n\n async registerNodesFromDefs(defs: Record) {\n await this.#invokeExtensionsAsync('addCustomNodeDefs', defs)\n\n // Register a node for each definition\n for (const nodeId in defs) {\n this.registerNodeDef(nodeId, defs[nodeId])\n }\n }\n\n loadTemplateData(templateData) {\n if (!templateData?.templates) {\n return\n }\n\n const old = localStorage.getItem('litegrapheditor_clipboard')\n\n var maxY, nodeBottom, node\n\n for (const template of templateData.templates) {\n if (!template?.data) {\n continue\n }\n\n // Check for old clipboard format\n const data = JSON.parse(template.data)\n if (!data.reroutes) {\n deserialiseAndCreate(template.data, app.canvas)\n } else {\n localStorage.setItem('litegrapheditor_clipboard', template.data)\n app.canvas.pasteFromClipboard()\n }\n\n // Move mouse position down to paste the next template below\n\n maxY = false\n\n for (const i in app.canvas.selected_nodes) {\n node = app.canvas.selected_nodes[i]\n\n nodeBottom = node.pos[1] + node.size[1]\n\n if (maxY === false || nodeBottom > maxY) {\n maxY = nodeBottom\n }\n }\n\n app.canvas.graph_mouse[1] = maxY + 50\n }\n\n localStorage.setItem('litegrapheditor_clipboard', old)\n }\n\n #showMissingNodesError(missingNodeTypes: MissingNodeType[]) {\n if (useSettingStore().get('Comfy.Workflow.ShowMissingNodesWarning')) {\n showLoadWorkflowWarning({ missingNodeTypes })\n }\n }\n\n #showMissingModelsError(missingModels, paths) {\n if (useSettingStore().get('Comfy.Workflow.ShowMissingModelsWarning')) {\n showMissingModelsWarning({\n missingModels,\n paths\n })\n }\n }\n\n async loadGraphData(\n graphData?: ComfyWorkflowJSON,\n clean: boolean = true,\n restore_view: boolean = true,\n workflow: string | null | ComfyWorkflow = null,\n { showMissingNodesDialog = true, showMissingModelsDialog = true } = {}\n ) {\n if (clean !== false) {\n this.clean()\n }\n\n let reset_invalid_values = false\n if (!graphData) {\n graphData = defaultGraph\n reset_invalid_values = true\n }\n\n if (typeof structuredClone === 'undefined') {\n graphData = JSON.parse(JSON.stringify(graphData))\n } else {\n graphData = structuredClone(graphData)\n }\n\n if (useSettingStore().get('Comfy.Validation.Workflows')) {\n // TODO: Show validation error in a dialog.\n const validatedGraphData = await validateComfyWorkflow(\n graphData,\n /* onError=*/ (err) => {\n useToastStore().addAlert(err)\n }\n )\n // If the validation failed, use the original graph data.\n // Ideally we should not block users from loading the workflow.\n graphData = validatedGraphData ?? graphData\n }\n\n workflowService.beforeLoadNewGraph()\n\n const missingNodeTypes: MissingNodeType[] = []\n const missingModels = []\n await this.#invokeExtensionsAsync(\n 'beforeConfigureGraph',\n graphData,\n missingNodeTypes\n // TODO: missingModels\n )\n for (let n of graphData.nodes) {\n // Patch T2IAdapterLoader to ControlNetLoader since they are the same node now\n if (n.type == 'T2IAdapterLoader') n.type = 'ControlNetLoader'\n if (n.type == 'ConditioningAverage ') n.type = 'ConditioningAverage' //typo fix\n if (n.type == 'SDV_img2vid_Conditioning')\n n.type = 'SVD_img2vid_Conditioning' //typo fix\n\n // Find missing node types\n if (!(n.type in LiteGraph.registered_node_types)) {\n missingNodeTypes.push(n.type)\n n.type = sanitizeNodeName(n.type)\n }\n }\n if (\n graphData.models &&\n useSettingStore().get('Comfy.Workflow.ShowMissingModelsWarning')\n ) {\n for (const m of graphData.models) {\n const models_available = await useModelStore().getLoadedModelFolder(\n m.directory\n )\n if (models_available === null) {\n // @ts-expect-error\n m.directory_invalid = true\n missingModels.push(m)\n } else if (!(m.name in models_available.models)) {\n missingModels.push(m)\n }\n }\n }\n\n try {\n // @ts-expect-error Discrepancies between zod and litegraph - in progress\n this.graph.configure(graphData)\n if (\n restore_view &&\n useSettingStore().get('Comfy.EnableWorkflowViewRestore') &&\n graphData.extra?.ds\n ) {\n // @ts-expect-error\n // Need to set strict: true for zod to match the type [number, number]\n // https://github.com/colinhacks/zod/issues/3056\n this.canvas.ds.offset = graphData.extra.ds.offset\n this.canvas.ds.scale = graphData.extra.ds.scale\n }\n } catch (error) {\n let errorHint = []\n // Try extracting filename to see if it was caused by an extension script\n const filename =\n error.fileName ||\n (error.stack || '').match(/(\\/extensions\\/.*\\.js)/)?.[1]\n const pos = (filename || '').indexOf('/extensions/')\n if (pos > -1) {\n errorHint.push(\n $el('span', {\n textContent: 'This may be due to the following script:'\n }),\n $el('br'),\n $el('span', {\n style: {\n fontWeight: 'bold'\n },\n textContent: filename.substring(pos)\n })\n )\n }\n\n // Show dialog to let the user know something went wrong loading the data\n this.ui.dialog.show(\n $el('div', [\n $el('p', {\n textContent: 'Loading aborted due to error reloading workflow data'\n }),\n $el('pre', {\n style: { padding: '5px', backgroundColor: 'rgba(255,0,0,0.2)' },\n textContent: error.toString()\n }),\n $el('pre', {\n style: {\n padding: '5px',\n color: '#ccc',\n fontSize: '10px',\n maxHeight: '50vh',\n overflow: 'auto',\n backgroundColor: 'rgba(0,0,0,0.2)'\n },\n textContent: error.stack || 'No stacktrace available'\n }),\n ...errorHint\n ]).outerHTML\n )\n\n return\n }\n for (const node of this.graph.nodes) {\n const size = node.computeSize()\n size[0] = Math.max(node.size[0], size[0])\n size[1] = Math.max(node.size[1], size[1])\n node.size = size\n if (node.widgets) {\n // If you break something in the backend and want to patch workflows in the frontend\n // This is the place to do this\n for (let widget of node.widgets) {\n if (node.type == 'KSampler' || node.type == 'KSamplerAdvanced') {\n if (widget.name == 'sampler_name') {\n if (\n typeof widget.value === 'string' &&\n widget.value.startsWith('sample_')\n ) {\n widget.value = widget.value.slice(7)\n }\n }\n }\n if (\n node.type == 'KSampler' ||\n node.type == 'KSamplerAdvanced' ||\n node.type == 'PrimitiveNode'\n ) {\n if (widget.name == 'control_after_generate') {\n if (widget.value === true) {\n // @ts-expect-error change widget type from boolean to string\n widget.value = 'randomize'\n } else if (widget.value === false) {\n // @ts-expect-error change widget type from boolean to string\n widget.value = 'fixed'\n }\n }\n }\n if (reset_invalid_values) {\n if (widget.type == 'combo') {\n if (\n !widget.options.values.includes(widget.value as string) &&\n widget.options.values.length > 0\n ) {\n widget.value = widget.options.values[0]\n }\n }\n }\n }\n }\n\n this.#invokeExtensions('loadedGraphNode', node)\n }\n\n // TODO: Properly handle if both nodes and models are missing (sequential dialogs?)\n if (missingNodeTypes.length && showMissingNodesDialog) {\n this.#showMissingNodesError(missingNodeTypes)\n }\n if (missingModels.length && showMissingModelsDialog) {\n const paths = await api.getFolderPaths()\n this.#showMissingModelsError(missingModels, paths)\n }\n await this.#invokeExtensionsAsync('afterConfigureGraph', missingNodeTypes)\n // @ts-expect-error zod types issue. Will be fixed after we enable ts-strict\n await workflowService.afterLoadNewGraph(workflow, this.graph.serialize())\n requestAnimationFrame(() => {\n this.graph.setDirtyCanvas(true, true)\n })\n }\n\n /**\n * Serializes a graph using preferred user settings.\n * @param graph The litegraph to serialize.\n * @returns A serialized graph (aka workflow) with preferred user settings.\n */\n serializeGraph(graph: LGraph = this.graph) {\n const sortNodes = useSettingStore().get('Comfy.Workflow.SortNodeIdOnSave')\n return graph.serialize({ sortNodes })\n }\n\n /**\n * Converts the current graph workflow for sending to the API.\n * Note: Node widgets are updated before serialization to prepare queueing.\n * @returns The workflow and node links\n */\n async graphToPrompt(graph = this.graph, clean = true) {\n for (const outerNode of this.graph.computeExecutionOrder(false)) {\n if (outerNode.widgets) {\n for (const widget of outerNode.widgets) {\n // Allow widgets to run callbacks before a prompt has been queued\n // e.g. random seed before every gen\n widget.beforeQueued?.()\n }\n }\n\n const innerNodes = outerNode.getInnerNodes\n ? outerNode.getInnerNodes()\n : [outerNode]\n for (const node of innerNodes) {\n if (node.isVirtualNode) {\n // Don't serialize frontend only nodes but let them make changes\n if (node.applyToGraph) {\n node.applyToGraph()\n }\n }\n }\n }\n\n const workflow = this.serializeGraph(graph)\n\n // Remove localized_name from the workflow\n for (const node of workflow.nodes) {\n for (const slot of node.inputs) {\n delete slot.localized_name\n }\n for (const slot of node.outputs) {\n delete slot.localized_name\n }\n }\n\n const output = {}\n // Process nodes in order of execution\n for (const outerNode of graph.computeExecutionOrder(false)) {\n const skipNode =\n outerNode.mode === LGraphEventMode.NEVER ||\n outerNode.mode === LGraphEventMode.BYPASS\n const innerNodes =\n !skipNode && outerNode.getInnerNodes\n ? outerNode.getInnerNodes()\n : [outerNode]\n for (const node of innerNodes) {\n if (node.isVirtualNode) {\n continue\n }\n\n if (\n node.mode === LGraphEventMode.NEVER ||\n node.mode === LGraphEventMode.BYPASS\n ) {\n // Don't serialize muted nodes\n continue\n }\n\n const inputs = {}\n const widgets = node.widgets\n\n // Store all widget values\n if (widgets) {\n for (const i in widgets) {\n const widget = widgets[i]\n if (!widget.options || widget.options.serialize !== false) {\n inputs[widget.name] = widget.serializeValue\n ? await widget.serializeValue(node, i)\n : widget.value\n }\n }\n }\n\n // Store all node links\n for (let i in node.inputs) {\n let parent = node.getInputNode(i)\n if (parent) {\n let link = node.getInputLink(i)\n while (\n parent.mode === LGraphEventMode.BYPASS ||\n parent.isVirtualNode\n ) {\n let found = false\n if (parent.isVirtualNode) {\n link = parent.getInputLink(link.origin_slot)\n if (link) {\n parent = parent.getInputNode(link.target_slot)\n if (parent) {\n found = true\n }\n }\n } else if (link && parent.mode === LGraphEventMode.BYPASS) {\n let all_inputs = [link.origin_slot]\n if (parent.inputs) {\n all_inputs = all_inputs.concat(Object.keys(parent.inputs))\n for (let parent_input in all_inputs) {\n parent_input = all_inputs[parent_input]\n if (\n parent.inputs[parent_input]?.type === node.inputs[i].type\n ) {\n link = parent.getInputLink(parent_input)\n if (link) {\n parent = parent.getInputNode(parent_input)\n }\n found = true\n break\n }\n }\n }\n }\n\n if (!found) {\n break\n }\n }\n\n if (link) {\n if (parent?.updateLink) {\n link = parent.updateLink(link)\n }\n if (link) {\n inputs[node.inputs[i].name] = [\n String(link.origin_id),\n parseInt(link.origin_slot)\n ]\n }\n }\n }\n }\n\n const node_data = {\n inputs,\n class_type: node.comfyClass\n }\n\n // Ignored by the backend.\n node_data['_meta'] = {\n title: node.title\n }\n\n output[String(node.id)] = node_data\n }\n }\n\n // Remove inputs connected to removed nodes\n if (clean) {\n for (const o in output) {\n for (const i in output[o].inputs) {\n if (\n Array.isArray(output[o].inputs[i]) &&\n output[o].inputs[i].length === 2 &&\n !output[output[o].inputs[i][0]]\n ) {\n delete output[o].inputs[i]\n }\n }\n }\n }\n\n return { workflow, output }\n }\n\n #formatPromptError(error) {\n if (error == null) {\n return '(unknown error)'\n } else if (typeof error === 'string') {\n return error\n } else if (error.stack && error.message) {\n return error.toString()\n } else if (error.response) {\n let message = error.response.error.message\n if (error.response.error.details)\n message += ': ' + error.response.error.details\n for (const [nodeID, nodeError] of Object.entries(\n error.response.node_errors\n )) {\n // @ts-expect-error\n message += '\\n' + nodeError.class_type + ':'\n // @ts-expect-error\n for (const errorReason of nodeError.errors) {\n message +=\n '\\n - ' + errorReason.message + ': ' + errorReason.details\n }\n }\n return message\n }\n return '(unknown error)'\n }\n\n async queuePrompt(number, batchCount = 1) {\n this.#queueItems.push({ number, batchCount })\n\n // Only have one action process the items so each one gets a unique seed correctly\n if (this.#processingQueue) {\n return\n }\n\n this.#processingQueue = true\n this.lastNodeErrors = null\n\n try {\n while (this.#queueItems.length) {\n ;({ number, batchCount } = this.#queueItems.pop())\n\n for (let i = 0; i < batchCount; i++) {\n const p = await this.graphToPrompt()\n\n try {\n // @ts-expect-error Discrepancies between zod and litegraph - in progress\n const res = await api.queuePrompt(number, p)\n this.lastNodeErrors = res.node_errors\n if (this.lastNodeErrors.length > 0) {\n this.canvas.draw(true, true)\n } else {\n try {\n useExecutionStore().storePrompt({\n id: res.prompt_id,\n nodes: Object.keys(p.output),\n workflow: useWorkspaceStore().workflow\n .activeWorkflow as ComfyWorkflow\n })\n } catch (error) {}\n }\n } catch (error) {\n const formattedError = this.#formatPromptError(error)\n this.ui.dialog.show(formattedError)\n if (error.response) {\n this.lastNodeErrors = error.response.node_errors\n this.canvas.draw(true, true)\n }\n break\n }\n\n for (const n of p.workflow.nodes) {\n const node = this.graph.getNodeById(n.id)\n if (node.widgets) {\n for (const widget of node.widgets) {\n // Allow widgets to run callbacks after a prompt has been queued\n // e.g. random seed after every gen\n // @ts-expect-error\n if (widget.afterQueued) {\n // @ts-expect-error\n widget.afterQueued()\n }\n }\n }\n }\n\n this.canvas.draw(true, true)\n await this.ui.queue.update()\n }\n }\n } finally {\n this.#processingQueue = false\n }\n api.dispatchCustomEvent('promptQueued', { number, batchCount })\n return !this.lastNodeErrors\n }\n\n showErrorOnFileLoad(file) {\n this.ui.dialog.show(\n $el('div', [\n $el('p', { textContent: `Unable to find workflow in ${file.name}` })\n ]).outerHTML\n )\n }\n\n /**\n * Loads workflow data from the specified file\n * @param {File} file\n */\n async handleFile(file) {\n const removeExt = (f) => {\n if (!f) return f\n const p = f.lastIndexOf('.')\n if (p === -1) return f\n return f.substring(0, p)\n }\n const fileName = removeExt(file.name)\n if (file.type === 'image/png') {\n const pngInfo = await getPngMetadata(file)\n if (pngInfo?.workflow) {\n await this.loadGraphData(\n JSON.parse(pngInfo.workflow),\n true,\n true,\n fileName\n )\n } else if (pngInfo?.prompt) {\n this.loadApiJson(JSON.parse(pngInfo.prompt), fileName)\n } else if (pngInfo?.parameters) {\n // Note: Not putting this in `importA1111` as it is mostly not used\n // by external callers, and `importA1111` has no access to `app`.\n workflowService.beforeLoadNewGraph()\n importA1111(this.graph, pngInfo.parameters)\n // @ts-expect-error zod type issue on ComfyWorkflowJSON. Should be resolved after enabling ts-strict globally.\n workflowService.afterLoadNewGraph(fileName, this.serializeGraph())\n } else {\n this.showErrorOnFileLoad(file)\n }\n } else if (file.type === 'image/webp') {\n const pngInfo = await getWebpMetadata(file)\n // Support loading workflows from that webp custom node.\n const workflow = pngInfo?.workflow || pngInfo?.Workflow\n const prompt = pngInfo?.prompt || pngInfo?.Prompt\n\n if (workflow) {\n this.loadGraphData(JSON.parse(workflow), true, true, fileName)\n } else if (prompt) {\n this.loadApiJson(JSON.parse(prompt), fileName)\n } else {\n this.showErrorOnFileLoad(file)\n }\n } else if (file.type === 'audio/flac' || file.type === 'audio/x-flac') {\n const pngInfo = await getFlacMetadata(file)\n const workflow = pngInfo?.workflow || pngInfo?.Workflow\n const prompt = pngInfo?.prompt || pngInfo?.Prompt\n\n if (workflow) {\n this.loadGraphData(JSON.parse(workflow), true, true, fileName)\n } else if (prompt) {\n this.loadApiJson(JSON.parse(prompt), fileName)\n } else {\n this.showErrorOnFileLoad(file)\n }\n } else if (\n file.type === 'application/json' ||\n file.name?.endsWith('.json')\n ) {\n const reader = new FileReader()\n reader.onload = async () => {\n const readerResult = reader.result as string\n const jsonContent = JSON.parse(readerResult)\n if (jsonContent?.templates) {\n this.loadTemplateData(jsonContent)\n } else if (this.isApiJson(jsonContent)) {\n this.loadApiJson(jsonContent, fileName)\n } else {\n await this.loadGraphData(\n JSON.parse(readerResult),\n true,\n false,\n fileName\n )\n }\n }\n reader.readAsText(file)\n } else if (\n file.name?.endsWith('.latent') ||\n file.name?.endsWith('.safetensors')\n ) {\n const info = await getLatentMetadata(file)\n // TODO define schema to LatentMetadata\n // @ts-expect-error\n if (info.workflow) {\n await this.loadGraphData(\n // @ts-expect-error\n JSON.parse(info.workflow),\n true,\n true,\n fileName\n )\n // @ts-expect-error\n } else if (info.prompt) {\n // @ts-expect-error\n this.loadApiJson(JSON.parse(info.prompt))\n } else {\n this.showErrorOnFileLoad(file)\n }\n } else {\n this.showErrorOnFileLoad(file)\n }\n }\n\n isApiJson(data) {\n // @ts-expect-error\n return Object.values(data).every((v) => v.class_type)\n }\n\n loadApiJson(apiData, fileName: string) {\n workflowService.beforeLoadNewGraph()\n\n const missingNodeTypes = Object.values(apiData).filter(\n // @ts-expect-error\n (n) => !LiteGraph.registered_node_types[n.class_type]\n )\n if (missingNodeTypes.length) {\n this.#showMissingNodesError(\n // @ts-expect-error\n missingNodeTypes.map((t) => t.class_type)\n )\n return\n }\n\n const ids = Object.keys(apiData)\n app.graph.clear()\n for (const id of ids) {\n const data = apiData[id]\n const node = LiteGraph.createNode(data.class_type)\n node.id = isNaN(+id) ? id : +id\n node.title = data._meta?.title ?? node.title\n app.graph.add(node)\n }\n\n for (const id of ids) {\n const data = apiData[id]\n const node = app.graph.getNodeById(id)\n for (const input in data.inputs ?? {}) {\n const value = data.inputs[input]\n if (value instanceof Array) {\n const [fromId, fromSlot] = value\n const fromNode = app.graph.getNodeById(fromId)\n let toSlot = node.inputs?.findIndex((inp) => inp.name === input)\n if (toSlot == null || toSlot === -1) {\n try {\n // Target has no matching input, most likely a converted widget\n const widget = node.widgets?.find((w) => w.name === input)\n // @ts-expect-error\n if (widget && node.convertWidgetToInput?.(widget)) {\n toSlot = node.inputs?.length - 1\n }\n } catch (error) {}\n }\n if (toSlot != null || toSlot !== -1) {\n fromNode.connect(fromSlot, node, toSlot)\n }\n } else {\n const widget = node.widgets?.find((w) => w.name === input)\n if (widget) {\n widget.value = value\n widget.callback?.(value)\n }\n }\n }\n }\n app.graph.arrange()\n\n for (const id of ids) {\n const data = apiData[id]\n const node = app.graph.getNodeById(id)\n for (const input in data.inputs ?? {}) {\n const value = data.inputs[input]\n if (value instanceof Array) {\n const [fromId, fromSlot] = value\n const fromNode = app.graph.getNodeById(fromId)\n let toSlot = node.inputs?.findIndex((inp) => inp.name === input)\n if (toSlot == null || toSlot === -1) {\n try {\n // Target has no matching input, most likely a converted widget\n const widget = node.widgets?.find((w) => w.name === input)\n // @ts-expect-error\n if (widget && node.convertWidgetToInput?.(widget)) {\n toSlot = node.inputs?.length - 1\n }\n } catch (error) {}\n }\n if (toSlot != null || toSlot !== -1) {\n fromNode.connect(fromSlot, node, toSlot)\n }\n } else {\n const widget = node.widgets?.find((w) => w.name === input)\n if (widget) {\n widget.value = value\n widget.callback?.(value)\n }\n }\n }\n }\n\n app.graph.arrange()\n\n // @ts-expect-error zod type issue on ComfyWorkflowJSON. Should be resolved after enabling ts-strict globally.\n workflowService.afterLoadNewGraph(fileName, this.serializeGraph())\n }\n\n /**\n * Registers a Comfy web extension with the app\n * @param {ComfyExtension} extension\n */\n registerExtension(extension: ComfyExtension) {\n if (this.vueAppReady) {\n useExtensionStore().registerExtension(extension)\n } else {\n // For jest testing.\n this.extensions.push(extension)\n }\n }\n\n /**\n * Refresh combo list on whole nodes\n */\n async refreshComboInNodes() {\n const requestToastMessage: ToastMessageOptions = {\n severity: 'info',\n summary: 'Update',\n detail: 'Update requested'\n }\n if (this.vueAppReady) {\n useToastStore().add(requestToastMessage)\n }\n\n const defs = await this.#getNodeDefs()\n for (const nodeId in defs) {\n this.registerNodeDef(nodeId, defs[nodeId])\n }\n for (let nodeNum in this.graph.nodes) {\n const node = this.graph.nodes[nodeNum]\n const def = defs[node.type]\n // Allow primitive nodes to handle refresh\n node.refreshComboInNode?.(defs)\n\n if (!def) continue\n\n for (const widgetNum in node.widgets) {\n const widget = node.widgets[widgetNum]\n if (\n widget.type == 'combo' &&\n def['input']['required'][widget.name] !== undefined\n ) {\n widget.options.values = def['input']['required'][widget.name][0]\n }\n }\n }\n\n await this.#invokeExtensionsAsync('refreshComboInNodes', defs)\n\n if (this.vueAppReady) {\n this.updateVueAppNodeDefs(defs)\n useToastStore().remove(requestToastMessage)\n useToastStore().add({\n severity: 'success',\n summary: 'Updated',\n detail: 'Node definitions updated',\n life: 1000\n })\n }\n }\n\n resetView() {\n app.canvas.ds.scale = 1\n app.canvas.ds.offset = [0, 0]\n app.graph.setDirtyCanvas(true, true)\n }\n\n /**\n * Clean current state\n */\n clean() {\n this.nodeOutputs = {}\n this.nodePreviewImages = {}\n this.lastNodeErrors = null\n this.lastExecutionError = null\n }\n\n addNodeOnGraph(\n nodeDef: ComfyNodeDef | ComfyNodeDefImpl,\n options: Record = {}\n ): LGraphNode {\n const node = LiteGraph.createNode(\n nodeDef.name,\n nodeDef.display_name,\n options\n )\n this.graph.add(node)\n return node\n }\n\n clientPosToCanvasPos(pos: Vector2): Vector2 {\n const rect = this.canvasContainer.getBoundingClientRect()\n const containerOffsets = [rect.left, rect.top]\n return _.zip(pos, this.canvas.ds.offset, containerOffsets).map(\n ([p, o1, o2]) => (p - o2) / this.canvas.ds.scale - o1\n ) as Vector2\n }\n\n canvasPosToClientPos(pos: Vector2): Vector2 {\n const rect = this.canvasContainer.getBoundingClientRect()\n const containerOffsets = [rect.left, rect.top]\n return _.zip(pos, this.canvas.ds.offset, containerOffsets).map(\n ([p, o1, o2]) => (p + o1) * this.canvas.ds.scale + o2\n ) as Vector2\n }\n\n getCanvasCenter(): Vector2 {\n const dpi = Math.max(window.devicePixelRatio ?? 1, 1)\n const [x, y, w, h] = app.canvas.ds.visible_area\n return [x + w / dpi / 2, y + h / dpi / 2]\n }\n\n public goToNode(nodeId: NodeId) {\n const graphNode = this.graph.getNodeById(nodeId)\n if (!graphNode) return\n this.canvas.animateToBounds(graphNode.boundingRect)\n }\n}\n\nexport const app = new ComfyApp()\n","import type { Keybinding } from '@/types/keyBindingTypes'\nimport { NodeBadgeMode } from '@/types/nodeSource'\nimport { LinkReleaseTriggerAction } from '@/types/searchBoxTypes'\nimport type { SettingParams } from '@/types/settingTypes'\nimport { LinkMarkerShape } from '@comfyorg/litegraph'\nimport { LiteGraph } from '@comfyorg/litegraph'\n\nexport const CORE_SETTINGS: SettingParams[] = [\n {\n id: 'Comfy.Validation.Workflows',\n name: 'Validate workflows',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.NodeSearchBoxImpl',\n category: ['Comfy', 'Node Search Box', 'Implementation'],\n experimental: true,\n name: 'Node search box implementation',\n type: 'combo',\n options: ['default', 'litegraph (legacy)'],\n defaultValue: 'default'\n },\n {\n id: 'Comfy.LinkRelease.Action',\n category: ['LiteGraph', 'LinkRelease', 'Action'],\n name: 'Action on link release (No modifier)',\n type: 'combo',\n options: Object.values(LinkReleaseTriggerAction),\n defaultValue: LinkReleaseTriggerAction.CONTEXT_MENU\n },\n {\n id: 'Comfy.LinkRelease.ActionShift',\n category: ['LiteGraph', 'LinkRelease', 'ActionShift'],\n name: 'Action on link release (Shift)',\n type: 'combo',\n options: Object.values(LinkReleaseTriggerAction),\n defaultValue: LinkReleaseTriggerAction.SEARCH_BOX\n },\n {\n id: 'Comfy.NodeSearchBoxImpl.NodePreview',\n category: ['Comfy', 'Node Search Box', 'NodePreview'],\n name: 'Node preview',\n tooltip: 'Only applies to the default implementation',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.NodeSearchBoxImpl.ShowCategory',\n category: ['Comfy', 'Node Search Box', 'ShowCategory'],\n name: 'Show node category in search results',\n tooltip: 'Only applies to the default implementation',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.NodeSearchBoxImpl.ShowIdName',\n category: ['Comfy', 'Node Search Box', 'ShowIdName'],\n name: 'Show node id name in search results',\n tooltip: 'Only applies to the default implementation',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.NodeSearchBoxImpl.ShowNodeFrequency',\n category: ['Comfy', 'Node Search Box', 'ShowNodeFrequency'],\n name: 'Show node frequency in search results',\n tooltip: 'Only applies to the default implementation',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.Sidebar.Location',\n category: ['Appearance', 'Sidebar', 'Location'],\n name: 'Sidebar location',\n type: 'combo',\n options: ['left', 'right'],\n defaultValue: 'left'\n },\n {\n id: 'Comfy.Sidebar.Size',\n category: ['Appearance', 'Sidebar', 'Size'],\n name: 'Sidebar size',\n type: 'combo',\n options: ['normal', 'small'],\n defaultValue: () => (window.innerWidth < 1600 ? 'small' : 'normal')\n },\n {\n id: 'Comfy.TextareaWidget.FontSize',\n category: ['Appearance', 'Node Widget', 'TextareaWidget', 'FontSize'],\n name: 'Textarea widget font size',\n type: 'slider',\n defaultValue: 10,\n attrs: {\n min: 8,\n max: 24\n }\n },\n {\n id: 'Comfy.TextareaWidget.Spellcheck',\n category: ['Comfy', 'Node Widget', 'TextareaWidget', 'Spellcheck'],\n name: 'Textarea widget spellcheck',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.Workflow.SortNodeIdOnSave',\n name: 'Sort node IDs when saving workflow',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.Graph.CanvasInfo',\n category: ['LiteGraph', 'Canvas', 'CanvasInfo'],\n name: 'Show canvas info on bottom left corner (fps, etc.)',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Node.ShowDeprecated',\n name: 'Show deprecated nodes in search',\n tooltip:\n 'Deprecated nodes are hidden by default in the UI, but remain functional in existing workflows that use them.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.Node.ShowExperimental',\n name: 'Show experimental nodes in search',\n tooltip:\n 'Experimental nodes are marked as such in the UI and may be subject to significant changes or removal in future versions. Use with caution in production workflows',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Node.Opacity',\n category: ['Appearance', 'Node', 'Opacity'],\n name: 'Node opacity',\n type: 'slider',\n defaultValue: 1,\n attrs: {\n min: 0.01,\n max: 1,\n step: 0.01\n }\n },\n {\n id: 'Comfy.Workflow.ShowMissingNodesWarning',\n name: 'Show missing nodes warning',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Workflow.ShowMissingModelsWarning',\n name: 'Show missing models warning',\n type: 'boolean',\n defaultValue: false,\n experimental: true\n },\n {\n id: 'Comfy.Graph.ZoomSpeed',\n category: ['LiteGraph', 'Canvas', 'ZoomSpeed'],\n name: 'Canvas zoom speed',\n type: 'slider',\n defaultValue: 1.1,\n attrs: {\n min: 1.01,\n max: 2.5,\n step: 0.01\n }\n },\n // Bookmarks are stored in the settings store.\n // Bookmarks are in format of category/display_name. e.g. \"conditioning/CLIPTextEncode\"\n {\n id: 'Comfy.NodeLibrary.Bookmarks',\n name: 'Node library bookmarks with display name (deprecated)',\n type: 'hidden',\n defaultValue: [],\n deprecated: true\n },\n {\n id: 'Comfy.NodeLibrary.Bookmarks.V2',\n name: 'Node library bookmarks v2 with unique name',\n type: 'hidden',\n defaultValue: []\n },\n // Stores mapping from bookmark folder name to its customization.\n {\n id: 'Comfy.NodeLibrary.BookmarksCustomization',\n name: 'Node library bookmarks customization',\n type: 'hidden',\n defaultValue: {}\n },\n // Hidden setting used by the queue for how to fit images\n {\n id: 'Comfy.Queue.ImageFit',\n name: 'Queue image fit',\n type: 'hidden',\n defaultValue: 'cover'\n },\n {\n id: 'Comfy.GroupSelectedNodes.Padding',\n category: ['LiteGraph', 'Group', 'Padding'],\n name: 'Group selected nodes padding',\n type: 'slider',\n defaultValue: 10,\n attrs: {\n min: 0,\n max: 100\n }\n },\n {\n id: 'Comfy.Node.DoubleClickTitleToEdit',\n category: ['LiteGraph', 'Node', 'DoubleClickTitleToEdit'],\n name: 'Double click node title to edit',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Group.DoubleClickTitleToEdit',\n category: ['LiteGraph', 'Group', 'DoubleClickTitleToEdit'],\n name: 'Double click group title to edit',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Window.UnloadConfirmation',\n name: 'Show confirmation when closing window',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.TreeExplorer.ItemPadding',\n category: ['Appearance', 'Tree Explorer', 'ItemPadding'],\n name: 'Tree explorer item padding',\n type: 'slider',\n defaultValue: 2,\n attrs: {\n min: 0,\n max: 8,\n step: 1\n }\n },\n {\n id: 'Comfy.ModelLibrary.AutoLoadAll',\n name: 'Automatically load all model folders',\n tooltip:\n 'If true, all folders will load as soon as you open the model library (this may cause delays while it loads). If false, root level model folders will only load once you click on them.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.ModelLibrary.NameFormat',\n name: 'What name to display in the model library tree view',\n tooltip:\n 'Select \"filename\" to render a simplified view of the raw filename (without directory or \".safetensors\" extension) in the model list. Select \"title\" to display the configurable model metadata title.',\n type: 'combo',\n options: ['filename', 'title'],\n defaultValue: 'title'\n },\n {\n id: 'Comfy.Locale',\n name: 'Language',\n type: 'combo',\n options: [\n { value: 'en', text: 'English' },\n { value: 'zh', text: '中文' },\n { value: 'ru', text: 'Русский' },\n { value: 'ja', text: '日本語' },\n { value: 'ko', text: '한국어' }\n ],\n defaultValue: () => navigator.language.split('-')[0] || 'en'\n },\n {\n id: 'Comfy.NodeBadge.NodeSourceBadgeMode',\n category: ['LiteGraph', 'Node', 'NodeSourceBadgeMode'],\n name: 'Node source badge mode',\n type: 'combo',\n options: Object.values(NodeBadgeMode),\n defaultValue: NodeBadgeMode.HideBuiltIn\n },\n {\n id: 'Comfy.NodeBadge.NodeIdBadgeMode',\n category: ['LiteGraph', 'Node', 'NodeIdBadgeMode'],\n name: 'Node ID badge mode',\n type: 'combo',\n options: [NodeBadgeMode.None, NodeBadgeMode.ShowAll],\n defaultValue: NodeBadgeMode.ShowAll\n },\n {\n id: 'Comfy.NodeBadge.NodeLifeCycleBadgeMode',\n category: ['LiteGraph', 'Node', 'NodeLifeCycleBadgeMode'],\n name: 'Node life cycle badge mode',\n type: 'combo',\n options: [NodeBadgeMode.None, NodeBadgeMode.ShowAll],\n defaultValue: NodeBadgeMode.ShowAll\n },\n {\n id: 'Comfy.ConfirmClear',\n category: ['Comfy', 'Workflow', 'ConfirmClear'],\n name: 'Require confirmation when clearing workflow',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.PromptFilename',\n category: ['Comfy', 'Workflow', 'PromptFilename'],\n name: 'Prompt for filename when saving workflow',\n type: 'boolean',\n defaultValue: true\n },\n /**\n * file format for preview\n *\n * format;quality\n *\n * ex)\n * webp;50 -> webp, quality 50\n * jpeg;80 -> rgb, jpeg, quality 80\n *\n * @type {string}\n */\n {\n id: 'Comfy.PreviewFormat',\n category: ['LiteGraph', 'Node Widget', 'PreviewFormat'],\n name: 'Preview image format',\n tooltip:\n 'When displaying a preview in the image widget, convert it to a lightweight image, e.g. webp, jpeg, webp;50, etc.',\n type: 'text',\n defaultValue: ''\n },\n {\n id: 'Comfy.DisableSliders',\n category: ['LiteGraph', 'Node Widget', 'DisableSliders'],\n name: 'Disable node widget sliders',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.DisableFloatRounding',\n category: ['LiteGraph', 'Node Widget', 'DisableFloatRounding'],\n name: 'Disable default float widget rounding.',\n tooltip:\n '(requires page reload) Cannot disable round when round is set by the node in the backend.',\n type: 'boolean',\n defaultValue: false\n },\n {\n id: 'Comfy.FloatRoundingPrecision',\n category: ['LiteGraph', 'Node Widget', 'FloatRoundingPrecision'],\n name: 'Float widget rounding decimal places [0 = auto].',\n tooltip: '(requires page reload)',\n type: 'slider',\n attrs: {\n min: 0,\n max: 6,\n step: 1\n },\n defaultValue: 0\n },\n {\n id: 'Comfy.EnableTooltips',\n category: ['LiteGraph', 'Node', 'EnableTooltips'],\n name: 'Enable Tooltips',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.DevMode',\n name: 'Enable dev mode options (API save, etc.)',\n type: 'boolean',\n defaultValue: false,\n onChange: (value) => {\n const element = document.getElementById('comfy-dev-save-api-button')\n if (element) {\n element.style.display = value ? 'flex' : 'none'\n }\n }\n },\n {\n id: 'Comfy.UseNewMenu',\n category: ['Comfy', 'Menu', 'UseNewMenu'],\n defaultValue: 'Top',\n name: 'Use new menu',\n type: 'combo',\n options: ['Disabled', 'Top', 'Bottom'],\n migrateDeprecatedValue: (value: string) => {\n // Floating is now supported by dragging the docked actionbar off.\n if (value === 'Floating') {\n return 'Top'\n }\n return value\n }\n },\n {\n id: 'Comfy.Workflow.WorkflowTabsPosition',\n name: 'Opened workflows position',\n type: 'combo',\n options: ['Sidebar', 'Topbar'],\n defaultValue: 'Topbar'\n },\n {\n id: 'Comfy.Graph.CanvasMenu',\n category: ['LiteGraph', 'Canvas', 'CanvasMenu'],\n name: 'Show graph canvas menu',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.QueueButton.BatchCountLimit',\n name: 'Batch count limit',\n tooltip:\n 'The maximum number of tasks added to the queue at one button click',\n type: 'number',\n defaultValue: 100,\n versionAdded: '1.3.5'\n },\n {\n id: 'Comfy.Keybinding.UnsetBindings',\n name: 'Keybindings unset by the user',\n type: 'hidden',\n defaultValue: [] as Keybinding[],\n versionAdded: '1.3.7'\n },\n {\n id: 'Comfy.Keybinding.NewBindings',\n name: 'Keybindings set by the user',\n type: 'hidden',\n defaultValue: [] as Keybinding[],\n versionAdded: '1.3.7'\n },\n {\n id: 'Comfy.Extension.Disabled',\n name: 'Disabled extension names',\n type: 'hidden',\n defaultValue: [] as string[],\n versionAdded: '1.3.11'\n },\n {\n id: 'Comfy.Settings.ExtensionPanel',\n name: 'Show extension panel in settings dialog',\n type: 'boolean',\n defaultValue: false,\n experimental: true,\n versionAdded: '1.3.11'\n },\n {\n id: 'Comfy.Validation.NodeDefs',\n name: 'Validate node definitions (slow)',\n type: 'boolean',\n tooltip:\n 'Recommended for node developers. This will validate all node definitions on startup.',\n defaultValue: false,\n versionAdded: '1.3.14'\n },\n {\n id: 'Comfy.LinkRenderMode',\n category: ['LiteGraph', 'Graph', 'LinkRenderMode'],\n name: 'Link Render Mode',\n defaultValue: 2,\n type: 'combo',\n options: [\n { value: LiteGraph.STRAIGHT_LINK, text: 'Straight' },\n { value: LiteGraph.LINEAR_LINK, text: 'Linear' },\n { value: LiteGraph.SPLINE_LINK, text: 'Spline' },\n { value: LiteGraph.HIDDEN_LINK, text: 'Hidden' }\n ]\n },\n {\n id: 'Comfy.Node.AutoSnapLinkToSlot',\n category: ['LiteGraph', 'Node', 'AutoSnapLinkToSlot'],\n name: 'Auto snap link to node slot',\n tooltip:\n 'When dragging a link over a node, the link automatically snap to a viable input slot on the node',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.3.29'\n },\n {\n id: 'Comfy.Node.SnapHighlightsNode',\n category: ['LiteGraph', 'Node', 'SnapHighlightsNode'],\n name: 'Snap highlights node',\n tooltip:\n 'When dragging a link over a node with viable input slot, highlight the node',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.3.29'\n },\n {\n id: 'Comfy.Node.BypassAllLinksOnDelete',\n category: ['LiteGraph', 'Node', 'BypassAllLinksOnDelete'],\n name: 'Keep all links when deleting nodes',\n tooltip:\n 'When deleting a node, attempt to reconnect all of its input and output links (bypassing the deleted node)',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.3.40'\n },\n {\n id: 'Comfy.Node.MiddleClickRerouteNode',\n category: ['LiteGraph', 'Node', 'MiddleClickRerouteNode'],\n name: 'Middle-click creates a new Reroute node',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.3.42'\n },\n {\n id: 'Comfy.RerouteBeta',\n category: ['LiteGraph', 'RerouteBeta'],\n name: 'Opt-in to the reroute beta test',\n tooltip:\n 'Enables the new native reroutes.\\n\\nReroutes can be added by holding alt and dragging from a link line, or on the link menu.\\n\\nDisabling this option is non-destructive - reroutes are hidden.',\n experimental: true,\n type: 'boolean',\n defaultValue: false,\n versionAdded: '1.3.42'\n },\n {\n id: 'Comfy.Graph.LinkMarkers',\n category: ['LiteGraph', 'Link', 'LinkMarkers'],\n name: 'Link midpoint markers',\n defaultValue: LinkMarkerShape.Circle,\n type: 'combo',\n options: [\n { value: LinkMarkerShape.None, text: 'None' },\n { value: LinkMarkerShape.Circle, text: 'Circle' },\n { value: LinkMarkerShape.Arrow, text: 'Arrow' }\n ],\n versionAdded: '1.3.42'\n },\n {\n id: 'Comfy.DOMClippingEnabled',\n category: ['LiteGraph', 'Node', 'DOMClippingEnabled'],\n name: 'Enable DOM element clipping (enabling may reduce performance)',\n type: 'boolean',\n defaultValue: true\n },\n {\n id: 'Comfy.Graph.CtrlShiftZoom',\n category: ['LiteGraph', 'Canvas', 'CtrlShiftZoom'],\n name: 'Enable fast-zoom shortcut (Ctrl + Shift + Drag)',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.4.0'\n },\n {\n id: 'Comfy.Pointer.ClickDrift',\n category: ['LiteGraph', 'Pointer', 'ClickDrift'],\n name: 'Pointer click drift (maximum distance)',\n tooltip:\n 'If the pointer moves more than this distance while holding a button down, it is considered dragging (rather than clicking).\\n\\nHelps prevent objects from being unintentionally nudged if the pointer is moved whilst clicking.',\n experimental: true,\n type: 'slider',\n attrs: {\n min: 0,\n max: 20,\n step: 1\n },\n defaultValue: 6,\n versionAdded: '1.4.3'\n },\n {\n id: 'Comfy.Pointer.ClickBufferTime',\n category: ['LiteGraph', 'Pointer', 'ClickBufferTime'],\n name: 'Pointer click drift delay',\n tooltip:\n 'After pressing a pointer button down, this is the maximum time (in milliseconds) that pointer movement can be ignored for.\\n\\nHelps prevent objects from being unintentionally nudged if the pointer is moved whilst clicking.',\n experimental: true,\n type: 'slider',\n attrs: {\n min: 0,\n max: 1000,\n step: 25\n },\n defaultValue: 150,\n versionAdded: '1.4.3'\n },\n {\n id: 'Comfy.Pointer.DoubleClickTime',\n category: ['LiteGraph', 'Pointer', 'DoubleClickTime'],\n name: 'Double click interval (maximum)',\n tooltip:\n 'The maximum time in milliseconds between the two clicks of a double-click. Increasing this value may assist if double-clicks are sometimes not registered.',\n type: 'slider',\n attrs: {\n min: 100,\n max: 1000,\n step: 50\n },\n defaultValue: 300,\n versionAdded: '1.4.3'\n },\n {\n id: 'Comfy.SnapToGrid.GridSize',\n category: ['LiteGraph', 'Canvas', 'GridSize'],\n name: 'Snap to grid size',\n type: 'slider',\n attrs: {\n min: 1,\n max: 500\n },\n tooltip:\n 'When dragging and resizing nodes while holding shift they will be aligned to the grid, this controls the size of that grid.',\n defaultValue: LiteGraph.CANVAS_GRID_SIZE\n },\n // Keep the 'pysssss.SnapToGrid' setting id so we don't need to migrate setting values.\n // Using a new setting id can cause existing users to lose their existing settings.\n {\n id: 'pysssss.SnapToGrid',\n category: ['LiteGraph', 'Canvas', 'AlwaysSnapToGrid'],\n name: 'Always snap to grid',\n type: 'boolean',\n defaultValue: false,\n versionAdded: '1.3.13'\n },\n {\n id: 'Comfy.Server.ServerConfigValues',\n name: 'Server config values for frontend display',\n tooltip: 'Server config values used for frontend display only',\n type: 'hidden',\n // Mapping from server config id to value.\n defaultValue: {} as Record,\n versionAdded: '1.4.8'\n },\n {\n id: 'Comfy.Server.LaunchArgs',\n name: 'Server launch arguments',\n tooltip:\n 'These are the actual arguments that are passed to the server when it is launched.',\n type: 'hidden',\n defaultValue: {} as Record,\n versionAdded: '1.4.8'\n },\n {\n id: 'Comfy.Queue.MaxHistoryItems',\n name: 'Queue history size',\n tooltip: 'The maximum number of tasks that show in the queue history.',\n type: 'slider',\n attrs: {\n min: 16,\n max: 256,\n step: 16\n },\n defaultValue: 64,\n versionAdded: '1.4.12'\n },\n {\n id: 'LiteGraph.Canvas.MaximumFps',\n name: 'Maxium FPS',\n tooltip:\n 'The maximum frames per second that the canvas is allowed to render. Caps GPU usage at the cost of smoothness. If 0, the screen refresh rate is used. Default: 0',\n type: 'slider',\n attrs: {\n min: 0,\n max: 120\n },\n defaultValue: 0,\n versionAdded: '1.5.1'\n },\n {\n id: 'Comfy.EnableWorkflowViewRestore',\n category: ['Comfy', 'Workflow', 'EnableWorkflowViewRestore'],\n name: 'Save and restore canvas position and zoom level in workflows',\n type: 'boolean',\n defaultValue: true,\n versionModified: '1.5.4'\n },\n {\n id: 'Comfy.Workflow.ConfirmDelete',\n name: 'Show confirmation when deleting workflows',\n type: 'boolean',\n defaultValue: true,\n versionAdded: '1.5.6'\n }\n]\n","/**\n * TODO: Migrate scripts/ui/settings.ts here\n *\n * Currently the reactive settings act as a proxy of the legacy settings.\n * Every time a setting is changed, the settingStore dispatch the change to the\n * legacy settings. Every time the legacy settings are changed, the legacy\n * settings directly updates the settingStore.settingValues.\n */\n\nimport { ref, computed } from 'vue'\nimport { defineStore } from 'pinia'\nimport { app } from '@/scripts/app'\nimport { ComfySettingsDialog } from '@/scripts/ui/settings'\nimport type { Settings } from '@/types/apiTypes'\nimport type { SettingParams } from '@/types/settingTypes'\nimport type { TreeNode } from 'primevue/treenode'\nimport type { ComfyExtension } from '@/types/comfy'\nimport { buildTree } from '@/utils/treeUtil'\nimport { CORE_SETTINGS } from '@/constants/coreSettings'\n\nexport interface SettingTreeNode extends TreeNode {\n data?: SettingParams\n}\n\nexport const useSettingStore = defineStore('setting', () => {\n const settingValues = ref>({})\n const settings = ref>({})\n\n const settingTree = computed(() => {\n const root = buildTree(\n Object.values(settings.value).filter(\n (setting: SettingParams) => setting.type !== 'hidden'\n ),\n (setting: SettingParams) => setting.category || setting.id.split('.')\n )\n\n const floatingSettings = (root.children ?? []).filter((node) => node.leaf)\n if (floatingSettings.length) {\n root.children = (root.children ?? []).filter((node) => !node.leaf)\n root.children.push({\n key: 'Other',\n label: 'Other',\n leaf: false,\n children: floatingSettings\n })\n }\n\n return root\n })\n\n function addSettings(settingsDialog: ComfySettingsDialog) {\n for (const id in settingsDialog.settingsLookup) {\n const value = settingsDialog.getSettingValue(id)\n settingValues.value[id] = value\n }\n settings.value = settingsDialog.settingsParamLookup\n\n CORE_SETTINGS.forEach((setting: SettingParams) => {\n settingsDialog.addSetting(setting)\n })\n }\n\n function loadExtensionSettings(extension: ComfyExtension) {\n extension.settings?.forEach((setting: SettingParams) => {\n app.ui.settings.addSetting(setting)\n })\n }\n\n function exists(key: string) {\n return settingValues.value[key] !== undefined\n }\n\n async function set(key: K, value: Settings[K]) {\n settingValues.value[key] = value\n await app.ui.settings.setSettingValueAsync(key, value)\n }\n\n function get(key: K): Settings[K] {\n return (\n settingValues.value[key] ?? app.ui.settings.getSettingDefaultValue(key)\n )\n }\n\n return {\n settingValues,\n settings,\n settingTree,\n addSettings,\n loadExtensionSettings,\n set,\n get,\n exists\n }\n})\n","import type { Keybinding } from '@/types/keyBindingTypes'\n\nexport const CORE_KEYBINDINGS: Keybinding[] = [\n {\n combo: {\n ctrl: true,\n key: 'Enter'\n },\n commandId: 'Comfy.QueuePrompt'\n },\n {\n combo: {\n ctrl: true,\n shift: true,\n key: 'Enter'\n },\n commandId: 'Comfy.QueuePromptFront'\n },\n {\n combo: {\n ctrl: true,\n alt: true,\n key: 'Enter'\n },\n commandId: 'Comfy.Interrupt'\n },\n {\n combo: {\n key: 'r'\n },\n commandId: 'Comfy.RefreshNodeDefinitions'\n },\n {\n combo: {\n key: 'q'\n },\n commandId: 'Workspace.ToggleSidebarTab.queue'\n },\n {\n combo: {\n key: 'w'\n },\n commandId: 'Workspace.ToggleSidebarTab.workflows'\n },\n {\n combo: {\n key: 'n'\n },\n commandId: 'Workspace.ToggleSidebarTab.node-library'\n },\n {\n combo: {\n key: 'm'\n },\n commandId: 'Workspace.ToggleSidebarTab.model-library'\n },\n {\n combo: {\n key: 's',\n ctrl: true\n },\n commandId: 'Comfy.SaveWorkflow'\n },\n {\n combo: {\n key: 'o',\n ctrl: true\n },\n commandId: 'Comfy.OpenWorkflow'\n },\n {\n combo: {\n key: 'Backspace'\n },\n commandId: 'Comfy.ClearWorkflow'\n },\n {\n combo: {\n key: 'g',\n ctrl: true\n },\n commandId: 'Comfy.Graph.GroupSelectedNodes'\n },\n {\n combo: {\n key: ',',\n ctrl: true\n },\n commandId: 'Comfy.ShowSettingsDialog'\n },\n // For '=' both holding shift and not holding shift\n {\n combo: {\n key: '=',\n alt: true\n },\n commandId: 'Comfy.Canvas.ZoomIn',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: '+',\n alt: true,\n shift: true\n },\n commandId: 'Comfy.Canvas.ZoomIn',\n targetSelector: '#graph-canvas'\n },\n // For number pad '+'\n {\n combo: {\n key: '+',\n alt: true\n },\n commandId: 'Comfy.Canvas.ZoomIn',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: '-',\n alt: true\n },\n commandId: 'Comfy.Canvas.ZoomOut',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: '.'\n },\n commandId: 'Comfy.Canvas.FitView',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: 'p'\n },\n commandId: 'Comfy.Canvas.ToggleSelected.Pin',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: 'c',\n alt: true\n },\n commandId: 'Comfy.Canvas.ToggleSelectedNodes.Collapse',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: 'b',\n ctrl: true\n },\n commandId: 'Comfy.Canvas.ToggleSelectedNodes.Bypass',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: 'm',\n ctrl: true\n },\n commandId: 'Comfy.Canvas.ToggleSelectedNodes.Mute',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: '`',\n ctrl: true\n },\n commandId: 'Workspace.ToggleBottomPanelTab.logs-terminal'\n },\n {\n combo: {\n key: 'f'\n },\n commandId: 'Workspace.ToggleFocusMode'\n }\n]\n","import { defineStore } from 'pinia'\nimport { computed, Ref, ref, toRaw } from 'vue'\nimport { Keybinding, KeyCombo } from '@/types/keyBindingTypes'\nimport { useSettingStore } from './settingStore'\nimport { CORE_KEYBINDINGS } from '@/constants/coreKeybindings'\nimport type { ComfyExtension } from '@/types/comfy'\n\nexport class KeybindingImpl implements Keybinding {\n commandId: string\n combo: KeyComboImpl\n targetSelector?: string\n\n constructor(obj: Keybinding) {\n this.commandId = obj.commandId\n this.combo = new KeyComboImpl(obj.combo)\n this.targetSelector = obj.targetSelector\n }\n\n equals(other: unknown): boolean {\n const raw = toRaw(other)\n\n return raw instanceof KeybindingImpl\n ? this.commandId === raw.commandId &&\n this.combo.equals(raw.combo) &&\n this.targetSelector === raw.targetSelector\n : false\n }\n}\n\nexport class KeyComboImpl implements KeyCombo {\n key: string\n // ctrl or meta(cmd on mac)\n ctrl: boolean\n alt: boolean\n shift: boolean\n\n constructor(obj: KeyCombo) {\n this.key = obj.key\n this.ctrl = obj.ctrl ?? false\n this.alt = obj.alt ?? false\n this.shift = obj.shift ?? false\n }\n\n static fromEvent(event: KeyboardEvent) {\n return new KeyComboImpl({\n key: event.key,\n ctrl: event.ctrlKey || event.metaKey,\n alt: event.altKey,\n shift: event.shiftKey\n })\n }\n\n equals(other: unknown): boolean {\n const raw = toRaw(other)\n\n return raw instanceof KeyComboImpl\n ? this.key.toUpperCase() === raw.key.toUpperCase() &&\n this.ctrl === raw.ctrl &&\n this.alt === raw.alt &&\n this.shift === raw.shift\n : false\n }\n\n serialize(): string {\n return `${this.key.toUpperCase()}:${this.ctrl}:${this.alt}:${this.shift}`\n }\n\n toString(): string {\n return this.getKeySequences().join(' + ')\n }\n\n get hasModifier(): boolean {\n return this.ctrl || this.alt || this.shift\n }\n\n get isModifier(): boolean {\n return ['Control', 'Meta', 'Alt', 'Shift'].includes(this.key)\n }\n\n getKeySequences(): string[] {\n const sequences: string[] = []\n if (this.ctrl) {\n sequences.push('Ctrl')\n }\n if (this.alt) {\n sequences.push('Alt')\n }\n if (this.shift) {\n sequences.push('Shift')\n }\n sequences.push(this.key)\n return sequences\n }\n}\n\nexport const useKeybindingStore = defineStore('keybinding', () => {\n /**\n * Default keybindings provided by core and extensions.\n */\n const defaultKeybindings = ref>({})\n /**\n * User-defined keybindings.\n */\n const userKeybindings = ref>({})\n /**\n * User-defined keybindings that unset default keybindings.\n */\n const userUnsetKeybindings = ref>({})\n\n const keybindingByKeyCombo = computed>(() => {\n const result: Record = {\n ...defaultKeybindings.value\n }\n\n for (const keybinding of Object.values(userUnsetKeybindings.value)) {\n const serializedCombo = keybinding.combo.serialize()\n if (result[serializedCombo]?.equals(keybinding)) {\n delete result[serializedCombo]\n }\n }\n\n return {\n ...result,\n ...userKeybindings.value\n }\n })\n\n const keybindings = computed(() =>\n Object.values(keybindingByKeyCombo.value)\n )\n\n function getKeybinding(combo: KeyComboImpl) {\n return keybindingByKeyCombo.value[combo.serialize()]\n }\n\n function createKeybindingsByCommandId(keybindings: KeybindingImpl[]) {\n const result: Record = {}\n for (const keybinding of keybindings) {\n if (!(keybinding.commandId in result)) {\n result[keybinding.commandId] = []\n }\n result[keybinding.commandId].push(keybinding)\n }\n return result\n }\n\n const keybindingsByCommandId = computed>(\n () => {\n return createKeybindingsByCommandId(keybindings.value)\n }\n )\n\n function getKeybindingsByCommandId(commandId: string) {\n return keybindingsByCommandId.value[commandId] ?? []\n }\n\n const defaultKeybindingsByCommandId = computed<\n Record\n >(() => {\n return createKeybindingsByCommandId(Object.values(defaultKeybindings.value))\n })\n\n function getKeybindingByCommandId(commandId: string) {\n return getKeybindingsByCommandId(commandId)[0]\n }\n\n function addKeybinding(\n target: Ref>,\n keybinding: KeybindingImpl,\n { existOk = false }: { existOk: boolean }\n ) {\n if (!existOk && keybinding.combo.serialize() in target.value) {\n throw new Error(\n `Keybinding on ${keybinding.combo} already exists on ${\n target.value[keybinding.combo.serialize()].commandId\n }`\n )\n }\n target.value[keybinding.combo.serialize()] = keybinding\n }\n\n function addDefaultKeybinding(keybinding: KeybindingImpl) {\n addKeybinding(defaultKeybindings, keybinding, { existOk: false })\n }\n\n function addUserKeybinding(keybinding: KeybindingImpl) {\n const defaultKeybinding =\n defaultKeybindings.value[keybinding.combo.serialize()]\n const userUnsetKeybinding =\n userUnsetKeybindings.value[keybinding.combo.serialize()]\n\n // User is adding back a keybinding that was an unsetted default keybinding.\n if (\n keybinding.equals(defaultKeybinding) &&\n keybinding.equals(userUnsetKeybinding)\n ) {\n delete userUnsetKeybindings.value[keybinding.combo.serialize()]\n return\n }\n\n // Unset keybinding on default keybinding if it exists and is not the same as userUnsetKeybinding\n if (defaultKeybinding && !defaultKeybinding.equals(userUnsetKeybinding)) {\n unsetKeybinding(defaultKeybinding)\n }\n\n addKeybinding(userKeybindings, keybinding, { existOk: true })\n }\n\n function unsetKeybinding(keybinding: KeybindingImpl) {\n const serializedCombo = keybinding.combo.serialize()\n if (!(serializedCombo in keybindingByKeyCombo.value)) {\n console.warn(\n `Trying to unset non-exist keybinding: ${JSON.stringify(keybinding)}`\n )\n return\n }\n\n if (userKeybindings.value[serializedCombo]?.equals(keybinding)) {\n delete userKeybindings.value[serializedCombo]\n return\n }\n\n if (defaultKeybindings.value[serializedCombo]?.equals(keybinding)) {\n addKeybinding(userUnsetKeybindings, keybinding, { existOk: false })\n return\n }\n\n throw new Error(`Unknown keybinding: ${JSON.stringify(keybinding)}`)\n }\n\n /**\n * Update the keybinding on given command if it is different from the current keybinding.\n *\n * @returns true if the keybinding is updated, false otherwise.\n */\n function updateKeybindingOnCommand(keybinding: KeybindingImpl): boolean {\n const currentKeybinding = getKeybindingByCommandId(keybinding.commandId)\n if (currentKeybinding?.equals(keybinding)) {\n return false\n }\n if (currentKeybinding) {\n unsetKeybinding(currentKeybinding)\n }\n addUserKeybinding(keybinding)\n return true\n }\n\n function loadUserKeybindings() {\n const settingStore = useSettingStore()\n // Unset bindings first as new bindings might conflict with default bindings.\n const unsetBindings = settingStore.get('Comfy.Keybinding.UnsetBindings')\n for (const keybinding of unsetBindings) {\n unsetKeybinding(new KeybindingImpl(keybinding))\n }\n const newBindings = settingStore.get('Comfy.Keybinding.NewBindings')\n for (const keybinding of newBindings) {\n addUserKeybinding(new KeybindingImpl(keybinding))\n }\n }\n\n function loadCoreKeybindings() {\n for (const keybinding of CORE_KEYBINDINGS) {\n addDefaultKeybinding(new KeybindingImpl(keybinding))\n }\n }\n\n function loadExtensionKeybindings(extension: ComfyExtension) {\n if (extension.keybindings) {\n for (const keybinding of extension.keybindings) {\n try {\n addDefaultKeybinding(new KeybindingImpl(keybinding))\n } catch (error) {\n console.warn(\n `Failed to load keybinding for extension ${extension.name}`,\n error\n )\n }\n }\n }\n }\n\n async function persistUserKeybindings() {\n const settingStore = useSettingStore()\n // TODO(https://github.com/Comfy-Org/ComfyUI_frontend/issues/1079):\n // Allow setting multiple values at once in settingStore\n await settingStore.set(\n 'Comfy.Keybinding.NewBindings',\n Object.values(userKeybindings.value)\n )\n await settingStore.set(\n 'Comfy.Keybinding.UnsetBindings',\n Object.values(userUnsetKeybindings.value)\n )\n }\n\n function resetKeybindings() {\n userKeybindings.value = {}\n userUnsetKeybindings.value = {}\n }\n\n function isCommandKeybindingModified(commandId: string): boolean {\n const currentKeybinding: KeybindingImpl | undefined =\n getKeybindingByCommandId(commandId)\n const defaultKeybinding: KeybindingImpl | undefined =\n defaultKeybindingsByCommandId.value[commandId]?.[0]\n\n return !(\n (currentKeybinding === undefined && defaultKeybinding === undefined) ||\n currentKeybinding?.equals(defaultKeybinding)\n )\n }\n\n return {\n keybindings,\n getKeybinding,\n getKeybindingsByCommandId,\n getKeybindingByCommandId,\n addDefaultKeybinding,\n addUserKeybinding,\n unsetKeybinding,\n updateKeybindingOnCommand,\n loadUserKeybindings,\n loadCoreKeybindings,\n loadExtensionKeybindings,\n persistUserKeybindings,\n resetKeybindings,\n isCommandKeybindingModified\n }\n})\n","import { defineStore } from 'pinia'\nimport { computed, ref } from 'vue'\nimport type { ComfyExtension } from '@/types/comfy'\nimport { useErrorHandling } from '@/hooks/errorHooks'\nimport { type KeybindingImpl, useKeybindingStore } from './keybindingStore'\n\nexport interface ComfyCommand {\n id: string\n function: () => void | Promise\n\n label?: string | (() => string)\n icon?: string | (() => string)\n tooltip?: string | (() => string)\n /** Menubar item label, if different from command label */\n menubarLabel?: string | (() => string)\n versionAdded?: string\n /** If non-nullish, this command will prompt for confirmation. */\n confirmation?: string\n}\n\nexport class ComfyCommandImpl implements ComfyCommand {\n id: string\n function: () => void | Promise\n _label?: string | (() => string)\n _icon?: string | (() => string)\n _tooltip?: string | (() => string)\n _menubarLabel?: string | (() => string)\n versionAdded?: string\n confirmation?: string\n\n constructor(command: ComfyCommand) {\n this.id = command.id\n this.function = command.function\n this._label = command.label\n this._icon = command.icon\n this._tooltip = command.tooltip\n this._menubarLabel = command.menubarLabel ?? command.label\n this.versionAdded = command.versionAdded\n this.confirmation = command.confirmation\n }\n\n get label() {\n return typeof this._label === 'function' ? this._label() : this._label\n }\n\n get icon() {\n return typeof this._icon === 'function' ? this._icon() : this._icon\n }\n\n get tooltip() {\n return typeof this._tooltip === 'function' ? this._tooltip() : this._tooltip\n }\n\n get menubarLabel() {\n return typeof this._menubarLabel === 'function'\n ? this._menubarLabel()\n : this._menubarLabel\n }\n\n get keybinding(): KeybindingImpl | null {\n return useKeybindingStore().getKeybindingByCommandId(this.id)\n }\n}\n\nexport const useCommandStore = defineStore('command', () => {\n const commandsById = ref>({})\n const commands = computed(() => Object.values(commandsById.value))\n\n const registerCommand = (command: ComfyCommand) => {\n if (commandsById.value[command.id]) {\n console.warn(`Command ${command.id} already registered`)\n }\n commandsById.value[command.id] = new ComfyCommandImpl(command)\n }\n\n const registerCommands = (commands: ComfyCommand[]) => {\n for (const command of commands) {\n registerCommand(command)\n }\n }\n\n const getCommand = (command: string) => {\n return commandsById.value[command]\n }\n\n const { wrapWithErrorHandlingAsync } = useErrorHandling()\n const execute = async (\n commandId: string,\n errorHandler?: (error: any) => void\n ) => {\n const command = getCommand(commandId)\n if (command) {\n await wrapWithErrorHandlingAsync(command.function, errorHandler)()\n } else {\n throw new Error(`Command ${commandId} not found`)\n }\n }\n\n const isRegistered = (command: string) => {\n return !!commandsById.value[command]\n }\n\n const loadExtensionCommands = (extension: ComfyExtension) => {\n if (extension.commands) {\n for (const command of extension.commands) {\n registerCommand(command)\n }\n }\n }\n\n return {\n commands,\n execute,\n getCommand,\n registerCommand,\n registerCommands,\n isRegistered,\n loadExtensionCommands\n }\n})\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tree {\\n background: \".concat(dt('tree.background'), \";\\n color: \").concat(dt('tree.color'), \";\\n padding: \").concat(dt('tree.padding'), \";\\n}\\n\\n.p-tree-root-children,\\n.p-tree-node-children {\\n display: flex;\\n list-style-type: none;\\n flex-direction: column;\\n margin: 0;\\n gap: \").concat(dt('tree.gap'), \";\\n}\\n\\n.p-tree-root-children {\\n padding: \").concat(dt('tree.gap'), \" 0 0 0;\\n}\\n\\n.p-tree-node-children {\\n padding: \").concat(dt('tree.gap'), \" 0 0 \").concat(dt('tree.indent'), \";\\n}\\n\\n.p-tree-node {\\n padding: 0;\\n outline: 0 none;\\n}\\n\\n.p-tree-node-content {\\n border-radius: \").concat(dt('tree.node.border.radius'), \";\\n padding: \").concat(dt('tree.node.padding'), \";\\n display: flex;\\n align-items: center;\\n outline-color: transparent;\\n color: \").concat(dt('tree.node.color'), \";\\n gap: \").concat(dt('tree.node.gap'), \";\\n transition: background \").concat(dt('tree.transition.duration'), \", color \").concat(dt('tree.transition.duration'), \", outline-color \").concat(dt('tree.transition.duration'), \", box-shadow \").concat(dt('tree.transition.duration'), \";\\n}\\n\\n.p-tree-node:focus-visible > .p-tree-node-content {\\n box-shadow: \").concat(dt('tree.node.focus.ring.shadow'), \";\\n outline: \").concat(dt('tree.node.focus.ring.width'), \" \").concat(dt('tree.node.focus.ring.style'), \" \").concat(dt('tree.node.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tree.node.focus.ring.offset'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover {\\n background: \").concat(dt('tree.node.hover.background'), \";\\n color: \").concat(dt('tree.node.hover.color'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover .p-tree-node-icon {\\n color: \").concat(dt('tree.node.icon.hover.color'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selected {\\n background: \").concat(dt('tree.node.selected.background'), \";\\n color: \").concat(dt('tree.node.selected.color'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button {\\n color: inherit;\\n}\\n\\n.p-tree-node-toggle-button {\\n cursor: pointer;\\n user-select: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n flex-shrink: 0;\\n width: \").concat(dt('tree.node.toggle.button.size'), \";\\n height: \").concat(dt('tree.node.toggle.button.size'), \";\\n color: \").concat(dt('tree.node.toggle.button.color'), \";\\n border: 0 none;\\n background: transparent;\\n border-radius: \").concat(dt('tree.node.toggle.button.border.radius'), \";\\n transition: background \").concat(dt('tree.transition.duration'), \", color \").concat(dt('tree.transition.duration'), \", border-color \").concat(dt('tree.transition.duration'), \", outline-color \").concat(dt('tree.transition.duration'), \", box-shadow \").concat(dt('tree.transition.duration'), \";\\n outline-color: transparent;\\n padding: 0;\\n}\\n\\n.p-tree-node-toggle-button:enabled:hover {\\n background: \").concat(dt('tree.node.toggle.button.hover.background'), \";\\n color: \").concat(dt('tree.node.toggle.button.hover.color'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button:hover {\\n background: \").concat(dt('tree.node.toggle.button.selected.hover.background'), \";\\n color: \").concat(dt('tree.node.toggle.button.selected.hover.color'), \";\\n}\\n\\n.p-tree-root {\\n overflow: auto;\\n}\\n\\n.p-tree-node-selectable {\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.p-tree-node-leaf > .p-tree-node-content .p-tree-node-toggle-button {\\n visibility: hidden;\\n}\\n\\n.p-tree-node-icon {\\n color: \").concat(dt('tree.node.icon.color'), \";\\n transition: color \").concat(dt('tree.transition.duration'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selected .p-tree-node-icon {\\n color: \").concat(dt('tree.node.icon.selected.color'), \";\\n}\\n\\n.p-tree-filter-input {\\n width: 100%;\\n}\\n\\n.p-tree-loading {\\n position: relative;\\n height: 100%;\\n}\\n\\n.p-tree-loading-icon {\\n font-size: \").concat(dt('tree.loading.icon.size'), \";\\n width: \").concat(dt('tree.loading.icon.size'), \";\\n height: \").concat(dt('tree.loading.icon.size'), \";\\n}\\n\\n.p-tree .p-tree-mask {\\n position: absolute;\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.p-tree-flex-scrollable {\\n display: flex;\\n flex: 1;\\n height: 100%;\\n flex-direction: column;\\n}\\n\\n.p-tree-flex-scrollable .p-tree-root {\\n flex: 1;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tree p-component', {\n 'p-tree-selectable': props.selectionMode != null,\n 'p-tree-loading': props.loading,\n 'p-tree-flex-scrollable': props.scrollHeight === 'flex'\n }];\n },\n mask: 'p-tree-mask p-overlay-mask',\n loadingIcon: 'p-tree-loading-icon',\n pcFilterInput: 'p-tree-filter-input',\n wrapper: 'p-tree-root',\n //TODO: discuss\n rootChildren: 'p-tree-root-children',\n node: function node(_ref3) {\n var instance = _ref3.instance;\n return ['p-tree-node', {\n 'p-tree-node-leaf': instance.leaf\n }];\n },\n nodeContent: function nodeContent(_ref4) {\n var instance = _ref4.instance;\n return ['p-tree-node-content', instance.node.styleClass, {\n 'p-tree-node-selectable': instance.selectable,\n 'p-tree-node-selected': instance.checkboxMode && instance.$parentInstance.highlightOnSelect ? instance.checked : instance.selected\n }];\n },\n nodeToggleButton: 'p-tree-node-toggle-button',\n nodeToggleIcon: 'p-tree-node-toggle-icon',\n nodeCheckbox: 'p-tree-node-checkbox',\n nodeIcon: 'p-tree-node-icon',\n nodeLabel: 'p-tree-node-label',\n nodeChildren: 'p-tree-node-children'\n};\nvar TreeStyle = BaseStyle.extend({\n name: 'tree',\n theme: theme,\n classes: classes\n});\n\nexport { TreeStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'MinusIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M13.2222 7.77778H0.777778C0.571498 7.77778 0.373667 7.69584 0.227806 7.54998C0.0819442 7.40412 0 7.20629 0 7.00001C0 6.79373 0.0819442 6.5959 0.227806 6.45003C0.373667 6.30417 0.571498 6.22223 0.777778 6.22223H13.2222C13.4285 6.22223 13.6263 6.30417 13.7722 6.45003C13.9181 6.5959 14 6.79373 14 7.00001C14 7.20629 13.9181 7.40412 13.7722 7.54998C13.6263 7.69584 13.4285 7.77778 13.2222 7.77778Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-checkbox {\\n position: relative;\\n display: inline-flex;\\n user-select: none;\\n vertical-align: bottom;\\n width: \".concat(dt('checkbox.width'), \";\\n height: \").concat(dt('checkbox.height'), \";\\n}\\n\\n.p-checkbox-input {\\n cursor: pointer;\\n appearance: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n padding: 0;\\n margin: 0;\\n opacity: 0;\\n z-index: 1;\\n outline: 0 none;\\n border: 1px solid transparent;\\n border-radius: \").concat(dt('checkbox.border.radius'), \";\\n}\\n\\n.p-checkbox-box {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: \").concat(dt('checkbox.border.radius'), \";\\n border: 1px solid \").concat(dt('checkbox.border.color'), \";\\n background: \").concat(dt('checkbox.background'), \";\\n width: \").concat(dt('checkbox.width'), \";\\n height: \").concat(dt('checkbox.height'), \";\\n transition: background \").concat(dt('checkbox.transition.duration'), \", color \").concat(dt('checkbox.transition.duration'), \", border-color \").concat(dt('checkbox.transition.duration'), \", box-shadow \").concat(dt('checkbox.transition.duration'), \", outline-color \").concat(dt('checkbox.transition.duration'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('checkbox.shadow'), \";\\n}\\n\\n.p-checkbox-icon {\\n transition-duration: \").concat(dt('checkbox.transition.duration'), \";\\n color: \").concat(dt('checkbox.icon.color'), \";\\n font-size: \").concat(dt('checkbox.icon.size'), \";\\n width: \").concat(dt('checkbox.icon.size'), \";\\n height: \").concat(dt('checkbox.icon.size'), \";\\n}\\n\\n.p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.hover.border.color'), \";\\n}\\n\\n.p-checkbox-checked .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.checked.border.color'), \";\\n background: \").concat(dt('checkbox.checked.background'), \";\\n}\\n\\n.p-checkbox-checked .p-checkbox-icon {\\n color: \").concat(dt('checkbox.icon.checked.color'), \";\\n}\\n\\n.p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\\n background: \").concat(dt('checkbox.checked.hover.background'), \";\\n border-color: \").concat(dt('checkbox.checked.hover.border.color'), \";\\n}\\n\\n.p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-icon {\\n color: \").concat(dt('checkbox.icon.checked.hover.color'), \";\\n}\\n\\n.p-checkbox:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.focus.border.color'), \";\\n box-shadow: \").concat(dt('checkbox.focus.ring.shadow'), \";\\n outline: \").concat(dt('checkbox.focus.ring.width'), \" \").concat(dt('checkbox.focus.ring.style'), \" \").concat(dt('checkbox.focus.ring.color'), \";\\n outline-offset: \").concat(dt('checkbox.focus.ring.offset'), \";\\n}\\n\\n.p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.checked.focus.border.color'), \";\\n}\\n\\n.p-checkbox.p-invalid > .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.invalid.border.color'), \";\\n}\\n\\n.p-checkbox.p-variant-filled .p-checkbox-box {\\n background: \").concat(dt('checkbox.filled.background'), \";\\n}\\n\\n.p-checkbox-checked.p-variant-filled .p-checkbox-box {\\n background: \").concat(dt('checkbox.checked.background'), \";\\n}\\n\\n.p-checkbox-checked.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\\n background: \").concat(dt('checkbox.checked.hover.background'), \";\\n}\\n\\n.p-checkbox.p-disabled {\\n opacity: 1;\\n}\\n\\n.p-checkbox.p-disabled .p-checkbox-box {\\n background: \").concat(dt('checkbox.disabled.background'), \";\\n border-color: \").concat(dt('checkbox.checked.disabled.border.color'), \";\\n}\\n\\n.p-checkbox.p-disabled .p-checkbox-box .p-checkbox-icon {\\n color: \").concat(dt('checkbox.icon.disabled.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-checkbox p-component', {\n 'p-checkbox-checked': instance.checked,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled'\n }];\n },\n box: 'p-checkbox-box',\n input: 'p-checkbox-input',\n icon: 'p-checkbox-icon'\n};\nvar CheckboxStyle = BaseStyle.extend({\n name: 'checkbox',\n theme: theme,\n classes: classes\n});\n\nexport { CheckboxStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { equals, contains } from '@primeuix/utils/object';\nimport CheckIcon from '@primevue/icons/check';\nimport MinusIcon from '@primevue/icons/minus';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckboxStyle from 'primevue/checkbox/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createElementVNode, renderSlot, normalizeClass, createBlock, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseCheckbox',\n \"extends\": BaseComponent,\n props: {\n value: null,\n modelValue: null,\n binary: Boolean,\n name: {\n type: String,\n \"default\": null\n },\n indeterminate: {\n type: Boolean,\n \"default\": false\n },\n trueValue: {\n type: null,\n \"default\": true\n },\n falseValue: {\n type: null,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n required: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: CheckboxStyle,\n provide: function provide() {\n return {\n $pcCheckbox: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Checkbox',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'update:indeterminate'],\n data: function data() {\n return {\n d_indeterminate: this.indeterminate\n };\n },\n watch: {\n indeterminate: function indeterminate(newValue) {\n this.d_indeterminate = newValue;\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n checked: this.checked,\n indeterminate: this.d_indeterminate,\n disabled: this.disabled\n }\n });\n },\n onChange: function onChange(event) {\n var _this = this;\n if (!this.disabled && !this.readonly) {\n var newModelValue;\n if (this.binary) {\n newModelValue = this.d_indeterminate ? this.trueValue : this.checked ? this.falseValue : this.trueValue;\n } else {\n if (this.checked || this.d_indeterminate) newModelValue = this.modelValue.filter(function (val) {\n return !equals(val, _this.value);\n });else newModelValue = this.modelValue ? [].concat(_toConsumableArray(this.modelValue), [this.value]) : [this.value];\n }\n if (this.d_indeterminate) {\n this.d_indeterminate = false;\n this.$emit('update:indeterminate', this.d_indeterminate);\n }\n this.$emit('update:modelValue', newModelValue);\n this.$emit('change', event);\n }\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.$emit('blur', event);\n }\n },\n computed: {\n checked: function checked() {\n return this.d_indeterminate ? false : this.binary ? this.modelValue === this.trueValue : contains(this.value, this.modelValue);\n }\n },\n components: {\n CheckIcon: CheckIcon,\n MinusIcon: MinusIcon\n }\n};\n\nvar _hoisted_1 = [\"data-p-checked\", \"data-p-indeterminate\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"id\", \"value\", \"name\", \"checked\", \"tabindex\", \"disabled\", \"readonly\", \"required\", \"aria-labelledby\", \"aria-label\", \"aria-invalid\", \"aria-checked\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_MinusIcon = resolveComponent(\"MinusIcon\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, $options.getPTOptions('root'), {\n \"data-p-checked\": $options.checked,\n \"data-p-indeterminate\": $data.d_indeterminate || undefined,\n \"data-p-disabled\": _ctx.disabled\n }), [createElementVNode(\"input\", mergeProps({\n id: _ctx.inputId,\n type: \"checkbox\",\n \"class\": [_ctx.cx('input'), _ctx.inputClass],\n style: _ctx.inputStyle,\n value: _ctx.value,\n name: _ctx.name,\n checked: $options.checked,\n tabindex: _ctx.tabindex,\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n required: _ctx.required,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-invalid\": _ctx.invalid || undefined,\n \"aria-checked\": $data.d_indeterminate ? 'mixed' : undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onChange: _cache[2] || (_cache[2] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, $options.getPTOptions('input')), null, 16, _hoisted_2), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('box')\n }, $options.getPTOptions('box')), [renderSlot(_ctx.$slots, \"icon\", {\n checked: $options.checked,\n indeterminate: $data.d_indeterminate,\n \"class\": normalizeClass(_ctx.cx('icon'))\n }, function () {\n return [$options.checked ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 0,\n \"class\": _ctx.cx('icon')\n }, $options.getPTOptions('icon')), null, 16, [\"class\"])) : $data.d_indeterminate ? (openBlock(), createBlock(_component_MinusIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('icon')\n }, $options.getPTOptions('icon')), null, 16, [\"class\"])) : createCommentVNode(\"\", true)];\n })], 16)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { resolveFieldData } from '@primeuix/utils/object';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TreeStyle from 'primevue/tree/style';\nimport { getAttribute, findSingle, find } from '@primeuix/utils/dom';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, createElementVNode, withDirectives, Fragment, createBlock, resolveDynamicComponent, normalizeClass, withCtx, createCommentVNode, withModifiers, createTextVNode, toDisplayString, renderList, renderSlot, createVNode } from 'vue';\n\nvar script$2 = {\n name: 'BaseTree',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: null,\n \"default\": null\n },\n expandedKeys: {\n type: null,\n \"default\": null\n },\n selectionKeys: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n metaKeySelection: {\n type: Boolean,\n \"default\": false\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n loadingIcon: {\n type: String,\n \"default\": undefined\n },\n loadingMode: {\n type: String,\n \"default\": 'mask'\n },\n filter: {\n type: Boolean,\n \"default\": false\n },\n filterBy: {\n type: String,\n \"default\": 'label'\n },\n filterMode: {\n type: String,\n \"default\": 'lenient'\n },\n filterPlaceholder: {\n type: String,\n \"default\": null\n },\n filterLocale: {\n type: String,\n \"default\": undefined\n },\n highlightOnSelect: {\n type: Boolean,\n \"default\": false\n },\n scrollHeight: {\n type: String,\n \"default\": null\n },\n level: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: TreeStyle,\n provide: function provide() {\n return {\n $pcTree: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction _createForOfIteratorHelper$1(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$1(e, r, t) { return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$1(t) { var i = _toPrimitive$1(t, \"string\"); return \"symbol\" == _typeof$1(i) ? i : i + \"\"; }\nfunction _toPrimitive$1(t, r) { if (\"object\" != _typeof$1(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$1(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray$1(r) { return _arrayWithoutHoles$1(r) || _iterableToArray$1(r) || _unsupportedIterableToArray$1(r) || _nonIterableSpread$1(); }\nfunction _nonIterableSpread$1() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray$1(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray$1(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; } }\nfunction _iterableToArray$1(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles$1(r) { if (Array.isArray(r)) return _arrayLikeToArray$1(r); }\nfunction _arrayLikeToArray$1(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script$1 = {\n name: 'TreeNode',\n hostName: 'Tree',\n \"extends\": BaseComponent,\n emits: ['node-toggle', 'node-click', 'checkbox-change'],\n props: {\n node: {\n type: null,\n \"default\": null\n },\n expandedKeys: {\n type: null,\n \"default\": null\n },\n loadingMode: {\n type: String,\n \"default\": 'mask'\n },\n selectionKeys: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n templates: {\n type: null,\n \"default\": null\n },\n level: {\n type: Number,\n \"default\": null\n },\n index: null\n },\n nodeTouched: false,\n toggleClicked: false,\n mounted: function mounted() {\n this.setAllNodesTabIndexes();\n },\n methods: {\n toggle: function toggle() {\n this.$emit('node-toggle', this.node);\n this.toggleClicked = true;\n },\n label: function label(node) {\n return typeof node.label === 'function' ? node.label() : node.label;\n },\n onChildNodeToggle: function onChildNodeToggle(node) {\n this.$emit('node-toggle', node);\n },\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n index: this.index,\n expanded: this.expanded,\n selected: this.selected,\n checked: this.checked,\n leaf: this.leaf\n }\n });\n },\n onClick: function onClick(event) {\n if (this.toggleClicked || getAttribute(event.target, '[data-pc-section=\"nodetogglebutton\"]') || getAttribute(event.target.parentElement, '[data-pc-section=\"nodetogglebutton\"]')) {\n this.toggleClicked = false;\n return;\n }\n if (this.isCheckboxSelectionMode()) {\n if (this.node.selectable != false) {\n this.toggleCheckbox();\n }\n } else {\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n }\n this.nodeTouched = false;\n },\n onChildNodeClick: function onChildNodeClick(event) {\n this.$emit('node-click', event);\n },\n onTouchEnd: function onTouchEnd() {\n this.nodeTouched = true;\n },\n onKeyDown: function onKeyDown(event) {\n if (!this.isSameNode(event)) return;\n switch (event.code) {\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n case 'ArrowRight':\n this.onArrowRight(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeft(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n }\n },\n onArrowDown: function onArrowDown(event) {\n var nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role=\"treeitem\"]') : event.target;\n var listElement = nodeElement.children[1];\n if (listElement) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.nextElementSibling);\n } else {\n var nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n event.preventDefault();\n },\n onArrowUp: function onArrowUp(event) {\n var nodeElement = event.target;\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n var parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n event.preventDefault();\n },\n onArrowRight: function onArrowRight(event) {\n var _this = this;\n if (this.leaf || this.expanded) return;\n event.currentTarget.tabIndex = -1;\n this.$emit('node-toggle', this.node);\n this.$nextTick(function () {\n _this.onArrowDown(event);\n });\n },\n onArrowLeft: function onArrowLeft(event) {\n var togglerElement = findSingle(event.currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n if (this.level === 0 && !this.expanded) {\n return false;\n }\n if (this.expanded && !this.leaf) {\n togglerElement.click();\n return false;\n }\n var target = this.findBeforeClickableNode(event.currentTarget);\n if (target) {\n this.focusRowChange(event.currentTarget, target);\n }\n },\n onEnterKey: function onEnterKey(event) {\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n this.onClick(event);\n event.preventDefault();\n },\n onTabKey: function onTabKey() {\n this.setAllNodesTabIndexes();\n },\n setAllNodesTabIndexes: function setAllNodesTabIndexes() {\n var nodes = find(this.$refs.currentNode.closest('[data-pc-section=\"rootchildren\"]'), '[role=\"treeitem\"]');\n var hasSelectedNode = _toConsumableArray$1(nodes).some(function (node) {\n return node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true';\n });\n _toConsumableArray$1(nodes).forEach(function (node) {\n node.tabIndex = -1;\n });\n if (hasSelectedNode) {\n var selectedNodes = _toConsumableArray$1(nodes).filter(function (node) {\n return node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true';\n });\n selectedNodes[0].tabIndex = 0;\n return;\n }\n _toConsumableArray$1(nodes)[0].tabIndex = 0;\n },\n setTabIndexForSelectionMode: function setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n var elements = _toConsumableArray$1(find(this.$refs.currentNode.parentElement, '[role=\"treeitem\"]'));\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n if (elements.every(function (element) {\n return element.tabIndex === -1;\n })) {\n elements[0].tabIndex = 0;\n }\n }\n },\n focusRowChange: function focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n },\n findBeforeClickableNode: function findBeforeClickableNode(node) {\n var parentListElement = node.closest('ul').closest('li');\n if (parentListElement) {\n var prevNodeButton = findSingle(parentListElement, 'button');\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return parentListElement;\n }\n return this.findBeforeClickableNode(node.previousElementSibling);\n }\n return null;\n },\n toggleCheckbox: function toggleCheckbox() {\n var _selectionKeys = this.selectionKeys ? _objectSpread$1({}, this.selectionKeys) : {};\n var _check = !this.checked;\n this.propagateDown(this.node, _check, _selectionKeys);\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown: function propagateDown(node, check, selectionKeys) {\n if (check && node.selectable != false) selectionKeys[node.key] = {\n checked: true,\n partialChecked: false\n };else delete selectionKeys[node.key];\n if (node.children && node.children.length) {\n var _iterator = _createForOfIteratorHelper$1(node.children),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var child = _step.value;\n this.propagateDown(child, check, selectionKeys);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n },\n propagateUp: function propagateUp(event) {\n var check = event.check;\n var _selectionKeys = _objectSpread$1({}, event.selectionKeys);\n var checkedChildCount = 0;\n var childPartialSelected = false;\n var _iterator2 = _createForOfIteratorHelper$1(this.node.children),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var child = _step2.value;\n if (_selectionKeys[child.key] && _selectionKeys[child.key].checked) checkedChildCount++;else if (_selectionKeys[child.key] && _selectionKeys[child.key].partialChecked) childPartialSelected = true;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.node.key] = {\n checked: true,\n partialChecked: false\n };\n } else {\n if (!check) {\n delete _selectionKeys[this.node.key];\n }\n if (childPartialSelected || checkedChildCount > 0 && checkedChildCount !== this.node.children.length) _selectionKeys[this.node.key] = {\n checked: false,\n partialChecked: true\n };else delete _selectionKeys[this.node.key];\n }\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onChildCheckboxChange: function onChildCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n findNextSiblingOfAncestor: function findNextSiblingOfAncestor(nodeElement) {\n var parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n },\n findLastVisibleDescendant: function findLastVisibleDescendant(nodeElement) {\n var childrenListElement = nodeElement.children[1];\n if (childrenListElement) {\n var lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n },\n getParentNodeElement: function getParentNodeElement(nodeElement) {\n var parentNodeElement = nodeElement.parentElement.parentElement;\n return getAttribute(parentNodeElement, 'role') === 'treeitem' ? parentNodeElement : null;\n },\n focusNode: function focusNode(element) {\n element.focus();\n },\n isCheckboxSelectionMode: function isCheckboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n },\n isSameNode: function isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n },\n computed: {\n hasChildren: function hasChildren() {\n return this.node.children && this.node.children.length > 0;\n },\n expanded: function expanded() {\n return this.expandedKeys && this.expandedKeys[this.node.key] === true;\n },\n leaf: function leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selectable: function selectable() {\n return this.node.selectable === false ? false : this.selectionMode != null;\n },\n selected: function selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.node.key] === true : false;\n },\n checkboxMode: function checkboxMode() {\n return this.selectionMode === 'checkbox' && this.node.selectable !== false;\n },\n checked: function checked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].checked : false;\n },\n partialChecked: function partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].partialChecked : false;\n },\n ariaChecked: function ariaChecked() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : undefined;\n },\n ariaSelected: function ariaSelected() {\n return this.checkboxMode ? this.checked : undefined;\n }\n },\n components: {\n Checkbox: Checkbox,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon,\n CheckIcon: CheckIcon,\n MinusIcon: MinusIcon,\n SpinnerIcon: SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"aria-label\", \"aria-selected\", \"aria-expanded\", \"aria-setsize\", \"aria-posinset\", \"aria-level\", \"aria-checked\", \"tabindex\"];\nvar _hoisted_2 = [\"data-p-selected\", \"data-p-selectable\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_Checkbox = resolveComponent(\"Checkbox\");\n var _component_TreeNode = resolveComponent(\"TreeNode\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"li\", mergeProps({\n ref: \"currentNode\",\n \"class\": _ctx.cx('node'),\n role: \"treeitem\",\n \"aria-label\": $options.label($props.node),\n \"aria-selected\": $options.ariaSelected,\n \"aria-expanded\": $options.expanded,\n \"aria-setsize\": $props.node.children ? $props.node.children.length : 0,\n \"aria-posinset\": $props.index + 1,\n \"aria-level\": $props.level,\n \"aria-checked\": $options.ariaChecked,\n tabindex: $props.index === 0 ? 0 : -1,\n onKeydown: _cache[4] || (_cache[4] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n })\n }, $props.level === 1 ? $options.getPTOptions('node') : _ctx.ptm('nodeChildren')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('nodeContent'),\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.onClick && $options.onClick.apply($options, arguments);\n }),\n onTouchend: _cache[3] || (_cache[3] = function () {\n return $options.onTouchEnd && $options.onTouchEnd.apply($options, arguments);\n }),\n style: $props.node.style\n }, $options.getPTOptions('nodeContent'), {\n \"data-p-selected\": $options.checkboxMode ? $options.checked : $options.selected,\n \"data-p-selectable\": $options.selectable\n }), [withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n type: \"button\",\n \"class\": _ctx.cx('nodeToggleButton'),\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.toggle && $options.toggle.apply($options, arguments);\n }),\n tabindex: \"-1\"\n }, $options.getPTOptions('nodeToggleButton')), [$props.node.loading && $props.loadingMode === 'icon' ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [$props.templates['nodetoggleicon'] || $props.templates['nodetogglericon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['nodetoggleicon'] || $props.templates['nodetogglericon']), {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('nodeToggleIcon'))\n }, null, 8, [\"class\"])) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n spin: \"\",\n \"class\": _ctx.cx('nodetogglericon')\n }, _ctx.ptm('nodeToggleIcon')), null, 16, [\"class\"]))], 64)) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [$props.templates['nodetoggleicon'] || $props.templates['togglericon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['nodetoggleicon'] || $props.templates['togglericon']), {\n key: 0,\n node: $props.node,\n expanded: $options.expanded,\n \"class\": normalizeClass(_ctx.cx('nodeToggleIcon'))\n }, null, 8, [\"node\", \"expanded\", \"class\"])) : $options.expanded ? (openBlock(), createBlock(resolveDynamicComponent($props.node.expandedIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n key: 1,\n \"class\": _ctx.cx('nodeToggleIcon')\n }, $options.getPTOptions('nodeToggleIcon')), null, 16, [\"class\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.node.collapsedIcon ? 'span' : 'ChevronRightIcon'), mergeProps({\n key: 2,\n \"class\": _ctx.cx('nodeToggleIcon')\n }, $options.getPTOptions('nodeToggleIcon')), null, 16, [\"class\"]))], 64))], 16)), [[_directive_ripple]]), $options.checkboxMode ? (openBlock(), createBlock(_component_Checkbox, {\n key: 0,\n modelValue: $options.checked,\n binary: true,\n indeterminate: $options.partialChecked,\n \"class\": normalizeClass(_ctx.cx('nodeCheckbox')),\n tabindex: -1,\n unstyled: _ctx.unstyled,\n pt: $options.getPTOptions('nodeCheckbox'),\n \"data-p-partialchecked\": $options.partialChecked\n }, {\n icon: withCtx(function (slotProps) {\n return [$props.templates['checkboxicon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['checkboxicon']), {\n key: 0,\n checked: slotProps.checked,\n partialChecked: $options.partialChecked,\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"checked\", \"partialChecked\", \"class\"])) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 8, [\"modelValue\", \"indeterminate\", \"class\", \"unstyled\", \"pt\", \"data-p-partialchecked\"])) : createCommentVNode(\"\", true), $props.templates['nodeicon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['nodeicon']), mergeProps({\n key: 1,\n node: $props.node,\n \"class\": [_ctx.cx('nodeIcon')]\n }, $options.getPTOptions('nodeIcon')), null, 16, [\"node\", \"class\"])) : (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": [_ctx.cx('nodeIcon'), $props.node.icon]\n }, $options.getPTOptions('nodeIcon')), null, 16)), createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('nodeLabel')\n }, $options.getPTOptions('nodeLabel'), {\n onKeydown: _cache[1] || (_cache[1] = withModifiers(function () {}, [\"stop\"]))\n }), [$props.templates[$props.node.type] || $props.templates['default'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates[$props.node.type] || $props.templates['default']), {\n key: 0,\n node: $props.node,\n selected: $options.checkboxMode ? $options.checked : $options.selected\n }, null, 8, [\"node\", \"selected\"])) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [createTextVNode(toDisplayString($options.label($props.node)), 1)], 64))], 16)], 16, _hoisted_2), $options.hasChildren && $options.expanded ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('nodeChildren'),\n role: \"group\"\n }, _ctx.ptm('nodeChildren')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.node.children, function (childNode) {\n return openBlock(), createBlock(_component_TreeNode, {\n key: childNode.key,\n node: childNode,\n templates: $props.templates,\n level: $props.level + 1,\n loadingMode: $props.loadingMode,\n expandedKeys: $props.expandedKeys,\n onNodeToggle: $options.onChildNodeToggle,\n onNodeClick: $options.onChildNodeClick,\n selectionMode: $props.selectionMode,\n selectionKeys: $props.selectionKeys,\n onCheckboxChange: $options.propagateUp,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"node\", \"templates\", \"level\", \"loadingMode\", \"expandedKeys\", \"onNodeToggle\", \"onNodeClick\", \"selectionMode\", \"selectionKeys\", \"onCheckboxChange\", \"unstyled\", \"pt\"]);\n }), 128))], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1$1);\n}\n\nscript$1.render = render$1;\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script = {\n name: 'Tree',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['node-expand', 'node-collapse', 'update:expandedKeys', 'update:selectionKeys', 'node-select', 'node-unselect', 'filter'],\n data: function data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n filterValue: null\n };\n },\n watch: {\n expandedKeys: function expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n }\n },\n methods: {\n onNodeToggle: function onNodeToggle(node) {\n var key = node.key;\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n this.d_expandedKeys = _objectSpread({}, this.d_expandedKeys);\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick: function onNodeClick(event) {\n if (this.selectionMode != null && event.node.selectable !== false) {\n var metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n var _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n onCheckboxChange: function onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n if (event.check) this.$emit('node-select', event.node);else this.$emit('node-unselect', event.node);\n },\n handleSelectionWithMetaKey: function handleSelectionWithMetaKey(event) {\n var originalEvent = event.originalEvent;\n var node = event.node;\n var metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n var selected = this.isNodeSelected(node);\n var _selectionKeys;\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = _objectSpread({}, this.selectionKeys);\n delete _selectionKeys[node.key];\n }\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? _objectSpread({}, this.selectionKeys) : {};\n }\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey: function handleSelectionWithoutMetaKey(event) {\n var node = event.node;\n var selected = this.isNodeSelected(node);\n var _selectionKeys;\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = _objectSpread({}, this.selectionKeys);\n delete _selectionKeys[node.key];\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? _objectSpread({}, this.selectionKeys) : {};\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n }\n return _selectionKeys;\n },\n isSingleSelectionMode: function isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode: function isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isNodeSelected: function isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[node.key] === true : false;\n },\n isChecked: function isChecked(node) {\n return this.selectionKeys ? this.selectionKeys[node.key] && this.selectionKeys[node.key].checked : false;\n },\n isNodeLeaf: function isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n onFilterKeydown: function onFilterKeydown(event) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n event.preventDefault();\n }\n this.$emit('filter', {\n originalEvent: event,\n value: event.target.value\n });\n },\n findFilteredNodes: function findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n var matched = false;\n if (node.children) {\n var childNodes = _toConsumableArray(node.children);\n node.children = [];\n var _iterator = _createForOfIteratorHelper(childNodes),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var childNode = _step.value;\n var copyChildNode = _objectSpread({}, childNode);\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched: function isFilterMatched(node, _ref) {\n var searchFields = _ref.searchFields,\n filterText = _ref.filterText,\n strict = _ref.strict;\n var matched = false;\n var _iterator2 = _createForOfIteratorHelper(searchFields),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var field = _step2.value;\n var fieldValue = String(resolveFieldData(node, field)).toLocaleLowerCase(this.filterLocale);\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (!matched || strict && !this.isNodeLeaf(node)) {\n matched = this.findFilteredNodes(node, {\n searchFields: searchFields,\n filterText: filterText,\n strict: strict\n }) || matched;\n }\n return matched;\n }\n },\n computed: {\n filteredValue: function filteredValue() {\n var filteredNodes = [];\n var searchFields = this.filterBy.split(',');\n var filterText = this.filterValue.trim().toLocaleLowerCase(this.filterLocale);\n var strict = this.filterMode === 'strict';\n var _iterator3 = _createForOfIteratorHelper(this.value),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var node = _step3.value;\n var _node = _objectSpread({}, node);\n var paramsWithoutNode = {\n searchFields: searchFields,\n filterText: filterText,\n strict: strict\n };\n if (strict && (this.findFilteredNodes(_node, paramsWithoutNode) || this.isFilterMatched(_node, paramsWithoutNode)) || !strict && (this.isFilterMatched(_node, paramsWithoutNode) || this.findFilteredNodes(_node, paramsWithoutNode))) {\n filteredNodes.push(_node);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return filteredNodes;\n },\n valueToRender: function valueToRender() {\n if (this.filterValue && this.filterValue.trim().length > 0) return this.filteredValue;else return this.value;\n }\n },\n components: {\n TreeNode: script$1,\n InputText: InputText,\n InputIcon: InputIcon,\n IconField: IconField,\n SearchIcon: SearchIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n\nvar _hoisted_1 = [\"aria-labelledby\", \"aria-label\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_SearchIcon = resolveComponent(\"SearchIcon\");\n var _component_InputIcon = resolveComponent(\"InputIcon\");\n var _component_IconField = resolveComponent(\"IconField\");\n var _component_TreeNode = resolveComponent(\"TreeNode\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.loading && _ctx.loadingMode === 'mask' ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('mask')\n }, _ctx.ptm('mask')), [renderSlot(_ctx.$slots, \"loadingicon\", {\n \"class\": normalizeClass(_ctx.cx('loadingIcon'))\n }, function () {\n return [_ctx.loadingIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('loadingIcon'), 'pi-spin', _ctx.loadingIcon]\n }, _ctx.ptm('loadingIcon')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n spin: \"\",\n \"class\": _ctx.cx('loadingIcon')\n }, _ctx.ptm('loadingIcon')), null, 16, [\"class\"]))];\n })], 16)) : createCommentVNode(\"\", true), _ctx.filter ? (openBlock(), createBlock(_component_IconField, {\n key: 1,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcFilterContainer')\n }, {\n \"default\": withCtx(function () {\n return [createVNode(_component_InputText, {\n modelValue: $data.filterValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function ($event) {\n return $data.filterValue = $event;\n }),\n autocomplete: \"off\",\n \"class\": normalizeClass(_ctx.cx('pcFilter')),\n placeholder: _ctx.filterPlaceholder,\n unstyled: _ctx.unstyled,\n onKeydown: $options.onFilterKeydown,\n pt: _ctx.ptm('pcFilter')\n }, null, 8, [\"modelValue\", \"class\", \"placeholder\", \"unstyled\", \"onKeydown\", \"pt\"]), createVNode(_component_InputIcon, {\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcFilterIconContainer')\n }, {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, _ctx.$slots.filtericon ? 'filtericon' : 'searchicon', {\n \"class\": normalizeClass(_ctx.cx('filterIcon'))\n }, function () {\n return [createVNode(_component_SearchIcon, mergeProps({\n \"class\": _ctx.cx('filterIcon')\n }, _ctx.ptm('filterIcon')), null, 16, [\"class\"])];\n })];\n }),\n _: 3\n }, 8, [\"unstyled\", \"pt\"])];\n }),\n _: 3\n }, 8, [\"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('wrapper'),\n style: {\n maxHeight: _ctx.scrollHeight\n }\n }, _ctx.ptm('wrapper')), [createElementVNode(\"ul\", mergeProps({\n \"class\": _ctx.cx('rootChildren'),\n role: \"tree\",\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel\n }, _ctx.ptm('rootChildren')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.valueToRender, function (node, index) {\n return openBlock(), createBlock(_component_TreeNode, {\n key: node.key,\n node: node,\n templates: _ctx.$slots,\n level: _ctx.level + 1,\n index: index,\n expandedKeys: $data.d_expandedKeys,\n onNodeToggle: $options.onNodeToggle,\n onNodeClick: $options.onNodeClick,\n selectionMode: _ctx.selectionMode,\n selectionKeys: _ctx.selectionKeys,\n onCheckboxChange: $options.onCheckboxChange,\n loadingMode: _ctx.loadingMode,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"node\", \"templates\", \"level\", \"index\", \"expandedKeys\", \"onNodeToggle\", \"onNodeClick\", \"selectionMode\", \"selectionKeys\", \"onCheckboxChange\", \"loadingMode\", \"unstyled\", \"pt\"]);\n }), 128))], 16, _hoisted_1)], 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-contextmenu {\\n background: \".concat(dt('contextmenu.background'), \";\\n color: \").concat(dt('contextmenu.color'), \";\\n border: 1px solid \").concat(dt('contextmenu.border.color'), \";\\n border-radius: \").concat(dt('contextmenu.border.radius'), \";\\n box-shadow: \").concat(dt('contextmenu.shadow'), \";\\n min-width: 12.5rem;\\n}\\n\\n.p-contextmenu-root-list,\\n.p-contextmenu-submenu {\\n margin: 0;\\n padding: \").concat(dt('contextmenu.list.padding'), \";\\n list-style: none;\\n outline: 0 none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('contextmenu.list.gap'), \";\\n}\\n\\n.p-contextmenu-submenu {\\n position: absolute;\\n display: flex;\\n flex-direction: column;\\n min-width: 100%;\\n z-index: 1;\\n background: \").concat(dt('contextmenu.background'), \";\\n color: \").concat(dt('contextmenu.color'), \";\\n border: 1px solid \").concat(dt('contextmenu.border.color'), \";\\n border-radius: \").concat(dt('contextmenu.border.radius'), \";\\n box-shadow: \").concat(dt('contextmenu.shadow'), \";\\n}\\n\\n.p-contextmenu-item {\\n position: relative;\\n}\\n\\n.p-contextmenu-item-content {\\n transition: background \").concat(dt('contextmenu.transition.duration'), \", color \").concat(dt('contextmenu.transition.duration'), \";\\n border-radius: \").concat(dt('contextmenu.item.border.radius'), \";\\n color: \").concat(dt('contextmenu.item.color'), \";\\n}\\n\\n.p-contextmenu-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('contextmenu.item.padding'), \";\\n gap: \").concat(dt('contextmenu.item.gap'), \";\\n user-select: none;\\n}\\n\\n.p-contextmenu-item-label {\\n line-height: 1;\\n}\\n\\n.p-contextmenu-item-icon {\\n color: \").concat(dt('contextmenu.item.icon.color'), \";\\n}\\n\\n.p-contextmenu-submenu-icon {\\n color: \").concat(dt('contextmenu.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('contextmenu.submenu.icon.size'), \";\\n width: \").concat(dt('contextmenu.submenu.icon.size'), \";\\n height: \").concat(dt('contextmenu.submenu.icon.size'), \";\\n}\\n\\n.p-contextmenu-item.p-focus > .p-contextmenu-item-content {\\n color: \").concat(dt('contextmenu.item.focus.color'), \";\\n background: \").concat(dt('contextmenu.item.focus.background'), \";\\n}\\n\\n.p-contextmenu-item.p-focus > .p-contextmenu-item-content .p-contextmenu-item-icon {\\n color: \").concat(dt('contextmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-contextmenu-item.p-focus > .p-contextmenu-item-content .p-contextmenu-submenu-icon {\\n color: \").concat(dt('contextmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-contextmenu-item:not(.p-disabled) > .p-contextmenu-item-content:hover {\\n color: \").concat(dt('contextmenu.item.focus.color'), \";\\n background: \").concat(dt('contextmenu.item.focus.background'), \";\\n}\\n\\n.p-contextmenu-item:not(.p-disabled) > .p-contextmenu-item-content:hover .p-contextmenu-item-icon {\\n color: \").concat(dt('contextmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-contextmenu-item:not(.p-disabled) > .p-contextmenu-item-content:hover .p-contextmenu-submenu-icon {\\n color: \").concat(dt('contextmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-contextmenu-item-active > .p-contextmenu-item-content {\\n color: \").concat(dt('contextmenu.item.active.color'), \";\\n background: \").concat(dt('contextmenu.item.active.background'), \";\\n}\\n\\n.p-contextmenu-item-active > .p-contextmenu-item-content .p-contextmenu-item-icon {\\n color: \").concat(dt('contextmenu.item.icon.active.color'), \";\\n}\\n\\n.p-contextmenu-item-active > .p-contextmenu-item-content .p-contextmenu-submenu-icon {\\n color: \").concat(dt('contextmenu.submenu.icon.active.color'), \";\\n}\\n\\n.p-contextmenu-separator {\\n border-top: 1px solid \").concat(dt('contextmenu.separator.border.color'), \";\\n}\\n\\n.p-contextmenu-enter-from,\\n.p-contextmenu-leave-active {\\n opacity: 0;\\n}\\n\\n.p-contextmenu-enter-active {\\n transition: opacity 250ms;\\n}\\n\");\n};\nvar classes = {\n root: 'p-contextmenu p-component',\n rootList: 'p-contextmenu-root-list',\n item: function item(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return ['p-contextmenu-item', {\n 'p-contextmenu-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-contextmenu-item-content',\n itemLink: 'p-contextmenu-item-link',\n itemIcon: 'p-contextmenu-item-icon',\n itemLabel: 'p-contextmenu-item-label',\n submenuIcon: 'p-contextmenu-submenu-icon',\n submenu: 'p-contextmenu-submenu',\n separator: 'p-contextmenu-separator'\n};\nvar ContextMenuStyle = BaseStyle.extend({\n name: 'contextmenu',\n theme: theme,\n classes: classes\n});\n\nexport { ContextMenuStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleRightIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { nestedPosition, focus, findSingle, addStyle, getHiddenElementOuterWidth, getHiddenElementOuterHeight, getViewport, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport Portal from 'primevue/portal';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ContextMenuStyle from 'primevue/contextmenu/style';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createBlock, Transition, withCtx, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, createVNode } from 'vue';\n\nvar script$2 = {\n name: 'BaseContextMenu',\n \"extends\": BaseComponent,\n props: {\n model: {\n type: Array,\n \"default\": null\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n global: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: ContextMenuStyle,\n provide: function provide() {\n return {\n $pcContextMenu: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'ContextMenuSub',\n hostName: 'ContextMenu',\n \"extends\": BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n \"default\": null\n },\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n root: {\n type: Boolean,\n \"default\": false\n },\n visible: {\n type: Boolean,\n \"default\": false\n },\n level: {\n type: Number,\n \"default\": 0\n },\n templates: {\n type: Object,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n }\n },\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(key, processedItem, index) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n index: index\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && !_this.getItemProp(processedItem, 'separator');\n }).length;\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this2 = this;\n return index - this.items.slice(0, index).filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && _this2.getItemProp(processedItem, 'separator');\n }).length + 1;\n },\n onEnter: function onEnter() {\n nestedPosition(this.$refs.container, this.level);\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions('itemLink', processedItem, index)),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions('itemIcon', processedItem, index)),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions('itemLabel', processedItem, index)),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions('submenuicon', processedItem, index))\n };\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"tabindex\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_3 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_4 = [\"href\", \"target\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_AngleRightIcon = resolveComponent(\"AngleRightIcon\");\n var _component_ContextMenuSub = resolveComponent(\"ContextMenuSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createBlock(Transition, mergeProps({\n name: \"p-contextmenusub\",\n onEnter: $options.onEnter\n }, _ctx.ptm('menu.transition')), {\n \"default\": withCtx(function () {\n return [($props.root ? true : $props.visible) ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n ref: \"container\",\n tabindex: $props.tabindex\n }, _ctx.ptm('rootList')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize(),\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions('item', processedItem, index), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions('itemContent', processedItem, index)), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions('itemLink', processedItem, index)), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions('itemIcon', processedItem, index)), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions('itemLabel', processedItem, index)), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_5), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), {\n key: 0,\n active: $options.isItemActive(processedItem),\n \"class\": normalizeClass(_ctx.cx('submenuIcon'))\n }, null, 8, [\"active\", \"class\"])) : (openBlock(), createBlock(_component_AngleRightIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions('submenuicon', processedItem, index)), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_4)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_3), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_ContextMenuSub, mergeProps({\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n role: \"menu\",\n \"class\": _ctx.cx('submenu'),\n menuId: $props.menuId,\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n templates: $props.templates,\n activeItemPath: $props.activeItemPath,\n level: $props.level + 1,\n visible: $options.isItemActive(processedItem) && $options.isItemGroup(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n }),\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n ref_for: true\n }, _ctx.ptm('submenu')), null, 16, [\"id\", \"class\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"level\", \"visible\", \"pt\", \"unstyled\", \"aria-labelledby\"])) : createCommentVNode(\"\", true)], 16, _hoisted_2)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_6)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\"]);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'ContextMenu',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'show', 'hide', 'before-show', 'before-hide'],\n target: null,\n outsideClickListener: null,\n resizeListener: null,\n documentContextMenuListener: null,\n pageX: null,\n pageY: null,\n container: null,\n list: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n visible: false,\n submenuVisible: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else if (!this.visible) {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n if (this.global) {\n this.bindDocumentContextMenuListener();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindResizeListener();\n this.unbindOutsideClickListener();\n this.unbindDocumentContextMenuListener();\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n this.visible ? this.hide() : this.show(event);\n },\n show: function show(event) {\n this.$emit('before-show');\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n focus(this.list);\n this.pageX = event.pageX;\n this.pageY = event.pageY;\n this.visible ? this.position() : this.visible = true;\n event.stopPropagation();\n event.preventDefault();\n },\n hide: function hide() {\n this.$emit('before-hide');\n this.visible = false;\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n isFocus && focus(this.list);\n },\n onItemClick: function onItemClick(event) {\n var processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n focus(this.list);\n } else {\n grouped ? this.onItemChange(event) : this.hide();\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n this.onItemChange(event);\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.popup && this.hide();\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n var root = isEmpty(processedItem.parent);\n if (!root) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.list, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemIdx), \"\\\"]\"));\n var anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n this.hide();\n !this.popup && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n onEnter: function onEnter(el) {\n addStyle(el, {\n position: 'absolute'\n });\n this.position();\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n },\n onAfterEnter: function onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n this.$emit('show');\n focus(this.list);\n },\n onLeave: function onLeave() {\n this.$emit('hide');\n this.container = null;\n },\n onAfterLeave: function onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n },\n position: function position() {\n var left = this.pageX + 1;\n var top = this.pageY + 1;\n var width = this.container.offsetParent ? this.container.offsetWidth : getHiddenElementOuterWidth(this.container);\n var height = this.container.offsetParent ? this.container.offsetHeight : getHiddenElementOuterHeight(this.container);\n var viewport = getViewport();\n\n //flip\n if (left + width - document.body.scrollLeft > viewport.width) {\n left -= width;\n }\n\n //flip\n if (top + height - document.body.scrollTop > viewport.height) {\n top -= height;\n }\n\n //fit\n if (left < document.body.scrollLeft) {\n left = document.body.scrollLeft;\n }\n\n //fit\n if (top < document.body.scrollTop) {\n top = document.body.scrollTop;\n }\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this2 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this2.container && !_this2.container.contains(event.target);\n var isOutsideTarget = _this2.visible ? !(_this2.target && (_this2.target === event.target || _this2.target.contains(event.target))) : true;\n if (isOutsideContainer && isOutsideTarget) {\n _this2.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this3 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this3.visible && !isTouchDevice()) {\n _this3.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindDocumentContextMenuListener: function bindDocumentContextMenuListener() {\n var _this4 = this;\n if (!this.documentContextMenuListener) {\n this.documentContextMenuListener = function (event) {\n event.button === 2 && _this4.show(event);\n };\n document.addEventListener('contextmenu', this.documentContextMenuListener);\n }\n },\n unbindDocumentContextMenuListener: function unbindDocumentContextMenuListener() {\n if (this.documentContextMenuListener) {\n document.removeEventListener('contextmenu', this.documentContextMenuListener);\n this.documentContextMenuListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this5 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this5.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this6 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this6.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this7 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this7.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this8 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this8.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this9 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this9.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this10 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this10.searchValue = '';\n _this10.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemIdx;\n var element = findSingle(this.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this11 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this11.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n listRef: function listRef(el) {\n this.list = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this12 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this12.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemIdx: function focusedItemIdx() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n ContextMenuSub: script$1,\n Portal: Portal\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_ContextMenuSub = resolveComponent(\"ContextMenuSub\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, {\n appendTo: _ctx.appendTo\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-contextmenu\",\n onEnter: $options.onEnter,\n onAfterEnter: $options.onAfterEnter,\n onLeave: $options.onLeave,\n onAfterLeave: $options.onAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.visible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createVNode(_component_ContextMenuSub, {\n ref: $options.listRef,\n id: $data.id + '_list',\n \"class\": normalizeClass(_ctx.cx('rootList')),\n role: \"menubar\",\n root: true,\n tabindex: _ctx.tabindex,\n \"aria-orientation\": \"vertical\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemIdx : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemIdx : undefined,\n items: $options.processedItems,\n templates: _ctx.$slots,\n activeItemPath: $data.activeItemPath,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n level: 0,\n visible: $data.submenuVisible,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"class\", \"tabindex\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"aria-labelledby\", \"aria-label\", \"visible\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"])], 16)) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 1\n }, 8, [\"appendTo\"]);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bind = void 0;\nfunction bind(target, _a) {\n var type = _a.type, listener = _a.listener, options = _a.options;\n target.addEventListener(type, listener, options);\n return function unbind() {\n target.removeEventListener(type, listener, options);\n };\n}\nexports.bind = bind;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = void 0;\nvar bind_1 = require(\"./bind\");\nfunction toOptions(value) {\n if (typeof value === 'undefined') {\n return undefined;\n }\n if (typeof value === 'boolean') {\n return {\n capture: value,\n };\n }\n return value;\n}\nfunction getBinding(original, sharedOptions) {\n if (sharedOptions == null) {\n return original;\n }\n var binding = __assign(__assign({}, original), { options: __assign(__assign({}, toOptions(sharedOptions)), toOptions(original.options)) });\n return binding;\n}\nfunction bindAll(target, bindings, sharedOptions) {\n var unbinds = bindings.map(function (original) {\n var binding = getBinding(original, sharedOptions);\n return (0, bind_1.bind)(target, binding);\n });\n return function unbindAll() {\n unbinds.forEach(function (unbind) { return unbind(); });\n };\n}\nexports.bindAll = bindAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = exports.bind = void 0;\nvar bind_1 = require(\"./bind\");\nObject.defineProperty(exports, \"bind\", { enumerable: true, get: function () { return bind_1.bind; } });\nvar bind_all_1 = require(\"./bind-all\");\nObject.defineProperty(exports, \"bindAll\", { enumerable: true, get: function () { return bind_all_1.bindAll; } });\n","// pulling this into a separate file so adapter(s) that don't\n// need the honey pot can pay as little as possible for it.\nexport var honeyPotDataAttribute = 'data-pdnd-honey-pot';","import { honeyPotDataAttribute } from './honey-pot-data-attribute';\nexport function isHoneyPotElement(target) {\n return target instanceof Element && target.hasAttribute(honeyPotDataAttribute);\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { isHoneyPotElement } from './is-honey-pot-element';\nexport function getElementFromPointWithoutHoneypot(client) {\n // eslint-disable-next-line no-restricted-syntax\n var _document$elementsFro = document.elementsFromPoint(client.x, client.y),\n _document$elementsFro2 = _slicedToArray(_document$elementsFro, 2),\n top = _document$elementsFro2[0],\n second = _document$elementsFro2[1];\n if (!top) {\n return null;\n }\n if (isHoneyPotElement(top)) {\n return second !== null && second !== void 0 ? second : null;\n }\n return top;\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","// Maximum possible z-index\n// https://stackoverflow.com/questions/491052/minimum-and-maximum-value-of-z-index\nexport var maxZIndex = 2147483647;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { bind, bindAll } from 'bind-event-listener';\nimport { maxZIndex } from '../util/max-z-index';\nimport { honeyPotDataAttribute } from './honey-pot-data-attribute';\nvar honeyPotSize = 2;\nvar halfHoneyPotSize = honeyPotSize / 2;\n\n/**\n * `clientX` and `clientY` can be in sub pixels (eg `2.332`)\n * However, browser hitbox testing is commonly do to the closest pixel.\n *\n * → https://issues.chromium.org/issues/40940531\n *\n * To be sure that the honey pot will be over the `client` position,\n * we `.floor()` `clientX` and`clientY` and then make it `2px` in size.\n **/\nfunction floorToClosestPixel(point) {\n return {\n x: Math.floor(point.x),\n y: Math.floor(point.y)\n };\n}\n\n/**\n * We want to make sure the honey pot sits around the users position.\n * This seemed to be the most resilient while testing.\n */\nfunction pullBackByHalfHoneyPotSize(point) {\n return {\n x: point.x - halfHoneyPotSize,\n y: point.y - halfHoneyPotSize\n };\n}\n\n/**\n * Prevent the honey pot from changing the window size.\n * This is super unlikely to occur, but just being safe.\n */\nfunction preventGoingBackwardsOffScreen(point) {\n return {\n x: Math.max(point.x, 0),\n y: Math.max(point.y, 0)\n };\n}\n\n/**\n * Prevent the honey pot from changing the window size.\n * This is super unlikely to occur, but just being safe.\n */\nfunction preventGoingForwardsOffScreen(point) {\n return {\n x: Math.min(point.x, window.innerWidth - honeyPotSize),\n y: Math.min(point.y, window.innerHeight - honeyPotSize)\n };\n}\n\n/**\n * Create a `2x2` `DOMRect` around the `client` position\n */\nfunction getHoneyPotRectFor(_ref) {\n var client = _ref.client;\n var point = preventGoingForwardsOffScreen(preventGoingBackwardsOffScreen(pullBackByHalfHoneyPotSize(floorToClosestPixel(client))));\n\n // When debugging, it is helpful to\n // make this element a bit bigger\n return DOMRect.fromRect({\n x: point.x,\n y: point.y,\n width: honeyPotSize,\n height: honeyPotSize\n });\n}\nfunction getRectStyles(_ref2) {\n var clientRect = _ref2.clientRect;\n return {\n left: \"\".concat(clientRect.left, \"px\"),\n top: \"\".concat(clientRect.top, \"px\"),\n width: \"\".concat(clientRect.width, \"px\"),\n height: \"\".concat(clientRect.height, \"px\")\n };\n}\nfunction isWithin(_ref3) {\n var client = _ref3.client,\n clientRect = _ref3.clientRect;\n return (\n // is within horizontal bounds\n client.x >= clientRect.x && client.x <= clientRect.x + clientRect.width &&\n // is within vertical bounds\n client.y >= clientRect.y && client.y <= clientRect.y + clientRect.height\n );\n}\n/**\n * The honey pot fix is designed to get around a painful bug in all browsers.\n *\n * [Overview](https://www.youtube.com/watch?v=udE9qbFTeQg)\n *\n * **Background**\n *\n * When a drag starts, browsers incorrectly think that the users pointer is\n * still depressed where the drag started. Any element that goes under this position\n * will be entered into, causing `\"mouseenter\"` events and `\":hover\"` styles to be applied.\n *\n * _This is a violation of the spec_\n *\n * > \"From the moment that the user agent is to initiate the drag-and-drop operation,\n * > until the end \tof the drag-and-drop operation, device input events\n * > (e.g. mouse and keyboard events) must be suppressed.\"\n * >\n * > - https://html.spec.whatwg.org/multipage/dnd.html#drag-and-drop-processing-model\n *\n * _Some impacts_\n *\n * - `\":hover\"` styles being applied where they shouldn't (looks messy)\n * - components such as tooltips responding to `\"mouseenter\"` can show during a drag,\n * and on an element the user isn't even over\n *\n * Bug: https://issues.chromium.org/issues/41129937\n *\n * **Honey pot fix**\n *\n * 1. Create an element where the browser thinks the depressed pointer is\n * to absorb the incorrect pointer events\n * 2. Remove that element when it is no longer needed\n */\nfunction mountHoneyPot(_ref4) {\n var initial = _ref4.initial;\n var element = document.createElement('div');\n element.setAttribute(honeyPotDataAttribute, 'true');\n\n // can shift during the drag thanks to Firefox\n var clientRect = getHoneyPotRectFor({\n client: initial\n });\n Object.assign(element.style, _objectSpread(_objectSpread({\n // Setting a background color explicitly to avoid any inherited styles.\n // Looks like this could be `opacity: 0`, but worried that _might_\n // cause the element to be ignored on some platforms.\n // When debugging, set backgroundColor to something like \"red\".\n backgroundColor: 'transparent',\n position: 'fixed',\n // Being explicit to avoid inheriting styles\n padding: 0,\n margin: 0,\n boxSizing: 'border-box'\n }, getRectStyles({\n clientRect: clientRect\n })), {}, {\n // We want this element to absorb pointer events,\n // it's kind of the whole point 😉\n pointerEvents: 'auto',\n // Want to make sure the honey pot is top of everything else.\n // Don't need to worry about native drag previews, as they will\n // have been rendered (and removed) before the honey pot is rendered\n zIndex: maxZIndex\n }));\n document.body.appendChild(element);\n\n /**\n * 🦊 In firefox we can get `\"pointermove\"` events after the drag\n * has started, which is a spec violation.\n * The final `\"pointermove\"` will reveal where the \"depressed\" position\n * is for our honey pot fix.\n */\n var unbindPointerMove = bind(window, {\n type: 'pointermove',\n listener: function listener(event) {\n var client = {\n x: event.clientX,\n y: event.clientY\n };\n clientRect = getHoneyPotRectFor({\n client: client\n });\n Object.assign(element.style, getRectStyles({\n clientRect: clientRect\n }));\n },\n // using capture so we are less likely to be impacted by event stopping\n options: {\n capture: true\n }\n });\n return function finish(_ref5) {\n var current = _ref5.current;\n // Don't need this any more\n unbindPointerMove();\n\n // If the user is hover the honey pot, we remove it\n // so that the user can continue to interact with the page normally.\n if (isWithin({\n client: current,\n clientRect: clientRect\n })) {\n element.remove();\n return;\n }\n function cleanup() {\n unbindPostDragEvents();\n element.remove();\n }\n var unbindPostDragEvents = bindAll(window, [{\n type: 'pointerdown',\n listener: cleanup\n }, {\n type: 'pointermove',\n listener: cleanup\n }, {\n type: 'focusin',\n listener: cleanup\n }, {\n type: 'focusout',\n listener: cleanup\n },\n // a 'pointerdown' should happen before 'dragstart', but just being super safe\n {\n type: 'dragstart',\n listener: cleanup\n },\n // if the user has dragged something out of the window\n // and then is dragging something back into the window\n // the first events we will see are \"dragenter\" (and then \"dragover\").\n // So if we see any of these we need to clear the post drag fix.\n {\n type: 'dragenter',\n listener: cleanup\n }, {\n type: 'dragover',\n listener: cleanup\n }\n\n // Not adding a \"wheel\" event listener, as \"wheel\" by itself does not\n // resolve the bug.\n ], {\n // Using `capture` so less likely to be impacted by other code stopping events\n capture: true\n });\n };\n}\nexport function makeHoneyPotFix() {\n var latestPointerMove = null;\n function bindEvents() {\n // For sanity, only collecting this value from when events are first bound.\n // This prevents the case where a super old \"pointermove\" could be used\n // from a prior interaction.\n latestPointerMove = null;\n return bind(window, {\n type: 'pointermove',\n listener: function listener(event) {\n latestPointerMove = {\n x: event.clientX,\n y: event.clientY\n };\n },\n // listening for pointer move in capture phase\n // so we are less likely to be impacted by events being stopped.\n options: {\n capture: true\n }\n });\n }\n function getOnPostDispatch() {\n var finish = null;\n return function onPostEvent(_ref6) {\n var eventName = _ref6.eventName,\n payload = _ref6.payload;\n // We are adding the honey pot `onDragStart` so we don't\n // impact the creation of the native drag preview.\n if (eventName === 'onDragStart') {\n var _latestPointerMove;\n var input = payload.location.initial.input;\n\n // Sometimes there will be no latest \"pointermove\" (eg iOS).\n // In which case, we use the start position of the drag.\n var initial = (_latestPointerMove = latestPointerMove) !== null && _latestPointerMove !== void 0 ? _latestPointerMove : {\n x: input.clientX,\n y: input.clientY\n };\n\n // Don't need to defensively call `finish()` as `onDrop` from\n // one interaction is guaranteed to be called before `onDragStart`\n // of the next.\n finish = mountHoneyPot({\n initial: initial\n });\n }\n if (eventName === 'onDrop') {\n var _finish;\n var _input = payload.location.current.input;\n (_finish = finish) === null || _finish === void 0 || _finish({\n current: {\n x: _input.clientX,\n y: _input.clientY\n }\n });\n finish = null;\n // this interaction is finished, we want to use\n // the latest \"pointermove\" for each interaction\n latestPointerMove = null;\n }\n };\n }\n return {\n bindEvents: bindEvents,\n getOnPostDispatch: getOnPostDispatch\n };\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","/** Provide a function that you only ever want to be called a single time */\nexport function once(fn) {\n var cache = null;\n return function wrapped() {\n if (!cache) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var result = fn.apply(this, args);\n cache = {\n result: result\n };\n }\n return cache.result;\n };\n}","import { once } from '../public-utils/once';\n\n// using `cache` as our `isFirefox()` result will not change in a browser\n\n/**\n * Returns `true` if a `Firefox` browser\n * */\nexport var isFirefox = once(function isFirefox() {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n return navigator.userAgent.includes('Firefox');\n});","import { once } from '../public-utils/once';\n\n// using `cache` as our `isSafari()` result will not change in a browser\n\n/**\n * Returns `true` if a `Safari` browser.\n * Returns `true` if the browser is running on iOS (they are all Safari).\n * */\nexport var isSafari = once(function isSafari() {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n var _navigator = navigator,\n userAgent = _navigator.userAgent;\n return userAgent.includes('AppleWebKit') && !userAgent.includes('Chrome');\n});","import { bindAll } from 'bind-event-listener';\nimport { isSafari } from '../is-safari';\n\n/* For \"dragenter\" events, the browser should set `relatedTarget` to the previous element.\n * For external drag operations, our first \"dragenter\" event should have a `event.relatedTarget` of `null`.\n *\n * Unfortunately in Safari `event.relatedTarget` is *always* set to `null`\n * Safari bug: https://bugs.webkit.org/show_bug.cgi?id=242627\n * To work around this we count \"dragenter\" and \"dragleave\" events */\n\n// Using symbols for event properties so we don't clash with\n// anything on the `event` object\nvar symbols = {\n isLeavingWindow: Symbol('leaving'),\n isEnteringWindow: Symbol('entering')\n};\nexport function isEnteringWindowInSafari(_ref) {\n var dragEnter = _ref.dragEnter;\n if (!isSafari()) {\n return false;\n }\n return dragEnter.hasOwnProperty(symbols.isEnteringWindow);\n}\nexport function isLeavingWindowInSafari(_ref2) {\n var dragLeave = _ref2.dragLeave;\n if (!isSafari()) {\n return false;\n }\n return dragLeave.hasOwnProperty(symbols.isLeavingWindow);\n}\n(function fixSafari() {\n // Don't do anything when server side rendering\n if (typeof window === 'undefined') {\n return;\n }\n\n // rather than checking the userAgent for \"jsdom\" we can do this check\n // so that the check will be removed completely in production code\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n if (!isSafari()) {\n return;\n }\n function getInitialState() {\n return {\n enterCount: 0,\n isOverWindow: false\n };\n }\n var state = getInitialState();\n function resetState() {\n state = getInitialState();\n }\n\n // These event listeners are bound _forever_ and _never_ removed\n // We don't bother cleaning up these event listeners (for now)\n // as this workaround is only for Safari\n\n // This is how the event count works:\n //\n // lift (+1 enterCount)\n // - dragstart(draggable) [enterCount: 0]\n // - dragenter(draggable) [enterCount: 1]\n // leaving draggable (+0 enterCount)\n // - dragenter(document.body) [enterCount: 2]\n // - dragleave(draggable) [enterCount: 1]\n // leaving window (-1 enterCount)\n // - dragleave(document.body) [enterCount: 0] {leaving the window}\n\n // Things to note:\n // - dragenter and dragleave bubble\n // - the first dragenter when entering a window might not be on `window`\n // - it could be on an element that is pressed up against the window\n // - (so we cannot rely on `event.target` values)\n\n bindAll(window, [{\n type: 'dragstart',\n listener: function listener() {\n state.enterCount = 0;\n // drag start occurs in the source window\n state.isOverWindow = true;\n // When a drag first starts it will also trigger a \"dragenter\" on the draggable element\n }\n }, {\n type: 'drop',\n listener: resetState\n }, {\n type: 'dragend',\n listener: resetState\n }, {\n type: 'dragenter',\n listener: function listener(event) {\n if (!state.isOverWindow && state.enterCount === 0) {\n // Patching the `event` object\n // The `event` object is shared with all event listeners for the event\n // @ts-expect-error: adding property to the event object\n event[symbols.isEnteringWindow] = true;\n }\n state.isOverWindow = true;\n state.enterCount++;\n }\n }, {\n type: 'dragleave',\n listener: function listener(event) {\n state.enterCount--;\n if (state.isOverWindow && state.enterCount === 0) {\n // Patching the `event` object as it is shared with all event listeners\n // The `event` object is shared with all event listeners for the event\n // @ts-expect-error: adding property to the event object\n event[symbols.isLeavingWindow] = true;\n state.isOverWindow = false;\n }\n }\n }],\n // using `capture: true` so that adding event listeners\n // in bubble phase will have the correct symbols\n {\n capture: true\n });\n})();","/**\n * Does the `EventTarget` look like a `Node` based on \"duck typing\".\n *\n * Helpful when the `Node` might be outside of the current document\n * so we cannot to an `target instanceof Node` check.\n */\nfunction isNodeLike(target) {\n return 'nodeName' in target;\n}\n\n/**\n * Is an `EventTarget` a `Node` from another `window`?\n */\nexport function isFromAnotherWindow(eventTarget) {\n return isNodeLike(eventTarget) && eventTarget.ownerDocument !== document;\n}","import { isFirefox } from '../is-firefox';\nimport { isSafari } from '../is-safari';\nimport { isLeavingWindowInSafari } from './count-events-for-safari';\nimport { isFromAnotherWindow } from './is-from-another-window';\nexport function isLeavingWindow(_ref) {\n var dragLeave = _ref.dragLeave;\n var type = dragLeave.type,\n relatedTarget = dragLeave.relatedTarget;\n if (type !== 'dragleave') {\n return false;\n }\n if (isSafari()) {\n return isLeavingWindowInSafari({\n dragLeave: dragLeave\n });\n }\n\n // Standard check: if going to `null` we are leaving the `window`\n if (relatedTarget == null) {\n return true;\n }\n\n /**\n * 🦊 Exception: `iframe` in Firefox (`125.0`)\n *\n * Case 1: parent `window` → child `iframe`\n * `dragLeave.relatedTarget` is element _inside_ the child `iframe`\n * (foreign element)\n *\n * Case 2: child `iframe` → parent `window`\n * `dragLeave.relatedTarget` is the `iframe` in the parent `window`\n * (foreign element)\n */\n\n if (isFirefox()) {\n return isFromAnotherWindow(relatedTarget);\n }\n\n /**\n * 🌏 Exception: `iframe` in Chrome (`124.0`)\n *\n * Case 1: parent `window` → child `iframe`\n * `dragLeave.relatedTarget` is the `iframe` in the parent `window`\n *\n * Case 2: child `iframe` → parent `window`\n * `dragLeave.relatedTarget` is `null` *(standard check)*\n */\n\n // Case 2\n // Using `instanceof` check as the element will be in the same `window`\n return relatedTarget instanceof HTMLIFrameElement;\n}","export function getBindingsForBrokenDrags(_ref) {\n var onDragEnd = _ref.onDragEnd;\n return [\n // ## Detecting drag ending for removed draggables\n //\n // If a draggable element is removed during a drag and the user drops:\n // 1. if over a valid drop target: we get a \"drop\" event to know the drag is finished\n // 2. if not over a valid drop target (or cancelled): we get nothing\n // The \"dragend\" event will not fire on the source draggable if it has been\n // removed from the DOM.\n // So we need to figure out if a drag operation has finished by looking at other events\n // We can do this by looking at other events\n\n // ### First detection: \"pointermove\" events\n\n // 1. \"pointermove\" events cannot fire during a drag and drop operation\n // according to the spec. So if we get a \"pointermove\" it means that\n // the drag and drop operations has finished. So if we get a \"pointermove\"\n // we know that the drag is over\n // 2. 🦊😤 Drag and drop operations are _supposed_ to suppress\n // other pointer events. However, firefox will allow a few\n // pointer event to get through after a drag starts.\n // The most I've seen is 3\n {\n type: 'pointermove',\n listener: function () {\n var callCount = 0;\n return function listener() {\n // Using 20 as it is far bigger than the most observed (3)\n if (callCount < 20) {\n callCount++;\n return;\n }\n onDragEnd();\n };\n }()\n },\n // ### Second detection: \"pointerdown\" events\n\n // If we receive this event then we know that a drag operation has finished\n // and potentially another one is about to start.\n // Note: `pointerdown` fires on all browsers / platforms before \"dragstart\"\n {\n type: 'pointerdown',\n listener: onDragEnd\n }];\n}","export function getInput(event) {\n return {\n altKey: event.altKey,\n button: event.button,\n buttons: event.buttons,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n shiftKey: event.shiftKey,\n clientX: event.clientX,\n clientY: event.clientY,\n pageX: event.pageX,\n pageY: event.pageY\n };\n}","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","import rafSchd from 'raf-schd';\nvar scheduleOnDrag = rafSchd(function (fn) {\n return fn();\n});\nvar dragStart = function () {\n var scheduled = null;\n function schedule(fn) {\n var frameId = requestAnimationFrame(function () {\n scheduled = null;\n fn();\n });\n scheduled = {\n frameId: frameId,\n fn: fn\n };\n }\n function flush() {\n if (scheduled) {\n cancelAnimationFrame(scheduled.frameId);\n scheduled.fn();\n scheduled = null;\n }\n }\n return {\n schedule: schedule,\n flush: flush\n };\n}();\nexport function makeDispatch(_ref) {\n var source = _ref.source,\n initial = _ref.initial,\n dispatchEvent = _ref.dispatchEvent;\n var previous = {\n dropTargets: []\n };\n function safeDispatch(args) {\n dispatchEvent(args);\n previous = {\n dropTargets: args.payload.location.current.dropTargets\n };\n }\n var dispatch = {\n start: function start(_ref2) {\n var nativeSetDragImage = _ref2.nativeSetDragImage;\n // Ensuring that both `onGenerateDragPreview` and `onDragStart` get the same location.\n // We do this so that `previous` is`[]` in `onDragStart` (which is logical)\n var location = {\n current: initial,\n previous: previous,\n initial: initial\n };\n // a `onGenerateDragPreview` does _not_ add another entry for `previous`\n // onDragPreview\n safeDispatch({\n eventName: 'onGenerateDragPreview',\n payload: {\n source: source,\n location: location,\n nativeSetDragImage: nativeSetDragImage\n }\n });\n dragStart.schedule(function () {\n safeDispatch({\n eventName: 'onDragStart',\n payload: {\n source: source,\n location: location\n }\n });\n });\n },\n dragUpdate: function dragUpdate(_ref3) {\n var current = _ref3.current;\n dragStart.flush();\n scheduleOnDrag.cancel();\n safeDispatch({\n eventName: 'onDropTargetChange',\n payload: {\n source: source,\n location: {\n initial: initial,\n previous: previous,\n current: current\n }\n }\n });\n },\n drag: function drag(_ref4) {\n var current = _ref4.current;\n scheduleOnDrag(function () {\n dragStart.flush();\n var location = {\n initial: initial,\n previous: previous,\n current: current\n };\n safeDispatch({\n eventName: 'onDrag',\n payload: {\n source: source,\n location: location\n }\n });\n });\n },\n drop: function drop(_ref5) {\n var current = _ref5.current,\n updatedSourcePayload = _ref5.updatedSourcePayload;\n dragStart.flush();\n scheduleOnDrag.cancel();\n safeDispatch({\n eventName: 'onDrop',\n payload: {\n source: updatedSourcePayload !== null && updatedSourcePayload !== void 0 ? updatedSourcePayload : source,\n location: {\n current: current,\n previous: previous,\n initial: initial\n }\n }\n });\n }\n };\n return dispatch;\n}","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { bindAll } from 'bind-event-listener';\nimport { getElementFromPointWithoutHoneypot } from '../honey-pot-fix/get-element-from-point-without-honey-pot';\nimport { isHoneyPotElement } from '../honey-pot-fix/is-honey-pot-element';\nimport { isLeavingWindow } from '../util/changing-window/is-leaving-window';\nimport { getBindingsForBrokenDrags } from '../util/detect-broken-drag';\nimport { getInput } from '../util/get-input';\nimport { makeDispatch } from './dispatch-consumer-event';\nvar globalState = {\n isActive: false\n};\nfunction canStart() {\n return !globalState.isActive;\n}\nfunction getNativeSetDragImage(event) {\n if (event.dataTransfer) {\n // need to use `.bind` as `setDragImage` is required\n // to be run with `event.dataTransfer` as the \"this\" context\n return event.dataTransfer.setDragImage.bind(event.dataTransfer);\n }\n return null;\n}\nfunction hasHierarchyChanged(_ref) {\n var current = _ref.current,\n next = _ref.next;\n if (current.length !== next.length) {\n return true;\n }\n // not checking stickiness, data or dropEffect,\n // just whether the hierarchy has changed\n for (var i = 0; i < current.length; i++) {\n if (current[i].element !== next[i].element) {\n return true;\n }\n }\n return false;\n}\nfunction start(_ref2) {\n var event = _ref2.event,\n dragType = _ref2.dragType,\n getDropTargetsOver = _ref2.getDropTargetsOver,\n dispatchEvent = _ref2.dispatchEvent;\n if (!canStart()) {\n return;\n }\n var initial = getStartLocation({\n event: event,\n dragType: dragType,\n getDropTargetsOver: getDropTargetsOver\n });\n globalState.isActive = true;\n var state = {\n current: initial\n };\n\n // Setting initial drop effect for the drag\n setDropEffectOnEvent({\n event: event,\n current: initial.dropTargets\n });\n var dispatch = makeDispatch({\n source: dragType.payload,\n dispatchEvent: dispatchEvent,\n initial: initial\n });\n function updateState(next) {\n // only looking at whether hierarchy has changed to determine whether something as 'changed'\n var hasChanged = hasHierarchyChanged({\n current: state.current.dropTargets,\n next: next.dropTargets\n });\n\n // Always updating the state to include latest data, dropEffect and stickiness\n // Only updating consumers if the hierarchy has changed in some way\n // Consumers can get the latest data by using `onDrag`\n state.current = next;\n if (hasChanged) {\n dispatch.dragUpdate({\n current: state.current\n });\n }\n }\n function onUpdateEvent(event) {\n var input = getInput(event);\n\n // If we are over the honey pot, we need to get the element\n // that the user would have been over if not for the honey pot\n var target = isHoneyPotElement(event.target) ? getElementFromPointWithoutHoneypot({\n x: input.clientX,\n y: input.clientY\n }) : event.target;\n var nextDropTargets = getDropTargetsOver({\n target: target,\n input: input,\n source: dragType.payload,\n current: state.current.dropTargets\n });\n if (nextDropTargets.length) {\n // 🩸 must call `event.preventDefault()` to allow a browser drop to occur\n event.preventDefault();\n setDropEffectOnEvent({\n event: event,\n current: nextDropTargets\n });\n }\n updateState({\n dropTargets: nextDropTargets,\n input: input\n });\n }\n function cancel() {\n // The spec behaviour is that when a drag is cancelled, or when dropping on no drop targets,\n // a \"dragleave\" event is fired on the active drop target before a \"dragend\" event.\n // We are replicating that behaviour in `cancel` if there are any active drop targets to\n // ensure consistent behaviour.\n //\n // Note: When cancelling, or dropping on no drop targets, a \"dragleave\" event\n // will have already cleared the dropTargets to `[]` (as that particular \"dragleave\" has a `relatedTarget` of `null`)\n\n if (state.current.dropTargets.length) {\n updateState({\n dropTargets: [],\n input: state.current.input\n });\n }\n dispatch.drop({\n current: state.current,\n updatedSourcePayload: null\n });\n finish();\n }\n function finish() {\n globalState.isActive = false;\n unbindEvents();\n }\n var unbindEvents = bindAll(window, [{\n // 👋 Note: we are repurposing the `dragover` event as our `drag` event\n // this is because firefox does not publish pointer coordinates during\n // a `drag` event, but does for every other type of drag event\n // `dragover` fires on all elements that are being dragged over\n // Because we are binding to `window` - our `dragover` is effectively the same as a `drag`\n // 🦊😤\n type: 'dragover',\n listener: function listener(event) {\n // We need to regularly calculate the drop targets in order to allow:\n // - dynamic `canDrop()` checks\n // - rapid updating `getData()` calls to attach data in response to user input (eg for edge detection)\n // Sadly we cannot schedule inspecting changes resulting from this event\n // we need to be able to conditionally cancel the event with `event.preventDefault()`\n // to enable the correct native drop experience.\n\n // 1. check to see if anything has changed\n onUpdateEvent(event);\n\n // 2. let consumers know a move has occurred\n // This will include the latest 'input' values\n dispatch.drag({\n current: state.current\n });\n }\n }, {\n type: 'dragenter',\n listener: onUpdateEvent\n }, {\n type: 'dragleave',\n listener: function listener(event) {\n if (!isLeavingWindow({\n dragLeave: event\n })) {\n return;\n }\n\n /**\n * At this point we don't know if a drag is being cancelled,\n * or if a drag is leaving the `window`.\n *\n * Both have:\n * 1. \"dragleave\" (with `relatedTarget: null`)\n * 2. \"dragend\" (a \"dragend\" can occur when outside the `window`)\n *\n * **Clearing drop targets**\n *\n * For either case we are clearing the the drop targets\n *\n * - cancelling: we clear drop targets in `\"dragend\"` anyway\n * - leaving the `window`: we clear the drop targets (to clear stickiness)\n *\n * **Leaving the window and finishing the drag**\n *\n * _internal drags_\n *\n * - The drag continues when the user is outside the `window`\n * and can resume if the user drags back over the `window`,\n * or end when the user drops in an external `window`.\n * - We will get a `\"dragend\"`, or we can listen for other\n * events to determine the drag is finished when the user re-enters the `window`).\n *\n * _external drags_\n *\n * - We conclude the drag operation.\n * - We have no idea if the user will drag back over the `window`,\n * or if the drag ends elsewhere.\n * - We will create a new drag if the user re-enters the `window`.\n *\n * **Not updating `input`**\n *\n * 🐛 Bug[Chrome] the final `\"dragleave\"` has default input values (eg `clientX == 0`)\n * Workaround: intentionally not updating `input` in \"dragleave\"\n * rather than the users current input values\n * - [Conversation](https://twitter.com/alexandereardon/status/1642697633864241152)\n * - [Bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1429937)\n **/\n\n updateState({\n input: state.current.input,\n dropTargets: []\n });\n if (dragType.startedFrom === 'external') {\n cancel();\n }\n }\n }, {\n // A \"drop\" can only happen if the browser allowed the drop\n type: 'drop',\n listener: function listener(event) {\n // Capture the final input.\n // We are capturing the final `input` for the\n // most accurate honey pot experience\n state.current = {\n dropTargets: state.current.dropTargets,\n input: getInput(event)\n };\n\n /** If there are no drop targets, then we will get\n * a \"drop\" event if:\n * - `preventUnhandled()` is being used\n * - there is an unmanaged drop target (eg another library)\n * In these cases, it's up to the consumer\n * to handle the drop if it's not over one of our drop targets\n * - `preventUnhandled()` will cancel the \"drop\"\n * - unmanaged drop targets can handle the \"drop\" how they want to\n * We won't call `event.preventDefault()` in this call path */\n\n if (!state.current.dropTargets.length) {\n cancel();\n return;\n }\n event.preventDefault();\n\n // applying the latest drop effect to the event\n setDropEffectOnEvent({\n event: event,\n current: state.current.dropTargets\n });\n dispatch.drop({\n current: state.current,\n // When dropping something native, we need to extract the latest\n // `.items` from the \"drop\" event as it is now accessible\n updatedSourcePayload: dragType.type === 'external' ? dragType.getDropPayload(event) : null\n });\n finish();\n }\n }, {\n // \"dragend\" fires when on the drag source (eg a draggable element)\n // when the drag is finished.\n // \"dragend\" will fire after \"drop\" (if there was a successful drop)\n // \"dragend\" does not fire if the draggable source has been removed during the drag\n // or for external drag sources (eg files)\n\n // This \"dragend\" listener will not fire if there was a successful drop\n // as we will have already removed the event listener\n\n type: 'dragend',\n listener: function listener(event) {\n // In firefox, the position of the \"dragend\" event can\n // be a bit different to the last \"dragover\" event.\n // Updating the input so we can get the best possible\n // information for the honey pot.\n state.current = {\n dropTargets: state.current.dropTargets,\n input: getInput(event)\n };\n cancel();\n }\n }].concat(_toConsumableArray(getBindingsForBrokenDrags({\n onDragEnd: cancel\n }))),\n // Once we have started a managed drag operation it is important that we see / own all drag events\n // We got one adoption bug pop up where some code was stopping (`event.stopPropagation()`)\n // all \"drop\" events in the bubble phase on the `document.body`.\n // This meant that we never saw the \"drop\" event.\n {\n capture: true\n });\n dispatch.start({\n nativeSetDragImage: getNativeSetDragImage(event)\n });\n}\nfunction setDropEffectOnEvent(_ref3) {\n var _current$;\n var event = _ref3.event,\n current = _ref3.current;\n // setting the `dropEffect` to be the innerMost drop targets dropEffect\n var innerMost = (_current$ = current[0]) === null || _current$ === void 0 ? void 0 : _current$.dropEffect;\n if (innerMost != null && event.dataTransfer) {\n event.dataTransfer.dropEffect = innerMost;\n }\n}\nfunction getStartLocation(_ref4) {\n var event = _ref4.event,\n dragType = _ref4.dragType,\n getDropTargetsOver = _ref4.getDropTargetsOver;\n var input = getInput(event);\n\n // When dragging from outside of the browser,\n // the drag is not being sourced from any local drop targets\n if (dragType.startedFrom === 'external') {\n return {\n input: input,\n dropTargets: []\n };\n }\n var dropTargets = getDropTargetsOver({\n input: input,\n source: dragType.payload,\n target: event.target,\n current: []\n });\n return {\n input: input,\n dropTargets: dropTargets\n };\n}\nexport var lifecycle = {\n canStart: canStart,\n start: start\n};","// Extending `Map` to allow us to link Key and Values together\n\nvar ledger = new Map();\nfunction registerUsage(_ref) {\n var typeKey = _ref.typeKey,\n mount = _ref.mount;\n var entry = ledger.get(typeKey);\n if (entry) {\n entry.usageCount++;\n return entry;\n }\n var initial = {\n typeKey: typeKey,\n unmount: mount(),\n usageCount: 1\n };\n ledger.set(typeKey, initial);\n return initial;\n}\nexport function register(args) {\n var entry = registerUsage(args);\n return function unregister() {\n entry.usageCount--;\n if (entry.usageCount > 0) {\n return;\n }\n // Only a single usage left, remove it\n entry.unmount();\n ledger.delete(args.typeKey);\n };\n}","/** Create a new combined function that will call all the provided functions */\nexport function combine() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function cleanup() {\n fns.forEach(function (fn) {\n return fn();\n });\n };\n}","export function addAttribute(element, _ref) {\n var attribute = _ref.attribute,\n value = _ref.value;\n element.setAttribute(attribute, value);\n return function () {\n return element.removeAttribute(attribute);\n };\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { combine } from '../public-utils/combine';\nimport { addAttribute } from '../util/add-attribute';\nfunction copyReverse(array) {\n return array.slice(0).reverse();\n}\nexport function makeDropTarget(_ref) {\n var typeKey = _ref.typeKey,\n defaultDropEffect = _ref.defaultDropEffect;\n var registry = new WeakMap();\n var dropTargetDataAtt = \"data-drop-target-for-\".concat(typeKey);\n var dropTargetSelector = \"[\".concat(dropTargetDataAtt, \"]\");\n function addToRegistry(args) {\n registry.set(args.element, args);\n return function () {\n return registry.delete(args.element);\n };\n }\n function dropTargetForConsumers(args) {\n // Guardrail: warn if the draggable element is already registered\n if (process.env.NODE_ENV !== 'production') {\n var existing = registry.get(args.element);\n if (existing) {\n // eslint-disable-next-line no-console\n console.warn(\"You have already registered a [\".concat(typeKey, \"] dropTarget on the same element\"), {\n existing: existing,\n proposed: args\n });\n }\n if (args.element instanceof HTMLIFrameElement) {\n // eslint-disable-next-line no-console\n console.warn(\"\\n We recommend not registering