j20 0.0.13 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -4648,6 +4648,8 @@ declare const onMount: (callback: () => (() => void) | void) => void;
4648
4648
 
4649
4649
  declare const onDestroy: (callback: () => void) => _j20org_signal.Effect;
4650
4650
 
4651
+ declare const style: (css?: string) => CSSStyleSheet;
4652
+
4651
4653
  interface ListProps<T> {
4652
4654
  of: T[];
4653
4655
  children: (i: T, index: number) => JSX.Element;
@@ -4759,5 +4761,5 @@ declare const template: (template: string) => (isSvg: boolean) => any;
4759
4761
 
4760
4762
  declare const registerWebComponent: <C extends WC<any, any>>(Comp: C) => void;
4761
4763
 
4762
- export { $, $useContext, Case, Default, For, Fragment, If, Replace, Some, Switch, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, mounts, onDestroy, onMount, ref, registerWebComponent, securityGetCurrentInstance, template, wc };
4764
+ export { $, $useContext, Case, Default, For, Fragment, If, Replace, Some, Switch, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, mounts, onDestroy, onMount, ref, registerWebComponent, securityGetCurrentInstance, style, template, wc };
4763
4765
  export type { AttrValueType, CaseProps, CustomElement, DOMElement, DefaultProps, FC, IfProps, Instance, ListProps, RefObject, ReplaceProps, ReplacePropsInner, SomeProps, SwitchProps, WC };
package/dist/index.js CHANGED
@@ -857,6 +857,29 @@ const onMount = (callback) => {
857
857
 
858
858
  const onDestroy = (callback) => effect(() => callback);
859
859
 
860
+ const style = (css) => {
861
+ let instance = getCurrentInstance();
862
+ const sheet = new CSSStyleSheet();
863
+ css && sheet.replaceSync(css);
864
+ while (instance) {
865
+ if (instance.host) {
866
+ instance.host.addStyleSheet(sheet);
867
+ onDestroy(() => {
868
+ instance.host.removeStyleSheet(sheet);
869
+ });
870
+ break;
871
+ }
872
+ instance = instance?.parent;
873
+ }
874
+ if (!instance) {
875
+ document.adoptedStyleSheets.push(sheet);
876
+ onDestroy(() => {
877
+ document.adoptedStyleSheets = document.adoptedStyleSheets.filter((s) => s !== sheet);
878
+ });
879
+ }
880
+ return sheet;
881
+ };
882
+
860
883
  function insertAfter(parentNode, newNode, targetNode) {
861
884
  parentNode?.insertBefore(newNode, targetNode.nextSibling);
862
885
  }
@@ -1336,5 +1359,5 @@ const template = (template) => {
1336
1359
  };
1337
1360
  };
1338
1361
 
1339
- export { $, $useContext, Case, Computed, Default, Effect, For, Fragment, If, Replace, Signal, Some, Switch, batch, computed, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, mounts, onDestroy, onMount, ref, registerWebComponent, securityGetCurrentInstance, signal, template, untrack, wc };
1362
+ export { $, $useContext, Case, Computed, Default, Effect, For, Fragment, If, Replace, Signal, Some, Switch, batch, computed, createComponent, createContext, createDom, createElement, createLogicComponent, createRoot, effect, getCurrentInstance, h2, id, instanceCreate, instanceCreateElement, instanceDestroy, instanceGetElements, instanceInit, jsx, jsxs, mounts, onDestroy, onMount, ref, registerWebComponent, securityGetCurrentInstance, signal, style, template, untrack, wc };
1340
1363
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../signal/dist/index.js","../_dist/h/utils.js","../_dist/h/createDom.js","../_dist/h/instance.js","../_dist/api/effect.js","../_dist/api/ref.js","../_dist/brand.js","../_dist/web-components.js","../_dist/api/wc.js","../_dist/api/dollar.js","../_dist/api/utils.js","../_dist/api/context.js","../_dist/api/id.js","../_dist/api/onMount.js","../_dist/api/onDestroy.js","../_dist/control/For.js","../_dist/h/createComponent.js","../_dist/control/If.js","../_dist/control/Some.js","../_dist/control/Replace.js","../_dist/control/Switch.js","../_dist/h/createLogicComponent.js","../_dist/h/createWebComponent.js","../_dist/h/createElement.js","../_dist/h/createRoot.js","../_dist/jsx-runtime.js"],"sourcesContent":["// 当前正在执行的effect或computed\nlet currentReaction = null;\n// 批处理栈,用于延迟 effect 的执行\nlet batchDepth = 0;\n// 待执行的 effect 队列\nlet pendingEffects = new Set();\n// 存储所有信号的依赖关系\nconst depMap = new WeakMap();\n/**\n * Signal类 - 用于存储响应式数据\n */\nclass Signal {\n SIGNAL = true;\n _value;\n _version = 0;\n _deps = new Set();\n constructor(value) {\n this._value = value;\n }\n get value() {\n // 如果有当前正在执行的reaction,建立依赖关系\n if (currentReaction) {\n this.track(currentReaction);\n }\n return this._value;\n }\n set value(newValue) {\n if (Object.is(this._value, newValue))\n return;\n this._value = newValue;\n this._version++;\n // 通知所有依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n // 对于effect,使用版本检查优化\n if (reaction._depVersions.has(this) || reaction.hasDepsChanged()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n }\n });\n }\n get version() {\n return this._version;\n }\n // 建立依赖关系\n track(reaction) {\n if (!this._deps.has(reaction)) {\n this._deps.add(reaction);\n // 维护反向依赖关系\n let reactions = depMap.get(this);\n if (!reactions) {\n reactions = new Set();\n depMap.set(this, reactions);\n }\n reactions.add(reaction);\n // 在reaction中记录依赖\n reaction.track(this);\n }\n }\n}\n/**\n * Computed类 - 用于计算派生值\n */\nclass Computed {\n SIGNAL = true;\n computeFn;\n _value;\n _version = 0;\n dirty = true;\n disposed = false;\n _deps = new Set();\n sources = new Set();\n constructor(computeFn) {\n this.computeFn = computeFn;\n // 使用symbol作为初始值占位符\n this._value = undefined;\n }\n get value() {\n if (this.disposed) {\n throw new Error(\"Cannot access value of disposed computed\");\n }\n if (this.dirty) {\n this.compute();\n }\n // 建立依赖关系\n if (currentReaction) {\n if (!this._deps.has(currentReaction)) {\n this._deps.add(currentReaction);\n currentReaction.track(this);\n }\n }\n return this._value;\n }\n get version() {\n return this._version;\n }\n compute() {\n if (this.disposed) {\n throw new Error(\"Cannot compute disposed computed\");\n }\n // 检查循环依赖\n if (computationStack.includes(this)) {\n throw new Error(\"Circular dependency detected in computed values\");\n }\n this.dirty = false;\n // 保存当前状态\n const prevReaction = currentReaction;\n const prevSources = this.sources;\n this.sources = new Set();\n // 将当前computed加入计算栈\n computationStack.push(this);\n currentReaction = this;\n try {\n this._value = this.computeFn();\n this._version++;\n }\n catch (e) {\n this.dirty = true;\n throw e;\n }\n finally {\n // 清理工作\n const index = computationStack.indexOf(this);\n if (index !== -1) {\n computationStack.splice(index, 1);\n }\n currentReaction = prevReaction;\n // 清理不再依赖的sources\n prevSources.forEach((source) => {\n if (!this.sources.has(source)) {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n }\n });\n }\n }\n markDirty() {\n if (this.disposed || this.dirty)\n return;\n this.dirty = true;\n // 通知依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n });\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this.sources.has(source)) {\n this.sources.add(source);\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this.sources.forEach((source) => {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this.sources.clear();\n this._deps.clear();\n // 清理引用\n this._value = undefined;\n this.computeFn = undefined;\n }\n}\n// 用于检测循环依赖\nconst computationStack = [];\n/**\n * Effect类 - 用于执行副作用\n */\nclass Effect {\n effectFn;\n cleanupFn = null;\n disposed = false;\n _deps = new Set();\n _depVersions = new Map();\n constructor(effectFn) {\n this.effectFn = effectFn;\n }\n execute() {\n if (this.disposed)\n return;\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n // 执行effect并收集依赖\n const prevReaction = currentReaction;\n currentReaction = this;\n try {\n const result = this.effectFn();\n if (typeof result === \"function\") {\n this.cleanupFn = result;\n }\n }\n finally {\n currentReaction = prevReaction;\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this._deps.forEach((dep) => {\n const reactions = depMap.get(dep);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this._deps.clear();\n this._depVersions.clear();\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n }\n isActive() {\n return !this.disposed;\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this._deps.has(source)) {\n this._deps.add(source);\n // 记录依赖的版本号\n if (\"version\" in source) {\n this._depVersions.set(source, source.version);\n }\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n hasDepsChanged() {\n for (const [dep, version] of this._depVersions) {\n if (\"version\" in dep && dep.version !== version) {\n return true;\n }\n }\n return false;\n }\n}\n// 创建信号\nfunction signal(initialValue) {\n return new Signal(initialValue);\n}\n// 创建计算值\nfunction computed(computeFn) {\n return new Computed(computeFn);\n}\n// 创建副作用\nfunction effect(effectFn) {\n const effectInstance = new Effect(effectFn);\n effectInstance.execute();\n return effectInstance;\n}\n// 临时取消追踪\nfunction untrack(fn) {\n const prevReaction = currentReaction;\n currentReaction = null;\n try {\n return fn();\n }\n finally {\n currentReaction = prevReaction;\n }\n}\n// 批处理 - 延迟 effect 的执行直到批处理结束\nfunction batch(fn) {\n batchDepth++;\n try {\n return fn();\n }\n finally {\n batchDepth--;\n // 当批处理结束时,执行所有待处理的 effect\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n // 执行所有待处理的 effect\n effects.forEach((effect) => {\n if (effect.isActive()) {\n effect.execute();\n }\n });\n }\n }\n}\n\nexport { Computed, Effect, Signal, batch, computed, effect, signal, untrack };\n//# sourceMappingURL=index.js.map\n","import { effect } from \"../api/effect\";\nexport const isEvent = (eventName) => {\n return eventName.startsWith(\"on\");\n};\nexport const getEventName = (eventName) => {\n return eventName.slice(2).toLowerCase();\n};\nexport const getChildren = (propChildren) => {\n const arr = [];\n for (let i = 0; i < propChildren.length; i++) {\n const child = propChildren[i];\n if (typeof child === \"function\") {\n let textNode;\n const effectInstance = effect(() => {\n const el = child();\n if (typeof el === \"number\" || typeof el === \"string\") {\n if (textNode) {\n textNode.nodeValue = el + \"\";\n }\n else {\n textNode = document.createTextNode(el + \"\");\n arr.push(textNode);\n }\n }\n else {\n arr.push(el);\n }\n });\n if (!textNode) {\n effectInstance.dispose();\n }\n }\n else if (child != undefined) {\n arr.push(child);\n }\n }\n return arr;\n};\nlet overflow = \"\";\nlet count = 0;\nexport const generateId = () => {\n if (count === Number.MAX_SAFE_INTEGER) {\n overflow += count.toString(32);\n count = 0;\n }\n return `${overflow}${(count++).toString(32)}`;\n};\nexport const styleObjectToString = (style) => {\n let styleString = \"\";\n for (const key in style) {\n const value = style[key];\n styleString += `${key}: ${value}; `;\n }\n return styleString.trim();\n};\n","import { effect } from \"../api/effect\";\nimport { getChildren, getEventName, isEvent, styleObjectToString, } from \"./utils\";\nimport { getCurrentInstance } from \"./instance\";\nconst update = (node, key, oldValue, newValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n node.addEventListener(getEventName(key), newValue);\n }\n else {\n if (newValue === false || newValue == null) {\n node.removeAttribute(key);\n }\n else {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nconst unset = (node, key, oldValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n }\n else if (key === \"ref\") {\n oldValue.current = null;\n }\n else {\n node.removeAttribute(key);\n }\n};\nconst add = (node, key, newValue) => {\n if (isEvent(key)) {\n node.addEventListener(getEventName(key), newValue);\n }\n else if (key === \"ref\") {\n const instance = getCurrentInstance();\n if (instance) {\n if (!instance.disposes)\n instance.disposes = [];\n instance.disposes.push(() => {\n newValue.current = null;\n });\n }\n newValue.current = node;\n }\n else {\n if (newValue !== false && newValue != null) {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nexport const createDom = (tag, props, children) => {\n const node = tag;\n let oldProps = {};\n props &&\n effect(() => {\n const newProps = { ...props() };\n const newKeys = Object.keys(newProps);\n const oldKeys = Object.keys(oldProps);\n const allKeys = new Set([...newKeys, ...oldKeys]);\n for (const key of allKeys) {\n oldKeys.includes(key)\n ? newKeys.includes(key)\n ? Object.is(oldProps[key], newProps[key])\n ? null\n : update(node, key, oldProps[key], newProps[key])\n : unset(node, key, oldProps[key])\n : add(node, key, newProps[key]);\n }\n oldProps = newProps;\n });\n // 独立 wc 初始化\n node.lazyInit?.();\n if (children &&\n // 独立 wc 初始化时 mode 为空时,忽略 children\n (node.lazyInit\n ? !node.customElement.mode\n ? false\n : true\n : true)) {\n node.append(...getChildren([].concat(children())));\n }\n return node;\n};\n","import { createDom } from \"./createDom\";\nimport { generateId } from \"./utils\";\nconst stack = [];\nexport const getCurrentInstance = () => stack.at(-1);\n// api security guard\nexport const securityGetCurrentInstance = () => {\n const instance = getCurrentInstance();\n if (!instance)\n throw new Error(\"Do not run this api out of component\");\n return instance;\n};\nexport const instanceInit = (parent) => {\n const id = generateId();\n const parentInstance = parent ?? getCurrentInstance();\n const instance = {\n parent: parentInstance,\n id,\n range: [document.createTextNode(\"\"), document.createTextNode(\"\")],\n };\n if (parentInstance) {\n if (parentInstance.children) {\n parentInstance.children.push(instance);\n }\n else {\n parentInstance.children = [instance];\n }\n }\n return instance;\n};\nexport const mounts = [];\nexport const instanceCreateElement = (instance, runner) => {\n stack.push(instance);\n const fragment = createDom(document.createDocumentFragment(), undefined, () => runner());\n fragment.prepend(instance.range[0]);\n fragment.append(instance.range[1]);\n if (instance.mounts) {\n mounts.push(...instance.mounts);\n instance.mounts = undefined;\n }\n stack.pop();\n if (stack.length === 0) {\n requestAnimationFrame(() => {\n mounts.forEach((mount) => mount());\n mounts.length = 0;\n });\n }\n return fragment;\n};\nexport const instanceCreate = (runner, parent) => {\n const instance = instanceInit(parent);\n return [instance, instanceCreateElement(instance, runner)];\n};\nexport const instanceGetElements = (instance) => {\n const [start, end] = instance.range;\n const els = [start];\n let index = start;\n while ((index = index.nextSibling)) {\n els.push(index);\n if (index === end)\n break;\n }\n return els;\n};\nexport const instanceDestroy = (parent, instance) => {\n // 使用栈来实现迭代式的深度优先销毁,避免递归开销\n // 关键:需要跟踪每个实例的销毁状态(是否已销毁子节点)\n const stack = [\n { inst: instance, childrenDestroyed: false },\n ];\n while (stack.length > 0) {\n const current = stack[stack.length - 1];\n if (!current.childrenDestroyed) {\n // 第一次访问:先标记子节点已销毁,然后将子节点入栈\n current.childrenDestroyed = true;\n if (current.inst.children && current.inst.children.length > 0) {\n // 倒序添加子节点,保持与递归相同的销毁顺序\n for (let i = current.inst.children.length - 1; i >= 0; i--) {\n stack.push({\n inst: current.inst.children[i],\n childrenDestroyed: false,\n });\n }\n }\n }\n else {\n // 第二次访问:子节点已全部销毁,现在销毁当前节点\n const inst = current.inst;\n // 执行清理函数\n inst.disposes?.forEach((dispose) => {\n try {\n dispose();\n }\n catch (e) {\n console.error(\"Error during instance dispose:\", e);\n }\n });\n // 清空 dispose 数组,但保留数组引用\n if (inst.disposes) {\n inst.disposes.length = 0;\n }\n // 清空子节点引用\n if (inst.children) {\n inst.children = [];\n }\n stack.pop();\n }\n }\n // 从父实例中移除此实例的引用\n if (parent && parent.children) {\n parent.children = parent.children.filter((c) => c !== instance);\n }\n};\n","import { effect as innerEffect, Effect } from \"@j20org/signal\";\nimport { securityGetCurrentInstance } from \"../h/instance\";\nexport const effect = (effectFn) => {\n const effectInstance = innerEffect(effectFn);\n const currentInstance = securityGetCurrentInstance();\n if (!currentInstance.disposes)\n currentInstance.disposes = [];\n currentInstance.disposes.push(() => effectInstance.dispose());\n return effectInstance;\n};\nexport { Effect };\n","export function ref(init) {\n return {\n current: init ?? null,\n };\n}\n","export const BRAND = \"j20\";\n","import { signal } from \"./api/signal\";\nimport { computed } from \"./api/computed\";\nimport { getCurrentInstance, instanceCreate } from \"./h/instance\";\nimport { BRAND } from \"./brand\";\nlet host;\nexport const setHost = (h) => (host = h);\nexport const getHost = () => host;\nexport const registerWebComponent = (Comp) => {\n if (!Comp.customElement) {\n throw new Error(\"Custom element options is not provided\");\n }\n if (customElements.get(Comp.customElement.tag)) {\n throw new Error(\"Custom element tag is already defined\");\n }\n const NewClass = buildClass(Comp);\n customElements.define(Comp.customElement.tag, NewClass);\n};\nexport class WebComponentClass extends HTMLElement {\n lazy;\n constructor(lazy) {\n super();\n this.lazy = lazy;\n }\n addStyleSheet(sheet) { }\n removeStyleSheet(sheet) { }\n}\nexport const buildClass = (Comp) => {\n const { customElement } = Comp;\n const { a2p, a2v } = buildMap(customElement);\n const styleSheet = customElement.style\n ? typeof customElement.style === \"string\"\n ? (() => {\n const style = new CSSStyleSheet();\n style.replaceSync(customElement.style);\n return style;\n })()\n : customElement.style\n : null;\n return class NewElementClass extends HTMLElement {\n static get observedAttributes() {\n return Object.entries(customElement.props ?? {})\n .map(([, value]) => value.attribute)\n .filter((i) => i != undefined);\n }\n #shadow;\n #props = {};\n brand = BRAND;\n customElement = customElement;\n lazy;\n constructor(lazy) {\n super();\n this.lazy = lazy;\n if (customElement.tag && customElement.mode) {\n this.#shadow = this.attachShadow({ mode: customElement.mode });\n if (styleSheet)\n this.#shadow.adoptedStyleSheets = [styleSheet];\n }\n this.#props = Object.entries(customElement.props ?? {}).reduce((acc, [key, value]) => {\n acc[key] = signal(value.attribute\n ? a2v[value.attribute](this.getAttribute(value.attribute))\n : undefined);\n return acc;\n }, {});\n }\n lazyInit() {\n setHost(this);\n const host = this;\n const [instance, fragment] = instanceCreate(() => {\n return Comp(computed(() => {\n return new Proxy(this.#props, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p.startsWith(\"on\")) {\n return (detail) => host.dispatchEvent(new CustomEvent(p.slice(2).toLocaleLowerCase(), {\n detail,\n }));\n }\n else {\n return Reflect.get(target, p, receiver)?.value;\n }\n },\n });\n }));\n }, getCurrentInstance());\n setHost(undefined);\n instance.host = this;\n if (this.#shadow) {\n this.#shadow.appendChild(fragment);\n }\n else {\n this.appendChild(fragment);\n }\n }\n appendToShadowDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.#shadow.append(...elements);\n }\n }\n appendToLightDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.append(...elements);\n }\n }\n appendToBody(elements) {\n if (elements.length > 0) {\n this.append(...elements);\n }\n }\n addStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets.push(sheet);\n }\n }\n removeStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets =\n this.#shadow.adoptedStyleSheets.filter((s) => s !== sheet);\n }\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (this.lazy)\n return;\n const attrs = NewElementClass.observedAttributes;\n const propSignal = this.#props[a2p[name]];\n if (propSignal && attrs.includes(name)) {\n propSignal.value = a2v[name](newValue);\n }\n }\n #connectedCallbackArray = [];\n addConnectedCallback(callback) {\n this.#connectedCallbackArray.push(callback);\n }\n connectedCallback() {\n this.#connectedCallbackArray.forEach((fn) => fn());\n }\n #disconnectedCallbackArray = [];\n addDisconnectedCallback(callback) {\n this.#disconnectedCallbackArray.push(callback);\n }\n disconnectedCallback() {\n this.#disconnectedCallbackArray.forEach((fn) => fn());\n }\n };\n};\nconst buildMap = (customElement) => {\n const a2p = {};\n const p2a = {};\n const a2v = {};\n Object.entries(customElement.props ?? {})\n .map(([key, value]) => [value.attribute, key, value.type])\n .filter(([attr]) => attr != undefined)\n .forEach((i) => {\n a2p[i[0]] = i[1];\n p2a[i[1]] = i[0];\n a2v[i[0]] = {\n string: (v) => v ?? undefined,\n number: (v) => (v ? Number(v) : undefined),\n boolean: (v) => (v == null ? false : true),\n }[i[2]];\n });\n return { a2p, p2a, a2v };\n};\n","import { getHost } from \"../web-components\";\nexport const wc = () => {\n const host = getHost();\n if (!host) {\n throw new Error(\"host not found, please use `wc` in web component\");\n }\n const emit = (name, detail) => {\n host.dispatchEvent(new CustomEvent(name, {\n detail,\n }));\n };\n const onConnectedCallback = (callback) => {\n host.addConnectedCallback(callback);\n };\n const onDisconnectedCallback = (callback) => {\n host.addDisconnectedCallback(callback);\n };\n return {\n host,\n emit,\n onConnectedCallback,\n onDisconnectedCallback,\n };\n};\n","export const $ = (val) => val;\n","export const isSignal = (a) => a?.SIGNAL === true;\n","import { instanceCreateElement, instanceInit, securityGetCurrentInstance, } from \"../h/instance\";\nimport { isSignal } from \"./utils\";\nconst contextWeakMap = new WeakMap();\nconst context = (Context) => {\n const instance = securityGetCurrentInstance();\n let index = instance?.parent;\n while (index) {\n if (contextWeakMap.has(index)) {\n const { ctx, value } = contextWeakMap.get(index);\n if (ctx === Context) {\n return value;\n }\n }\n else {\n index = index.parent;\n }\n }\n return Context.defaultValue;\n};\nexport const createContext = (defaultValue) => {\n const Context = (p) => {\n const props = p;\n const instance = instanceInit(securityGetCurrentInstance());\n contextWeakMap.set(instance, {\n ctx: Context,\n value: {\n get value() {\n return props.value.value;\n },\n },\n });\n const fragment = instanceCreateElement(instance, () => props.value.children);\n return fragment;\n };\n Context.isLogic = true;\n const Consumer = (p) => {\n const props = p;\n const data = context(Context);\n if (data)\n return props.value.children(data);\n return props.value.children(isSignal(defaultValue)\n ? defaultValue\n : {\n get value() {\n return defaultValue;\n },\n });\n };\n Consumer.isLogic = true;\n Context.Consumer = Consumer;\n Context.defaultValue = defaultValue;\n return Context;\n};\nexport const $useContext = (c) => context(c.value);\n","import { securityGetCurrentInstance } from \"../h/instance\";\n/**\n * 获取当前实例的 id\n * @returns 当前实例的 id,如果没有实例则返回 undefined\n */\nexport const id = () => {\n return securityGetCurrentInstance()?.id;\n};\n","import { securityGetCurrentInstance } from \"../h/instance\";\nexport const onMount = (callback) => {\n const instance = securityGetCurrentInstance();\n if (!instance.mounts) {\n instance.mounts = [];\n }\n instance.mounts.push(callback);\n};\n","import { effect } from \"./effect\";\nexport const onDestroy = (callback) => effect(() => callback);\n","import { effect } from \"../api/effect\";\nimport { signal } from \"../api/signal\";\nimport { instanceCreate, instanceGetElements, instanceDestroy, securityGetCurrentInstance, } from \"../h/instance\";\nimport { untrack } from \"../api/untrack\";\nfunction insertAfter(parentNode, newNode, targetNode) {\n parentNode?.insertBefore(newNode, targetNode.nextSibling);\n}\nconst isSame = (a, b, trait) => {\n return Object.is(trait(a), trait(b));\n};\nconst defaultTrait = (a) => a;\nexport const For = (p) => {\n let initialized = false;\n const currentInstance = securityGetCurrentInstance();\n let oldList = [];\n let oldListItems = [];\n let initElements = [];\n effect(() => {\n const props = p.value;\n const trait = props.trait ?? defaultTrait;\n const newList = props.of;\n // @ts-expect-error\n if (import.meta.env.DEV) {\n const traitMap = new Map();\n const duplicates = [];\n for (const item of newList) {\n const traitValue = trait(item);\n if (!traitMap.has(traitValue)) {\n traitMap.set(traitValue, []);\n }\n traitMap.get(traitValue).push(item);\n // 检查是否有重复\n if (traitMap.get(traitValue).length === 2) {\n duplicates.push(...traitMap.get(traitValue));\n }\n }\n // 输出 trait 重复警告\n if (duplicates.length > 0) {\n console.warn(\"[j20 For] Duplicate trait values detected in list. \" +\n \"Each item should have a unique trait value for optimal performance. \" +\n \"Duplicates found:\", duplicates);\n }\n }\n const newListItems = new Array(newList.length);\n // 实现 diff 逻辑,参考 vue3\n let i = 0;\n const l2 = newList.length;\n let e1 = oldList.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[i], newList[i], trait)) {\n newListItems[i] = oldListItems[i];\n i++;\n }\n else {\n break;\n }\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[e1], newList[e2], trait)) {\n newListItems[e2] = oldListItems[e1];\n e1--;\n e2--;\n }\n else {\n break;\n }\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n for (; i <= e2; i++) {\n const newIndex = signal(i);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newList[i], newIndex));\n return newChild;\n }, currentInstance);\n if (!initialized) {\n initElements.push(newInstanceFragment);\n }\n else {\n if (i > 0) {\n const prev = newListItems[i - 1]?.instance;\n const prevEl = prev?.range[1] ?? currentInstance.range[0];\n insertAfter(prevEl.parentNode, newInstanceFragment, prevEl);\n }\n else {\n const parentNode = currentInstance.range[0].parentNode;\n parentNode?.insertBefore(newInstanceFragment, currentInstance.range[0]);\n }\n }\n newListItems[i] = {\n index: newIndex,\n item: newList[i],\n instance: newInstance,\n };\n }\n }\n }\n // 4. common sequence + unmount\n else if (i > e2) {\n while (i <= e1) {\n // remove elements\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n i++;\n }\n }\n // 5. unknown sequence\n else {\n // 创建一个 key -> index 的映射,用于快速查找旧列表中的项\n const s1 = i; // 旧列表开始索引\n const s2 = i; // 新列表开始索引\n // 为新的未处理项创建 key -> index 映射\n const keyToNewIndexMap = new Map();\n for (let i = s2; i <= e2; i++) {\n keyToNewIndexMap.set(trait(newList[i]), i);\n }\n // 需要处理的新项数量\n const toBePatched = e2 - s2 + 1;\n // 创建一个数组,存储新旧索引的映射关系\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (let i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n // 遍历旧列表中未处理的项,如果在新列表中存在则更新,否则删除\n let patched = 0;\n let moved = false;\n let maxNewIndexSoFar = 0;\n for (let i = s1; i <= e1; i++) {\n if (patched >= toBePatched) {\n // 所有新项都已处理,剩余的旧项可以直接删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n continue;\n }\n const oldItem = oldList[i];\n const oldKey = trait(oldItem);\n const newIndex = keyToNewIndexMap.get(oldKey);\n if (newIndex === undefined) {\n // 在新列表中不存在,删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n }\n else {\n // 在新列表中存在,更新映射关系\n // newIndex - s2 得到在 newIndexToOldIndexMap 中的位置\n // i + 1 避免与初始值 0 冲突\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n // 检查是否需要移动\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n // 复用实例\n newListItems[newIndex] = oldListItems[i];\n patched++;\n }\n }\n // 如果需要移动节点,使用最长递增子序列算法优化移动\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : [];\n // 从后向前遍历,确保插入顺序正确\n let j = increasingNewIndexSequence.length - 1;\n for (let i = toBePatched - 1; i >= 0; i--) {\n const newIndex = s2 + i;\n const newItem = newList[newIndex];\n // 确定锚点元素\n const anchor = newIndex + 1 < l2\n ? newListItems[newIndex + 1].instance.range[0]\n : currentInstance.range[1];\n if (newIndexToOldIndexMap[i] === 0) {\n // 创建新节点\n const newIdx = signal(newIndex);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newItem, newIdx));\n return newChild;\n }, currentInstance);\n // 插入到 DOM\n anchor.parentNode?.insertBefore(newInstanceFragment, anchor);\n newListItems[newIndex] = {\n index: newIdx,\n item: newItem,\n instance: newInstance,\n };\n }\n else if (moved) {\n // 需要移动\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n // 移动节点\n const nodeToMove = newListItems[newIndex];\n const elementsToMove = instanceGetElements(nodeToMove.instance);\n // 将所有元素移动到锚点之前\n elementsToMove.forEach((el) => {\n anchor.parentNode?.insertBefore(el, anchor);\n });\n }\n else {\n // 不需要移动,跳过\n j--;\n }\n }\n }\n }\n oldList = newList;\n oldListItems = newListItems;\n currentInstance.children = newListItems.map((item, index) => {\n item.index.value = index;\n return item.instance;\n });\n });\n initialized = true;\n return initElements.splice(0, initElements.length);\n};\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nexport const createComponent = (tag, props) => {\n const runner = () => tag(computed(() => (props ? props() : {})));\n let [, fragment] = instanceCreate(runner);\n return fragment;\n};\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const If = (p) => {\n const props = p;\n const arr = computed(() => (!props.value.of ? [0] : [1]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const children = propsValues.children;\n if (children && typeof children === \"function\") {\n return children(!!bool);\n }\n if (bool) {\n return children;\n }\n else {\n return propsValues.else;\n }\n };\n },\n }));\n};\nIf.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\n// 实现\nfunction Some(p) {\n const props = p;\n const resSig = computed(() => props.value.of);\n const arr = computed(() => (resSig.value != null ? [1] : [0]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const { children } = propsValues;\n if (bool) {\n return children(computed(() => resSig.value));\n }\n else {\n return propsValues.none;\n }\n };\n },\n }));\n}\nSome.isLogic = true;\nexport { Some };\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const Replace = (p) => {\n const props = p;\n let count = 0;\n const list = computed(() => {\n props.value.of;\n return [(count = (count + 1) % 2)];\n });\n return createComponent(For, () => ({\n of: list.value,\n get children() {\n return (item) => {\n const children = props.value.children;\n return typeof children === \"function\" ? children(item) : children;\n };\n },\n }));\n};\nReplace.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nimport { generateId } from \"../h/utils\";\nexport const Switch = (p) => {\n const props = p;\n const children = props.value.children;\n const res = computed(() => children.filter((i) => i.valid)[0]);\n return createComponent(For, () => ({\n of: res.value ? [res.value] : [],\n trait: (item) => item.id,\n get children() {\n return (item) => item.children;\n },\n }));\n};\nSwitch.isLogic = true;\nexport const Case = (p) => {\n const props = p;\n const id = generateId();\n return {\n id,\n get valid() {\n return props.value.of;\n },\n get children() {\n return props.value.children;\n },\n };\n};\nCase.isLogic = true;\nexport const Default = (p) => {\n const props = p;\n const id = generateId();\n const data = {\n id,\n get valid() {\n return true;\n },\n get children() {\n return props.value.children;\n },\n };\n return data;\n};\nDefault.isLogic = true;\n","import { computed } from \"../api/computed\";\nexport const createLogicComponent = (tag, props) => {\n return tag(computed(() => (props ? props() : {})));\n};\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nimport { untrack } from \"../api/untrack\";\nimport { BRAND } from \"../brand\";\nimport { buildClass, setHost } from \"../web-components\";\nimport { getChildren } from \"./utils\";\nexport const createWebComponent = (tag, props) => {\n const runner = () => {\n const customElement = tag.customElement;\n const Exist = customElements.get(customElement.tag);\n let el;\n if (Exist) {\n if (Exist.brand !== BRAND) {\n throw new Error(`Custom element [${customElement.tag}] is already registered`);\n }\n else {\n el = new Exist(true);\n }\n }\n else {\n const NewClass = buildClass(tag);\n customElements.define(customElement.tag, NewClass);\n el = new NewClass(true);\n }\n let childrenGetter = () => untrack(() => (props ? props().children : undefined));\n setHost(el);\n const ret = tag(computed(() => {\n const retProps = props ? props() : {};\n childrenGetter =\n Object.getOwnPropertyDescriptor(retProps, \"children\")?.get ??\n (() => undefined);\n delete retProps.children;\n return retProps;\n }));\n setHost(undefined);\n if (el.customElement.mode) {\n el.appendToShadowDom(getChildren([].concat(ret)));\n childrenGetter &&\n el.appendToLightDom(getChildren([].concat(childrenGetter())));\n }\n else {\n el.appendToBody(getChildren([].concat(ret)));\n }\n return el;\n };\n let [, fragment] = instanceCreate(runner);\n return fragment;\n};\n","import { createComponent } from \"./createComponent\";\nimport { createDom } from \"./createDom\";\nimport { createLogicComponent } from \"./createLogicComponent\";\nimport { createWebComponent } from \"./createWebComponent\";\nexport const createElement = (tag, props, children) => {\n return tag instanceof Node\n ? createDom(tag, props, children)\n : \"isLogic\" in tag\n ? createLogicComponent(tag, props)\n : \"customElement\" in tag\n ? createWebComponent(tag, props)\n : createComponent(tag, props);\n};\n","import { instanceCreate } from \"./instance\";\nexport const createRoot = (boot) => {\n let [instance, fragment] = instanceCreate(() => boot());\n return {\n element: fragment,\n instance,\n };\n};\n","import { createElement } from \"./index\";\nexport const h2 = (tag, props, children) => {\n return createElement(tag, props, children);\n};\nexport const jsx = h2;\nexport const jsxs = h2;\nexport const Fragment = (props) => props.value.children;\nexport const template = (template) => {\n let dom;\n return (isSvg) => {\n if (!dom) {\n const templateEl = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n : document.createElement(\"template\");\n templateEl.innerHTML = template;\n dom = isSvg\n ? templateEl.firstChild\n : templateEl.content.firstChild;\n }\n return dom.cloneNode();\n };\n};\n"],"names":["effect","innerEffect"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../signal/dist/index.js","../_dist/h/utils.js","../_dist/h/createDom.js","../_dist/h/instance.js","../_dist/api/effect.js","../_dist/api/ref.js","../_dist/brand.js","../_dist/web-components.js","../_dist/api/wc.js","../_dist/api/dollar.js","../_dist/api/utils.js","../_dist/api/context.js","../_dist/api/id.js","../_dist/api/onMount.js","../_dist/api/onDestroy.js","../_dist/api/style.js","../_dist/control/For.js","../_dist/h/createComponent.js","../_dist/control/If.js","../_dist/control/Some.js","../_dist/control/Replace.js","../_dist/control/Switch.js","../_dist/h/createLogicComponent.js","../_dist/h/createWebComponent.js","../_dist/h/createElement.js","../_dist/h/createRoot.js","../_dist/jsx-runtime.js"],"sourcesContent":["// 当前正在执行的effect或computed\nlet currentReaction = null;\n// 批处理栈,用于延迟 effect 的执行\nlet batchDepth = 0;\n// 待执行的 effect 队列\nlet pendingEffects = new Set();\n// 存储所有信号的依赖关系\nconst depMap = new WeakMap();\n/**\n * Signal类 - 用于存储响应式数据\n */\nclass Signal {\n SIGNAL = true;\n _value;\n _version = 0;\n _deps = new Set();\n constructor(value) {\n this._value = value;\n }\n get value() {\n // 如果有当前正在执行的reaction,建立依赖关系\n if (currentReaction) {\n this.track(currentReaction);\n }\n return this._value;\n }\n set value(newValue) {\n if (Object.is(this._value, newValue))\n return;\n this._value = newValue;\n this._version++;\n // 通知所有依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n // 对于effect,使用版本检查优化\n if (reaction._depVersions.has(this) || reaction.hasDepsChanged()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n }\n });\n }\n get version() {\n return this._version;\n }\n // 建立依赖关系\n track(reaction) {\n if (!this._deps.has(reaction)) {\n this._deps.add(reaction);\n // 维护反向依赖关系\n let reactions = depMap.get(this);\n if (!reactions) {\n reactions = new Set();\n depMap.set(this, reactions);\n }\n reactions.add(reaction);\n // 在reaction中记录依赖\n reaction.track(this);\n }\n }\n}\n/**\n * Computed类 - 用于计算派生值\n */\nclass Computed {\n SIGNAL = true;\n computeFn;\n _value;\n _version = 0;\n dirty = true;\n disposed = false;\n _deps = new Set();\n sources = new Set();\n constructor(computeFn) {\n this.computeFn = computeFn;\n // 使用symbol作为初始值占位符\n this._value = undefined;\n }\n get value() {\n if (this.disposed) {\n throw new Error(\"Cannot access value of disposed computed\");\n }\n if (this.dirty) {\n this.compute();\n }\n // 建立依赖关系\n if (currentReaction) {\n if (!this._deps.has(currentReaction)) {\n this._deps.add(currentReaction);\n currentReaction.track(this);\n }\n }\n return this._value;\n }\n get version() {\n return this._version;\n }\n compute() {\n if (this.disposed) {\n throw new Error(\"Cannot compute disposed computed\");\n }\n // 检查循环依赖\n if (computationStack.includes(this)) {\n throw new Error(\"Circular dependency detected in computed values\");\n }\n this.dirty = false;\n // 保存当前状态\n const prevReaction = currentReaction;\n const prevSources = this.sources;\n this.sources = new Set();\n // 将当前computed加入计算栈\n computationStack.push(this);\n currentReaction = this;\n try {\n this._value = this.computeFn();\n this._version++;\n }\n catch (e) {\n this.dirty = true;\n throw e;\n }\n finally {\n // 清理工作\n const index = computationStack.indexOf(this);\n if (index !== -1) {\n computationStack.splice(index, 1);\n }\n currentReaction = prevReaction;\n // 清理不再依赖的sources\n prevSources.forEach((source) => {\n if (!this.sources.has(source)) {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n }\n });\n }\n }\n markDirty() {\n if (this.disposed || this.dirty)\n return;\n this.dirty = true;\n // 通知依赖项\n this._deps.forEach((reaction) => {\n if (reaction instanceof Computed) {\n reaction.markDirty();\n }\n else if (reaction.isActive()) {\n if (batchDepth > 0) {\n // 在批处理模式下,延迟执行 effect\n pendingEffects.add(reaction);\n }\n else {\n reaction.execute();\n }\n }\n });\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this.sources.has(source)) {\n this.sources.add(source);\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this.sources.forEach((source) => {\n const reactions = depMap.get(source);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this.sources.clear();\n this._deps.clear();\n // 清理引用\n this._value = undefined;\n this.computeFn = undefined;\n }\n}\n// 用于检测循环依赖\nconst computationStack = [];\n/**\n * Effect类 - 用于执行副作用\n */\nclass Effect {\n effectFn;\n cleanupFn = null;\n disposed = false;\n _deps = new Set();\n _depVersions = new Map();\n constructor(effectFn) {\n this.effectFn = effectFn;\n }\n execute() {\n if (this.disposed)\n return;\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n // 执行effect并收集依赖\n const prevReaction = currentReaction;\n currentReaction = this;\n try {\n const result = this.effectFn();\n if (typeof result === \"function\") {\n this.cleanupFn = result;\n }\n }\n finally {\n currentReaction = prevReaction;\n }\n }\n dispose() {\n if (this.disposed)\n return;\n this.disposed = true;\n // 清理所有依赖关系\n this._deps.forEach((dep) => {\n const reactions = depMap.get(dep);\n if (reactions) {\n reactions.delete(this);\n }\n });\n this._deps.clear();\n this._depVersions.clear();\n // 执行清理函数\n if (this.cleanupFn) {\n try {\n this.cleanupFn();\n }\n catch (e) {\n console.warn(\"Error in effect cleanup function:\", e);\n }\n this.cleanupFn = null;\n }\n }\n isActive() {\n return !this.disposed;\n }\n track(source) {\n if (this.disposed)\n return;\n if (!this._deps.has(source)) {\n this._deps.add(source);\n // 记录依赖的版本号\n if (\"version\" in source) {\n this._depVersions.set(source, source.version);\n }\n let reactions = depMap.get(source);\n if (!reactions) {\n reactions = new Set();\n depMap.set(source, reactions);\n }\n reactions.add(this);\n }\n }\n hasDepsChanged() {\n for (const [dep, version] of this._depVersions) {\n if (\"version\" in dep && dep.version !== version) {\n return true;\n }\n }\n return false;\n }\n}\n// 创建信号\nfunction signal(initialValue) {\n return new Signal(initialValue);\n}\n// 创建计算值\nfunction computed(computeFn) {\n return new Computed(computeFn);\n}\n// 创建副作用\nfunction effect(effectFn) {\n const effectInstance = new Effect(effectFn);\n effectInstance.execute();\n return effectInstance;\n}\n// 临时取消追踪\nfunction untrack(fn) {\n const prevReaction = currentReaction;\n currentReaction = null;\n try {\n return fn();\n }\n finally {\n currentReaction = prevReaction;\n }\n}\n// 批处理 - 延迟 effect 的执行直到批处理结束\nfunction batch(fn) {\n batchDepth++;\n try {\n return fn();\n }\n finally {\n batchDepth--;\n // 当批处理结束时,执行所有待处理的 effect\n if (batchDepth === 0) {\n const effects = Array.from(pendingEffects);\n pendingEffects.clear();\n // 执行所有待处理的 effect\n effects.forEach((effect) => {\n if (effect.isActive()) {\n effect.execute();\n }\n });\n }\n }\n}\n\nexport { Computed, Effect, Signal, batch, computed, effect, signal, untrack };\n//# sourceMappingURL=index.js.map\n","import { effect } from \"../api/effect\";\nexport const isEvent = (eventName) => {\n return eventName.startsWith(\"on\");\n};\nexport const getEventName = (eventName) => {\n return eventName.slice(2).toLowerCase();\n};\nexport const getChildren = (propChildren) => {\n const arr = [];\n for (let i = 0; i < propChildren.length; i++) {\n const child = propChildren[i];\n if (typeof child === \"function\") {\n let textNode;\n const effectInstance = effect(() => {\n const el = child();\n if (typeof el === \"number\" || typeof el === \"string\") {\n if (textNode) {\n textNode.nodeValue = el + \"\";\n }\n else {\n textNode = document.createTextNode(el + \"\");\n arr.push(textNode);\n }\n }\n else {\n arr.push(el);\n }\n });\n if (!textNode) {\n effectInstance.dispose();\n }\n }\n else if (child != undefined) {\n arr.push(child);\n }\n }\n return arr;\n};\nlet overflow = \"\";\nlet count = 0;\nexport const generateId = () => {\n if (count === Number.MAX_SAFE_INTEGER) {\n overflow += count.toString(32);\n count = 0;\n }\n return `${overflow}${(count++).toString(32)}`;\n};\nexport const styleObjectToString = (style) => {\n let styleString = \"\";\n for (const key in style) {\n const value = style[key];\n styleString += `${key}: ${value}; `;\n }\n return styleString.trim();\n};\n","import { effect } from \"../api/effect\";\nimport { getChildren, getEventName, isEvent, styleObjectToString, } from \"./utils\";\nimport { getCurrentInstance } from \"./instance\";\nconst update = (node, key, oldValue, newValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n node.addEventListener(getEventName(key), newValue);\n }\n else {\n if (newValue === false || newValue == null) {\n node.removeAttribute(key);\n }\n else {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nconst unset = (node, key, oldValue) => {\n if (isEvent(key)) {\n node.removeEventListener(getEventName(key), oldValue);\n }\n else if (key === \"ref\") {\n oldValue.current = null;\n }\n else {\n node.removeAttribute(key);\n }\n};\nconst add = (node, key, newValue) => {\n if (isEvent(key)) {\n node.addEventListener(getEventName(key), newValue);\n }\n else if (key === \"ref\") {\n const instance = getCurrentInstance();\n if (instance) {\n if (!instance.disposes)\n instance.disposes = [];\n instance.disposes.push(() => {\n newValue.current = null;\n });\n }\n newValue.current = node;\n }\n else {\n if (newValue !== false && newValue != null) {\n const value = key === \"style\" && typeof newValue === \"object\"\n ? styleObjectToString(newValue)\n : newValue === true\n ? \"\"\n : newValue;\n node.setAttribute(key, value);\n }\n }\n};\nexport const createDom = (tag, props, children) => {\n const node = tag;\n let oldProps = {};\n props &&\n effect(() => {\n const newProps = { ...props() };\n const newKeys = Object.keys(newProps);\n const oldKeys = Object.keys(oldProps);\n const allKeys = new Set([...newKeys, ...oldKeys]);\n for (const key of allKeys) {\n oldKeys.includes(key)\n ? newKeys.includes(key)\n ? Object.is(oldProps[key], newProps[key])\n ? null\n : update(node, key, oldProps[key], newProps[key])\n : unset(node, key, oldProps[key])\n : add(node, key, newProps[key]);\n }\n oldProps = newProps;\n });\n // 独立 wc 初始化\n node.lazyInit?.();\n if (children &&\n // 独立 wc 初始化时 mode 为空时,忽略 children\n (node.lazyInit\n ? !node.customElement.mode\n ? false\n : true\n : true)) {\n node.append(...getChildren([].concat(children())));\n }\n return node;\n};\n","import { createDom } from \"./createDom\";\nimport { generateId } from \"./utils\";\nconst stack = [];\nexport const getCurrentInstance = () => stack.at(-1);\n// api security guard\nexport const securityGetCurrentInstance = () => {\n const instance = getCurrentInstance();\n if (!instance)\n throw new Error(\"Do not run this api out of component\");\n return instance;\n};\nexport const instanceInit = (parent) => {\n const id = generateId();\n const parentInstance = parent ?? getCurrentInstance();\n const instance = {\n parent: parentInstance,\n id,\n range: [document.createTextNode(\"\"), document.createTextNode(\"\")],\n };\n if (parentInstance) {\n if (parentInstance.children) {\n parentInstance.children.push(instance);\n }\n else {\n parentInstance.children = [instance];\n }\n }\n return instance;\n};\nexport const mounts = [];\nexport const instanceCreateElement = (instance, runner) => {\n stack.push(instance);\n const fragment = createDom(document.createDocumentFragment(), undefined, () => runner());\n fragment.prepend(instance.range[0]);\n fragment.append(instance.range[1]);\n if (instance.mounts) {\n mounts.push(...instance.mounts);\n instance.mounts = undefined;\n }\n stack.pop();\n if (stack.length === 0) {\n requestAnimationFrame(() => {\n mounts.forEach((mount) => mount());\n mounts.length = 0;\n });\n }\n return fragment;\n};\nexport const instanceCreate = (runner, parent) => {\n const instance = instanceInit(parent);\n return [instance, instanceCreateElement(instance, runner)];\n};\nexport const instanceGetElements = (instance) => {\n const [start, end] = instance.range;\n const els = [start];\n let index = start;\n while ((index = index.nextSibling)) {\n els.push(index);\n if (index === end)\n break;\n }\n return els;\n};\nexport const instanceDestroy = (parent, instance) => {\n // 使用栈来实现迭代式的深度优先销毁,避免递归开销\n // 关键:需要跟踪每个实例的销毁状态(是否已销毁子节点)\n const stack = [\n { inst: instance, childrenDestroyed: false },\n ];\n while (stack.length > 0) {\n const current = stack[stack.length - 1];\n if (!current.childrenDestroyed) {\n // 第一次访问:先标记子节点已销毁,然后将子节点入栈\n current.childrenDestroyed = true;\n if (current.inst.children && current.inst.children.length > 0) {\n // 倒序添加子节点,保持与递归相同的销毁顺序\n for (let i = current.inst.children.length - 1; i >= 0; i--) {\n stack.push({\n inst: current.inst.children[i],\n childrenDestroyed: false,\n });\n }\n }\n }\n else {\n // 第二次访问:子节点已全部销毁,现在销毁当前节点\n const inst = current.inst;\n // 执行清理函数\n inst.disposes?.forEach((dispose) => {\n try {\n dispose();\n }\n catch (e) {\n console.error(\"Error during instance dispose:\", e);\n }\n });\n // 清空 dispose 数组,但保留数组引用\n if (inst.disposes) {\n inst.disposes.length = 0;\n }\n // 清空子节点引用\n if (inst.children) {\n inst.children = [];\n }\n stack.pop();\n }\n }\n // 从父实例中移除此实例的引用\n if (parent && parent.children) {\n parent.children = parent.children.filter((c) => c !== instance);\n }\n};\n","import { effect as innerEffect, Effect } from \"@j20org/signal\";\nimport { securityGetCurrentInstance } from \"../h/instance\";\nexport const effect = (effectFn) => {\n const effectInstance = innerEffect(effectFn);\n const currentInstance = securityGetCurrentInstance();\n if (!currentInstance.disposes)\n currentInstance.disposes = [];\n currentInstance.disposes.push(() => effectInstance.dispose());\n return effectInstance;\n};\nexport { Effect };\n","export function ref(init) {\n return {\n current: init ?? null,\n };\n}\n","export const BRAND = \"j20\";\n","import { signal } from \"./api/signal\";\nimport { computed } from \"./api/computed\";\nimport { getCurrentInstance, instanceCreate } from \"./h/instance\";\nimport { BRAND } from \"./brand\";\nlet host;\nexport const setHost = (h) => (host = h);\nexport const getHost = () => host;\nexport const registerWebComponent = (Comp) => {\n if (!Comp.customElement) {\n throw new Error(\"Custom element options is not provided\");\n }\n if (customElements.get(Comp.customElement.tag)) {\n throw new Error(\"Custom element tag is already defined\");\n }\n const NewClass = buildClass(Comp);\n customElements.define(Comp.customElement.tag, NewClass);\n};\nexport class WebComponentClass extends HTMLElement {\n lazy;\n constructor(lazy) {\n super();\n this.lazy = lazy;\n }\n addStyleSheet(sheet) { }\n removeStyleSheet(sheet) { }\n}\nexport const buildClass = (Comp) => {\n const { customElement } = Comp;\n const { a2p, a2v } = buildMap(customElement);\n const styleSheet = customElement.style\n ? typeof customElement.style === \"string\"\n ? (() => {\n const style = new CSSStyleSheet();\n style.replaceSync(customElement.style);\n return style;\n })()\n : customElement.style\n : null;\n return class NewElementClass extends HTMLElement {\n static get observedAttributes() {\n return Object.entries(customElement.props ?? {})\n .map(([, value]) => value.attribute)\n .filter((i) => i != undefined);\n }\n #shadow;\n #props = {};\n brand = BRAND;\n customElement = customElement;\n lazy;\n constructor(lazy) {\n super();\n this.lazy = lazy;\n if (customElement.tag && customElement.mode) {\n this.#shadow = this.attachShadow({ mode: customElement.mode });\n if (styleSheet)\n this.#shadow.adoptedStyleSheets = [styleSheet];\n }\n this.#props = Object.entries(customElement.props ?? {}).reduce((acc, [key, value]) => {\n acc[key] = signal(value.attribute\n ? a2v[value.attribute](this.getAttribute(value.attribute))\n : undefined);\n return acc;\n }, {});\n }\n lazyInit() {\n setHost(this);\n const host = this;\n const [instance, fragment] = instanceCreate(() => {\n return Comp(computed(() => {\n return new Proxy(this.#props, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p.startsWith(\"on\")) {\n return (detail) => host.dispatchEvent(new CustomEvent(p.slice(2).toLocaleLowerCase(), {\n detail,\n }));\n }\n else {\n return Reflect.get(target, p, receiver)?.value;\n }\n },\n });\n }));\n }, getCurrentInstance());\n setHost(undefined);\n instance.host = this;\n if (this.#shadow) {\n this.#shadow.appendChild(fragment);\n }\n else {\n this.appendChild(fragment);\n }\n }\n appendToShadowDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.#shadow.append(...elements);\n }\n }\n appendToLightDom(elements) {\n if (this.#shadow && elements.length > 0) {\n this.append(...elements);\n }\n }\n appendToBody(elements) {\n if (elements.length > 0) {\n this.append(...elements);\n }\n }\n addStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets.push(sheet);\n }\n }\n removeStyleSheet(sheet) {\n if (this.#shadow) {\n this.#shadow.adoptedStyleSheets =\n this.#shadow.adoptedStyleSheets.filter((s) => s !== sheet);\n }\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (this.lazy)\n return;\n const attrs = NewElementClass.observedAttributes;\n const propSignal = this.#props[a2p[name]];\n if (propSignal && attrs.includes(name)) {\n propSignal.value = a2v[name](newValue);\n }\n }\n #connectedCallbackArray = [];\n addConnectedCallback(callback) {\n this.#connectedCallbackArray.push(callback);\n }\n connectedCallback() {\n this.#connectedCallbackArray.forEach((fn) => fn());\n }\n #disconnectedCallbackArray = [];\n addDisconnectedCallback(callback) {\n this.#disconnectedCallbackArray.push(callback);\n }\n disconnectedCallback() {\n this.#disconnectedCallbackArray.forEach((fn) => fn());\n }\n };\n};\nconst buildMap = (customElement) => {\n const a2p = {};\n const p2a = {};\n const a2v = {};\n Object.entries(customElement.props ?? {})\n .map(([key, value]) => [value.attribute, key, value.type])\n .filter(([attr]) => attr != undefined)\n .forEach((i) => {\n a2p[i[0]] = i[1];\n p2a[i[1]] = i[0];\n a2v[i[0]] = {\n string: (v) => v ?? undefined,\n number: (v) => (v ? Number(v) : undefined),\n boolean: (v) => (v == null ? false : true),\n }[i[2]];\n });\n return { a2p, p2a, a2v };\n};\n","import { getHost } from \"../web-components\";\nexport const wc = () => {\n const host = getHost();\n if (!host) {\n throw new Error(\"host not found, please use `wc` in web component\");\n }\n const emit = (name, detail) => {\n host.dispatchEvent(new CustomEvent(name, {\n detail,\n }));\n };\n const onConnectedCallback = (callback) => {\n host.addConnectedCallback(callback);\n };\n const onDisconnectedCallback = (callback) => {\n host.addDisconnectedCallback(callback);\n };\n return {\n host,\n emit,\n onConnectedCallback,\n onDisconnectedCallback,\n };\n};\n","export const $ = (val) => val;\n","export const isSignal = (a) => a?.SIGNAL === true;\n","import { instanceCreateElement, instanceInit, securityGetCurrentInstance, } from \"../h/instance\";\nimport { isSignal } from \"./utils\";\nconst contextWeakMap = new WeakMap();\nconst context = (Context) => {\n const instance = securityGetCurrentInstance();\n let index = instance?.parent;\n while (index) {\n if (contextWeakMap.has(index)) {\n const { ctx, value } = contextWeakMap.get(index);\n if (ctx === Context) {\n return value;\n }\n }\n else {\n index = index.parent;\n }\n }\n return Context.defaultValue;\n};\nexport const createContext = (defaultValue) => {\n const Context = (p) => {\n const props = p;\n const instance = instanceInit(securityGetCurrentInstance());\n contextWeakMap.set(instance, {\n ctx: Context,\n value: {\n get value() {\n return props.value.value;\n },\n },\n });\n const fragment = instanceCreateElement(instance, () => props.value.children);\n return fragment;\n };\n Context.isLogic = true;\n const Consumer = (p) => {\n const props = p;\n const data = context(Context);\n if (data)\n return props.value.children(data);\n return props.value.children(isSignal(defaultValue)\n ? defaultValue\n : {\n get value() {\n return defaultValue;\n },\n });\n };\n Consumer.isLogic = true;\n Context.Consumer = Consumer;\n Context.defaultValue = defaultValue;\n return Context;\n};\nexport const $useContext = (c) => context(c.value);\n","import { securityGetCurrentInstance } from \"../h/instance\";\n/**\n * 获取当前实例的 id\n * @returns 当前实例的 id,如果没有实例则返回 undefined\n */\nexport const id = () => {\n return securityGetCurrentInstance()?.id;\n};\n","import { securityGetCurrentInstance } from \"../h/instance\";\nexport const onMount = (callback) => {\n const instance = securityGetCurrentInstance();\n if (!instance.mounts) {\n instance.mounts = [];\n }\n instance.mounts.push(callback);\n};\n","import { effect } from \"./effect\";\nexport const onDestroy = (callback) => effect(() => callback);\n","import { getCurrentInstance } from \"../h/instance\";\nimport { onDestroy } from \"./onDestroy\";\nexport const style = (css) => {\n let instance = getCurrentInstance();\n const sheet = new CSSStyleSheet();\n css && sheet.replaceSync(css);\n while (instance) {\n if (instance.host) {\n instance.host.addStyleSheet(sheet);\n onDestroy(() => {\n instance.host.removeStyleSheet(sheet);\n });\n break;\n }\n instance = instance?.parent;\n }\n if (!instance) {\n document.adoptedStyleSheets.push(sheet);\n onDestroy(() => {\n document.adoptedStyleSheets = document.adoptedStyleSheets.filter((s) => s !== sheet);\n });\n }\n return sheet;\n};\n","import { effect } from \"../api/effect\";\nimport { signal } from \"../api/signal\";\nimport { instanceCreate, instanceGetElements, instanceDestroy, securityGetCurrentInstance, } from \"../h/instance\";\nimport { untrack } from \"../api/untrack\";\nfunction insertAfter(parentNode, newNode, targetNode) {\n parentNode?.insertBefore(newNode, targetNode.nextSibling);\n}\nconst isSame = (a, b, trait) => {\n return Object.is(trait(a), trait(b));\n};\nconst defaultTrait = (a) => a;\nexport const For = (p) => {\n let initialized = false;\n const currentInstance = securityGetCurrentInstance();\n let oldList = [];\n let oldListItems = [];\n let initElements = [];\n effect(() => {\n const props = p.value;\n const trait = props.trait ?? defaultTrait;\n const newList = props.of;\n // @ts-expect-error\n if (import.meta.env.DEV) {\n const traitMap = new Map();\n const duplicates = [];\n for (const item of newList) {\n const traitValue = trait(item);\n if (!traitMap.has(traitValue)) {\n traitMap.set(traitValue, []);\n }\n traitMap.get(traitValue).push(item);\n // 检查是否有重复\n if (traitMap.get(traitValue).length === 2) {\n duplicates.push(...traitMap.get(traitValue));\n }\n }\n // 输出 trait 重复警告\n if (duplicates.length > 0) {\n console.warn(\"[j20 For] Duplicate trait values detected in list. \" +\n \"Each item should have a unique trait value for optimal performance. \" +\n \"Duplicates found:\", duplicates);\n }\n }\n const newListItems = new Array(newList.length);\n // 实现 diff 逻辑,参考 vue3\n let i = 0;\n const l2 = newList.length;\n let e1 = oldList.length - 1; // prev ending index\n let e2 = l2 - 1; // next ending index\n // 1. sync from start\n // (a b) c\n // (a b) d e\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[i], newList[i], trait)) {\n newListItems[i] = oldListItems[i];\n i++;\n }\n else {\n break;\n }\n }\n // 2. sync from end\n // a (b c)\n // d e (b c)\n while (i <= e1 && i <= e2) {\n if (isSame(oldList[e1], newList[e2], trait)) {\n newListItems[e2] = oldListItems[e1];\n e1--;\n e2--;\n }\n else {\n break;\n }\n }\n // 3. common sequence + mount\n // (a b)\n // (a b) c\n // i = 2, e1 = 1, e2 = 2\n // (a b)\n // c (a b)\n // i = 0, e1 = -1, e2 = 0\n if (i > e1) {\n if (i <= e2) {\n for (; i <= e2; i++) {\n const newIndex = signal(i);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newList[i], newIndex));\n return newChild;\n }, currentInstance);\n if (!initialized) {\n initElements.push(newInstanceFragment);\n }\n else {\n if (i > 0) {\n const prev = newListItems[i - 1]?.instance;\n const prevEl = prev?.range[1] ?? currentInstance.range[0];\n insertAfter(prevEl.parentNode, newInstanceFragment, prevEl);\n }\n else {\n const parentNode = currentInstance.range[0].parentNode;\n parentNode?.insertBefore(newInstanceFragment, currentInstance.range[0]);\n }\n }\n newListItems[i] = {\n index: newIndex,\n item: newList[i],\n instance: newInstance,\n };\n }\n }\n }\n // 4. common sequence + unmount\n else if (i > e2) {\n while (i <= e1) {\n // remove elements\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n i++;\n }\n }\n // 5. unknown sequence\n else {\n // 创建一个 key -> index 的映射,用于快速查找旧列表中的项\n const s1 = i; // 旧列表开始索引\n const s2 = i; // 新列表开始索引\n // 为新的未处理项创建 key -> index 映射\n const keyToNewIndexMap = new Map();\n for (let i = s2; i <= e2; i++) {\n keyToNewIndexMap.set(trait(newList[i]), i);\n }\n // 需要处理的新项数量\n const toBePatched = e2 - s2 + 1;\n // 创建一个数组,存储新旧索引的映射关系\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (let i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n // 遍历旧列表中未处理的项,如果在新列表中存在则更新,否则删除\n let patched = 0;\n let moved = false;\n let maxNewIndexSoFar = 0;\n for (let i = s1; i <= e1; i++) {\n if (patched >= toBePatched) {\n // 所有新项都已处理,剩余的旧项可以直接删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n continue;\n }\n const oldItem = oldList[i];\n const oldKey = trait(oldItem);\n const newIndex = keyToNewIndexMap.get(oldKey);\n if (newIndex === undefined) {\n // 在新列表中不存在,删除\n instanceGetElements(oldListItems[i].instance).forEach((el) => {\n el.parentNode?.removeChild(el);\n });\n instanceDestroy(currentInstance, oldListItems[i].instance);\n }\n else {\n // 在新列表中存在,更新映射关系\n // newIndex - s2 得到在 newIndexToOldIndexMap 中的位置\n // i + 1 避免与初始值 0 冲突\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n // 检查是否需要移动\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n }\n else {\n moved = true;\n }\n // 复用实例\n newListItems[newIndex] = oldListItems[i];\n patched++;\n }\n }\n // 如果需要移动节点,使用最长递增子序列算法优化移动\n const increasingNewIndexSequence = moved\n ? getSequence(newIndexToOldIndexMap)\n : [];\n // 从后向前遍历,确保插入顺序正确\n let j = increasingNewIndexSequence.length - 1;\n for (let i = toBePatched - 1; i >= 0; i--) {\n const newIndex = s2 + i;\n const newItem = newList[newIndex];\n // 确定锚点元素\n const anchor = newIndex + 1 < l2\n ? newListItems[newIndex + 1].instance.range[0]\n : currentInstance.range[1];\n if (newIndexToOldIndexMap[i] === 0) {\n // 创建新节点\n const newIdx = signal(newIndex);\n const [newInstance, newInstanceFragment] = instanceCreate(() => {\n const newChild = untrack(() => props.children(newItem, newIdx));\n return newChild;\n }, currentInstance);\n // 插入到 DOM\n anchor.parentNode?.insertBefore(newInstanceFragment, anchor);\n newListItems[newIndex] = {\n index: newIdx,\n item: newItem,\n instance: newInstance,\n };\n }\n else if (moved) {\n // 需要移动\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n // 移动节点\n const nodeToMove = newListItems[newIndex];\n const elementsToMove = instanceGetElements(nodeToMove.instance);\n // 将所有元素移动到锚点之前\n elementsToMove.forEach((el) => {\n anchor.parentNode?.insertBefore(el, anchor);\n });\n }\n else {\n // 不需要移动,跳过\n j--;\n }\n }\n }\n }\n oldList = newList;\n oldListItems = newListItems;\n currentInstance.children = newListItems.map((item, index) => {\n item.index.value = index;\n return item.instance;\n });\n });\n initialized = true;\n return initElements.splice(0, initElements.length);\n};\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nexport const createComponent = (tag, props) => {\n const runner = () => tag(computed(() => (props ? props() : {})));\n let [, fragment] = instanceCreate(runner);\n return fragment;\n};\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const If = (p) => {\n const props = p;\n const arr = computed(() => (!props.value.of ? [0] : [1]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const children = propsValues.children;\n if (children && typeof children === \"function\") {\n return children(!!bool);\n }\n if (bool) {\n return children;\n }\n else {\n return propsValues.else;\n }\n };\n },\n }));\n};\nIf.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\n// 实现\nfunction Some(p) {\n const props = p;\n const resSig = computed(() => props.value.of);\n const arr = computed(() => (resSig.value != null ? [1] : [0]));\n return createComponent(For, () => ({\n get of() {\n return arr.value;\n },\n get children() {\n return (bool) => {\n const propsValues = props.value;\n const { children } = propsValues;\n if (bool) {\n return children(computed(() => resSig.value));\n }\n else {\n return propsValues.none;\n }\n };\n },\n }));\n}\nSome.isLogic = true;\nexport { Some };\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nexport const Replace = (p) => {\n const props = p;\n let count = 0;\n const list = computed(() => {\n props.value.of;\n return [(count = (count + 1) % 2)];\n });\n return createComponent(For, () => ({\n of: list.value,\n get children() {\n return (item) => {\n const children = props.value.children;\n return typeof children === \"function\" ? children(item) : children;\n };\n },\n }));\n};\nReplace.isLogic = true;\n","import { computed } from \"../api/computed\";\nimport { createComponent } from \"../h/createComponent\";\nimport { For } from \"./For\";\nimport { generateId } from \"../h/utils\";\nexport const Switch = (p) => {\n const props = p;\n const children = props.value.children;\n const res = computed(() => children.filter((i) => i.valid)[0]);\n return createComponent(For, () => ({\n of: res.value ? [res.value] : [],\n trait: (item) => item.id,\n get children() {\n return (item) => item.children;\n },\n }));\n};\nSwitch.isLogic = true;\nexport const Case = (p) => {\n const props = p;\n const id = generateId();\n return {\n id,\n get valid() {\n return props.value.of;\n },\n get children() {\n return props.value.children;\n },\n };\n};\nCase.isLogic = true;\nexport const Default = (p) => {\n const props = p;\n const id = generateId();\n const data = {\n id,\n get valid() {\n return true;\n },\n get children() {\n return props.value.children;\n },\n };\n return data;\n};\nDefault.isLogic = true;\n","import { computed } from \"../api/computed\";\nexport const createLogicComponent = (tag, props) => {\n return tag(computed(() => (props ? props() : {})));\n};\n","import { instanceCreate } from \"./instance\";\nimport { computed } from \"../api/computed\";\nimport { untrack } from \"../api/untrack\";\nimport { BRAND } from \"../brand\";\nimport { buildClass, setHost } from \"../web-components\";\nimport { getChildren } from \"./utils\";\nexport const createWebComponent = (tag, props) => {\n const runner = () => {\n const customElement = tag.customElement;\n const Exist = customElements.get(customElement.tag);\n let el;\n if (Exist) {\n if (Exist.brand !== BRAND) {\n throw new Error(`Custom element [${customElement.tag}] is already registered`);\n }\n else {\n el = new Exist(true);\n }\n }\n else {\n const NewClass = buildClass(tag);\n customElements.define(customElement.tag, NewClass);\n el = new NewClass(true);\n }\n let childrenGetter = () => untrack(() => (props ? props().children : undefined));\n setHost(el);\n const ret = tag(computed(() => {\n const retProps = props ? props() : {};\n childrenGetter =\n Object.getOwnPropertyDescriptor(retProps, \"children\")?.get ??\n (() => undefined);\n delete retProps.children;\n return retProps;\n }));\n setHost(undefined);\n if (el.customElement.mode) {\n el.appendToShadowDom(getChildren([].concat(ret)));\n childrenGetter &&\n el.appendToLightDom(getChildren([].concat(childrenGetter())));\n }\n else {\n el.appendToBody(getChildren([].concat(ret)));\n }\n return el;\n };\n let [, fragment] = instanceCreate(runner);\n return fragment;\n};\n","import { createComponent } from \"./createComponent\";\nimport { createDom } from \"./createDom\";\nimport { createLogicComponent } from \"./createLogicComponent\";\nimport { createWebComponent } from \"./createWebComponent\";\nexport const createElement = (tag, props, children) => {\n return tag instanceof Node\n ? createDom(tag, props, children)\n : \"isLogic\" in tag\n ? createLogicComponent(tag, props)\n : \"customElement\" in tag\n ? createWebComponent(tag, props)\n : createComponent(tag, props);\n};\n","import { instanceCreate } from \"./instance\";\nexport const createRoot = (boot) => {\n let [instance, fragment] = instanceCreate(() => boot());\n return {\n element: fragment,\n instance,\n };\n};\n","import { createElement } from \"./index\";\nexport const h2 = (tag, props, children) => {\n return createElement(tag, props, children);\n};\nexport const jsx = h2;\nexport const jsxs = h2;\nexport const Fragment = (props) => props.value.children;\nexport const template = (template) => {\n let dom;\n return (isSvg) => {\n if (!dom) {\n const templateEl = isSvg\n ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n : document.createElement(\"template\");\n templateEl.innerHTML = template;\n dom = isSvg\n ? templateEl.firstChild\n : templateEl.content.firstChild;\n }\n return dom.cloneNode();\n };\n};\n"],"names":["effect","innerEffect"],"mappings":"AAAA;AACA,IAAI,eAAe,GAAG,IAAI;AAC1B;AACA,IAAI,UAAU,GAAG,CAAC;AAClB;AACA,IAAI,cAAc,GAAG,IAAI,GAAG,EAAE;AAC9B;AACA,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE;AAC5B;AACA;AACA;AACA,MAAM,MAAM,CAAC;AACb,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,MAAM;AACV,IAAI,QAAQ,GAAG,CAAC;AAChB,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE;AACrB,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB;AACA,QAAQ,IAAI,eAAe,EAAE;AAC7B,YAAY,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;AACvC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC5C,YAAY;AACZ,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC9B,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACzC,YAAY,IAAI,QAAQ,YAAY,QAAQ,EAAE;AAC9C,gBAAgB,QAAQ,CAAC,SAAS,EAAE;AACpC,YAAY;AACZ,iBAAiB,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;AAC1C;AACA,gBAAgB,IAAI,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE;AAClF,oBAAoB,IAAI,UAAU,GAAG,CAAC,EAAE;AACxC;AACA,wBAAwB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,QAAQ,CAAC,OAAO,EAAE;AAC1C,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ;AAC5B,IAAI;AACJ;AACA,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACvC,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpC;AACA,YAAY,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,SAAS,GAAG,IAAI,GAAG,EAAE;AACrC,gBAAgB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;AAC3C,YAAY;AACZ,YAAY,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnC;AACA,YAAY,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAChC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,QAAQ,CAAC;AACf,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,QAAQ,GAAG,CAAC;AAChB,IAAI,KAAK,GAAG,IAAI;AAChB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE;AACrB,IAAI,OAAO,GAAG,IAAI,GAAG,EAAE;AACvB,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS;AAC/B,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACvE,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,QAAQ;AACR;AACA,QAAQ,IAAI,eAAe,EAAE;AAC7B,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAClD,gBAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;AAC/C,gBAAgB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ;AAC5B,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AAC/D,QAAQ;AACR;AACA,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC7C,YAAY,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;AAC9E,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;AACA,QAAQ,MAAM,YAAY,GAAG,eAAe;AAC5C,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE;AAChC;AACA,QAAQ,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,QAAQ,eAAe,GAAG,IAAI;AAC9B,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC1C,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI;AAC7B,YAAY,MAAM,CAAC;AACnB,QAAQ;AACR,gBAAgB;AAChB;AACA,YAAY,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;AACxD,YAAY,IAAI,KAAK,KAAK,EAAE,EAAE;AAC9B,gBAAgB,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,YAAY;AACZ,YAAY,eAAe,GAAG,YAAY;AAC1C;AACA,YAAY,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAC5C,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC/C,oBAAoB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AACxD,oBAAoB,IAAI,SAAS,EAAE;AACnC,wBAAwB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9C,oBAAoB;AACpB,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK;AACvC,YAAY;AACZ,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACzC,YAAY,IAAI,QAAQ,YAAY,QAAQ,EAAE;AAC9C,gBAAgB,QAAQ,CAAC,SAAS,EAAE;AACpC,YAAY;AACZ,iBAAiB,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;AAC1C,gBAAgB,IAAI,UAAU,GAAG,CAAC,EAAE;AACpC;AACA,oBAAoB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;AAChD,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,QAAQ,CAAC,OAAO,EAAE;AACtC,gBAAgB;AAChB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACvC,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACpC,YAAY,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9C,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,SAAS,GAAG,IAAI,GAAG,EAAE;AACrC,gBAAgB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AAC7C,YAAY;AACZ,YAAY,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACzC,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAChD,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1B;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS;AAC/B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,IAAI;AACJ;AACA;AACA,MAAM,gBAAgB,GAAG,EAAE;AAC3B;AACA;AACA;AACA,MAAM,MAAM,CAAC;AACb,IAAI,QAAQ;AACZ,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE;AACrB,IAAI,YAAY,GAAG,IAAI,GAAG,EAAE;AAC5B,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,CAAC,CAAC;AACpE,YAAY;AACZ,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI;AACjC,QAAQ;AACR;AACA,QAAQ,MAAM,YAAY,GAAG,eAAe;AAC5C,QAAQ,eAAe,GAAG,IAAI;AAC9B,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1C,YAAY,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAC9C,gBAAgB,IAAI,CAAC,SAAS,GAAG,MAAM;AACvC,YAAY;AACZ,QAAQ;AACR,gBAAgB;AAChB,YAAY,eAAe,GAAG,YAAY;AAC1C,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACpC,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7C,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACjC;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,CAAC,CAAC;AACpE,YAAY;AACZ,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI;AACjC,QAAQ;AACR,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ;AAC7B,IAAI;AACJ,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAClC;AACA,YAAY,IAAI,SAAS,IAAI,MAAM,EAAE;AACrC,gBAAgB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AAC7D,YAAY;AACZ,YAAY,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9C,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,SAAS,GAAG,IAAI,GAAG,EAAE;AACrC,gBAAgB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AAC7C,YAAY;AACZ,YAAY,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;AACxD,YAAY,IAAI,SAAS,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE;AAC7D,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA;AACA,SAAS,MAAM,CAAC,YAAY,EAAE;AAC9B,IAAI,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC;AACnC;AACA;AACA,SAAS,QAAQ,CAAC,SAAS,EAAE;AAC7B,IAAI,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC;AAClC;AACA;AACA,SAASA,QAAM,CAAC,QAAQ,EAAE;AAC1B,IAAI,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC;AAC/C,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B,IAAI,OAAO,cAAc;AACzB;AACA;AACA,SAAS,OAAO,CAAC,EAAE,EAAE;AACrB,IAAI,MAAM,YAAY,GAAG,eAAe;AACxC,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,IAAI;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,IAAI;AACJ,YAAY;AACZ,QAAQ,eAAe,GAAG,YAAY;AACtC,IAAI;AACJ;AACA;AACA,SAAS,KAAK,CAAC,EAAE,EAAE;AACnB,IAAI,UAAU,EAAE;AAChB,IAAI,IAAI;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,IAAI;AACJ,YAAY;AACZ,QAAQ,UAAU,EAAE;AACpB;AACA,QAAQ,IAAI,UAAU,KAAK,CAAC,EAAE;AAC9B,YAAY,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AACtD,YAAY,cAAc,CAAC,KAAK,EAAE;AAClC;AACA,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACxC,gBAAgB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE;AACvC,oBAAoB,MAAM,CAAC,OAAO,EAAE;AACpC,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,IAAI;AACJ;;AC/UO,MAAM,OAAO,GAAG,CAAC,SAAS,KAAK;AACtC,IAAI,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;AACrC,CAAC;AACM,MAAM,YAAY,GAAG,CAAC,SAAS,KAAK;AAC3C,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAC3C,CAAC;AACM,MAAM,WAAW,GAAG,CAAC,YAAY,KAAK;AAC7C,IAAI,MAAM,GAAG,GAAG,EAAE;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,QAAQ,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC;AACrC,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AACzC,YAAY,IAAI,QAAQ;AACxB,YAAY,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM;AAChD,gBAAgB,MAAM,EAAE,GAAG,KAAK,EAAE;AAClC,gBAAgB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AACtE,oBAAoB,IAAI,QAAQ,EAAE;AAClC,wBAAwB,QAAQ,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE;AACpD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;AACnE,wBAAwB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAChC,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAgB,cAAc,CAAC,OAAO,EAAE;AACxC,YAAY;AACZ,QAAQ;AACR,aAAa,IAAI,KAAK,IAAI,SAAS,EAAE;AACrC,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,CAAC;AACD,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,KAAK,GAAG,CAAC;AACN,MAAM,UAAU,GAAG,MAAM;AAChC,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,gBAAgB,EAAE;AAC3C,QAAQ,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AACtC,QAAQ,KAAK,GAAG,CAAC;AACjB,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AACM,MAAM,mBAAmB,GAAG,CAAC,KAAK,KAAK;AAC9C,IAAI,IAAI,WAAW,GAAG,EAAE;AACxB,IAAI,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AAC7B,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;AAChC,QAAQ,WAAW,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;AAC3C,IAAI;AACJ,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE;AAC7B,CAAC;;ACnDD,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,KAAK;AAClD,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAQ,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC7D,QAAQ,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC1D,IAAI;AACJ,SAAS;AACT,QAAQ,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpD,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACrC,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,KAAK,GAAG,GAAG,KAAK,OAAO,IAAI,OAAO,QAAQ,KAAK;AACjE,kBAAkB,mBAAmB,CAAC,QAAQ;AAC9C,kBAAkB,QAAQ,KAAK;AAC/B,sBAAsB;AACtB,sBAAsB,QAAQ;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;AACzC,QAAQ;AACR,IAAI;AACJ,CAAC;AACD,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,KAAK;AACvC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAQ,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC7D,IAAI;AACJ,SAAS,IAAI,GAAG,KAAK,KAAK,EAAE;AAC5B,QAAQ,QAAQ,CAAC,OAAO,GAAG,IAAI;AAC/B,IAAI;AACJ,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACjC,IAAI;AACJ,CAAC;AACD,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,KAAK;AACrC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;AAC1D,IAAI;AACJ,SAAS,IAAI,GAAG,KAAK,KAAK,EAAE;AAC5B,QAAQ,MAAM,QAAQ,GAAG,kBAAkB,EAAE;AAC7C,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAClC,gBAAgB,QAAQ,CAAC,QAAQ,GAAG,EAAE;AACtC,YAAY,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;AACzC,gBAAgB,QAAQ,CAAC,OAAO,GAAG,IAAI;AACvC,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,QAAQ,QAAQ,CAAC,OAAO,GAAG,IAAI;AAC/B,IAAI;AACJ,SAAS;AACT,QAAQ,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpD,YAAY,MAAM,KAAK,GAAG,GAAG,KAAK,OAAO,IAAI,OAAO,QAAQ,KAAK;AACjE,kBAAkB,mBAAmB,CAAC,QAAQ;AAC9C,kBAAkB,QAAQ,KAAK;AAC/B,sBAAsB;AACtB,sBAAsB,QAAQ;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;AACzC,QAAQ;AACR,IAAI;AACJ,CAAC;AACW,MAAC,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK;AACnD,IAAI,MAAM,IAAI,GAAG,GAAG;AACpB,IAAI,IAAI,QAAQ,GAAG,EAAE;AACrB,IAAI,KAAK;AACT,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,QAAQ,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE;AAC3C,YAAY,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjD,YAAY,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjD,YAAY,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;AAC7D,YAAY,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACvC,gBAAgB,OAAO,CAAC,QAAQ,CAAC,GAAG;AACpC,sBAAsB,OAAO,CAAC,QAAQ,CAAC,GAAG;AAC1C,0BAA0B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;AAChE,8BAA8B;AAC9B,8BAA8B,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC5E,0BAA0B,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;AACxD,sBAAsB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnD,YAAY;AACZ,YAAY,QAAQ,GAAG,QAAQ;AAC/B,QAAQ,CAAC,CAAC;AACV;AACA,IAAI,IAAI,CAAC,QAAQ,IAAI;AACrB,IAAI,IAAI,QAAQ;AAChB;AACA,SAAS,IAAI,CAAC;AACd,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;AAClC,kBAAkB;AAClB,kBAAkB;AAClB,cAAc,IAAI,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;;ACzFA,MAAM,KAAK,GAAG,EAAE;AACJ,MAAC,kBAAkB,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE;AACnD;AACY,MAAC,0BAA0B,GAAG,MAAM;AAChD,IAAI,MAAM,QAAQ,GAAG,kBAAkB,EAAE;AACzC,IAAI,IAAI,CAAC,QAAQ;AACjB,QAAQ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AAC/D,IAAI,OAAO,QAAQ;AACnB;AACY,MAAC,YAAY,GAAG,CAAC,MAAM,KAAK;AACxC,IAAI,MAAM,EAAE,GAAG,UAAU,EAAE;AAC3B,IAAI,MAAM,cAAc,GAAG,MAAM,IAAI,kBAAkB,EAAE;AACzD,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,MAAM,EAAE,cAAc;AAC9B,QAAQ,EAAE;AACV,QAAQ,KAAK,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACzE,KAAK;AACL,IAAI,IAAI,cAAc,EAAE;AACxB,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE;AACrC,YAAY,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClD,QAAQ;AACR,aAAa;AACb,YAAY,cAAc,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAChD,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,QAAQ;AACnB;AACY,MAAC,MAAM,GAAG;AACV,MAAC,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK;AAC3D,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxB,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,MAAM,MAAM,EAAE,CAAC;AAC5F,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AACvC,QAAQ,QAAQ,CAAC,MAAM,GAAG,SAAS;AACnC,IAAI;AACJ,IAAI,KAAK,CAAC,GAAG,EAAE;AACf,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,qBAAqB,CAAC,MAAM;AACpC,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;AAC9C,YAAY,MAAM,CAAC,MAAM,GAAG,CAAC;AAC7B,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,QAAQ;AACnB;AACY,MAAC,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AAClD,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;AACzC,IAAI,OAAO,CAAC,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC9D;AACY,MAAC,mBAAmB,GAAG,CAAC,QAAQ,KAAK;AACjD,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK;AACvC,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;AACvB,IAAI,IAAI,KAAK,GAAG,KAAK;AACrB,IAAI,QAAQ,KAAK,GAAG,KAAK,CAAC,WAAW,GAAG;AACxC,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,QAAQ,IAAI,KAAK,KAAK,GAAG;AACzB,YAAY;AACZ,IAAI;AACJ,IAAI,OAAO,GAAG;AACd;AACY,MAAC,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,KAAK;AACrD;AACA;AACA,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE;AACpD,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACxC;AACA,YAAY,OAAO,CAAC,iBAAiB,GAAG,IAAI;AAC5C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3E;AACA,gBAAgB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5E,oBAAoB,KAAK,CAAC,IAAI,CAAC;AAC/B,wBAAwB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,wBAAwB,iBAAiB,EAAE,KAAK;AAChD,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,aAAa;AACb;AACA,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;AACrC;AACA,YAAY,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK;AAChD,gBAAgB,IAAI;AACpB,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,gBAAgB,OAAO,CAAC,EAAE;AAC1B,oBAAoB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC;AACtE,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AACxC,YAAY;AACZ;AACA,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClC,YAAY;AACZ,YAAY,KAAK,CAAC,GAAG,EAAE;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnC,QAAQ,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;AACvE,IAAI;AACJ;;AC7GY,MAAC,MAAM,GAAG,CAAC,QAAQ,KAAK;AACpC,IAAI,MAAM,cAAc,GAAGC,QAAW,CAAC,QAAQ,CAAC;AAChD,IAAI,MAAM,eAAe,GAAG,0BAA0B,EAAE;AACxD,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ;AACjC,QAAQ,eAAe,CAAC,QAAQ,GAAG,EAAE;AACrC,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;AACjE,IAAI,OAAO,cAAc;AACzB;;ACTO,SAAS,GAAG,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,IAAI,IAAI,IAAI;AAC7B,KAAK;AACL;;ACJO,MAAM,KAAK,GAAG,KAAK;;ACI1B,IAAI,IAAI;AACD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;AACjC,MAAM,OAAO,GAAG,MAAM,IAAI;AACrB,MAAC,oBAAoB,GAAG,CAAC,IAAI,KAAK;AAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC7B,QAAQ,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACjE,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;AACpD,QAAQ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;AAChE,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACrC,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3D;AAUO,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK;AACpC,IAAI,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;AAClC,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC;AAChD,IAAI,MAAM,UAAU,GAAG,aAAa,CAAC;AACrC,UAAU,OAAO,aAAa,CAAC,KAAK,KAAK;AACzC,cAAc,CAAC,MAAM;AACrB,gBAAgB,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE;AACjD,gBAAgB,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;AACtD,gBAAgB,OAAO,KAAK;AAC5B,YAAY,CAAC;AACb,cAAc,aAAa,CAAC;AAC5B,UAAU,IAAI;AACd,IAAI,OAAO,MAAM,eAAe,SAAS,WAAW,CAAC;AACrD,QAAQ,WAAW,kBAAkB,GAAG;AACxC,YAAY,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE;AAC3D,iBAAiB,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,CAAC,SAAS;AACnD,iBAAiB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;AAC9C,QAAQ;AACR,QAAQ,OAAO;AACf,QAAQ,MAAM,GAAG,EAAE;AACnB,QAAQ,KAAK,GAAG,KAAK;AACrB,QAAQ,aAAa,GAAG,aAAa;AACrC,QAAQ,IAAI;AACZ,QAAQ,WAAW,CAAC,IAAI,EAAE;AAC1B,YAAY,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI;AAC5B,YAAY,IAAI,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE;AACzD,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;AAC9E,gBAAgB,IAAI,UAAU;AAC9B,oBAAoB,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,CAAC,UAAU,CAAC;AAClE,YAAY;AACZ,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AAClG,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AACxC,sBAAsB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;AAC7E,sBAAsB,SAAS,CAAC;AAChC,gBAAgB,OAAO,GAAG;AAC1B,YAAY,CAAC,EAAE,EAAE,CAAC;AAClB,QAAQ;AACR,QAAQ,QAAQ,GAAG;AACnB,YAAY,OAAO,CAAC,IAAI,CAAC;AACzB,YAAY,MAAM,IAAI,GAAG,IAAI;AAC7B,YAAY,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM;AAC9D,gBAAgB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC3C,oBAAoB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;AAClD,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE;AACjD,4BAA4B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC7E,gCAAgC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE;AACtH,oCAAoC,MAAM;AAC1C,iCAAiC,CAAC,CAAC;AACnC,4BAA4B;AAC5B,iCAAiC;AACjC,gCAAgC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK;AAC9E,4BAA4B;AAC5B,wBAAwB,CAAC;AACzB,qBAAqB,CAAC;AACtB,gBAAgB,CAAC,CAAC,CAAC;AACnB,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACpC,YAAY,OAAO,CAAC,SAAS,CAAC;AAC9B,YAAY,QAAQ,CAAC,IAAI,GAAG,IAAI;AAChC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;AAC9B,gBAAgB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AAClD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,iBAAiB,CAAC,QAAQ,EAAE;AACpC,YAAY,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAChD,YAAY;AACZ,QAAQ;AACR,QAAQ,gBAAgB,CAAC,QAAQ,EAAE;AACnC,YAAY,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACxC,YAAY;AACZ,QAAQ;AACR,QAAQ,YAAY,CAAC,QAAQ,EAAE;AAC/B,YAAY,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACxC,YAAY;AACZ,QAAQ;AACR,QAAQ,aAAa,CAAC,KAAK,EAAE;AAC7B,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;AAC9B,gBAAgB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3D,YAAY;AACZ,QAAQ;AACR,QAAQ,gBAAgB,CAAC,KAAK,EAAE;AAChC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;AAC9B,gBAAgB,IAAI,CAAC,OAAO,CAAC,kBAAkB;AAC/C,oBAAoB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AAC9E,YAAY;AACZ,QAAQ;AACR,QAAQ,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC3D,YAAY,IAAI,IAAI,CAAC,IAAI;AACzB,gBAAgB;AAChB,YAAY,MAAM,KAAK,GAAG,eAAe,CAAC,kBAAkB;AAC5D,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrD,YAAY,IAAI,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpD,gBAAgB,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AACtD,YAAY;AACZ,QAAQ;AACR,QAAQ,uBAAuB,GAAG,EAAE;AACpC,QAAQ,oBAAoB,CAAC,QAAQ,EAAE;AACvC,YAAY,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvD,QAAQ;AACR,QAAQ,iBAAiB,GAAG;AAC5B,YAAY,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AAC9D,QAAQ;AACR,QAAQ,0BAA0B,GAAG,EAAE;AACvC,QAAQ,uBAAuB,CAAC,QAAQ,EAAE;AAC1C,YAAY,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1D,QAAQ;AACR,QAAQ,oBAAoB,GAAG;AAC/B,YAAY,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AACjE,QAAQ;AACR,KAAK;AACL,CAAC;AACD,MAAM,QAAQ,GAAG,CAAC,aAAa,KAAK;AACpC,IAAI,MAAM,GAAG,GAAG,EAAE;AAClB,IAAI,MAAM,GAAG,GAAG,EAAE;AAClB,IAAI,MAAM,GAAG,GAAG,EAAE;AAClB,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE;AAC5C,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;AACjE,SAAS,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,SAAS;AAC7C,SAAS,OAAO,CAAC,CAAC,CAAC,KAAK;AACxB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACpB,YAAY,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS;AACzC,YAAY,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACtD,YAAY,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AACtD,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5B,CAAC;;AC/JW,MAAC,EAAE,GAAG,MAAM;AACxB,IAAI,MAAM,IAAI,GAAG,OAAO,EAAE;AAC1B,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;AAC3E,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACnC,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE;AACjD,YAAY,MAAM;AAClB,SAAS,CAAC,CAAC;AACX,IAAI,CAAC;AACL,IAAI,MAAM,mBAAmB,GAAG,CAAC,QAAQ,KAAK;AAC9C,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AAC3C,IAAI,CAAC;AACL,IAAI,MAAM,sBAAsB,GAAG,CAAC,QAAQ,KAAK;AACjD,QAAQ,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AAC9C,IAAI,CAAC;AACL,IAAI,OAAO;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,mBAAmB;AAC3B,QAAQ,sBAAsB;AAC9B,KAAK;AACL;;ACvBY,MAAC,CAAC,GAAG,CAAC,GAAG,KAAK;;ACAnB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI;;ACEjD,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE;AACpC,MAAM,OAAO,GAAG,CAAC,OAAO,KAAK;AAC7B,IAAI,MAAM,QAAQ,GAAG,0BAA0B,EAAE;AACjD,IAAI,IAAI,KAAK,GAAG,QAAQ,EAAE,MAAM;AAChC,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACvC,YAAY,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5D,YAAY,IAAI,GAAG,KAAK,OAAO,EAAE;AACjC,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,KAAK,GAAG,KAAK,CAAC,MAAM;AAChC,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,OAAO,CAAC,YAAY;AAC/B,CAAC;AACW,MAAC,aAAa,GAAG,CAAC,YAAY,KAAK;AAC/C,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK;AAC3B,QAAQ,MAAM,KAAK,GAAG,CAAC;AACvB,QAAQ,MAAM,QAAQ,GAAG,YAAY,CAAC,0BAA0B,EAAE,CAAC;AACnE,QAAQ,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE;AACrC,YAAY,GAAG,EAAE,OAAO;AACxB,YAAY,KAAK,EAAE;AACnB,gBAAgB,IAAI,KAAK,GAAG;AAC5B,oBAAoB,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK;AAC5C,gBAAgB,CAAC;AACjB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AACpF,QAAQ,OAAO,QAAQ;AACvB,IAAI,CAAC;AACL,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI;AAC1B,IAAI,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AAC5B,QAAQ,MAAM,KAAK,GAAG,CAAC;AACvB,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;AACrC,QAAQ,IAAI,IAAI;AAChB,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7C,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY;AACzD,cAAc;AACd,cAAc;AACd,gBAAgB,IAAI,KAAK,GAAG;AAC5B,oBAAoB,OAAO,YAAY;AACvC,gBAAgB,CAAC;AACjB,aAAa,CAAC;AACd,IAAI,CAAC;AACL,IAAI,QAAQ,CAAC,OAAO,GAAG,IAAI;AAC3B,IAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAC/B,IAAI,OAAO,CAAC,YAAY,GAAG,YAAY;AACvC,IAAI,OAAO,OAAO;AAClB;AACY,MAAC,WAAW,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK;;ACpDjD;AACA;AACA;AACA;AACY,MAAC,EAAE,GAAG,MAAM;AACxB,IAAI,OAAO,0BAA0B,EAAE,EAAE,EAAE;AAC3C;;ACNY,MAAC,OAAO,GAAG,CAAC,QAAQ,KAAK;AACrC,IAAI,MAAM,QAAQ,GAAG,0BAA0B,EAAE;AACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1B,QAAQ,QAAQ,CAAC,MAAM,GAAG,EAAE;AAC5B,IAAI;AACJ,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClC;;ACNY,MAAC,SAAS,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,QAAQ;;ACChD,MAAC,KAAK,GAAG,CAAC,GAAG,KAAK;AAC9B,IAAI,IAAI,QAAQ,GAAG,kBAAkB,EAAE;AACvC,IAAI,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE;AACrC,IAAI,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;AACjC,IAAI,OAAO,QAAQ,EAAE;AACrB,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC3B,YAAY,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAC9C,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACrD,YAAY,CAAC,CAAC;AACd,YAAY;AACZ,QAAQ;AACR,QAAQ,QAAQ,GAAG,QAAQ,EAAE,MAAM;AACnC,IAAI;AACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/C,QAAQ,SAAS,CAAC,MAAM;AACxB,YAAY,QAAQ,CAAC,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AAChG,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB;;ACnBA,SAAS,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE;AACtD,IAAI,UAAU,EAAE,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;AAC7D;AACA,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK;AAChC,IAAI,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AACD,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;AACjB,MAAC,GAAG,GAAG,CAAC,CAAC,KAAK;AAC1B,IAAI,IAAI,WAAW,GAAG,KAAK;AAC3B,IAAI,MAAM,eAAe,GAAG,0BAA0B,EAAE;AACxD,IAAI,IAAI,OAAO,GAAG,EAAE;AACpB,IAAI,IAAI,YAAY,GAAG,EAAE;AACzB,IAAI,IAAI,YAAY,GAAG,EAAE;AACzB,IAAI,MAAM,CAAC,MAAM;AACjB,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;AAC7B,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,YAAY;AACjD,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE;AAChC;AACA,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;AACjC,YAAY,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE;AACtC,YAAY,MAAM,UAAU,GAAG,EAAE;AACjC,YAAY,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;AACxC,gBAAgB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9C,gBAAgB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC/C,oBAAoB,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;AAChD,gBAAgB;AAChB,gBAAgB,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD;AACA,gBAAgB,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3D,oBAAoB,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChE,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,gBAAgB,OAAO,CAAC,IAAI,CAAC,qDAAqD;AAClF,oBAAoB,sEAAsE;AAC1F,oBAAoB,mBAAmB,EAAE,UAAU,CAAC;AACpD,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACtD;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM;AACjC,QAAQ,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AACpC,QAAQ,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACxB;AACA;AACA;AACA,QAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AACnC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;AACvD,gBAAgB,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AACjD,gBAAgB,CAAC,EAAE;AACnB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA,QAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AACnC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACzD,gBAAgB,YAAY,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC;AACnD,gBAAgB,EAAE,EAAE;AACpB,gBAAgB,EAAE,EAAE;AACpB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;AACpB,YAAY,IAAI,CAAC,IAAI,EAAE,EAAE;AACzB,gBAAgB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AACrC,oBAAoB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;AAC9C,oBAAoB,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,cAAc,CAAC,MAAM;AACpF,wBAAwB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC5F,wBAAwB,OAAO,QAAQ;AACvC,oBAAoB,CAAC,EAAE,eAAe,CAAC;AACvC,oBAAoB,IAAI,CAAC,WAAW,EAAE;AACtC,wBAAwB,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC9D,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,GAAG,CAAC,EAAE;AACnC,4BAA4B,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ;AACtE,4BAA4B,MAAM,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACrF,4BAA4B,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,EAAE,MAAM,CAAC;AACvF,wBAAwB;AACxB,6BAA6B;AAC7B,4BAA4B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;AAClF,4BAA4B,UAAU,EAAE,YAAY,CAAC,mBAAmB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnG,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,YAAY,CAAC,CAAC,CAAC,GAAG;AACtC,wBAAwB,KAAK,EAAE,QAAQ;AACvC,wBAAwB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACxC,wBAAwB,QAAQ,EAAE,WAAW;AAC7C,qBAAqB;AACrB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR;AACA,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE;AACzB,YAAY,OAAO,CAAC,IAAI,EAAE,EAAE;AAC5B;AACA,gBAAgB,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AAC9E,oBAAoB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;AAClD,gBAAgB,CAAC,CAAC;AAClB,gBAAgB,eAAe,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1E,gBAAgB,CAAC,EAAE;AACnB,YAAY;AACZ,QAAQ;AACR;AACA,aAAa;AACb;AACA,YAAY,MAAM,EAAE,GAAG,CAAC,CAAC;AACzB,YAAY,MAAM,EAAE,GAAG,CAAC,CAAC;AACzB;AACA,YAAY,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE;AAC9C,YAAY,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAC3C,gBAAgB,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1D,YAAY;AACZ;AACA,YAAY,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3C;AACA,YAAY,MAAM,qBAAqB,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC;AAChE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;AAChD,gBAAgB,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C;AACA,YAAY,IAAI,OAAO,GAAG,CAAC;AAC3B,YAAY,IAAI,KAAK,GAAG,KAAK;AAC7B,YAAY,IAAI,gBAAgB,GAAG,CAAC;AACpC,YAAY,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAC3C,gBAAgB,IAAI,OAAO,IAAI,WAAW,EAAE;AAC5C;AACA,oBAAoB,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AAClF,wBAAwB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;AACtD,oBAAoB,CAAC,CAAC;AACtB,oBAAoB,eAAe,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9E,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;AAC1C,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7C,gBAAgB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7D,gBAAgB,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC5C;AACA,oBAAoB,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AAClF,wBAAwB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;AACtD,oBAAoB,CAAC,CAAC;AACtB,oBAAoB,eAAe,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9E,gBAAgB;AAChB,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,qBAAqB,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AAChE;AACA,oBAAoB,IAAI,QAAQ,IAAI,gBAAgB,EAAE;AACtD,wBAAwB,gBAAgB,GAAG,QAAQ;AACnD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,KAAK,GAAG,IAAI;AACpC,oBAAoB;AACpB;AACA,oBAAoB,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AAC5D,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,MAAM,0BAA0B,GAAG;AAC/C,kBAAkB,WAAW,CAAC,qBAAqB;AACnD,kBAAkB,EAAE;AACpB;AACA,YAAY,IAAI,CAAC,GAAG,0BAA0B,CAAC,MAAM,GAAG,CAAC;AACzD,YAAY,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACvD,gBAAgB,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC;AACvC,gBAAgB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;AACjD;AACA,gBAAgB,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,GAAG;AAC9C,sBAAsB,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjE,sBAAsB,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,gBAAgB,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACpD;AACA,oBAAoB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;AACnD,oBAAoB,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,cAAc,CAAC,MAAM;AACpF,wBAAwB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvF,wBAAwB,OAAO,QAAQ;AACvC,oBAAoB,CAAC,EAAE,eAAe,CAAC;AACvC;AACA,oBAAoB,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC;AAChF,oBAAoB,YAAY,CAAC,QAAQ,CAAC,GAAG;AAC7C,wBAAwB,KAAK,EAAE,MAAM;AACrC,wBAAwB,IAAI,EAAE,OAAO;AACrC,wBAAwB,QAAQ,EAAE,WAAW;AAC7C,qBAAqB;AACrB,gBAAgB;AAChB,qBAAqB,IAAI,KAAK,EAAE;AAChC;AACA,oBAAoB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC,CAAC,EAAE;AACtE;AACA,wBAAwB,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC;AACjE,wBAAwB,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC;AACvF;AACA,wBAAwB,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AACvD,4BAA4B,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC;AACvE,wBAAwB,CAAC,CAAC;AAC1B,oBAAoB;AACpB,yBAAyB;AACzB;AACA,wBAAwB,CAAC,EAAE;AAC3B,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,GAAG,OAAO;AACzB,QAAQ,YAAY,GAAG,YAAY;AACnC,QAAQ,eAAe,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK;AACrE,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;AACpC,YAAY,OAAO,IAAI,CAAC,QAAQ;AAChC,QAAQ,CAAC,CAAC;AACV,IAAI,CAAC,CAAC;AACN,IAAI,WAAW,GAAG,IAAI;AACtB,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC;AACtD;AACA;AACA,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE;AACzB,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;AAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC9B,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3B,QAAQ,IAAI,IAAI,KAAK,CAAC,EAAE;AACxB,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AAC/B,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,gBAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,gBAAgB;AAChB,YAAY;AACZ,YAAY,CAAC,GAAG,CAAC;AACjB,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACjC,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE;AAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AAChC,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AAC3C,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,CAAC,GAAG,CAAC;AACzB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACvC,gBAAgB,IAAI,CAAC,GAAG,CAAC,EAAE;AAC3B,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,gBAAgB;AAChB,gBAAgB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7B,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM;AACrB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACpB,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB;;ACjRY,MAAC,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AAC/C,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpE,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;AAC7C,IAAI,OAAO,QAAQ;AACnB;;ACHY,MAAC,EAAE,GAAG,CAAC,CAAC,KAAK;AACzB,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO;AACvC,QAAQ,IAAI,EAAE,GAAG;AACjB,YAAY,OAAO,GAAG,CAAC,KAAK;AAC5B,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,CAAC,IAAI,KAAK;AAC7B,gBAAgB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK;AAC/C,gBAAgB,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ;AACrD,gBAAgB,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAChE,oBAAoB,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,gBAAgB;AAChB,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,OAAO,QAAQ;AACnC,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,OAAO,WAAW,CAAC,IAAI;AAC3C,gBAAgB;AAChB,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,EAAE,CAAC,OAAO,GAAG,IAAI;;ACxBjB;AACA,SAAS,IAAI,CAAC,CAAC,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AACjD,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO;AACvC,QAAQ,IAAI,EAAE,GAAG;AACjB,YAAY,OAAO,GAAG,CAAC,KAAK;AAC5B,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,CAAC,IAAI,KAAK;AAC7B,gBAAgB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK;AAC/C,gBAAgB,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW;AAChD,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,OAAO,WAAW,CAAC,IAAI;AAC3C,gBAAgB;AAChB,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,IAAI,CAAC,OAAO,GAAG,IAAI;;ACvBP,MAAC,OAAO,GAAG,CAAC,CAAC,KAAK;AAC9B,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,IAAI,KAAK,GAAG,CAAC;AACjB,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;AAChC,QAAQ,KAAK,CAAC,KAAK,CAAC,EAAE;AACtB,QAAQ,OAAO,EAAE,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE;AAC1C,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO;AACvC,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK;AACtB,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,CAAC,IAAI,KAAK;AAC7B,gBAAgB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ;AACrD,gBAAgB,OAAO,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ;AACjF,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,OAAO,CAAC,OAAO,GAAG,IAAI;;AChBV,MAAC,MAAM,GAAG,CAAC,CAAC,KAAK;AAC7B,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ;AACzC,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO;AACvC,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AACxC,QAAQ,KAAK,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;AAChC,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ;AAC1C,QAAQ,CAAC;AACT,KAAK,CAAC,CAAC;AACP;AACA,MAAM,CAAC,OAAO,GAAG,IAAI;AACT,MAAC,IAAI,GAAG,CAAC,CAAC,KAAK;AAC3B,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,EAAE,GAAG,UAAU,EAAE;AAC3B,IAAI,OAAO;AACX,QAAQ,EAAE;AACV,QAAQ,IAAI,KAAK,GAAG;AACpB,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE;AACjC,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ;AACvC,QAAQ,CAAC;AACT,KAAK;AACL;AACA,IAAI,CAAC,OAAO,GAAG,IAAI;AACP,MAAC,OAAO,GAAG,CAAC,CAAC,KAAK;AAC9B,IAAI,MAAM,KAAK,GAAG,CAAC;AACnB,IAAI,MAAM,EAAE,GAAG,UAAU,EAAE;AAC3B,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,EAAE;AACV,QAAQ,IAAI,KAAK,GAAG;AACpB,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC;AACT,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ;AACvC,QAAQ,CAAC;AACT,KAAK;AACL,IAAI,OAAO,IAAI;AACf;AACA,OAAO,CAAC,OAAO,GAAG,IAAI;;AC5CV,MAAC,oBAAoB,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACpD,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtD;;ACGO,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AAClD,IAAI,MAAM,MAAM,GAAG,MAAM;AACzB,QAAQ,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa;AAC/C,QAAQ,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC;AAC3D,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;AACvC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC9F,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC;AACpC,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC;AAC5C,YAAY,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC9D,YAAY,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC;AACnC,QAAQ;AACR,QAAQ,IAAI,cAAc,GAAG,MAAM,OAAO,CAAC,OAAO,KAAK,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AACxF,QAAQ,OAAO,CAAC,EAAE,CAAC;AACnB,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM;AACvC,YAAY,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE;AACjD,YAAY,cAAc;AAC1B,gBAAgB,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,GAAG;AAC1E,qBAAqB,MAAM,SAAS,CAAC;AACrC,YAAY,OAAO,QAAQ,CAAC,QAAQ;AACpC,YAAY,OAAO,QAAQ;AAC3B,QAAQ,CAAC,CAAC,CAAC;AACX,QAAQ,OAAO,CAAC,SAAS,CAAC;AAC1B,QAAQ,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;AACnC,YAAY,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,YAAY,cAAc;AAC1B,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AAC7E,QAAQ;AACR,aAAa;AACb,YAAY,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,QAAQ;AACR,QAAQ,OAAO,EAAE;AACjB,IAAI,CAAC;AACL,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;AAC7C,IAAI,OAAO,QAAQ;AACnB,CAAC;;AC3CW,MAAC,aAAa,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK;AACvD,IAAI,OAAO,GAAG,YAAY;AAC1B,UAAU,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ;AACxC,UAAU,SAAS,IAAI;AACvB,cAAc,oBAAoB,CAAC,GAAG,EAAE,KAAK;AAC7C,cAAc,eAAe,IAAI;AACjC,kBAAkB,kBAAkB,CAAC,GAAG,EAAE,KAAK;AAC/C,kBAAkB,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;AAC7C;;ACXY,MAAC,UAAU,GAAG,CAAC,IAAI,KAAK;AACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM,IAAI,EAAE,CAAC;AAC3D,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,QAAQ;AACzB,QAAQ,QAAQ;AAChB,KAAK;AACL;;ACNY,MAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK;AAC5C,IAAI,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;AAC9C;AACY,MAAC,GAAG,GAAG;AACP,MAAC,IAAI,GAAG;AACR,MAAC,QAAQ,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;AACnC,MAAC,QAAQ,GAAG,CAAC,QAAQ,KAAK;AACtC,IAAI,IAAI,GAAG;AACX,IAAI,OAAO,CAAC,KAAK,KAAK;AACtB,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY,MAAM,UAAU,GAAG;AAC/B,kBAAkB,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK;AAC9E,kBAAkB,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AACpD,YAAY,UAAU,CAAC,SAAS,GAAG,QAAQ;AAC3C,YAAY,GAAG,GAAG;AAClB,kBAAkB,UAAU,CAAC;AAC7B,kBAAkB,UAAU,CAAC,OAAO,CAAC,UAAU;AAC/C,QAAQ;AACR,QAAQ,OAAO,GAAG,CAAC,SAAS,EAAE;AAC9B,IAAI,CAAC;AACL;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "j20",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "homepage": "https://www.github.com/anuoua/j20",
5
5
  "type": "module",
6
6
  "author": "anuoua",