@marketrix.ai/widget 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +600 -0
  2. package/dist/components/BrowserTools.d.ts +11 -0
  3. package/dist/components/BrowserTools.d.ts.map +1 -0
  4. package/dist/components/MarketrixWidget.d.ts +8 -0
  5. package/dist/components/MarketrixWidget.d.ts.map +1 -0
  6. package/dist/components/chat/ChatWindow.d.ts +26 -0
  7. package/dist/components/chat/ChatWindow.d.ts.map +1 -0
  8. package/dist/components/chat/MessageContent.d.ts +12 -0
  9. package/dist/components/chat/MessageContent.d.ts.map +1 -0
  10. package/dist/components/chat/MessageItem.d.ts +21 -0
  11. package/dist/components/chat/MessageItem.d.ts.map +1 -0
  12. package/dist/components/chat/MessageList.d.ts +16 -0
  13. package/dist/components/chat/MessageList.d.ts.map +1 -0
  14. package/dist/components/chat/ProgressLine.d.ts +13 -0
  15. package/dist/components/chat/ProgressLine.d.ts.map +1 -0
  16. package/dist/components/chat/SuggestedActions.d.ts +20 -0
  17. package/dist/components/chat/SuggestedActions.d.ts.map +1 -0
  18. package/dist/components/chat/TaskStatusIcon.d.ts +8 -0
  19. package/dist/components/chat/TaskStatusIcon.d.ts.map +1 -0
  20. package/dist/components/chat/ThinkingIndicator.d.ts +10 -0
  21. package/dist/components/chat/ThinkingIndicator.d.ts.map +1 -0
  22. package/dist/components/chat/VideoStreamDisplay.d.ts +8 -0
  23. package/dist/components/chat/VideoStreamDisplay.d.ts.map +1 -0
  24. package/dist/components/chat/WelcomeMessage.d.ts +30 -0
  25. package/dist/components/chat/WelcomeMessage.d.ts.map +1 -0
  26. package/dist/components/debug/DebugPanel.d.ts +17 -0
  27. package/dist/components/debug/DebugPanel.d.ts.map +1 -0
  28. package/dist/components/dev/DomTestPanel.d.ts +8 -0
  29. package/dist/components/dev/DomTestPanel.d.ts.map +1 -0
  30. package/dist/components/input/MessageInput.d.ts +15 -0
  31. package/dist/components/input/MessageInput.d.ts.map +1 -0
  32. package/dist/components/input/ModeSelector.d.ts +13 -0
  33. package/dist/components/input/ModeSelector.d.ts.map +1 -0
  34. package/dist/components/layout/WidgetButton.d.ts +12 -0
  35. package/dist/components/layout/WidgetButton.d.ts.map +1 -0
  36. package/dist/components/ui/DiagnosticModal.d.ts +16 -0
  37. package/dist/components/ui/DiagnosticModal.d.ts.map +1 -0
  38. package/dist/components/ui/ErrorDisplay.d.ts +9 -0
  39. package/dist/components/ui/ErrorDisplay.d.ts.map +1 -0
  40. package/dist/components/ui/ScreenAccessModal.d.ts +10 -0
  41. package/dist/components/ui/ScreenAccessModal.d.ts.map +1 -0
  42. package/dist/components/ui/WidgetSettingsLoader.d.ts +13 -0
  43. package/dist/components/ui/WidgetSettingsLoader.d.ts.map +1 -0
  44. package/dist/constants/config.d.ts +26 -0
  45. package/dist/constants/config.d.ts.map +1 -0
  46. package/dist/context/WidgetContext.d.ts +34 -0
  47. package/dist/context/WidgetContext.d.ts.map +1 -0
  48. package/dist/debug.d.ts +23 -0
  49. package/dist/debug.d.ts.map +1 -0
  50. package/dist/debug.js +22790 -0
  51. package/dist/debug.js.map +1 -0
  52. package/dist/hooks/usePageLifecycle.d.ts +12 -0
  53. package/dist/hooks/usePageLifecycle.d.ts.map +1 -0
  54. package/dist/hooks/useTaskState.d.ts +6 -0
  55. package/dist/hooks/useTaskState.d.ts.map +1 -0
  56. package/dist/hooks/useWidget.d.ts +67 -0
  57. package/dist/hooks/useWidget.d.ts.map +1 -0
  58. package/dist/index.d.ts +29 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.html +1464 -0
  61. package/dist/index.mjs +14660 -0
  62. package/dist/index.mjs.map +1 -0
  63. package/dist/sdk/index.d.ts +6330 -0
  64. package/dist/sdk/index.d.ts.map +1 -0
  65. package/dist/sdk/routes.d.ts +17972 -0
  66. package/dist/sdk/routes.d.ts.map +1 -0
  67. package/dist/sdk/schema.d.ts +9345 -0
  68. package/dist/sdk/schema.d.ts.map +1 -0
  69. package/dist/services/ApiService.d.ts +53 -0
  70. package/dist/services/ApiService.d.ts.map +1 -0
  71. package/dist/services/ChatService.d.ts +46 -0
  72. package/dist/services/ChatService.d.ts.map +1 -0
  73. package/dist/services/ConfigManager.d.ts +21 -0
  74. package/dist/services/ConfigManager.d.ts.map +1 -0
  75. package/dist/services/DevTestService.d.ts +172 -0
  76. package/dist/services/DevTestService.d.ts.map +1 -0
  77. package/dist/services/DomService.d.ts +145 -0
  78. package/dist/services/DomService.d.ts.map +1 -0
  79. package/dist/services/IntegrationService.d.ts +18 -0
  80. package/dist/services/IntegrationService.d.ts.map +1 -0
  81. package/dist/services/ScreenShareService.d.ts +25 -0
  82. package/dist/services/ScreenShareService.d.ts.map +1 -0
  83. package/dist/services/SessionManager.d.ts +68 -0
  84. package/dist/services/SessionManager.d.ts.map +1 -0
  85. package/dist/services/ShowModeService.d.ts +33 -0
  86. package/dist/services/ShowModeService.d.ts.map +1 -0
  87. package/dist/services/ToolService.d.ts +89 -0
  88. package/dist/services/ToolService.d.ts.map +1 -0
  89. package/dist/services/ValidationService.d.ts +34 -0
  90. package/dist/services/ValidationService.d.ts.map +1 -0
  91. package/dist/services/WebSocketClient.d.ts +53 -0
  92. package/dist/services/WebSocketClient.d.ts.map +1 -0
  93. package/dist/types/browserTools.d.ts +98 -0
  94. package/dist/types/browserTools.d.ts.map +1 -0
  95. package/dist/types/index.d.ts +128 -0
  96. package/dist/types/index.d.ts.map +1 -0
  97. package/dist/types/toolMessages.d.ts +78 -0
  98. package/dist/types/toolMessages.d.ts.map +1 -0
  99. package/dist/utils/apiUtils.d.ts +55 -0
  100. package/dist/utils/apiUtils.d.ts.map +1 -0
  101. package/dist/utils/bootstrap.d.ts +74 -0
  102. package/dist/utils/bootstrap.d.ts.map +1 -0
  103. package/dist/utils/chat.d.ts +97 -0
  104. package/dist/utils/chat.d.ts.map +1 -0
  105. package/dist/utils/cleanupUtils.d.ts +24 -0
  106. package/dist/utils/cleanupUtils.d.ts.map +1 -0
  107. package/dist/utils/common.d.ts +55 -0
  108. package/dist/utils/common.d.ts.map +1 -0
  109. package/dist/utils/config.d.ts +58 -0
  110. package/dist/utils/config.d.ts.map +1 -0
  111. package/dist/utils/devTools.d.ts +71 -0
  112. package/dist/utils/devTools.d.ts.map +1 -0
  113. package/dist/utils/dom.d.ts +66 -0
  114. package/dist/utils/dom.d.ts.map +1 -0
  115. package/dist/utils/format.d.ts +36 -0
  116. package/dist/utils/format.d.ts.map +1 -0
  117. package/dist/utils/persistence.d.ts +15 -0
  118. package/dist/utils/persistence.d.ts.map +1 -0
  119. package/dist/utils/stateUtils.d.ts +20 -0
  120. package/dist/utils/stateUtils.d.ts.map +1 -0
  121. package/dist/utils/validation.d.ts +130 -0
  122. package/dist/utils/validation.d.ts.map +1 -0
  123. package/dist/utils/widgetPositioning.d.ts +3 -0
  124. package/dist/utils/widgetPositioning.d.ts.map +1 -0
  125. package/package.json +87 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/jsx-runtime.js","../node_modules/react/cjs/react.production.js","../node_modules/react/index.js","../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/scheduler/index.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/index.js","../node_modules/react-dom/cjs/react-dom-client.production.js","../node_modules/react-dom/client.js","../src/utils/validation.ts","../src/utils/dom.ts","../src/services/DomService.ts","../src/services/ScreenShareService.ts","../src/services/ShowModeService.ts","../src/services/ToolService.ts","../src/services/DevTestService.ts","../src/utils/chat.ts","../src/services/ChatService.ts","../src/constants/config.ts","../node_modules/zod/v3/helpers/util.js","../node_modules/zod/v3/ZodError.js","../node_modules/zod/v3/locales/en.js","../node_modules/zod/v3/errors.js","../node_modules/zod/v3/helpers/parseUtil.js","../node_modules/zod/v3/helpers/errorUtil.js","../node_modules/zod/v3/types.js","../node_modules/@ts-rest/core/index.esm.mjs","../src/sdk/schema.ts","../src/sdk/routes.ts","../src/sdk/index.ts","../src/utils/apiUtils.ts","../src/utils/common.ts","../src/services/SessionManager.ts","../src/services/WebSocketClient.ts","../src/utils/devTools.ts","../src/components/debug/DebugPanel.tsx","../src/debug.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.1\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.1\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.1\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.1\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.1\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.1\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","/**\n * Type Guard Utilities\n *\n * Generic type guard functions for data validation and type checking.\n * These are shared utilities used across the codebase.\n */\n\n// ============================================================================\n// Generic Type Guards\n// ============================================================================\n\n/**\n * Check if an object has a specific property\n */\nexport function hasProperty<K extends string>(obj: unknown, key: K): obj is Record<K, unknown> {\n return typeof obj === 'object' && obj !== null && key in obj;\n}\n\n/**\n * Check if a value is a non-null object\n */\nexport function isNonNullObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * Check if a value is an array\n */\nexport function isArray<T>(value: unknown): value is T[] {\n return Array.isArray(value);\n}\n\n/**\n * Check if a value is a string\n */\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\n/**\n * Check if a value is a number\n */\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number' && !Number.isNaN(value);\n}\n\n/**\n * Check if a value is a boolean\n */\nexport function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean';\n}\n\n/**\n * Type guard for WidgetPosition\n */\nexport function isWidgetPosition(value: unknown): value is 'bottom_left' | 'bottom_right' {\n return typeof value === 'string' && (value === 'bottom_left' || value === 'bottom_right');\n}\n\n/**\n * Type guard for WidgetMode\n */\nexport function isWidgetMode(value: unknown): value is 'ai' | 'live' | 'hybrid' {\n return typeof value === 'string' && (value === 'ai' || value === 'live' || value === 'hybrid');\n}\n\n/**\n * Check if a value is a plain object (not null, not array)\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n// ============================================================================\n// API Response Type Guards\n// ============================================================================\n\nimport type {\n AgentData,\n ChatResponseData,\n ConnectionData,\n IntegrationData,\n TourData,\n TourStepData,\n WidgetSettingsData,\n} from '../sdk';\n\n/**\n * Type guard for ConnectionData\n */\nexport function isConnectionData(data: unknown): data is ConnectionData {\n if (!isNonNullObject(data)) {\n return false;\n }\n\n return (\n hasProperty(data, 'tenant_id') &&\n typeof data.tenant_id === 'number' &&\n hasProperty(data, 'name') &&\n typeof data.name === 'string' &&\n hasProperty(data, 'type') &&\n (data.type === 'app' || data.type === 'website')\n );\n}\n\n/**\n * Type guard for IntegrationData\n */\nexport function isIntegrationData(data: unknown): data is IntegrationData {\n if (!isNonNullObject(data)) {\n return false;\n }\n\n return (\n hasProperty(data, 'connection_id') &&\n typeof data.connection_id === 'number' &&\n hasProperty(data, 'agent_id') &&\n typeof data.agent_id === 'number' &&\n hasProperty(data, 'type') &&\n (data.type === 'widget' || data.type === 'slack') &&\n hasProperty(data, 'status') &&\n typeof data.status === 'string' &&\n hasProperty(data, 'marketrix_id') &&\n typeof data.marketrix_id === 'string' &&\n hasProperty(data, 'marketrix_key') &&\n typeof data.marketrix_key === 'string'\n );\n}\n\n/**\n * Type guard for AgentData\n */\nexport function isAgentData(data: unknown): data is AgentData {\n if (!isNonNullObject(data)) {\n return false;\n }\n\n return (\n hasProperty(data, 'tenant_id') &&\n typeof data.tenant_id === 'number' &&\n hasProperty(data, 'user_id') &&\n typeof data.user_id === 'number' &&\n hasProperty(data, 'connection_id') &&\n typeof data.connection_id === 'number' &&\n hasProperty(data, 'agent_name') &&\n typeof data.agent_name === 'string' &&\n hasProperty(data, 'agent_type') &&\n (data.agent_type === 'human' || data.agent_type === 'ai') &&\n hasProperty(data, 'agent_voice') &&\n (data.agent_voice === 'male' || data.agent_voice === 'female') &&\n hasProperty(data, 'agent_description') &&\n typeof data.agent_description === 'string' &&\n hasProperty(data, 'status') &&\n (data.status === 'active' || data.status === 'learning' || data.status === 'error')\n );\n}\n\n/**\n * Type guard for WidgetSettingsData\n */\nexport function isWidgetSettingsData(data: unknown): data is WidgetSettingsData {\n if (!isNonNullObject(data)) {\n return false;\n }\n\n return (\n hasProperty(data, 'widget_enabled') &&\n typeof data.widget_enabled === 'boolean' &&\n hasProperty(data, 'widget_appearance') &&\n typeof data.widget_appearance === 'string' &&\n hasProperty(data, 'widget_position') &&\n typeof data.widget_position === 'string'\n );\n}\n\n/**\n * Type guard for TourStepData\n */\nexport function isTourStepData(data: unknown): data is TourStepData {\n if (!isNonNullObject(data)) {\n return false;\n }\n\n return (\n hasProperty(data, 'step_number') &&\n typeof data.step_number === 'number' &&\n hasProperty(data, 'action') &&\n typeof data.action === 'string' &&\n hasProperty(data, 'element') &&\n typeof data.element === 'string' &&\n hasProperty(data, 'text') &&\n typeof data.text === 'string'\n );\n}\n\n/**\n * Type guard for array of IntegrationData\n */\nexport function isIntegrationDataArray(data: unknown): data is IntegrationData[] {\n return Array.isArray(data) && data.every((item) => isIntegrationData(item));\n}\n\n/**\n * Type guard for array of TourStepData\n */\nexport function isTourStepDataArray(data: unknown): data is TourStepData[] {\n return Array.isArray(data) && data.every((item) => isTourStepData(item));\n}\n\n/**\n * Type guard for ChatResponseData\n */\nexport function isChatResponseData(data: unknown): data is ChatResponseData {\n if (!isNonNullObject(data)) {\n return false;\n }\n\n return (\n hasProperty(data, 'text') &&\n (typeof data.text === 'string' || data.text === null || data.text === undefined)\n );\n}\n\n/**\n * Type guard for TourData\n */\nexport function isTourData(data: unknown): data is TourData {\n if (!isNonNullObject(data)) {\n return false;\n }\n\n return (\n hasProperty(data, 'connection_id') &&\n typeof data.connection_id === 'number' &&\n hasProperty(data, 'question') &&\n typeof data.question === 'string' &&\n hasProperty(data, 'answer') &&\n Array.isArray(data.answer)\n );\n}\n\n/**\n * Type guard for array of TourData\n */\nexport function isTourDataArray(data: unknown): data is TourData[] {\n return Array.isArray(data) && data.every((item) => isTourData(item));\n}\n\n/**\n * Type guard for tour answer with steps property\n */\nexport function isTourAnswerWithSteps(answer: unknown): answer is { steps: unknown } {\n return isObject(answer) && 'steps' in answer;\n}\n\n/**\n * Type guard for error response body\n */\nexport interface ErrorResponseBody {\n error?: string;\n message?: string;\n}\n\nexport function isErrorResponseBody(body: unknown): body is ErrorResponseBody {\n if (!isNonNullObject(body)) {\n return false;\n }\n\n return (\n (!hasProperty(body, 'error') || typeof body.error === 'string') &&\n (!hasProperty(body, 'message') || typeof body.message === 'string')\n );\n}\n\n// ============================================================================\n// DOM Element Type Guards\n// ============================================================================\n\n/**\n * Type guard for HTMLElement\n */\nexport function isHTMLElement(element: Element | null): element is HTMLElement {\n return element !== null && element instanceof HTMLElement;\n}\n\n/**\n * Type guard for HTMLInputElement\n */\nexport function isHTMLInputElement(\n element: Element | EventTarget | null\n): element is HTMLInputElement {\n return element !== null && element instanceof HTMLInputElement;\n}\n\n/**\n * Type guard for HTMLTextAreaElement\n */\nexport function isHTMLTextAreaElement(\n element: Element | EventTarget | null\n): element is HTMLTextAreaElement {\n return element !== null && element instanceof HTMLTextAreaElement;\n}\n\n/**\n * Type guard for HTMLButtonElement\n */\nexport function isHTMLButtonElement(element: Element | null): element is HTMLButtonElement {\n return element !== null && element instanceof HTMLButtonElement;\n}\n\n/**\n * Type guard for HTMLSelectElement\n */\nexport function isHTMLSelectElement(element: Element | null): element is HTMLSelectElement {\n return element !== null && element instanceof HTMLSelectElement;\n}\n\n/**\n * Type guard for HTMLScriptElement\n */\nexport function isHTMLScriptElement(element: Element | null): element is HTMLScriptElement {\n return element !== null && element instanceof HTMLScriptElement;\n}\n\n/**\n * Type guard for EventTarget as HTMLElement\n */\nexport function isHTMLElementEventTarget(target: EventTarget | null): target is HTMLElement {\n return target !== null && target instanceof HTMLElement;\n}\n\n/**\n * Check if code is running in a browser environment\n */\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined';\n}\n","/**\n * DOM Manipulation Utilities\n *\n * Centralized utilities for common DOM operations to reduce code duplication\n * and ensure consistent error handling.\n */\n\nimport { isHTMLElement } from './validation';\n\ninterface TourElement extends HTMLElement {\n _tourClickHandler?: EventListener;\n}\n\n/**\n * Safely remove an element by ID\n */\nexport function removeElementById(id: string): void {\n try {\n const element = document.getElementById(id);\n if (element) {\n element.remove();\n }\n } catch (error) {\n console.warn(`[DOM Utils] Failed to remove element with id \"${id}\":`, error);\n }\n}\n\n/**\n * Safely remove an event listener from an element\n */\nfunction removeEventListenerSafely(\n element: EventTarget,\n event: string,\n handler: EventListener,\n options?: boolean | AddEventListenerOptions\n): void {\n try {\n element.removeEventListener(event, handler, options);\n } catch (error) {\n console.warn(`[DOM Utils] Failed to remove event listener \"${event}\" from element:`, error);\n }\n}\n\n/**\n * Remove tour click handlers from an element\n */\nexport function removeTourClickHandler(element: HTMLElement): void {\n if (isHTMLElement(element)) {\n const tourElement = element as TourElement;\n if (tourElement._tourClickHandler) {\n removeEventListenerSafely(tourElement, 'click', tourElement._tourClickHandler, true);\n delete tourElement._tourClickHandler;\n }\n }\n}\n\n/**\n * Remove all step highlight classes and their associated handlers\n */\nexport function removeStepHighlights(): void {\n try {\n const allHighlightedElements = document.querySelectorAll('.step-highlight');\n allHighlightedElements.forEach((element) => {\n if (isHTMLElement(element)) {\n element.classList.remove('step-highlight');\n removeTourClickHandler(element);\n }\n });\n } catch (error) {\n console.warn('[DOM Utils] Failed to remove step highlights:', error);\n }\n}\n/**\n * Utility for finding DOM elements by index.\n * Used by browser tools to locate interactive elements on the page.\n */\n\nimport { domService } from '../services/DomService';\n\n/**\n * Get all interactive elements on the page, ordered by DOM position.\n * Interactive elements include: buttons, inputs, links, select elements, etc.\n */\nexport function getAllInteractiveElements(): HTMLElement[] {\n const selectors = [\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'a[href]',\n '[role=\"button\"]',\n '[role=\"link\"]',\n '[role=\"textbox\"]',\n '[contenteditable=\"true\"]',\n '[onclick]',\n '[tabindex]:not([tabindex=\"-1\"])',\n ];\n\n const elements: HTMLElement[] = [];\n const seen = new Set<HTMLElement>();\n\n // Collect all interactive elements\n for (const selector of selectors) {\n const matches = document.querySelectorAll<HTMLElement>(selector);\n for (const el of matches) {\n // Skip hidden elements and elements that are not visible\n if (!seen.has(el) && isElementVisible(el) && isElementInteractive(el)) {\n elements.push(el);\n seen.add(el);\n }\n }\n }\n\n // Sort by DOM position (top to bottom, left to right)\n return elements.sort((a, b) => {\n const rectA = a.getBoundingClientRect();\n const rectB = b.getBoundingClientRect();\n\n // First compare by vertical position\n if (Math.abs(rectA.top - rectB.top) > 10) {\n return rectA.top - rectB.top;\n }\n // Then by horizontal position\n return rectA.left - rectB.left;\n });\n}\n\n/**\n * Get an interactive element by its index.\n * First tries to use data-id from get_html indexing, then falls back to current behavior.\n * @param index The zero-based index of the element\n * @returns The element at the given index, or null if not found\n */\nexport function getElementByIndex(index: number): HTMLElement | null {\n // Step 1: Check if indexing is active (get_html was called)\n if (domService.isIndexActive()) {\n // Step 2: Try to get element by data-id from indexing service\n const element = domService.getElementByDataId(index);\n if (element && element instanceof HTMLElement) {\n return element;\n }\n // If not found or invalid, fall through to fallback\n }\n\n // Step 3: Fallback to current behavior (for backward compatibility)\n const elements = getAllInteractiveElements();\n if (index < 0 || index >= elements.length) {\n return null;\n }\n return elements[index];\n}\n\n/**\n * Check if an element is visible on the page.\n */\nfunction isElementVisible(element: HTMLElement): boolean {\n const style = window.getComputedStyle(element);\n if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') {\n return false;\n }\n\n const rect = element.getBoundingClientRect();\n return rect.width > 0 && rect.height > 0;\n}\n\n/**\n * Check if an element is actually interactive (not disabled, etc.).\n */\nfunction isElementInteractive(element: HTMLElement): boolean {\n // Skip disabled elements\n if ((element as HTMLInputElement | HTMLButtonElement | HTMLSelectElement).disabled) {\n return false;\n }\n\n // Skip elements that are not in the viewport (optional - you might want to include these)\n // const rect = element.getBoundingClientRect();\n // if (rect.bottom < 0 || rect.top > window.innerHeight) {\n // return false;\n // }\n\n return true;\n}\n\n/**\n * Get all file input elements on the page, ordered by DOM position.\n */\nexport function getAllFileInputs(): HTMLInputElement[] {\n const inputs = Array.from(document.querySelectorAll<HTMLInputElement>('input[type=\"file\"]'));\n return inputs.filter((input) => isElementVisible(input) && !input.disabled);\n}\n\n/**\n * Get a file input element by its index.\n */\nexport function getFileInputByIndex(index: number): HTMLInputElement | null {\n const inputs = getAllFileInputs();\n if (index < 0 || index >= inputs.length) {\n return null;\n }\n return inputs[index];\n}\n\n/**\n * Get all select/dropdown elements on the page, ordered by DOM position.\n */\nexport function getAllSelectElements(): HTMLSelectElement[] {\n const selects = Array.from(document.querySelectorAll<HTMLSelectElement>('select'));\n return selects.filter((select) => isElementVisible(select) && !select.disabled);\n}\n\n/**\n * Get a select element by its index.\n */\nexport function getSelectElementByIndex(index: number): HTMLSelectElement | null {\n const selects = getAllSelectElements();\n if (index < 0 || index >= selects.length) {\n return null;\n }\n return selects[index];\n}\nexport function isInteractable(el: Element | null): boolean {\n if (!el || !(el instanceof Element)) return false;\n\n try {\n // ---- 0. Interactive element type check ----\n // First verify this is actually an interactive element type before doing expensive checks\n const tagName = el.tagName.toLowerCase();\n const isButton = tagName === 'button';\n const isInteractiveType =\n // Standard interactive elements\n isButton ||\n tagName === 'input' ||\n tagName === 'textarea' ||\n tagName === 'select' ||\n // Anchor tags with href (including href=\"#\")\n (tagName === 'a' && el.hasAttribute('href')) ||\n // Elements with interactive ARIA roles\n el.getAttribute('role') === 'button' ||\n el.getAttribute('role') === 'link' ||\n el.getAttribute('role') === 'textbox' ||\n el.getAttribute('role') === 'checkbox' ||\n el.getAttribute('role') === 'radio' ||\n el.getAttribute('role') === 'switch' ||\n el.getAttribute('role') === 'tab' ||\n el.getAttribute('role') === 'menuitem' ||\n // Contenteditable elements\n el.getAttribute('contenteditable') === 'true' ||\n // Elements with onclick handlers (may be interactive)\n el.hasAttribute('onclick') ||\n // Elements with positive tabindex (focusable)\n (el.hasAttribute('tabindex') && parseInt(el.getAttribute('tabindex') || '-1', 10) >= 0);\n\n if (!isInteractiveType) {\n return false;\n }\n\n // Helper function for diagnostic logging (only for buttons to avoid noise)\n const logButtonFailure = (checkName: string, reason?: string): void => {\n if (isButton) {\n const buttonInfo = {\n tag: el.tagName,\n id: el.id || '(no id)',\n class: el.className || '(no class)',\n check: checkName,\n reason: reason || '',\n };\n console.debug('[isInteractable] Button failed check:', buttonInfo);\n }\n };\n\n // ---- 1. Disabled or inert state ----\n // Covers <button disabled>, <input disabled>, aria-disabled, and inert subtree.\n if ((el as HTMLButtonElement).disabled === true) {\n logButtonFailure('disabled', 'button is disabled');\n return false;\n }\n if (el.getAttribute('aria-disabled') === 'true') {\n logButtonFailure('aria-disabled', 'aria-disabled is true');\n return false;\n }\n\n // Check inert on ancestors, including shadow hosts\n try {\n let p: Element | null | ShadowRoot = el;\n while (p) {\n if (p instanceof HTMLElement && p.inert) {\n logButtonFailure('inert', 'ancestor is inert');\n return false;\n }\n const root: Node | null = p instanceof Element ? p.getRootNode() : null;\n p =\n p instanceof Element\n ? p.parentElement || (root instanceof ShadowRoot ? root.host : null)\n : null;\n }\n } catch (error) {\n // If inert check fails, continue (don't block on this)\n console.warn('[isInteractable] Error checking inert:', error);\n }\n\n // ---- SPECIAL CASE: Buttons with onclick handlers ----\n // Skip ALL visibility/occlusion checks for buttons with onclick (they're definitely interactive)\n // Only check disabled/inert state (already done above)\n const hasOnclick = el.hasAttribute('onclick');\n if (isButton && hasOnclick) {\n return true; // Early return - skip all other checks\n }\n\n let style: CSSStyleDeclaration;\n try {\n style = window.getComputedStyle(el);\n } catch (error) {\n // If computed style fails, assume element is not interactable\n logButtonFailure('computed-style', 'failed to get computed style');\n console.warn('[isInteractable] Error getting computed style:', error);\n return false;\n }\n\n // ---- 2. Visibility and pointer checks ----\n // Only check display: none (element removed from layout) and pointer-events: none (explicitly non-interactable)\n // We don't check opacity or visibility because elements with opacity: 0 or visibility: hidden\n // can still be made visible through user interaction (expanding sections, opening modals, etc.)\n if (style.display === 'none') {\n logButtonFailure('display', 'display is none');\n return false;\n }\n if (style.pointerEvents === 'none') {\n logButtonFailure('pointer-events', 'pointer-events is none');\n return false;\n }\n\n // ---- 3. Layout presence ----\n let rect: DOMRect;\n try {\n rect = el.getBoundingClientRect();\n } catch (error) {\n logButtonFailure('bounding-rect', 'failed to get bounding rect');\n console.warn('[isInteractable] Error getting bounding rect:', error);\n return false;\n }\n\n if (rect.width <= 0 || rect.height <= 0) {\n logButtonFailure('dimensions', `width=${rect.width}, height=${rect.height}`);\n return false;\n }\n\n // Off-screen check removed: elements outside viewport are still interactable\n // if they can be scrolled to, so we index them regardless of viewport position\n\n // ---- 4. Overflow clipping by ancestors ----\n // For buttons: only fail if completely outside parent bounds (more lenient)\n // For other elements: use original stricter check\n try {\n let node: Element | null = el;\n while (node && node !== document.body) {\n const rootNode = node.getRootNode();\n const parent: Element | null =\n node.parentElement ||\n (rootNode instanceof ShadowRoot ? (rootNode as ShadowRoot).host : null);\n\n if (!parent) break;\n\n let parentStyle: CSSStyleDeclaration;\n let pr: DOMRect;\n try {\n parentStyle = window.getComputedStyle(parent);\n pr = parent.getBoundingClientRect();\n } catch {\n // If we can't get parent style/rect, continue (don't block)\n node = parent;\n continue;\n }\n\n if (parentStyle.overflow === 'hidden' || parentStyle.overflow === 'clip') {\n // For buttons: only fail if completely outside (all edges outside)\n // For other elements: fail if any edge is outside (stricter)\n const isCompletelyOutside =\n rect.right < pr.left ||\n rect.left > pr.right ||\n rect.bottom < pr.top ||\n rect.top > pr.bottom;\n\n if (isButton) {\n // Button: only fail if completely outside parent bounds\n if (isCompletelyOutside) {\n logButtonFailure('overflow-clipping', 'completely outside parent bounds');\n return false;\n }\n } else {\n // Other elements: use original stricter check\n if (isCompletelyOutside) {\n return false; // clipped out\n }\n }\n }\n\n node = parent;\n }\n } catch (error) {\n // If overflow check fails, continue (don't block on this)\n console.warn('[isInteractable] Error checking overflow:', error);\n }\n\n // ---- 5. Occlusion check removed ----\n // We don't check occlusion because the goal is to find ALL interactable elements,\n // even if they're occluded or off-screen. If they can be scrolled to and interacted with,\n // they should be indexed.\n\n // ---- 6. Shadow DOM host visibility ----\n try {\n let root: Node | null = el.getRootNode();\n while (root instanceof ShadowRoot) {\n const host: Element = root.host;\n let hostRect: DOMRect;\n try {\n hostRect = host.getBoundingClientRect();\n } catch {\n // If we can't get host rect, continue (don't block)\n break;\n }\n if (hostRect.width <= 0 || hostRect.height <= 0) return false;\n root = host.getRootNode();\n }\n } catch (error) {\n // If shadow DOM check fails, continue (don't block on this)\n console.warn('[isInteractable] Error checking shadow DOM:', error);\n }\n\n return true;\n } catch (error) {\n // If any critical error occurs, log and return false\n console.error('[isInteractable] Unexpected error:', error);\n return false;\n }\n}\n/**\n * Attribute Parsing Utilities\n *\n * Pure utility functions for parsing script tag data attributes.\n * These functions validate and normalize attribute values.\n */\n\n/**\n * Parse position attribute from script tag\n */\nexport function parsePositionAttribute(value: string | null): 'bottom_right' | 'bottom_left' {\n if (value === 'bottom_left' || value === 'bottom_right') {\n return value;\n }\n return 'bottom_right';\n}\n\n/**\n * Parse theme attribute from script tag\n */\nexport function parseThemeAttribute(value: string | null): 'light' | 'dark' {\n if (value === 'light' || value === 'dark') {\n return value;\n }\n return 'light';\n}\n\n/**\n * Parse enabled modes attribute from script tag\n */\nexport function parseEnabledModesAttribute(value: string | null): ('show' | 'tell' | 'do')[] {\n if (!value) {\n return ['show', 'tell', 'do'];\n }\n\n const modes = value.split(',').map((m) => m.trim());\n const validModes: ('show' | 'tell' | 'do')[] = [];\n\n for (const mode of modes) {\n if (mode === 'show' || mode === 'tell' || mode === 'do') {\n validModes.push(mode);\n }\n }\n\n return validModes.length > 0 ? validModes : ['show', 'tell', 'do'];\n}\n","import { isInteractable } from '../utils/dom';\n\n/**\n * Fingerprint of an indexed element for validation\n */\nexport interface ElementFingerprint {\n tagName: string;\n id: string | null;\n textContent: string | null; // Truncated to 100 chars\n type: string | null; // For inputs\n role: string | null; // ARIA role\n ariaLabel: string | null;\n name: string | null;\n href: string | null; // For anchors\n selector: string; // CSS selector\n indexVersion: number;\n}\n\n/**\n * Result of validating an element at a given index\n */\nexport interface ValidationResult {\n isValid: boolean;\n mismatchReason?: 'element_removed' | 'element_changed' | 'index_shifted';\n recoveredElement?: HTMLElement;\n recoveredIndex?: number;\n requiresReindex?: boolean;\n}\n\nexport class DOMService {\n private static instance: DOMService;\n private elementMap: Map<number, Element> = new Map();\n private elementToSequence: WeakMap<Element, number> = new WeakMap();\n private selectorMap: Map<number, string> = new Map();\n private fingerprintMap: Map<number, ElementFingerprint> = new Map();\n private isIndexed: boolean = false;\n private indexingInProgress: boolean = false;\n private indexVersion: number = 0;\n // Removed STORAGE_KEY as we now persist state via ChatService\n\n private constructor() {\n // No longer restoring state internally\n }\n\n static getInstance(): DOMService {\n if (!DOMService.instance) {\n DOMService.instance = new DOMService();\n }\n return DOMService.instance;\n }\n\n /**\n * Generate a unique CSS selector for an element\n */\n private generateSelector(element: Element): string {\n // Use ID if available and unique-ish (simple check)\n if (element.id) {\n // Escape CSS special characters in ID if needed, but simple #id is usually fine\n // Check if it's unique in document\n if (document.querySelectorAll(`#${CSS.escape(element.id)}`).length === 1) {\n return `#${CSS.escape(element.id)}`;\n }\n }\n\n // Fallback to path\n const path: string[] = [];\n let current: Element | null = element;\n\n while (current && current !== document.body && current.parentElement) {\n let selector = current.tagName.toLowerCase();\n\n if (current.id) {\n selector += `#${CSS.escape(current.id)}`;\n path.unshift(selector);\n break; // ID is usually enough anchor\n } else {\n const parent = current.parentElement;\n const siblings = Array.from(parent.children).filter((c) => c.tagName === current!.tagName);\n if (siblings.length > 1) {\n const index = siblings.indexOf(current) + 1;\n selector += `:nth-of-type(${index})`;\n }\n }\n\n path.unshift(selector);\n current = current.parentElement;\n }\n\n return path.join(' > ');\n }\n\n /**\n * Generate a fingerprint for an element to enable validation later\n */\n private generateFingerprint(element: Element, selector: string): ElementFingerprint {\n const truncate = (str: string | null, maxLen: number = 100): string | null => {\n if (!str) return null;\n const normalized = str.trim().replace(/\\s+/g, ' ');\n return normalized.length > maxLen ? normalized.substring(0, maxLen) : normalized;\n };\n\n return {\n tagName: element.tagName,\n id: element.id || null,\n textContent: truncate(element.textContent),\n type: element.getAttribute('type'),\n role: element.getAttribute('role'),\n ariaLabel: element.getAttribute('aria-label'),\n name: element.getAttribute('name'),\n href: element.getAttribute('href'),\n selector,\n indexVersion: this.indexVersion,\n };\n }\n\n /**\n * Calculate similarity between two strings using word-based Jaccard similarity\n * Returns a value between 0 and 1\n */\n private calculateSimilarity(str1: string | null, str2: string | null): number {\n if (str1 === str2) return 1;\n if (!str1 || !str2) return 0;\n\n // Simple word-based Jaccard similarity\n const words1 = new Set(\n str1\n .toLowerCase()\n .split(/\\s+/)\n .filter((w) => w.length > 0)\n );\n const words2 = new Set(\n str2\n .toLowerCase()\n .split(/\\s+/)\n .filter((w) => w.length > 0)\n );\n\n if (words1.size === 0 && words2.size === 0) return 1;\n if (words1.size === 0 || words2.size === 0) return 0;\n\n const intersection = new Set([...words1].filter((w) => words2.has(w)));\n const union = new Set([...words1, ...words2]);\n\n return intersection.size / union.size;\n }\n\n /**\n * Check if an element matches a stored fingerprint\n * Uses various heuristics to determine identity\n */\n private matchesFingerprint(element: Element, fingerprint: ElementFingerprint): boolean {\n // Primary check: tagName must match\n if (element.tagName !== fingerprint.tagName) {\n return false;\n }\n\n // Strong identifier: if ID exists and matches, high confidence\n if (fingerprint.id && element.id === fingerprint.id) {\n return true;\n }\n\n // For inputs, type must match\n if (fingerprint.type && element.getAttribute('type') !== fingerprint.type) {\n return false;\n }\n\n // Check ARIA attributes if present in fingerprint\n if (fingerprint.ariaLabel && element.getAttribute('aria-label') !== fingerprint.ariaLabel) {\n return false;\n }\n\n if (fingerprint.role && element.getAttribute('role') !== fingerprint.role) {\n return false;\n }\n\n // For anchors, href is important\n if (fingerprint.href && fingerprint.tagName === 'A') {\n const currentHref = element.getAttribute('href');\n if (currentHref !== fingerprint.href) {\n return false;\n }\n }\n\n // For form elements, name attribute is important\n if (fingerprint.name && element.getAttribute('name') !== fingerprint.name) {\n return false;\n }\n\n // Check text content similarity (allow some tolerance for dynamic content)\n const currentText = element.textContent?.trim().replace(/\\s+/g, ' ').substring(0, 100) || null;\n if (fingerprint.textContent && currentText) {\n const similarity = this.calculateSimilarity(fingerprint.textContent, currentText);\n if (similarity < 0.7) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Search the entire DOM for an element matching the fingerprint\n * This is a last-resort recovery method\n */\n private searchDomForMatch(fingerprint: ElementFingerprint): HTMLElement | null {\n // Build a query based on tag and key attributes\n let query = fingerprint.tagName.toLowerCase();\n\n if (fingerprint.id) {\n query = `#${CSS.escape(fingerprint.id)}`;\n } else if (fingerprint.type) {\n query = `${fingerprint.tagName.toLowerCase()}[type=\"${fingerprint.type}\"]`;\n }\n\n try {\n const candidates = document.querySelectorAll(query);\n\n // Limit search to prevent performance issues\n const maxCandidates = Math.min(candidates.length, 1000);\n\n for (let i = 0; i < maxCandidates; i++) {\n const elem = candidates[i];\n if (elem instanceof HTMLElement && this.matchesFingerprint(elem, fingerprint)) {\n return elem;\n }\n }\n } catch (e) {\n console.warn('[DOMService] DOM search failed:', e);\n }\n\n return null;\n }\n\n /**\n * Attempt to recover an element that doesn't match at its expected index\n */\n private attemptRecovery(index: number, fingerprint: ElementFingerprint): ValidationResult {\n console.log(`[DOMService] Attempting recovery for index ${index}`);\n\n // Get the original element reference if it exists\n const originalElement = this.elementMap.get(index);\n const originalElementStillExists = originalElement && document.contains(originalElement);\n\n // Strategy 1: Try CSS selector\n const selector = fingerprint.selector;\n if (selector) {\n try {\n const element = document.querySelector(selector);\n if (element && element instanceof HTMLElement) {\n // If selector returns the SAME element reference (just content changed),\n // it's safe to use even if text doesn't match\n if (originalElement === element && originalElementStillExists) {\n console.log(\n `[DOMService] Same element via selector, content may have changed: ${selector}`\n );\n return {\n isValid: false,\n mismatchReason: 'element_changed',\n recoveredElement: element,\n recoveredIndex: index,\n requiresReindex: false,\n };\n }\n\n if (this.matchesFingerprint(element, fingerprint)) {\n console.log(`[DOMService] Recovered element via selector: ${selector}`);\n\n // Check if element is at a different index now\n const currentIndex = this.elementToSequence.get(element);\n if (currentIndex !== undefined && currentIndex !== index) {\n return {\n isValid: false,\n mismatchReason: 'index_shifted',\n recoveredElement: element,\n recoveredIndex: currentIndex,\n requiresReindex: false,\n };\n }\n\n // Element found via selector, update mapping and return\n this.elementMap.set(index, element);\n return {\n isValid: true,\n recoveredElement: element,\n };\n }\n\n // IMPORTANT: Only do relaxed recovery if the ORIGINAL element still exists\n // This handles content changes. If original was REMOVED, don't accept a different element.\n if (originalElementStillExists && element.tagName === fingerprint.tagName) {\n console.log(`[DOMService] Relaxed recovery via selector (tag matches): ${selector}`);\n return {\n isValid: false,\n mismatchReason: 'element_changed',\n recoveredElement: element,\n recoveredIndex: index,\n requiresReindex: false,\n };\n }\n }\n } catch (e) {\n console.warn('[DOMService] Selector recovery failed:', e);\n }\n }\n\n // Strategy 2: Search all currently indexed elements for a match\n // Only consider elements that are still in the document\n for (const [idx, elem] of this.elementMap.entries()) {\n if (\n elem instanceof HTMLElement &&\n document.contains(elem) &&\n this.matchesFingerprint(elem, fingerprint)\n ) {\n console.log(`[DOMService] Found matching element at different index: ${idx}`);\n return {\n isValid: false,\n mismatchReason: 'index_shifted',\n recoveredElement: elem,\n recoveredIndex: idx,\n requiresReindex: false,\n };\n }\n }\n\n // Strategy 3: Search entire DOM for matching element (expensive, last resort)\n const matchingElement = this.searchDomForMatch(fingerprint);\n if (matchingElement) {\n console.log('[DOMService] Found matching element in DOM, requires re-index');\n return {\n isValid: false,\n mismatchReason: 'index_shifted',\n recoveredElement: matchingElement,\n requiresReindex: true, // Element exists but needs re-indexing\n };\n }\n\n // Element truly removed or changed beyond recognition\n console.log(`[DOMService] Element at index ${index} could not be recovered`);\n return {\n isValid: false,\n mismatchReason: 'element_removed',\n requiresReindex: true,\n };\n }\n\n /**\n * Get the current DOM position of an element by re-traversing interactable elements\n * Uses the same TreeWalker approach as indexInteractableElements for consistency\n * Returns -1 if element is not found in current interactable elements\n */\n private getCurrentDomPosition(targetElement: HTMLElement): number {\n const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: Node) => {\n if (node instanceof HTMLElement) {\n // Same logic as indexInteractableElements to handle fixed-position modals\n if (node.offsetParent === null && node.tagName !== 'BODY') {\n const style = window.getComputedStyle(node);\n const isFixedOrSticky = style.position === 'fixed' || style.position === 'sticky';\n const isDisplayNone = style.display === 'none';\n\n if (isDisplayNone) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if (!isFixedOrSticky) {\n let parent = node.parentElement;\n let insideFixedParent = false;\n while (parent && parent !== document.body) {\n const parentStyle = window.getComputedStyle(parent);\n if (parentStyle.position === 'fixed' || parentStyle.position === 'sticky') {\n insideFixedParent = true;\n break;\n }\n parent = parent.parentElement;\n }\n if (!insideFixedParent) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n }\n }\n return NodeFilter.FILTER_ACCEPT;\n },\n });\n\n let node: Node | null = walker.nextNode();\n let position = 0;\n\n while (node) {\n if (node instanceof Element && isInteractable(node)) {\n if (node === targetElement) {\n return position;\n }\n position++;\n }\n node = walker.nextNode();\n }\n\n return -1; // Element not found in current interactable elements\n }\n\n /**\n * Validate that the element at a given index still matches its fingerprint\n */\n private validateElementAtIndex(index: number): ValidationResult {\n const fingerprint = this.fingerprintMap.get(index);\n if (!fingerprint) {\n // No fingerprint stored - cannot validate, proceed with caution\n console.warn(`[DOMService] No fingerprint for index ${index}, skipping validation`);\n return { isValid: true };\n }\n\n // Check if index version is stale (informational)\n if (fingerprint.indexVersion !== this.indexVersion) {\n console.warn(\n `[DOMService] Fingerprint version (${fingerprint.indexVersion}) differs from current index version (${this.indexVersion})`\n );\n }\n\n // Step 1: Check element in live map\n const currentElement = this.elementMap.get(index);\n if (currentElement && currentElement instanceof HTMLElement) {\n // CRITICAL: Check if element is still in the document (not removed)\n if (!document.contains(currentElement)) {\n console.log(`[DOMService] Element at index ${index} was removed from DOM`);\n return this.attemptRecovery(index, fingerprint);\n }\n\n // CRITICAL: Check if element is still at the expected DOM position\n // Elements may have shifted due to insertions/removals\n const currentDomPosition = this.getCurrentDomPosition(currentElement);\n if (currentDomPosition !== -1 && currentDomPosition !== index) {\n console.log(\n `[DOMService] Element shifted from index ${index} to DOM position ${currentDomPosition}`\n );\n return {\n isValid: false,\n mismatchReason: 'index_shifted',\n recoveredElement: currentElement,\n recoveredIndex: currentDomPosition,\n requiresReindex: false,\n };\n }\n\n if (this.matchesFingerprint(currentElement, fingerprint)) {\n return { isValid: true };\n }\n // Element at index doesn't match - it changed\n console.log(`[DOMService] Element at index ${index} doesn't match fingerprint`);\n }\n\n // Step 2: Element not in map or doesn't match - attempt recovery\n return this.attemptRecovery(index, fingerprint);\n }\n\n /**\n * Export state for external persistence (selectors and fingerprints)\n */\n exportState(): {\n selectors: Array<[number, string]>;\n fingerprints: Array<[number, ElementFingerprint]>;\n } {\n return {\n selectors: Array.from(this.selectorMap.entries()),\n fingerprints: Array.from(this.fingerprintMap.entries()),\n };\n }\n\n /**\n * Import state from external persistence (selectors and fingerprints)\n */\n importState(state: {\n selectors?: Array<[number, string]>;\n fingerprints?: Array<[number, ElementFingerprint]>;\n }): void {\n if (!state) return;\n\n try {\n if (state.selectors) {\n this.selectorMap = new Map(state.selectors);\n }\n if (state.fingerprints) {\n this.fingerprintMap = new Map(state.fingerprints);\n }\n\n if (this.selectorMap.size > 0 || this.fingerprintMap.size > 0) {\n this.isIndexed = true;\n console.log(\n `[DOMService] Restored ${this.selectorMap.size} selectors and ${this.fingerprintMap.size} fingerprints`\n );\n }\n } catch (e) {\n console.warn('[DOMService] Failed to import state:', e);\n }\n }\n\n /**\n * Index all interactable elements in the live DOM.\n * Always clears previous index first.\n */\n indexInteractableElements(): Array<[number, Element]> {\n if (this.indexingInProgress) {\n console.warn('[DOMService] Indexing already in progress, skipping concurrent call');\n return [];\n }\n\n try {\n this.indexingInProgress = true;\n this.clearIndex(); // Clear existing index\n\n // Walk the DOM with your visibility logic preserved\n const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: Node) => {\n if (node instanceof HTMLElement) {\n if (node.offsetParent === null && node.tagName !== 'BODY') {\n const style = window.getComputedStyle(node);\n const isFixedOrSticky = style.position === 'fixed' || style.position === 'sticky';\n const isDisplayNone = style.display === 'none';\n\n if (isDisplayNone) return NodeFilter.FILTER_REJECT;\n\n if (!isFixedOrSticky) {\n let parent = node.parentElement;\n let insideFixedParent = false;\n\n while (parent && parent !== document.body) {\n const parentStyle = window.getComputedStyle(parent);\n if (parentStyle.position === 'fixed' || parentStyle.position === 'sticky') {\n insideFixedParent = true;\n break;\n }\n parent = parent.parentElement;\n }\n\n if (!insideFixedParent) return NodeFilter.FILTER_REJECT;\n }\n }\n }\n return NodeFilter.FILTER_ACCEPT;\n },\n });\n\n let node: Node | null = walker.nextNode();\n let sequenceNumber = 0;\n const indexedElements: Array<[number, Element]> = [];\n\n while (node) {\n if (node instanceof HTMLElement) {\n // ---- 🔥 ENHANCED INTERACTABLE DETECTION LOGIC HERE ----\n const semantic = node.matches(\n 'a[href], button, input, textarea, select, [role=\"button\"]'\n );\n\n const visuallyClickable =\n node.classList.contains('cursor-pointer') || node.classList.contains('clickable');\n\n const hasClickHandler =\n 'onclick' in node && typeof (node as HTMLElement).onclick === 'function';\n\n const isNowInteractable =\n semantic || visuallyClickable || hasClickHandler || isInteractable(node);\n // --------------------------------------------------------\n\n if (isNowInteractable) {\n this.elementMap.set(sequenceNumber, node);\n this.elementToSequence.set(node, sequenceNumber);\n\n const selector = this.generateSelector(node);\n this.selectorMap.set(sequenceNumber, selector);\n\n const fingerprint = this.generateFingerprint(node, selector);\n this.fingerprintMap.set(sequenceNumber, fingerprint);\n\n indexedElements.push([sequenceNumber, node]);\n sequenceNumber++;\n }\n }\n\n node = walker.nextNode();\n }\n\n this.isIndexed = true;\n this.indexVersion++;\n\n console.log(`[DOMService] Indexed ${sequenceNumber} elements (version ${this.indexVersion})`);\n\n return indexedElements;\n } finally {\n this.indexingInProgress = false;\n }\n }\n\n /**\n * Get element coordinates using getBoundingClientRect()\n * Returns viewport-relative coordinates\n */\n private getElementCoordinates(element: HTMLElement): {\n x: number;\n y: number;\n w: number;\n h: number;\n } {\n const rect = element.getBoundingClientRect();\n return {\n x: Math.round(rect.left),\n y: Math.round(rect.top),\n w: Math.round(rect.width),\n h: Math.round(rect.height),\n };\n }\n\n /**\n * Check if an element creates a stacking context\n * Based on CSS stacking context rules\n */\n private isStackingContext(element: HTMLElement): boolean {\n const style = window.getComputedStyle(element);\n\n // Positioned elements with z-index (not auto)\n const position = style.position;\n if (\n (position === 'fixed' ||\n position === 'absolute' ||\n position === 'relative' ||\n position === 'sticky') &&\n style.zIndex !== 'auto'\n ) {\n return true;\n }\n\n // Opacity less than 1\n const opacity = parseFloat(style.opacity);\n if (!isNaN(opacity) && opacity < 1) {\n return true;\n }\n\n // Transform (any value other than none)\n if (style.transform && style.transform !== 'none') {\n return true;\n }\n\n // Filter (any value other than none)\n if (style.filter && style.filter !== 'none') {\n return true;\n }\n\n // Will-change with transform or opacity\n const willChange = style.willChange;\n if (willChange && (willChange.includes('transform') || willChange.includes('opacity'))) {\n return true;\n }\n\n // Isolation: isolate\n if (style.isolation === 'isolate') {\n return true;\n }\n\n // Contain: layout, style, or paint\n const contain = style.contain;\n if (\n contain &&\n (contain.includes('layout') || contain.includes('style') || contain.includes('paint'))\n ) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Calculate global z-order for an element\n * Traverses up the DOM tree to identify stacking contexts and calculate z-order\n */\n private calculateGlobalZOrder(element: HTMLElement): number {\n let current: HTMLElement | null = element;\n const stackingContexts: Array<{ element: HTMLElement; zIndex: number; domOrder: number }> = [];\n\n // Walk up the DOM tree to document root\n while (current && current !== document.body && current.parentElement) {\n const style = window.getComputedStyle(current);\n\n // Check if current element creates a stacking context\n if (this.isStackingContext(current)) {\n // Get z-index value (0 if auto)\n let zIndex = 0;\n if (style.zIndex !== 'auto') {\n const parsedZIndex = parseInt(style.zIndex, 10);\n if (!isNaN(parsedZIndex)) {\n zIndex = parsedZIndex;\n }\n }\n\n // Calculate DOM order among siblings in the same stacking context\n let domOrder = 0;\n if (current.parentElement) {\n const siblings = Array.from(current.parentElement.children);\n domOrder = siblings.indexOf(current);\n }\n\n stackingContexts.push({ element: current, zIndex, domOrder });\n }\n\n current = current.parentElement as HTMLElement;\n }\n\n // Calculate final z-order from stacking contexts\n // Start with a base value and add contributions from each stacking context\n let baseZOrder = 1000000; // Base value to ensure positive numbers\n\n for (let i = stackingContexts.length - 1; i >= 0; i--) {\n const ctx = stackingContexts[i];\n // Each stacking context level contributes: zIndex * 10000 + domOrder\n // This ensures z-index has more weight than DOM order\n baseZOrder += ctx.zIndex * 10000 + ctx.domOrder;\n }\n\n // Add final DOM order for the element itself among its siblings\n if (element.parentElement) {\n const siblings = Array.from(element.parentElement.children);\n const finalDomOrder = siblings.indexOf(element);\n baseZOrder += finalDomOrder;\n }\n\n return baseZOrder;\n }\n\n /**\n * Get HTML snapshot with data-id attributes injected.\n * This re-indexes the live DOM and then produces a corresponding HTML string.\n */\n getSnapshotHtml(): string {\n // Re-index first to ensure we have latest state\n this.indexInteractableElements();\n\n // Clone document for output\n const clone = document.documentElement.cloneNode(true) as Element;\n\n // Instead of walking both trees in sync (which can fail with modals/fixed elements),\n // we directly inject data-id attributes based on our element map\n // by finding matching elements in the clone via selectors\n\n for (const [index, element] of this.elementMap.entries()) {\n if (element instanceof HTMLElement) {\n // Generate a selector for this element\n const selector = this.selectorMap.get(index);\n if (selector) {\n try {\n // Find the same element in the clone\n const cloneBody = clone.querySelector('body') || clone;\n const cloneElement = cloneBody.querySelector(selector);\n if (cloneElement) {\n // Add data-id attribute\n cloneElement.setAttribute('data-id', index.toString());\n\n // Get coordinates and z-order from the live element\n const style = window.getComputedStyle(element);\n const isDisplayNone = style.display === 'none';\n\n // Handle edge cases: skip hidden elements or set coordinates to 0\n if (isDisplayNone) {\n cloneElement.setAttribute('data-x', '0');\n cloneElement.setAttribute('data-y', '0');\n cloneElement.setAttribute('data-w', '0');\n cloneElement.setAttribute('data-h', '0');\n cloneElement.setAttribute('data-z', '0');\n } else {\n // Extract coordinates\n const coords = this.getElementCoordinates(element);\n cloneElement.setAttribute('data-x', coords.x.toString());\n cloneElement.setAttribute('data-y', coords.y.toString());\n cloneElement.setAttribute('data-w', coords.w.toString());\n cloneElement.setAttribute('data-h', coords.h.toString());\n\n // Calculate and set z-order\n const zOrder = this.calculateGlobalZOrder(element);\n cloneElement.setAttribute('data-z', zOrder.toString());\n }\n }\n } catch (e) {\n // Selector might be invalid, skip this element\n console.warn(`[DOMService] Failed to apply data attributes for index ${index}:`, e);\n }\n }\n }\n }\n\n return clone.outerHTML;\n }\n\n getElementByDataId(id: number): Element | undefined {\n // Validate index freshness? (Optional)\n return this.elementMap.get(id);\n }\n\n getSequenceForElement(element: Element): number | undefined {\n return this.elementToSequence.get(element);\n }\n\n isIndexActive(): boolean {\n return this.isIndexed;\n }\n\n clearIndex(): void {\n this.elementMap.clear();\n this.elementToSequence = new WeakMap(); // Reset WeakMap\n this.fingerprintMap.clear();\n this.isIndexed = false;\n }\n\n /**\n * Get an interactive element by its index.\n * Preferentially uses the current index.\n */\n getElementByIndex(index: number): HTMLElement | null {\n // Try live map first\n if (this.elementMap.has(index)) {\n const element = this.elementMap.get(index);\n if (element && element instanceof HTMLElement) {\n return element;\n }\n }\n\n // Fallback to selector map (persistence)\n if (this.selectorMap.has(index)) {\n const selector = this.selectorMap.get(index);\n if (selector) {\n try {\n const element = document.querySelector(selector);\n if (element && element instanceof HTMLElement) {\n // Optimization: Cache it back to live map?\n // Maybe not, as it might change again. But fine for now.\n return element;\n }\n } catch (e) {\n console.warn(`[DOMService] Failed to find element by selector for index ${index}:`, e);\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get an element by index with validation.\n * This is the main entry point for ToolService to use.\n * It validates the element matches its fingerprint and attempts recovery if not.\n */\n getValidatedElement(index: number): {\n element: HTMLElement | null;\n validation: ValidationResult;\n } {\n const validation = this.validateElementAtIndex(index);\n\n if (validation.isValid) {\n const element = this.getElementByIndex(index);\n return { element, validation };\n }\n\n if (validation.recoveredElement) {\n return { element: validation.recoveredElement, validation };\n }\n\n return { element: null, validation };\n }\n\n /**\n * Get fingerprint for a given index (for debugging/testing)\n */\n getFingerprint(index: number): ElementFingerprint | undefined {\n return this.fingerprintMap.get(index);\n }\n\n /**\n * Get all fingerprints (for debugging/testing)\n */\n getAllFingerprints(): Array<[number, ElementFingerprint]> {\n return Array.from(this.fingerprintMap.entries());\n }\n\n /**\n * Get current index version\n */\n getIndexVersion(): number {\n return this.indexVersion;\n }\n}\n\nexport const domService = DOMService.getInstance();\n","/**\n * Screen Share Service\n * Manages screensharing state and provides shared access to the active MediaStream\n * for use across the widget (chatWindow, toolExecutor, etc.)\n */\n\nlet activeStream: MediaStream | null = null;\n\n/**\n * Start screen sharing. If already active, returns the existing stream.\n * @returns Promise resolving to the MediaStream\n */\nexport async function startScreenShare(): Promise<MediaStream> {\n // Check if stream already exists and is active\n if (activeStream?.active) {\n const videoTracks = activeStream.getVideoTracks();\n if (videoTracks.length > 0 && videoTracks[0].readyState === 'live') {\n return activeStream;\n }\n }\n\n // Request screen share with preferCurrentTab option\n const stream = await navigator.mediaDevices.getDisplayMedia({\n video: true,\n audio: false,\n preferCurrentTab: true,\n } as DisplayMediaStreamOptions);\n\n // Validate stream\n if (!stream || stream.getVideoTracks().length === 0) {\n throw new Error('Screen sharing permission denied or no video track available');\n }\n\n // Store stream reference\n activeStream = stream;\n\n // Set up event listener for track 'ended' event to clear stream\n stream.getVideoTracks()[0].addEventListener('ended', () => {\n activeStream = null;\n });\n\n return stream;\n}\n\n/**\n * Get the current active MediaStream, if any.\n * @returns The active MediaStream or null\n */\nexport function getActiveStream(): MediaStream | null {\n // Check if stream is still active\n if (activeStream?.active) {\n const videoTracks = activeStream.getVideoTracks();\n if (videoTracks.length > 0 && videoTracks[0].readyState === 'live') {\n return activeStream;\n }\n }\n\n // Stream is no longer active, clear reference\n activeStream = null;\n return null;\n}\n\n/**\n * Stop screen sharing and clear the stream reference.\n */\nexport function stopScreenShare(): void {\n if (activeStream) {\n activeStream.getTracks().forEach((track) => track.stop());\n activeStream = null;\n }\n}\n\n/**\n * Check if screensharing is currently active.\n * @returns True if screensharing is active, false otherwise\n */\nexport function isScreenSharing(): boolean {\n return getActiveStream() !== null;\n}\n","export interface ShowModeOptions {\n element: HTMLElement;\n explanation: string;\n toolName: string;\n isClickAction?: boolean;\n}\n\nexport class ShowModeService {\n private static instance: ShowModeService;\n\n private currentPopup: HTMLElement | null = null;\n private currentHighlight: HTMLElement | null = null;\n private currentElement: HTMLElement | null = null;\n private currentOptions: ShowModeOptions | null = null;\n private currentPromise: Promise<boolean> | null = null;\n private resolvePromise: ((value: boolean) => void) | null = null;\n private rejectPromise: ((reason?: unknown) => void) | null = null;\n private clickHandler: ((e: MouseEvent) => void) | null = null;\n private scrollHandler: (() => void) | null = null;\n private updateHighlightPosition: (() => void) | null = null;\n private rafId: number | null = null;\n\n private constructor() {}\n\n static getInstance(): ShowModeService {\n if (!ShowModeService.instance) {\n ShowModeService.instance = new ShowModeService();\n }\n return ShowModeService.instance;\n }\n\n async showToolAction(options: ShowModeOptions): Promise<boolean> {\n const { element, explanation, isClickAction = false, toolName } = options;\n\n if (\n this.currentOptions?.element === element &&\n this.currentOptions.explanation === explanation &&\n this.currentOptions.toolName === toolName &&\n this.currentPromise\n ) {\n console.log('[ShowModeService] Duplicate tool action detected, returning existing promise');\n return this.currentPromise;\n }\n\n this.cleanup();\n this.currentOptions = options;\n this.currentElement = element;\n\n element.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n\n this.createHighlight(element);\n this.createPopup(explanation, isClickAction);\n this.setupPositionUpdates();\n\n if (isClickAction) {\n // For click actions, we let the event propagate first (to trigger the actual click)\n // and then we resolve. But the overlay is in the way.\n // We used pointer-events: none on highlight, but the popup might be blocking?\n // Or we want the overlay to catch the click (as confirmation) and THEN we click the element?\n // The 'isClickAction' implies the user is clicking the element THROUGH the highlight.\n // But highlight has pointer-events: none. So the click goes to the element directly?\n // If the click goes to the element directly, our document listener catches it.\n // But if the element has stopPropagation, our listener might not catch it in bubble phase.\n // We use capture: true, so we catch it first.\n this.setupClickHandler();\n }\n\n this.currentPromise = new Promise<boolean>((resolve, reject) => {\n this.resolvePromise = resolve;\n this.rejectPromise = reject;\n }).finally(() => {\n this.cleanup();\n });\n\n return this.currentPromise;\n }\n\n cleanup(): void {\n if (this.rejectPromise) {\n this.rejectPromise('Cancelled by cleanup');\n this.rejectPromise = null;\n }\n this.resolvePromise = null;\n\n if (this.clickHandler) {\n document.removeEventListener('click', this.clickHandler, { capture: true });\n this.clickHandler = null;\n }\n if (this.scrollHandler) {\n window.removeEventListener('scroll', this.scrollHandler, { capture: true });\n window.removeEventListener('resize', this.scrollHandler);\n window.removeEventListener('touchmove', this.scrollHandler);\n window.removeEventListener('wheel', this.scrollHandler);\n this.scrollHandler = null;\n }\n if (this.rafId !== null) {\n window.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n\n this.updateHighlightPosition = null;\n\n // Remove popup and highlight elements\n if (this.currentPopup) {\n this.currentPopup.remove();\n this.currentPopup = null;\n }\n if (this.currentHighlight) {\n this.currentHighlight.remove();\n this.currentHighlight = null;\n }\n\n // Also remove by ID in case they weren't properly tracked\n const popupById = document.getElementById('marketrix-show-popup');\n if (popupById) {\n popupById.remove();\n }\n const highlightById = document.getElementById('marketrix-show-highlight');\n if (highlightById) {\n highlightById.remove();\n }\n\n this.currentElement = null;\n this.currentOptions = null;\n this.currentPromise = null;\n this.resolvePromise = null;\n this.rejectPromise = null;\n }\n\n private createHighlight(element: HTMLElement): void {\n const rect = element.getBoundingClientRect();\n const highlight = document.createElement('div');\n highlight.id = 'marketrix-show-highlight';\n highlight.style.cssText = `\n position: fixed;\n top: ${rect.top}px;\n left: ${rect.left}px;\n width: ${rect.width}px;\n height: ${rect.height}px;\n border: 3px solid #3b82f6;\n border-radius: 4px;\n box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2), 0 0 20px rgba(59, 130, 246, 0.4);\n z-index: 2147483645;\n pointer-events: none;\n transition: none;\n `;\n document.body.appendChild(highlight);\n this.currentHighlight = highlight;\n }\n\n private createPopup(explanation: string, isClickAction: boolean): void {\n const popup = document.createElement('div');\n popup.id = 'marketrix-show-popup';\n\n const content = isClickAction\n ? `<div style=\"font-weight: 500; color: #1f2937; font-size: 12px;\">${this.escapeHtml(explanation)}</div>`\n : `<div style=\"margin-bottom: 12px; font-weight: 500; color: #1f2937; font-size: 12px;\">${this.escapeHtml(explanation)}</div>\n <div style=\"display: flex; gap: 8px; justify-content: flex-end;\">\n <button id=\"marketrix-show-continue\" style=\"\n background: #3b82f6; color: white; border: none; border-radius: 6px;\n padding: 8px 16px; font-size: 12px; font-weight: 500; cursor: pointer;\n \">Continue</button>\n </div>`;\n\n popup.innerHTML = content;\n document.body.appendChild(popup);\n this.currentPopup = popup;\n\n if (!isClickAction) {\n this.setupContinueButton(popup);\n }\n\n this.updatePopupPosition();\n }\n\n private setupPositionUpdates(): void {\n this.updateHighlightPosition = () => {\n if (!this.currentElement || !this.currentHighlight) return;\n const rect = this.currentElement.getBoundingClientRect();\n this.currentHighlight.style.top = `${rect.top}px`;\n this.currentHighlight.style.left = `${rect.left}px`;\n this.currentHighlight.style.width = `${rect.width}px`;\n this.currentHighlight.style.height = `${rect.height}px`;\n this.updatePopupPosition();\n };\n\n this.scrollHandler = () => {\n if (this.rafId !== null) window.cancelAnimationFrame(this.rafId);\n this.updateHighlightPosition?.();\n };\n\n window.addEventListener('scroll', this.scrollHandler, { capture: true, passive: true });\n window.addEventListener('resize', this.scrollHandler, { passive: true });\n window.addEventListener('touchmove', this.scrollHandler, { passive: true });\n window.addEventListener('wheel', this.scrollHandler, { passive: true });\n }\n\n private updatePopupPosition(): void {\n if (!this.currentPopup || !this.currentElement) return;\n\n const rect = this.currentElement.getBoundingClientRect();\n const popupWidth = 320;\n const popupHeight = 120; // Approx height\n const spacing = 20;\n const padding = 10;\n\n // Simple logic for now: prefer right, then left, then top, then bottom\n // ... (Implementation of smart positioning logic similar to original)\n // For brevity in this refactor, I'll implement a simpler version or copy logic.\n // I will copy the logic because it's good.\n\n const elementCenterX = rect.left + rect.width / 2;\n const elementCenterY = rect.top + rect.height / 2;\n\n const positions = [\n { left: rect.right + spacing, top: elementCenterY - popupHeight / 2 }, // Right\n { left: rect.left - popupWidth - spacing, top: elementCenterY - popupHeight / 2 }, // Left\n { left: elementCenterX - popupWidth / 2, top: rect.top - popupHeight - spacing }, // Top\n { left: elementCenterX - popupWidth / 2, top: rect.bottom + spacing }, // Bottom\n ];\n\n // Find first position that fits\n let bestPos = positions[0];\n for (const pos of positions) {\n if (\n pos.left >= padding &&\n pos.left + popupWidth <= window.innerWidth - padding &&\n pos.top >= padding &&\n pos.top + popupHeight <= window.innerHeight - padding\n ) {\n bestPos = pos;\n break;\n }\n }\n\n // Clamp to screen\n const left = Math.max(\n padding,\n Math.min(bestPos.left, window.innerWidth - popupWidth - padding)\n );\n const top = Math.max(\n padding,\n Math.min(bestPos.top, window.innerHeight - popupHeight - padding)\n );\n\n this.currentPopup.style.cssText += `\n position: fixed;\n top: ${top}px;\n left: ${left}px;\n width: ${popupWidth}px;\n background: white;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n z-index: 2147483646;\n padding: 16px;\n `;\n }\n\n private setupClickHandler(): void {\n this.clickHandler = (e: MouseEvent) => {\n if (!this.currentElement || !this.resolvePromise) return;\n\n // Use composedPath to handle Shadow DOM retargeting and event bubbling properly\n const path = e.composedPath();\n const isClickOnElement = path.includes(this.currentElement);\n\n if (isClickOnElement) {\n // Intercept the click to prevent immediate navigation/action before we can process the tool result\n e.preventDefault();\n e.stopPropagation();\n\n console.log('[ShowModeService] Click detected on element, resolving promise');\n const resolve = this.resolvePromise;\n this.resolvePromise = null;\n this.rejectPromise = null;\n resolve(true);\n }\n };\n\n // Attach with capture to ensure we see it, but we must be careful not to stop propagation if we want the click to happen\n document.addEventListener('click', this.clickHandler, { capture: true });\n }\n\n private setupContinueButton(popup: HTMLElement): void {\n window.requestAnimationFrame(() => {\n const btn = popup.querySelector('#marketrix-show-continue') as HTMLButtonElement;\n if (btn) {\n btn.addEventListener('click', (e) => {\n e.stopPropagation();\n if (this.resolvePromise) {\n console.log('[ShowModeService] Continue clicked, resolving promise immediately');\n const resolve = this.resolvePromise;\n this.resolvePromise = null;\n this.rejectPromise = null;\n resolve(true);\n }\n });\n }\n });\n }\n\n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n}\n\nexport const showModeService = ShowModeService.getInstance();\n","import { domService } from './DomService';\nimport { startScreenShare } from './ScreenShareService';\nimport { showModeService } from './ShowModeService';\n\nexport interface ToolExecutionResult {\n success: boolean;\n result: string;\n error?: string;\n recoveryInfo?: {\n originalIndex: number;\n recoveredIndex?: number;\n domReindexed: boolean;\n };\n}\n\n// TypeScript interfaces for tool parameters\nexport interface NavigateParams {\n url: string;\n new_tab?: boolean;\n}\n\nexport interface SearchParams {\n query: string;\n engine?: 'duckduckgo' | 'google' | 'bing';\n}\n\nexport interface ClickElementParams {\n index: number;\n}\n\nexport interface TypeTextParams {\n index: number;\n text: string;\n}\n\nexport interface ScrollParams {\n direction: 'up' | 'down' | 'left' | 'right';\n}\n\nexport interface ScrollToTextParams {\n text: string;\n}\n\nexport interface SendKeysParams {\n index: number;\n keys: string;\n}\n\nexport interface SelectDropdownOptionParams {\n index: number;\n option: string;\n}\n\nexport interface GetDropdownOptionsParams {\n index: number;\n}\n\nexport interface UploadFileParams {\n index: number;\n path: string;\n}\n\nexport interface SwitchTabParams {\n tab_index: number;\n}\n\nexport interface DoneParams {\n success: boolean;\n message?: string;\n}\n\nexport interface WaitParams {\n seconds: number;\n}\n\nexport class ToolExecutionService {\n private static instance: ToolExecutionService;\n\n private constructor() {}\n\n static getInstance(): ToolExecutionService {\n if (!ToolExecutionService.instance) {\n ToolExecutionService.instance = new ToolExecutionService();\n }\n return ToolExecutionService.instance;\n }\n\n async executeTool(\n toolName: string,\n args: Record<string, unknown>,\n mode: string = 'do',\n explanation: string = ''\n ): Promise<ToolExecutionResult> {\n try {\n console.log(`[ToolExecutionService] Executing ${toolName} (mode: ${mode})`);\n\n if (mode === 'show' && this.requiresHighlight(toolName)) {\n const index = args.index as number | undefined;\n if (index !== undefined) {\n const element = domService.getElementByIndex(index);\n if (element) {\n const confirmed = await showModeService.showToolAction({\n element,\n explanation: explanation || `Execute ${toolName}`,\n toolName,\n isClickAction: toolName === 'click_element',\n });\n\n if (!confirmed) {\n return { success: false, result: '', error: 'User cancelled action' };\n }\n\n if (toolName === 'click_element') {\n // Execute the click after confirmation\n // We proceed to the switch case below to actually execute the click\n } else if (\n toolName === 'type_text' ||\n toolName === 'select_dropdown_option' ||\n toolName === 'send_keys'\n ) {\n // Execute the action after confirmation\n // We proceed to the switch case below to actually execute the action\n } else {\n // For other tools, proceed to execute as well if they were highlighted\n }\n }\n }\n }\n\n switch (toolName) {\n case 'navigate':\n return this.navigate(args as unknown as NavigateParams);\n case 'search':\n return this.search(args as unknown as SearchParams);\n case 'click_element':\n return await this.clickElement(args as unknown as ClickElementParams);\n case 'type_text':\n return this.typeText(args as unknown as TypeTextParams);\n case 'scroll':\n return this.scroll(args as unknown as ScrollParams);\n case 'scroll_to_text':\n return this.scrollToText(args as unknown as ScrollToTextParams);\n case 'extract':\n return this.extract(args);\n case 'go_back':\n return this.goBack();\n case 'wait':\n return await this.wait(args as unknown as WaitParams);\n case 'select_dropdown_option':\n return this.selectDropdownOption(args as unknown as SelectDropdownOptionParams);\n case 'get_dropdown_options':\n return this.getDropdownOptions(args as unknown as GetDropdownOptionsParams);\n case 'send_keys':\n return this.sendKeys(args as unknown as SendKeysParams);\n case 'upload_file':\n return this.uploadFile(args as unknown as UploadFileParams);\n case 'close_tab':\n return this.closeTab();\n case 'switch_tab':\n return this.switchTab(args as unknown as SwitchTabParams);\n case 'done':\n return this.done(args as unknown as DoneParams);\n case 'get_html':\n return this.getHtml();\n case 'get_screenshot':\n return await this.getScreenshot();\n default:\n return { success: false, result: '', error: `Unknown tool: ${toolName}` };\n }\n } catch (error) {\n showModeService.cleanup();\n return {\n success: false,\n result: '',\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n private requiresHighlight(toolName: string): boolean {\n return [\n 'click_element',\n 'type_text',\n 'select_dropdown_option',\n 'send_keys',\n 'upload_file',\n ].includes(toolName);\n }\n\n private navigate(args: NavigateParams): ToolExecutionResult {\n const url = args.url as string;\n if (!url) return { success: false, result: '', error: 'URL is required' };\n\n if (args.new_tab) {\n window.open(url, '_blank');\n return { success: true, result: `Opened ${url} in new tab` };\n } else {\n window.location.href = url;\n return { success: true, result: `Navigating to ${url}` };\n }\n }\n\n private search(args: SearchParams): ToolExecutionResult {\n const query = args.query as string;\n if (!query) return { success: false, result: '', error: 'Query is required' };\n\n const engine = (args.engine as string) || 'duckduckgo';\n const encoded = encodeURIComponent(query);\n let url = `https://duckduckgo.com/?q=${encoded}`;\n\n if (engine === 'google') url = `https://www.google.com/search?q=${encoded}`;\n if (engine === 'bing') url = `https://www.bing.com/search?q=${encoded}`;\n\n window.location.href = url;\n return { success: true, result: `Searching for \"${query}\" on ${engine}` };\n }\n\n private async clickElement(args: ClickElementParams): Promise<ToolExecutionResult> {\n const index = args.index as number;\n if (index === undefined) return { success: false, result: '', error: 'Index required' };\n\n // Use validated element lookup\n const { element, validation } = domService.getValidatedElement(index);\n\n if (!element) {\n if (validation.requiresReindex) {\n // Trigger re-indexing and return special error for agent to retry\n domService.indexInteractableElements();\n return {\n success: false,\n result: '',\n error: `DOM_CHANGED: Element at index ${index} no longer exists. DOM has been re-indexed. Please call get_html to get updated element indices.`,\n recoveryInfo: {\n originalIndex: index,\n domReindexed: true,\n },\n };\n }\n return { success: false, result: '', error: `Element ${index} not found` };\n }\n\n // Log if element was recovered at a different index\n if (validation.mismatchReason === 'index_shifted' && validation.recoveredIndex !== undefined) {\n console.log(\n `[ToolExecutionService] Element shifted from index ${index} to ${validation.recoveredIndex}, executing on recovered element`\n );\n }\n\n element.scrollIntoView({ behavior: 'smooth', block: 'center' });\n await new Promise((resolve) => setTimeout(resolve, 100));\n // Defer the click to allow the tool response to be sent first\n setTimeout(() => {\n try {\n // element is HTMLElement which has click() method\n element.click();\n } catch (e) {\n console.warn('[ToolExecutionService] Click triggered an error on the page:', e);\n // Fallback: try dispatchEvent if click() fails\n try {\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n element.dispatchEvent(clickEvent);\n } catch (fallbackError) {\n console.warn('[ToolExecutionService] Fallback click also failed:', fallbackError);\n }\n }\n }, 50);\n\n const result: ToolExecutionResult = { success: true, result: `Clicked element ${index}` };\n if (validation.recoveredIndex !== undefined && validation.recoveredIndex !== index) {\n result.recoveryInfo = {\n originalIndex: index,\n recoveredIndex: validation.recoveredIndex,\n domReindexed: false,\n };\n }\n return result;\n }\n\n private typeText(args: TypeTextParams): ToolExecutionResult {\n const index = args.index as number;\n const text = args.text as string;\n if (index === undefined || text === undefined)\n return { success: false, result: '', error: 'Index and text required' };\n\n // Use validated element lookup\n const { element, validation } = domService.getValidatedElement(index);\n\n if (!element) {\n if (validation.requiresReindex) {\n domService.indexInteractableElements();\n return {\n success: false,\n result: '',\n error: `DOM_CHANGED: Element at index ${index} no longer exists. DOM has been re-indexed. Please call get_html to get updated element indices.`,\n recoveryInfo: { originalIndex: index, domReindexed: true },\n };\n }\n return { success: false, result: '', error: `Element ${index} not found` };\n }\n\n // Check if element is an input-like element\n const isInputLike =\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n (element as HTMLElement).isContentEditable;\n\n if (isInputLike) {\n const inputElement = element as HTMLInputElement | HTMLTextAreaElement;\n\n // Focus the element first (important for some frameworks)\n try {\n inputElement.focus();\n } catch (e) {\n console.warn('[ToolService] Focus failed:', e);\n }\n\n // Try multiple methods to set the value\n let valueSet = false;\n let lastError: unknown = null;\n\n // Method 1: Native value setter (works with React controlled components)\n if (!valueSet) {\n try {\n const isTextArea = inputElement.tagName.toUpperCase() === 'TEXTAREA';\n const prototype = isTextArea ? HTMLTextAreaElement.prototype : HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(prototype, 'value');\n\n if (descriptor?.set) {\n // Important: use the descriptor.set directly with .call()\n descriptor.set.call(inputElement, text);\n valueSet = true;\n console.log('[ToolService] Native setter succeeded');\n }\n } catch (e) {\n lastError = e;\n console.warn('[ToolService] Native setter failed:', e);\n }\n }\n\n // Method 2: Direct value assignment\n if (!valueSet) {\n try {\n inputElement.value = text;\n valueSet = true;\n console.log('[ToolService] Direct assignment succeeded');\n } catch (e) {\n lastError = e;\n console.warn('[ToolService] Direct assignment failed:', e);\n }\n }\n\n // Method 3: Select all and use execCommand insertText\n if (!valueSet) {\n try {\n inputElement.focus();\n inputElement.select();\n const success = document.execCommand('insertText', false, text);\n if (success) {\n valueSet = true;\n console.log('[ToolService] execCommand succeeded');\n }\n } catch (e) {\n lastError = e;\n console.warn('[ToolService] execCommand failed:', e);\n }\n }\n\n // Method 4: Simulate keyboard input character by character (last resort)\n if (!valueSet) {\n try {\n inputElement.focus();\n // Clear existing value first\n inputElement.value = '';\n for (const char of text) {\n inputElement.dispatchEvent(\n new KeyboardEvent('keydown', { key: char, bubbles: true, cancelable: true })\n );\n inputElement.value += char;\n inputElement.dispatchEvent(\n new InputEvent('input', {\n bubbles: true,\n cancelable: true,\n inputType: 'insertText',\n data: char,\n })\n );\n inputElement.dispatchEvent(\n new KeyboardEvent('keyup', { key: char, bubbles: true, cancelable: true })\n );\n }\n valueSet = true;\n console.log('[ToolService] Simulated typing succeeded');\n } catch (e) {\n lastError = e;\n console.warn('[ToolService] Simulated typing failed:', e);\n }\n }\n\n if (!valueSet) {\n return {\n success: false,\n result: '',\n error: `Failed to set value: ${lastError instanceof Error ? lastError.message : String(lastError)}`,\n };\n }\n\n // Dispatch events for React/Vue/Angular frameworks\n try {\n // InputEvent is more specific and carries data\n const inputEvent = new InputEvent('input', {\n bubbles: true,\n cancelable: true,\n inputType: 'insertText',\n data: text,\n });\n inputElement.dispatchEvent(inputEvent);\n\n // Change event for form validation\n inputElement.dispatchEvent(new Event('change', { bubbles: true }));\n\n // Some frameworks need blur to trigger validation\n inputElement.dispatchEvent(new Event('blur', { bubbles: true }));\n } catch (e) {\n console.warn('[ToolService] Event dispatch failed:', e);\n }\n } else if ('value' in element) {\n // Generic element with value property (e.g., select, custom elements)\n try {\n (element as HTMLInputElement).value = text;\n element.dispatchEvent(new Event('input', { bubbles: true }));\n element.dispatchEvent(new Event('change', { bubbles: true }));\n } catch (e) {\n return {\n success: false,\n result: '',\n error: `Failed to set value on element: ${e instanceof Error ? e.message : String(e)}`,\n };\n }\n } else {\n // For contenteditable or text-based elements\n try {\n element.textContent = text;\n element.dispatchEvent(new Event('input', { bubbles: true }));\n } catch (e) {\n return {\n success: false,\n result: '',\n error: `Failed to set textContent: ${e instanceof Error ? e.message : String(e)}`,\n };\n }\n }\n\n const result: ToolExecutionResult = {\n success: true,\n result: `Typed text into element ${index}`,\n };\n if (validation.recoveredIndex !== undefined && validation.recoveredIndex !== index) {\n result.recoveryInfo = {\n originalIndex: index,\n recoveredIndex: validation.recoveredIndex,\n domReindexed: false,\n };\n }\n return result;\n }\n\n private scroll(args: ScrollParams): ToolExecutionResult {\n const direction = ((args.direction as string) || '').toLowerCase();\n const amount = window.innerHeight * 0.8;\n\n switch (direction) {\n case 'down':\n window.scrollBy({ top: amount, behavior: 'smooth' });\n break;\n case 'up':\n window.scrollBy({ top: -amount, behavior: 'smooth' });\n break;\n case 'left':\n window.scrollBy({ left: -amount, behavior: 'smooth' });\n break;\n case 'right':\n window.scrollBy({ left: amount, behavior: 'smooth' });\n break;\n default:\n return { success: false, result: '', error: 'Invalid direction' };\n }\n return { success: true, result: `Scrolled ${direction}` };\n }\n\n private scrollToText(args: ScrollToTextParams): ToolExecutionResult {\n const text = args.text as string;\n if (!text) return { success: false, result: '', error: 'Text required' };\n\n const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);\n let node: Node | null;\n while ((node = walker.nextNode())) {\n if (node.textContent?.includes(text) && node.parentElement) {\n node.parentElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n return { success: true, result: `Scrolled to \"${text}\"` };\n }\n }\n return { success: false, result: '', error: `Text \"${text}\" not found` };\n }\n\n private extract(_args: Record<string, unknown>): ToolExecutionResult {\n const result = {\n title: document.title,\n url: window.location.href,\n text: document.body.innerText.substring(0, 10000),\n links: Array.from(document.querySelectorAll('a[href]'))\n .slice(0, 100)\n .map((a) => ({\n text: a.textContent?.trim() || '',\n href: a.getAttribute('href'),\n })),\n };\n return { success: true, result: JSON.stringify(result) };\n }\n\n private goBack(): ToolExecutionResult {\n if (window.history.length > 1) {\n window.history.back();\n return { success: true, result: 'Navigated back' };\n }\n return { success: false, result: '', error: 'No history' };\n }\n\n private async wait(args: WaitParams): Promise<ToolExecutionResult> {\n const seconds = args.seconds as number;\n if (seconds === undefined) return { success: false, result: '', error: 'Seconds required' };\n await new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n return { success: true, result: `Waited ${seconds}s` };\n }\n\n private selectDropdownOption(args: SelectDropdownOptionParams): ToolExecutionResult {\n const index = args.index as number;\n const option = args.option as string;\n if (index === undefined || !option)\n return { success: false, result: '', error: 'Index/Option required' };\n\n // Use validated element lookup\n const { element, validation } = domService.getValidatedElement(index);\n\n if (!element) {\n if (validation.requiresReindex) {\n domService.indexInteractableElements();\n return {\n success: false,\n result: '',\n error: `DOM_CHANGED: Element at index ${index} no longer exists. DOM has been re-indexed. Please call get_html to get updated element indices.`,\n recoveryInfo: { originalIndex: index, domReindexed: true },\n };\n }\n return { success: false, result: '', error: `Select ${index} not found` };\n }\n\n if (!(element instanceof HTMLSelectElement)) {\n return { success: false, result: '', error: `Element ${index} is not a select element` };\n }\n\n const opt = Array.from(element.options).find((o) => o.value === option || o.text === option);\n if (!opt) return { success: false, result: '', error: `Option ${option} not found` };\n\n element.value = opt.value;\n element.dispatchEvent(new Event('change', { bubbles: true }));\n\n const result: ToolExecutionResult = { success: true, result: `Selected ${option}` };\n if (validation.recoveredIndex !== undefined && validation.recoveredIndex !== index) {\n result.recoveryInfo = {\n originalIndex: index,\n recoveredIndex: validation.recoveredIndex,\n domReindexed: false,\n };\n }\n return result;\n }\n\n private getDropdownOptions(args: GetDropdownOptionsParams): ToolExecutionResult {\n const index = args.index as number;\n\n // Use validated element lookup\n const { element, validation } = domService.getValidatedElement(index);\n\n if (!element) {\n if (validation.requiresReindex) {\n domService.indexInteractableElements();\n return {\n success: false,\n result: '',\n error: `DOM_CHANGED: Element at index ${index} no longer exists. DOM has been re-indexed. Please call get_html to get updated element indices.`,\n recoveryInfo: { originalIndex: index, domReindexed: true },\n };\n }\n return { success: false, result: '', error: `Select ${index} not found` };\n }\n\n if (!(element instanceof HTMLSelectElement)) {\n return { success: false, result: '', error: `Element ${index} is not a select element` };\n }\n\n const options = Array.from(element.options).map((o) => ({ value: o.value, text: o.text }));\n return { success: true, result: JSON.stringify(options) };\n }\n\n private sendKeys(args: SendKeysParams): ToolExecutionResult {\n const index = args.index as number;\n const keys = args.keys as string;\n if (index === undefined || !keys)\n return { success: false, result: '', error: 'Index/Keys required' };\n\n // Use validated element lookup\n const { element, validation } = domService.getValidatedElement(index);\n\n if (!element) {\n if (validation.requiresReindex) {\n domService.indexInteractableElements();\n return {\n success: false,\n result: '',\n error: `DOM_CHANGED: Element at index ${index} no longer exists. DOM has been re-indexed. Please call get_html to get updated element indices.`,\n recoveryInfo: { originalIndex: index, domReindexed: true },\n };\n }\n return { success: false, result: '', error: `Element ${index} not found` };\n }\n\n // Focus the element first\n element.focus();\n\n // Dispatch keyboard events (for custom event handlers)\n element.dispatchEvent(\n new KeyboardEvent('keydown', { key: keys, bubbles: true, cancelable: true })\n );\n element.dispatchEvent(\n new KeyboardEvent('keyup', { key: keys, bubbles: true, cancelable: true })\n );\n\n // Simulate actual browser behavior for common keys\n const actionResult = this.simulateKeyAction(element, keys);\n\n const result: ToolExecutionResult = {\n success: true,\n result: actionResult || `Sent keys ${keys}`,\n };\n if (validation.recoveredIndex !== undefined && validation.recoveredIndex !== index) {\n result.recoveryInfo = {\n originalIndex: index,\n recoveredIndex: validation.recoveredIndex,\n domReindexed: false,\n };\n }\n return result;\n }\n\n /**\n * Simulate actual browser behavior for special keys\n * Since programmatic KeyboardEvents are not \"trusted\", we need to\n * manually trigger the expected behavior\n */\n private simulateKeyAction(element: HTMLElement, key: string): string | null {\n switch (key) {\n case 'Tab': {\n // Move focus to next focusable element\n const focusables = Array.from(\n document.querySelectorAll<HTMLElement>(\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n )\n ).filter((el) => el.offsetParent !== null); // Only visible elements\n\n const currentIndex = focusables.indexOf(element);\n if (currentIndex !== -1 && currentIndex < focusables.length - 1) {\n const nextElement = focusables[currentIndex + 1];\n nextElement.focus();\n return `Tab: moved focus to ${nextElement.tagName.toLowerCase()}${nextElement.id ? `#${nextElement.id}` : ''}`;\n }\n return 'Tab: no next focusable element';\n }\n\n case 'Shift+Tab': {\n // Move focus to previous focusable element\n const focusables = Array.from(\n document.querySelectorAll<HTMLElement>(\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n )\n ).filter((el) => el.offsetParent !== null);\n\n const currentIndex = focusables.indexOf(element);\n if (currentIndex > 0) {\n const prevElement = focusables[currentIndex - 1];\n prevElement.focus();\n return `Shift+Tab: moved focus to ${prevElement.tagName.toLowerCase()}${prevElement.id ? `#${prevElement.id}` : ''}`;\n }\n return 'Shift+Tab: no previous focusable element';\n }\n\n case 'Enter': {\n // Submit form or click button\n if (element instanceof HTMLButtonElement || element.getAttribute('role') === 'button') {\n element.click();\n return 'Enter: clicked button';\n }\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n const form = element.closest('form');\n if (form) {\n // Find submit button and click it, or submit form\n const submitBtn = form.querySelector<HTMLButtonElement>(\n 'button[type=\"submit\"], input[type=\"submit\"]'\n );\n if (submitBtn) {\n submitBtn.click();\n return 'Enter: clicked form submit button';\n } else {\n form.requestSubmit();\n return 'Enter: submitted form';\n }\n }\n }\n if (element instanceof HTMLAnchorElement) {\n element.click();\n return 'Enter: clicked link';\n }\n return 'Enter: dispatched event';\n }\n\n case 'Escape': {\n // Blur current element (common behavior)\n element.blur();\n // Also dispatch to document for modal close handlers\n document.dispatchEvent(\n new KeyboardEvent('keydown', { key: 'Escape', bubbles: true, cancelable: true })\n );\n return 'Escape: blurred element and dispatched to document';\n }\n\n case ' ':\n case 'Space': {\n // Click checkboxes, radio buttons, or buttons\n if (\n element instanceof HTMLInputElement &&\n (element.type === 'checkbox' || element.type === 'radio')\n ) {\n element.click();\n return `Space: toggled ${element.type}`;\n }\n if (element instanceof HTMLButtonElement || element.getAttribute('role') === 'button') {\n element.click();\n return 'Space: clicked button';\n }\n return 'Space: dispatched event';\n }\n\n case 'ArrowDown': {\n // For select elements, move to next option\n if (element instanceof HTMLSelectElement) {\n const currentIdx = element.selectedIndex;\n if (currentIdx < element.options.length - 1) {\n element.selectedIndex = currentIdx + 1;\n element.dispatchEvent(new Event('change', { bubbles: true }));\n return `ArrowDown: selected \"${element.options[element.selectedIndex].text}\"`;\n }\n return 'ArrowDown: already at last option';\n }\n return 'ArrowDown: dispatched event';\n }\n\n case 'ArrowUp': {\n // For select elements, move to previous option\n if (element instanceof HTMLSelectElement) {\n const currentIdx = element.selectedIndex;\n if (currentIdx > 0) {\n element.selectedIndex = currentIdx - 1;\n element.dispatchEvent(new Event('change', { bubbles: true }));\n return `ArrowUp: selected \"${element.options[element.selectedIndex].text}\"`;\n }\n return 'ArrowUp: already at first option';\n }\n return 'ArrowUp: dispatched event';\n }\n\n case 'Home': {\n // For inputs, move cursor to start\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n element.setSelectionRange(0, 0);\n return 'Home: moved cursor to start';\n }\n return 'Home: dispatched event';\n }\n\n case 'End': {\n // For inputs, move cursor to end\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n const len = element.value.length;\n element.setSelectionRange(len, len);\n return 'End: moved cursor to end';\n }\n return 'End: dispatched event';\n }\n\n case 'Backspace': {\n // Delete character before cursor (or last character if cursor position unknown)\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n const value = element.value;\n\n if (!value || value.length === 0) {\n return 'Backspace: input is empty, nothing to delete';\n }\n\n // Get cursor position, default to end of input if not set\n let start: number = element.selectionStart ?? value.length;\n let end: number = element.selectionEnd ?? value.length;\n\n // If cursor position is at 0, assume we want to delete from end\n if (start === 0 && end === 0) {\n start = value.length;\n end = value.length;\n }\n\n let newValue = value;\n let newCursorPos = start;\n\n if (start === end && start > 0) {\n // No selection, delete char before cursor\n newValue = value.slice(0, start - 1) + value.slice(end);\n newCursorPos = start - 1;\n } else if (start !== end) {\n // Delete selection\n newValue = value.slice(0, start) + value.slice(end);\n newCursorPos = start;\n } else {\n return 'Backspace: cursor at start, nothing to delete';\n }\n\n // Use native input value setter to work with React/Vue controlled inputs\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n element instanceof HTMLTextAreaElement\n ? HTMLTextAreaElement.prototype\n : HTMLInputElement.prototype,\n 'value'\n )?.set;\n\n if (nativeInputValueSetter) {\n nativeInputValueSetter.call(element, newValue);\n } else {\n element.value = newValue;\n }\n\n // Dispatch input event for React/Vue to pick up the change\n element.dispatchEvent(new Event('input', { bubbles: true }));\n element.dispatchEvent(new Event('change', { bubbles: true }));\n\n // Set cursor position after value change\n element.setSelectionRange(newCursorPos, newCursorPos);\n\n return `Backspace: deleted character, value is now \"${newValue}\"`;\n }\n return 'Backspace: dispatched event';\n }\n\n case 'Delete': {\n // Delete character after cursor\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n const start = element.selectionStart || 0;\n const end = element.selectionEnd || 0;\n const value = element.value;\n\n let newValue = value;\n\n if (start === end && start < value.length) {\n // No selection, delete char after cursor\n newValue = value.slice(0, start) + value.slice(end + 1);\n } else if (start !== end) {\n // Delete selection\n newValue = value.slice(0, start) + value.slice(end);\n } else {\n return 'Delete: cursor at end, nothing to delete';\n }\n\n // Use native input value setter to work with React/Vue controlled inputs\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n element instanceof HTMLTextAreaElement\n ? HTMLTextAreaElement.prototype\n : HTMLInputElement.prototype,\n 'value'\n )?.set;\n\n if (nativeInputValueSetter) {\n nativeInputValueSetter.call(element, newValue);\n } else {\n element.value = newValue;\n }\n\n // Dispatch input event for React/Vue to pick up the change\n element.dispatchEvent(new Event('input', { bubbles: true }));\n element.dispatchEvent(new Event('change', { bubbles: true }));\n\n // Maintain cursor position\n element.setSelectionRange(start, start);\n\n return `Delete: deleted character, value is now \"${newValue}\"`;\n }\n return 'Delete: dispatched event';\n }\n\n default:\n // For other keys, just dispatch events (already done above)\n return null;\n }\n }\n\n private uploadFile(_args: UploadFileParams): ToolExecutionResult {\n return { success: false, result: '', error: 'File upload not supported via script' };\n }\n\n private closeTab(): ToolExecutionResult {\n window.close();\n return { success: true, result: 'Attempted close' };\n }\n\n private switchTab(args: SwitchTabParams): ToolExecutionResult {\n const tab_index = args.tab_index as number;\n if (tab_index === undefined) {\n return { success: false, result: '', error: 'tab_index is required' };\n }\n // Tab switching not supported in browser context\n return { success: false, result: '', error: 'Tab switching not supported' };\n }\n\n private done(args: DoneParams): ToolExecutionResult {\n const success = args.success as boolean;\n if (success === undefined) {\n return { success: false, result: '', error: 'success parameter is required' };\n }\n const message = args.message as string | undefined;\n const resultMessage = message || (success ? 'Task completed' : 'Task failed');\n return { success: true, result: resultMessage };\n }\n\n private getHtml(): ToolExecutionResult {\n try {\n const html = domService.getSnapshotHtml();\n return { success: true, result: html };\n } catch (error) {\n return { success: false, result: '', error: String(error) };\n }\n }\n\n private async getScreenshot(): Promise<ToolExecutionResult> {\n try {\n const stream = await startScreenShare();\n if (!stream) return { success: false, result: '', error: 'Failed to get stream' };\n\n const video = document.createElement('video');\n video.srcObject = stream;\n video.autoplay = true;\n video.style.display = 'none';\n document.body.appendChild(video);\n\n await new Promise<void>((resolve) => {\n video.onloadeddata = () => resolve();\n });\n\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(video, 0, 0);\n\n const base64 = canvas.toDataURL('image/jpeg', 0.75);\n\n video.remove();\n // Don't stop stream as user might want to keep sharing,\n // or we should stop if it was just for screenshot?\n // The agent usually requests screenshot then keeps going.\n // But if we just requested permissions for this, maybe we should stop?\n // Original implementation reused active stream. `startScreenShare` handles reuse.\n\n return { success: true, result: base64 };\n } catch (error) {\n return { success: false, result: '', error: String(error) };\n }\n }\n}\n\nexport const toolExecutionService = ToolExecutionService.getInstance();\n","/**\n * Development-only service for testing DOM mismatch detection and recovery.\n * This service provides methods to simulate DOM changes and agent commands.\n */\n\nimport { domService, type ElementFingerprint, type ValidationResult } from './DomService';\nimport { toolExecutionService } from './ToolService';\n\nexport interface TestResult {\n command: string;\n index: number;\n validation: ValidationResult;\n outcome: 'executed' | 'recovered' | 'failed';\n details: string;\n timestamp: Date;\n}\n\nexport interface ValidationLogEntry {\n timestamp: Date;\n action: string;\n originalIndex: number;\n validation: ValidationResult;\n recoveryAction?: string;\n}\n\nexport interface ScenarioResult {\n scenarioId: string;\n scenarioName: string;\n steps: TestResult[];\n passed: boolean;\n summary: string;\n}\n\nclass DevTestService {\n private static instance: DevTestService;\n private validationLog: ValidationLogEntry[] = [];\n private lastTestResult: TestResult | null = null;\n\n private constructor() {}\n\n static getInstance(): DevTestService {\n if (!DevTestService.instance) {\n DevTestService.instance = new DevTestService();\n }\n return DevTestService.instance;\n }\n\n // ============================================================\n // Category 1: Index Shift Simulations\n // ============================================================\n\n /**\n * Insert a new interactable element before the element at the given index\n * This will shift all subsequent indices\n */\n insertElementBefore(index: number, count: number = 1): HTMLElement[] {\n const elements = domService.getAllFingerprints();\n const targetEntry = elements.find(([idx]) => idx === index);\n\n if (!targetEntry) {\n console.warn(`[DevTestService] No element at index ${index}`);\n return [];\n }\n\n const targetElement = domService.getElementByIndex(index);\n if (!targetElement) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return [];\n }\n\n const insertedElements: HTMLElement[] = [];\n\n for (let i = 0; i < count; i++) {\n const newButton = document.createElement('button');\n newButton.textContent = `Inserted Button ${i + 1}`;\n newButton.setAttribute('data-test-inserted', 'true');\n newButton.style.cssText =\n 'padding: 8px 16px; margin: 4px; background: #ff6b6b; color: white; border: none; border-radius: 4px;';\n\n targetElement.parentElement?.insertBefore(newButton, targetElement);\n insertedElements.push(newButton);\n }\n\n console.log(`[DevTestService] Inserted ${count} element(s) before index ${index}`);\n return insertedElements;\n }\n\n /**\n * Insert a new interactable element after the element at the given index\n */\n insertElementAfter(index: number): HTMLElement | null {\n const targetElement = domService.getElementByIndex(index);\n if (!targetElement) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return null;\n }\n\n const newButton = document.createElement('button');\n newButton.textContent = 'Inserted Button (After)';\n newButton.setAttribute('data-test-inserted', 'true');\n newButton.style.cssText =\n 'padding: 8px 16px; margin: 4px; background: #ff6b6b; color: white; border: none; border-radius: 4px;';\n\n targetElement.parentElement?.insertBefore(newButton, targetElement.nextSibling);\n\n console.log(`[DevTestService] Inserted element after index ${index}`);\n return newButton;\n }\n\n /**\n * Remove the element at the given index\n */\n removeElement(index: number): boolean {\n const targetElement = domService.getElementByIndex(index);\n if (!targetElement) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return false;\n }\n\n targetElement.remove();\n console.log(`[DevTestService] Removed element at index ${index}`);\n return true;\n }\n\n /**\n * Remove multiple elements by their indices\n */\n removeMultipleElements(indices: number[]): number {\n let removed = 0;\n // Sort indices in descending order to avoid index shifting during removal\n const sortedIndices = [...indices].sort((a, b) => b - a);\n\n for (const index of sortedIndices) {\n if (this.removeElement(index)) {\n removed++;\n }\n }\n\n return removed;\n }\n\n // ============================================================\n // Category 2: SPA Re-render Simulations\n // ============================================================\n\n /**\n * Simulate a component re-render by replacing the element with a new one\n * This creates a new DOM node with the same attributes\n */\n simulateRerender(index: number): HTMLElement | null {\n const targetElement = domService.getElementByIndex(index);\n if (!targetElement) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return null;\n }\n\n // Clone the element (creates new DOM node)\n const newElement = targetElement.cloneNode(true) as HTMLElement;\n newElement.setAttribute('data-test-rerendered', 'true');\n\n // Replace the original element\n targetElement.parentElement?.replaceChild(newElement, targetElement);\n\n console.log(`[DevTestService] Simulated re-render of element at index ${index}`);\n return newElement;\n }\n\n /**\n * Simulate a state change that re-renders a container\n */\n simulateStateChange(containerSelector: string = 'body'): number {\n const container = document.querySelector(containerSelector);\n if (!container) {\n console.warn(`[DevTestService] Container not found: ${containerSelector}`);\n return 0;\n }\n\n // Get all interactable elements in the container\n const buttons = container.querySelectorAll('button, a, input, select');\n let replaced = 0;\n\n buttons.forEach((element) => {\n if (element instanceof HTMLElement) {\n const newElement = element.cloneNode(true) as HTMLElement;\n newElement.setAttribute('data-test-state-changed', 'true');\n element.parentElement?.replaceChild(newElement, element);\n replaced++;\n }\n });\n\n console.log(`[DevTestService] Simulated state change, replaced ${replaced} elements`);\n return replaced;\n }\n\n /**\n * Simulate navigation by replacing page content\n */\n simulateNavigation(): void {\n const main = document.querySelector('main') || document.body;\n\n // Store original content\n const originalContent = main.innerHTML;\n\n // Replace with new content\n main.innerHTML = `\n <div data-test-navigated=\"true\" style=\"padding: 20px;\">\n <h1>Navigated Page</h1>\n <p>This simulates a SPA navigation event.</p>\n <button id=\"nav-btn-1\">Navigation Button 1</button>\n <button id=\"nav-btn-2\">Navigation Button 2</button>\n <input type=\"text\" placeholder=\"Navigation Input\" />\n <button onclick=\"this.closest('[data-test-navigated]').outerHTML='${originalContent.replace(/'/g, \"\\\\'\")}'\" style=\"margin-top: 20px;\">\n Restore Original\n </button>\n </div>\n `;\n\n console.log('[DevTestService] Simulated navigation');\n }\n\n /**\n * Reorder elements in a list container\n */\n reorderList(containerSelector: string): number {\n const container = document.querySelector(containerSelector);\n if (!container) {\n console.warn(`[DevTestService] Container not found: ${containerSelector}`);\n return 0;\n }\n\n const children = Array.from(container.children);\n if (children.length < 2) {\n console.warn('[DevTestService] Not enough children to reorder');\n return 0;\n }\n\n // Shuffle children\n for (let i = children.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [children[i], children[j]] = [children[j], children[i]];\n }\n\n // Re-append in new order\n children.forEach((child) => container.appendChild(child));\n\n console.log(`[DevTestService] Reordered ${children.length} elements`);\n return children.length;\n }\n\n // ============================================================\n // Category 3: Lazy Loading Simulations\n // ============================================================\n\n /**\n * Inject content after a delay\n */\n async injectDelayedContent(delayMs: number = 2000): Promise<HTMLElement[]> {\n return new Promise((resolve) => {\n setTimeout(() => {\n const container = document.createElement('div');\n container.setAttribute('data-test-delayed', 'true');\n container.style.cssText =\n 'padding: 10px; background: #e8f5e9; margin: 10px 0; border-radius: 4px;';\n container.innerHTML = `\n <p>Delayed content loaded!</p>\n <button id=\"delayed-btn-1\">Delayed Button 1</button>\n <button id=\"delayed-btn-2\">Delayed Button 2</button>\n <input type=\"text\" placeholder=\"Delayed Input\" />\n `;\n\n document.body.appendChild(container);\n const elements = Array.from(container.querySelectorAll('button, input')) as HTMLElement[];\n\n console.log(`[DevTestService] Injected delayed content after ${delayMs}ms`);\n resolve(elements);\n }, delayMs);\n });\n }\n\n /**\n * Simulate infinite scroll by adding elements at the end\n */\n simulateInfiniteScroll(count: number = 5): HTMLElement[] {\n const container = document.createElement('div');\n container.setAttribute('data-test-infinite-scroll', 'true');\n container.style.cssText =\n 'padding: 10px; background: #fff3e0; margin: 10px 0; border-radius: 4px;';\n\n const elements: HTMLElement[] = [];\n\n for (let i = 0; i < count; i++) {\n const item = document.createElement('div');\n item.innerHTML = `\n <span>Scroll Item ${i + 1}</span>\n <button>Action ${i + 1}</button>\n `;\n container.appendChild(item);\n elements.push(item.querySelector('button') as HTMLElement);\n }\n\n document.body.appendChild(container);\n console.log(`[DevTestService] Added ${count} infinite scroll items`);\n return elements;\n }\n\n /**\n * Replace a skeleton loader with real content\n */\n replaceSkeleton(skeletonIndex: number): HTMLElement | null {\n const skeleton = domService.getElementByIndex(skeletonIndex);\n if (!skeleton) {\n console.warn(`[DevTestService] No skeleton at index ${skeletonIndex}`);\n return null;\n }\n\n const realContent = document.createElement('div');\n realContent.setAttribute('data-test-skeleton-replaced', 'true');\n realContent.innerHTML = `\n <button>Real Content Button</button>\n <input type=\"text\" placeholder=\"Real Input\" />\n `;\n\n skeleton.parentElement?.replaceChild(realContent, skeleton);\n console.log(`[DevTestService] Replaced skeleton at index ${skeletonIndex}`);\n return realContent.querySelector('button') as HTMLElement;\n }\n\n // ============================================================\n // Category 4: Selector Fragility Simulations\n // ============================================================\n\n /**\n * Insert a sibling of the same type to break nth-of-type selectors\n */\n insertSameSibling(index: number): HTMLElement | null {\n const targetElement = domService.getElementByIndex(index);\n if (!targetElement) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return null;\n }\n\n const newElement = document.createElement(targetElement.tagName.toLowerCase());\n newElement.textContent = 'Same Type Sibling';\n newElement.setAttribute('data-test-same-sibling', 'true');\n if (targetElement.tagName === 'BUTTON') {\n (newElement as HTMLButtonElement).style.cssText = 'padding: 8px 16px; margin: 4px;';\n }\n\n targetElement.parentElement?.insertBefore(newElement, targetElement);\n console.log(`[DevTestService] Inserted same-type sibling before index ${index}`);\n return newElement as HTMLElement;\n }\n\n /**\n * Change the class name of an element\n */\n changeClassName(index: number, newClass: string): boolean {\n const element = domService.getElementByIndex(index);\n if (!element) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return false;\n }\n\n element.className = newClass;\n element.setAttribute('data-test-class-changed', 'true');\n console.log(`[DevTestService] Changed class of element at index ${index} to \"${newClass}\"`);\n return true;\n }\n\n /**\n * Wrap an element in a new parent div, changing its DOM path\n */\n wrapInParent(index: number): HTMLElement | null {\n const element = domService.getElementByIndex(index);\n if (!element) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return null;\n }\n\n const wrapper = document.createElement('div');\n wrapper.setAttribute('data-test-wrapper', 'true');\n wrapper.style.cssText = 'padding: 10px; border: 2px dashed #9c27b0; margin: 5px;';\n\n element.parentElement?.insertBefore(wrapper, element);\n wrapper.appendChild(element);\n\n console.log(`[DevTestService] Wrapped element at index ${index} in new parent`);\n return wrapper;\n }\n\n /**\n * Add a duplicate ID to cause selector ambiguity\n */\n addDuplicateId(index: number): HTMLElement | null {\n const element = domService.getElementByIndex(index);\n if (!element?.id) {\n console.warn(`[DevTestService] Element at index ${index} has no ID`);\n return null;\n }\n\n const duplicate = document.createElement('div');\n duplicate.id = element.id; // Same ID!\n duplicate.textContent = `Duplicate ID: ${element.id}`;\n duplicate.setAttribute('data-test-duplicate-id', 'true');\n duplicate.style.cssText = 'padding: 10px; background: #ffcdd2; margin: 5px;';\n\n document.body.insertBefore(duplicate, document.body.firstChild);\n console.log(`[DevTestService] Added duplicate ID \"${element.id}\"`);\n return duplicate;\n }\n\n // ============================================================\n // Category 5: Hidden Elements Simulations\n // ============================================================\n\n /**\n * Create and show a modal with buttons\n */\n showModal(): HTMLElement {\n const modal = document.createElement('div');\n modal.setAttribute('data-test-modal', 'true');\n modal.style.cssText = `\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n padding: 20px;\n border-radius: 8px;\n box-shadow: 0 4px 20px rgba(0,0,0,0.3);\n z-index: 10000;\n `;\n modal.innerHTML = `\n <h3>Test Modal</h3>\n <p>These buttons were not indexed initially.</p>\n <button id=\"modal-btn-1\">Modal Button 1</button>\n <button id=\"modal-btn-2\">Modal Button 2</button>\n <button onclick=\"this.closest('[data-test-modal]').remove()\" style=\"margin-top: 10px;\">Close Modal</button>\n `;\n\n document.body.appendChild(modal);\n console.log('[DevTestService] Showed modal with buttons');\n return modal;\n }\n\n /**\n * Expand a dropdown to show options\n */\n expandDropdown(index: number): HTMLElement | null {\n const element = domService.getElementByIndex(index);\n if (!element) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return null;\n }\n\n const dropdown = document.createElement('div');\n dropdown.setAttribute('data-test-dropdown', 'true');\n dropdown.style.cssText = `\n position: absolute;\n background: white;\n border: 1px solid #ccc;\n border-radius: 4px;\n box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n z-index: 1000;\n `;\n dropdown.innerHTML = `\n <button style=\"display: block; width: 100%; padding: 8px; border: none; background: none; cursor: pointer;\">Option 1</button>\n <button style=\"display: block; width: 100%; padding: 8px; border: none; background: none; cursor: pointer;\">Option 2</button>\n <button style=\"display: block; width: 100%; padding: 8px; border: none; background: none; cursor: pointer;\">Option 3</button>\n `;\n\n element.parentElement?.appendChild(dropdown);\n console.log(`[DevTestService] Expanded dropdown at index ${index}`);\n return dropdown;\n }\n\n // ============================================================\n // Category 6: Race Condition Simulations\n // ============================================================\n\n /**\n * Perform rapid DOM changes\n */\n rapidFireChanges(count: number = 5): void {\n for (let i = 0; i < count; i++) {\n setTimeout(() => {\n const btn = document.createElement('button');\n btn.textContent = `Rapid ${i + 1}`;\n btn.setAttribute('data-test-rapid', 'true');\n document.body.appendChild(btn);\n\n setTimeout(() => btn.remove(), 100);\n }, i * 50);\n }\n\n console.log(`[DevTestService] Started ${count} rapid changes`);\n }\n\n // ============================================================\n // Category 7: iFrame & Shadow DOM Simulations\n // ============================================================\n\n /**\n * Create an iframe with a button inside\n */\n createIframeWithButton(): HTMLIFrameElement {\n const iframe = document.createElement('iframe');\n iframe.setAttribute('data-test-iframe', 'true');\n iframe.style.cssText = 'width: 300px; height: 100px; border: 2px solid #2196f3;';\n\n document.body.appendChild(iframe);\n\n // Write content to iframe\n const iframeDoc = iframe.contentDocument || iframe.contentWindow?.document;\n if (iframeDoc) {\n iframeDoc.body.innerHTML = `\n <button id=\"iframe-button\" style=\"padding: 10px; margin: 10px;\">\n Button Inside iFrame\n </button>\n `;\n }\n\n console.log('[DevTestService] Created iframe with button');\n return iframe;\n }\n\n /**\n * Create a custom element with Shadow DOM\n */\n createShadowDomElement(): HTMLElement {\n // Define custom element if not already defined\n if (!window.customElements.get('test-shadow-host')) {\n window.customElements.define(\n 'test-shadow-host',\n class extends HTMLElement {\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n shadow.innerHTML = `\n <style>\n button { padding: 10px; background: #9c27b0; color: white; border: none; border-radius: 4px; }\n </style>\n <div>\n <button id=\"shadow-button\">Button in Shadow DOM</button>\n </div>\n `;\n }\n }\n );\n }\n\n const host = document.createElement('test-shadow-host');\n host.setAttribute('data-test-shadow', 'true');\n document.body.appendChild(host);\n\n console.log('[DevTestService] Created Shadow DOM element');\n return host;\n }\n\n // ============================================================\n // Change Element Content\n // ============================================================\n\n /**\n * Change the text content of an element\n */\n changeElementContent(index: number, newText: string): boolean {\n const element = domService.getElementByIndex(index);\n if (!element) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return false;\n }\n\n element.textContent = newText;\n element.setAttribute('data-test-content-changed', 'true');\n console.log(`[DevTestService] Changed content of element at index ${index} to \"${newText}\"`);\n return true;\n }\n\n /**\n * Hide an element (make it non-interactable)\n */\n hideElement(index: number): boolean {\n const element = domService.getElementByIndex(index);\n if (!element) {\n console.warn(`[DevTestService] Could not find element at index ${index}`);\n return false;\n }\n\n element.style.display = 'none';\n element.setAttribute('data-test-hidden', 'true');\n console.log(`[DevTestService] Hid element at index ${index}`);\n return true;\n }\n\n // ============================================================\n // Test Execution\n // ============================================================\n\n /**\n * Simulate an agent command and track the result\n */\n async simulateAgentCommand(tool: string, args: Record<string, unknown>): Promise<TestResult> {\n const index = args.index as number;\n\n // Execute the tool\n const result = await toolExecutionService.executeTool(tool, args, 'do', '');\n\n // Get validation info\n const { validation } = domService.getValidatedElement(index);\n\n let outcome: 'executed' | 'recovered' | 'failed';\n let details: string;\n\n if (result.success) {\n if (result.recoveryInfo) {\n outcome = 'recovered';\n details = `Recovered from index ${result.recoveryInfo.originalIndex} to ${result.recoveryInfo.recoveredIndex}`;\n } else {\n outcome = 'executed';\n details = result.result;\n }\n } else {\n outcome = 'failed';\n details = result.error || 'Unknown error';\n }\n\n const testResult: TestResult = {\n command: tool,\n index,\n validation,\n outcome,\n details,\n timestamp: new Date(),\n };\n\n this.lastTestResult = testResult;\n this.addToLog({\n timestamp: new Date(),\n action: `${tool} on index ${index}`,\n originalIndex: index,\n validation,\n recoveryAction: outcome === 'recovered' ? details : undefined,\n });\n\n return testResult;\n }\n\n /**\n * Run a predefined test scenario\n */\n async runScenario(scenarioId: string): Promise<ScenarioResult> {\n const scenarios: Record<string, () => Promise<ScenarioResult>> = {\n 'index-shift-insert': async () => this.runIndexShiftInsertScenario(),\n 'index-shift-remove': async () => this.runIndexShiftRemoveScenario(),\n 'element-content-change': async () => this.runContentChangeScenario(),\n 'spa-rerender': async () => this.runSpaRerenderScenario(),\n };\n\n const scenarioFn = scenarios[scenarioId];\n if (!scenarioFn) {\n return {\n scenarioId,\n scenarioName: 'Unknown',\n steps: [],\n passed: false,\n summary: `Unknown scenario: ${scenarioId}`,\n };\n }\n\n return scenarioFn();\n }\n\n private async runIndexShiftInsertScenario(): Promise<ScenarioResult> {\n const steps: TestResult[] = [];\n\n // Step 1: Index the DOM\n domService.indexInteractableElements();\n\n // Step 2: Get a target index (e.g., 3)\n const targetIndex = 3;\n const fingerprint = domService.getFingerprint(targetIndex);\n\n if (!fingerprint) {\n return {\n scenarioId: 'index-shift-insert',\n scenarioName: 'Index Shift - Insert',\n steps: [],\n passed: false,\n summary: 'No element at target index',\n };\n }\n\n // Step 3: Insert element before target\n this.insertElementBefore(targetIndex, 2);\n\n // Step 4: Try to click the original target\n const result = await this.simulateAgentCommand('click_element', { index: targetIndex });\n steps.push(result);\n\n return {\n scenarioId: 'index-shift-insert',\n scenarioName: 'Index Shift - Insert',\n steps,\n passed: result.outcome !== 'failed',\n summary:\n result.outcome === 'recovered'\n ? 'Successfully recovered element after index shift'\n : result.outcome === 'executed'\n ? 'Element found at original index (unexpected)'\n : 'Failed to recover element',\n };\n }\n\n private async runIndexShiftRemoveScenario(): Promise<ScenarioResult> {\n const steps: TestResult[] = [];\n\n domService.indexInteractableElements();\n const targetIndex = 2;\n\n // Remove the target element\n this.removeElement(targetIndex);\n\n // Try to click it\n const result = await this.simulateAgentCommand('click_element', { index: targetIndex });\n steps.push(result);\n\n return {\n scenarioId: 'index-shift-remove',\n scenarioName: 'Index Shift - Remove',\n steps,\n passed: result.outcome === 'failed' && result.details.includes('DOM_CHANGED'),\n summary:\n result.outcome === 'failed'\n ? 'Correctly detected element removal'\n : 'Unexpectedly succeeded',\n };\n }\n\n private async runContentChangeScenario(): Promise<ScenarioResult> {\n const steps: TestResult[] = [];\n\n domService.indexInteractableElements();\n const targetIndex = 1;\n\n // Change content slightly\n this.changeElementContent(targetIndex, 'Modified Button Text');\n\n const result = await this.simulateAgentCommand('click_element', { index: targetIndex });\n steps.push(result);\n\n return {\n scenarioId: 'element-content-change',\n scenarioName: 'Element Content Change',\n steps,\n passed: result.outcome === 'executed' || result.outcome === 'recovered',\n summary: `Content change handled: ${result.outcome}`,\n };\n }\n\n private async runSpaRerenderScenario(): Promise<ScenarioResult> {\n const steps: TestResult[] = [];\n\n domService.indexInteractableElements();\n const targetIndex = 0;\n\n // Simulate re-render\n this.simulateRerender(targetIndex);\n\n const result = await this.simulateAgentCommand('click_element', { index: targetIndex });\n steps.push(result);\n\n return {\n scenarioId: 'spa-rerender',\n scenarioName: 'SPA Re-render',\n steps,\n passed: result.outcome === 'recovered' || result.outcome === 'executed',\n summary: `Re-render handled: ${result.outcome}`,\n };\n }\n\n /**\n * Run all test scenarios\n */\n async runAllScenarios(): Promise<ScenarioResult[]> {\n const scenarioIds = [\n 'index-shift-insert',\n 'index-shift-remove',\n 'element-content-change',\n 'spa-rerender',\n ];\n\n const results: ScenarioResult[] = [];\n\n for (const id of scenarioIds) {\n // Refresh DOM between scenarios\n this.cleanupTestElements();\n const result = await this.runScenario(id);\n results.push(result);\n }\n\n return results;\n }\n\n // ============================================================\n // Utility Methods\n // ============================================================\n\n /**\n * Get the last test result\n */\n getLastTestResult(): TestResult | null {\n return this.lastTestResult;\n }\n\n /**\n * Get the validation log\n */\n getValidationLog(): ValidationLogEntry[] {\n return [...this.validationLog];\n }\n\n /**\n * Clear the validation log\n */\n clearLog(): void {\n this.validationLog = [];\n }\n\n private addToLog(entry: ValidationLogEntry): void {\n this.validationLog.push(entry);\n // Keep only last 100 entries\n if (this.validationLog.length > 100) {\n this.validationLog = this.validationLog.slice(-100);\n }\n }\n\n /**\n * Clean up test elements from the DOM\n */\n cleanupTestElements(): void {\n const testElements = document.querySelectorAll(\n '[data-test-inserted], [data-test-rerendered], [data-test-state-changed], ' +\n '[data-test-navigated], [data-test-delayed], [data-test-infinite-scroll], ' +\n '[data-test-skeleton-replaced], [data-test-same-sibling], [data-test-class-changed], ' +\n '[data-test-wrapper], [data-test-duplicate-id], [data-test-modal], [data-test-dropdown], ' +\n '[data-test-rapid], [data-test-iframe], [data-test-shadow], [data-test-content-changed], ' +\n '[data-test-hidden]'\n );\n\n testElements.forEach((el) => el.remove());\n console.log(`[DevTestService] Cleaned up ${testElements.length} test elements`);\n }\n\n /**\n * Get all indexed elements with their fingerprints\n */\n getIndexedElements(): Array<{\n index: number;\n fingerprint: ElementFingerprint;\n element: HTMLElement | null;\n }> {\n const fingerprints = domService.getAllFingerprints();\n\n return fingerprints.map(([index, fingerprint]) => ({\n index,\n fingerprint,\n element: domService.getElementByIndex(index),\n }));\n }\n\n /**\n * Force a validation check on a specific index\n */\n forceValidation(index: number): ValidationResult {\n const { validation } = domService.getValidatedElement(index);\n return validation;\n }\n}\n\nexport const devTestService = DevTestService.getInstance();\n","/**\n * Message Content Utilities\n *\n * Centralized utilities for message content transformation, including:\n * - Removing thinking markers\n */\n\nimport type { ChatMessage, InstructionType } from '../types';\n\n/**\n * Remove all __THINKING__ markers from message content\n */\nexport function removeThinkingMarkers(content: string): string {\n return content.replace(/__THINKING__/g, '');\n}\n\n/**\n * Remove thinking marker from end of content (for display)\n */\nexport function removeThinkingMarkerFromEnd(content: string): string {\n return content.replace(/\\n\\n__THINKING__$/, '').replace(/__THINKING__/g, '');\n}\n\n/**\n * Check if content has thinking marker\n */\nexport function hasThinkingMarker(content: string): boolean {\n return content.includes('__THINKING__');\n}\n\n/**\n * Add thinking marker to content\n */\nexport function addThinkingMarker(content: string): string {\n if (hasThinkingMarker(content)) return content;\n return `${content}\\n\\n__THINKING__`;\n}\n\n/**\n * Find the index of the last task message (agent message that's not system/placeholder/screen access)\n */\nexport function findTaskMessageIndex(messages: ChatMessage[]): number {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (\n msg.sender === 'agent' &&\n !msg.isSystemMessage &&\n !msg.isScreenAccessRequest &&\n !msg.isPlaceholder\n ) {\n return i;\n }\n }\n return -1;\n}\n/**\n * Message Finder Utility\n *\n * Centralized logic for finding messages in the chat that should receive\n * progress updates, tool call results, or errors. Eliminates duplicate\n * message finding code across websocket handlers.\n */\n\n// import type { InstructionType } from '../types';\n// Remove self import\n// // import { findTaskMessageIndex } from './messageContentUtils';\n\nexport interface FindMessageOptions {\n messages: ChatMessage[];\n isTaskRunning: boolean;\n currentMode: InstructionType;\n preferPlaceholder?: boolean;\n requireContent?: boolean;\n}\n\n/**\n * Helper function to check if a message matches the criteria for progress updates\n */\nfunction matchesProgressCriteria(\n msg: ChatMessage,\n isTaskRunning: boolean,\n currentMode: InstructionType,\n _preferPlaceholder: boolean | undefined,\n requireContent: boolean | undefined,\n checkMode: boolean\n): boolean {\n // Basic sender and type checks\n if (msg.sender !== 'agent' || msg.isSystemMessage || msg.isScreenAccessRequest) {\n return false;\n }\n\n // For active show/do tasks, check mode matching\n // BUT: Be lenient for placeholders - allow mode mismatch if placeholder mode is undefined\n // This handles race conditions where tool calls arrive before mode is set\n if (checkMode && isTaskRunning && (currentMode === 'show' || currentMode === 'do')) {\n // For placeholders, allow mode mismatch if mode is undefined (will be set later)\n // For non-placeholders, require strict mode matching\n if (msg.isPlaceholder) {\n // Placeholder: allow if mode matches OR mode is undefined\n if (msg.mode !== undefined && msg.mode !== currentMode) {\n return false;\n }\n } else {\n // Non-placeholder: require strict mode matching\n if (msg.mode !== currentMode) {\n return false;\n }\n }\n }\n\n // Content requirement check\n // With object-based progress, content might be empty but progressSteps present\n if (requireContent) {\n const hasText = msg.content.trim().length > 0;\n const hasProgress = msg.parts && msg.parts.length > 0;\n if (!hasText && !hasProgress) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Find the message that should receive progress updates\n * ALWAYS returns the LAST (most recent) matching message by searching backwards.\n * Priority order for active show/do tasks:\n * 1. Placeholder message in show/do mode that has content (the \"Let me try this\" message)\n * 2. Placeholder message in show/do mode (even without content yet)\n * 3. Non-placeholder agent message in show/do mode\n * For other cases:\n * 4. Last placeholder message\n * 5. Last task message\n * 6. Any agent message as fallback\n */\nexport function findMessageForProgress(options: FindMessageOptions): {\n index: number;\n message: ChatMessage;\n} | null {\n const { messages, isTaskRunning, currentMode, preferPlaceholder, requireContent } = options;\n console.log('[MessageFinder] [FLOW] findMessageForProgress called', {\n totalMessages: messages.length,\n isTaskRunning,\n currentMode,\n preferPlaceholder,\n requireContent,\n messageIds: messages.map((m, i) => ({\n index: i,\n id: m.id,\n isPlaceholder: m.isPlaceholder,\n sender: m.sender,\n mode: m.mode,\n })),\n });\n let taskMessageIndex = -1;\n let checkMode = false;\n\n // For active show/do tasks, find the message that matches the current mode and task state\n if (isTaskRunning && (currentMode === 'show' || currentMode === 'do')) {\n checkMode = true;\n\n // Priority 1: Find LAST placeholder with content in matching mode\n console.log(\n '[MessageFinder] [FLOW] Searching Priority 1: Placeholder with content in matching mode'\n );\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n const matchesCriteria = matchesProgressCriteria(\n msg,\n isTaskRunning,\n currentMode,\n preferPlaceholder,\n requireContent,\n checkMode\n );\n const isPlaceholder = msg.isPlaceholder;\n const hasContent =\n !requireContent || msg.content.trim().length > 0 || (msg.parts && msg.parts.length > 0);\n\n console.log('[MessageFinder] [FLOW] Checking message (Priority 1)', {\n index: i,\n messageId: msg.id,\n sender: msg.sender,\n isPlaceholder,\n mode: msg.mode,\n currentMode,\n matchesCriteria,\n hasContent,\n contentLength: msg.content.trim().length,\n partsCount: msg.parts?.length,\n willMatch: matchesCriteria && isPlaceholder && hasContent,\n });\n\n if (matchesCriteria && isPlaceholder && hasContent) {\n taskMessageIndex = i;\n console.log('[MessageFinder] [FLOW] SELECTED message (Priority 1)', {\n index: taskMessageIndex,\n messageId: msg.id,\n reason: 'Placeholder with content in matching mode',\n });\n break;\n }\n }\n\n // Priority 2: Find LAST placeholder in matching mode (even without content)\n if (taskMessageIndex < 0 && !requireContent) {\n console.log(\n '[MessageFinder] [FLOW] Searching Priority 2: Placeholder in matching mode (no content requirement)'\n );\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n const matchesCriteria = matchesProgressCriteria(\n msg,\n isTaskRunning,\n currentMode,\n preferPlaceholder,\n requireContent,\n checkMode\n );\n const isPlaceholder = msg.isPlaceholder;\n\n console.log('[MessageFinder] [FLOW] Checking message (Priority 2)', {\n index: i,\n messageId: msg.id,\n sender: msg.sender,\n isPlaceholder,\n mode: msg.mode,\n currentMode,\n matchesCriteria,\n willMatch: matchesCriteria && isPlaceholder,\n });\n\n if (matchesCriteria && isPlaceholder) {\n taskMessageIndex = i;\n console.log('[MessageFinder] [FLOW] SELECTED message (Priority 2)', {\n index: taskMessageIndex,\n messageId: msg.id,\n reason: 'Placeholder in matching mode',\n });\n break;\n }\n }\n }\n\n // Priority 3: Find LAST non-placeholder agent message in matching mode\n if (taskMessageIndex < 0) {\n console.log(\n '[MessageFinder] [FLOW] Searching Priority 3: Non-placeholder agent message in matching mode'\n );\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n const matchesCriteria = matchesProgressCriteria(\n msg,\n isTaskRunning,\n currentMode,\n preferPlaceholder,\n requireContent,\n checkMode\n );\n const isPlaceholder = msg.isPlaceholder;\n\n console.log('[MessageFinder] [FLOW] Checking message (Priority 3)', {\n index: i,\n messageId: msg.id,\n sender: msg.sender,\n isPlaceholder,\n mode: msg.mode,\n currentMode,\n matchesCriteria,\n willMatch: matchesCriteria && !isPlaceholder,\n });\n\n if (matchesCriteria && !isPlaceholder) {\n taskMessageIndex = i;\n console.log('[MessageFinder] [FLOW] SELECTED message (Priority 3)', {\n index: taskMessageIndex,\n messageId: msg.id,\n reason: 'Non-placeholder agent message in matching mode',\n });\n break;\n }\n }\n }\n }\n\n // Fallback: If not in active task or no matching message found, use general logic\n // This is critical - tool calls can arrive before isTaskRunning is set to true\n if (taskMessageIndex < 0) {\n console.log('[MessageFinder] [FLOW] Using fallback logic (task not running or no match found)');\n // Priority 1: Check LAST placeholder message (preferred for progress updates)\n // Don't require mode matching or content when task isn't running yet\n // ALWAYS check for placeholders first, regardless of preferPlaceholder flag\n // This ensures we find existing placeholders before creating new ones\n console.log('[MessageFinder] [FLOW] Searching Fallback Priority 1: Placeholder with content');\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n const isAgent = msg.sender === 'agent';\n const isPlaceholder = msg.isPlaceholder;\n const notSystem = !msg.isSystemMessage;\n const notScreenAccess = !msg.isScreenAccessRequest;\n const hasContent =\n !requireContent || msg.content.trim().length > 0 || (msg.parts && msg.parts.length > 0);\n\n console.log('[MessageFinder] [FLOW] Checking message (Fallback Priority 1)', {\n index: i,\n messageId: msg.id,\n isAgent,\n isPlaceholder,\n notSystem,\n notScreenAccess,\n hasContent,\n contentLength: msg.content.trim().length,\n willMatch: isAgent && isPlaceholder && notSystem && notScreenAccess && hasContent,\n });\n\n if (isAgent && isPlaceholder && notSystem && notScreenAccess && hasContent) {\n taskMessageIndex = i;\n console.log('[MessageFinder] [FLOW] SELECTED message (Fallback Priority 1)', {\n index: taskMessageIndex,\n messageId: msg.id,\n mode: msg.mode,\n currentMode,\n reason: 'Placeholder with content in fallback',\n });\n break;\n }\n }\n\n // Priority 2: If still not found, try placeholder without content requirement\n if (taskMessageIndex < 0 && !requireContent) {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (\n msg.sender === 'agent' &&\n msg.isPlaceholder &&\n !msg.isSystemMessage &&\n !msg.isScreenAccessRequest\n ) {\n taskMessageIndex = i;\n console.log('[MessageFinder] [FLOW] Found placeholder in fallback (Priority 2)', {\n index: taskMessageIndex,\n messageId: msg.id,\n mode: msg.mode,\n currentMode,\n });\n break;\n }\n }\n }\n\n // Priority 3: Try to find the last task message (non-placeholder agent message)\n if (taskMessageIndex < 0) {\n taskMessageIndex = findTaskMessageIndex(messages);\n if (taskMessageIndex >= 0) {\n console.log('[MessageFinder] [FLOW] Found task message in fallback (Priority 3)', {\n index: taskMessageIndex,\n messageId: messages[taskMessageIndex].id,\n });\n }\n }\n\n // Priority 4: Last resort - find ANY agent message (ensures we always find something if possible)\n if (taskMessageIndex < 0) {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (msg.sender === 'agent' && !msg.isSystemMessage && !msg.isScreenAccessRequest) {\n taskMessageIndex = i;\n console.log('[MessageFinder] [FLOW] Found any agent message in fallback (Priority 4)', {\n index: taskMessageIndex,\n messageId: msg.id,\n });\n break;\n }\n }\n }\n }\n\n if (taskMessageIndex >= 0) {\n const found = {\n index: taskMessageIndex,\n message: messages[taskMessageIndex],\n };\n console.log('[MessageFinder] [FLOW] Found message', {\n index: found.index,\n messageId: found.message.id,\n isPlaceholder: found.message.isPlaceholder,\n sender: found.message.sender,\n mode: found.message.mode,\n contentPreview: found.message.content.substring(0, 100),\n });\n return found;\n }\n\n console.warn('[MessageFinder] [FLOW] No message found for progress update', {\n totalMessages: messages.length,\n isTaskRunning,\n currentMode,\n preferPlaceholder,\n });\n return null;\n}\n\n/**\n * Find a placeholder message, optionally matching the current mode\n */\nexport function findPlaceholderMessage(\n messages: ChatMessage[],\n currentMode?: InstructionType\n): { index: number; message: ChatMessage } | null {\n // First, try to find a placeholder matching the current mode\n if (currentMode) {\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (\n msg.sender === 'agent' &&\n msg.isPlaceholder &&\n !msg.isSystemMessage &&\n !msg.isScreenAccessRequest &&\n (msg.mode === currentMode || !msg.mode)\n ) {\n return { index: i, message: msg };\n }\n }\n }\n\n // Fallback: find any placeholder\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (\n msg.sender === 'agent' &&\n msg.isPlaceholder &&\n !msg.isSystemMessage &&\n !msg.isScreenAccessRequest\n ) {\n return { index: i, message: msg };\n }\n }\n\n return null;\n}\n\n/**\n * Ensure message has initialized parts\n */\nfunction ensureMessageStructure(message: ChatMessage): ChatMessage {\n const msg = { ...message };\n\n // Ensure parts exist\n if (!msg.parts) {\n msg.parts = [];\n\n // Check if content needs to be treated as a text part\n const cleanContent = msg.content.replace(/\\n\\n__THINKING__$/, '').trim();\n if (cleanContent) {\n msg.parts.push({\n type: 'text',\n content: cleanContent,\n });\n }\n }\n\n return msg;\n}\n\n/**\n * Tools that should show an icon and standard text style.\n * These are \"mouse and keyboard\" interactions.\n * All other tools will have hidden icons and muted text.\n */\nconst INTERACTIVE_TOOLS = new Set([\n 'click_element',\n 'type_text',\n 'press_key',\n 'send_keys',\n 'select_option',\n 'hover_element',\n]);\n\n/**\n * Remove \"(Cancelled by cleanup)\" and similar cancellation messages from content\n * This filters out expected cancellation messages that shouldn't be shown to users\n */\nfunction filterCancellationText(content: string): string {\n if (!content) return content;\n // Remove \"(Cancelled by cleanup)\" in various forms\n return content\n .replace(/\\(Cancelled by cleanup\\)/gi, '')\n .replace(/\\(cancelled by cleanup\\)/gi, '')\n .replace(/Cancelled by cleanup/gi, '')\n .replace(/\\s+/g, ' ') // Clean up multiple spaces\n .trim();\n}\n\n/**\n * Add a new progress step to a message\n */\nexport function addProgressLine(\n message: ChatMessage,\n toolName: string,\n explanation: string\n): ChatMessage {\n const msg = ensureMessageStructure(message);\n const parts = msg.parts || [];\n\n // Update Parts\n const newParts = [...parts];\n const existingPartIndex = parts.findIndex(\n (part) => part.type === 'progress' && part.toolName === toolName && part.status === 'running'\n );\n\n const isInteractive = INTERACTIVE_TOOLS.has(toolName);\n const hideIcon = !isInteractive;\n const textStyle = 'default';\n\n // Filter cancellation text from explanation\n const cleanedExplanation = filterCancellationText(explanation);\n\n if (existingPartIndex >= 0) {\n newParts[existingPartIndex] = {\n ...newParts[existingPartIndex],\n content: cleanedExplanation,\n hideIcon,\n textStyle,\n };\n } else {\n newParts.push({\n type: 'progress',\n content: cleanedExplanation,\n status: 'running',\n toolName,\n hideIcon,\n textStyle,\n });\n }\n\n return {\n ...msg,\n parts: newParts,\n };\n}\n\n/**\n * Update an existing progress step for a tool\n */\nexport function updateProgressLine(\n message: ChatMessage,\n toolName: string,\n status: 'pending' | 'completed' | 'failed',\n error?: string\n): ChatMessage {\n const msg = ensureMessageStructure(message);\n const parts = msg.parts || [];\n\n // Update Parts\n const newParts = [...parts];\n const partIndex = parts\n .map((p) => (p.type === 'progress' ? p.toolName : ''))\n .lastIndexOf(toolName);\n\n const mappedStatus = status === 'pending' ? 'running' : status;\n\n const isInteractive = INTERACTIVE_TOOLS.has(toolName);\n const hideIcon = !isInteractive;\n const textStyle = 'default';\n\n if (partIndex >= 0) {\n newParts[partIndex] = {\n ...newParts[partIndex],\n status: mappedStatus,\n hideIcon,\n textStyle,\n };\n\n if (status === 'failed' && error) {\n newParts[partIndex] = {\n ...newParts[partIndex],\n content: `${newParts[partIndex].content} (${error})`,\n };\n }\n } else {\n newParts.push({\n type: 'progress',\n content: `${getFriendlyToolName(toolName)}...`,\n status: mappedStatus,\n toolName,\n hideIcon,\n textStyle,\n });\n }\n\n return { ...msg, parts: newParts };\n}\n\n/**\n * Mark the last incomplete progress step as completed\n */\nexport function markProgressLineComplete(message: ChatMessage, toolName?: string): ChatMessage {\n const msg = ensureMessageStructure(message);\n const parts = msg.parts || [];\n\n // Update Parts\n const newParts = [...parts];\n let partIndex = -1;\n if (toolName) {\n partIndex = parts.map((p) => (p.type === 'progress' ? p.toolName : '')).lastIndexOf(toolName);\n } else {\n for (let i = parts.length - 1; i >= 0; i--) {\n if (parts[i].type === 'progress' && parts[i].status === 'running') {\n partIndex = i;\n break;\n }\n }\n }\n\n if (partIndex >= 0) {\n newParts[partIndex] = { ...newParts[partIndex], status: 'completed' };\n }\n\n return { ...msg, parts: newParts };\n}\n\n/**\n * Mark the last incomplete progress step as failed\n */\nexport function markProgressLineFailed(\n message: ChatMessage,\n toolName: string,\n error: string\n): ChatMessage {\n const msg = ensureMessageStructure(message);\n const parts = msg.parts || [];\n\n // Filter out \"Cancelled by cleanup\" errors - these are expected in show mode\n // when a new action starts before the previous one completes\n const shouldFilterError = error.toLowerCase().includes('cancelled by cleanup');\n\n // Update Parts\n const newParts = [...parts];\n let partIndex = parts.map((p) => (p.type === 'progress' ? p.toolName : '')).lastIndexOf(toolName);\n if (partIndex === -1) {\n for (let i = parts.length - 1; i >= 0; i--) {\n if (parts[i].type === 'progress' && parts[i].status === 'running') {\n partIndex = i;\n break;\n }\n }\n }\n\n if (partIndex >= 0) {\n // If error should be filtered, just mark as completed instead of failed\n // This prevents showing confusing \"Cancelled by cleanup\" messages to users\n if (shouldFilterError) {\n // Clean any cancellation text from content and mark as completed\n const cleanedContent = filterCancellationText(newParts[partIndex].content);\n newParts[partIndex] = {\n ...newParts[partIndex],\n status: 'completed',\n content: cleanedContent,\n };\n } else {\n // Filter cancellation text from error before appending\n const cleanedError = filterCancellationText(error);\n const cleanedContent = filterCancellationText(newParts[partIndex].content);\n newParts[partIndex] = {\n ...newParts[partIndex],\n status: 'failed',\n content: cleanedError ? `${cleanedContent} (${cleanedError})` : cleanedContent,\n };\n }\n }\n\n return { ...msg, parts: newParts };\n}\n\n/**\n * Add or remove thinking marker based on task state\n */\nexport function updateThinkingMarker(\n message: ChatMessage,\n isTaskRunning: boolean,\n currentMode: 'show' | 'tell' | 'do',\n isWaitingForUser: boolean = false\n): ChatMessage {\n const msg = ensureMessageStructure(message);\n\n if (!isTaskRunning || (currentMode !== 'show' && currentMode !== 'do')) {\n // Remove thinking marker\n if (hasThinkingMarker(msg.content)) {\n return {\n ...msg,\n content: msg.content.replace(/\\n\\n__THINKING__$/, '').replace(/__THINKING__/g, ''),\n placeholderState: undefined, // Clear placeholder state when not thinking\n };\n }\n return msg;\n }\n\n const targetState = isWaitingForUser ? 'waiting-for-user' : 'thinking';\n\n // Add thinking marker if not present and it is the latest message\n // Note: The \"latest message\" check should be done by the caller or we assume this IS the active message\n // But to be safe, we can check if it's a placeholder or the last agent message.\n // Here we just ensure the marker exists if the caller decided to update this message.\n if (!hasThinkingMarker(msg.content)) {\n return {\n ...msg,\n content: addThinkingMarker(msg.content),\n placeholderState: targetState,\n };\n } else if (msg.placeholderState !== targetState) {\n // Ensure state aligns with marker presence if needed\n return {\n ...msg,\n placeholderState: targetState,\n };\n }\n\n return msg;\n}\n/**\n * Tool Name Mapping Utility\n *\n * Provides friendly display names for technical tool names.\n * Used for showing user-friendly progress updates in the chat.\n */\n\nexport const TOOL_NAME_MAPPING: Record<string, string> = {\n // Navigation & Browser\n navigate_to_url: 'Navigating to URL',\n go_back: 'Going back',\n go_forward: 'Going forward',\n refresh_page: 'Refreshing page',\n\n // Interaction\n click_element: 'Clicking element',\n hover_element: 'Hovering element',\n type_text: 'Typing text',\n press_key: 'Pressing key',\n select_option: 'Selecting option',\n scroll_to_element: 'Scrolling to element',\n scroll: 'Scrolling',\n\n // Information Retrieval\n get_page_content: 'Reading page content',\n get_element_text: 'Reading element text',\n get_element_attribute: 'Reading element attribute',\n take_screenshot: 'Taking screenshot',\n get_html: 'Viewed your screen',\n\n // Logic & Flow\n wait_for_element: 'Waiting for element',\n sleep: 'Waiting',\n\n // Default fallback pattern handling in getFriendlyToolName\n};\n\n/**\n * Get a friendly display name for a tool\n * Converts snake_case to Title Case if no mapping exists\n */\nexport function getFriendlyToolName(toolName: string): string {\n // Check explicit mapping first\n if (TOOL_NAME_MAPPING[toolName]) {\n return TOOL_NAME_MAPPING[toolName];\n }\n\n // Fallback: Convert snake_case or camelCase to Title Case\n // e.g. \"my_custom_tool\" -> \"My Custom Tool\"\n // e.g. \"myCustomTool\" -> \"My Custom Tool\"\n return (\n toolName\n // Insert space before capital letters (camelCase)\n .replace(/([A-Z])/g, ' $1')\n // Replace underscores with spaces (snake_case)\n .replace(/_/g, ' ')\n // Trim extra spaces\n .trim()\n // Capitalize first letter of each word\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ')\n );\n}\n","import type { ChatMessage, InstructionType, TaskProgress } from '../types';\nimport { removeThinkingMarkers } from '../utils/chat';\n\ninterface StoredChatContext {\n chat_id: string;\n messages: Array<Omit<ChatMessage, 'videoStream' | 'timestamp'> & { timestamp: string }>;\n isTaskRunning: boolean;\n activeTaskId: string | null;\n taskProgress: TaskProgress[];\n currentMode: InstructionType;\n isOpen: boolean;\n isMinimized: boolean;\n isLoading: boolean;\n timestamp: number;\n}\n\nconst CHAT_CONTEXT_STORAGE_KEY = 'marketrix_chat_context';\nconst CONTEXT_EXPIRY_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\n\nexport class ChatService {\n private static instance: ChatService;\n private messages: ChatMessage[] = [];\n private chatId: string | null = null;\n private isTaskRunning: boolean = false;\n private activeTaskId: string | null = null;\n private taskProgress: TaskProgress[] = [];\n private currentMode: InstructionType = 'tell';\n private isOpen: boolean = false;\n private isMinimized: boolean = false;\n private isLoading: boolean = false;\n\n private constructor() {}\n\n static getInstance(): ChatService {\n if (!ChatService.instance) {\n ChatService.instance = new ChatService();\n }\n return ChatService.instance;\n }\n\n initialize(chatId: string | null): void {\n this.chatId = chatId;\n this.restoreState();\n }\n\n createInitialContext(chatId: string): void {\n if (typeof window === 'undefined') return;\n\n try {\n const existingContext = localStorage.getItem(CHAT_CONTEXT_STORAGE_KEY);\n if (existingContext) {\n return;\n }\n\n const initialContext: StoredChatContext = {\n chat_id: chatId,\n messages: [],\n isTaskRunning: false,\n activeTaskId: null,\n taskProgress: [],\n currentMode: 'tell',\n isOpen: false,\n isMinimized: false,\n isLoading: false,\n timestamp: Date.now(),\n };\n\n localStorage.setItem(CHAT_CONTEXT_STORAGE_KEY, JSON.stringify(initialContext));\n } catch (error) {\n console.error('[ChatService] Failed to create initial chat context:', error);\n }\n }\n\n getMessages(): ChatMessage[] {\n return this.messages;\n }\n\n getIsLoading(): boolean {\n return this.isLoading;\n }\n\n getIsTaskRunning(): boolean {\n return this.isTaskRunning;\n }\n\n getActiveTaskId(): string | null {\n return this.activeTaskId;\n }\n\n getTaskProgress(): TaskProgress[] {\n return this.taskProgress;\n }\n\n getCurrentMode(): InstructionType {\n return this.currentMode;\n }\n\n getIsOpen(): boolean {\n return this.isOpen;\n }\n\n getIsMinimized(): boolean {\n return this.isMinimized;\n }\n\n addMessage(message: ChatMessage): void {\n this.messages = [...this.messages, message];\n this.persistState();\n }\n\n updateMessage(messageId: string, updates: Partial<ChatMessage>): void {\n this.messages = this.messages.map((msg) =>\n msg.id === messageId ? { ...msg, ...updates } : msg\n );\n this.persistState();\n }\n\n removeMessage(messageId: string): void {\n this.messages = this.messages.filter((msg) => msg.id !== messageId);\n this.persistState();\n }\n\n setMessages(messages: ChatMessage[]): void {\n this.messages = messages;\n this.persistState();\n }\n\n clearMessages(): void {\n this.messages = [];\n this.persistState();\n }\n\n setTaskState(isRunning: boolean, taskId: string | null, progress: TaskProgress[]): void {\n this.isTaskRunning = isRunning;\n this.activeTaskId = taskId;\n this.taskProgress = progress;\n this.persistState();\n }\n\n setMode(mode: InstructionType): void {\n this.currentMode = mode;\n this.persistState();\n }\n\n setWidgetState(isOpen: boolean, isMinimized: boolean): void {\n this.isOpen = isOpen;\n this.isMinimized = isMinimized;\n this.persistState();\n }\n\n setIsLoading(loading: boolean): void {\n this.isLoading = loading;\n this.persistState();\n }\n\n // State Restoration & Persistence\n\n private restoreState(): void {\n if (typeof window === 'undefined') return;\n\n try {\n const stored = localStorage.getItem(CHAT_CONTEXT_STORAGE_KEY);\n if (!stored) return;\n\n const context = JSON.parse(stored) as StoredChatContext;\n\n if (!context || typeof context !== 'object') return;\n\n if (Date.now() - context.timestamp > CONTEXT_EXPIRY_MS) {\n localStorage.removeItem(CHAT_CONTEXT_STORAGE_KEY);\n return;\n }\n\n if (this.chatId && context.chat_id !== this.chatId) {\n console.log('[ChatService] Chat ID mismatch but restoring history');\n }\n\n this.messages = context.messages.map((msg) => {\n // Handle restored screenshare messages\n // If a message was a screenshare stream (id starts with 'screenshare-'),\n // replace it with a \"Screenshare ended\" message since the stream is lost on refresh.\n if (msg.id.startsWith('screenshare-')) {\n return {\n ...msg,\n content: 'Screenshare ended',\n videoStream: undefined,\n isSystemMessage: true, // Treat as system message now\n timestamp: new Date(msg.timestamp),\n parts: [{ type: 'text', content: 'Screenshare ended' }],\n };\n }\n\n const restoredMsg: ChatMessage = {\n ...msg,\n timestamp: new Date(msg.timestamp),\n videoStream: undefined,\n placeholderState: msg.placeholderState, // Restore placeholder state\n taskStatus: msg.taskStatus, // Restore task status\n parts: msg.parts || [], // Use stored parts or default to empty\n };\n\n // If no parts, create default text part from content (if any)\n if (restoredMsg.parts?.length === 0 && restoredMsg.content) {\n const cleanContent = restoredMsg.content.replace(/\\n\\n__THINKING__$/, '').trim();\n if (cleanContent && restoredMsg.parts) {\n restoredMsg.parts.push({\n type: 'text',\n content: cleanContent,\n });\n }\n }\n\n return restoredMsg;\n });\n\n this.isTaskRunning = context.isTaskRunning;\n this.activeTaskId = context.activeTaskId;\n this.taskProgress = context.taskProgress;\n this.currentMode = context.currentMode;\n this.isOpen = context.isOpen;\n this.isMinimized = context.isMinimized;\n this.isLoading = context.isLoading ?? false;\n } catch (error) {\n console.warn('[ChatService] Failed to restore state:', error);\n }\n }\n\n private persistState(): void {\n if (typeof window === 'undefined' || !this.chatId) return;\n\n try {\n const serializedMessages = this.messages\n .filter((msg) => {\n if (!msg.isPlaceholder) return true;\n // Keep placeholders if they have content, progress parts, OR are thinking/waiting\n if (msg.placeholderState === 'thinking' || msg.placeholderState === 'waiting-for-user') {\n return true;\n }\n\n // Only keep other placeholders if they have content or progress parts\n const parts = msg.parts || [];\n return parts.length > 0;\n })\n .filter((msg) => !(msg.isSystemMessage && msg.content === 'Chat context changed'))\n .map((msg) => ({\n id: msg.id,\n content: removeThinkingMarkers(msg.content),\n sender: msg.sender,\n timestamp: msg.timestamp.toISOString(),\n mode: msg.mode,\n isScreenAccessRequest: msg.isScreenAccessRequest,\n screenShareStatus: msg.screenShareStatus,\n isSystemMessage: msg.isSystemMessage,\n isPlaceholder: msg.isPlaceholder,\n placeholderState: msg.placeholderState, // Save placeholder state\n taskStatus: msg.taskStatus, // Save task status\n parts: msg.parts, // Save parts\n }));\n\n const context: StoredChatContext = {\n chat_id: this.chatId,\n messages: serializedMessages,\n isTaskRunning: this.isTaskRunning,\n activeTaskId: this.activeTaskId,\n taskProgress: this.taskProgress,\n currentMode: this.currentMode,\n isOpen: this.isOpen,\n isMinimized: this.isMinimized,\n isLoading: this.isLoading,\n timestamp: Date.now(),\n };\n\n localStorage.setItem(CHAT_CONTEXT_STORAGE_KEY, JSON.stringify(context));\n } catch (error) {\n console.warn('[ChatService] Failed to persist state:', error);\n }\n }\n}\n\nexport const chatService = ChatService.getInstance();\n\n// Exported Factory Functions\nexport function createUserMessage(\n content: string,\n mode?: InstructionType,\n idPrefix: string = 'user-message'\n): ChatMessage {\n const parts = [];\n const cleanContent = content.trim();\n if (cleanContent) {\n parts.push({ type: 'text' as const, content: cleanContent });\n }\n\n return {\n id: `${idPrefix}-${Date.now()}`,\n content: cleanContent,\n sender: 'user',\n timestamp: new Date(),\n mode,\n parts,\n };\n}\n\nexport function createAgentMessage(\n content: string,\n mode?: InstructionType,\n messageId?: string,\n idPrefix: string = 'agent-message'\n): ChatMessage {\n const parts = [];\n const cleanContent = content.trim();\n if (cleanContent) {\n parts.push({ type: 'text' as const, content: cleanContent });\n }\n\n return {\n id: messageId || `${idPrefix}-${Date.now()}`,\n content,\n sender: 'agent',\n timestamp: new Date(),\n mode,\n parts,\n };\n}\n\nexport function createSystemMessage(\n content: string,\n mode?: InstructionType,\n sender: 'user' | 'agent' = 'agent',\n idPrefix: string = 'system-message'\n): ChatMessage {\n const parts = [];\n if (content) {\n parts.push({ type: 'text' as const, content });\n }\n\n return {\n id: `${idPrefix}-${Date.now()}`,\n content,\n sender,\n timestamp: new Date(),\n mode,\n isSystemMessage: true,\n parts,\n };\n}\n\nexport function createPlaceholderMessage(\n mode?: InstructionType,\n placeholderState: 'thinking' | 'waiting-for-user' = 'thinking'\n): ChatMessage {\n return {\n id: `placeholder-${Date.now()}`,\n content: '',\n sender: 'agent',\n timestamp: new Date(),\n mode,\n isPlaceholder: true,\n placeholderState,\n parts: [],\n };\n}\n\nexport function createScreenAccessRequestMessage(mode?: InstructionType): ChatMessage {\n const content = 'Can I take a look at your screen?';\n return {\n id: `screen-access-request-${Date.now()}`,\n content,\n sender: 'agent',\n timestamp: new Date(),\n mode,\n isScreenAccessRequest: true,\n parts: [{ type: 'text', content }],\n };\n}\n\nexport function createStartedScreenshareMessage(mode: InstructionType = 'show'): ChatMessage {\n const content = 'Started screenshare';\n return {\n id: `started-screenshare-${Date.now()}`,\n content,\n sender: 'user',\n timestamp: new Date(),\n mode,\n isSystemMessage: true,\n parts: [{ type: 'text', content }],\n };\n}\n\nexport function createScreenshareMessage(\n stream: MediaStream,\n mode: InstructionType = 'show'\n): ChatMessage {\n return {\n id: `screenshare-${Date.now()}`,\n content: '',\n sender: 'user',\n timestamp: new Date(),\n mode,\n videoStream: stream,\n parts: [],\n };\n}\n\nexport function createErrorMessage(\n content: string,\n mode?: InstructionType,\n originalMessageId?: string\n): ChatMessage {\n return {\n id: originalMessageId ? `error-${originalMessageId}-${Date.now()}` : `error-${Date.now()}`,\n content,\n sender: 'agent',\n timestamp: new Date(),\n mode,\n parts: [{ type: 'text', content }],\n };\n}\n","import type { WidgetSettingsData } from '../sdk';\nimport type { MarketrixConfig } from '../types';\n\n// Mutable configuration for runtime updates\n// Initialized to empty strings to enforce runtime configuration\nexport const Config = {\n API_URL: '',\n AGENT_SERVER_URL: '',\n};\n\n/**\n * Update the global API configuration\n */\nexport const updateApiConfig = (apiUrl?: string, agentUrl?: string) => {\n if (apiUrl) {\n console.log(`[Config] Updating API URL to: ${apiUrl}`);\n Config.API_URL = apiUrl;\n }\n if (agentUrl) {\n console.log(`[Config] Updating Agent Server URL to: ${agentUrl}`);\n Config.AGENT_SERVER_URL = agentUrl;\n }\n};\n\n/**\n * Get the configured API URL.\n */\nexport const getApiUrl = (): string => {\n if (!Config.API_URL) {\n // Return empty string to allow validation service to fail gracefully with specific error\n return '';\n }\n return Config.API_URL;\n};\n\nconst NON_WIDGET_SETTINGS_KEYS = [\n 'mtxId',\n 'mtxKey',\n 'mtxApp',\n 'mtxAgent',\n 'mtxApiHost',\n 'mtxAiHost',\n 'widget_position_offset',\n 'widget_position_z_index',\n] as const;\n\nfunction extractWidgetSettingsFields(\n config: Partial<MarketrixConfig>\n): Partial<WidgetSettingsData> {\n const result = { ...config } as Partial<WidgetSettingsData>;\n for (const key of NON_WIDGET_SETTINGS_KEYS) {\n delete (result as Record<string, unknown>)[key];\n }\n return result;\n}\n\n/**\n * Extract widget settings from MarketrixConfig\n * Settings should already include defaults from API, so we just extract the widget-specific fields\n */\nexport function extractWidgetSettingsFromConfig(\n config: Partial<MarketrixConfig>\n): WidgetSettingsData {\n // Extract widget settings fields - config should already have all settings from API (including defaults)\n return extractWidgetSettingsFields(config) as WidgetSettingsData;\n}\n\n/**\n * Derives the websocket URL for the agent server\n * Requires either config.mtxAiHost or configured AGENT_SERVER_URL to be provided\n * @throws Error if neither mtxAiHost nor configured AGENT_SERVER_URL is provided\n */\nexport function getAgentWebSocketUrl(config?: Partial<MarketrixConfig>): string {\n // 1. Check if explicitly provided in config\n if (config?.mtxAiHost) {\n return ensureWebSocketUrl(config.mtxAiHost);\n }\n\n // 2. Check configured URL\n if (Config.AGENT_SERVER_URL) {\n return ensureWebSocketUrl(Config.AGENT_SERVER_URL);\n }\n\n // 3. Throw error if neither is provided\n throw new Error(\n 'Agent server URL is required. Please provide either mtxAiHost in config or configure mtxAiHost.'\n );\n}\n\n/**\n * Ensures the URL is a websocket URL (ws:// or wss://)\n * If http:// or https:// is provided, converts it appropriately\n */\nfunction ensureWebSocketUrl(url: string): string {\n // Remove trailing slash if present\n const cleanUrl = url.trim().replace(/\\/$/, '');\n\n if (cleanUrl.startsWith('ws://') || cleanUrl.startsWith('wss://')) {\n return cleanUrl.endsWith('/widget') ? cleanUrl : `${cleanUrl}/widget`;\n }\n if (cleanUrl.startsWith('http://')) {\n const wsUrl = cleanUrl.replace('http://', 'ws://');\n return wsUrl.endsWith('/widget') ? wsUrl : `${wsUrl}/widget`;\n }\n if (cleanUrl.startsWith('https://')) {\n const wssUrl = cleanUrl.replace('https://', 'wss://');\n return wssUrl.endsWith('/widget') ? wssUrl : `${wssUrl}/widget`;\n }\n // If no protocol, assume ws:// for localhost, wss:// for others\n if (cleanUrl.includes('localhost') || cleanUrl.includes('127.0.0.1')) {\n return `ws://${cleanUrl}/widget`;\n }\n return `wss://${cleanUrl}/widget`;\n}\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import { z } from 'zod';\n\nconst isZodType = (obj) => {\n return typeof (obj === null || obj === void 0 ? void 0 : obj.safeParse) === 'function';\n};\nconst isZodObject = (obj) => {\n if (typeof (obj === null || obj === void 0 ? void 0 : obj.passthrough) === 'function') {\n return true;\n }\n if (typeof (obj === null || obj === void 0 ? void 0 : obj.innerType) === 'function') {\n return isZodObject(obj === null || obj === void 0 ? void 0 : obj.innerType());\n }\n return false;\n};\nconst isZodObjectStrict = (obj) => {\n return typeof (obj === null || obj === void 0 ? void 0 : obj.passthrough) === 'function';\n};\nconst extractZodObjectShape = (obj) => {\n if (!isZodObject(obj)) {\n throw new Error('Unknown zod object type');\n }\n if ('innerType' in obj) {\n return extractZodObjectShape(obj.innerType());\n }\n return obj.shape;\n};\nconst zodMerge = (objectA, objectB) => {\n if (isZodObjectStrict(objectA)) {\n if (isZodObjectStrict(objectB)) {\n return objectA.merge(objectB);\n }\n return objectA;\n }\n if (isZodObjectStrict(objectB)) {\n return objectB;\n }\n return Object.assign({}, objectA, objectB);\n};\nconst checkZodSchema = (data, schema, { passThroughExtraKeys = false } = {}) => {\n if (isZodType(schema)) {\n const result = schema.safeParse(data);\n if (result.success) {\n return {\n success: true,\n data: passThroughExtraKeys && typeof data === 'object'\n ? { ...data, ...result.data }\n : result.data,\n };\n }\n return {\n success: false,\n error: result.error,\n };\n }\n return {\n success: true,\n data: data,\n };\n};\n// Convert a ZodError to a plain object because ZodError extends Error and causes problems with NestJS\nconst zodErrorResponse = (error) => {\n return {\n name: error.name,\n issues: error.issues,\n };\n};\nconst ZodErrorSchema = z.object({\n name: z.literal('ZodError'),\n issues: z.array(z\n .object({\n path: z.array(z.union([z.string(), z.number()])),\n message: z.string().optional(),\n code: z.nativeEnum(z.ZodIssueCode),\n })\n // ZodIssuse type are complex and potentially unstable. So we don’t deal with his specific fields other than the common.\n .catchall(z.any())),\n});\n\nconst ContractNoBody = Symbol('ContractNoBody');\n/**\n * Differentiate between a route and a router\n *\n * @param obj\n * @returns\n */\nconst isAppRoute = (obj) => {\n return 'method' in obj && 'path' in obj;\n};\nconst isAppRouteQuery = (route) => {\n return route.method === 'GET';\n};\nconst isAppRouteMutation = (route) => {\n return !isAppRouteQuery(route);\n};\n/**\n *\n * @deprecated Please use {@link initContract} instead.\n */\nconst initTsRest = () => initContract();\nconst recursivelyApplyOptions = (router, options) => {\n return Object.fromEntries(Object.entries(router).map(([key, value]) => {\n var _a, _b, _c;\n if (isAppRoute(value)) {\n return [\n key,\n {\n ...value,\n path: (options === null || options === void 0 ? void 0 : options.pathPrefix)\n ? options.pathPrefix + value.path\n : value.path,\n headers: zodMerge(options === null || options === void 0 ? void 0 : options.baseHeaders, value.headers),\n strictStatusCodes: (_a = value.strictStatusCodes) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.strictStatusCodes,\n validateResponseOnClient: (_b = value.validateResponseOnClient) !== null && _b !== void 0 ? _b : options === null || options === void 0 ? void 0 : options.validateResponseOnClient,\n responses: {\n ...options === null || options === void 0 ? void 0 : options.commonResponses,\n ...value.responses,\n },\n metadata: (options === null || options === void 0 ? void 0 : options.metadata)\n ? {\n ...options === null || options === void 0 ? void 0 : options.metadata,\n ...((_c = value.metadata) !== null && _c !== void 0 ? _c : {}),\n }\n : value.metadata,\n },\n ];\n }\n else {\n return [key, recursivelyApplyOptions(value, options)];\n }\n }));\n};\nconst ContractPlainTypeRuntimeSymbol = Symbol('ContractPlainType');\n/**\n * Instantiate a ts-rest client, primarily to access `router`, `response`, and `body`\n *\n * @returns {ContractInstance}\n */\nconst initContract = () => {\n return {\n // @ts-expect-error - this is a type error, but it's not clear how to fix it\n router: (endpoints, options) => recursivelyApplyOptions(endpoints, options),\n query: (args) => args,\n mutation: (args) => args,\n responses: (args) => args,\n response: () => ContractPlainTypeRuntimeSymbol,\n body: () => ContractPlainTypeRuntimeSymbol,\n type: () => ContractPlainTypeRuntimeSymbol,\n otherResponse: ({ contentType, body, }) => ({\n contentType,\n body,\n }),\n noBody: () => ContractNoBody,\n };\n};\n\n/**\n * @param path - The URL e.g. /posts/:id\n * @param params - The params e.g. `{ id: string }`\n * @returns - The URL with the params e.g. /posts/123\n */\nconst insertParamsIntoPath = ({ path, params, }) => {\n const pathParams = params;\n return path.replace(/\\/?:([^/?]+)\\??/g, (matched, p) => pathParams[p]\n ? `${matched.startsWith('/') ? '/' : ''}${pathParams[p]}`\n : '');\n};\n\n/**\n *\n * @param query - Any JSON object\n * @param json - Use JSON.stringify to encode the query values\n * @returns - The query url segment, using explode array syntax, and deep object syntax\n */\nconst convertQueryParamsToUrlString = (query, json = false) => {\n const queryString = json\n ? encodeQueryParamsJson(query)\n : encodeQueryParams(query);\n return (queryString === null || queryString === void 0 ? void 0 : queryString.length) > 0 ? '?' + queryString : '';\n};\nconst encodeQueryParamsJson = (query) => {\n if (!query) {\n return '';\n }\n return Object.entries(query)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => {\n let encodedValue;\n // if value is a string and is not a reserved JSON value or a number, pass it without encoding\n // this makes strings look nicer in the URL (e.g. ?name=John instead of ?name=%22John%22)\n // this is also how OpenAPI will pass strings even if they are marked as application/json types\n if (typeof value === 'string' &&\n !['true', 'false', 'null'].includes(value.trim()) &&\n isNaN(Number(value))) {\n encodedValue = value;\n }\n else {\n encodedValue = JSON.stringify(value);\n }\n return `${encodeURIComponent(key)}=${encodeURIComponent(encodedValue)}`;\n })\n .join('&');\n};\nconst encodeQueryParams = (query) => {\n if (!query) {\n return '';\n }\n return (Object.keys(query)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .flatMap((key) => tokeniseValue(key, query[key]))\n .map(([key, value]) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n })\n .join('&'));\n};\n/**\n * A recursive function to convert an object/string/number/Date/whatever into an array of key=value pairs\n *\n * The output of this should be flatMap-able to a string of key=value pairs which can be\n * joined with & to form a query string\n *\n * This should be fully compatible with the \"qs\" library, but without the need to add a dependency\n */\nconst tokeniseValue = (key, value) => {\n if (Array.isArray(value)) {\n return value.flatMap((v, idx) => tokeniseValue(`${key}[${idx}]`, v));\n }\n if (value instanceof Date) {\n return [[`${key}`, value.toISOString()]];\n }\n if (value === null) {\n return [[`${key}`, '']];\n }\n if (value === undefined) {\n return [];\n }\n if (typeof value === 'object') {\n return Object.keys(value).flatMap((k) => \n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n tokeniseValue(`${key}[${k}]`, value[k]));\n }\n return [[`${key}`, `${value}`]];\n};\n/**\n *\n * @param query - A server-side query object where values have been encoded as JSON strings\n * @returns - The same object with the JSON strings decoded. Objects that were encoded using toJSON such as Dates will remain as strings\n */\nconst parseJsonQueryObject = (query) => {\n return Object.fromEntries(Object.entries(query).map(([key, value]) => {\n let parsedValue;\n // if json parse fails, treat the value as a string\n // this allows us to pass strings without having to surround them with quotes\n try {\n parsedValue = JSON.parse(value);\n }\n catch {\n parsedValue = value;\n }\n return [key, parsedValue];\n }));\n};\n\nclass UnknownStatusError extends Error {\n constructor(response, knownResponseStatuses) {\n const expectedStatuses = knownResponseStatuses.join(',');\n super(`Server returned unexpected response. Expected one of: ${expectedStatuses} got: ${response.status}`);\n this.response = response;\n }\n}\n\n/**\n * @deprecated Only safe to use on the client-side. Use `ServerInferResponses`/`ClientInferResponses` instead.\n */\nfunction getRouteResponses(router) {\n return {};\n}\n/**\n * Default fetch api implementation:\n *\n * Can be used as a reference for implementing your own fetcher,\n * or used in the \"api\" field of ClientArgs to allow you to hook\n * into the request to run custom logic\n */\nconst tsRestFetchApi = async ({ route, path, method, headers, body, validateResponse, fetchOptions, }) => {\n const result = await fetch(path, {\n ...fetchOptions,\n method,\n headers,\n body,\n });\n const contentType = result.headers.get('content-type');\n if ((contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/')) && (contentType === null || contentType === void 0 ? void 0 : contentType.includes('json'))) {\n const response = {\n status: result.status,\n body: await result.json(),\n headers: result.headers,\n };\n const responseSchema = route.responses[response.status];\n if ((validateResponse !== null && validateResponse !== void 0 ? validateResponse : route.validateResponseOnClient) &&\n isZodType(responseSchema)) {\n return {\n ...response,\n body: responseSchema.parse(response.body),\n };\n }\n return response;\n }\n if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('text/')) {\n return {\n status: result.status,\n body: await result.text(),\n headers: result.headers,\n };\n }\n return {\n status: result.status,\n body: await result.blob(),\n headers: result.headers,\n };\n};\nconst createFormData = (body) => {\n const formData = new FormData();\n const appendToFormData = (key, value) => {\n if (value instanceof File) {\n formData.append(key, value);\n }\n else {\n formData.append(key, JSON.stringify(value));\n }\n };\n Object.entries(body).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n for (const item of value) {\n appendToFormData(key, item);\n }\n }\n else {\n appendToFormData(key, value);\n }\n });\n return formData;\n};\nconst normalizeHeaders = (headers) => {\n return Object.fromEntries(Object.entries(headers).map(([k, v]) => [k.toLowerCase(), v]));\n};\nconst fetchApi = (options) => {\n const { path, clientArgs, route, body, query, extraInputArgs, headers, fetchOptions, } = options;\n const apiFetcher = clientArgs.api || tsRestFetchApi;\n const baseHeaders = clientArgs.baseHeaders &&\n Object.fromEntries(Object.entries(clientArgs.baseHeaders).map(([name, valueOrFunction]) => {\n if (typeof valueOrFunction === 'function') {\n return [name, valueOrFunction(options)];\n }\n else {\n return [name, valueOrFunction];\n }\n }));\n const combinedHeaders = {\n ...(baseHeaders && normalizeHeaders(baseHeaders)),\n ...normalizeHeaders(headers),\n };\n // Remove any headers that are set to undefined\n Object.keys(combinedHeaders).forEach((key) => {\n if (combinedHeaders[key] === undefined) {\n delete combinedHeaders[key];\n }\n });\n let fetcherArgs = {\n route,\n path,\n method: route.method,\n headers: combinedHeaders,\n body: undefined,\n rawBody: body,\n rawQuery: query,\n contentType: undefined,\n validateResponse: clientArgs.validateResponse,\n fetchOptions: {\n ...(clientArgs.credentials && { credentials: clientArgs.credentials }),\n ...fetchOptions,\n },\n ...((fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.signal) && { signal: fetchOptions.signal }),\n ...((fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.cache) && { cache: fetchOptions.cache }),\n ...(fetchOptions &&\n 'next' in fetchOptions &&\n !!(fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.next) && { next: fetchOptions.next }),\n };\n if (route.method !== 'GET') {\n if ('contentType' in route && route.contentType === 'multipart/form-data') {\n fetcherArgs = {\n ...fetcherArgs,\n contentType: 'multipart/form-data',\n body: body instanceof FormData ? body : createFormData(body),\n };\n }\n else if ('contentType' in route &&\n route.contentType === 'application/x-www-form-urlencoded') {\n fetcherArgs = {\n ...fetcherArgs,\n contentType: 'application/x-www-form-urlencoded',\n headers: {\n 'content-type': 'application/x-www-form-urlencoded',\n ...fetcherArgs.headers,\n },\n body: typeof body === 'string'\n ? body\n : new URLSearchParams(body),\n };\n }\n else if (body !== null && body !== undefined) {\n fetcherArgs = {\n ...fetcherArgs,\n contentType: 'application/json',\n headers: {\n 'content-type': 'application/json',\n ...fetcherArgs.headers,\n },\n body: JSON.stringify(body),\n };\n }\n }\n return apiFetcher({\n ...fetcherArgs,\n ...extraInputArgs,\n });\n};\nconst evaluateFetchApiArgs = (route, clientArgs, inputArgs) => {\n const { query, params, body, headers, extraHeaders, overrideClientOptions, fetchOptions, \n // TODO: remove in 4.0\n cache, \n // TODO: remove in 4.0\n next, \n // extra input args\n ...extraInputArgs } = inputArgs || {};\n const overriddenClientArgs = {\n ...clientArgs,\n ...overrideClientOptions,\n };\n const completeUrl = getCompleteUrl(query, overriddenClientArgs.baseUrl, params, route, !!overriddenClientArgs.jsonQuery);\n return {\n path: completeUrl,\n clientArgs: overriddenClientArgs,\n route,\n body,\n query,\n extraInputArgs,\n fetchOptions: {\n ...(cache && { cache }),\n ...(next && { next }),\n ...fetchOptions,\n },\n headers: {\n ...extraHeaders,\n ...headers,\n },\n };\n};\n/**\n * @hidden\n */\nconst getCompleteUrl = (query, baseUrl, params, route, jsonQuery) => {\n const path = insertParamsIntoPath({\n path: route.path,\n params: params,\n });\n const queryComponent = convertQueryParamsToUrlString(query, jsonQuery);\n return `${baseUrl}${path}${queryComponent}`;\n};\nconst getRouteQuery = (route, clientArgs) => {\n const knownResponseStatuses = Object.keys(route.responses);\n return async (inputArgs) => {\n const fetchApiArgs = evaluateFetchApiArgs(route, clientArgs, inputArgs);\n const response = await fetchApi(fetchApiArgs);\n // TODO: in next major version, throw by default if `strictStatusCode` is enabled\n if (!clientArgs.throwOnUnknownStatus) {\n return response;\n }\n if (knownResponseStatuses.includes(response.status.toString())) {\n return response;\n }\n throw new UnknownStatusError(response, knownResponseStatuses);\n };\n};\nconst initClient = (router, args) => {\n return Object.fromEntries(Object.entries(router).map(([key, subRouter]) => {\n if (isAppRoute(subRouter)) {\n return [key, getRouteQuery(subRouter, args)];\n }\n else {\n return [key, initClient(subRouter, args)];\n }\n }));\n};\n\nclass ResponseValidationError extends Error {\n constructor(appRoute, cause) {\n super(`[ts-rest] Response validation failed for ${appRoute.method} ${appRoute.path}: ${cause.message}`);\n this.appRoute = appRoute;\n this.cause = cause;\n }\n}\n\nconst isAppRouteResponse = (value) => {\n return (value != null &&\n typeof value === 'object' &&\n 'status' in value &&\n typeof value.status === 'number');\n};\nconst isAppRouteOtherResponse = (response) => {\n return (response != null &&\n typeof response === 'object' &&\n 'contentType' in response);\n};\nconst isAppRouteNoBody = (response) => {\n return response === ContractNoBody;\n};\nconst validateResponse = ({ appRoute, response, }) => {\n if (isAppRouteResponse(response)) {\n const responseType = appRoute.responses[response.status];\n const responseSchema = isAppRouteOtherResponse(responseType)\n ? responseType.body\n : responseType;\n const responseValidation = checkZodSchema(response.body, responseSchema);\n if (!responseValidation.success) {\n throw new ResponseValidationError(appRoute, responseValidation.error);\n }\n return {\n status: response.status,\n body: responseValidation.data,\n };\n }\n return response;\n};\n\nclass TsRestResponseError extends Error {\n constructor(route, response) {\n super();\n this.statusCode = response.status;\n this.body = response.body;\n this.name = this.constructor.name;\n if (typeof response.body === 'string') {\n this.message = response.body;\n }\n else if (typeof response.body === 'object' &&\n response.body !== null &&\n 'message' in response.body &&\n typeof response.body.message === 'string') {\n this.message = response.body['message'];\n }\n else {\n this.message = 'Error';\n }\n }\n}\n\nconst isResponse = (response, contractEndpoint) => {\n return (typeof response === 'object' &&\n response !== null &&\n 'status' in response &&\n 'body' in response &&\n typeof response.status === 'number' &&\n response.status >= 200 &&\n response.status < 600 &&\n ((contractEndpoint === null || contractEndpoint === void 0 ? void 0 : contractEndpoint.strictStatusCodes)\n ? Object.keys(contractEndpoint.responses).includes(response.status.toString())\n : true));\n};\nconst isSuccessResponse = (response, contractEndpoint) => {\n return (isResponse(response, contractEndpoint) &&\n response.status >= 200 &&\n response.status < 300);\n};\nconst isErrorResponse = (response, contractEndpoint) => {\n return (isResponse(response, contractEndpoint) &&\n !isSuccessResponse(response, contractEndpoint));\n};\nconst isUnknownResponse = (response, contractEndpoint) => {\n return (isResponse(response) &&\n !Object.keys(contractEndpoint.responses).includes(response.status.toString()));\n};\nconst isUnknownSuccessResponse = (response, contractEndpoint) => {\n return (isSuccessResponse(response) && isUnknownResponse(response, contractEndpoint));\n};\nconst isUnknownErrorResponse = (response, contractEndpoint) => {\n return (isErrorResponse(response) && isUnknownResponse(response, contractEndpoint));\n};\nconst exhaustiveGuard = (response) => {\n throw new Error(`Unreachable code: Response status is ${response.status}`);\n};\n\nexport { ContractNoBody, ContractPlainTypeRuntimeSymbol, ResponseValidationError, TsRestResponseError, UnknownStatusError, ZodErrorSchema, checkZodSchema, convertQueryParamsToUrlString, encodeQueryParams, encodeQueryParamsJson, evaluateFetchApiArgs, exhaustiveGuard, extractZodObjectShape, fetchApi, getCompleteUrl, getRouteQuery, getRouteResponses, initClient, initContract, initTsRest, insertParamsIntoPath, isAppRoute, isAppRouteMutation, isAppRouteNoBody, isAppRouteOtherResponse, isAppRouteQuery, isAppRouteResponse, isErrorResponse, isResponse, isSuccessResponse, isUnknownErrorResponse, isUnknownResponse, isUnknownSuccessResponse, isZodObject, isZodObjectStrict, isZodType, parseJsonQueryObject, tsRestFetchApi, validateResponse, zodErrorResponse, zodMerge };\n","/**\n * Marketrix API Schema Definitions\n *\n * This file defines all Zod schemas for the Marketrix API, organized by functional areas\n * to match the route structure. It provides type-safe validation for requests, responses,\n * and internal data structures.\n *\n * Schema Categories:\n * - Base Types: Core enums and common schemas\n * - Authentication: User auth, OAuth, password management\n * - Meeting: Video meeting management and operations\n * - Tenant: Organization and workspace management\n * - Integration: Management and configuration of integrations (widget, slack, etc.)\n * - Chat: AI-powered chat and conversation management\n * - User: User account management and operations\n * - Agent: AI agent creation and management\n * - Activity Log: System activity tracking and auditing\n * - App Config: In-app configuration management\n * - Tour: Interactive tour and guidance system\n * - Simulation: Application simulation and testing\n * - Knowledge: Knowledge base and document management\n * - TaskPilot: AI prompt management and automation\n * - Rule: Business rule and automation rule management\n * - Migration: Database migration and system updates\n */\n\nimport { z } from 'zod';\n\n// ============================================================================\n// BASE TYPES & ENUMS - Core system enums and common schemas\n// ============================================================================\n\n/**\n * Core system enums for user roles, plans, and statuses\n */\nexport const UserRoleSchema = z.enum(['user', 'admin', 'super']);\nexport const UserPlanSchema = z.enum(['free', 'pro', 'enterprise']);\nexport const EntityStatusSchema = z.enum(['created', 'active', 'suspended', 'pending_approval']);\nexport const TenantPackageSchema = z.enum(['free', 'starter', 'pro', 'enterprise']);\nexport const AgentTypeSchema = z.enum(['human', 'ai']);\nexport const AgentVoiceSchema = z.enum(['male', 'female']);\nexport const AgentStatusSchema = z.enum(['active', 'learning', 'error']);\nexport const KnowledgeTypeSchema = z.enum(['document', 'video']);\nexport const MeetingStatusSchema = z.enum(['not_started', 'in_progress', 'ended', 'cancelled']);\nexport const ChatRoleSchema = z.enum(['user', 'agent']);\nexport const ChatSourceSchema = z.enum(['taskpilot', 'widget', 'app']);\nexport const InstructionTypeSchema = z.enum(['tell', 'show', 'do']);\nexport const ConnectionTypeSchema = z.enum(['app', 'website']);\nexport const IntegrationTypeSchema = z.enum(['widget', 'slack']);\nexport const ActionLogTypeSchema = z.enum([\n 'user_login',\n 'url_visit',\n 'update_tenant',\n 'create_user',\n 'update_user',\n 'delete_user',\n 'create_agent',\n 'update_agent',\n 'delete_agent',\n 'create_connection',\n 'update_connection',\n 'delete_connection',\n 'create_integration',\n 'update_integration',\n 'delete_integration',\n 'create_knowledge',\n 'update_knowledge',\n 'delete_knowledge',\n 'approve_user',\n 'deny_user',\n 'request_tenant',\n 'widget_question',\n]);\n\n/**\n * Common response schemas used across all API endpoints\n */\nexport const ServiceResponseSchema = <T extends z.ZodTypeAny>(success: boolean, schema: T) =>\n z.object({\n success: z.literal(success),\n data: schema,\n error: z.string().optional(),\n message: z.string().optional(),\n });\n\n// Common response patterns for compression\nexport const R = {\n success: <T extends z.ZodTypeAny>(schema: T) => ServiceResponseSchema(true, schema),\n error: ServiceResponseSchema(false, z.void()),\n void: z.void(),\n};\n\n/**\n * Base entity schema with common fields for all database entities\n */\nexport const BaseEntitySchema = z.object({\n id: z.number().optional(),\n created_at: z.coerce.date().optional(),\n updated_at: z.coerce.date().optional(),\n});\n\nexport const FileSchema = z.object({\n file: z.custom<Express.Multer.File>(),\n connection_id: z.coerce.number().optional(),\n});\n\n// ============================================================================\n// ROOT ROUTES SCHEMAS - Basic system endpoints\n// ============================================================================\n\n/**\n * Health check response schema\n */\nexport const HealthResponseSchema = z.object({\n status: z.string(),\n timestamp: z.string(),\n service: z.string(),\n version: z.string(),\n});\n\n/**\n * API index response schema\n */\nexport const IndexResponseSchema = z.object({\n name: z.string(),\n version: z.string(),\n status: z.string(),\n timestamp: z.string(),\n});\n\n// ============================================================================\n// USER SCHEMAS - User account management and operations\n// ============================================================================\n\n/**\n * Complete user entity schema\n */\nexport const UserEntitySchema = BaseEntitySchema.extend({\n tenant_id: z.number().optional(),\n status: EntityStatusSchema,\n role: UserRoleSchema,\n email: z.string().email(),\n google_id: z.string().optional(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n password: z.string().optional(),\n image_url: z.string().optional(),\n plan: UserPlanSchema,\n prompt_limit: z.number().optional(),\n});\n\n/**\n * User creation schema\n */\nexport const UserCreateSchema = UserEntitySchema.partial().extend({\n email: z.string().email(),\n password: z.string(),\n});\n\n/**\n * User update schema\n */\nexport const UserUpdateSchema = UserEntitySchema.partial();\n\n/**\n * Batch user creation schema\n */\nexport const BatchUserCreateSchema = z.object({\n users: z.array(UserCreateSchema),\n});\n\n/**\n * Batch user creation result schema\n */\nexport const BatchUserCreateResultSchema = z.object({\n users: z.array(UserEntitySchema.partial()),\n});\n\n// ============================================================================\n// AUTHENTICATION SCHEMAS - User authentication and authorization\n// ============================================================================\n\n/**\n * CAPTCHA verification schema\n */\nexport const VerifyCaptchaSchema = z.object({\n token: z.string().min(1, 'Captcha token is required'),\n});\n\n/**\n * User login credentials schema\n */\nexport const UserLoginSchema = z.object({\n email: z.string().email(),\n password: z.string(),\n});\n\nexport const PasswordResetEntitySchema = BaseEntitySchema.extend({\n user_id: z.number(),\n token: z.string(),\n expiry_date: z.coerce.date(),\n});\n\n/**\n * User registration schema\n */\nexport const UserRegisterSchema = z.object({\n email: z.string().email(),\n password: z.string(),\n first_name: z.string(),\n last_name: z.string(),\n});\n\n/**\n * Password reset request schema\n */\nexport const PasswordResetRequestSchema = z.object({\n email: z.string().email(),\n});\n\n/**\n * Password update schema using reset token\n */\nexport const PasswordUpdateSchema = z.object({\n token: z.string(),\n password: z.string(),\n});\n\n/**\n * Google OAuth callback schema\n */\nexport const GoogleLoginCallbackSchema = z.object({\n code: z.string().optional(),\n error: z.string().optional(),\n state: z.string().optional(),\n});\n\n/**\n * Login schema with authentication token\n */\nexport const TokenSchema = z.object({\n token: z.string(),\n});\n\n// ============================================================================\n// TENANT SCHEMAS - Organization and workspace management\n// ============================================================================\n\n/**\n * Complete tenant entity schema\n */\nexport const TenantEntitySchema = BaseEntitySchema.extend({\n name: z.string(),\n domain: z.string().optional(),\n status: EntityStatusSchema,\n package: TenantPackageSchema,\n ending_date: z.coerce.date().optional(),\n});\n\n/**\n * Tenant creation schema\n */\nexport const TenantCreateSchema = TenantEntitySchema.partial().extend({\n name: z.string().min(1),\n domain: z.string().min(1),\n});\n\n/**\n * Tenant update schema\n */\nexport const TenantUpdateSchema = TenantEntitySchema.partial();\n\n/**\n * Tenant plan entity schema - tracks plan/subscription for each tenant\n */\nexport const TenantPlanEntitySchema = BaseEntitySchema.extend({\n tenant_id: z.number(),\n package: TenantPackageSchema,\n ending_date: z.coerce.date(),\n});\n\n/**\n * Tenant plan creation schema\n */\nexport const TenantPlanCreateSchema = TenantPlanEntitySchema.partial().extend({\n tenant_id: z.number(),\n package: TenantPackageSchema,\n});\n\n/**\n * Tenant plan update schema\n */\nexport const TenantPlanUpdateSchema = TenantPlanEntitySchema.partial();\n\n// ============================================================================\n// MEETING SCHEMAS - Video meeting management and operations\n// ============================================================================\n\n/**\n * Meeting entity schema\n */\nexport const MeetingSchema = BaseEntitySchema.extend({\n tenant_id: z.number(),\n user_id: z.number(),\n meeting_id: z.string(),\n meeting_token: z.string().optional(),\n start_time: z.coerce.date(),\n minutes: z.number(),\n meeting_status: MeetingStatusSchema,\n});\n\n/**\n * Meeting creation schema\n */\nexport const MeetingCreateSchema = MeetingSchema.partial().extend({\n start_time: z.coerce.date(),\n});\n\n/**\n * Meeting update schema\n */\nexport const MeetingUpdateSchema = MeetingSchema.partial();\n\n/**\n * Meeting response schema\n */\nexport const MeetingEntitySchema = BaseEntitySchema.extend({\n user_id: z.number(),\n tenant_id: z.number(),\n meeting_id: z.string(),\n meeting_token: z.string().optional(),\n start_time: z.coerce.date(),\n minutes: z.number(),\n meeting_status: MeetingStatusSchema,\n});\n\n/**\n * Meeting join request schema\n */\nexport const MeetingJoinRequestSchema = z.object({\n client: z.object({\n id: z.number(),\n password: z.string().optional(),\n }),\n guest: z.object({\n name: z.string(),\n email: z.string().email().optional(),\n password: z.string().optional(),\n }),\n token: z.string().optional(),\n});\n\n// ============================================================================\n// KNOWLEDGE SCHEMAS - Knowledge base and document management\n// ============================================================================\n\n/**\n * Knowledge base document schema\n */\nexport const KnowledgeEntitySchema = BaseEntitySchema.extend({\n tenant_id: z.number(),\n connection_id: z.number().optional(),\n file_name: z.string(),\n file_size: z.number(),\n file_type: KnowledgeTypeSchema,\n file_url: z.string(),\n file_id: z.string().optional(),\n source_url: z.string().optional(), // Original URL for URL-based documents\n});\n\n// ============================================================================\n// SIMULATION SCHEMAS - Application simulation and testing\n// ============================================================================\n\n/**\n * Simulation action schemas\n */\nexport const GoToUrlActionSchema = z.object({\n go_to_url: z.object({\n url: z.string(),\n new_tab: z.boolean(),\n }),\n});\n\nexport const ClickElementByIndexActionSchema = z.object({\n click_element_by_index: z.object({\n index: z.number(),\n }),\n});\n\nexport const InputTextActionSchema = z.object({\n input_text: z.object({\n index: z.number(),\n text: z.string(),\n clear_existing: z.boolean(),\n }),\n});\n\nexport const WriteFileActionSchema = z.object({\n write_file: z.object({\n file_name: z.string(),\n content: z.string(),\n append: z.boolean(),\n trailing_newline: z.boolean(),\n leading_newline: z.boolean(),\n }),\n});\n\nexport const GetOtpActionSchema = z.object({\n get_otp: z.object({\n question: z.string(),\n }),\n});\n\nexport const DoneActionSchema = z.object({\n done: z.object({\n success: z.boolean(),\n message: z.string().optional(),\n }),\n});\n\nexport const WaitActionSchema = z.object({\n wait: z.object({\n seconds: z.number(),\n }),\n});\n\nexport const ReloadPageActionSchema = z.object({\n reload_page: z.object({}),\n});\n\nexport const OpenNewTabActionSchema = z.object({\n open_new_tab: z.object({\n url: z.string(),\n }),\n});\n\nexport const NavigateToUrlActionSchema = z.object({\n navigate_to_url: z.object({\n url: z.string(),\n }),\n});\n\n/**\n * Union schema for all possible simulation actions\n */\nexport const SimulationActionSchema = z.union([\n GoToUrlActionSchema,\n ClickElementByIndexActionSchema,\n InputTextActionSchema,\n WriteFileActionSchema,\n GetOtpActionSchema,\n DoneActionSchema,\n WaitActionSchema,\n ReloadPageActionSchema,\n OpenNewTabActionSchema,\n NavigateToUrlActionSchema,\n]);\n\n/**\n * Model output schema for simulation step\n */\nexport const SimulationModelOutputSchema = z.object({\n evaluation_previous_goal: z.string().optional(),\n memory: z.string().optional(),\n next_goal: z.string().optional(),\n action: z.array(SimulationActionSchema).optional(),\n thinking: z.string().optional(),\n});\n\n/**\n * Result schema for simulation step\n */\nexport const SimulationResultSchema = z.object({\n is_done: z.boolean(),\n success: z.boolean().optional(),\n long_term_memory: z.string().optional(),\n extracted_content: z.string().optional(),\n include_extracted_content_only_once: z.boolean().optional(),\n include_in_memory: z.boolean().optional(),\n error: z.string().optional(),\n metadata: z\n .object({\n click_x: z.number().optional(),\n click_y: z.number().optional(),\n new_tab_opened: z.boolean().optional(),\n input_x: z.number().optional(),\n input_y: z.number().optional(),\n })\n .optional(),\n});\n\n/**\n * Browser tab schema\n */\nexport const BrowserTabSchema = z.object({\n url: z.string(),\n title: z.string(),\n target_id: z.string(),\n parent_target_id: z.string().nullable(),\n});\n\n/**\n * Interacted element schema\n */\nexport const InteractedElementSchema = z.object({\n node_id: z.number(),\n backend_node_id: z.number(),\n frame_id: z.string().nullable(),\n node_type: z.number(),\n node_value: z.string(),\n node_name: z.string(),\n attributes: z.record(z.string()),\n x_path: z.string(),\n element_hash: z.number(),\n bounds: z.object({\n x: z.number(),\n y: z.number(),\n width: z.number(),\n height: z.number(),\n }),\n});\n\n/**\n * Browser state schema for simulation step\n */\nexport const SimulationStateSchema = z.object({\n tabs: z.array(BrowserTabSchema),\n screenshot_path: z.string().nullable(),\n interacted_element: z.array(InteractedElementSchema.nullable()),\n url: z.string(),\n title: z.string(),\n});\n\n/**\n * Metadata schema for simulation step\n */\nexport const SimulationStepMetadataSchema = z.object({\n step_start_time: z.number(),\n step_end_time: z.number(),\n step_number: z.number(),\n});\n\n/**\n * Individual simulation step schema\n */\nexport const SimulationStepSchema = z.object({\n model_output: SimulationModelOutputSchema.nullable(),\n result: z.array(SimulationResultSchema),\n state: SimulationStateSchema,\n metadata: SimulationStepMetadataSchema,\n});\n\n/**\n * Complete simulation history schema\n */\nexport const SimulationHistorySchema = z.object({\n history: z.array(SimulationStepSchema),\n});\n\n/**\n * App simulation schema\n */\nexport const SimulationEntitySchema = BaseEntitySchema.extend({\n connection_id: z.number(),\n agent_id: z.number(),\n job_id: z.string(),\n status: z.string(),\n status_message: z.string(),\n path: z.string(),\n instructions: z.string(),\n num_steps: z.number().int().nonnegative(),\n agent_name: z.string().optional(),\n});\n\n/**\n * Simulation creation schema\n */\nexport const SimulationCreateSchema = SimulationEntitySchema.partial().extend({\n connection_id: z.number(),\n agent_id: z.number(),\n instructions: z.string(),\n max_steps: z.number().int().positive().max(1000).optional(),\n timeout: z.number().positive().max(360).optional(), // Max 6 hours in minutes\n});\n\n/**\n * Simulation update schema\n */\nexport const SimulationUpdateSchema = z.object({\n job_id: z.string().optional(),\n status: z.string(),\n status_message: z.string(),\n num_steps: z.number().int().nonnegative().optional(),\n});\n\n/**\n * Simulation answer submission schema\n */\nexport const SimulationAnswerSchema = z.object({\n answer: z.string().min(1),\n});\n\n/**\n * Simulation progress entry schema\n */\nexport const SimulationProgressEntitySchema = z.object({\n id: z.number(),\n simulation_id: z.number(),\n status: z.string(),\n status_message: z.string().nullable(),\n num_steps: z.number().int().nonnegative().nullable(),\n created_at: z.coerce.date(),\n});\n\n/**\n * Mindmap edge schema - transition from one node to another via an action\n */\nexport const MindMapEdgeSchema = z.object({\n start: z.string(),\n end: z.string(),\n action: z.string(),\n});\n\n/**\n * Mindmap node schema - unique web state (page + situation) during simulation\n */\nexport const MindMapNodeSchema = z.object({\n id: z.string(),\n screenshots: z.array(z.string()),\n title: z.string(),\n url: z.string(),\n state: z.array(z.string()),\n mentions: z.array(z.string()),\n});\n\n/**\n * Mindmap schema - knowledge graph showing nodes and edges from simulation\n */\nexport const MindMapSchema = z.object({\n nodes: z.array(MindMapNodeSchema),\n edges: z.array(MindMapEdgeSchema),\n});\n\n// ============================================================================\n// AGENT SCHEMAS - AI agent creation and management\n// ============================================================================\n\n/**\n * Complete agent entity schema\n */\nexport const AgentEntitySchema = BaseEntitySchema.extend({\n tenant_id: z.number(),\n user_id: z.number(),\n connection_id: z.number(),\n agent_name: z.string(),\n agent_type: AgentTypeSchema,\n agent_voice: AgentVoiceSchema,\n agent_description: z.string(),\n instructions: z.string().optional(),\n image_url: z.string().optional(),\n vector_store_id: z.string().optional(),\n pdf_search_index_id: z.string().optional(),\n json_search_index_id: z.string().optional(),\n node_index_id: z.string().optional(),\n edge_index_id: z.string().optional(),\n mindmap_url: z.string().optional(),\n status: AgentStatusSchema,\n status_message: z.string().optional(),\n tenant: TenantEntitySchema.optional(),\n user: UserEntitySchema.optional(),\n knowledge: z.array(KnowledgeEntitySchema).optional(),\n simulations: z.array(SimulationEntitySchema).optional(),\n});\n\nconst KnowledgeIdsSchema = z\n .string()\n .transform((str) => JSON.parse(str) as number[])\n .pipe(z.array(z.coerce.number()));\n\nconst SimulationIdsSchema = z\n .string()\n .transform((str) => JSON.parse(str) as number[])\n .pipe(z.array(z.coerce.number()));\n\n/**\n * Agent creation schema\n */\nexport const AgentCreateSchema = AgentEntitySchema.partial().extend({\n connection_id: z.coerce.number(),\n agent_name: z.string(),\n agent_type: AgentTypeSchema,\n agent_voice: AgentVoiceSchema,\n agent_description: z.string(),\n instructions: z.string(),\n file: z.custom<Express.Multer.File>(),\n knowledge_ids: KnowledgeIdsSchema,\n simulation_ids: SimulationIdsSchema,\n});\n\n/**\n * Agent update schema\n */\nexport const AgentUpdateSchema = AgentEntitySchema.partial().extend({\n file: z.custom<Express.Multer.File>(),\n knowledge_ids: KnowledgeIdsSchema,\n simulation_ids: SimulationIdsSchema,\n});\n\n/**\n * Agent knowledge search configuration schema\n */\nexport const AgentSearchConfigSchema = z.object({\n contentType: z.enum(['document', 'video', 'automation_log', 'screenshot', 'all']).optional(),\n context: z.string().optional(),\n previousActions: z.array(z.string()).optional(),\n top: z.coerce.number().min(1).max(100).optional(),\n minConfidence: z.coerce.number().min(0).max(1).optional(),\n entities: z.array(z.string()).optional(),\n useVectorSearch: z.boolean().optional(),\n vectorThreshold: z.coerce.number().min(0).max(1).optional(),\n});\n\n/**\n * Search document schema (matches Azure Search document structure)\n */\nexport const SearchDocumentSchema = z.object({\n id: z.string(),\n content: z.string(),\n contentType: z.enum(['document', 'video', 'automation_log', 'screenshot']),\n sourceFile: z.string(),\n sourceType: z.string(),\n metadata: z.string(), // JSON stringified\n confidence: z.number(),\n keyPhrases: z.array(z.string()),\n entities: z.array(z.string()), // Format: \"text:category:confidence\"\n sentiment: z.string(), // JSON stringified\n vectorContent: z.array(z.number()),\n});\n\n/**\n * Search result schema (Azure Search result wrapper)\n */\nexport const SearchResultSchema = z.object({\n document: SearchDocumentSchema,\n score: z.number(),\n highlights: z.record(z.array(z.string())).optional(),\n});\n\n/**\n * Agent knowledge search request schema\n */\nexport const AgentKnowledgeSearchRequestSchema = z.object({\n query: z.string().min(1, 'Search query is required'),\n searchConfig: AgentSearchConfigSchema.optional(),\n});\n\n/**\n * Agent knowledge search response schema\n */\nexport const AgentKnowledgeSearchResponseSchema = z.object({\n results: z.array(SearchResultSchema),\n totalCount: z.number(),\n query: z.string(),\n searchConfig: AgentSearchConfigSchema.optional(),\n});\n\n/**\n * Agent simulation index request schema\n */\nexport const AgentSimulationIndexRequestSchema = z.object({\n simulation_id: z.coerce.number().positive('Simulation ID must be a positive number'),\n});\n\n/**\n * Agent simulation index response schema\n */\nexport const AgentSimulationIndexResponseSchema = z.object({\n agent: AgentEntitySchema,\n simulation_id: z.number(),\n knowledge_id: z.number(),\n pdf_search_index_id: z.string().optional(),\n json_search_index_id: z.string().optional(),\n message: z.string(),\n});\n\n/**\n * Agent index callback request schema\n */\nexport const AgentIndexCallbackRequestSchema = z.object({\n agent_id: z.coerce.number().positive('Agent ID must be a positive number'),\n index_name: z.string().min(1, 'Index name is required'),\n index_type: z.enum(['pdf', 'json', 'node_index', 'edge_index', 'mindmap'], {\n message: 'Index type must be pdf, json, node_index, edge_index, or mindmap' as const,\n }),\n status: z.enum(['success', 'failed'], { message: 'Status must be success or failed' }),\n status_message: z.string().optional(),\n});\n\n/**\n * Agent index callback response schema\n */\nexport const AgentIndexCallbackResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\n// ============================================================================\n// CONNECTION SCHEMAS - Connection management (apps and websites)\n// ============================================================================\n\n/**\n * Connection entity schema\n */\nexport const ConnectionEntitySchema = BaseEntitySchema.extend({\n tenant_id: z.number(),\n name: z.string(),\n type: ConnectionTypeSchema,\n url: z.string().optional(),\n username: z.string().optional(),\n password: z.string().optional(),\n allowed_domains: z.array(z.string()).optional().default([]),\n});\n\n/**\n * Connection creation schema\n */\nexport const ConnectionCreateSchema = ConnectionEntitySchema.partial().extend({\n type: ConnectionTypeSchema,\n name: z.string().min(1),\n url: z.string(),\n allowed_domains: z.array(z.string()).optional().default([]),\n});\n\n/**\n * Connection update schema\n */\nexport const ConnectionUpdateSchema = ConnectionEntitySchema.partial();\n\n// ============================================================================\n// INTEGRATION SCHEMAS - Integration management (widget, slack, etc.)\n// ============================================================================\n\n/**\n * Zod schema for widget chips\n */\nexport const WidgetChipSchema = z.object({\n chip_mode: z.enum(['show', 'tell', 'do']),\n chip_text: z.string(),\n});\n\n/**\n * Zod schema for widget settings\n */\nexport const WidgetSettingsDataSchema = z.object({\n widget_enabled: z.boolean(),\n widget_appearance: z.enum(['default', 'compact', 'full']),\n widget_position: z.enum(['bottom_left', 'bottom_right']),\n widget_device: z.enum(['desktop', 'mobile', 'desktop_mobile']),\n widget_header: z.string(),\n widget_body: z.string(),\n widget_greeting: z.string(),\n widget_feature_tell: z.boolean(),\n widget_feature_show: z.boolean(),\n widget_feature_do: z.boolean(),\n widget_feature_human: z.boolean(),\n widget_background_color: z.string(),\n widget_text_color: z.string(),\n widget_border_color: z.string(),\n widget_accent_color: z.string(),\n widget_secondary_color: z.string(),\n widget_border_radius: z.string(),\n widget_font_size: z.string(),\n widget_width: z.string(),\n widget_height: z.string(),\n widget_shadow: z.string(),\n widget_animation_duration: z.string(),\n widget_fade_duration: z.string(),\n widget_bounce_effect: z.boolean(),\n widget_chips: z.array(WidgetChipSchema),\n});\n\n/**\n * Slack integration settings schema (example for future use)\n */\nexport const SlackSettingsDataSchema = z.object({\n webhook_url: z.string().url(),\n channel: z.string(),\n bot_token: z.string(),\n notifications_enabled: z.boolean(),\n});\n\n/**\n * Integration entity schema\n */\nexport const IntegrationEntitySchema = BaseEntitySchema.extend({\n connection_id: z.number(),\n agent_id: z.number(),\n type: IntegrationTypeSchema,\n settings: z.union([WidgetSettingsDataSchema, SlackSettingsDataSchema]),\n status: EntityStatusSchema,\n marketrix_id: z.string(),\n marketrix_key: z.string(),\n snippet: z.string().optional(),\n});\n\n/**\n * Integration information schema\n */\nexport const IntegrationInfoSchema = IntegrationEntitySchema.extend({\n connection: ConnectionEntitySchema.partial(),\n tenant: TenantEntitySchema.partial(),\n user: UserEntitySchema.partial(),\n agent: AgentEntitySchema.partial(),\n});\n\n/**\n * Connection with integrations schema - matches API response structure\n */\nexport const ConnectionWithIntegrationsSchema = ConnectionEntitySchema.extend({\n integrations: z.array(IntegrationEntitySchema),\n agents: z.array(AgentEntitySchema).optional(),\n});\n\n/**\n * Integration creation schema\n */\nexport const IntegrationCreateSchema = IntegrationEntitySchema.partial().extend({\n connection_id: z.number().positive(),\n agent_id: z.number().positive(),\n type: IntegrationTypeSchema,\n settings: z.union([WidgetSettingsDataSchema, SlackSettingsDataSchema]).optional(),\n});\n\n/**\n * Integration update schema\n */\nexport const IntegrationUpdateSchema = IntegrationEntitySchema.partial();\n\n// ============================================================================\n// TOUR SCHEMAS - Interactive tour and guidance system\n// ============================================================================\n\nexport const TourStepSchema = z.object({\n step_number: z.number(),\n action: z.string(),\n element: z.string(),\n text: z.string(),\n description: z.string(),\n selector: z.string(),\n});\n\nexport const TourAnswerSchema = z.array(TourStepSchema);\n\n/**\n * Tour entity schema\n */\nexport const TourEntitySchema = BaseEntitySchema.extend({\n connection_id: z.number(),\n question: z.string(),\n answer: TourAnswerSchema,\n});\n\n// ============================================================================\n// CHAT SCHEMAS - AI-powered chat and conversation management\n// ============================================================================\n\n/**\n * Chat request schema\n * Requires either: marketrix_id + marketrix_key OR agent_id + connection_id\n */\nexport const ChatRequestSchema = z\n .object({\n marketrix_id: z.string().optional(),\n marketrix_key: z.string().optional(),\n agent_id: z.number().positive().optional(),\n connection_id: z.number().positive().optional(),\n chat_id: z.string().optional(), // Optional since it comes from path params in some routes\n content: z.string(),\n })\n .refine(\n (data) => (data.marketrix_id && data.marketrix_key) ?? (data.agent_id && data.connection_id),\n {\n message:\n 'Either marketrix_id + marketrix_key or both agent_id + connection_id must be provided',\n }\n );\n\n/**\n * Chat response entity schema\n */\nexport const ChatResponseSchema = z.object({\n text: z.string(),\n});\n\n// ============================================================================\n// ACTIVITY LOG SCHEMAS - System activity tracking and auditing\n// ============================================================================\n\n/**\n * Action log metadata schema\n * Captures common metadata fields used across different action log types\n */\nexport const ActionLogMetadataSchema = z\n .object({\n details: z.string().optional(),\n id: z.number().optional(),\n type: z.string().optional(),\n name: z.string().optional(),\n target_user_id: z.number().optional(),\n target_user_email: z.string().optional(),\n reason: z.string().optional(),\n assigned_role: z.string().optional(),\n new_role: z.string().optional(),\n previous_role: z.string().optional(),\n tenant_name: z.string().optional(),\n tenant_domain: z.string().optional(),\n ip_address: z.string().optional(),\n user_agent: z.string().optional(),\n integration_type: z.string().optional(),\n created_by: z.number().optional(),\n })\n .passthrough(); // Allow additional fields for flexibility (e.g., updatedData, previousData, createdData)\n\n/**\n * Action log entity schema\n */\nexport const ActionLogEntitySchema = BaseEntitySchema.extend({\n tenant_id: z.number(),\n user_id: z.number(),\n type: ActionLogTypeSchema,\n metadata: ActionLogMetadataSchema.optional(),\n});\n\n/**\n * Action log creation schema\n */\nexport const ActionLogCreateSchema = ActionLogEntitySchema.partial().extend({\n type: ActionLogTypeSchema,\n});\n\n// ============================================================================\n// CHAT SCHEMAS - AI-powered chat and conversation management\n// ============================================================================\n\n/**\n * Chat entity schema - matches the Chat model structure\n */\nexport const ChatEntitySchema = BaseEntitySchema.extend({\n user_id: z.number(),\n connection_id: z.number(),\n agent_id: z.number(),\n chat_id: z.string(),\n role: ChatRoleSchema,\n source: ChatSourceSchema,\n message: z.string(),\n});\n\n// ============================================================================\n// MIGRATION SCHEMAS - Database migration and system updates\n// ============================================================================\n\n/**\n * Migration prepare schema\n */\nexport const MigrationPrepareSchema = z.object({\n migration_type: z.string().optional(),\n dry_run: z.boolean().default(true),\n});\n\n/**\n * Migration run schema\n */\nexport const MigrationRunSchema = z.object({\n migration_type: z.string().optional(),\n backup: z.boolean().default(true),\n});\n\n// ============================================================================\n// FILE UPLOAD RESPONSE SCHEMAS - Express.Multer.File upload and media handling\n// ============================================================================\n\n/**\n * File upload response schema\n */\nexport const FileUploadResponseSchema = z.object({\n url: z.string(),\n});\n\n// ============================================================================\n// SERVICE SCHEMAS - Internal service communication and data transfer\n// ============================================================================\n\n/**\n * Meeting creation data schema for services\n */\nexport const MeetingCreationDataSchema = z.object({\n start_time: z.coerce.date(),\n minutes: z.number(),\n tenant_id: z.number(),\n user_id: z.number(),\n});\n\n/**\n * Meeting end data schema for services\n */\nexport const MeetingEndDataSchema = z.object({\n meeting_id: z.string(),\n});\n\n/**\n * Upload user logo data schema\n */\nexport const UploadUserLogoDataSchema = z.object({\n user_id: z.number(),\n file: z.custom<Express.Multer.File>(),\n});\n\n/**\n * User prompt data schema for TaskPilot\n */\nexport const UserPromptDataSchema = z.object({\n user_id: z.number(),\n connection_id: z.number(),\n source: ChatSourceSchema,\n prompt: z.string(),\n status: z.string(),\n});\n\n/**\n * Usage stats response schema\n */\nexport const UsageStatsSchema = z.object({\n user_id: z.number(),\n limit: z.number(),\n used: z.number(),\n remaining: z.number(),\n});\n\n/**\n * Update chat count data schema\n */\nexport const UpdateChatCountDataSchema = z.object({\n user_id: z.number(),\n tenant_id: z.number(),\n chat_count: z.number(),\n prompt_text: z.string(),\n metadata: z.record(z.string(), z.string()).optional(),\n});\n\n/**\n * State auth payload schema\n */\nexport const StateAuthPayloadSchema = z.object({\n ts: z.number(),\n redirect_uri: z.string(),\n});\n\n/**\n * State auth result schema\n */\nexport const StateAuthResultSchema = z.object({\n redirect_uri: z.string(),\n});\n\n/**\n * AI agent status email data schema\n */\n\n/**\n * Mail options data schema\n */\nexport const MailOptionsDataSchema = z.object({\n to: z.string(),\n subject: z.string(),\n template: z.string(),\n context: z.record(z.string(), z.string()),\n});\n\n/**\n * Meeting email data schema\n */\nexport const MeetingEmailDataSchema = MailOptionsDataSchema;\n\n// ============================================================================\n// CONSTANTS - System-wide constants and configuration values\n// ============================================================================\n\n/**\n * Initial tenant ID for system setup\n */\nexport const INITIAL_TENANT_ID = 1;\n\n/**\n * Initial prompt limit for new users\n */\nexport const INITIAL_PROMPT_LIMIT = 50;\n\n/**\n * OAuth authentication scopes\n */\nexport const AUTH_SCOPES = ['openid', 'email', 'profile'];\n\n// ============================================================================\n// TASKPILOT SCHEMAS - TaskPilot-specific types\n// ============================================================================\n\n/**\n * TaskPilot prompt metadata schema\n */\nexport const TaskPilotPromptMetadataSchema = z.object({\n step_number: z.number().optional(),\n duration: z.string().optional(),\n source: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\n/**\n * TaskPilot prompt schema\n */\nexport const TaskPilotPromptSchema = z.object({\n id: z.string(),\n title: z.string(),\n description: z.string(),\n created_at: z.string(),\n user_id: z.string(),\n user: z.object({\n email: z.string().optional(),\n name: z.string().optional(),\n }),\n prompt_text: z.string().optional(),\n response_text: z.string().optional(),\n status: z.string().optional(),\n createdAt: z.string().optional(),\n metadata: TaskPilotPromptMetadataSchema.optional(),\n taskpilotUser: z\n .object({\n name: z.string().optional(),\n email: z.string().optional(),\n })\n .optional(),\n question: z.string().optional(),\n response: z.string().optional(),\n});\n\n// ============================================================================\n// TYPE EXPORTS - Essential TypeScript types for external use\n// ============================================================================\n\n/**\n * Core enum types\n */\nexport type UserRole = z.infer<typeof UserRoleSchema>;\nexport type UserPlan = z.infer<typeof UserPlanSchema>;\nexport type EntityStatus = z.infer<typeof EntityStatusSchema>;\nexport type TenantPackage = z.infer<typeof TenantPackageSchema>;\nexport type AgentType = z.infer<typeof AgentTypeSchema>;\nexport type AgentVoice = z.infer<typeof AgentVoiceSchema>;\nexport type AgentStatus = z.infer<typeof AgentStatusSchema>;\nexport type KnowledgeType = z.infer<typeof KnowledgeTypeSchema>;\nexport type MeetingStatus = z.infer<typeof MeetingStatusSchema>;\nexport type ChatStatus = z.infer<typeof ChatRoleSchema>;\nexport type ChatSource = z.infer<typeof ChatSourceSchema>;\nexport type InstructionType = z.infer<typeof InstructionTypeSchema>;\nexport type ConnectionType = z.infer<typeof ConnectionTypeSchema>;\nexport type IntegrationType = z.infer<typeof IntegrationTypeSchema>;\nexport type ActionLogType = z.infer<typeof ActionLogTypeSchema>;\n\n/**\n * File and upload types\n */\nexport type FileData = z.infer<typeof FileSchema>;\n\n/**\n * Service and data transfer types\n */\nexport type ActionLogData = z.infer<typeof ActionLogEntitySchema>;\nexport type ActionLogMetadataData = z.infer<typeof ActionLogMetadataSchema>;\nexport type UpdateChatCountData = z.infer<typeof UpdateChatCountDataSchema>;\nexport type TokenData = z.infer<typeof TokenSchema>;\nexport type UserCreateData = z.infer<typeof UserCreateSchema>;\nexport type UserUpdateData = z.infer<typeof UserUpdateSchema>;\nexport type BatchUserCreateData = z.infer<typeof BatchUserCreateSchema>;\nexport type BatchUserCreateResult = z.infer<typeof BatchUserCreateResultSchema>;\nexport type PasswordResetRequest = z.infer<typeof PasswordResetRequestSchema>;\nexport type PasswordUpdateData = z.infer<typeof PasswordUpdateSchema>;\nexport type GoogleLoginCallbackData = z.infer<typeof GoogleLoginCallbackSchema>;\nexport type StateAuthPayload = z.infer<typeof StateAuthPayloadSchema>;\nexport type StateAuthResult = z.infer<typeof StateAuthResultSchema>;\nexport type UploadUserLogoData = z.infer<typeof UploadUserLogoDataSchema>;\nexport type TenantReadData = z.infer<typeof TenantCreateSchema>;\nexport type TenantUpdateData = z.infer<typeof TenantUpdateSchema>;\nexport type IntegrationInfoData = z.infer<typeof IntegrationInfoSchema>;\nexport type MeetingCreationData = z.infer<typeof MeetingCreationDataSchema>;\nexport type MeetingEndData = z.infer<typeof MeetingEndDataSchema>;\nexport type MeetingUpdateData = z.infer<typeof MeetingUpdateSchema>;\nexport type AgentCreationData = z.infer<typeof AgentCreateSchema>;\nexport type AgentUpdateData = z.infer<typeof AgentUpdateSchema>;\nexport type AgentSearchConfig = z.infer<typeof AgentSearchConfigSchema>;\nexport type SearchDocument = z.infer<typeof SearchDocumentSchema>;\nexport type SearchResult = z.infer<typeof SearchResultSchema>;\nexport type AgentKnowledgeSearchRequest = z.infer<typeof AgentKnowledgeSearchRequestSchema>;\nexport type AgentKnowledgeSearchResponse = z.infer<typeof AgentKnowledgeSearchResponseSchema>;\nexport type AgentSimulationIndexRequest = z.infer<typeof AgentSimulationIndexRequestSchema>;\nexport type AgentSimulationIndexResponse = z.infer<typeof AgentSimulationIndexResponseSchema>;\nexport type AgentIndexCallbackRequest = z.infer<typeof AgentIndexCallbackRequestSchema>;\nexport type AgentIndexCallbackResponse = z.infer<typeof AgentIndexCallbackResponseSchema>;\nexport type FileUploadResponse = z.infer<typeof FileUploadResponseSchema>;\nexport type ChatRequest = z.infer<typeof ChatRequestSchema>;\nexport type ChatResponseData = z.infer<typeof ChatResponseSchema>;\nexport type MailOptionsData = z.infer<typeof MailOptionsDataSchema>;\nexport type MeetingEmailData = z.infer<typeof MeetingEmailDataSchema>;\n\n// ============================================================================\n// MODEL ATTRIBUTES - TypeScript interfaces for Sequelize models\n// ============================================================================\n\n/**\n * Model attribute types for Sequelize models\n */\nexport type UserData = z.infer<typeof UserEntitySchema>;\nexport type TenantData = z.infer<typeof TenantEntitySchema>;\nexport type TenantPlanData = z.infer<typeof TenantPlanEntitySchema>;\nexport type AgentData = z.infer<typeof AgentEntitySchema>;\nexport type MeetingData = z.infer<typeof MeetingEntitySchema>;\nexport type KnowledgeData = z.infer<typeof KnowledgeEntitySchema>;\nexport type ConnectionData = z.infer<typeof ConnectionEntitySchema>;\nexport type ConnectionCreateData = z.infer<typeof ConnectionCreateSchema>;\nexport type ConnectionUpdateData = z.infer<typeof ConnectionUpdateSchema>;\nexport type ConnectionWithIntegrationsData = z.infer<typeof ConnectionWithIntegrationsSchema>;\nexport type IntegrationData = z.infer<typeof IntegrationEntitySchema>;\nexport type IntegrationCreateData = z.infer<typeof IntegrationCreateSchema>;\nexport type IntegrationUpdateData = z.infer<typeof IntegrationUpdateSchema>;\nexport type WidgetSettingsData = z.infer<typeof WidgetSettingsDataSchema>;\nexport type SlackSettingsData = z.infer<typeof SlackSettingsDataSchema>;\nexport type WidgetSettingsKey = keyof z.infer<typeof WidgetSettingsDataSchema>;\nexport type WidgetChip = z.infer<typeof WidgetChipSchema>;\nexport type SlackSettingsKey = keyof z.infer<typeof SlackSettingsDataSchema>;\nexport type SimulationData = z.infer<typeof SimulationEntitySchema>;\nexport type SimulationStepData = z.infer<typeof SimulationStepSchema>;\nexport type SimulationHistoryData = z.infer<typeof SimulationHistorySchema>;\nexport type SimulationModelOutputData = z.infer<typeof SimulationModelOutputSchema>;\nexport type SimulationResultData = z.infer<typeof SimulationResultSchema>;\nexport type SimulationStateData = z.infer<typeof SimulationStateSchema>;\nexport type SimulationStepMetadataData = z.infer<typeof SimulationStepMetadataSchema>;\nexport type SimulationActionData = z.infer<typeof SimulationActionSchema>;\nexport type BrowserTabData = z.infer<typeof BrowserTabSchema>;\nexport type InteractedElementData = z.infer<typeof InteractedElementSchema>;\nexport type TaskPilotPromptMetadataData = z.infer<typeof TaskPilotPromptMetadataSchema>;\nexport type TaskPilotPromptData = z.infer<typeof TaskPilotPromptSchema>;\nexport type TourData = z.infer<typeof TourEntitySchema>;\nexport type TourAnswerData = z.infer<typeof TourAnswerSchema>;\nexport type TourStepData = z.infer<typeof TourStepSchema>;\nexport type PasswordResetData = z.infer<typeof PasswordResetEntitySchema>;\nexport type ChatData = z.infer<typeof ChatEntitySchema>;\nexport type UsageStatsData = z.infer<typeof UsageStatsSchema>;\nexport type SimulationProgressData = z.infer<typeof SimulationProgressEntitySchema>;\nexport type MindMapEdgeData = z.infer<typeof MindMapEdgeSchema>;\nexport type MindMapNodeData = z.infer<typeof MindMapNodeSchema>;\nexport type MindMapData = z.infer<typeof MindMapSchema>;\n","/**\n * API Routes Contract Definition\n *\n * This file defines the Marketrix API contract, using ts-rest for type safety and documentation.\n * It includes all endpoints grouped by functionality, with useful descriptions.\n *\n * Route Categories:\n * - Root: System health and index endpoints\n * - Auth: User authentication, OAuth, and password management\n * - User: User account management and operations\n * - Tenant: Organization and workspace management\n * - Agent: AI agent creation, management, and operations\n * - Meeting: Video meeting scheduling, joining, and management\n * - Chat: AI-powered chat and conversation management\n * - Knowledge: Knowledge base and document management\n * - Integration: Third-party integrations (e.g., Slack, widgets)\n * - Connection: External service connection management\n * - Simulation: Application simulation and testing\n * - Tour: Interactive tour and guidance system\n * - Activity Log: System activity tracking and auditing\n * - App Config: In-app configuration management\n * - TaskPilot: AI prompt and automation management\n * - Rule: Business rule and automation rule management\n * - Migration: Database migration and system updates\n * - File: File upload and management\n *\n * All routes include proper HTTP status codes:\n * - 200: Success\n * - 400: Bad Request\n * - 401: Unauthorized (authentication required)\n * - 403: Forbidden (insufficient permissions)\n * - 500: Internal Server Error\n */\n\nimport { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nimport {\n ActionLogCreateSchema,\n ActionLogEntitySchema,\n ActionLogTypeSchema,\n AgentCreateSchema,\n AgentEntitySchema,\n AgentIndexCallbackRequestSchema,\n AgentIndexCallbackResponseSchema,\n AgentKnowledgeSearchRequestSchema,\n AgentKnowledgeSearchResponseSchema,\n AgentSimulationIndexRequestSchema,\n AgentSimulationIndexResponseSchema,\n AgentUpdateSchema,\n BatchUserCreateResultSchema,\n BatchUserCreateSchema,\n ChatRequestSchema,\n ChatResponseSchema,\n ConnectionCreateSchema,\n ConnectionEntitySchema,\n ConnectionTypeSchema,\n ConnectionUpdateSchema,\n EntityStatusSchema,\n FileSchema,\n FileUploadResponseSchema,\n GoogleLoginCallbackSchema,\n HealthResponseSchema,\n IndexResponseSchema,\n IntegrationCreateSchema,\n IntegrationEntitySchema,\n IntegrationTypeSchema,\n IntegrationUpdateSchema,\n KnowledgeEntitySchema,\n KnowledgeTypeSchema,\n MeetingCreateSchema,\n MeetingEntitySchema,\n MeetingJoinRequestSchema,\n MeetingUpdateSchema,\n MigrationPrepareSchema,\n MigrationRunSchema,\n MindMapSchema,\n PasswordResetRequestSchema,\n PasswordUpdateSchema,\n R,\n SimulationAnswerSchema,\n SimulationCreateSchema,\n SimulationEntitySchema,\n SimulationProgressEntitySchema,\n SimulationStepSchema,\n SimulationUpdateSchema,\n TenantCreateSchema,\n TenantEntitySchema,\n TenantUpdateSchema,\n TokenSchema,\n TourEntitySchema,\n TourStepSchema,\n UsageStatsSchema,\n UserEntitySchema,\n UserLoginSchema,\n UserRegisterSchema,\n UserUpdateSchema,\n VerifyCaptchaSchema,\n} from './schema';\n\n// Initialize the contract\nconst c = initContract();\n\n// Main contract with all routes\nconst contract = c.router({\n // ============================================================================\n // ROOT ROUTES - Basic system endpoints\n // ============================================================================\n\n getIndex: {\n method: 'GET' as const,\n summary: 'Get API index information and basic system details',\n description: 'Returns general API information, version, and available endpoints',\n path: '/',\n responses: { 200: R.success(IndexResponseSchema) },\n },\n\n getHealth: {\n method: 'GET' as const,\n summary: 'Health check endpoint for monitoring system status',\n description: 'Returns current system health, database connectivity, and service status',\n path: '/health',\n responses: { 200: R.success(HealthResponseSchema) },\n },\n\n // ============================================================================\n // AUTHENTICATION ROUTES - User authentication and authorization\n // ============================================================================\n\n authCaptcha: {\n method: 'POST' as const,\n summary: 'Verify CAPTCHA challenge to prevent automated abuse',\n description: 'Validates user-submitted CAPTCHA response against challenge',\n path: '/auth/captcha',\n body: VerifyCaptchaSchema,\n responses: { 200: R.success(z.boolean()), 400: R.error, 500: R.error },\n },\n\n authPwRegister: {\n method: 'POST' as const,\n summary: 'Register new user account with email and password',\n description: 'Creates new user account and returns user entity with authentication token',\n path: '/auth/pw/register',\n body: UserRegisterSchema,\n responses: { 200: R.success(UserEntitySchema), 400: R.error, 500: R.error },\n },\n\n authPwLogin: {\n method: 'POST' as const,\n summary: 'Authenticate user with email and password credentials',\n description: 'Validates credentials and returns authentication token and user data',\n path: '/auth/pw/login',\n body: UserLoginSchema,\n responses: { 200: R.success(TokenSchema), 400: R.error, 401: R.error, 500: R.error },\n },\n\n authPwReset: {\n method: 'POST' as const,\n summary: 'Initiate password reset process',\n description: \"Sends password reset email to user's registered email address\",\n path: '/auth/pw/reset',\n body: PasswordResetRequestSchema,\n responses: { 200: R.success(z.void()), 400: R.error, 500: R.error },\n },\n\n authPwUpdate: {\n method: 'PUT' as const,\n summary: 'Update user password using reset token',\n description: 'Allows user to set new password after receiving reset token',\n path: '/auth/pw/reset',\n body: PasswordUpdateSchema,\n responses: { 200: R.success(z.void()), 400: R.error, 401: R.error, 500: R.error },\n },\n\n authGoogleLoginByToken: {\n method: 'POST' as const,\n summary: 'Authenticate user with Google OAuth token',\n description: 'Validates Google OAuth token and returns authentication data',\n path: '/auth/google/token',\n body: TokenSchema,\n responses: { 200: R.success(TokenSchema), 400: R.error, 401: R.error, 500: R.error },\n },\n\n authGoogleLoginByRedirect: {\n method: 'GET' as const,\n summary: 'Redirect to Google OAuth authorization page',\n description: \"Initiates OAuth flow by redirecting user to Google's consent screen\",\n path: '/auth/google/redirect',\n query: z.object({ callback: z.string() }),\n responses: { 302: R.void, 400: R.error, 500: R.error },\n },\n\n authGoogleLoginCallback: {\n method: 'GET' as const,\n summary: 'Handle Google OAuth callback',\n description: 'Processes OAuth callback from Google and completes authentication',\n path: '/auth/google/callback',\n query: GoogleLoginCallbackSchema,\n responses: { 302: R.void, 400: R.error, 500: R.error },\n },\n\n authRefreshToken: {\n method: 'GET' as const,\n summary: 'Refresh current authentication token',\n description: 'Checks if provided token is valid and returns a new token',\n path: '/auth/refresh',\n responses: { 200: R.success(TokenSchema), 400: R.error, 401: R.error, 500: R.error },\n },\n\n // ============================================================================\n // MEETING ROUTES - Video meeting management and operations\n // ============================================================================\n\n meetingCreate: {\n method: 'POST' as const,\n summary: 'Create a new video meeting session',\n description: 'Creates meeting room with specified settings and returns meeting details',\n path: '/meeting',\n body: MeetingCreateSchema,\n responses: {\n 200: R.success(MeetingEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n meetingSearch: {\n method: 'GET' as const,\n summary: 'Search and filter meetings by various criteria',\n description: 'Returns list of meetings matching search parameters (tenant, client, user)',\n path: '/meeting',\n query: z.object({\n tenant_id: z.coerce.number().optional(),\n client_id: z.coerce.number().optional(),\n user_id: z.coerce.number().optional(),\n }),\n responses: {\n 200: R.success(z.array(MeetingEntitySchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n meetingCount: {\n method: 'GET' as const,\n summary: 'Get total count of meetings for a tenant',\n description: 'Returns number of meetings associated with specified tenant',\n path: '/meeting/count',\n query: z.object({ tenant_id: z.coerce.number().optional() }),\n responses: {\n 200: R.success(z.number()),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n meetingGet: {\n method: 'GET' as const,\n summary: 'Get specific meeting details by ID',\n description: 'Returns complete meeting information including participants and settings',\n path: '/meeting/:meeting_id',\n pathParams: z.object({ meeting_id: z.string() }),\n responses: {\n 200: R.success(MeetingEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n meetingUpdate: {\n method: 'PUT' as const,\n summary: 'Update meeting settings and configuration',\n description: 'Modifies meeting properties like title, duration, or participant settings',\n path: '/meeting/:meeting_id',\n pathParams: z.object({ meeting_id: z.string() }),\n body: MeetingUpdateSchema,\n responses: {\n 200: R.success(MeetingEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n meetingDelete: {\n method: 'DELETE' as const,\n summary: 'Delete a meeting and clean up associated resources',\n description: 'Removes meeting from system and cancels any scheduled sessions',\n path: '/meeting/:meeting_id',\n pathParams: z.object({ meeting_id: z.string() }),\n responses: { 200: R.success(z.void()), 400: R.error, 401: R.error, 403: R.error, 500: R.error },\n },\n\n meetingJoin: {\n method: 'POST' as const,\n summary: 'Join an existing meeting session',\n description: 'Authenticates user and provides meeting access credentials',\n path: '/meeting/:meeting_id/join',\n pathParams: z.object({ meeting_id: z.string() }),\n body: MeetingJoinRequestSchema,\n responses: {\n 200: R.success(TokenSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n meetingEnd: {\n method: 'POST' as const,\n summary: 'End an active meeting session',\n description: 'Terminates meeting and updates participant status',\n path: '/meeting/:meeting_id/end',\n pathParams: z.object({ meeting_id: z.string() }),\n body: z.void(),\n responses: { 200: R.success(z.void()), 400: R.error, 401: R.error, 403: R.error, 500: R.error },\n },\n\n // ============================================================================\n // TENANT ROUTES - Organization and workspace management\n // ============================================================================\n\n tenantCreate: {\n method: 'POST' as const,\n summary: 'Create a new tenant organization',\n description: 'Creates new tenant with specified settings and returns tenant entity',\n path: '/tenant',\n body: TenantCreateSchema,\n responses: {\n 200: R.success(TenantEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n tenantSearch: {\n method: 'GET' as const,\n summary: 'Search and filter tenants by various criteria',\n description: 'Returns list of tenants matching search parameters (name, domain, email, etc.)',\n path: '/tenant',\n query: z.object({\n name: z.string().optional(),\n domain: z.string().optional(),\n email: z.string().email().optional(),\n app_id: z.coerce.number().optional(),\n tenant_id: z.coerce.number().optional(),\n user_id: z.coerce.number().optional(),\n }),\n responses: {\n 200: R.success(z.array(TenantEntitySchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n tenantGet: {\n method: 'GET' as const,\n summary: 'Get specific tenant details by ID',\n description: 'Returns complete tenant information including settings and configuration',\n path: '/tenant/:tenant_id',\n pathParams: z.object({ tenant_id: z.coerce.number() }),\n responses: {\n 200: R.success(TenantEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n tenantUpdate: {\n method: 'PUT' as const,\n summary: 'Update tenant settings and configuration',\n description: 'Modifies tenant properties like name, domain, or feature settings',\n path: '/tenant/:tenant_id',\n pathParams: z.object({ tenant_id: z.coerce.number() }),\n body: TenantUpdateSchema,\n responses: {\n 200: R.success(TenantEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n tenantDelete: {\n method: 'DELETE' as const,\n summary: 'Delete tenant and all associated data',\n description: 'Removes tenant from system and cleans up all related resources',\n path: '/tenant/:tenant_id',\n pathParams: z.object({ tenant_id: z.coerce.number() }),\n responses: { 200: R.success(z.void()), 400: R.error, 401: R.error, 403: R.error, 500: R.error },\n },\n\n // ============================================================================\n // CONNECTION ROUTES - App and website connection management\n // ============================================================================\n\n connectionCreate: {\n method: 'POST' as const,\n summary: 'Create a new connection',\n description: 'Creates a new app or website connection for a tenant',\n path: '/connection',\n body: ConnectionCreateSchema,\n responses: {\n 200: R.success(ConnectionEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n connectionSearch: {\n method: 'GET' as const,\n summary: 'Search connections for tenant',\n description:\n 'Returns connections for the authenticated tenant, optionally filtered by type, always includes integrations',\n path: '/connections',\n query: z.object({\n type: ConnectionTypeSchema.optional(),\n }),\n responses: {\n 200: R.success(\n z.array(\n ConnectionEntitySchema.extend({\n integrations: z.array(IntegrationEntitySchema),\n })\n )\n ),\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n connectionGet: {\n method: 'GET' as const,\n summary: 'Get connection by ID',\n description:\n 'Returns specific connection details by connection ID, always includes integrations',\n path: '/connection/:connection_id',\n pathParams: z.object({ connection_id: z.coerce.number() }),\n responses: {\n 200: R.success(\n ConnectionEntitySchema.extend({\n integrations: z.array(IntegrationEntitySchema),\n })\n ),\n 404: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n connectionUpdate: {\n method: 'PUT' as const,\n summary: 'Update connection',\n description: 'Updates connection details and configuration',\n path: '/connection/:connection_id',\n pathParams: z.object({ connection_id: z.coerce.number() }),\n body: ConnectionUpdateSchema,\n responses: {\n 200: R.success(ConnectionEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 404: R.error,\n 500: R.error,\n },\n },\n\n connectionDelete: {\n method: 'DELETE' as const,\n summary: 'Delete connection',\n description: 'Removes a connection and all associated integrations',\n path: '/connection/:connection_id',\n pathParams: z.object({ connection_id: z.coerce.number() }),\n responses: { 200: R.success(z.void()), 401: R.error, 403: R.error, 404: R.error, 500: R.error },\n },\n\n // ============================================================================\n // INTEGRATION ROUTES - Widget, Slack, and other integration management\n // ============================================================================\n\n integrationCreate: {\n method: 'POST' as const,\n summary: 'Create a new integration',\n description: 'Creates a new integration (widget, slack, etc.) for a connection',\n path: '/integration',\n body: IntegrationCreateSchema,\n responses: {\n 200: R.success(IntegrationEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n integrationSearch: {\n method: 'GET' as const,\n summary: 'Search integrations for tenant',\n description: 'Search integrations by type, connection, marketrix_id, or marketrix_key',\n path: '/integration',\n query: z.object({\n type: IntegrationTypeSchema.optional(),\n connection_id: z.coerce.number().optional(),\n marketrix_id: z.string().optional(),\n marketrix_key: z.string().optional(),\n }),\n responses: {\n 200: R.success(z.array(IntegrationEntitySchema)),\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n integrationGet: {\n method: 'GET' as const,\n summary: 'Get integration by ID',\n description: 'Returns specific integration details by integration ID including snippet code',\n path: '/integration/:integration_id',\n pathParams: z.object({ integration_id: z.coerce.number() }),\n responses: {\n 200: R.success(IntegrationEntitySchema),\n 404: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n integrationUpdate: {\n method: 'PUT' as const,\n summary: 'Update integration',\n description: 'Updates integration settings and configuration',\n path: '/integration/:integration_id',\n pathParams: z.object({ integration_id: z.coerce.number() }),\n body: IntegrationUpdateSchema,\n responses: {\n 200: R.success(IntegrationEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 404: R.error,\n 500: R.error,\n },\n },\n\n integrationDelete: {\n method: 'DELETE' as const,\n summary: 'Delete integration',\n description: 'Removes an integration from a connection',\n path: '/integration/:integration_id',\n pathParams: z.object({ integration_id: z.coerce.number() }),\n responses: { 200: R.success(z.void()), 401: R.error, 403: R.error, 404: R.error, 500: R.error },\n },\n\n // ============================================================================\n // CHAT ROUTES - AI-powered chat and conversation management\n // ============================================================================\n\n chatCreate: {\n method: 'POST' as const,\n summary: 'Create a new chat thread',\n description: 'Initializes new chat thread and returns session id',\n path: '/chat',\n body: z.void(),\n responses: {\n 200: R.success(z.string()),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n chatSearch: {\n method: 'GET' as const,\n summary: 'Search chat submitted by the user',\n description: 'Returns list of chats submitted by the user',\n path: '/chat',\n query: z.object({\n user_id: z.coerce.number().optional(),\n chat_id: z.coerce.number().optional(),\n }),\n responses: {\n 200: R.success(UsageStatsSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n chatTell: {\n method: 'POST' as const,\n summary: 'Request tell mode response for given content',\n description: 'Processes explanation request and returns AI response (voice+text) as a data url',\n path: '/chat/:chat_id/tell',\n body: ChatRequestSchema,\n pathParams: z.object({ chat_id: z.string() }),\n responses: {\n 200: R.success(ChatResponseSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n chatShow: {\n method: 'POST' as const,\n summary: 'Request show mode response for given content',\n description: 'Processes user introduction and returns AI response (voice+text) as a data url',\n path: '/chat/:chat_id/show',\n body: ChatRequestSchema,\n pathParams: z.object({ chat_id: z.string() }),\n responses: {\n 200: R.success(ChatResponseSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n chatDo: {\n method: 'POST' as const,\n summary: 'Request do mode response for given content',\n description: 'Creates prompt with specified configuration and returns creation response',\n path: '/chat/:chat_id/do',\n body: ChatRequestSchema,\n pathParams: z.object({ chat_id: z.string() }),\n responses: {\n 200: R.success(UsageStatsSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n chatStop: {\n method: 'POST' as const,\n summary: 'Stop a running show/do mode task',\n description: 'Stops an ongoing task for the given chat_id',\n path: '/chat/:chat_id/stop',\n body: z.object({\n task_id: z.string().optional(),\n }),\n pathParams: z.object({ chat_id: z.string() }),\n responses: {\n 200: R.success(z.object({ status: z.string(), message: z.string() })),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n // ============================================================================\n // USER ROUTES - User account management and operations\n // ============================================================================\n\n userSearch: {\n method: 'GET' as const,\n summary: 'Search and filter users by tenant',\n description: 'Returns list of users associated with specified tenant',\n path: '/user',\n query: z.object({\n tenant_id: z.coerce.number().optional(),\n status: EntityStatusSchema.optional(),\n }),\n responses: {\n 200: R.success(z.array(UserEntitySchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n userCreateBatch: {\n method: 'POST' as const,\n summary: 'Create multiple users in batch operation',\n description: 'Processes bulk user creation and returns results for each user',\n path: '/user/batch',\n body: BatchUserCreateSchema,\n responses: {\n 200: R.success(z.array(BatchUserCreateResultSchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n userGet: {\n method: 'GET' as const,\n summary: 'Get specific user details by ID',\n description: 'Returns complete user information including profile and settings',\n path: '/user/:user_id',\n pathParams: z.object({ user_id: z.coerce.number() }),\n responses: {\n 200: R.success(UserEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n userUpdate: {\n method: 'PUT' as const,\n summary: 'Update user profile and settings',\n description: 'Modifies user properties like name, email, or preferences',\n path: '/user/:user_id',\n pathParams: z.object({ user_id: z.coerce.number() }),\n body: UserUpdateSchema,\n responses: {\n 200: R.success(UserEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n userUpdateImage: {\n method: 'PUT' as const,\n summary: 'Upload and update user profile image',\n description: 'Handles file upload for user avatar and returns upload response',\n path: '/user/:user_id/image',\n pathParams: z.object({ user_id: z.coerce.number() }),\n contentType: 'multipart/form-data' as const,\n body: FileSchema,\n responses: {\n 200: R.success(FileUploadResponseSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n userDelete: {\n method: 'DELETE' as const,\n summary: 'Delete user account and all associated data',\n description: 'Removes user from system and cleans up all related resources',\n path: '/user/:user_id',\n pathParams: z.object({ user_id: z.coerce.number() }),\n responses: { 200: R.success(z.void()), 400: R.error, 401: R.error, 403: R.error, 500: R.error },\n },\n\n userDisable: {\n method: 'POST' as const,\n summary: 'Deactivate user account without deletion',\n description: 'Disables user access while preserving data for potential reactivation',\n path: '/user/:user_id/deactivate',\n pathParams: z.object({ user_id: z.coerce.number() }),\n body: z.object({\n reason: z.string().optional(),\n }),\n responses: { 200: R.success(z.void()), 400: R.error, 401: R.error, 403: R.error, 500: R.error },\n },\n\n // ============================================================================\n // AGENT ROUTES - AI agent creation and management\n // ============================================================================\n\n agentCreate: {\n method: 'POST' as const,\n summary: 'Create new AI agent with configuration',\n description: 'Creates agent with specified settings, prompts, and returns agent entity',\n path: '/agent',\n contentType: 'multipart/form-data' as const,\n body: AgentCreateSchema,\n responses: {\n 200: R.success(AgentEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n agentSearch: {\n method: 'GET' as const,\n summary: 'Search and filter agents by tenant or user',\n description: 'Returns list of agents matching search parameters',\n path: '/agent',\n query: z.object({\n tenant_id: z.coerce.number().optional(),\n user_id: z.coerce.number().optional(),\n connection_id: z.coerce.number().optional(),\n }),\n responses: {\n 200: R.success(z.array(AgentEntitySchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n agentGet: {\n method: 'GET' as const,\n summary: 'Get specific agent details by ID',\n description: 'Returns complete agent information including configuration and settings',\n path: '/agent/:agent_id',\n pathParams: z.object({ agent_id: z.coerce.number() }),\n responses: {\n 200: R.success(AgentEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n agentMindmap: {\n method: 'GET' as const,\n summary: 'Get agent mindmap by ID',\n description: 'Returns the mindmap knowledge graph for the specified agent',\n path: '/agent/:agent_id/mindmap',\n pathParams: z.object({ agent_id: z.coerce.number() }),\n responses: {\n 200: R.success(MindMapSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n agentUpdate: {\n method: 'PUT' as const,\n summary: 'Update agent configuration and settings',\n description: 'Modifies agent properties like prompts, behavior, or appearance',\n path: '/agent/:agent_id',\n pathParams: z.object({ agent_id: z.coerce.number() }),\n contentType: 'multipart/form-data' as const,\n body: AgentUpdateSchema,\n responses: {\n 200: R.success(AgentEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n agentDelete: {\n method: 'DELETE' as const,\n summary: 'Delete agent and all associated data',\n description: 'Removes agent from system and cleans up all related resources',\n path: '/agent/:agent_id',\n pathParams: z.object({ agent_id: z.coerce.number() }),\n responses: { 200: R.success(z.void()), 400: R.error, 401: R.error, 403: R.error, 500: R.error },\n },\n\n agentSearchKnowledge: {\n method: 'POST' as const,\n summary: 'Search agent knowledge base',\n description: \"Searches the agent's knowledge base with configurable options\",\n path: '/agent/:agent_id/search',\n pathParams: z.object({ agent_id: z.coerce.number() }),\n body: AgentKnowledgeSearchRequestSchema,\n responses: {\n 200: R.success(AgentKnowledgeSearchResponseSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n agentIndexSimulation: {\n method: 'POST' as const,\n summary: 'Index simulation document into agent knowledge base',\n description:\n \"Adds a simulation document to an agent's knowledge base and refreshes the search index\",\n path: '/agent/:agent_id/index',\n pathParams: z.object({ agent_id: z.coerce.number() }),\n body: AgentSimulationIndexRequestSchema,\n responses: {\n 200: R.success(AgentSimulationIndexResponseSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n agentIndexCallback: {\n method: 'POST' as const,\n summary: 'Callback endpoint for agent index creation completion',\n description:\n 'Called by agent service when index creation completes (PDF, JSON, node_index, edge_index, or mindmap)',\n path: '/agent/index/callback',\n body: AgentIndexCallbackRequestSchema,\n responses: {\n 200: R.success(AgentIndexCallbackResponseSchema),\n 400: R.error,\n 500: R.error,\n },\n },\n\n // ============================================================================\n // ACTIVITY LOG ROUTES - System activity tracking and auditing\n // ============================================================================\n\n logCreate: {\n method: 'POST' as const,\n summary: 'Create new activity log entry',\n description: 'Records user or system action for auditing and tracking purposes',\n path: '/log',\n body: ActionLogCreateSchema,\n responses: {\n 200: R.success(ActionLogEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n logSearch: {\n method: 'GET' as const,\n summary: 'Search and filter activity logs',\n description: 'Returns list of activity logs matching search parameters (tenant, type)',\n path: '/log',\n query: z.object({\n tenant_id: z.coerce.number().optional(),\n type: ActionLogTypeSchema.optional(),\n }),\n responses: {\n 200: R.success(z.array(ActionLogEntitySchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n // ============================================================================\n // TOUR ROUTES - Interactive tour and guidance system\n // ============================================================================\n\n tourGet: {\n method: 'GET' as const,\n summary: 'Get tour information based on question and tenant',\n description: 'Returns relevant tour steps and guidance for user query',\n path: '/tour',\n query: z.object({\n connection_id: z.coerce.number().optional(),\n question: z.string().min(1),\n }),\n responses: {\n 200: R.success(TourEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n tourSearch: {\n method: 'GET' as const,\n summary: 'Search and filter tours by tenant',\n description: 'Returns list of available tours for specified tenant',\n path: '/tour',\n query: z.object({\n tenant_id: z.coerce.number().optional(),\n connection_id: z.coerce.number().optional(),\n }),\n responses: {\n 200: R.success(z.array(TourEntitySchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n tourCreate: {\n method: 'POST' as const,\n summary: 'Create new interactive tour',\n description: 'Creates tour with specified steps and configuration',\n path: '/tour',\n body: TourEntitySchema,\n responses: {\n 200: R.success(TourEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n tourShow: {\n method: 'POST' as const,\n summary: 'Show tour spotlight and description',\n description: 'Triggers tour spotlight for a specific step and element',\n path: '/tour/show',\n body: z.object({\n step: TourStepSchema,\n element_selector: z.string().optional(),\n }),\n responses: {\n 200: R.success(\n z.object({\n success: z.boolean(),\n message: z.string(),\n spotlight_created: z.boolean(),\n description_created: z.boolean(),\n step_id: z.number(),\n element_found: z.boolean(),\n })\n ),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n // ============================================================================\n // SIMULATION ROUTES - Application simulation and testing\n // ============================================================================\n\n simulationSearch: {\n method: 'GET' as const,\n summary: 'Search and filter simulations by tenant',\n description: 'Returns list of simulations associated with specified tenant',\n path: '/simulation',\n query: z.object({\n tenant_id: z.coerce.number().optional(),\n connection_id: z.coerce.number().optional(),\n }),\n responses: {\n 200: R.success(z.array(SimulationEntitySchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n simulationStart: {\n method: 'POST' as const,\n summary: 'Start new application simulation',\n description: 'Creates and initializes simulation with specified parameters',\n path: '/simulation/start',\n body: SimulationCreateSchema,\n responses: {\n 200: R.success(SimulationEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n simulationUpdate: {\n method: 'POST' as const,\n summary: 'Update simulation configuration and status',\n description: 'Modifies simulation parameters and updates execution state',\n path: '/simulation/:simulation_id',\n pathParams: z.object({ simulation_id: z.coerce.number() }),\n body: SimulationUpdateSchema,\n responses: {\n 200: R.success(SimulationEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n simulationProgress: {\n method: 'GET' as const,\n summary: 'Get simulation progress history as chat transcript',\n description: 'Returns all progress updates for a simulation ordered chronologically',\n path: '/simulation/:simulation_id/progress',\n pathParams: z.object({ simulation_id: z.coerce.number() }),\n responses: {\n 200: R.success(z.array(SimulationProgressEntitySchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n simulationLiveView: {\n method: 'GET' as const,\n summary: 'Get live view URL for simulation session',\n description: 'Returns Browserbase live view URL for embedding in iframe',\n path: '/simulation/:simulation_id/live-view',\n pathParams: z.object({ simulation_id: z.coerce.number() }),\n responses: {\n 200: R.success(\n z.object({\n job_id: z.string(),\n live_view_url: z.string(),\n status: z.string(),\n })\n ),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 404: R.error,\n 500: R.error,\n },\n },\n\n simulationHistory: {\n method: 'GET' as const,\n summary: 'Get simulation history by ID',\n description: 'Returns the history array for the specified simulation',\n path: '/simulation/:simulation_id/history',\n pathParams: z.object({ simulation_id: z.coerce.number() }),\n responses: {\n 200: R.success(z.object({ history: z.array(SimulationStepSchema) })),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n simulationMindmap: {\n method: 'GET' as const,\n summary: 'Get simulation mindmap by ID',\n description: 'Returns the mindmap knowledge graph for the specified simulation',\n path: '/simulation/:simulation_id/mindmap',\n pathParams: z.object({ simulation_id: z.coerce.number() }),\n responses: {\n 200: R.success(MindMapSchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n simulationStop: {\n method: 'POST' as const,\n summary: 'Stop running simulation',\n description: 'Terminates the simulation session',\n path: '/simulation/:simulation_id/stop',\n pathParams: z.object({ simulation_id: z.coerce.number() }),\n body: z.object({}),\n responses: {\n 200: R.success(\n z.object({\n success: z.boolean(),\n message: z.string(),\n })\n ),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 404: R.error,\n 500: R.error,\n },\n },\n\n simulationAnswer: {\n method: 'POST' as const,\n summary: 'Submit answer to simulation question',\n description: 'Submits an answer to a pending question from the simulation agent',\n path: '/simulation/:simulation_id/answer',\n pathParams: z.object({ simulation_id: z.coerce.number() }),\n body: SimulationAnswerSchema,\n responses: {\n 200: R.success(\n z.object({\n success: z.boolean(),\n message: z.string(),\n })\n ),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 404: R.error,\n 500: R.error,\n },\n },\n\n simulationDelete: {\n method: 'DELETE' as const,\n summary: 'Delete simulation',\n description: 'Removes a simulation and all associated data',\n path: '/simulation/:simulation_id',\n pathParams: z.object({ simulation_id: z.coerce.number() }),\n responses: {\n 200: R.success(\n z.object({\n success: z.boolean(),\n message: z.string(),\n })\n ),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 404: R.error,\n 500: R.error,\n },\n },\n\n browserSessionCreate: {\n method: 'POST' as const,\n summary: 'Create browser session for connection',\n description: 'Creates a browser session and navigates to the connection URL',\n path: '/browser-session/create',\n body: z\n .object({\n connection_id: z.number().optional(),\n agent_id: z.number().optional(),\n connection_url: z.string().nullish(),\n marketrix_id: z.string().optional(),\n marketrix_key: z.string().optional(),\n })\n .refine(\n (data) =>\n (data.connection_id !== undefined && data.agent_id !== undefined) ||\n (data.marketrix_id !== undefined && data.marketrix_key !== undefined),\n {\n message: 'Provide either connection_id+agent_id or marketrix_id+marketrix_key.',\n path: ['connection_id'],\n }\n ),\n responses: {\n 200: R.success(\n z.object({\n session_id: z.string(),\n live_view_url: z.string(),\n })\n ),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n browserSessionStop: {\n method: 'POST' as const,\n summary: 'Stop browser session',\n description: 'Terminates the browser session',\n path: '/browser-session/:session_id/stop',\n pathParams: z.object({ session_id: z.string() }),\n body: z.object({}),\n responses: {\n 200: R.success(\n z.object({\n success: z.boolean(),\n message: z.string(),\n })\n ),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 404: R.error,\n 500: R.error,\n },\n },\n\n // ============================================================================\n // KNOWLEDGE ROUTES - Knowledge base and document management\n // ============================================================================\n\n knowledgeSearch: {\n method: 'GET' as const,\n summary: 'Search and filter knowledge base documents',\n description: 'Returns list of knowledge documents matching search parameters',\n path: '/knowledge',\n query: z.object({\n tenant_id: z.coerce.number().optional(),\n type: KnowledgeTypeSchema.optional(),\n connection_id: z.coerce.number().optional(),\n }),\n responses: {\n 200: R.success(z.array(KnowledgeEntitySchema)),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n knowledgeCreate: {\n method: 'POST' as const,\n summary: 'Upload new knowledge base document',\n description: 'Processes file upload or URL and creates knowledge entry for AI training',\n path: '/knowledge',\n contentType: 'multipart/form-data' as const,\n body: FileSchema.extend({\n connection_id: z.coerce.number(),\n document_url: z.string().url().optional(),\n document_name: z.string().optional(),\n }),\n responses: {\n 200: R.success(KnowledgeEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n knowledgeGet: {\n method: 'GET' as const,\n summary: 'Get specific knowledge document by ID',\n description: 'Returns complete knowledge document information and content',\n path: '/knowledge/:id',\n pathParams: z.object({ id: z.coerce.number() }),\n responses: {\n 200: R.success(KnowledgeEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 500: R.error,\n },\n },\n\n knowledgeDelete: {\n method: 'DELETE' as const,\n summary: 'Delete knowledge document',\n description: 'Removes a knowledge document from the database',\n path: '/knowledge/:id',\n pathParams: z.object({ id: z.coerce.number() }),\n responses: {\n 200: R.success(z.void()),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 404: R.error,\n 500: R.error,\n },\n },\n\n knowledgeRefresh: {\n method: 'POST' as const,\n summary: 'Refresh knowledge document',\n description: 'Re-fetches HTML content from source URL and updates the document',\n path: '/knowledge/:id/refresh',\n pathParams: z.object({ id: z.coerce.number() }),\n body: z.void(),\n responses: {\n 200: R.success(KnowledgeEntitySchema),\n 400: R.error,\n 401: R.error,\n 403: R.error,\n 404: R.error,\n 500: R.error,\n },\n },\n\n // ============================================================================\n // MIGRATION ROUTES - Database migration and system updates\n // ============================================================================\n\n migratePrepare: {\n method: 'POST' as const,\n summary: 'Prepare database migration',\n description: 'Validates migration requirements and prepares system for migration',\n path: '/migrate/prepare',\n body: MigrationPrepareSchema,\n responses: { 200: R.success(z.void()), 400: R.error, 401: R.error, 403: R.error, 500: R.error },\n },\n\n migrateRun: {\n method: 'POST' as const,\n summary: 'Execute database migration',\n description: 'Runs migration scripts and updates database schema',\n path: '/migrate/run',\n body: MigrationRunSchema,\n responses: { 200: R.success(z.void()), 400: R.error, 401: R.error, 403: R.error, 500: R.error },\n },\n});\n\nexport { contract };\n","import { type FetchApiOptions, initClient } from '@ts-rest/core';\n\nimport { Config } from '../constants/config';\nimport { hasProperty } from '../utils/validation';\nimport { contract } from './routes';\n\nlet authToken: string | null = null;\n\n// Initialize the client with a placeholder or Config.API_URL if already set\nlet client = initClient(contract, {\n baseUrl: Config.API_URL || 'https://api.placeholder.invalid',\n baseHeaders: {\n Authorization: (_options: FetchApiOptions) => (authToken ? `Bearer ${authToken}` : ''),\n },\n jsonQuery: true,\n});\n\n/**\n * Re-initialize the SDK client with a new base URL\n */\nexport const configureSdk = (apiUrl: string) => {\n if (apiUrl && apiUrl !== Config.API_URL) {\n console.log(`[SDK] Reconfiguring API URL to: ${apiUrl}`);\n\n // Create new client instance\n const newClient = initClient(contract, {\n baseUrl: apiUrl,\n baseHeaders: {\n Authorization: (_options: FetchApiOptions) => (authToken ? `Bearer ${authToken}` : ''),\n },\n jsonQuery: true,\n });\n\n // Mutate the 'client' reference if possible, or update the proxy target?\n // Since 'client' is locally scoped, we need to ensure 'sdk' uses the new one.\n // The previous implementation used a proxy or object assignment.\n // Let's rely on the proxy approach which is robust.\n client = newClient;\n }\n};\n\ninterface ResBody {\n success: boolean;\n data?: unknown;\n error?: string;\n message?: string;\n}\n\ninterface Res {\n status: number;\n body?: ResBody | unknown;\n}\n\n// Helper type to extract data type from response\ntype ExtractData<T extends Res> = T extends { body: { data?: infer D } } ? D : never;\n\nfunction isResBody(body: unknown): body is ResBody {\n if (!hasProperty(body, 'success')) {\n return false;\n }\n\n if (typeof body.success !== 'boolean') {\n return false;\n }\n\n if (hasProperty(body, 'error') && typeof body.error !== 'string') {\n return false;\n }\n\n if (hasProperty(body, 'message') && typeof body.message !== 'string') {\n return false;\n }\n\n return true;\n}\n\nconst parse = <T extends Res>(res: T): ExtractData<T> => {\n if (!isResBody(res.body)) {\n throw new Error('Invalid response body structure');\n }\n\n if (res.status >= 200 && res.status < 400 && res.body.success) {\n // Type assertion needed for conditional type inference\n // TypeScript cannot infer conditional types from runtime checks\n // but we've validated the structure with isResBody\n return res.body.data as ExtractData<T>;\n }\n\n const err = res.body.error ?? res.body.message ?? 'Request failed';\n console.error('API Error:', err);\n throw new Error(err);\n};\n\n// Base object for auth methods and dynamic config\nconst sdkExtras = {\n setAuthToken: (token: string) => {\n authToken = token;\n },\n clearAuthToken: () => {\n authToken = null;\n },\n getAuthToken: () => authToken,\n parse,\n configure: configureSdk,\n // Add other methods that might be expected on sdk like `logCreate` which come from client\n};\n\n// Create a proxy to forward calls to the current client instance\nexport const sdk = new Proxy({} as typeof client & typeof sdkExtras, {\n get(_target, prop) {\n // Check extras first\n if (prop in sdkExtras) {\n return sdkExtras[prop as keyof typeof sdkExtras];\n }\n // Forward to current client instance\n const value = client[prop as keyof typeof client];\n if (typeof value === 'function') {\n return value.bind(client);\n }\n return value;\n },\n});\n\n// Export all types from schema\nexport * from './schema';\n\n// Export contract from routes\nexport { contract } from './routes';\n","/**\n * API Utilities\n *\n * Consolidates API response validation, data extraction, and error handling patterns.\n * Eliminates repetition of response validation and error handling across services.\n */\n\nimport { getApiUrl } from '../constants/config';\n\n// ============================================================================\n// API Response Helpers\n// ============================================================================\n\n/**\n * API Response Body structure (matches SDK's ResBody interface)\n */\ninterface ApiResponseBody<T = unknown> {\n success: boolean;\n data?: T;\n error?: string;\n message?: string;\n}\n\n/**\n * Generic API response type - flexible to handle SDK union types\n */\ntype ApiResponse<T = unknown> = {\n status: number;\n body?: ApiResponseBody<T> | null | unknown;\n [key: string]: unknown;\n};\n\n/**\n * Validate API response structure\n * Consolidates the repeated pattern: response.status === 200 && response.body?.success\n */\nexport function isValidApiResponse<T = unknown>(\n response: ApiResponse<T>\n): response is ApiResponse<T> & { status: 200; body: ApiResponseBody<T> } {\n const body = response.body as ApiResponseBody<T> | null | undefined;\n return response.status === 200 && body?.success === true;\n}\n\n/**\n * Extract data from API response with validation\n * Consolidates the pattern: isValidApiResponse(response) && response.body.data\n */\nexport function extractApiData<T>(response: ApiResponse<T>): T | null {\n if (isValidApiResponse(response)) {\n const body = response.body as ApiResponseBody<T>;\n if (body.data !== undefined) {\n return body.data;\n }\n }\n return null;\n}\n\n// ============================================================================\n// Error Handling Utilities\n// ============================================================================\n\n/**\n * Check if error is a connection/network error\n * Consolidates the repeated pattern across widgetValidationService and other services\n */\nexport function isConnectionError(error: unknown): boolean {\n const errorMessage = error instanceof Error ? error.message : String(error);\n return (\n errorMessage.includes('Failed to fetch') ||\n errorMessage.includes('ERR_CONNECTION_REFUSED') ||\n errorMessage.includes('NetworkError') ||\n errorMessage.includes('Network request failed')\n );\n}\n\n/**\n * Extract error message from unknown error type\n * Consolidates error instanceof Error ? error.message : String(error)\n */\nexport function extractErrorMessage(error: unknown, fallback = 'Unknown error'): string {\n if (error instanceof Error) {\n return error.message;\n }\n if (typeof error === 'string') {\n return error;\n }\n return fallback;\n}\n\n/**\n * Handle API error with consistent error message extraction\n */\nexport function handleApiError(\n error: unknown,\n context = 'Operation'\n): {\n isValid: false;\n error: string;\n} {\n const errorMessage = extractErrorMessage(error);\n\n if (isConnectionError(error)) {\n let apiUrl = 'configured API server';\n try {\n apiUrl = getApiUrl();\n } catch {\n // Ignore error if URL not configured yet\n }\n const connectionErrorMessage = `Cannot connect to API server. Please ensure the API server is running at ${apiUrl}. Error: ${errorMessage}`;\n return {\n isValid: false,\n error: connectionErrorMessage,\n };\n }\n\n return {\n isValid: false,\n error: `${context} failed: ${errorMessage}`,\n };\n}\n","/**\n * Logger Utility\n *\n * Centralized logging utility with log levels and environment-based filtering.\n * Only logs in development mode to reduce noise in production.\n */\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\n// Check if we're in development mode\n// In Vite, we can check for development mode\n// Use a simple check: if we're not in a production build, assume development\nconst isDevelopment =\n typeof window !== 'undefined' &&\n (window.location.hostname === 'localhost' ||\n window.location.hostname === '127.0.0.1' ||\n window.location.hostname.includes('localhost'));\n\n/**\n * Log levels configuration\n * Set to 'error' in production to only show errors\n */\nconst MIN_LOG_LEVEL: LogLevel = isDevelopment ? 'debug' : 'error';\n\nconst LOG_LEVELS: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n};\n\n/**\n * Check if a log level should be displayed\n */\nfunction shouldLog(level: LogLevel): boolean {\n return LOG_LEVELS[level] >= LOG_LEVELS[MIN_LOG_LEVEL];\n}\n\n/**\n * Format log message with prefix\n */\nfunction formatMessage(\n prefix: string,\n message: string,\n ...args: unknown[]\n): [string, ...unknown[]] {\n return [`[${prefix}] ${message}`, ...args];\n}\n\n/**\n * Logger interface\n */\nexport const logger = {\n /**\n * Debug logs - detailed information for debugging\n */\n debug: (prefix: string, message: string, ...args: unknown[]): void => {\n if (shouldLog('debug')) {\n console.debug(...formatMessage(prefix, message, ...args));\n }\n },\n\n /**\n * Info logs - general information about application flow\n */\n info: (prefix: string, message: string, ...args: unknown[]): void => {\n if (shouldLog('info')) {\n console.info(...formatMessage(prefix, message, ...args));\n }\n },\n\n /**\n * Warning logs - potential issues that don't break functionality\n */\n warn: (prefix: string, message: string, ...args: unknown[]): void => {\n if (shouldLog('warn')) {\n console.warn(...formatMessage(prefix, message, ...args));\n }\n },\n\n /**\n * Error logs - errors that need attention\n */\n error: (prefix: string, message: string, ...args: unknown[]): void => {\n if (shouldLog('error')) {\n console.error(...formatMessage(prefix, message, ...args));\n }\n },\n};\n\n/**\n * Create a scoped logger with a fixed prefix\n */\nexport function createLogger(prefix: string) {\n return {\n debug: (message: string, ...args: unknown[]) => logger.debug(prefix, message, ...args),\n info: (message: string, ...args: unknown[]) => logger.info(prefix, message, ...args),\n warn: (message: string, ...args: unknown[]) => logger.warn(prefix, message, ...args),\n error: (message: string, ...args: unknown[]) => logger.error(prefix, message, ...args),\n };\n}\n/**\n * Error Handling Utilities\n *\n * Centralized error handling and logging utilities to reduce code duplication\n * and ensure consistent error handling patterns across the widget.\n */\n\nimport { extractErrorMessage } from './apiUtils';\n\nconst log = createLogger('ErrorUtils');\n\n/**\n * Execute a function safely with error handling\n * Returns the result or undefined if an error occurs\n */\nexport function safeExecute<T>(fn: () => T, errorMessage: string, defaultValue?: T): T | undefined {\n try {\n return fn();\n } catch (error) {\n logError('safeExecute', error, { errorMessage, defaultValue });\n return defaultValue;\n }\n}\n\n/**\n * Execute an async function safely with error handling\n * Returns the result or undefined if an error occurs\n */\nexport async function safeExecuteAsync<T>(\n fn: () => Promise<T>,\n errorMessage: string,\n defaultValue?: T\n): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n logError('safeExecuteAsync', error, { errorMessage, defaultValue });\n return defaultValue;\n }\n}\n\n/**\n * Centralized error logging\n */\nexport function logError(\n context: string,\n error: unknown,\n additionalInfo?: Record<string, unknown>\n): void {\n const errorMessage = extractErrorMessage(error);\n const errorStack = error instanceof Error ? error.stack : undefined;\n\n log.error(`${context}: ${errorMessage}`, {\n ...additionalInfo,\n stack: errorStack,\n });\n}\n\n/**\n * Centralized warning logging\n */\nexport function logWarning(\n context: string,\n message: string,\n additionalInfo?: Record<string, unknown>\n): void {\n log.warn(`${context}: ${message}`, additionalInfo || {});\n}\n","/**\n * Chat ID Manager Service\n *\n * Centralized chat ID management with promise-based locking to prevent\n * concurrent chat ID creation. Ensures only one chat ID is created per session.\n */\n\nimport { sdk } from '../sdk';\nimport { extractApiData } from '../utils/apiUtils';\nimport { createLogger } from '../utils/common';\nimport { chatService } from './ChatService';\n\nconst log = createLogger('ChatIdManager');\nconst CHAT_ID_STORAGE_KEY = 'marketrix_chat_id';\nconst TAB_ID_STORAGE_KEY = 'marketrix_tab_id';\n\nclass SessionManager {\n private static instance: SessionManager | null = null;\n private chatId: string | null = null;\n private tabId: string | null = null;\n private initializationPromise: Promise<string> | null = null;\n\n private constructor() {\n // Initialize tab ID (persists across same-tab navigations via sessionStorage)\n this.tabId = this.getOrCreateTabId();\n log.debug('Tab ID:', this.tabId);\n\n // Load existing chat ID from storage\n this.chatId = this.getStoredChatId();\n if (this.chatId) {\n log.debug('Loaded existing chat ID from storage:', this.chatId);\n }\n\n // Setup link click interceptor for cross-domain tab_id propagation\n this.setupLinkInterceptor();\n }\n\n /**\n * Intercept link clicks to append tab_id for cross-domain navigation.\n * This ensures the same tab_id is preserved when navigating to external domains.\n */\n private setupLinkInterceptor(): void {\n if (typeof window === 'undefined') return;\n\n document.addEventListener(\n 'click',\n (event) => {\n const target = event.target as HTMLElement;\n const anchor = target.closest('a') as HTMLAnchorElement | null;\n\n if (!anchor?.href) return;\n\n // Skip if it's the same origin (sessionStorage will handle it)\n try {\n const linkUrl = new URL(anchor.href, window.location.origin);\n const currentOrigin = window.location.origin;\n\n // Only intercept cross-origin links\n if (linkUrl.origin === currentOrigin) return;\n\n // Skip non-http(s) links\n if (!linkUrl.protocol.startsWith('http')) return;\n\n // Skip links that open in new tab/window\n if (anchor.target === '_blank') return;\n\n // Append tab_id to the URL\n if (this.tabId && !linkUrl.searchParams.has('_mktx_tab')) {\n linkUrl.searchParams.set('_mktx_tab', this.tabId);\n anchor.href = linkUrl.toString();\n log.debug('Added tab_id to cross-domain link:', anchor.href);\n }\n } catch {\n // Invalid URL, skip\n }\n },\n true\n ); // Use capture phase to intercept before navigation\n }\n\n /**\n * Get or create a tab ID that persists across same-tab navigations.\n * Priority:\n * 1. URL parameter (_mktx_tab) - for cross-domain navigation\n * 2. sessionStorage - for same-origin navigation\n * 3. Generate new - for new tabs\n */\n private getOrCreateTabId(): string {\n if (typeof window === 'undefined') {\n return this.generateTabId();\n }\n\n // 1. Check URL for tab_id parameter (cross-domain navigation)\n const urlParams = new URLSearchParams(window.location.search);\n const urlTabId = urlParams.get('_mktx_tab');\n if (urlTabId) {\n // Store in sessionStorage for future same-origin navigations\n sessionStorage.setItem(TAB_ID_STORAGE_KEY, urlTabId);\n log.info('Restored tab ID from URL:', urlTabId);\n // Clean up URL (remove the parameter)\n this.cleanupTabIdFromUrl();\n return urlTabId;\n }\n\n // 2. Try to get existing tab ID from sessionStorage\n let tabId = sessionStorage.getItem(TAB_ID_STORAGE_KEY);\n\n if (!tabId) {\n // 3. Generate a new tab ID\n tabId = this.generateTabId();\n sessionStorage.setItem(TAB_ID_STORAGE_KEY, tabId);\n log.info('Created new tab ID:', tabId);\n }\n\n return tabId;\n }\n\n /**\n * Remove _mktx_tab parameter from URL without page reload\n */\n private cleanupTabIdFromUrl(): void {\n if (typeof window === 'undefined') return;\n\n const url = new URL(window.location.href);\n if (url.searchParams.has('_mktx_tab')) {\n url.searchParams.delete('_mktx_tab');\n // Replace URL without reload\n window.history.replaceState({}, '', url.toString());\n }\n }\n\n /**\n * Generate a unique tab ID\n */\n private generateTabId(): string {\n return `tab_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;\n }\n\n /**\n * Get the current tab ID\n */\n getTabId(): string | null {\n return this.tabId;\n }\n\n /**\n * Get singleton instance\n */\n static getInstance(): SessionManager {\n if (!SessionManager.instance) {\n SessionManager.instance = new SessionManager();\n }\n return SessionManager.instance;\n }\n\n /**\n * Get current chat ID without creating a new one\n */\n getChatId(): string | null {\n return this.chatId;\n }\n\n /**\n * Get or create chat ID with promise-based locking\n * If multiple calls happen concurrently, they all wait for the same promise\n */\n async getOrCreateChatId(): Promise<string> {\n // If we already have a chat ID, return it immediately\n if (this.chatId) {\n log.debug('Returning existing chat ID:', this.chatId);\n return this.chatId;\n }\n\n // If initialization is in progress, wait for it\n if (this.initializationPromise) {\n log.debug('Chat ID initialization in progress, waiting...');\n return this.initializationPromise;\n }\n\n // Check storage one more time (in case it was set by another instance)\n const storedChatId = this.getStoredChatId();\n if (storedChatId) {\n this.chatId = storedChatId;\n log.debug('Found chat ID in storage:', this.chatId);\n return this.chatId;\n }\n\n // Create new chat ID with promise-based locking\n this.initializationPromise = this.createChatId();\n\n try {\n const newChatId = await this.initializationPromise;\n return newChatId;\n } finally {\n // Clear the promise after completion\n this.initializationPromise = null;\n }\n }\n\n /**\n * Create a new chat ID\n */\n private async createChatId(): Promise<string> {\n try {\n log.info('Creating new chat ID...');\n const chatResponse = await sdk.chatCreate({ body: undefined });\n const chatIdData = extractApiData(chatResponse);\n\n if (chatIdData && typeof chatIdData === 'string') {\n this.chatId = chatIdData;\n this.storeChatId(this.chatId);\n log.info('Created and stored new chat ID:', this.chatId);\n\n chatService.createInitialContext(this.chatId);\n\n return this.chatId;\n } else {\n throw new Error('Failed to create chat session: invalid response');\n }\n } catch (error) {\n log.error('Failed to create chat ID:', error);\n // Clear the promise on error so retry is possible\n this.initializationPromise = null;\n throw error;\n }\n }\n\n /**\n * Clear the current chat ID (for testing/reset purposes)\n */\n clearChatId(): void {\n this.chatId = null;\n this.initializationPromise = null;\n log.debug('Cleared chat ID');\n }\n\n /**\n * Reset the singleton instance (for testing purposes)\n */\n static resetInstance(): void {\n SessionManager.instance = null;\n }\n\n private getStoredChatId(): string | null {\n if (typeof window === 'undefined') return null;\n return localStorage.getItem(CHAT_ID_STORAGE_KEY);\n }\n\n private storeChatId(id: string): void {\n if (typeof window === 'undefined') return;\n localStorage.setItem(CHAT_ID_STORAGE_KEY, id);\n }\n}\n\nexport const sessionManager = SessionManager.getInstance();\n","import { getAgentWebSocketUrl } from '../constants/config';\nimport type { MarketrixConfig } from '../types';\nimport { sessionManager } from './SessionManager';\n\nexport type WebSocketStatus = 'disconnected' | 'connecting' | 'connected' | 'registered' | 'error';\n\nexport interface WebSocketMessage {\n jsonrpc?: string;\n method?: string;\n params?: Record<string, unknown>;\n result?: unknown;\n error?: {\n code: number;\n message: string;\n };\n id?: string | number;\n}\n\nexport interface WebSocketClientCallbacks {\n onStatusChange?: (status: WebSocketStatus) => void;\n onMessage?: (message: WebSocketMessage) => void;\n onError?: (error: Error) => void;\n}\n\nexport class WebSocketClient {\n private static instance: WebSocketClient | null = null;\n private websocket: WebSocket | null = null;\n private url: string;\n private chatId: string | null = null;\n private status: WebSocketStatus = 'disconnected';\n private callbacks: Set<WebSocketClientCallbacks> = new Set();\n\n private reconnectAttempts = 0;\n private readonly maxReconnectAttempts = 10;\n private reconnectDelay = 1000;\n private readonly maxReconnectDelay = 30000;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n private isIntentionallyDisconnected = false;\n\n private heartbeatInterval: ReturnType<typeof setInterval> | null = null;\n private readonly heartbeatIntervalMs = 20000;\n\n private constructor(config?: Partial<MarketrixConfig>) {\n this.url = getAgentWebSocketUrl(config);\n }\n\n static getInstance(config?: Partial<MarketrixConfig>): WebSocketClient {\n if (!WebSocketClient.instance) {\n WebSocketClient.instance = new WebSocketClient(config);\n } else if (config) {\n // If config is provided, ensure we update the URL if not connected or force update logic if needed\n // But typically we don't want to change the URL mid-flight unless disconnected.\n // We can check if the new config would result in a different URL.\n const newUrl = getAgentWebSocketUrl(config);\n if (newUrl !== WebSocketClient.instance.url) {\n WebSocketClient.instance.url = newUrl;\n // If disconnected, the next connect() will use the new URL.\n // If connected, we might want to reconnect?\n // For now, assume URL changes only happen before connection or require explicit reconnect.\n }\n }\n return WebSocketClient.instance;\n }\n\n addCallbacks(callbacks: WebSocketClientCallbacks): void {\n this.callbacks.add(callbacks);\n }\n\n removeCallbacks(callbacks: WebSocketClientCallbacks): void {\n this.callbacks.delete(callbacks);\n }\n\n getStatus(): WebSocketStatus {\n return this.status;\n }\n\n getUrl(): string {\n return this.url;\n }\n\n isConnected(): boolean {\n return this.status === 'registered' && this.websocket?.readyState === WebSocket.OPEN;\n }\n\n async connect(chatId: string): Promise<void> {\n if (this.isIntentionallyDisconnected) {\n // Reset intentional disconnect flag if explicitly called to connect\n this.isIntentionallyDisconnected = false;\n }\n\n // If already connected to the same chat, do nothing\n if (this.isConnected() && this.chatId === chatId) {\n return;\n }\n\n // If already connecting to the same chat, wait for it\n if (\n this.status === 'connecting' &&\n this.chatId === chatId &&\n this.websocket?.readyState === WebSocket.CONNECTING\n ) {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(new Error('Connection timeout'));\n }, 5000);\n\n const checkInterval = setInterval(() => {\n if (this.status === 'registered' || this.status === 'connected') {\n clearInterval(checkInterval);\n clearTimeout(timeout);\n resolve();\n } else if (this.status === 'error' || this.status === 'disconnected') {\n clearInterval(checkInterval);\n clearTimeout(timeout);\n reject(new Error('Connection failed'));\n }\n }, 100);\n });\n }\n\n if (this.websocket) {\n if (this.chatId !== chatId || this.websocket.readyState !== WebSocket.CONNECTING) {\n this.disconnect();\n await new Promise((resolve) => setTimeout(resolve, 200));\n }\n }\n\n this.chatId = chatId;\n this.isIntentionallyDisconnected = false;\n this.setStatus('connecting');\n\n try {\n const ws = new WebSocket(this.url);\n this.websocket = ws;\n\n ws.onopen = () => {\n if (this.websocket !== ws) return;\n this.setStatus('connected');\n this.reconnectAttempts = 0;\n this.reconnectDelay = 1000;\n this.clearReconnectTimer();\n this.sendRegistration();\n this.startHeartbeat();\n };\n\n ws.onmessage = (event) => {\n if (this.websocket !== ws) return;\n try {\n const message = JSON.parse(event.data) as WebSocketMessage;\n this.handleMessage(message);\n } catch (error) {\n this.notifyError(new Error(`Failed to parse message: ${String(error)}`));\n }\n };\n\n ws.onerror = (error) => {\n if (this.websocket !== ws) return;\n console.error('[WebSocket] Error:', error);\n this.setStatus('error');\n this.notifyError(new Error('WebSocket connection error'));\n };\n\n ws.onclose = (event) => {\n if (this.websocket !== ws) return;\n\n const wasRegistered = this.status === 'registered';\n this.setStatus('disconnected');\n this.stopHeartbeat();\n this.websocket = null;\n\n if (event.code !== 1000) {\n // 1000 is normal closure\n console.warn(\n `[WebSocket] Connection closed with code ${event.code}: ${event.reason || 'No reason provided'}`\n );\n }\n\n if (!this.isIntentionallyDisconnected && this.chatId) {\n if (wasRegistered) {\n setTimeout(() => {\n if (!this.isIntentionallyDisconnected && this.chatId) {\n this.scheduleReconnect();\n }\n }, 500);\n } else {\n this.scheduleReconnect();\n }\n }\n };\n } catch (error) {\n this.setStatus('error');\n this.notifyError(error instanceof Error ? error : new Error(String(error)));\n this.scheduleReconnect();\n }\n }\n\n disconnect(): void {\n this.isIntentionallyDisconnected = true;\n this.stopHeartbeat();\n this.clearReconnectTimer();\n\n if (this.websocket) {\n this.websocket.close();\n this.websocket = null;\n }\n\n this.setStatus('disconnected');\n this.chatId = null;\n }\n\n send(message: WebSocketMessage): void {\n if (!this.websocket) {\n console.warn('[WebSocket] Cannot send message: WebSocket is null');\n return;\n }\n if (this.websocket.readyState !== WebSocket.OPEN) {\n console.warn(\n `[WebSocket] Cannot send message: WebSocket state is ${this.websocket.readyState} (not OPEN)`\n );\n return;\n }\n try {\n this.websocket.send(JSON.stringify(message));\n } catch (error) {\n console.error('[WebSocket] Failed to send message:', error);\n this.notifyError(new Error(`Failed to send message: ${String(error)}`));\n }\n }\n\n private setStatus(status: WebSocketStatus): void {\n if (this.status !== status) {\n this.status = status;\n this.callbacks.forEach((cb) => cb.onStatusChange?.(status));\n }\n }\n\n private notifyError(error: Error): void {\n this.callbacks.forEach((cb) => cb.onError?.(error));\n }\n\n private handleMessage(message: WebSocketMessage): void {\n // Handle internal protocol messages\n if (message.method === 'widget/registered') {\n if (message.params?.chat_id === this.chatId) {\n console.log('[WebSocket] Successfully registered with server');\n this.setStatus('registered');\n this.reconnectAttempts = 0;\n this.reconnectDelay = 1000; // Reset delay on successful registration\n }\n } else if (message.method === 'pong') {\n // Acknowledge pong to confirm connection is alive\n // This is handled by the server updating last_ping_pong\n }\n\n // Forward everything to listeners\n this.callbacks.forEach((cb) => cb.onMessage?.(message));\n }\n\n private sendRegistration(): void {\n if (!this.chatId) return;\n if (this.status !== 'connected' && this.status !== 'registered') {\n // Wait for connection\n return;\n }\n\n // Include tab_id for cross-domain session linking\n const tabId = sessionManager.getTabId();\n\n this.send({\n jsonrpc: '2.0',\n method: 'widget/register',\n params: {\n chat_id: this.chatId,\n tab_id: tabId,\n url: typeof window !== 'undefined' ? window.location.href : undefined,\n },\n });\n }\n\n private scheduleReconnect(): void {\n if (this.reconnectAttempts >= this.maxReconnectAttempts) {\n this.notifyError(new Error('Max reconnect attempts reached'));\n return;\n }\n\n this.clearReconnectTimer();\n this.reconnectAttempts++;\n\n const delay = Math.min(\n this.reconnectDelay * Math.pow(2, this.reconnectAttempts - 1),\n this.maxReconnectDelay\n );\n\n console.log(\n `[WebSocket] Scheduling reconnect attempt ${this.reconnectAttempts}/${this.maxReconnectAttempts} in ${delay}ms`\n );\n\n this.reconnectTimer = setTimeout(() => {\n if (!this.isIntentionallyDisconnected && this.chatId) {\n console.log(`[WebSocket] Attempting reconnect (attempt ${this.reconnectAttempts})...`);\n this.connect(this.chatId).catch((error) => {\n console.error('[WebSocket] Reconnect attempt failed:', error);\n if (this.reconnectAttempts < this.maxReconnectAttempts) {\n this.scheduleReconnect();\n }\n });\n }\n }, delay);\n }\n\n private clearReconnectTimer(): void {\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n }\n\n private startHeartbeat(): void {\n this.stopHeartbeat();\n this.heartbeatInterval = setInterval(() => {\n if (this.websocket?.readyState === WebSocket.OPEN) {\n this.send({ jsonrpc: '2.0', method: 'ping', params: { timestamp: Date.now() } });\n }\n }, this.heartbeatIntervalMs);\n }\n\n private stopHeartbeat(): void {\n if (this.heartbeatInterval) {\n clearInterval(this.heartbeatInterval);\n this.heartbeatInterval = null;\n }\n }\n}\n","/**\n * Development Tools - Browser Console Injection\n *\n * Exposes widget services on window object for testing in browser console.\n * Only active in development mode.\n *\n * Usage in browser console:\n * // Index DOM first\n * await devTools.indexDOM()\n *\n * // Test tools\n * await devTools.testTool('click_element', { index: 5 })\n * await devTools.testTool('type_text', { index: 3, text: 'Hello' })\n *\n * // Direct service access\n * domService.getElementByIndex(5)\n * toolExecutionService.executeTool('scroll', { direction: 'down' }, 'do')\n */\n\nimport { chatService } from '../services/ChatService';\nimport { domService } from '../services/DomService';\nimport { type ToolExecutionResult, toolExecutionService } from '../services/ToolService';\nimport { WebSocketClient } from '../services/WebSocketClient';\n\n// Tool parameter definitions for reference\nexport const TOOL_PARAMS: Record<string, { required: string[]; optional: string[] }> = {\n navigate: { required: ['url'], optional: ['new_tab'] },\n search: { required: ['query'], optional: ['engine'] },\n click_element: { required: ['index'], optional: [] },\n type_text: { required: ['index', 'text'], optional: [] },\n scroll: { required: ['direction'], optional: [] },\n scroll_to_text: { required: ['text'], optional: [] },\n send_keys: { required: ['index', 'keys'], optional: [] },\n select_dropdown_option: { required: ['index', 'option'], optional: [] },\n get_dropdown_options: { required: ['index'], optional: [] },\n extract: { required: [], optional: [] },\n get_html: { required: [], optional: [] },\n get_screenshot: { required: [], optional: [] },\n go_back: { required: [], optional: [] },\n wait: { required: ['seconds'], optional: [] },\n close_tab: { required: [], optional: [] },\n switch_tab: { required: ['tab_index'], optional: [] },\n upload_file: { required: ['index', 'path'], optional: [] },\n done: { required: ['success'], optional: ['message'] },\n};\n\n// Dev tools helper object\nexport const devTools = {\n /**\n * Index all interactable DOM elements\n * Must be called before using element-based tools\n */\n indexDOM(): Array<[number, Element]> {\n const elements = domService.indexInteractableElements();\n console.log(`[DevTools] Indexed ${elements.length} interactable elements`);\n return elements;\n },\n\n /**\n * Get indexed elements list with details\n */\n listElements(): void {\n const elements = this.indexDOM();\n console.table(\n elements.map(([index, el]) => ({\n index,\n tag: el.tagName.toLowerCase(),\n id: el.id || '-',\n class: el.className?.toString().slice(0, 30) || '-',\n text: el.textContent?.slice(0, 30) || '-',\n }))\n );\n },\n\n /**\n * Highlight an element by index (for visual verification)\n */\n highlightElement(index: number, duration: number = 2000): void {\n const element = domService.getElementByIndex(index);\n if (!element) {\n console.error(`[DevTools] Element ${index} not found. Run indexDOM() first.`);\n return;\n }\n\n const originalOutline = element.style.outline;\n const originalBackground = element.style.background;\n\n element.style.outline = '3px solid red';\n element.style.background = 'rgba(255, 0, 0, 0.2)';\n element.scrollIntoView({ behavior: 'smooth', block: 'center' });\n\n setTimeout(() => {\n element.style.outline = originalOutline;\n element.style.background = originalBackground;\n }, duration);\n\n console.log(`[DevTools] Highlighting element ${index}:`, element);\n },\n\n /**\n * Test a tool with given arguments\n */\n async testTool(\n toolName: string,\n args: Record<string, unknown> = {},\n mode: 'do' | 'show' = 'do',\n explanation: string = ''\n ): Promise<ToolExecutionResult> {\n // Validate tool exists\n if (!TOOL_PARAMS[toolName]) {\n console.error(`[DevTools] Unknown tool: ${toolName}`);\n console.log('[DevTools] Available tools:', Object.keys(TOOL_PARAMS));\n return { success: false, result: '', error: `Unknown tool: ${toolName}` };\n }\n\n // Check required params\n const { required } = TOOL_PARAMS[toolName];\n const missing = required.filter((param) => !(param in args));\n if (missing.length > 0) {\n console.error(`[DevTools] Missing required params for ${toolName}:`, missing);\n return { success: false, result: '', error: `Missing params: ${missing.join(', ')}` };\n }\n\n console.log(`[DevTools] Executing ${toolName}`, { args, mode, explanation });\n const startTime = window.performance.now();\n\n try {\n const result = await toolExecutionService.executeTool(toolName, args, mode, explanation);\n const duration = (window.performance.now() - startTime).toFixed(2);\n\n if (result.success) {\n console.log(`[DevTools] ✓ ${toolName} succeeded in ${duration}ms`, result.result);\n } else {\n console.error(`[DevTools] ✗ ${toolName} failed in ${duration}ms`, result.error);\n }\n\n return result;\n } catch (error) {\n console.error(`[DevTools] ✗ ${toolName} threw error:`, error);\n return { success: false, result: '', error: String(error) };\n }\n },\n\n /**\n * Run a sequence of tools\n */\n async runSequence(\n sequence: Array<{ tool: string; args?: Record<string, unknown>; delay?: number }>\n ): Promise<ToolExecutionResult[]> {\n const results: ToolExecutionResult[] = [];\n\n for (let i = 0; i < sequence.length; i++) {\n const { tool, args = {}, delay = 500 } = sequence[i];\n console.log(`[DevTools] Step ${i + 1}/${sequence.length}: ${tool}`);\n\n const result = await this.testTool(tool, args);\n results.push(result);\n\n if (!result.success) {\n console.error(`[DevTools] Sequence stopped at step ${i + 1} due to failure`);\n break;\n }\n\n if (i < sequence.length - 1 && delay > 0) {\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n\n return results;\n },\n\n /**\n * Get WebSocket connection status\n */\n getConnectionStatus(): string {\n const wsClient = WebSocketClient.getInstance();\n return wsClient.getStatus();\n },\n\n /**\n * Get chat messages\n */\n getMessages() {\n return chatService.getMessages();\n },\n\n /**\n * Clear chat history\n */\n clearChat(): void {\n chatService.clearMessages();\n console.log('[DevTools] Chat history cleared');\n },\n\n /**\n * Print help\n */\n help(): void {\n console.log(`\n╔════════════════════════════════════════════════════════════╗\n║ DevTools Help ║\n╠════════════════════════════════════════════════════════════╣\n║ devTools.indexDOM() - Index all DOM elements ║\n║ devTools.listElements() - List indexed elements ║\n║ devTools.highlightElement(i) - Highlight element by index ║\n║ devTools.testTool(name, args) - Execute a tool ║\n║ devTools.runSequence([...]) - Run tool sequence ║\n║ devTools.getConnectionStatus()- WebSocket status ║\n║ devTools.getMessages() - Get chat messages ║\n║ devTools.clearChat() - Clear chat history ║\n║ devTools.help() - Show this help ║\n╠════════════════════════════════════════════════════════════╣\n║ Direct service access: ║\n║ domService, toolExecutionService, chatService ║\n╠════════════════════════════════════════════════════════════╣\n║ Example: ║\n║ devTools.indexDOM() ║\n║ devTools.testTool('click_element', { index: 5 }) ║\n║ devTools.testTool('type_text', { index: 3, text: 'Hi' }) ║\n╚════════════════════════════════════════════════════════════╝\n `);\n },\n};\n\n/**\n * Initialize dev tools - expose on window object\n */\nexport function initDevTools(): void {\n if (typeof window === 'undefined') return;\n\n // Expose services\n (window as any).domService = domService;\n (window as any).toolExecutionService = toolExecutionService;\n (window as any).chatService = chatService;\n (window as any).WebSocketClient = WebSocketClient;\n\n // Expose dev tools helper\n (window as any).devTools = devTools;\n\n console.log(`\n╔════════════════════════════════════════════════════════════╗\n║ Marketrix Widget DevTools Loaded ║\n║ ║\n║ Type devTools.help() for available commands ║\n╚════════════════════════════════════════════════════════════╝\n `);\n}\n","/**\n * Debug Panel Component\n *\n * A floating debug panel for testing browser tools in isolation.\n * Toggle with Ctrl+Shift+D\n *\n * Features:\n * - Tool selector with parameter inputs\n * - Mode toggle (Do/Show)\n * - Execute button with result display\n * - DOM element viewer\n * - Auto-index button\n */\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport {\n devTestService,\n type ScenarioResult,\n type TestResult,\n} from '../../services/DevTestService';\nimport {\n domService,\n type ElementFingerprint,\n type ValidationResult,\n} from '../../services/DomService';\nimport { type ToolExecutionResult, toolExecutionService } from '../../services/ToolService';\nimport { TOOL_PARAMS } from '../../utils/devTools';\n\n// Styles for debug panel (inline to keep it self-contained)\nconst styles = {\n overlay: {\n position: 'fixed' as const,\n top: '10px',\n right: '10px',\n width: '420px',\n maxHeight: 'calc(100vh - 20px)',\n backgroundColor: '#1e1e1e',\n border: '1px solid #3c3c3c',\n borderRadius: '8px',\n fontFamily: 'Monaco, Consolas, \"Courier New\", monospace',\n fontSize: '12px',\n color: '#d4d4d4',\n zIndex: 999999,\n display: 'flex',\n flexDirection: 'column' as const,\n boxShadow: '0 4px 20px rgba(0, 0, 0, 0.5)',\n },\n header: {\n padding: '10px 12px',\n backgroundColor: '#2d2d2d',\n borderBottom: '1px solid #3c3c3c',\n borderRadius: '8px 8px 0 0',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n title: {\n fontWeight: 'bold' as const,\n color: '#569cd6',\n fontSize: '13px',\n },\n closeBtn: {\n background: 'none',\n border: 'none',\n color: '#808080',\n cursor: 'pointer',\n fontSize: '16px',\n padding: '0 4px',\n },\n content: {\n padding: '12px',\n overflowY: 'auto' as const,\n flex: 1,\n },\n section: {\n marginBottom: '16px',\n },\n sectionTitle: {\n color: '#9cdcfe',\n marginBottom: '8px',\n fontWeight: 'bold' as const,\n fontSize: '11px',\n textTransform: 'uppercase' as const,\n letterSpacing: '0.5px',\n },\n select: {\n width: '100%',\n padding: '8px',\n backgroundColor: '#3c3c3c',\n border: '1px solid #4c4c4c',\n borderRadius: '4px',\n color: '#d4d4d4',\n fontSize: '12px',\n cursor: 'pointer',\n },\n inputGroup: {\n marginBottom: '8px',\n },\n label: {\n display: 'block',\n color: '#9cdcfe',\n marginBottom: '4px',\n fontSize: '11px',\n },\n input: {\n width: '100%',\n padding: '8px',\n backgroundColor: '#3c3c3c',\n border: '1px solid #4c4c4c',\n borderRadius: '4px',\n color: '#d4d4d4',\n fontSize: '12px',\n boxSizing: 'border-box' as const,\n },\n row: {\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n marginBottom: '8px',\n },\n modeBtn: (active: boolean) => ({\n flex: 1,\n padding: '8px',\n backgroundColor: active ? '#264f78' : '#3c3c3c',\n border: active ? '1px solid #569cd6' : '1px solid #4c4c4c',\n borderRadius: '4px',\n color: active ? '#ffffff' : '#d4d4d4',\n cursor: 'pointer',\n fontSize: '12px',\n }),\n executeBtn: {\n width: '100%',\n padding: '10px',\n backgroundColor: '#0e639c',\n border: 'none',\n borderRadius: '4px',\n color: '#ffffff',\n cursor: 'pointer',\n fontSize: '12px',\n fontWeight: 'bold' as const,\n },\n executeBtnDisabled: {\n backgroundColor: '#4c4c4c',\n cursor: 'not-allowed',\n },\n result: {\n padding: '10px',\n backgroundColor: '#2d2d2d',\n borderRadius: '4px',\n marginTop: '8px',\n maxHeight: '150px',\n overflowY: 'auto' as const,\n },\n resultSuccess: {\n color: '#4ec9b0',\n },\n resultError: {\n color: '#f14c4c',\n },\n elementList: {\n maxHeight: '200px',\n overflowY: 'auto' as const,\n backgroundColor: '#2d2d2d',\n borderRadius: '4px',\n },\n elementItem: {\n padding: '6px 10px',\n borderBottom: '1px solid #3c3c3c',\n cursor: 'pointer',\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n },\n elementIndex: {\n color: '#b5cea8',\n fontWeight: 'bold' as const,\n minWidth: '30px',\n },\n elementTag: {\n color: '#569cd6',\n },\n elementId: {\n color: '#ce9178',\n },\n elementText: {\n color: '#808080',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap' as const,\n flex: 1,\n },\n indexBtn: {\n padding: '8px 12px',\n backgroundColor: '#3c3c3c',\n border: '1px solid #4c4c4c',\n borderRadius: '4px',\n color: '#d4d4d4',\n cursor: 'pointer',\n fontSize: '12px',\n marginBottom: '8px',\n },\n badge: {\n backgroundColor: '#4ec9b0',\n color: '#1e1e1e',\n padding: '2px 6px',\n borderRadius: '10px',\n fontSize: '10px',\n marginLeft: '8px',\n },\n tabs: {\n display: 'flex',\n borderBottom: '1px solid #3c3c3c',\n backgroundColor: '#252526',\n },\n tab: (active: boolean) => ({\n padding: '8px 16px',\n backgroundColor: active ? '#1e1e1e' : 'transparent',\n border: 'none',\n borderBottom: active ? '2px solid #569cd6' : '2px solid transparent',\n color: active ? '#ffffff' : '#808080',\n cursor: 'pointer',\n fontSize: '12px',\n }),\n};\n\ninterface IndexedElement {\n index: number;\n tag: string;\n id: string;\n className: string;\n text: string;\n}\n\ntype TabType = 'tools' | 'elements' | 'mismatch';\n\ninterface MismatchIndexedElement {\n index: number;\n fingerprint: ElementFingerprint;\n element: HTMLElement | null;\n}\n\ninterface ValidationLogEntry {\n timestamp: Date;\n action: string;\n originalIndex: number;\n validation: ValidationResult;\n recoveryAction?: string;\n}\n\nexport const DebugPanel: React.FC = () => {\n const [isVisible, setIsVisible] = useState(true);\n const [activeTab, setActiveTab] = useState<TabType>('tools');\n\n // Tool execution state\n const [selectedTool, setSelectedTool] = useState<string>('click_element');\n const [toolArgs, setToolArgs] = useState<Record<string, string>>({});\n const [mode, setMode] = useState<'do' | 'show'>('do');\n const [explanation, setExplanation] = useState('');\n const [isExecuting, setIsExecuting] = useState(false);\n const [result, setResult] = useState<ToolExecutionResult | null>(null);\n\n // DOM elements state\n const [indexedElements, setIndexedElements] = useState<IndexedElement[]>([]);\n const [isIndexing, setIsIndexing] = useState(false);\n\n // Mismatch testing state\n const [mismatchElements, setMismatchElements] = useState<MismatchIndexedElement[]>([]);\n const [validationLog, setValidationLog] = useState<ValidationLogEntry[]>([]);\n const [lastTestResult, setLastTestResult] = useState<TestResult | null>(null);\n const [scenarioResults, setScenarioResults] = useState<ScenarioResult[]>([]);\n const [selectedMismatchIndex, setSelectedMismatchIndex] = useState<number>(0);\n const [testCommandInput, setTestCommandInput] = useState<string>('click_element');\n\n // Keyboard shortcut handler\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.ctrlKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n setIsVisible((prev) => !prev);\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, []);\n\n // Reset args when tool changes\n useEffect(() => {\n setToolArgs({});\n setResult(null);\n }, [selectedTool]);\n\n // Index DOM elements\n const handleIndexDOM = useCallback(() => {\n setIsIndexing(true);\n try {\n const elements = domService.indexInteractableElements();\n const mapped: IndexedElement[] = elements.map(([index, el]) => ({\n index,\n tag: el.tagName.toLowerCase(),\n id: el.id || '',\n className: el.className?.toString().slice(0, 30) || '',\n text: el.textContent?.trim().slice(0, 40) || '',\n }));\n setIndexedElements(mapped);\n } finally {\n setIsIndexing(false);\n }\n }, []);\n\n // Execute tool\n const handleExecute = useCallback(async () => {\n setIsExecuting(true);\n setResult(null);\n\n try {\n // Parse args (convert numeric strings to numbers)\n const parsedArgs: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(toolArgs)) {\n if (value === '') continue;\n // Try to parse as number\n const num = Number(value);\n parsedArgs[key] = isNaN(num) ? value : num;\n }\n\n const res = await toolExecutionService.executeTool(\n selectedTool,\n parsedArgs,\n mode,\n explanation\n );\n setResult(res);\n } catch (error) {\n setResult({\n success: false,\n result: '',\n error: error instanceof Error ? error.message : String(error),\n });\n } finally {\n setIsExecuting(false);\n }\n }, [selectedTool, toolArgs, mode, explanation]);\n\n // Highlight element\n const handleHighlightElement = useCallback((index: number) => {\n const element = domService.getElementByIndex(index);\n if (element) {\n const originalOutline = element.style.outline;\n const originalBackground = element.style.background;\n\n element.style.outline = '3px solid #569cd6';\n element.style.background = 'rgba(86, 156, 214, 0.2)';\n element.scrollIntoView({ behavior: 'smooth', block: 'center' });\n\n setTimeout(() => {\n element.style.outline = originalOutline;\n element.style.background = originalBackground;\n }, 2000);\n }\n }, []);\n\n // Use element in tool\n const handleUseElement = useCallback((index: number) => {\n setActiveTab('tools');\n setToolArgs((prev) => ({ ...prev, index: String(index) }));\n }, []);\n\n // Mismatch testing handlers\n const refreshMismatchElements = useCallback(() => {\n const elements = devTestService.getIndexedElements();\n setMismatchElements(elements);\n }, []);\n\n const refreshValidationLog = useCallback(() => {\n setValidationLog(devTestService.getValidationLog());\n }, []);\n\n const handleMismatchReindex = useCallback(() => {\n domService.indexInteractableElements();\n refreshMismatchElements();\n }, [refreshMismatchElements]);\n\n const handleSimulateCommand = useCallback(async () => {\n const result = await devTestService.simulateAgentCommand(testCommandInput, {\n index: selectedMismatchIndex,\n });\n setLastTestResult(result);\n refreshValidationLog();\n refreshMismatchElements();\n }, [testCommandInput, selectedMismatchIndex, refreshValidationLog, refreshMismatchElements]);\n\n const handleRunScenario = useCallback(\n async (scenarioId: string) => {\n const result = await devTestService.runScenario(scenarioId);\n setScenarioResults((prev) => [...prev, result]);\n refreshValidationLog();\n refreshMismatchElements();\n },\n [refreshValidationLog, refreshMismatchElements]\n );\n\n const handleRunAllScenarios = useCallback(async () => {\n const results = await devTestService.runAllScenarios();\n setScenarioResults(results);\n refreshValidationLog();\n refreshMismatchElements();\n }, [refreshValidationLog, refreshMismatchElements]);\n\n // DOM mutation handlers for mismatch testing\n const handleInsertBefore = useCallback(() => {\n devTestService.insertElementBefore(selectedMismatchIndex);\n refreshMismatchElements();\n }, [selectedMismatchIndex, refreshMismatchElements]);\n\n const handleRemoveElement = useCallback(() => {\n devTestService.removeElement(selectedMismatchIndex);\n refreshMismatchElements();\n }, [selectedMismatchIndex, refreshMismatchElements]);\n\n const handleSimulateRerender = useCallback(() => {\n devTestService.simulateRerender(selectedMismatchIndex);\n refreshMismatchElements();\n }, [selectedMismatchIndex, refreshMismatchElements]);\n\n const handleChangeContent = useCallback(() => {\n devTestService.changeElementContent(selectedMismatchIndex, `Modified Text ${Date.now()}`);\n refreshMismatchElements();\n }, [selectedMismatchIndex, refreshMismatchElements]);\n\n const handleCleanup = useCallback(() => {\n devTestService.cleanupTestElements();\n refreshMismatchElements();\n }, [refreshMismatchElements]);\n\n const handleShowModal = useCallback(() => {\n devTestService.showModal();\n }, []);\n\n const handleCreateIframe = useCallback(() => {\n devTestService.createIframeWithButton();\n }, []);\n\n const handleCreateShadowDom = useCallback(() => {\n devTestService.createShadowDomElement();\n }, []);\n\n // Validation status color\n const getValidationColor = (validation: ValidationResult): string => {\n if (validation.isValid) return '#4ec9b0'; // Green\n if (validation.recoveredElement) return '#dcdcaa'; // Yellow\n return '#f14c4c'; // Red\n };\n\n const getOutcomeColor = (outcome: string): string => {\n switch (outcome) {\n case 'executed':\n return '#4ec9b0';\n case 'recovered':\n return '#dcdcaa';\n case 'failed':\n return '#f14c4c';\n default:\n return '#808080';\n }\n };\n\n if (!isVisible) return null;\n\n const toolParams = TOOL_PARAMS[selectedTool] || { required: [], optional: [] };\n const allParams = [...toolParams.required, ...toolParams.optional];\n\n return (\n <div style={styles.overlay}>\n {/* Header */}\n <div style={styles.header}>\n <span style={styles.title}>\n 🔧 Debug Panel\n <span style={{ ...styles.badge, backgroundColor: '#4ec9b0' }}>DEV</span>\n </span>\n <button\n style={styles.closeBtn}\n onClick={() => setIsVisible(false)}\n title='Close (Ctrl+Shift+D)'\n >\n ✕\n </button>\n </div>\n\n {/* Tabs */}\n <div style={styles.tabs}>\n <button style={styles.tab(activeTab === 'tools')} onClick={() => setActiveTab('tools')}>\n Tools\n </button>\n <button\n style={styles.tab(activeTab === 'elements')}\n onClick={() => setActiveTab('elements')}\n >\n Elements {indexedElements.length > 0 && `(${indexedElements.length})`}\n </button>\n <button\n style={styles.tab(activeTab === 'mismatch')}\n onClick={() => {\n setActiveTab('mismatch');\n refreshMismatchElements();\n refreshValidationLog();\n }}\n >\n Mismatch\n </button>\n </div>\n\n {/* Content */}\n <div style={styles.content}>\n {activeTab === 'tools' && (\n <>\n {/* Tool Selector */}\n <div style={styles.section}>\n <div style={styles.sectionTitle}>Select Tool</div>\n <select\n style={styles.select}\n value={selectedTool}\n onChange={(e) => setSelectedTool(e.target.value)}\n >\n <optgroup label='Navigation'>\n <option value='navigate'>navigate</option>\n <option value='search'>search</option>\n <option value='go_back'>go_back</option>\n </optgroup>\n <optgroup label='Interaction'>\n <option value='click_element'>click_element</option>\n <option value='type_text'>type_text</option>\n <option value='scroll'>scroll</option>\n <option value='scroll_to_text'>scroll_to_text</option>\n <option value='send_keys'>send_keys</option>\n <option value='select_dropdown_option'>select_dropdown_option</option>\n </optgroup>\n <optgroup label='Extraction'>\n <option value='extract'>extract</option>\n <option value='get_html'>get_html</option>\n <option value='get_dropdown_options'>get_dropdown_options</option>\n <option value='get_screenshot'>get_screenshot</option>\n </optgroup>\n <optgroup label='Utility'>\n <option value='wait'>wait</option>\n <option value='done'>done</option>\n <option value='close_tab'>close_tab</option>\n </optgroup>\n </select>\n </div>\n\n {/* Parameters */}\n {allParams.length > 0 && (\n <div style={styles.section}>\n <div style={styles.sectionTitle}>Parameters</div>\n {allParams.map((param) => (\n <div key={param} style={styles.inputGroup}>\n <label style={styles.label}>\n {param}\n {toolParams.required.includes(param) && (\n <span style={{ color: '#f14c4c' }}> *</span>\n )}\n </label>\n <input\n style={styles.input}\n type='text'\n value={toolArgs[param] || ''}\n onChange={(e) =>\n setToolArgs((prev) => ({ ...prev, [param]: e.target.value }))\n }\n placeholder={getPlaceholder(param)}\n />\n </div>\n ))}\n </div>\n )}\n\n {/* Mode Toggle */}\n <div style={styles.section}>\n <div style={styles.sectionTitle}>Mode</div>\n <div style={styles.row}>\n <button style={styles.modeBtn(mode === 'do')} onClick={() => setMode('do')}>\n Do (Auto)\n </button>\n <button style={styles.modeBtn(mode === 'show')} onClick={() => setMode('show')}>\n Show (Confirm)\n </button>\n </div>\n {mode === 'show' && (\n <div style={styles.inputGroup}>\n <label style={styles.label}>Explanation</label>\n <input\n style={styles.input}\n type='text'\n value={explanation}\n onChange={(e) => setExplanation(e.target.value)}\n placeholder='What this action does...'\n />\n </div>\n )}\n </div>\n\n {/* Execute Button */}\n <button\n style={{\n ...styles.executeBtn,\n ...(isExecuting ? styles.executeBtnDisabled : {}),\n }}\n onClick={handleExecute}\n disabled={isExecuting}\n >\n {isExecuting ? 'Executing...' : `Execute ${selectedTool}`}\n </button>\n\n {/* Result */}\n {result && (\n <div style={styles.result}>\n <div style={result.success ? styles.resultSuccess : styles.resultError}>\n {result.success ? '✓ Success' : '✗ Failed'}\n </div>\n {result.result && (\n <pre\n style={{\n margin: '8px 0 0 0',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-all',\n fontSize: '11px',\n }}\n >\n {typeof result.result === 'string' && result.result.length > 500\n ? `${result.result.slice(0, 500)}...`\n : result.result}\n </pre>\n )}\n {result.error && (\n <div style={{ marginTop: '8px', color: '#f14c4c' }}>{result.error}</div>\n )}\n </div>\n )}\n </>\n )}\n\n {activeTab === 'elements' && (\n <>\n {/* Index Button */}\n <button style={styles.indexBtn} onClick={handleIndexDOM} disabled={isIndexing}>\n {isIndexing ? 'Indexing...' : '🔄 Index DOM Elements'}\n </button>\n\n {/* Element List */}\n {indexedElements.length > 0 ? (\n <div style={styles.elementList}>\n {indexedElements.map((el) => (\n <div\n key={el.index}\n style={styles.elementItem}\n onClick={() => handleHighlightElement(el.index)}\n onDoubleClick={() => handleUseElement(el.index)}\n title='Click to highlight, double-click to use in tool'\n >\n <span style={styles.elementIndex}>{el.index}</span>\n <span style={styles.elementTag}>&lt;{el.tag}&gt;</span>\n {el.id && <span style={styles.elementId}>#{el.id}</span>}\n <span style={styles.elementText}>{el.text || el.className}</span>\n </div>\n ))}\n </div>\n ) : (\n <div style={{ color: '#808080', textAlign: 'center', padding: '20px' }}>\n Click \"Index DOM Elements\" to scan the page\n </div>\n )}\n </>\n )}\n\n {activeTab === 'mismatch' && (\n <>\n {/* Mismatch Testing Header */}\n <div style={styles.section}>\n <div style={{ display: 'flex', gap: '8px', marginBottom: '12px' }}>\n <button style={styles.indexBtn} onClick={handleMismatchReindex}>\n Re-index DOM\n </button>\n <button style={styles.indexBtn} onClick={refreshMismatchElements}>\n Refresh\n </button>\n <span style={{ marginLeft: 'auto', color: '#808080', fontSize: '11px' }}>\n {mismatchElements.length} elements\n </span>\n </div>\n </div>\n\n {/* Target Index Selection */}\n <div style={styles.section}>\n <div style={styles.sectionTitle}>Target Index</div>\n <div style={styles.row}>\n <input\n type='number'\n style={{ ...styles.input, width: '80px' }}\n value={selectedMismatchIndex}\n onChange={(e) => setSelectedMismatchIndex(parseInt(e.target.value) || 0)}\n />\n <select\n style={{ ...styles.select, flex: 1 }}\n value={testCommandInput}\n onChange={(e) => setTestCommandInput(e.target.value)}\n >\n <option value='click_element'>click_element</option>\n <option value='type_text'>type_text</option>\n <option value='send_keys'>send_keys</option>\n </select>\n <button\n style={{\n ...styles.executeBtn,\n width: 'auto',\n padding: '8px 16px',\n backgroundColor: '#4ec9b0',\n }}\n onClick={handleSimulateCommand}\n >\n Execute\n </button>\n </div>\n </div>\n\n {/* DOM Mutation Buttons */}\n <div style={styles.section}>\n <div style={styles.sectionTitle}>DOM Mutations</div>\n <div style={{ display: 'flex', flexWrap: 'wrap', gap: '6px' }}>\n <button style={styles.indexBtn} onClick={handleInsertBefore}>\n Insert Before\n </button>\n <button\n style={{ ...styles.indexBtn, backgroundColor: '#5a1d1d' }}\n onClick={handleRemoveElement}\n >\n Remove\n </button>\n <button style={styles.indexBtn} onClick={handleSimulateRerender}>\n Rerender\n </button>\n <button style={styles.indexBtn} onClick={handleChangeContent}>\n Change Text\n </button>\n </div>\n </div>\n\n {/* Special Cases */}\n <div style={styles.section}>\n <div style={styles.sectionTitle}>Special Cases</div>\n <div style={{ display: 'flex', flexWrap: 'wrap', gap: '6px' }}>\n <button style={styles.indexBtn} onClick={handleShowModal}>\n Show Modal\n </button>\n <button style={styles.indexBtn} onClick={handleCreateIframe}>\n Create iFrame\n </button>\n <button style={styles.indexBtn} onClick={handleCreateShadowDom}>\n Shadow DOM\n </button>\n <button\n style={{ ...styles.indexBtn, backgroundColor: '#5a3d1d' }}\n onClick={handleCleanup}\n >\n Cleanup Test Elements\n </button>\n </div>\n </div>\n\n {/* Test Scenarios */}\n <div style={styles.section}>\n <div style={styles.sectionTitle}>Test Scenarios</div>\n <button\n style={{ ...styles.executeBtn, marginBottom: '8px', backgroundColor: '#4ec9b0' }}\n onClick={handleRunAllScenarios}\n >\n Run All Scenarios\n </button>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>\n <button\n style={styles.indexBtn}\n onClick={() => handleRunScenario('index-shift-insert')}\n >\n Index Shift - Insert\n </button>\n <button\n style={styles.indexBtn}\n onClick={() => handleRunScenario('index-shift-remove')}\n >\n Index Shift - Remove\n </button>\n <button\n style={styles.indexBtn}\n onClick={() => handleRunScenario('element-content-change')}\n >\n Content Change\n </button>\n <button style={styles.indexBtn} onClick={() => handleRunScenario('spa-rerender')}>\n SPA Re-render\n </button>\n </div>\n </div>\n\n {/* Last Test Result */}\n {lastTestResult && (\n <div style={styles.section}>\n <div style={styles.sectionTitle}>Last Result</div>\n <div\n style={{\n ...styles.result,\n borderLeft: `3px solid ${getOutcomeColor(lastTestResult.outcome)}`,\n }}\n >\n <div style={{ fontWeight: 'bold' }}>Command: {lastTestResult.command}</div>\n <div>Index: {lastTestResult.index}</div>\n <div style={{ color: getOutcomeColor(lastTestResult.outcome) }}>\n Outcome: {lastTestResult.outcome.toUpperCase()}\n </div>\n <div style={{ fontSize: '10px', color: '#808080', marginTop: '4px' }}>\n {lastTestResult.details}\n </div>\n </div>\n </div>\n )}\n\n {/* Scenario Results */}\n {scenarioResults.length > 0 && (\n <div style={styles.section}>\n <div style={styles.sectionTitle}>Scenario Results</div>\n <div style={{ maxHeight: '150px', overflowY: 'auto' }}>\n {scenarioResults.map((result, idx) => (\n <div\n key={idx}\n style={{\n padding: '6px 10px',\n marginBottom: '4px',\n backgroundColor: '#2d2d2d',\n borderRadius: '4px',\n borderLeft: `3px solid ${result.passed ? '#4ec9b0' : '#f14c4c'}`,\n }}\n >\n <div\n style={{ fontWeight: 'bold', color: result.passed ? '#4ec9b0' : '#f14c4c' }}\n >\n {result.passed ? 'PASS' : 'FAIL'}: {result.scenarioName}\n </div>\n <div style={{ fontSize: '10px', color: '#808080' }}>{result.summary}</div>\n </div>\n ))}\n </div>\n <button\n style={{ ...styles.indexBtn, marginTop: '8px' }}\n onClick={() => setScenarioResults([])}\n >\n Clear Results\n </button>\n </div>\n )}\n\n {/* Validation Log */}\n <div style={styles.section}>\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '8px',\n }}\n >\n <div style={styles.sectionTitle}>Validation Log</div>\n <div style={{ display: 'flex', gap: '6px' }}>\n <button\n style={{ ...styles.indexBtn, padding: '4px 8px', fontSize: '10px' }}\n onClick={refreshValidationLog}\n >\n Refresh\n </button>\n <button\n style={{ ...styles.indexBtn, padding: '4px 8px', fontSize: '10px' }}\n onClick={() => {\n devTestService.clearLog();\n refreshValidationLog();\n }}\n >\n Clear\n </button>\n </div>\n </div>\n <div\n style={{\n maxHeight: '200px',\n overflowY: 'auto',\n backgroundColor: '#2d2d2d',\n borderRadius: '4px',\n }}\n >\n {validationLog.length === 0 ? (\n <div\n style={{\n color: '#808080',\n textAlign: 'center',\n padding: '20px',\n fontSize: '11px',\n }}\n >\n No validation events yet\n </div>\n ) : (\n validationLog\n .slice()\n .reverse()\n .map((entry, idx) => (\n <div\n key={idx}\n style={{\n padding: '8px 10px',\n borderBottom: '1px solid #3c3c3c',\n borderLeft: `3px solid ${getValidationColor(entry.validation)}`,\n }}\n >\n <div style={{ color: '#808080', fontSize: '9px' }}>\n {entry.timestamp.toLocaleTimeString()}\n </div>\n <div style={{ fontWeight: 'bold', fontSize: '11px' }}>{entry.action}</div>\n <div style={{ fontSize: '10px' }}>\n Valid: {entry.validation.isValid ? 'Yes' : 'No'}\n {entry.validation.mismatchReason &&\n ` (${entry.validation.mismatchReason})`}\n </div>\n {entry.recoveryAction && (\n <div style={{ color: '#dcdcaa', fontSize: '10px' }}>\n Recovery: {entry.recoveryAction}\n </div>\n )}\n </div>\n ))\n )}\n </div>\n </div>\n\n {/* Indexed Elements with Validation Status */}\n <div style={styles.section}>\n <div style={styles.sectionTitle}>Elements (with validation)</div>\n <div\n style={{\n maxHeight: '200px',\n overflowY: 'auto',\n backgroundColor: '#2d2d2d',\n borderRadius: '4px',\n }}\n >\n {mismatchElements.length === 0 ? (\n <div\n style={{\n color: '#808080',\n textAlign: 'center',\n padding: '20px',\n fontSize: '11px',\n }}\n >\n Click \"Re-index DOM\" to scan the page\n </div>\n ) : (\n mismatchElements.map(({ index, fingerprint }) => {\n const validation = devTestService.forceValidation(index);\n return (\n <div\n key={index}\n onClick={() => setSelectedMismatchIndex(index)}\n style={{\n padding: '6px 10px',\n borderBottom: '1px solid #3c3c3c',\n cursor: 'pointer',\n backgroundColor:\n selectedMismatchIndex === index ? '#264f78' : 'transparent',\n borderLeft: `3px solid ${getValidationColor(validation)}`,\n }}\n >\n <div style={{ display: 'flex', gap: '8px', alignItems: 'center' }}>\n <span style={styles.elementIndex}>{index}</span>\n <span style={styles.elementTag}>\n &lt;{fingerprint.tagName.toLowerCase()}&gt;\n </span>\n {fingerprint.id && (\n <span style={styles.elementId}>#{fingerprint.id}</span>\n )}\n </div>\n <div style={{ fontSize: '10px', color: '#808080', marginTop: '2px' }}>\n {fingerprint.textContent?.substring(0, 40) || '(no text)'}\n </div>\n </div>\n );\n })\n )}\n </div>\n </div>\n </>\n )}\n </div>\n </div>\n );\n};\n\n// Helper to get placeholder text for params\nfunction getPlaceholder(param: string): string {\n const placeholders: Record<string, string> = {\n index: '0',\n url: 'https://example.com',\n text: 'Hello world',\n query: 'search query',\n direction: 'down | up | left | right',\n keys: 'Enter',\n option: 'Option text or value',\n seconds: '2',\n engine: 'google | bing | duckduckgo',\n new_tab: 'true | false',\n success: 'true | false',\n path: '/path/to/file',\n };\n return placeholders[param] || '';\n}\n\nexport default DebugPanel;\n","/**\n * Debug Entry Point\n *\n * Separate entry point for the debug panel.\n * This creates a standalone debug overlay that can be loaded alongside the widget.\n *\n * Usage:\n * <script src=\"debug.js\"></script>\n *\n * Or in development:\n * <script type=\"module\" src=\"http://localhost:5173/src/debug.tsx\"></script>\n */\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { DebugPanel } from './components/debug/DebugPanel';\nimport { devTestService } from './services/DevTestService';\nimport { domService } from './services/DomService';\nimport { initDevTools } from './utils/devTools';\n\n// Initialize dev tools (console helpers)\ninitDevTools();\n\n// Expose services on window for test.html\ndeclare global {\n interface Window {\n devTestService: typeof devTestService;\n domService: typeof domService;\n }\n}\nwindow.devTestService = devTestService;\nwindow.domService = domService;\n\n// Create container for debug panel\nfunction createDebugContainer(): HTMLElement {\n // Check if container already exists\n let container = document.getElementById('marketrix-debug-container');\n if (container) {\n return container;\n }\n\n // Create new container\n container = document.createElement('div');\n container.id = 'marketrix-debug-container';\n document.body.appendChild(container);\n\n return container;\n}\n\n// Mount debug panel\nfunction mountDebugPanel(): void {\n const container = createDebugContainer();\n const root = createRoot(container);\n\n root.render(\n <React.StrictMode>\n <DebugPanel />\n </React.StrictMode>\n );\n\n console.log('[Debug] Debug panel mounted. Press Ctrl+Shift+D to toggle visibility.');\n}\n\n// Initialize when DOM is ready\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', mountDebugPanel);\n} else {\n mountDebugPanel();\n}\n\n// Export for manual initialization\nexport { mountDebugPanel };\n"],"names":["jsxRuntimeModule","require$$0","c","reactModule","exports","schedulerModule","React","reactDomModule","require$$1","require$$2","workInProgress","log","root","renderLanes","isHydrating","style","styles","index","thenableState","treeForkCount","options","clientModule","node","util","objectUtil","defaultErrorMap","errorUtil","errorMap","ctx","result","issues","elements","processed","ZodFirstPartyTypeKind","z.object","z.literal","z.array","z\n .object","z.union","z.string","z.number","z.nativeEnum","z.ZodIssueCode","z.any","z.enum","z.void","z.coerce","z.custom","z.boolean","z.record","_a","useState","useEffect","useCallback","jsxs","jsx","Fragment","createRoot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAWA,QAAI,qBAAqB,OAAO,IAAI,4BAA4B,GAC9D,sBAAsB,OAAO,IAAI,gBAAgB;AACnD,aAAS,QAAQ,MAAM,QAAQ,UAAU;AACvC,UAAI,MAAM;AACV,iBAAW,aAAa,MAAM,KAAK;AACnC,iBAAW,OAAO,QAAQ,MAAM,KAAK,OAAO;AAC5C,UAAI,SAAS,QAAQ;AACnB,mBAAW,CAAA;AACX,iBAAS,YAAY;AACnB,oBAAU,aAAa,SAAS,QAAQ,IAAI,OAAO,QAAQ;AAAA,MACjE,MAAS,YAAW;AAClB,eAAS,SAAS;AAClB,aAAO;AAAA,QACL,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA,KAAK,WAAW,SAAS,SAAS;AAAA,QAClC,OAAO;AAAA;IAEX;AACA,+BAAA,WAAmB;AACnB,+BAAA,MAAc;AACd,+BAAA,OAAe;;;;;;;AC/B4B;AACzCA,iBAAA,UAAiBC,kCAAA;AAAA,IACnB;;;;;;;;;;;;;;;;;;;ACOA,QAAI,qBAAqB,OAAO,IAAI,4BAA4B,GAC9D,oBAAoB,OAAO,IAAI,cAAc,GAC7C,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,qBAAqB,OAAO,IAAI,eAAe,GAC/C,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,kBAAkB,OAAO,IAAI,YAAY,GACzC,kBAAkB,OAAO,IAAI,YAAY,GACzC,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,wBAAwB,OAAO;AACjC,aAAS,cAAc,eAAe;AACpC,UAAI,SAAS,iBAAiB,aAAa,OAAO,cAAe,QAAO;AACxE,sBACG,yBAAyB,cAAc,qBAAqB,KAC7D,cAAc,YAAY;AAC5B,aAAO,eAAe,OAAO,gBAAgB,gBAAgB;AAAA,IAC/D;AACA,QAAI,uBAAuB;AAAA,MACvB,WAAW,WAAY;AACrB,eAAO;AAAA,MACb;AAAA,MACI,oBAAoB,WAAY;AAAA,MAAA;AAAA,MAChC,qBAAqB,WAAY;AAAA,MAAA;AAAA,MACjC,iBAAiB,WAAY;AAAA,MAAA;AAAA,OAE/B,SAAS,OAAO,QAChB,cAAc,CAAA;AAChB,aAAS,UAAU,OAAO,SAAS,SAAS;AAC1C,WAAK,QAAQ;AACb,WAAK,UAAU;AACf,WAAK,OAAO;AACZ,WAAK,UAAU,WAAW;AAAA,IAC5B;AACA,cAAU,UAAU,mBAAmB,CAAA;AACvC,cAAU,UAAU,WAAW,SAAU,cAAc,UAAU;AAC/D,UACE,aAAa,OAAO,gBACpB,eAAe,OAAO,gBACtB,QAAQ;AAER,cAAM;AAAA,UACJ;AAAA;AAEJ,WAAK,QAAQ,gBAAgB,MAAM,cAAc,UAAU,UAAU;AAAA,IACvE;AACA,cAAU,UAAU,cAAc,SAAU,UAAU;AACpD,WAAK,QAAQ,mBAAmB,MAAM,UAAU,aAAa;AAAA,IAC/D;AACA,aAAS,iBAAiB;AAAA,IAAA;AAC1B,mBAAe,YAAY,UAAU;AACrC,aAAS,cAAc,OAAO,SAAS,SAAS;AAC9C,WAAK,QAAQ;AACb,WAAK,UAAU;AACf,WAAK,OAAO;AACZ,WAAK,UAAU,WAAW;AAAA,IAC5B;AACA,QAAI,yBAA0B,cAAc,YAAY,IAAI,eAAc;AAC1E,2BAAuB,cAAc;AACrC,WAAO,wBAAwB,UAAU,SAAS;AAClD,2BAAuB,uBAAuB;AAC9C,QAAI,cAAc,MAAM;AACxB,aAAS,OAAO;AAAA,IAAA;AAChB,QAAI,uBAAuB,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAI,GAC7D,iBAAiB,OAAO,UAAU;AACpC,aAAS,aAAa,MAAM,KAAK,OAAO;AACtC,UAAI,UAAU,MAAM;AACpB,aAAO;AAAA,QACL,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA,KAAK,WAAW,UAAU,UAAU;AAAA,QACpC;AAAA;IAEJ;AACA,aAAS,mBAAmB,YAAY,QAAQ;AAC9C,aAAO,aAAa,WAAW,MAAM,QAAQ,WAAW,KAAK;AAAA,IAC/D;AACA,aAAS,eAAe,QAAQ;AAC9B,aACE,aAAa,OAAO,UACpB,SAAS,UACT,OAAO,aAAa;AAAA,IAExB;AACA,aAAS,OAAO,KAAK;AACnB,UAAI,gBAAgB,EAAE,KAAK,MAAM,KAAK,KAAI;AAC1C,aACE,MACA,IAAI,QAAQ,SAAS,SAAU,OAAO;AACpC,eAAO,cAAc,KAAK;AAAA,MAChC,CAAK;AAAA,IAEL;AACA,QAAI,6BAA6B;AACjC,aAAS,cAAc,SAAS,OAAO;AACrC,aAAO,aAAa,OAAO,WAAW,SAAS,WAAW,QAAQ,QAAQ,MACtE,OAAO,KAAK,QAAQ,GAAG,IACvB,MAAM,SAAS,EAAE;AAAA,IACvB;AACA,aAAS,gBAAgB,UAAU;AACjC,cAAQ,SAAS,QAAM;AAAA,QACrB,KAAK;AACH,iBAAO,SAAS;AAAA,QAClB,KAAK;AACH,gBAAM,SAAS;AAAA,QACjB;AACE,kBACG,aAAa,OAAO,SAAS,SAC1B,SAAS,KAAK,MAAM,IAAI,KACtB,SAAS,SAAS,WACpB,SAAS;AAAA,YACP,SAAU,gBAAgB;AACxB,4BAAc,SAAS,WACnB,SAAS,SAAS,aACnB,SAAS,QAAQ;AAAA,YACpC;AAAA,YACc,SAAU,OAAO;AACf,4BAAc,SAAS,WACnB,SAAS,SAAS,YAAc,SAAS,SAAS;AAAA,YACtE;AAAA,UACA,IACQ,SAAS,QACjB;AAAA,YACQ,KAAK;AACH,qBAAO,SAAS;AAAA,YAClB,KAAK;AACH,oBAAM,SAAS;AAAA,UACzB;AAAA,MACA;AACE,YAAM;AAAA,IACR;AACA,aAAS,aAAa,UAAU,OAAO,eAAe,WAAW,UAAU;AACzE,UAAI,OAAO,OAAO;AAClB,UAAI,gBAAgB,QAAQ,cAAc,KAAM,YAAW;AAC3D,UAAI,iBAAiB;AACrB,UAAI,SAAS,SAAU,kBAAiB;AAAA;AAEtC,gBAAQ,MAAI;AAAA,UACV,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,6BAAiB;AACjB;AAAA,UACF,KAAK;AACH,oBAAQ,SAAS,UAAQ;AAAA,cACvB,KAAK;AAAA,cACL,KAAK;AACH,iCAAiB;AACjB;AAAA,cACF,KAAK;AACH,uBACG,iBAAiB,SAAS,OAC3B;AAAA,kBACE,eAAe,SAAS,QAAQ;AAAA,kBAChC;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,gBAChB;AAAA,YAEA;AAAA,QACA;AACE,UAAI;AACF,eACG,WAAW,SAAS,QAAQ,GAC5B,iBACC,OAAO,YAAY,MAAM,cAAc,UAAU,CAAC,IAAI,WACxD,YAAY,QAAQ,KACd,gBAAgB,IAClB,QAAQ,mBACL,gBACC,eAAe,QAAQ,4BAA4B,KAAK,IAAI,MAChE,aAAa,UAAU,OAAO,eAAe,IAAI,SAAUC,IAAG;AAC5D,iBAAOA;AAAA,QACnB,CAAW,KACD,QAAQ,aACP,eAAe,QAAQ,MACrB,WAAW;AAAA,UACV;AAAA,UACA,iBACG,QAAQ,SAAS,OACjB,YAAY,SAAS,QAAQ,SAAS,MACnC,MACC,KAAK,SAAS,KAAK;AAAA,YAClB;AAAA,YACA;AAAA,cACE,OACR;AAAA,QAChB,IACU,MAAM,KAAK,QAAQ,IACvB;AAEJ,uBAAiB;AACjB,UAAI,iBAAiB,OAAO,YAAY,MAAM,YAAY;AAC1D,UAAI,YAAY,QAAQ;AACtB,iBAAS,IAAI,GAAG,IAAI,SAAS,QAAQ;AACnC,UAAC,YAAY,SAAS,CAAC,GACpB,OAAO,iBAAiB,cAAc,WAAW,CAAC,GAClD,kBAAkB;AAAA,YACjB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACV;AAAA,eACa,IAAI,cAAc,QAAQ,GAAI,eAAe,OAAO;AAC7D,aACE,WAAW,EAAE,KAAK,QAAQ,GAAG,IAAI,GACjC,EAAE,YAAY,SAAS,KAAI,GAAI;AAG/B,UAAC,YAAY,UAAU,OACpB,OAAO,iBAAiB,cAAc,WAAW,GAAG,GACpD,kBAAkB;AAAA,YACjB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACV;AAAA,eACW,aAAa,MAAM;AAC1B,YAAI,eAAe,OAAO,SAAS;AACjC,iBAAO;AAAA,YACL,gBAAgB,QAAQ;AAAA,YACxB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEJ,gBAAQ,OAAO,QAAQ;AACvB,cAAM;AAAA,UACJ,qDACG,sBAAsB,QACnB,uBAAuB,OAAO,KAAK,QAAQ,EAAE,KAAK,IAAI,IAAI,MAC1D,SACJ;AAAA;MAER;AACE,aAAO;AAAA,IACT;AACA,aAAS,YAAY,UAAU,MAAM,SAAS;AAC5C,UAAI,QAAQ,SAAU,QAAO;AAC7B,UAAI,SAAS,CAAA,GACX,QAAQ;AACV,mBAAa,UAAU,QAAQ,IAAI,IAAI,SAAU,OAAO;AACtD,eAAO,KAAK,KAAK,SAAS,OAAO,OAAO;AAAA,MAC5C,CAAG;AACD,aAAO;AAAA,IACT;AACA,aAAS,gBAAgB,SAAS;AAChC,UAAI,OAAO,QAAQ,SAAS;AAC1B,YAAI,OAAO,QAAQ;AACnB,eAAO,KAAI;AACX,aAAK;AAAA,UACH,SAAU,cAAc;AACtB,gBAAI,MAAM,QAAQ,WAAW,OAAO,QAAQ;AAC1C,cAAC,QAAQ,UAAU,GAAK,QAAQ,UAAU;AAAA,UACpD;AAAA,UACM,SAAU,OAAO;AACf,gBAAI,MAAM,QAAQ,WAAW,OAAO,QAAQ;AAC1C,cAAC,QAAQ,UAAU,GAAK,QAAQ,UAAU;AAAA,UACpD;AAAA;AAEI,eAAO,QAAQ,YAAa,QAAQ,UAAU,GAAK,QAAQ,UAAU;AAAA,MACzE;AACE,UAAI,MAAM,QAAQ,QAAS,QAAO,QAAQ,QAAQ;AAClD,YAAM,QAAQ;AAAA,IAChB;AACA,QAAI,oBACA,eAAe,OAAO,cAClB,cACA,SAAU,OAAO;AACf,UACE,aAAa,OAAO,UACpB,eAAe,OAAO,OAAO,YAC7B;AACA,YAAI,QAAQ,IAAI,OAAO,WAAW,SAAS;AAAA,UACzC,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,SACE,aAAa,OAAO,SACpB,SAAS,SACT,aAAa,OAAO,MAAM,UACtB,OAAO,MAAM,OAAO,IACpB,OAAO,KAAK;AAAA,UAClB;AAAA,QACd,CAAa;AACD,YAAI,CAAC,OAAO,cAAc,KAAK,EAAG;AAAA,MAC9C,WACY,aAAa,OAAO,WACpB,eAAe,OAAO,QAAQ,MAC9B;AACA,gBAAQ,KAAK,qBAAqB,KAAK;AACvC;AAAA,MACZ;AACU,cAAQ,MAAM,KAAK;AAAA,IAC7B,GACE,WAAW;AAAA,MACT,KAAK;AAAA,MACL,SAAS,SAAU,UAAU,aAAa,gBAAgB;AACxD;AAAA,UACE;AAAA,UACA,WAAY;AACV,wBAAY,MAAM,MAAM,SAAS;AAAA,UAC3C;AAAA,UACQ;AAAA;MAER;AAAA,MACI,OAAO,SAAU,UAAU;AACzB,YAAI,IAAI;AACR,oBAAY,UAAU,WAAY;AAChC;AAAA,QACR,CAAO;AACD,eAAO;AAAA,MACb;AAAA,MACI,SAAS,SAAU,UAAU;AAC3B,eACE,YAAY,UAAU,SAAU,OAAO;AACrC,iBAAO;AAAA,QACjB,CAAS,KAAK,CAAA;AAAA,MAEd;AAAA,MACI,MAAM,SAAU,UAAU;AACxB,YAAI,CAAC,eAAe,QAAQ;AAC1B,gBAAM;AAAA,YACJ;AAAA;AAEJ,eAAO;AAAA,MACb;AAAA;AAEA,qBAAA,WAAmB;AACnB,qBAAA,WAAmB;AACnB,qBAAA,YAAoB;AACpB,qBAAA,WAAmB;AACnB,qBAAA,WAAmB;AACnB,qBAAA,gBAAwB;AACxB,qBAAA,aAAqB;AACrB,qBAAA,WAAmB;AACnB,qBAAA,kEACE;AACF,qBAAA,qBAA6B;AAAA,MAC3B,WAAW;AAAA,MACX,GAAG,SAAU,MAAM;AACjB,eAAO,qBAAqB,EAAE,aAAa,IAAI;AAAA,MACnD;AAAA;AAEA,qBAAA,QAAgB,SAAU,IAAI;AAC5B,aAAO,WAAY;AACjB,eAAO,GAAG,MAAM,MAAM,SAAS;AAAA,MACnC;AAAA,IACA;AACA,qBAAA,cAAsB,WAAY;AAChC,aAAO;AAAA,IACT;AACA,qBAAA,eAAuB,SAAU,SAAS,QAAQ,UAAU;AAC1D,UAAI,SAAS,WAAW,WAAW;AACjC,cAAM;AAAA,UACJ,0DAA0D,UAAU;AAAA;AAExE,UAAI,QAAQ,OAAO,IAAI,QAAQ,KAAK,GAClC,MAAM,QAAQ;AAChB,UAAI,QAAQ;AACV,aAAK,YAAa,WAAW,OAAO,QAAQ,MAAM,KAAK,OAAO,MAAM;AAClE,WAAC,eAAe,KAAK,QAAQ,QAAQ,KACnC,UAAU,YACV,aAAa,YACb,eAAe,YACd,UAAU,YAAY,WAAW,OAAO,QACxC,MAAM,QAAQ,IAAI,OAAO,QAAQ;AACxC,UAAI,WAAW,UAAU,SAAS;AAClC,UAAI,MAAM,SAAU,OAAM,WAAW;AAAA,eAC5B,IAAI,UAAU;AACrB,iBAAS,aAAa,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,UAAU;AAC1D,qBAAW,CAAC,IAAI,UAAU,IAAI,CAAC;AACjC,cAAM,WAAW;AAAA,MACrB;AACE,aAAO,aAAa,QAAQ,MAAM,KAAK,KAAK;AAAA,IAC9C;AACA,qBAAA,gBAAwB,SAAU,cAAc;AAC9C,qBAAe;AAAA,QACb,UAAU;AAAA,QACV,eAAe;AAAA,QACf,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,UAAU;AAAA,QACV,UAAU;AAAA;AAEZ,mBAAa,WAAW;AACxB,mBAAa,WAAW;AAAA,QACtB,UAAU;AAAA,QACV,UAAU;AAAA;AAEZ,aAAO;AAAA,IACT;AACA,qBAAA,gBAAwB,SAAU,MAAM,QAAQ,UAAU;AACxD,UAAI,UACF,QAAQ,CAAA,GACR,MAAM;AACR,UAAI,QAAQ;AACV,aAAK,YAAa,WAAW,OAAO,QAAQ,MAAM,KAAK,OAAO,MAAM;AAClE,yBAAe,KAAK,QAAQ,QAAQ,KAClC,UAAU,YACV,aAAa,YACb,eAAe,aACd,MAAM,QAAQ,IAAI,OAAO,QAAQ;AACxC,UAAI,iBAAiB,UAAU,SAAS;AACxC,UAAI,MAAM,eAAgB,OAAM,WAAW;AAAA,eAClC,IAAI,gBAAgB;AAC3B,iBAAS,aAAa,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,gBAAgB;AACtE,qBAAW,CAAC,IAAI,UAAU,IAAI,CAAC;AACjC,cAAM,WAAW;AAAA,MACrB;AACE,UAAI,QAAQ,KAAK;AACf,aAAK,YAAc,iBAAiB,KAAK,cAAe;AACtD,qBAAW,MAAM,QAAQ,MACtB,MAAM,QAAQ,IAAI,eAAe,QAAQ;AAChD,aAAO,aAAa,MAAM,KAAK,KAAK;AAAA,IACtC;AACA,qBAAA,YAAoB,WAAY;AAC9B,aAAO,EAAE,SAAS,KAAI;AAAA,IACxB;AACA,qBAAA,aAAqB,SAAU,QAAQ;AACrC,aAAO,EAAE,UAAU,wBAAwB,OAAc;AAAA,IAC3D;AACA,qBAAA,iBAAyB;AACzB,qBAAA,OAAe,SAAU,MAAM;AAC7B,aAAO;AAAA,QACL,UAAU;AAAA,QACV,UAAU,EAAE,SAAS,IAAI,SAAS,KAAI;AAAA,QACtC,OAAO;AAAA;IAEX;AACA,qBAAA,OAAe,SAAU,MAAM,SAAS;AACtC,aAAO;AAAA,QACL,UAAU;AAAA,QACV;AAAA,QACA,SAAS,WAAW,UAAU,OAAO;AAAA;IAEzC;AACA,qBAAA,kBAA0B,SAAU,OAAO;AACzC,UAAI,iBAAiB,qBAAqB,GACxC,oBAAoB,CAAA;AACtB,2BAAqB,IAAI;AACzB,UAAI;AACF,YAAI,cAAc,MAAK,GACrB,0BAA0B,qBAAqB;AACjD,iBAAS,2BACP,wBAAwB,mBAAmB,WAAW;AACxD,qBAAa,OAAO,eAClB,SAAS,eACT,eAAe,OAAO,YAAY,QAClC,YAAY,KAAK,MAAM,iBAAiB;AAAA,MAC9C,SAAW,OAAO;AACd,0BAAkB,KAAK;AAAA,MAC3B,UAAG;AACC,iBAAS,kBACP,SAAS,kBAAkB,UAC1B,eAAe,QAAQ,kBAAkB,QACzC,qBAAqB,IAAI;AAAA,MAChC;AAAA,IACA;AACA,qBAAA,2BAAmC,WAAY;AAC7C,aAAO,qBAAqB,EAAE,gBAAe;AAAA,IAC/C;AACA,qBAAA,MAAc,SAAU,QAAQ;AAC9B,aAAO,qBAAqB,EAAE,IAAI,MAAM;AAAA,IAC1C;AACA,qBAAA,iBAAyB,SAAU,QAAQ,cAAc,WAAW;AAClE,aAAO,qBAAqB,EAAE,eAAe,QAAQ,cAAc,SAAS;AAAA,IAC9E;AACA,qBAAA,cAAsB,SAAU,UAAU,MAAM;AAC9C,aAAO,qBAAqB,EAAE,YAAY,UAAU,IAAI;AAAA,IAC1D;AACA,qBAAA,aAAqB,SAAU,SAAS;AACtC,aAAO,qBAAqB,EAAE,WAAW,OAAO;AAAA,IAClD;AACA,qBAAA,gBAAwB,WAAY;AAAA,IAAA;AACpC,qBAAA,mBAA2B,SAAU,OAAO,cAAc;AACxD,aAAO,qBAAqB,EAAE,iBAAiB,OAAO,YAAY;AAAA,IACpE;AACA,qBAAA,YAAoB,SAAU,QAAQ,MAAM;AAC1C,aAAO,qBAAqB,EAAE,UAAU,QAAQ,IAAI;AAAA,IACtD;AACA,qBAAA,iBAAyB,SAAU,UAAU;AAC3C,aAAO,qBAAqB,EAAE,eAAe,QAAQ;AAAA,IACvD;AACA,qBAAA,QAAgB,WAAY;AAC1B,aAAO,qBAAqB,EAAE,MAAK;AAAA,IACrC;AACA,qBAAA,sBAA8B,SAAU,KAAK,QAAQ,MAAM;AACzD,aAAO,qBAAqB,EAAE,oBAAoB,KAAK,QAAQ,IAAI;AAAA,IACrE;AACA,qBAAA,qBAA6B,SAAU,QAAQ,MAAM;AACnD,aAAO,qBAAqB,EAAE,mBAAmB,QAAQ,IAAI;AAAA,IAC/D;AACA,qBAAA,kBAA0B,SAAU,QAAQ,MAAM;AAChD,aAAO,qBAAqB,EAAE,gBAAgB,QAAQ,IAAI;AAAA,IAC5D;AACA,qBAAA,UAAkB,SAAU,QAAQ,MAAM;AACxC,aAAO,qBAAqB,EAAE,QAAQ,QAAQ,IAAI;AAAA,IACpD;AACA,qBAAA,gBAAwB,SAAU,aAAa,SAAS;AACtD,aAAO,qBAAqB,EAAE,cAAc,aAAa,OAAO;AAAA,IAClE;AACA,qBAAA,aAAqB,SAAU,SAAS,YAAY,MAAM;AACxD,aAAO,qBAAqB,EAAE,WAAW,SAAS,YAAY,IAAI;AAAA,IACpE;AACA,qBAAA,SAAiB,SAAU,cAAc;AACvC,aAAO,qBAAqB,EAAE,OAAO,YAAY;AAAA,IACnD;AACA,qBAAA,WAAmB,SAAU,cAAc;AACzC,aAAO,qBAAqB,EAAE,SAAS,YAAY;AAAA,IACrD;AACA,qBAAA,uBAA+B,SAC7B,WACA,aACA,mBACA;AACA,aAAO,qBAAqB,EAAE;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA;IAEJ;AACA,qBAAA,gBAAwB,WAAY;AAClC,aAAO,qBAAqB,EAAE,cAAa;AAAA,IAC7C;AACA,qBAAA,UAAkB;;;;;;;AC3hByB;AACzCC,YAAA,UAAiBF,wBAAA;AAAA,IACnB;;;;;;;;;;;;;;;;;;;;;;;ACOA,eAAS,KAAK,MAAM,MAAM;AACxB,YAAI,QAAQ,KAAK;AACjB,aAAK,KAAK,IAAI;AACd,UAAG,QAAO,IAAI,SAAS;AACrB,cAAI,cAAe,QAAQ,MAAO,GAChC,SAAS,KAAK,WAAW;AAC3B,cAAI,IAAI,QAAQ,QAAQ,IAAI;AAC1B,YAAC,KAAK,WAAW,IAAI,MAAQ,KAAK,KAAK,IAAI,QAAU,QAAQ;AAAA,cAC1D,OAAM;AAAA,QACf;AAAA,MACA;AACA,eAAS,KAAK,MAAM;AAClB,eAAO,MAAM,KAAK,SAAS,OAAO,KAAK,CAAC;AAAA,MAC1C;AACA,eAAS,IAAI,MAAM;AACjB,YAAI,MAAM,KAAK,OAAQ,QAAO;AAC9B,YAAI,QAAQ,KAAK,CAAC,GAChB,OAAO,KAAK,IAAG;AACjB,YAAI,SAAS,OAAO;AAClB,eAAK,CAAC,IAAI;AACV,YAAG,UACG,QAAQ,GAAG,SAAS,KAAK,QAAQ,aAAa,WAAW,GAC7D,QAAQ,cAER;AACA,gBAAI,YAAY,KAAK,QAAQ,KAAK,GAChC,OAAO,KAAK,SAAS,GACrB,aAAa,YAAY,GACzB,QAAQ,KAAK,UAAU;AACzB,gBAAI,IAAI,QAAQ,MAAM,IAAI;AACxB,2BAAa,UAAU,IAAI,QAAQ,OAAO,IAAI,KACxC,KAAK,KAAK,IAAI,OACf,KAAK,UAAU,IAAI,MACnB,QAAQ,eACP,KAAK,KAAK,IAAI,MACf,KAAK,SAAS,IAAI,MAClB,QAAQ;AAAA,qBACN,aAAa,UAAU,IAAI,QAAQ,OAAO,IAAI;AACrD,cAAC,KAAK,KAAK,IAAI,OAAS,KAAK,UAAU,IAAI,MAAQ,QAAQ;AAAA,gBACxD,OAAM;AAAA,UACjB;AAAA,QACA;AACE,eAAO;AAAA,MACT;AACA,eAAS,QAAQ,GAAG,GAAG;AACrB,YAAI,OAAO,EAAE,YAAY,EAAE;AAC3B,eAAO,MAAM,OAAO,OAAO,EAAE,KAAK,EAAE;AAAA,MACtC;AACAG,gBAAA,eAAuB;AACvB,UAAI,aAAa,OAAO,eAAe,eAAe,OAAO,YAAY,KAAK;AAC5E,YAAI,mBAAmB;AACvBA,iCAAuB,WAAY;AACjC,iBAAO,iBAAiB,IAAG;AAAA,QAC/B;AAAA,MACA,OAAO;AACL,YAAI,YAAY,MACd,cAAc,UAAU,IAAG;AAC7BA,iCAAuB,WAAY;AACjC,iBAAO,UAAU,IAAG,IAAK;AAAA,QAC7B;AAAA,MACA;AACA,UAAI,YAAY,CAAA,GACd,aAAa,CAAA,GACb,gBAAgB,GAChB,cAAc,MACd,uBAAuB,GACvB,mBAAmB,OACnB,0BAA0B,OAC1B,yBAAyB,OACzB,aAAa,OACb,kBAAkB,eAAe,OAAO,aAAa,aAAa,MAClE,oBAAoB,eAAe,OAAO,eAAe,eAAe,MACxE,oBAAoB,gBAAgB,OAAO,eAAe,eAAe;AAC3E,eAAS,cAAc,aAAa;AAClC,iBAAS,QAAQ,KAAK,UAAU,GAAG,SAAS,SAAS;AACnD,cAAI,SAAS,MAAM,SAAU,KAAI,UAAU;AAAA,mBAClC,MAAM,aAAa;AAC1B,gBAAI,UAAU,GACX,MAAM,YAAY,MAAM,gBACzB,KAAK,WAAW,KAAK;AAAA,cACpB;AACL,kBAAQ,KAAK,UAAU;AAAA,QAC3B;AAAA,MACA;AACA,eAAS,cAAc,aAAa;AAClC,iCAAyB;AACzB,sBAAc,WAAW;AACzB,YAAI,CAAC;AACH,cAAI,SAAS,KAAK,SAAS;AACzB,YAAC,0BAA0B,MACzB,yBACI,uBAAuB,MAAK;eAC/B;AACH,gBAAI,aAAa,KAAK,UAAU;AAChC,qBAAS,cACP,mBAAmB,eAAe,WAAW,YAAY,WAAW;AAAA,UAC5E;AAAA,MACA;AACA,UAAI,uBAAuB,OACzB,gBAAgB,IAChB,gBAAgB,GAChB,YAAY;AACd,eAAS,oBAAoB;AAC3B,eAAO,aACH,OACAA,UAAQ,aAAY,IAAK,YAAY,gBACnC,QACA;AAAA,MACR;AACA,eAAS,2BAA2B;AAClC,qBAAa;AACb,YAAI,sBAAsB;AACxB,cAAI,cAAcA,UAAQ,aAAY;AACtC,sBAAY;AACZ,cAAI,cAAc;AAClB,cAAI;AACF,eAAG;AACD,wCAA0B;AAC1B,yCACI,yBAAyB,OAC3B,kBAAkB,aAAa,GAC9B,gBAAgB;AACnB,iCAAmB;AACnB,kBAAI,wBAAwB;AAC5B,kBAAI;AACF,mBAAG;AACD,gCAAc,WAAW;AACzB,uBACE,cAAc,KAAK,SAAS,GAC5B,SAAS,eACT,EACE,YAAY,iBAAiB,eAAe,kBAAiB,MAG/D;AACA,wBAAI,WAAW,YAAY;AAC3B,wBAAI,eAAe,OAAO,UAAU;AAClC,kCAAY,WAAW;AACvB,6CAAuB,YAAY;AACnC,0BAAI,uBAAuB;AAAA,wBACzB,YAAY,kBAAkB;AAAA;AAEhC,oCAAcA,UAAQ,aAAY;AAClC,0BAAI,eAAe,OAAO,sBAAsB;AAC9C,oCAAY,WAAW;AACvB,sCAAc,WAAW;AACzB,sCAAc;AACd,8BAAM;AAAA,sBACxB;AACgB,sCAAgB,KAAK,SAAS,KAAK,IAAI,SAAS;AAChD,oCAAc,WAAW;AAAA,oBACzC,MAAqB,KAAI,SAAS;AACpB,kCAAc,KAAK,SAAS;AAAA,kBAC1C;AACY,sBAAI,SAAS,YAAa,eAAc;AAAA,uBACnC;AACH,wBAAI,aAAa,KAAK,UAAU;AAChC,6BAAS,cACP;AAAA,sBACE;AAAA,sBACA,WAAW,YAAY;AAAA;AAE3B,kCAAc;AAAA,kBAC5B;AAAA,gBACA;AACU,sBAAM;AAAA,cAChB,UAAS;AACC,gBAAC,cAAc,MACZ,uBAAuB,uBACvB,mBAAmB;AAAA,cAChC;AACQ,4BAAc;AAAA,YACtB;AAAA,UACA,UAAK;AACC,0BACI,iCAAgC,IAC/B,uBAAuB;AAAA,UAClC;AAAA,QACA;AAAA,MACA;AACA,UAAI;AACJ,UAAI,eAAe,OAAO;AACxB,2CAAmC,WAAY;AAC7C,4BAAkB,wBAAwB;AAAA,QAC9C;AAAA,eACS,gBAAgB,OAAO,gBAAgB;AAC9C,YAAI,UAAU,IAAI,eAAc,GAC9B,OAAO,QAAQ;AACjB,gBAAQ,MAAM,YAAY;AAC1B,2CAAmC,WAAY;AAC7C,eAAK,YAAY,IAAI;AAAA,QACzB;AAAA,MACA;AACE,2CAAmC,WAAY;AAC7C,0BAAgB,0BAA0B,CAAC;AAAA,QAC/C;AACA,eAAS,mBAAmB,UAAU,IAAI;AACxC,wBAAgB,gBAAgB,WAAY;AAC1C,mBAASA,UAAQ,cAAc;AAAA,QACnC,GAAK,EAAE;AAAA,MACP;AACAA,gBAAA,wBAAgC;AAChCA,gBAAA,6BAAqC;AACrCA,gBAAA,uBAA+B;AAC/BA,gBAAA,0BAAkC;AAClCA,gBAAA,qBAA6B;AAC7BA,gBAAA,gCAAwC;AACxCA,gBAAA,0BAAkC,SAAU,MAAM;AAChD,aAAK,WAAW;AAAA,MAClB;AACAA,gBAAA,0BAAkC,SAAU,KAAK;AAC/C,YAAI,OAAO,MAAM,MACb,QAAQ;AAAA,UACN;AAAA,QACR,IACO,gBAAgB,IAAI,MAAM,KAAK,MAAM,MAAM,GAAG,IAAI;AAAA,MACzD;AACAA,gBAAA,mCAA2C,WAAY;AACrD,eAAO;AAAA,MACT;AACAA,gBAAA,gBAAwB,SAAU,cAAc;AAC9C,gBAAQ,sBAAoB;AAAA,UAC1B,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,gBAAI,gBAAgB;AACpB;AAAA,UACF;AACE,4BAAgB;AAAA,QACtB;AACE,YAAI,wBAAwB;AAC5B,+BAAuB;AACvB,YAAI;AACF,iBAAO,aAAY;AAAA,QACvB,UAAG;AACC,iCAAuB;AAAA,QAC3B;AAAA,MACA;AACAA,gBAAA,wBAAgC,WAAY;AAC1C,qBAAa;AAAA,MACf;AACAA,gBAAA,2BAAmC,SAAU,eAAe,cAAc;AACxE,gBAAQ,eAAa;AAAA,UACnB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH;AAAA,UACF;AACE,4BAAgB;AAAA,QACtB;AACE,YAAI,wBAAwB;AAC5B,+BAAuB;AACvB,YAAI;AACF,iBAAO,aAAY;AAAA,QACvB,UAAG;AACC,iCAAuB;AAAA,QAC3B;AAAA,MACA;AACAA,gBAAA,4BAAoC,SAClC,eACA,UACA,SACA;AACA,YAAI,cAAcA,UAAQ,aAAY;AACtC,qBAAa,OAAO,WAAW,SAAS,WAClC,UAAU,QAAQ,OACnB,UACC,aAAa,OAAO,WAAW,IAAI,UAC/B,cAAc,UACd,eACL,UAAU;AACf,gBAAQ,eAAa;AAAA,UACnB,KAAK;AACH,gBAAI,UAAU;AACd;AAAA,UACF,KAAK;AACH,sBAAU;AACV;AAAA,UACF,KAAK;AACH,sBAAU;AACV;AAAA,UACF,KAAK;AACH,sBAAU;AACV;AAAA,UACF;AACE,sBAAU;AAAA,QAChB;AACE,kBAAU,UAAU;AACpB,wBAAgB;AAAA,UACd,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,UACA,WAAW;AAAA,UACX,gBAAgB;AAAA,UAChB,WAAW;AAAA;AAEb,kBAAU,eACJ,cAAc,YAAY,SAC5B,KAAK,YAAY,aAAa,GAC9B,SAAS,KAAK,SAAS,KACrB,kBAAkB,KAAK,UAAU,MAChC,0BACI,kBAAkB,aAAa,GAAI,gBAAgB,MACnD,yBAAyB,MAC9B,mBAAmB,eAAe,UAAU,WAAW,OACvD,cAAc,YAAY,SAC5B,KAAK,WAAW,aAAa,GAC7B,2BACE,qBACE,0BAA0B,MAC5B,yBACI,uBAAuB,MAAK,iCAAgC;AACtE,eAAO;AAAA,MACT;AACAA,gBAAA,uBAA+B;AAC/BA,gBAAA,wBAAgC,SAAU,UAAU;AAClD,YAAI,sBAAsB;AAC1B,eAAO,WAAY;AACjB,cAAI,wBAAwB;AAC5B,iCAAuB;AACvB,cAAI;AACF,mBAAO,SAAS,MAAM,MAAM,SAAS;AAAA,UAC3C,UAAK;AACC,mCAAuB;AAAA,UAC7B;AAAA,QACA;AAAA,MACA;AAAA;;;;;;;ACjV2C;AACzCC,gBAAA,UAAiBJ,4BAAA;AAAA,IACnB;;;;;;;;;;;;;;;;;;ACOA,QAAIK,SAAQL,aAAA;AACZ,aAAS,uBAAuB,MAAM;AACpC,UAAI,MAAM,8BAA8B;AACxC,UAAI,IAAI,UAAU,QAAQ;AACxB,eAAO,aAAa,mBAAmB,UAAU,CAAC,CAAC;AACnD,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ;AACpC,iBAAO,aAAa,mBAAmB,UAAU,CAAC,CAAC;AAAA,MACzD;AACE,aACE,2BACA,OACA,aACA,MACA;AAAA,IAEJ;AACA,aAAS,OAAO;AAAA,IAAA;AAChB,QAAI,YAAY;AAAA,MACZ,GAAG;AAAA,QACD,GAAG;AAAA,QACH,GAAG,WAAY;AACb,gBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,QAC/C;AAAA,QACM,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA;MAEL,GAAG;AAAA,MACH,aAAa;AAAA,OAEf,oBAAoB,OAAO,IAAI,cAAc;AAC/C,aAAS,eAAe,UAAU,eAAe,gBAAgB;AAC/D,UAAI,MACF,IAAI,UAAU,UAAU,WAAW,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI;AACnE,aAAO;AAAA,QACL,UAAU;AAAA,QACV,KAAK,QAAQ,MAAM,OAAO,KAAK;AAAA,QAC/B;AAAA,QACA;AAAA,QACA;AAAA;IAEJ;AACA,QAAI,uBACFK,OAAM;AACR,aAAS,uBAAuB,IAAI,OAAO;AACzC,UAAI,WAAW,GAAI,QAAO;AAC1B,UAAI,aAAa,OAAO;AACtB,eAAO,sBAAsB,QAAQ,QAAQ;AAAA,IACjD;AACA,wBAAA,+DACE;AACF,wBAAA,eAAuB,SAAU,UAAU,WAAW;AACpD,UAAI,MACF,IAAI,UAAU,UAAU,WAAW,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI;AACnE,UACE,CAAC,aACA,MAAM,UAAU,YACf,MAAM,UAAU,YAChB,OAAO,UAAU;AAEnB,cAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,aAAO,eAAe,UAAU,WAAW,MAAM,GAAG;AAAA,IACtD;AACA,wBAAA,YAAoB,SAAU,IAAI;AAChC,UAAI,qBAAqB,qBAAqB,GAC5C,yBAAyB,UAAU;AACrC,UAAI;AACF,YAAM,qBAAqB,IAAI,MAAQ,UAAU,IAAI,GAAI,GAAK,QAAO,GAAE;AAAA,MAC3E,UAAG;AACC,QAAC,qBAAqB,IAAI,oBACvB,UAAU,IAAI,wBACf,UAAU,EAAE,EAAC;AAAA,MACnB;AAAA,IACA;AACA,wBAAA,aAAqB,SAAU,MAAM,SAAS;AAC5C,mBAAa,OAAO,SACjB,WACK,UAAU,QAAQ,aACnB,UACC,aAAa,OAAO,UAChB,sBAAsB,UACpB,UACA,KACF,UACL,UAAU,MACf,UAAU,EAAE,EAAE,MAAM,OAAO;AAAA,IAC/B;AACA,wBAAA,cAAsB,SAAU,MAAM;AACpC,mBAAa,OAAO,QAAQ,UAAU,EAAE,EAAE,IAAI;AAAA,IAChD;AACA,wBAAA,UAAkB,SAAU,MAAM,SAAS;AACzC,UAAI,aAAa,OAAO,QAAQ,WAAW,aAAa,OAAO,QAAQ,IAAI;AACzE,YAAI,KAAK,QAAQ,IACf,cAAc,uBAAuB,IAAI,QAAQ,WAAW,GAC5D,YACE,aAAa,OAAO,QAAQ,YAAY,QAAQ,YAAY,QAC9D,gBACE,aAAa,OAAO,QAAQ,gBACxB,QAAQ,gBACR;AACR,oBAAY,KACR,UAAU,EAAE;AAAA,UACV;AAAA,UACA,aAAa,OAAO,QAAQ,aAAa,QAAQ,aAAa;AAAA,UAC9D;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,UACZ;AAAA,QACA,IACQ,aAAa,MACb,UAAU,EAAE,EAAE,MAAM;AAAA,UAClB;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO,aAAa,OAAO,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,QACrE,CAAS;AAAA,MACT;AAAA,IACA;AACA,wBAAA,gBAAwB,SAAU,MAAM,SAAS;AAC/C,UAAI,aAAa,OAAO;AACtB,YAAI,aAAa,OAAO,WAAW,SAAS,SAAS;AACnD,cAAI,QAAQ,QAAQ,MAAM,aAAa,QAAQ,IAAI;AACjD,gBAAI,cAAc;AAAA,cAChB,QAAQ;AAAA,cACR,QAAQ;AAAA;AAEV,sBAAU,EAAE,EAAE,MAAM;AAAA,cAClB;AAAA,cACA,WACE,aAAa,OAAO,QAAQ,YAAY,QAAQ,YAAY;AAAA,cAC9D,OAAO,aAAa,OAAO,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,YACrE,CAAS;AAAA,UACT;AAAA,QACA,MAAW,SAAQ,WAAW,UAAU,EAAE,EAAE,IAAI;AAAA,IAChD;AACA,wBAAA,UAAkB,SAAU,MAAM,SAAS;AACzC,UACE,aAAa,OAAO,QACpB,aAAa,OAAO,WACpB,SAAS,WACT,aAAa,OAAO,QAAQ,IAC5B;AACA,YAAI,KAAK,QAAQ,IACf,cAAc,uBAAuB,IAAI,QAAQ,WAAW;AAC9D,kBAAU,EAAE,EAAE,MAAM,IAAI;AAAA,UACtB;AAAA,UACA,WACE,aAAa,OAAO,QAAQ,YAAY,QAAQ,YAAY;AAAA,UAC9D,OAAO,aAAa,OAAO,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,UAC3D,MAAM,aAAa,OAAO,QAAQ,OAAO,QAAQ,OAAO;AAAA,UACxD,eACE,aAAa,OAAO,QAAQ,gBACxB,QAAQ,gBACR;AAAA,UACN,gBACE,aAAa,OAAO,QAAQ,iBACxB,QAAQ,iBACR;AAAA,UACN,aACE,aAAa,OAAO,QAAQ,cAAc,QAAQ,cAAc;AAAA,UAClE,YACE,aAAa,OAAO,QAAQ,aAAa,QAAQ,aAAa;AAAA,UAChE,OAAO,aAAa,OAAO,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,QACjE,CAAK;AAAA,MACL;AAAA,IACA;AACA,wBAAA,gBAAwB,SAAU,MAAM,SAAS;AAC/C,UAAI,aAAa,OAAO;AACtB,YAAI,SAAS;AACX,cAAI,cAAc,uBAAuB,QAAQ,IAAI,QAAQ,WAAW;AACxE,oBAAU,EAAE,EAAE,MAAM;AAAA,YAClB,IACE,aAAa,OAAO,QAAQ,MAAM,aAAa,QAAQ,KACnD,QAAQ,KACR;AAAA,YACN;AAAA,YACA,WACE,aAAa,OAAO,QAAQ,YAAY,QAAQ,YAAY;AAAA,UACtE,CAAO;AAAA,QACP,MAAW,WAAU,EAAE,EAAE,IAAI;AAAA,IAC7B;AACA,wBAAA,mBAA2B,SAAU,MAAM;AACzC,gBAAU,EAAE,EAAE,IAAI;AAAA,IACpB;AACA,wBAAA,0BAAkC,SAAU,IAAI,GAAG;AACjD,aAAO,GAAG,CAAC;AAAA,IACb;AACA,wBAAA,eAAuB,SAAU,QAAQ,cAAc,WAAW;AAChE,aAAO,qBAAqB,EAAE,aAAa,QAAQ,cAAc,SAAS;AAAA,IAC5E;AACA,wBAAA,gBAAwB,WAAY;AAClC,aAAO,qBAAqB,EAAE,wBAAuB;AAAA,IACvD;AACA,wBAAA,UAAkB;;;;;;;AC/MlB,aAAS,WAAW;AAElB,UACE,OAAO,mCAAmC,eAC1C,OAAO,+BAA+B,aAAa,YACnD;AACA;AAAA,MAAA;AAYF,UAAI;AAEF,uCAA+B,SAAS,QAAQ;AAAA,MAAA,SACzC,KAAK;AAGZ,gBAAQ,MAAM,GAAG;AAAA,MAAA;AAAA,IAErB;AAE2C;AAGzC,eAAA;AACAC,eAAA,UAAiBN,2BAAA;AAAA,IACnB;;;;;;;;;;;;;;;;ACrBA,QAAI,YAAYA,iBAAA,GACdK,SAAQE,aAAA,GACR,WAAWC,gBAAA;AACb,aAAS,uBAAuB,MAAM;AACpC,UAAI,MAAM,8BAA8B;AACxC,UAAI,IAAI,UAAU,QAAQ;AACxB,eAAO,aAAa,mBAAmB,UAAU,CAAC,CAAC;AACnD,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ;AACpC,iBAAO,aAAa,mBAAmB,UAAU,CAAC,CAAC;AAAA,MACzD;AACE,aACE,2BACA,OACA,aACA,MACA;AAAA,IAEJ;AACA,aAAS,iBAAiB,MAAM;AAC9B,aAAO,EACL,CAAC,QACA,MAAM,KAAK,YAAY,MAAM,KAAK,YAAY,OAAO,KAAK;AAAA,IAE/D;AACA,aAAS,uBAAuB,OAAO;AACrC,UAAI,OAAO,OACT,iBAAiB;AACnB,UAAI,MAAM,UAAW,QAAO,KAAK,SAAU,QAAO,KAAK;AAAA,WAClD;AACH,gBAAQ;AACR;AACE,UAAC,OAAO,OACN,OAAO,KAAK,QAAQ,UAAU,iBAAiB,KAAK,SACnD,QAAQ,KAAK;AAAA,eACX;AAAA,MACX;AACE,aAAO,MAAM,KAAK,MAAM,iBAAiB;AAAA,IAC3C;AACA,aAAS,6BAA6B,OAAO;AAC3C,UAAI,OAAO,MAAM,KAAK;AACpB,YAAI,gBAAgB,MAAM;AAC1B,iBAAS,kBACL,QAAQ,MAAM,WAChB,SAAS,UAAU,gBAAgB,MAAM;AAC3C,YAAI,SAAS,cAAe,QAAO,cAAc;AAAA,MACrD;AACE,aAAO;AAAA,IACT;AACA,aAAS,6BAA6B,OAAO;AAC3C,UAAI,OAAO,MAAM,KAAK;AACpB,YAAI,gBAAgB,MAAM;AAC1B,iBAAS,kBACL,QAAQ,MAAM,WAChB,SAAS,UAAU,gBAAgB,MAAM;AAC3C,YAAI,SAAS,cAAe,QAAO,cAAc;AAAA,MACrD;AACE,aAAO;AAAA,IACT;AACA,aAAS,gBAAgB,OAAO;AAC9B,UAAI,uBAAuB,KAAK,MAAM;AACpC,cAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,IAC3C;AACA,aAAS,8BAA8B,OAAO;AAC5C,UAAI,YAAY,MAAM;AACtB,UAAI,CAAC,WAAW;AACd,oBAAY,uBAAuB,KAAK;AACxC,YAAI,SAAS,UAAW,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAC/D,eAAO,cAAc,QAAQ,OAAO;AAAA,MACxC;AACE,eAAS,IAAI,OAAO,IAAI,eAAe;AACrC,YAAI,UAAU,EAAE;AAChB,YAAI,SAAS,QAAS;AACtB,YAAI,UAAU,QAAQ;AACtB,YAAI,SAAS,SAAS;AACpB,cAAI,QAAQ;AACZ,cAAI,SAAS,GAAG;AACd,gBAAI;AACJ;AAAA,UACR;AACM;AAAA,QACN;AACI,YAAI,QAAQ,UAAU,QAAQ,OAAO;AACnC,eAAK,UAAU,QAAQ,OAAO,WAAW;AACvC,gBAAI,YAAY,EAAG,QAAO,gBAAgB,OAAO,GAAG;AACpD,gBAAI,YAAY,EAAG,QAAO,gBAAgB,OAAO,GAAG;AACpD,sBAAU,QAAQ;AAAA,UAC1B;AACM,gBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,QAC7C;AACI,YAAI,EAAE,WAAW,EAAE,OAAQ,CAAC,IAAI,SAAW,IAAI;AAAA,aAC1C;AACH,mBAAS,eAAe,OAAI,UAAU,QAAQ,OAAO,WAAW;AAC9D,gBAAI,YAAY,GAAG;AACjB,6BAAe;AACf,kBAAI;AACJ,kBAAI;AACJ;AAAA,YACV;AACQ,gBAAI,YAAY,GAAG;AACjB,6BAAe;AACf,kBAAI;AACJ,kBAAI;AACJ;AAAA,YACV;AACQ,sBAAU,QAAQ;AAAA,UAC1B;AACM,cAAI,CAAC,cAAc;AACjB,iBAAK,UAAU,QAAQ,OAAO,WAAW;AACvC,kBAAI,YAAY,GAAG;AACjB,+BAAe;AACf,oBAAI;AACJ,oBAAI;AACJ;AAAA,cACZ;AACU,kBAAI,YAAY,GAAG;AACjB,+BAAe;AACf,oBAAI;AACJ,oBAAI;AACJ;AAAA,cACZ;AACU,wBAAU,QAAQ;AAAA,YAC5B;AACQ,gBAAI,CAAC,aAAc,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,UAClE;AAAA,QACA;AACI,YAAI,EAAE,cAAc,EAAG,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,MAClE;AACE,UAAI,MAAM,EAAE,IAAK,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACxD,aAAO,EAAE,UAAU,YAAY,IAAI,QAAQ;AAAA,IAC7C;AACA,aAAS,yBAAyB,MAAM;AACtC,UAAI,MAAM,KAAK;AACf,UAAI,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,IAAK,QAAO;AAC/D,WAAK,OAAO,KAAK,OAAO,SAAS,QAAQ;AACvC,cAAM,yBAAyB,IAAI;AACnC,YAAI,SAAS,IAAK,QAAO;AACzB,eAAO,KAAK;AAAA,MAChB;AACE,aAAO;AAAA,IACT;AACA,QAAI,SAAS,OAAO,QAClB,4BAA4B,OAAO,IAAI,eAAe,GACtD,qBAAqB,OAAO,IAAI,4BAA4B,GAC5D,oBAAoB,OAAO,IAAI,cAAc,GAC7C,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,qBAAqB,OAAO,IAAI,eAAe,GAC/C,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,2BAA2B,OAAO,IAAI,qBAAqB,GAC3D,kBAAkB,OAAO,IAAI,YAAY,GACzC,kBAAkB,OAAO,IAAI,YAAY;AAE3C,QAAI,sBAAsB,OAAO,IAAI,gBAAgB;AAGrD,QAAI,4BAA4B,OAAO,IAAI,2BAA2B;AAEtE,QAAI,wBAAwB,OAAO;AACnC,aAAS,cAAc,eAAe;AACpC,UAAI,SAAS,iBAAiB,aAAa,OAAO,cAAe,QAAO;AACxE,sBACG,yBAAyB,cAAc,qBAAqB,KAC7D,cAAc,YAAY;AAC5B,aAAO,eAAe,OAAO,gBAAgB,gBAAgB;AAAA,IAC/D;AACA,QAAI,yBAAyB,OAAO,IAAI,wBAAwB;AAChE,aAAS,yBAAyB,MAAM;AACtC,UAAI,QAAQ,KAAM,QAAO;AACzB,UAAI,eAAe,OAAO;AACxB,eAAO,KAAK,aAAa,yBACrB,OACA,KAAK,eAAe,KAAK,QAAQ;AACvC,UAAI,aAAa,OAAO,KAAM,QAAO;AACrC,cAAQ,MAAI;AAAA,QACV,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,MACb;AACE,UAAI,aAAa,OAAO;AACtB,gBAAQ,KAAK,UAAQ;AAAA,UACnB,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO,KAAK,eAAe;AAAA,UAC7B,KAAK;AACH,oBAAQ,KAAK,SAAS,eAAe,aAAa;AAAA,UACpD,KAAK;AACH,gBAAI,YAAY,KAAK;AACrB,mBAAO,KAAK;AACZ,qBACI,OAAO,UAAU,eAAe,UAAU,QAAQ,IACnD,OAAO,OAAO,OAAO,gBAAgB,OAAO,MAAM;AACrD,mBAAO;AAAA,UACT,KAAK;AACH,mBACG,YAAY,KAAK,eAAe,MACjC,SAAS,YACL,YACA,yBAAyB,KAAK,IAAI,KAAK;AAAA,UAE/C,KAAK;AACH,wBAAY,KAAK;AACjB,mBAAO,KAAK;AACZ,gBAAI;AACF,qBAAO,yBAAyB,KAAK,SAAS,CAAC;AAAA,YACzD,SAAiB,GAAG;AAAA,YAAA;AAAA,QACpB;AACE,aAAO;AAAA,IACT;AACA,QAAI,cAAc,MAAM,SACtB,uBACEH,OAAM,iEACR,0BACE,SAAS,8DACX,yBAAyB;AAAA,MACvB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,OAEV,aAAa,CAAA,GACb,QAAQ;AACV,aAAS,aAAa,cAAc;AAClC,aAAO,EAAE,SAAS,aAAY;AAAA,IAChC;AACA,aAAS,IAAI,QAAQ;AACnB,UAAI,UACA,OAAO,UAAU,WAAW,KAAK,GAAK,WAAW,KAAK,IAAI,MAAO;AAAA,IACvE;AACA,aAAS,KAAK,QAAQ,OAAO;AAC3B;AACA,iBAAW,KAAK,IAAI,OAAO;AAC3B,aAAO,UAAU;AAAA,IACnB;AACA,QAAI,qBAAqB,aAAa,IAAI,GACxC,0BAA0B,aAAa,IAAI,GAC3C,0BAA0B,aAAa,IAAI,GAC3C,+BAA+B,aAAa,IAAI;AAClD,aAAS,kBAAkB,OAAO,kBAAkB;AAClD,WAAK,yBAAyB,gBAAgB;AAC9C,WAAK,yBAAyB,KAAK;AACnC,WAAK,oBAAoB,IAAI;AAC7B,cAAQ,iBAAiB,UAAQ;AAAA,QAC/B,KAAK;AAAA,QACL,KAAK;AACH,mBAAS,QAAQ,iBAAiB,oBAC7B,QAAQ,MAAM,gBACb,kBAAkB,KAAK,IACvB,IACF;AACJ;AAAA,QACF;AACE,cACI,QAAQ,iBAAiB,SAC1B,mBAAmB,iBAAiB;AAErC,YAAC,mBAAmB,kBAAkB,gBAAgB,GACnD,QAAQ,wBAAwB,kBAAkB,KAAK;AAAA;AAE1D,oBAAQ,OAAK;AAAA,cACX,KAAK;AACH,wBAAQ;AACR;AAAA,cACF,KAAK;AACH,wBAAQ;AACR;AAAA,cACF;AACE,wBAAQ;AAAA,YACpB;AAAA,MACA;AACE,UAAI,kBAAkB;AACtB,WAAK,oBAAoB,KAAK;AAAA,IAChC;AACA,aAAS,mBAAmB;AAC1B,UAAI,kBAAkB;AACtB,UAAI,uBAAuB;AAC3B,UAAI,uBAAuB;AAAA,IAC7B;AACA,aAAS,gBAAgB,OAAO;AAC9B,eAAS,MAAM,iBAAiB,KAAK,8BAA8B,KAAK;AACxE,UAAI,UAAU,mBAAmB;AACjC,UAAI,2BAA2B,wBAAwB,SAAS,MAAM,IAAI;AAC1E,kBAAY,6BACT,KAAK,yBAAyB,KAAK,GACpC,KAAK,oBAAoB,wBAAwB;AAAA,IACrD;AACA,aAAS,eAAe,OAAO;AAC7B,8BAAwB,YAAY,UACjC,IAAI,kBAAkB,GAAG,IAAI,uBAAuB;AACvD,mCAA6B,YAAY,UACtC,IAAI,4BAA4B,GAChC,sBAAsB,gBAAgB;AAAA,IAC3C;AACA,QAAI,QAAQ;AACZ,aAAS,8BAA8B,MAAM;AAC3C,UAAI,WAAW;AACb,YAAI;AACF,gBAAM,MAAK;AAAA,QACjB,SAAa,GAAG;AACV,cAAI,QAAQ,EAAE,MAAM,KAAI,EAAG,MAAM,cAAc;AAC/C,mBAAU,SAAS,MAAM,CAAC,KAAM;AAChC,mBACE,KAAK,EAAE,MAAM,QAAQ,UAAU,IAC3B,mBACA,KAAK,EAAE,MAAM,QAAQ,GAAG,IACtB,iBACA;AAAA,QACd;AACE,aAAO,OAAO,SAAS,OAAO;AAAA,IAChC;AACA,QAAI,UAAU;AACd,aAAS,6BAA6B,IAAI,WAAW;AACnD,UAAI,CAAC,MAAM,QAAS,QAAO;AAC3B,gBAAU;AACV,UAAI,4BAA4B,MAAM;AACtC,YAAM,oBAAoB;AAC1B,UAAI;AACF,YAAI,iBAAiB;AAAA,UACnB,6BAA6B,WAAY;AACvC,gBAAI;AACF,kBAAI,WAAW;AACb,oBAAI,OAAO,WAAY;AACrB,wBAAM,MAAK;AAAA,gBACzB;AACY,uBAAO,eAAe,KAAK,WAAW,SAAS;AAAA,kBAC7C,KAAK,WAAY;AACf,0BAAM,MAAK;AAAA,kBAC3B;AAAA,gBACA,CAAa;AACD,oBAAI,aAAa,OAAO,WAAW,QAAQ,WAAW;AACpD,sBAAI;AACF,4BAAQ,UAAU,MAAM,EAAE;AAAA,kBAC1C,SAAuB,GAAG;AACV,wBAAI,UAAU;AAAA,kBAC9B;AACc,0BAAQ,UAAU,IAAI,CAAA,GAAI,IAAI;AAAA,gBAC5C,OAAmB;AACL,sBAAI;AACF,yBAAK,KAAI;AAAA,kBACzB,SAAuB,KAAK;AACZ,8BAAU;AAAA,kBAC1B;AACc,qBAAG,KAAK,KAAK,SAAS;AAAA,gBACpC;AAAA,cACA,OAAiB;AACL,oBAAI;AACF,wBAAM,MAAK;AAAA,gBACzB,SAAqB,KAAK;AACZ,4BAAU;AAAA,gBACxB;AACY,iBAAC,OAAO,GAAE,MACR,eAAe,OAAO,KAAK,SAC3B,KAAK,MAAM,WAAY;AAAA,iBAAE;AAAA,cACvC;AAAA,YACA,SAAiB,QAAQ;AACf,kBAAI,UAAU,WAAW,aAAa,OAAO,OAAO;AAClD,uBAAO,CAAC,OAAO,OAAO,QAAQ,KAAK;AAAA,YAC/C;AACQ,mBAAO,CAAC,MAAM,IAAI;AAAA,UAC1B;AAAA;AAEI,uBAAe,4BAA4B,cACzC;AACF,YAAI,qBAAqB,OAAO;AAAA,UAC9B,eAAe;AAAA,UACf;AAAA;AAEF,8BACE,mBAAmB,gBACnB,OAAO;AAAA,UACL,eAAe;AAAA,UACf;AAAA,UACA,EAAE,OAAO,8BAA6B;AAAA;AAE1C,YAAI,wBAAwB,eAAe,4BAA2B,GACpE,cAAc,sBAAsB,CAAC,GACrC,eAAe,sBAAsB,CAAC;AACxC,YAAI,eAAe,cAAc;AAC/B,cAAI,cAAc,YAAY,MAAM,IAAI,GACtC,eAAe,aAAa,MAAM,IAAI;AACxC,eACE,qBAAqB,iBAAiB,GACtC,iBAAiB,YAAY,UAC7B,CAAC,YAAY,cAAc,EAAE,SAAS,6BAA6B;AAGnE;AACF,iBAEE,qBAAqB,aAAa,UAClC,CAAC,aAAa,kBAAkB,EAAE;AAAA,YAChC;AAAA;AAIF;AACF,cACE,mBAAmB,YAAY,UAC/B,uBAAuB,aAAa;AAEpC,iBACE,iBAAiB,YAAY,SAAS,GACpC,qBAAqB,aAAa,SAAS,GAC7C,KAAK,kBACL,KAAK,sBACL,YAAY,cAAc,MAAM,aAAa,kBAAkB;AAG/D;AACJ,iBAEE,KAAK,kBAAkB,KAAK,oBAC5B,kBAAkB;AAElB,gBAAI,YAAY,cAAc,MAAM,aAAa,kBAAkB,GAAG;AACpE,kBAAI,MAAM,kBAAkB,MAAM,oBAAoB;AACpD;AACE,sBACG,kBACD,sBACA,IAAI,sBACF,YAAY,cAAc,MACxB,aAAa,kBAAkB,GACnC;AACA,wBAAI,QACF,OACA,YAAY,cAAc,EAAE,QAAQ,YAAY,MAAM;AACxD,uBAAG,eACD,MAAM,SAAS,aAAa,MAC3B,QAAQ,MAAM,QAAQ,eAAe,GAAG,WAAW;AACtD,2BAAO;AAAA,kBACvB;AAAA,uBACmB,KAAK,kBAAkB,KAAK;AAAA,cAC/C;AACU;AAAA,YACV;AAAA,QACA;AAAA,MACA,UAAG;AACC,QAAC,UAAU,OAAM,MAAM,oBAAoB;AAAA,MAC/C;AACE,cAAQ,4BAA4B,KAAK,GAAG,eAAe,GAAG,OAAO,MACjE,8BAA8B,yBAAyB,IACvD;AAAA,IACN;AACA,aAAS,cAAc,OAAO,YAAY;AACxC,cAAQ,MAAM,KAAG;AAAA,QACf,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,8BAA8B,MAAM,IAAI;AAAA,QACjD,KAAK;AACH,iBAAO,8BAA8B,MAAM;AAAA,QAC7C,KAAK;AACH,iBAAO,MAAM,UAAU,cAAc,SAAS,aAC1C,8BAA8B,mBAAmB,IACjD,8BAA8B,UAAU;AAAA,QAC9C,KAAK;AACH,iBAAO,8BAA8B,cAAc;AAAA,QACrD,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,6BAA6B,MAAM,MAAM,KAAE;AAAA,QACpD,KAAK;AACH,iBAAO,6BAA6B,MAAM,KAAK,QAAQ,KAAE;AAAA,QAC3D,KAAK;AACH,iBAAO,6BAA6B,MAAM,MAAM,IAAE;AAAA,QACpD,KAAK;AACH,iBAAO,8BAA8B,UAAU;AAAA,QACjD;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,aAAS,4BAA4BI,iBAAgB;AACnD,UAAI;AACF,YAAI,OAAO,IACT,WAAW;AACb;AACE,UAAC,QAAQ,cAAcA,iBAAgB,QAAQ,GAC5C,WAAWA,iBACXA,kBAAiBA,gBAAe;AAAA,eAC9BA;AACP,eAAO;AAAA,MACX,SAAW,GAAG;AACV,eAAO,+BAA+B,EAAE,UAAU,OAAO,EAAE;AAAA,MAC/D;AAAA,IACA;AACA,QAAI,iBAAiB,OAAO,UAAU,gBACpC,qBAAqB,UAAU,2BAC/B,mBAAmB,UAAU,yBAC7B,cAAc,UAAU,sBACxB,eAAe,UAAU,uBACzB,MAAM,UAAU,cAChB,0BAA0B,UAAU,kCACpC,oBAAoB,UAAU,4BAC9B,uBAAuB,UAAU,+BACjC,mBAAmB,UAAU,yBAC7B,cAAc,UAAU,sBACxB,eAAe,UAAU,uBACzB,QAAQ,UAAU,KAClB,gCAAgC,UAAU,+BAC1C,aAAa,MACb,eAAe;AACjB,aAAS,2BAA2B,iBAAiB;AACnD,qBAAe,OAAO,SAAS,8BAA8B,eAAe;AAC5E,UAAI,gBAAgB,eAAe,OAAO,aAAa;AACrD,YAAI;AACF,uBAAa,cAAc,YAAY,eAAe;AAAA,QAC5D,SAAa,KAAK;AAAA,QAAA;AAAA,IAClB;AACA,QAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,eACpCC,OAAM,KAAK,KACX,MAAM,KAAK;AACb,aAAS,cAAc,GAAG;AACxB,aAAO;AACP,aAAO,MAAM,IAAI,KAAM,MAAOA,KAAI,CAAC,IAAI,MAAO,KAAM;AAAA,IACtD;AACA,QAAI,2BAA2B,KAC7B,6BAA6B,QAC7B,gBAAgB;AAClB,aAAS,wBAAwB,OAAO;AACtC,UAAI,mBAAmB,QAAQ;AAC/B,UAAI,MAAM,iBAAkB,QAAO;AACnC,cAAQ,QAAQ,CAAC,OAAK;AAAA,QACpB,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,QAAQ;AAAA,QACjB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,QAAQ;AAAA,QACjB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,QAAQ;AAAA,QACjB,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,aAAS,aAAaC,OAAM,UAAU,sBAAsB;AAC1D,UAAI,eAAeA,MAAK;AACxB,UAAI,MAAM,aAAc,QAAO;AAC/B,UAAI,YAAY,GACd,iBAAiBA,MAAK,gBACtB,cAAcA,MAAK;AACrB,MAAAA,QAAOA,MAAK;AACZ,UAAI,sBAAsB,eAAe;AACzC,YAAM,uBACA,eAAe,sBAAsB,CAAC,gBACxC,MAAM,eACD,YAAY,wBAAwB,YAAY,KAC/C,eAAe,qBACjB,MAAM,cACD,YAAY,wBAAwB,WAAW,IAChD,yBACE,uBAAuB,sBAAsB,CAACA,OAChD,MAAM,yBACH,YAAY,wBAAwB,oBAAoB,SACjE,sBAAsB,eAAe,CAAC,gBACxC,MAAM,sBACD,YAAY,wBAAwB,mBAAmB,IACxD,MAAM,cACH,YAAY,wBAAwB,WAAW,IAChD,yBACE,uBAAuB,eAAe,CAACA,OACzC,MAAM,yBACH,YAAY,wBAAwB,oBAAoB;AACrE,aAAO,MAAM,YACT,IACA,MAAM,YACJ,aAAa,aACb,OAAO,WAAW,oBAChB,iBAAiB,YAAY,CAAC,WAC/B,uBAAuB,WAAW,CAAC,UACpC,kBAAkB,wBACf,OAAO,kBAAkB,OAAO,uBAAuB,YAC1D,WACA;AAAA,IACR;AACA,aAAS,0BAA0BA,OAAMC,cAAa;AACpD,aACE,OACCD,MAAK,eACJ,EAAEA,MAAK,iBAAiB,CAACA,MAAK,eAC9BC;AAAA,IAEN;AACA,aAAS,sBAAsB,MAAM,aAAa;AAChD,cAAQ,MAAI;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,cAAc;AAAA,QACvB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,cAAc;AAAA,QACvB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,aAAS,qBAAqB;AAC5B,UAAI,OAAO;AACX,wBAAkB;AAClB,aAAO,gBAAgB,cAAc,gBAAgB;AACrD,aAAO;AAAA,IACT;AACA,aAAS,cAAc,SAAS;AAC9B,eAAS,UAAU,IAAI,IAAI,GAAG,KAAK,GAAG,IAAK,SAAQ,KAAK,OAAO;AAC/D,aAAO;AAAA,IACT;AACA,aAAS,kBAAkBD,OAAM,YAAY;AAC3C,MAAAA,MAAK,gBAAgB;AACrB,oBAAc,eACVA,MAAK,iBAAiB,GAAKA,MAAK,cAAc,GAAKA,MAAK,YAAY;AAAA,IAC1E;AACA,aAAS,iBACPA,OACA,eACA,gBACA,aACA,cACA,qBACA;AACA,UAAI,yBAAyBA,MAAK;AAClC,MAAAA,MAAK,eAAe;AACpB,MAAAA,MAAK,iBAAiB;AACtB,MAAAA,MAAK,cAAc;AACnB,MAAAA,MAAK,YAAY;AACjB,MAAAA,MAAK,gBAAgB;AACrB,MAAAA,MAAK,kBAAkB;AACvB,MAAAA,MAAK,8BAA8B;AACnC,MAAAA,MAAK,sBAAsB;AAC3B,UAAI,gBAAgBA,MAAK,eACvB,kBAAkBA,MAAK,iBACvB,gBAAgBA,MAAK;AACvB,WACE,iBAAiB,yBAAyB,CAAC,gBAC3C,IAAI,kBAEJ;AACA,YAAI,UAAU,KAAK,MAAM,cAAc,GACrC,OAAO,KAAK;AACd,sBAAc,OAAO,IAAI;AACzB,wBAAgB,OAAO,IAAI;AAC3B,YAAI,uBAAuB,cAAc,OAAO;AAChD,YAAI,SAAS;AACX,eACE,cAAc,OAAO,IAAI,MAAM,UAAU,GACzC,UAAU,qBAAqB,QAC/B,WACA;AACA,gBAAI,SAAS,qBAAqB,OAAO;AACzC,qBAAS,WAAW,OAAO,QAAQ;AAAA,UAC3C;AACI,0BAAkB,CAAC;AAAA,MACvB;AACE,YAAM,eAAe,wBAAwBA,OAAM,aAAa,CAAC;AACjE,YAAM,uBACJ,MAAM,gBACN,MAAMA,MAAK,QACVA,MAAK,kBACJ,sBAAsB,EAAE,yBAAyB,CAAC;AAAA,IACxD;AACA,aAAS,wBAAwBA,OAAM,aAAa,gBAAgB;AAClE,MAAAA,MAAK,gBAAgB;AACrB,MAAAA,MAAK,kBAAkB,CAAC;AACxB,UAAI,mBAAmB,KAAK,MAAM,WAAW;AAC7C,MAAAA,MAAK,kBAAkB;AACvB,MAAAA,MAAK,cAAc,gBAAgB,IACjCA,MAAK,cAAc,gBAAgB,IACnC,aACC,iBAAiB;AAAA,IACtB;AACA,aAAS,kBAAkBA,OAAM,gBAAgB;AAC/C,UAAI,qBAAsBA,MAAK,kBAAkB;AACjD,WAAKA,QAAOA,MAAK,eAAe,sBAAsB;AACpD,YAAI,UAAU,KAAK,MAAM,kBAAkB,GACzC,OAAO,KAAK;AACd,QAAC,OAAO,iBAAmBA,MAAK,OAAO,IAAI,mBACxCA,MAAK,OAAO,KAAK;AACpB,8BAAsB,CAAC;AAAA,MAC3B;AAAA,IACA;AACA,aAAS,0BAA0BA,OAAMC,cAAa;AACpD,UAAI,aAAaA,eAAc,CAACA;AAChC,mBACE,OAAO,aAAa,MAAM,IAAI,gCAAgC,UAAU;AAC1E,aAAO,OAAO,cAAcD,MAAK,iBAAiBC,iBAC9C,IACA;AAAA,IACN;AACA,aAAS,gCAAgC,MAAM;AAC7C,cAAQ,MAAI;AAAA,QACV,KAAK;AACH,iBAAO;AACP;AAAA,QACF,KAAK;AACH,iBAAO;AACP;AAAA,QACF,KAAK;AACH,iBAAO;AACP;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AACP;AAAA,QACF,KAAK;AACH,iBAAO;AACP;AAAA,QACF;AACE,iBAAO;AAAA,MACb;AACE,aAAO;AAAA,IACT;AACA,aAAS,qBAAqB,OAAO;AACnC,eAAS,CAAC;AACV,aAAO,IAAI,QACP,IAAI,QACF,OAAO,QAAQ,aACb,KACA,YACF,IACF;AAAA,IACN;AACA,aAAS,wBAAwB;AAC/B,UAAI,iBAAiB,wBAAwB;AAC7C,UAAI,MAAM,eAAgB,QAAO;AACjC,uBAAiB,OAAO;AACxB,aAAO,WAAW,iBAAiB,KAAK,iBAAiB,eAAe,IAAI;AAAA,IAC9E;AACA,aAAS,gBAAgB,UAAU,IAAI;AACrC,UAAI,mBAAmB,wBAAwB;AAC/C,UAAI;AACF,eAAQ,wBAAwB,IAAI,UAAW,GAAE;AAAA,MACrD,UAAG;AACC,gCAAwB,IAAI;AAAA,MAChC;AAAA,IACA;AACA,QAAI,YAAY,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC,GAChD,sBAAsB,kBAAkB,WACxC,mBAAmB,kBAAkB,WACrC,+BAA+B,sBAAsB,WACrD,2BAA2B,mBAAmB,WAC9C,mCAAmC,sBAAsB,WACzD,6BAA6B,oBAAoB,WACjD,+BAA+B,sBAAsB,WACrD,0BAA0B,mBAAmB;AAC/C,aAAS,sBAAsB,MAAM;AACnC,aAAO,KAAK,mBAAmB;AAC/B,aAAO,KAAK,gBAAgB;AAC5B,aAAO,KAAK,wBAAwB;AACpC,aAAO,KAAK,gCAAgC;AAC5C,aAAO,KAAK,0BAA0B;AAAA,IACxC;AACA,aAAS,2BAA2B,YAAY;AAC9C,UAAI,aAAa,WAAW,mBAAmB;AAC/C,UAAI,WAAY,QAAO;AACvB,eAAS,aAAa,WAAW,YAAY,cAAc;AACzD,YACG,aACC,WAAW,4BAA4B,KACvC,WAAW,mBAAmB,GAChC;AACA,uBAAa,WAAW;AACxB,cACE,SAAS,WAAW,SACnB,SAAS,cAAc,SAAS,WAAW;AAE5C,iBACE,aAAa,2BAA2B,UAAU,GAClD,SAAS,cAET;AACA,kBAAK,aAAa,WAAW,mBAAmB,EAAI,QAAO;AAC3D,2BAAa,2BAA2B,UAAU;AAAA,YAC5D;AACM,iBAAO;AAAA,QACb;AACI,qBAAa;AACb,qBAAa,WAAW;AAAA,MAC5B;AACE,aAAO;AAAA,IACT;AACA,aAAS,oBAAoB,MAAM;AACjC,UACG,OAAO,KAAK,mBAAmB,KAAK,KAAK,4BAA4B,GACtE;AACA,YAAI,MAAM,KAAK;AACf,YACE,MAAM,OACN,MAAM,OACN,OAAO,OACP,OAAO,OACP,OAAO,OACP,OAAO,OACP,MAAM;AAEN,iBAAO;AAAA,MACb;AACE,aAAO;AAAA,IACT;AACA,aAAS,oBAAoB,MAAM;AACjC,UAAI,MAAM,KAAK;AACf,UAAI,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM,IAAK,QAAO,KAAK;AACpE,YAAM,MAAM,uBAAuB,EAAE,CAAC;AAAA,IACxC;AACA,aAAS,qBAAqBD,OAAM;AAClC,UAAI,YAAYA,MAAK,4BAA4B;AACjD,oBACG,YAAYA,MAAK,4BAA4B,IAC5C,EAAE,iBAAiB,oBAAI,IAAG,GAAI,kBAAkB,oBAAI,IAAG;AAC3D,aAAO;AAAA,IACT;AACA,aAAS,oBAAoB,MAAM;AACjC,WAAK,uBAAuB,IAAI;AAAA,IAClC;AACA,QAAI,kBAAkB,oBAAI,IAAG,GAC3B,+BAA+B,CAAA;AACjC,aAAS,sBAAsB,kBAAkB,cAAc;AAC7D,0BAAoB,kBAAkB,YAAY;AAClD,0BAAoB,mBAAmB,WAAW,YAAY;AAAA,IAChE;AACA,aAAS,oBAAoB,kBAAkB,cAAc;AAC3D,mCAA6B,gBAAgB,IAAI;AACjD,WACE,mBAAmB,GACnB,mBAAmB,aAAa,QAChC;AAEA,wBAAgB,IAAI,aAAa,gBAAgB,CAAC;AAAA,IACtD;AACA,QAAI,6BAA6B;AAAA,MAC7B;AAAA,OAEF,4BAA4B,CAAA,GAC5B,8BAA8B,CAAA;AAChC,aAAS,oBAAoB,eAAe;AAC1C,UAAI,eAAe,KAAK,6BAA6B,aAAa;AAChE,eAAO;AACT,UAAI,eAAe,KAAK,2BAA2B,aAAa,EAAG,QAAO;AAC1E,UAAI,2BAA2B,KAAK,aAAa;AAC/C,eAAQ,4BAA4B,aAAa,IAAI;AACvD,gCAA0B,aAAa,IAAI;AAC3C,aAAO;AAAA,IACT;AACA,aAAS,qBAAqB,MAAM,MAAM,OAAO;AAC/C,UAAI,oBAAoB,IAAI;AAC1B,YAAI,SAAS,MAAO,MAAK,gBAAgB,IAAI;AAAA,aACxC;AACH,kBAAQ,OAAO,OAAK;AAAA,YAClB,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,mBAAK,gBAAgB,IAAI;AACzB;AAAA,YACF,KAAK;AACH,kBAAI,YAAY,KAAK,YAAW,EAAG,MAAM,GAAG,CAAC;AAC7C,kBAAI,YAAY,aAAa,YAAY,WAAW;AAClD,qBAAK,gBAAgB,IAAI;AACzB;AAAA,cACZ;AAAA,UACA;AACM,eAAK,aAAa,MAAM,KAAK,KAAK;AAAA,QACxC;AAAA,IACA;AACA,aAAS,0BAA0B,MAAM,MAAM,OAAO;AACpD,UAAI,SAAS,MAAO,MAAK,gBAAgB,IAAI;AAAA,WACxC;AACH,gBAAQ,OAAO,OAAK;AAAA,UAClB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,iBAAK,gBAAgB,IAAI;AACzB;AAAA,QACR;AACI,aAAK,aAAa,MAAM,KAAK,KAAK;AAAA,MACtC;AAAA,IACA;AACA,aAAS,+BAA+B,MAAM,WAAW,MAAM,OAAO;AACpE,UAAI,SAAS,MAAO,MAAK,gBAAgB,IAAI;AAAA,WACxC;AACH,gBAAQ,OAAO,OAAK;AAAA,UAClB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,iBAAK,gBAAgB,IAAI;AACzB;AAAA,QACR;AACI,aAAK,eAAe,WAAW,MAAM,KAAK,KAAK;AAAA,MACnD;AAAA,IACA;AACA,aAAS,iBAAiB,OAAO;AAC/B,cAAQ,OAAO,OAAK;AAAA,QAClB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,aAAS,YAAY,MAAM;AACzB,UAAI,OAAO,KAAK;AAChB,cACG,OAAO,KAAK,aACb,YAAY,KAAK,YAAW,MAC3B,eAAe,QAAQ,YAAY;AAAA,IAExC;AACA,aAAS,iBAAiB,MAAM,YAAY,cAAc;AACxD,UAAI,aAAa,OAAO;AAAA,QACtB,KAAK,YAAY;AAAA,QACjB;AAAA;AAEF,UACE,CAAC,KAAK,eAAe,UAAU,KAC/B,gBAAgB,OAAO,cACvB,eAAe,OAAO,WAAW,OACjC,eAAe,OAAO,WAAW,KACjC;AACA,YAAI,MAAM,WAAW,KACnB,MAAM,WAAW;AACnB,eAAO,eAAe,MAAM,YAAY;AAAA,UACtC,cAAc;AAAA,UACd,KAAK,WAAY;AACf,mBAAO,IAAI,KAAK,IAAI;AAAA,UAC5B;AAAA,UACM,KAAK,SAAU,OAAO;AACpB,2BAAe,KAAK;AACpB,gBAAI,KAAK,MAAM,KAAK;AAAA,UAC5B;AAAA,QACA,CAAK;AACD,eAAO,eAAe,MAAM,YAAY;AAAA,UACtC,YAAY,WAAW;AAAA,QAC7B,CAAK;AACD,eAAO;AAAA,UACL,UAAU,WAAY;AACpB,mBAAO;AAAA,UACf;AAAA,UACM,UAAU,SAAU,OAAO;AACzB,2BAAe,KAAK;AAAA,UAC5B;AAAA,UACM,cAAc,WAAY;AACxB,iBAAK,gBAAgB;AACrB,mBAAO,KAAK,UAAU;AAAA,UAC9B;AAAA;MAEA;AAAA,IACA;AACA,aAAS,MAAM,MAAM;AACnB,UAAI,CAAC,KAAK,eAAe;AACvB,YAAI,aAAa,YAAY,IAAI,IAAI,YAAY;AACjD,aAAK,gBAAgB;AAAA,UACnB;AAAA,UACA;AAAA,UACA,KAAK,KAAK,UAAU;AAAA;MAE1B;AAAA,IACA;AACA,aAAS,qBAAqB,MAAM;AAClC,UAAI,CAAC,KAAM,QAAO;AAClB,UAAI,UAAU,KAAK;AACnB,UAAI,CAAC,QAAS,QAAO;AACrB,UAAI,YAAY,QAAQ,SAAQ;AAChC,UAAI,QAAQ;AACZ,eACG,QAAQ,YAAY,IAAI,IACrB,KAAK,UACH,SACA,UACF,KAAK;AACX,aAAO;AACP,aAAO,SAAS,aAAa,QAAQ,SAAS,IAAI,GAAG,QAAM;AAAA,IAC7D;AACA,aAAS,iBAAiB,KAAK;AAC7B,YAAM,QAAQ,gBAAgB,OAAO,WAAW,WAAW;AAC3D,UAAI,gBAAgB,OAAO,IAAK,QAAO;AACvC,UAAI;AACF,eAAO,IAAI,iBAAiB,IAAI;AAAA,MACpC,SAAW,GAAG;AACV,eAAO,IAAI;AAAA,MACf;AAAA,IACA;AACA,QAAI,sDAAsD;AAC1D,aAAS,+CAA+C,OAAO;AAC7D,aAAO,MAAM;AAAA,QACX;AAAA,QACA,SAAU,IAAI;AACZ,iBAAO,OAAO,GAAG,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI;AAAA,QACpD;AAAA;IAEA;AACA,aAAS,YACP,SACA,OACA,cACA,kBACA,SACA,gBACA,MACA,MACA;AACA,cAAQ,OAAO;AACf,cAAQ,QACR,eAAe,OAAO,QACtB,aAAa,OAAO,QACpB,cAAc,OAAO,OAChB,QAAQ,OAAO,OAChB,QAAQ,gBAAgB,MAAM;AAClC,UAAI,QAAQ;AACV,YAAI,aAAa,MAAM;AACrB,cAAK,MAAM,SAAS,OAAO,QAAQ,SAAU,QAAQ,SAAS;AAC5D,oBAAQ,QAAQ,KAAK,iBAAiB,KAAK;AAAA,QACnD;AACM,kBAAQ,UAAU,KAAK,iBAAiB,KAAK,MAC1C,QAAQ,QAAQ,KAAK,iBAAiB,KAAK;AAAA;AAEhD,QAAC,aAAa,QAAQ,YAAY,QAAS,QAAQ,gBAAgB,OAAO;AAC5E,cAAQ,QACJ,gBAAgB,SAAS,MAAM,iBAAiB,KAAK,CAAC,IACtD,QAAQ,eACN,gBAAgB,SAAS,MAAM,iBAAiB,YAAY,CAAC,IAC7D,QAAQ,oBAAoB,QAAQ,gBAAgB,OAAO;AACjE,cAAQ,WACN,QAAQ,mBACP,QAAQ,iBAAiB,CAAC,CAAC;AAC9B,cAAQ,YACL,QAAQ,UACP,WAAW,eAAe,OAAO,WAAW,aAAa,OAAO;AACpE,cAAQ,QACR,eAAe,OAAO,QACtB,aAAa,OAAO,QACpB,cAAc,OAAO,OAChB,QAAQ,OAAO,KAAK,iBAAiB,IAAI,IAC1C,QAAQ,gBAAgB,MAAM;AAAA,IACpC;AACA,aAAS,UACP,SACA,OACA,cACA,SACA,gBACA,MACA,MACAE,cACA;AACA,cAAQ,QACN,eAAe,OAAO,QACtB,aAAa,OAAO,QACpB,cAAc,OAAO,SACpB,QAAQ,OAAO;AAClB,UAAI,QAAQ,SAAS,QAAQ,cAAc;AACzC,YACE,EACG,aAAa,QAAQ,YAAY,QACjC,WAAW,SAAS,SAAS,QAEhC;AACA,gBAAM,OAAO;AACb;AAAA,QACN;AACI,uBACE,QAAQ,eAAe,KAAK,iBAAiB,YAAY,IAAI;AAC/D,gBAAQ,QAAQ,QAAQ,KAAK,iBAAiB,KAAK,IAAI;AACvD,QAAAA,gBAAe,UAAU,QAAQ,UAAU,QAAQ,QAAQ;AAC3D,gBAAQ,eAAe;AAAA,MAC3B;AACE,gBAAU,QAAQ,UAAU,UAAU;AACtC,gBACE,eAAe,OAAO,WAAW,aAAa,OAAO,WAAW,CAAC,CAAC;AACpE,cAAQ,UAAUA,eAAc,QAAQ,UAAU,CAAC,CAAC;AACpD,cAAQ,iBAAiB,CAAC,CAAC;AAC3B,cAAQ,QACN,eAAe,OAAO,QACtB,aAAa,OAAO,QACpB,cAAc,OAAO,SACpB,QAAQ,OAAO;AAClB,YAAM,OAAO;AAAA,IACf;AACA,aAAS,gBAAgB,MAAM,MAAM,OAAO;AAC1C,MAAC,aAAa,QAAQ,iBAAiB,KAAK,aAAa,MAAM,QAC7D,KAAK,iBAAiB,KAAK,UAC1B,KAAK,eAAe,KAAK;AAAA,IAC9B;AACA,aAAS,cAAc,MAAM,UAAU,WAAW,oBAAoB;AACpE,aAAO,KAAK;AACZ,UAAI,UAAU;AACZ,mBAAW,CAAA;AACX,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ;AACpC,mBAAS,MAAM,UAAU,CAAC,CAAC,IAAI;AACjC,aAAK,YAAY,GAAG,YAAY,KAAK,QAAQ;AAC3C,UAAC,IAAI,SAAS,eAAe,MAAM,KAAK,SAAS,EAAE,KAAK,GACtD,KAAK,SAAS,EAAE,aAAa,MAAM,KAAK,SAAS,EAAE,WAAW,IAC9D,KAAK,uBAAuB,KAAK,SAAS,EAAE,kBAAkB;AAAA,MACtE,OAAS;AACL,oBAAY,KAAK,iBAAiB,SAAS;AAC3C,mBAAW;AACX,aAAK,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAChC,cAAI,KAAK,CAAC,EAAE,UAAU,WAAW;AAC/B,iBAAK,CAAC,EAAE,WAAW;AACnB,mCAAuB,KAAK,CAAC,EAAE,kBAAkB;AACjD;AAAA,UACR;AACM,mBAAS,YAAY,KAAK,CAAC,EAAE,aAAa,WAAW,KAAK,CAAC;AAAA,QACjE;AACI,iBAAS,aAAa,SAAS,WAAW;AAAA,MAC9C;AAAA,IACA;AACA,aAAS,eAAe,SAAS,OAAO,cAAc;AACpD,UACE,QAAQ,UACN,QAAQ,KAAK,iBAAiB,KAAK,GACrC,UAAU,QAAQ,UAAU,QAAQ,QAAQ,QAC5C,QAAQ,eACR;AACA,gBAAQ,iBAAiB,UAAU,QAAQ,eAAe;AAC1D;AAAA,MACJ;AACE,cAAQ,eACN,QAAQ,eAAe,KAAK,iBAAiB,YAAY,IAAI;AAAA,IACjE;AACA,aAAS,aAAa,SAAS,OAAO,cAAc,UAAU;AAC5D,UAAI,QAAQ,OAAO;AACjB,YAAI,QAAQ,UAAU;AACpB,cAAI,QAAQ,aAAc,OAAM,MAAM,uBAAuB,EAAE,CAAC;AAChE,cAAI,YAAY,QAAQ,GAAG;AACzB,gBAAI,IAAI,SAAS,OAAQ,OAAM,MAAM,uBAAuB,EAAE,CAAC;AAC/D,uBAAW,SAAS,CAAC;AAAA,UAC7B;AACM,yBAAe;AAAA,QACrB;AACI,gBAAQ,iBAAiB,eAAe;AACxC,gBAAQ;AAAA,MACZ;AACE,qBAAe,iBAAiB,KAAK;AACrC,cAAQ,eAAe;AACvB,iBAAW,QAAQ;AACnB,mBAAa,gBACX,OAAO,YACP,SAAS,aACR,QAAQ,QAAQ;AACnB,YAAM,OAAO;AAAA,IACf;AACA,aAAS,eAAe,MAAM,MAAM;AAClC,UAAI,MAAM;AACR,YAAI,aAAa,KAAK;AACtB,YACE,cACA,eAAe,KAAK,aACpB,MAAM,WAAW,UACjB;AACA,qBAAW,YAAY;AACvB;AAAA,QACN;AAAA,MACA;AACE,WAAK,cAAc;AAAA,IACrB;AACA,QAAI,kBAAkB,IAAI;AAAA,MACxB,26BAA26B;AAAA,QACz6B;AAAA,MACJ;AAAA;AAEA,aAAS,iBAAiBC,QAAO,WAAW,OAAO;AACjD,UAAI,mBAAmB,MAAM,UAAU,QAAQ,IAAI;AACnD,cAAQ,SAAS,cAAc,OAAO,SAAS,OAAO,QAClD,mBACEA,OAAM,YAAY,WAAW,EAAE,IAC/B,YAAY,YACTA,OAAM,WAAW,KACjBA,OAAM,SAAS,IAAI,KACxB,mBACEA,OAAM,YAAY,WAAW,KAAK,IAClC,aAAa,OAAO,SAClB,MAAM,SACN,gBAAgB,IAAI,SAAS,IAC7B,YAAY,YACTA,OAAM,WAAW,QACjBA,OAAM,SAAS,KAAK,KAAK,OAAO,KAAI,IACtCA,OAAM,SAAS,IAAI,QAAQ;AAAA,IACtC;AACA,aAAS,kBAAkB,MAAMC,SAAQ,YAAY;AACnD,UAAI,QAAQA,WAAU,aAAa,OAAOA;AACxC,cAAM,MAAM,uBAAuB,EAAE,CAAC;AACxC,aAAO,KAAK;AACZ,UAAI,QAAQ,YAAY;AACtB,iBAAS,aAAa;AACpB,WAAC,WAAW,eAAe,SAAS,KACjC,QAAQA,WAAUA,QAAO,eAAe,SAAS,MACjD,MAAM,UAAU,QAAQ,IAAI,IACzB,KAAK,YAAY,WAAW,EAAE,IAC9B,YAAY,YACT,KAAK,WAAW,KAChB,KAAK,SAAS,IAAI;AAC7B,iBAAS,gBAAgBA;AACvB,UAAC,YAAYA,QAAO,YAAY,GAC9BA,QAAO,eAAe,YAAY,KAChC,WAAW,YAAY,MAAM,aAC7B,iBAAiB,MAAM,cAAc,SAAS;AAAA,MACxD;AACI,iBAAS,gBAAgBA;AACvB,UAAAA,QAAO,eAAe,YAAY,KAChC,iBAAiB,MAAM,cAAcA,QAAO,YAAY,CAAC;AAAA,IACjE;AACA,aAAS,gBAAgB,SAAS;AAChC,UAAI,OAAO,QAAQ,QAAQ,GAAG,EAAG,QAAO;AACxC,cAAQ,SAAO;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,QAAI,UAAU,oBAAI,IAAI;AAAA,MAClB,CAAC,iBAAiB,gBAAgB;AAAA,MAClC,CAAC,WAAW,KAAK;AAAA,MACjB,CAAC,aAAa,YAAY;AAAA,MAC1B,CAAC,eAAe,aAAa;AAAA,MAC7B,CAAC,gBAAgB,eAAe;AAAA,MAChC,CAAC,qBAAqB,oBAAoB;AAAA,MAC1C,CAAC,cAAc,aAAa;AAAA,MAC5B,CAAC,iBAAiB,gBAAgB;AAAA,MAClC,CAAC,aAAa,YAAY;AAAA,MAC1B,CAAC,YAAY,WAAW;AAAA,MACxB,CAAC,YAAY,WAAW;AAAA,MACxB,CAAC,sBAAsB,qBAAqB;AAAA,MAC5C,CAAC,6BAA6B,6BAA6B;AAAA,MAC3D,CAAC,gBAAgB,eAAe;AAAA,MAChC,CAAC,kBAAkB,iBAAiB;AAAA,MACpC,CAAC,oBAAoB,mBAAmB;AAAA,MACxC,CAAC,oBAAoB,mBAAmB;AAAA,MACxC,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,YAAY,WAAW;AAAA,MACxB,CAAC,cAAc,aAAa;AAAA,MAC5B,CAAC,gBAAgB,eAAe;AAAA,MAChC,CAAC,cAAc,aAAa;AAAA,MAC5B,CAAC,YAAY,WAAW;AAAA,MACxB,CAAC,kBAAkB,kBAAkB;AAAA,MACrC,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,aAAa,YAAY;AAAA,MAC1B,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,cAAc,aAAa;AAAA,MAC5B,CAAC,aAAa,YAAY;AAAA,MAC1B,CAAC,8BAA8B,8BAA8B;AAAA,MAC7D,CAAC,4BAA4B,4BAA4B;AAAA,MACzD,CAAC,aAAa,aAAa;AAAA,MAC3B,CAAC,gBAAgB,gBAAgB;AAAA,MACjC,CAAC,kBAAkB,iBAAiB;AAAA,MACpC,CAAC,iBAAiB,gBAAgB;AAAA,MAClC,CAAC,iBAAiB,gBAAgB;AAAA,MAClC,CAAC,aAAa,YAAY;AAAA,MAC1B,CAAC,aAAa,YAAY;AAAA,MAC1B,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,oBAAoB,mBAAmB;AAAA,MACxC,CAAC,qBAAqB,oBAAoB;AAAA,MAC1C,CAAC,cAAc,aAAa;AAAA,MAC5B,CAAC,YAAY,UAAU;AAAA,MACvB,CAAC,iBAAiB,gBAAgB;AAAA,MAClC,CAAC,mBAAmB,kBAAkB;AAAA,MACtC,CAAC,kBAAkB,iBAAiB;AAAA,MACpC,CAAC,aAAa,YAAY;AAAA,MAC1B,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,yBAAyB,wBAAwB;AAAA,MAClD,CAAC,0BAA0B,yBAAyB;AAAA,MACpD,CAAC,mBAAmB,kBAAkB;AAAA,MACtC,CAAC,oBAAoB,mBAAmB;AAAA,MACxC,CAAC,iBAAiB,gBAAgB;AAAA,MAClC,CAAC,kBAAkB,iBAAiB;AAAA,MACpC,CAAC,oBAAoB,mBAAmB;AAAA,MACxC,CAAC,iBAAiB,gBAAgB;AAAA,MAClC,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,cAAc,aAAa;AAAA,MAC5B,CAAC,kBAAkB,iBAAiB;AAAA,MACpC,CAAC,iBAAiB,gBAAgB;AAAA,MAClC,CAAC,mBAAmB,kBAAkB;AAAA,MACtC,CAAC,qBAAqB,oBAAoB;AAAA,MAC1C,CAAC,sBAAsB,qBAAqB;AAAA,MAC5C,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,gBAAgB,eAAe;AAAA,MAChC,CAAC,cAAc,cAAc;AAAA,MAC7B,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,YAAY,WAAW;AAAA,MACxB,CAAC,gBAAgB,eAAe;AAAA,MAChC,CAAC,iBAAiB,gBAAgB;AAAA,MAClC,CAAC,gBAAgB,eAAe;AAAA,MAChC,CAAC,YAAY,YAAY;AAAA,MACzB,CAAC,eAAe,eAAe;AAAA,MAC/B,CAAC,eAAe,eAAe;AAAA,MAC/B,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,eAAe,cAAc;AAAA,MAC9B,CAAC,cAAc,aAAa;AAAA,MAC5B,CAAC,WAAW,UAAU;AAAA,IAC1B,CAAG,GACD,uBACE;AACJ,aAAS,YAAY,KAAK;AACxB,aAAO,qBAAqB,KAAK,KAAK,GAAG,IACrC,gGACA;AAAA,IACN;AACA,aAAS,SAAS;AAAA,IAAA;AAClB,QAAI,wBAAwB;AAC5B,aAAS,eAAe,aAAa;AACnC,oBAAc,YAAY,UAAU,YAAY,cAAc;AAC9D,kBAAY,4BACT,cAAc,YAAY;AAC7B,aAAO,MAAM,YAAY,WAAW,YAAY,aAAa;AAAA,IAC/D;AACA,QAAI,gBAAgB,MAClB,eAAe;AACjB,aAAS,qBAAqB,QAAQ;AACpC,UAAI,mBAAmB,oBAAoB,MAAM;AACjD,UAAI,qBAAqB,SAAS,iBAAiB,YAAY;AAC7D,YAAI,QAAQ,OAAO,gBAAgB,KAAK;AACxC,UAAG,SAAU,SAAS,iBAAiB,WAAY,iBAAiB,MAAI;AAAA,UACtE,KAAK;AACH;AAAA,cACE;AAAA,cACA,MAAM;AAAA,cACN,MAAM;AAAA,cACN,MAAM;AAAA,cACN,MAAM;AAAA,cACN,MAAM;AAAA,cACN,MAAM;AAAA,cACN,MAAM;AAAA;AAER,+BAAmB,MAAM;AACzB,gBAAI,YAAY,MAAM,QAAQ,QAAQ,kBAAkB;AACtD,mBAAK,QAAQ,QAAQ,MAAM,aAAc,SAAQ,MAAM;AACvD,sBAAQ,MAAM;AAAA,gBACZ,iBACE;AAAA,kBACE,KAAK;AAAA,oBAEP;AAAA;AAEJ,mBACE,mBAAmB,GACnB,mBAAmB,MAAM,QACzB,oBACA;AACA,oBAAI,YAAY,MAAM,gBAAgB;AACtC,oBAAI,cAAc,UAAU,UAAU,SAAS,OAAO,MAAM;AAC1D,sBAAI,aAAa,UAAU,gBAAgB,KAAK;AAChD,sBAAI,CAAC,WAAY,OAAM,MAAM,uBAAuB,EAAE,CAAC;AACvD;AAAA,oBACE;AAAA,oBACA,WAAW;AAAA,oBACX,WAAW;AAAA,oBACX,WAAW;AAAA,oBACX,WAAW;AAAA,oBACX,WAAW;AAAA,oBACX,WAAW;AAAA,oBACX,WAAW;AAAA;gBAE3B;AAAA,cACA;AACU,mBACE,mBAAmB,GACnB,mBAAmB,MAAM,QACzB;AAEA,gBAAC,YAAY,MAAM,gBAAgB,GACjC,UAAU,SAAS,OAAO,QAAQ,qBAAqB,SAAS;AAAA,YAC9E;AACQ,kBAAM;AAAA,UACR,KAAK;AACH,2BAAe,QAAQ,MAAM,OAAO,MAAM,YAAY;AACtD,kBAAM;AAAA,UACR,KAAK;AACH,YAAC,mBAAmB,MAAM,OACxB,QAAQ,oBACN,cAAc,QAAQ,CAAC,CAAC,MAAM,UAAU,kBAAkB,KAAE;AAAA,QACxE;AAAA,MACA;AAAA,IACA;AACA,QAAI,uBAAuB;AAC3B,aAAS,iBAAiB,IAAI,GAAG,GAAG;AAClC,UAAI,qBAAsB,QAAO,GAAG,GAAG,CAAC;AACxC,6BAAuB;AACvB,UAAI;AACF,YAAI,2BAA2B,GAAG,CAAC;AACnC,eAAO;AAAA,MACX,UAAG;AACC,YACI,uBAAuB,OACzB,SAAS,iBAAiB,SAAS;AAEnC,cACG,gBAAe,GAChB,kBACI,IAAI,eACL,KAAK,cACL,eAAe,gBAAgB,MAChC,qBAAqB,CAAC,GACtB;AAEF,iBAAK,IAAI,GAAG,IAAI,GAAG,QAAQ,IAAK,sBAAqB,GAAG,CAAC,CAAC;AAAA;AAAA,MAClE;AAAA,IACA;AACA,aAAS,YAAY,MAAM,kBAAkB;AAC3C,UAAI,YAAY,KAAK;AACrB,UAAI,SAAS,UAAW,QAAO;AAC/B,UAAI,QAAQ,UAAU,gBAAgB,KAAK;AAC3C,UAAI,SAAS,MAAO,QAAO;AAC3B,kBAAY,MAAM,gBAAgB;AAClC,QAAG,SAAQ,kBAAgB;AAAA,QACzB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,WAAC,QAAQ,CAAC,MAAM,cACZ,OAAO,KAAK,MACb,QAAQ,EACP,aAAa,QACb,YAAY,QACZ,aAAa,QACb,eAAe;AAEnB,iBAAO,CAAC;AACR,gBAAM;AAAA,QACR;AACE,iBAAO;AAAA,MACb;AACE,UAAI,KAAM,QAAO;AACjB,UAAI,aAAa,eAAe,OAAO;AACrC,cAAM;AAAA,UACJ,uBAAuB,KAAK,kBAAkB,OAAO,SAAS;AAAA;AAElE,aAAO;AAAA,IACT;AACA,QAAI,YAAY,EACZ,gBAAgB,OAAO,UACvB,gBAAgB,OAAO,OAAO,YAC9B,gBAAgB,OAAO,OAAO,SAAS,gBAEzC,gCAAgC;AAClC,QAAI;AACF,UAAI;AACF,YAAI,UAAU,CAAA;AACd,eAAO,eAAe,SAAS,WAAW;AAAA,UACxC,KAAK,WAAY;AACf,4CAAgC;AAAA,UACxC;AAAA,QACA,CAAK;AACD,eAAO,iBAAiB,QAAQ,SAAS,OAAO;AAChD,eAAO,oBAAoB,QAAQ,SAAS,OAAO;AAAA,MACvD,SAAW,GAAG;AACV,wCAAgC;AAAA,MACpC;AACA,QAAI,OAAO,MACT,YAAY,MACZ,eAAe;AACjB,aAAS,UAAU;AACjB,UAAI,aAAc,QAAO;AACzB,UAAI,OACF,aAAa,WACb,cAAc,WAAW,QACzB,KACA,WAAW,WAAW,OAAO,KAAK,QAAQ,KAAK,aAC/C,YAAY,SAAS;AACvB,WACE,QAAQ,GACR,QAAQ,eAAe,WAAW,KAAK,MAAM,SAAS,KAAK,GAC3D,QACD;AACD,UAAI,SAAS,cAAc;AAC3B,WACE,MAAM,GACN,OAAO,UACP,WAAW,cAAc,GAAG,MAAM,SAAS,YAAY,GAAG,GAC1D,MACD;AACD,aAAQ,eAAe,SAAS,MAAM,OAAO,IAAI,MAAM,IAAI,MAAM,MAAM;AAAA,IACzE;AACA,aAAS,iBAAiB,aAAa;AACrC,UAAI,UAAU,YAAY;AAC1B,oBAAc,eACR,cAAc,YAAY,UAC5B,MAAM,eAAe,OAAO,YAAY,cAAc,OACrD,cAAc;AACnB,aAAO,gBAAgB,cAAc;AACrC,aAAO,MAAM,eAAe,OAAO,cAAc,cAAc;AAAA,IACjE;AACA,aAAS,0BAA0B;AACjC,aAAO;AAAA,IACT;AACA,aAAS,2BAA2B;AAClC,aAAO;AAAA,IACT;AACA,aAAS,qBAAqB,WAAW;AACvC,eAAS,mBACP,WACA,gBACA,YACA,aACA,mBACA;AACA,aAAK,aAAa;AAClB,aAAK,cAAc;AACnB,aAAK,OAAO;AACZ,aAAK,cAAc;AACnB,aAAK,SAAS;AACd,aAAK,gBAAgB;AACrB,iBAAS,YAAY;AACnB,oBAAU,eAAe,QAAQ,MAC7B,YAAY,UAAU,QAAQ,GAC/B,KAAK,QAAQ,IAAI,YACd,UAAU,WAAW,IACrB,YAAY,QAAQ;AAC5B,aAAK,sBACH,QAAQ,YAAY,mBAChB,YAAY,mBACZ,UAAO,YAAY,eAErB,0BACA;AACJ,aAAK,uBAAuB;AAC5B,eAAO;AAAA,MACX;AACE,aAAO,mBAAmB,WAAW;AAAA,QACnC,gBAAgB,WAAY;AAC1B,eAAK,mBAAmB;AACxB,cAAI,QAAQ,KAAK;AACjB,oBACG,MAAM,iBACH,MAAM,eAAc,IACpB,cAAc,OAAO,MAAM,gBAAgB,MAAM,cAAc,QAClE,KAAK,qBAAqB;AAAA,QACnC;AAAA,QACI,iBAAiB,WAAY;AAC3B,cAAI,QAAQ,KAAK;AACjB,oBACG,MAAM,kBACH,MAAM,gBAAe,IACrB,cAAc,OAAO,MAAM,iBAC1B,MAAM,eAAe,OACzB,KAAK,uBAAuB;AAAA,QACrC;AAAA,QACI,SAAS,WAAY;AAAA,QAAA;AAAA,QACrB,cAAc;AAAA,MAClB,CAAG;AACD,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,WAAW,SAAU,OAAO;AAC1B,eAAO,MAAM,aAAa,KAAK,IAAG;AAAA,MACxC;AAAA,MACI,kBAAkB;AAAA,MAClB,WAAW;AAAA,OAEb,iBAAiB,qBAAqB,cAAc,GACpD,mBAAmB,OAAO,CAAA,GAAI,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAAG,GACpE,mBAAmB,qBAAqB,gBAAgB,GACxD,eACA,eACA,gBACA,sBAAsB,OAAO,CAAA,GAAI,kBAAkB;AAAA,MACjD,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,kBAAkB;AAAA,MAClB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,eAAe,SAAU,OAAO;AAC9B,eAAO,WAAW,MAAM,gBACpB,MAAM,gBAAgB,MAAM,aAC1B,MAAM,YACN,MAAM,cACR,MAAM;AAAA,MAChB;AAAA,MACI,WAAW,SAAU,OAAO;AAC1B,YAAI,eAAe,MAAO,QAAO,MAAM;AACvC,kBAAU,mBACP,kBAAkB,gBAAgB,MAAM,QACnC,gBAAgB,MAAM,UAAU,eAAe,SAChD,gBAAgB,MAAM,UAAU,eAAe,WAC/C,gBAAgB,gBAAgB,GACpC,iBAAiB;AACpB,eAAO;AAAA,MACb;AAAA,MACI,WAAW,SAAU,OAAO;AAC1B,eAAO,eAAe,QAAQ,MAAM,YAAY;AAAA,MACtD;AAAA,IACA,CAAG,GACD,sBAAsB,qBAAqB,mBAAmB,GAC9D,qBAAqB,OAAO,CAAA,GAAI,qBAAqB,EAAE,cAAc,GAAG,GACxE,qBAAqB,qBAAqB,kBAAkB,GAC5D,sBAAsB,OAAO,CAAA,GAAI,kBAAkB,EAAE,eAAe,GAAG,GACvE,sBAAsB,qBAAqB,mBAAmB,GAC9D,0BAA0B,OAAO,CAAA,GAAI,gBAAgB;AAAA,MACnD,eAAe;AAAA,MACf,aAAa;AAAA,MACb,eAAe;AAAA,IACnB,CAAG,GACD,0BAA0B,qBAAqB,uBAAuB,GACtE,0BAA0B,OAAO,CAAA,GAAI,gBAAgB;AAAA,MACnD,eAAe,SAAU,OAAO;AAC9B,eAAO,mBAAmB,QACtB,MAAM,gBACN,OAAO;AAAA,MACjB;AAAA,IACA,CAAG,GACD,0BAA0B,qBAAqB,uBAAuB,GACtE,4BAA4B,OAAO,CAAA,GAAI,gBAAgB,EAAE,MAAM,GAAG,GAClE,4BAA4B,qBAAqB,yBAAyB,GAC1E,eAAe;AAAA,MACb,KAAK;AAAA,MACL,UAAU;AAAA,MACV,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,iBAAiB;AAAA,OAEnB,iBAAiB;AAAA,MACf,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,OAEP,oBAAoB;AAAA,MAClB,KAAK;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA;AAEX,aAAS,oBAAoB,QAAQ;AACnC,UAAI,cAAc,KAAK;AACvB,aAAO,YAAY,mBACf,YAAY,iBAAiB,MAAM,KAClC,SAAS,kBAAkB,MAAM,KAChC,CAAC,CAAC,YAAY,MAAM,IACpB;AAAA,IACR;AACA,aAAS,wBAAwB;AAC/B,aAAO;AAAA,IACT;AACA,QAAI,yBAAyB,OAAO,CAAA,GAAI,kBAAkB;AAAA,MACtD,KAAK,SAAU,aAAa;AAC1B,YAAI,YAAY,KAAK;AACnB,cAAI,MAAM,aAAa,YAAY,GAAG,KAAK,YAAY;AACvD,cAAI,mBAAmB,IAAK,QAAO;AAAA,QAC3C;AACM,eAAO,eAAe,YAAY,QAC5B,cAAc,iBAAiB,WAAW,GAC5C,OAAO,cAAc,UAAU,OAAO,aAAa,WAAW,KAC9D,cAAc,YAAY,QAAQ,YAAY,YAAY,OACxD,eAAe,YAAY,OAAO,KAAK,iBACvC;AAAA,MACZ;AAAA,MACI,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,kBAAkB;AAAA,MAClB,UAAU,SAAU,OAAO;AACzB,eAAO,eAAe,MAAM,OAAO,iBAAiB,KAAK,IAAI;AAAA,MACnE;AAAA,MACI,SAAS,SAAU,OAAO;AACxB,eAAO,cAAc,MAAM,QAAQ,YAAY,MAAM,OACjD,MAAM,UACN;AAAA,MACV;AAAA,MACI,OAAO,SAAU,OAAO;AACtB,eAAO,eAAe,MAAM,OACxB,iBAAiB,KAAK,IACtB,cAAc,MAAM,QAAQ,YAAY,MAAM,OAC5C,MAAM,UACN;AAAA,MACZ;AAAA,IACA,CAAG,GACD,yBAAyB,qBAAqB,sBAAsB,GACpE,wBAAwB,OAAO,CAAA,GAAI,qBAAqB;AAAA,MACtD,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,oBAAoB;AAAA,MACpB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,aAAa;AAAA,MACb,WAAW;AAAA,IACf,CAAG,GACD,wBAAwB,qBAAqB,qBAAqB,GAClE,sBAAsB,OAAO,CAAA,GAAI,kBAAkB;AAAA,MACjD,SAAS;AAAA,MACT,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,SAAS;AAAA,MACT,UAAU;AAAA,MACV,kBAAkB;AAAA,IACtB,CAAG,GACD,sBAAsB,qBAAqB,mBAAmB,GAC9D,2BAA2B,OAAO,CAAA,GAAI,gBAAgB;AAAA,MACpD,cAAc;AAAA,MACd,aAAa;AAAA,MACb,eAAe;AAAA,IACnB,CAAG,GACD,2BAA2B,qBAAqB,wBAAwB,GACxE,sBAAsB,OAAO,CAAA,GAAI,qBAAqB;AAAA,MACpD,QAAQ,SAAU,OAAO;AACvB,eAAO,YAAY,QACf,MAAM,SACN,iBAAiB,QACf,CAAC,MAAM,cACP;AAAA,MACZ;AAAA,MACI,QAAQ,SAAU,OAAO;AACvB,eAAO,YAAY,QACf,MAAM,SACN,iBAAiB,QACf,CAAC,MAAM,cACP,gBAAgB,QACd,CAAC,MAAM,aACP;AAAA,MACd;AAAA,MACI,QAAQ;AAAA,MACR,WAAW;AAAA,IACf,CAAG,GACD,sBAAsB,qBAAqB,mBAAmB,GAC9D,uBAAuB,OAAO,CAAA,GAAI,gBAAgB;AAAA,MAChD,UAAU;AAAA,MACV,UAAU;AAAA,IACd,CAAG,GACD,uBAAuB,qBAAqB,oBAAoB,GAChE,eAAe,CAAC,GAAG,IAAI,IAAI,EAAE,GAC7B,yBAAyB,aAAa,sBAAsB,QAC5D,eAAe;AACjB,iBACE,kBAAkB,aACjB,eAAe,SAAS;AAC3B,QAAI,uBAAuB,aAAa,eAAe,UAAU,CAAC,cAChE,6BACE,cACC,CAAC,0BACC,gBAAgB,IAAI,gBAAgB,MAAM,eAC/C,gBAAgB,OAAO,aAAa,EAAE,GACtC,mBAAmB;AACrB,aAAS,yBAAyB,cAAc,aAAa;AAC3D,cAAQ,cAAY;AAAA,QAClB,KAAK;AACH,iBAAO,OAAO,aAAa,QAAQ,YAAY,OAAO;AAAA,QACxD,KAAK;AACH,iBAAO,QAAQ,YAAY;AAAA,QAC7B,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,aAAS,uBAAuB,aAAa;AAC3C,oBAAc,YAAY;AAC1B,aAAO,aAAa,OAAO,eAAe,UAAU,cAChD,YAAY,OACZ;AAAA,IACN;AACA,QAAI,cAAc;AAClB,aAAS,0BAA0B,cAAc,aAAa;AAC5D,cAAQ,cAAY;AAAA,QAClB,KAAK;AACH,iBAAO,uBAAuB,WAAW;AAAA,QAC3C,KAAK;AACH,cAAI,OAAO,YAAY,MAAO,QAAO;AACrC,6BAAmB;AACnB,iBAAO;AAAA,QACT,KAAK;AACH,iBACG,eAAe,YAAY,MAC5B,iBAAiB,iBAAiB,mBAAmB,OAAO;AAAA,QAEhE;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,aAAS,4BAA4B,cAAc,aAAa;AAC9D,UAAI;AACF,eAAO,qBAAqB,gBACzB,CAAC,0BACA,yBAAyB,cAAc,WAAW,KAChD,eAAe,QAAO,GACvB,eAAe,YAAY,OAAO,MAClC,cAAc,OACf,gBACA;AACN,cAAQ,cAAY;AAAA,QAClB,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,cACE,EAAE,YAAY,WAAW,YAAY,UAAU,YAAY,YAC1D,YAAY,WAAW,YAAY,QACpC;AACA,gBAAI,YAAY,QAAQ,IAAI,YAAY,KAAK;AAC3C,qBAAO,YAAY;AACrB,gBAAI,YAAY,MAAO,QAAO,OAAO,aAAa,YAAY,KAAK;AAAA,UAC3E;AACM,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO,8BAA8B,SAAS,YAAY,SACtD,OACA,YAAY;AAAA,QAClB;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,QAAI,sBAAsB;AAAA,MACxB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL,MAAM;AAAA;AAER,aAAS,mBAAmB,MAAM;AAChC,UAAI,WAAW,QAAQ,KAAK,YAAY,KAAK,SAAS,YAAW;AACjE,aAAO,YAAY,WACf,CAAC,CAAC,oBAAoB,KAAK,IAAI,IAC/B,eAAe,WACb,OACA;AAAA,IACR;AACA,aAAS,+BACP,eACA,MACA,aACA,QACA;AACA,sBACI,eACE,aAAa,KAAK,MAAM,IACvB,eAAe,CAAC,MAAM,IACxB,gBAAgB;AACrB,aAAO,4BAA4B,MAAM,UAAU;AACnD,UAAI,KAAK,WACL,cAAc,IAAI;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,SAEF,cAAc,KAAK,EAAE,OAAO,aAAa,WAAW,KAAI,CAAE;AAAA,IAC9D;AACA,QAAI,kBAAkB,MACpB,sBAAsB;AACxB,aAAS,gBAAgB,eAAe;AACtC,2BAAqB,eAAe,CAAC;AAAA,IACvC;AACA,aAAS,sBAAsB,YAAY;AACzC,UAAI,aAAa,oBAAoB,UAAU;AAC/C,UAAI,qBAAqB,UAAU,EAAG,QAAO;AAAA,IAC/C;AACA,aAAS,4BAA4B,cAAc,YAAY;AAC7D,UAAI,aAAa,aAAc,QAAO;AAAA,IACxC;AACA,QAAI,wBAAwB;AAC5B,QAAI,WAAW;AACb,UAAI;AACJ,UAAI,WAAW;AACb,YAAI,gCAAgC,aAAa;AACjD,YAAI,CAAC,+BAA+B;AAClC,cAAI,4BAA4B,SAAS,cAAc,KAAK;AAC5D,oCAA0B,aAAa,WAAW,SAAS;AAC3D,0CACE,eAAe,OAAO,0BAA0B;AAAA,QACxD;AACI,8CAAsC;AAAA,MAC1C,MAAS,uCAAsC;AAC7C,8BACE,wCACC,CAAC,SAAS,gBAAgB,IAAI,SAAS;AAAA,IAC5C;AACA,aAAS,6BAA6B;AACpC,0BACG,gBAAgB,YAAY,oBAAoB,oBAAoB,GACpE,sBAAsB,kBAAkB;AAAA,IAC7C;AACA,aAAS,qBAAqB,aAAa;AACzC,UACE,YAAY,YAAY,gBACxB,sBAAsB,mBAAmB,GACzC;AACA,YAAI,gBAAgB,CAAA;AACpB;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA,eAAe,WAAW;AAAA;AAE5B,yBAAiB,iBAAiB,aAAa;AAAA,MACnD;AAAA,IACA;AACA,aAAS,kCAAkC,cAAc,QAAQ,YAAY;AAC3E,oBAAc,gBACT,2BAA0B,GAC1B,kBAAkB,QAClB,sBAAsB,YACvB,gBAAgB,YAAY,oBAAoB,oBAAoB,KACpE,eAAe,gBAAgB,2BAA0B;AAAA,IAC/D;AACA,aAAS,mCAAmC,cAAc;AACxD,UACE,sBAAsB,gBACtB,YAAY,gBACZ,cAAc;AAEd,eAAO,sBAAsB,mBAAmB;AAAA,IACpD;AACA,aAAS,2BAA2B,cAAc,YAAY;AAC5D,UAAI,YAAY,aAAc,QAAO,sBAAsB,UAAU;AAAA,IACvE;AACA,aAAS,mCAAmC,cAAc,YAAY;AACpE,UAAI,YAAY,gBAAgB,aAAa;AAC3C,eAAO,sBAAsB,UAAU;AAAA,IAC3C;AACA,aAAS,GAAG,GAAG,GAAG;AAChB,aAAQ,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,IAAI,MAAQ,MAAM,KAAK,MAAM;AAAA,IACxE;AACA,QAAI,WAAW,eAAe,OAAO,OAAO,KAAK,OAAO,KAAK;AAC7D,aAAS,aAAa,MAAM,MAAM;AAChC,UAAI,SAAS,MAAM,IAAI,EAAG,QAAO;AACjC,UACE,aAAa,OAAO,QACpB,SAAS,QACT,aAAa,OAAO,QACpB,SAAS;AAET,eAAO;AACT,UAAI,QAAQ,OAAO,KAAK,IAAI,GAC1B,QAAQ,OAAO,KAAK,IAAI;AAC1B,UAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC1C,WAAK,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;AAC7C,YAAI,aAAa,MAAM,KAAK;AAC5B,YACE,CAAC,eAAe,KAAK,MAAM,UAAU,KACrC,CAAC,SAAS,KAAK,UAAU,GAAG,KAAK,UAAU,CAAC;AAE5C,iBAAO;AAAA,MACb;AACE,aAAO;AAAA,IACT;AACA,aAAS,YAAY,MAAM;AACzB,aAAO,QAAQ,KAAK,aAAc,QAAO,KAAK;AAC9C,aAAO;AAAA,IACT;AACA,aAAS,0BAA0BJ,OAAM,QAAQ;AAC/C,UAAI,OAAO,YAAYA,KAAI;AAC3B,MAAAA,QAAO;AACP,eAAS,SAAS,QAAQ;AACxB,YAAI,MAAM,KAAK,UAAU;AACvB,oBAAUA,QAAO,KAAK,YAAY;AAClC,cAAIA,SAAQ,UAAU,WAAW;AAC/B,mBAAO,EAAE,MAAY,QAAQ,SAASA,MAAI;AAC5C,UAAAA,QAAO;AAAA,QACb;AACI,WAAG;AACD,iBAAO,QAAQ;AACb,gBAAI,KAAK,aAAa;AACpB,qBAAO,KAAK;AACZ,oBAAM;AAAA,YAChB;AACQ,mBAAO,KAAK;AAAA,UACpB;AACM,iBAAO;AAAA,QACb;AACI,eAAO,YAAY,IAAI;AAAA,MAC3B;AAAA,IACA;AACA,aAAS,aAAa,WAAW,WAAW;AAC1C,aAAO,aAAa,YAChB,cAAc,YACZ,OACA,aAAa,MAAM,UAAU,WAC3B,QACA,aAAa,MAAM,UAAU,WAC3B,aAAa,WAAW,UAAU,UAAU,IAC5C,cAAc,YACZ,UAAU,SAAS,SAAS,IAC5B,UAAU,0BACR,CAAC,EAAE,UAAU,wBAAwB,SAAS,IAAI,MAClD,QACV;AAAA,IACN;AACA,aAAS,qBAAqB,eAAe;AAC3C,sBACE,QAAQ,iBACR,QAAQ,cAAc,iBACtB,QAAQ,cAAc,cAAc,cAChC,cAAc,cAAc,cAC5B;AACN,eACM,UAAU,iBAAiB,cAAc,QAAQ,GACrD,mBAAmB,cAAc,qBAEjC;AACA,YAAI;AACF,cAAI,2BACF,aAAa,OAAO,QAAQ,cAAc,SAAS;AAAA,QAC3D,SAAa,KAAK;AACZ,qCAA2B;AAAA,QACjC;AACI,YAAI,yBAA0B,iBAAgB,QAAQ;AAAA,YACjD;AACL,kBAAU,iBAAiB,cAAc,QAAQ;AAAA,MACrD;AACE,aAAO;AAAA,IACT;AACA,aAAS,yBAAyB,MAAM;AACtC,UAAI,WAAW,QAAQ,KAAK,YAAY,KAAK,SAAS,YAAW;AACjE,aACE,aACE,YAAY,aACX,WAAW,KAAK,QACf,aAAa,KAAK,QAClB,UAAU,KAAK,QACf,UAAU,KAAK,QACf,eAAe,KAAK,SACtB,eAAe,YACf,WAAW,KAAK;AAAA,IAEtB;AACA,QAAI,2BACA,aAAa,kBAAkB,YAAY,MAAM,SAAS,cAC5D,gBAAgB,MAChB,oBAAoB,MACpB,gBAAgB,MAChB,YAAY;AACd,aAAS,qBAAqB,eAAe,aAAa,mBAAmB;AAC3E,UAAI,MACF,kBAAkB,WAAW,oBACzB,kBAAkB,WAClB,MAAM,kBAAkB,WACtB,oBACA,kBAAkB;AAC1B,mBACE,QAAQ,iBACR,kBAAkB,iBAAiB,GAAG,MACpC,MAAM,eACR,oBAAoB,OAAO,yBAAyB,GAAG,IAClD,MAAM,EAAE,OAAO,IAAI,gBAAgB,KAAK,IAAI,aAAY,KACvD,OACC,IAAI,iBAAiB,IAAI,cAAc,eACxC,QACA,aAAY,GACb,MAAM;AAAA,QACL,YAAY,IAAI;AAAA,QAChB,cAAc,IAAI;AAAA,QAClB,WAAW,IAAI;AAAA,QACf,aAAa,IAAI;AAAA,MAC3B,IACK,iBAAiB,aAAa,eAAe,GAAG,MAC7C,gBAAgB,KACjB,MAAM,4BAA4B,mBAAmB,UAAU,GAChE,IAAI,IAAI,WACJ,cAAc,IAAI;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,SAEF,cAAc,KAAK,EAAE,OAAO,aAAa,WAAW,KAAK,GACxD,YAAY,SAAS;AAAA,IAC9B;AACA,aAAS,cAAc,WAAW,WAAW;AAC3C,UAAI,WAAW,CAAA;AACf,eAAS,UAAU,YAAW,CAAE,IAAI,UAAU,YAAW;AACzD,eAAS,WAAW,SAAS,IAAI,WAAW;AAC5C,eAAS,QAAQ,SAAS,IAAI,QAAQ;AACtC,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB;AAAA,MACjB,cAAc,cAAc,aAAa,cAAc;AAAA,MACvD,oBAAoB,cAAc,aAAa,oBAAoB;AAAA,MACnE,gBAAgB,cAAc,aAAa,gBAAgB;AAAA,MAC3D,eAAe,cAAc,cAAc,eAAe;AAAA,MAC1D,iBAAiB,cAAc,cAAc,iBAAiB;AAAA,MAC9D,kBAAkB,cAAc,cAAc,kBAAkB;AAAA,MAChE,eAAe,cAAc,cAAc,eAAe;AAAA,OAE5D,qBAAqB,CAAA,GACrB,QAAQ,CAAA;AACV,kBACI,QAAQ,SAAS,cAAc,KAAK,EAAE,OACxC,oBAAoB,WACjB,OAAO,eAAe,aAAa,WACpC,OAAO,eAAe,mBAAmB,WACzC,OAAO,eAAe,eAAe,YACvC,qBAAqB,UACnB,OAAO,eAAe,cAAc;AACxC,aAAS,2BAA2B,WAAW;AAC7C,UAAI,mBAAmB,SAAS,EAAG,QAAO,mBAAmB,SAAS;AACtE,UAAI,CAAC,eAAe,SAAS,EAAG,QAAO;AACvC,UAAI,YAAY,eAAe,SAAS,GACtC;AACF,WAAK,aAAa;AAChB,YAAI,UAAU,eAAe,SAAS,KAAK,aAAa;AACtD,iBAAQ,mBAAmB,SAAS,IAAI,UAAU,SAAS;AAC/D,aAAO;AAAA,IACT;AACA,QAAI,gBAAgB,2BAA2B,cAAc,GAC3D,sBAAsB,2BAA2B,oBAAoB,GACrE,kBAAkB,2BAA2B,gBAAgB,GAC7D,iBAAiB,2BAA2B,eAAe,GAC3D,mBAAmB,2BAA2B,iBAAiB,GAC/D,oBAAoB,2BAA2B,kBAAkB,GACjE,iBAAiB,2BAA2B,eAAe,GAC3D,6BAA6B,oBAAI,IAAG,GACpC,0BACE,mnBAAmnB;AAAA,MACjnB;AAAA;AAEN,4BAAwB,KAAK,WAAW;AACxC,aAAS,oBAAoB,cAAc,WAAW;AACpD,iCAA2B,IAAI,cAAc,SAAS;AACtD,4BAAsB,WAAW,CAAC,YAAY,CAAC;AAAA,IACjD;AACA,QAAI,oBACA,eAAe,OAAO,cAClB,cACA,SAAU,OAAO;AACf,UACE,aAAa,OAAO,UACpB,eAAe,OAAO,OAAO,YAC7B;AACA,YAAI,QAAQ,IAAI,OAAO,WAAW,SAAS;AAAA,UACzC,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,SACE,aAAa,OAAO,SACpB,SAAS,SACT,aAAa,OAAO,MAAM,UACtB,OAAO,MAAM,OAAO,IACpB,OAAO,KAAK;AAAA,UAClB;AAAA,QACd,CAAa;AACD,YAAI,CAAC,OAAO,cAAc,KAAK,EAAG;AAAA,MAC9C,WACY,aAAa,OAAO,WACpB,eAAe,OAAO,QAAQ,MAC9B;AACA,gBAAQ,KAAK,qBAAqB,KAAK;AACvC;AAAA,MACZ;AACU,cAAQ,MAAM,KAAK;AAAA,IAC7B,GACE,mBAAmB,CAAA,GACnB,wBAAwB,GACxB,2BAA2B;AAC7B,aAAS,kCAAkC;AACzC,eACM,WAAW,uBACb,IAAK,2BAA2B,wBAAwB,GAC1D,IAAI,YAEJ;AACA,YAAI,QAAQ,iBAAiB,CAAC;AAC9B,yBAAiB,GAAG,IAAI;AACxB,YAAI,QAAQ,iBAAiB,CAAC;AAC9B,yBAAiB,GAAG,IAAI;AACxB,YAAI,SAAS,iBAAiB,CAAC;AAC/B,yBAAiB,GAAG,IAAI;AACxB,YAAI,OAAO,iBAAiB,CAAC;AAC7B,yBAAiB,GAAG,IAAI;AACxB,YAAI,SAAS,SAAS,SAAS,QAAQ;AACrC,cAAI,UAAU,MAAM;AACpB,mBAAS,UACJ,OAAO,OAAO,UACb,OAAO,OAAO,QAAQ,MAAQ,QAAQ,OAAO;AACnD,gBAAM,UAAU;AAAA,QACtB;AACI,cAAM,QAAQ,8BAA8B,OAAO,QAAQ,IAAI;AAAA,MACnE;AAAA,IACA;AACA,aAAS,gBAAgB,OAAO,OAAO,QAAQ,MAAM;AACnD,uBAAiB,uBAAuB,IAAI;AAC5C,uBAAiB,uBAAuB,IAAI;AAC5C,uBAAiB,uBAAuB,IAAI;AAC5C,uBAAiB,uBAAuB,IAAI;AAC5C,kCAA4B;AAC5B,YAAM,SAAS;AACf,cAAQ,MAAM;AACd,eAAS,UAAU,MAAM,SAAS;AAAA,IACpC;AACA,aAAS,4BAA4B,OAAO,OAAO,QAAQ,MAAM;AAC/D,sBAAgB,OAAO,OAAO,QAAQ,IAAI;AAC1C,aAAO,uBAAuB,KAAK;AAAA,IACrC;AACA,aAAS,+BAA+B,OAAO,MAAM;AACnD,sBAAgB,OAAO,MAAM,MAAM,IAAI;AACvC,aAAO,uBAAuB,KAAK;AAAA,IACrC;AACA,aAAS,8BAA8B,aAAa,QAAQ,MAAM;AAChE,kBAAY,SAAS;AACrB,UAAI,YAAY,YAAY;AAC5B,eAAS,cAAc,UAAU,SAAS;AAC1C,eAAS,WAAW,OAAI,SAAS,YAAY,QAAQ,SAAS;AAC5D,QAAC,OAAO,cAAc,MACnB,YAAY,OAAO,WACpB,SAAS,cAAc,UAAU,cAAc,OAC/C,OAAO,OAAO,QACV,cAAc,OAAO,WACvB,SAAS,eAAe,YAAY,cAAc,MAAM,WAAW,QACpE,cAAc,QACd,SAAS,OAAO;AACrB,aAAO,MAAM,YAAY,OACnB,SAAS,YAAY,WACvB,YACE,SAAS,WACP,WAAW,KAAK,MAAM,IAAI,GAC3B,cAAc,OAAO,eACrB,YAAY,YAAY,QAAQ,GACjC,SAAS,YACJ,YAAY,QAAQ,IAAI,CAAC,MAAM,IAChC,UAAU,KAAK,MAAM,GACxB,OAAO,OAAO,OAAO,YACxB,UACA;AAAA,IACN;AACA,aAAS,uBAAuB,aAAa;AAC3C,UAAI,KAAK;AACP,cACI,oBAAoB,GACrB,wBAAwB,MACzB,MAAM,uBAAuB,GAAG,CAAC;AAErC,eAAS,SAAS,YAAY,QAAQ,SAAS;AAC7C,QAAC,cAAc,QAAU,SAAS,YAAY;AAChD,aAAO,MAAM,YAAY,MAAM,YAAY,YAAY;AAAA,IACzD;AACA,QAAI,qBAAqB,CAAA;AACzB,aAAS,UAAU,KAAK,cAAc,KAAK,MAAM;AAC/C,WAAK,MAAM;AACX,WAAK,MAAM;AACX,WAAK,UACH,KAAK,QACL,KAAK,SACL,KAAK,YACL,KAAK,OACL,KAAK,cACH;AACJ,WAAK,QAAQ;AACb,WAAK,aAAa,KAAK,MAAM;AAC7B,WAAK,eAAe;AACpB,WAAK,eACH,KAAK,gBACL,KAAK,cACL,KAAK,gBACH;AACJ,WAAK,OAAO;AACZ,WAAK,eAAe,KAAK,QAAQ;AACjC,WAAK,YAAY;AACjB,WAAK,aAAa,KAAK,QAAQ;AAC/B,WAAK,YAAY;AAAA,IACnB;AACA,aAAS,qBAAqB,KAAK,cAAc,KAAK,MAAM;AAC1D,aAAO,IAAI,UAAU,KAAK,cAAc,KAAK,IAAI;AAAA,IACnD;AACA,aAAS,gBAAgB,WAAW;AAClC,kBAAY,UAAU;AACtB,aAAO,EAAE,CAAC,aAAa,CAAC,UAAU;AAAA,IACpC;AACA,aAAS,qBAAqB,SAAS,cAAc;AACnD,UAAIF,kBAAiB,QAAQ;AAC7B,eAASA,mBACHA,kBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR;AAAA,QACA,QAAQ;AAAA,QACR,QAAQ;AAAA,SAETA,gBAAe,cAAc,QAAQ,aACrCA,gBAAe,OAAO,QAAQ,MAC9BA,gBAAe,YAAY,QAAQ,WACnCA,gBAAe,YAAY,SAC3B,QAAQ,YAAYA,oBACnBA,gBAAe,eAAe,cAC/BA,gBAAe,OAAO,QAAQ,MAC9BA,gBAAe,QAAQ,GACvBA,gBAAe,eAAe,GAC9BA,gBAAe,YAAY;AAChC,MAAAA,gBAAe,QAAQ,QAAQ,QAAQ;AACvC,MAAAA,gBAAe,aAAa,QAAQ;AACpC,MAAAA,gBAAe,QAAQ,QAAQ;AAC/B,MAAAA,gBAAe,QAAQ,QAAQ;AAC/B,MAAAA,gBAAe,gBAAgB,QAAQ;AACvC,MAAAA,gBAAe,gBAAgB,QAAQ;AACvC,MAAAA,gBAAe,cAAc,QAAQ;AACrC,qBAAe,QAAQ;AACvB,MAAAA,gBAAe,eACb,SAAS,eACL,OACA,EAAE,OAAO,aAAa,OAAO,cAAc,aAAa,aAAY;AAC1E,MAAAA,gBAAe,UAAU,QAAQ;AACjC,MAAAA,gBAAe,QAAQ,QAAQ;AAC/B,MAAAA,gBAAe,MAAM,QAAQ;AAC7B,MAAAA,gBAAe,aAAa,QAAQ;AACpC,aAAOA;AAAA,IACT;AACA,aAAS,oBAAoBA,iBAAgBG,cAAa;AACxD,MAAAH,gBAAe,SAAS;AACxB,UAAI,UAAUA,gBAAe;AAC7B,eAAS,WACHA,gBAAe,aAAa,GAC7BA,gBAAe,QAAQG,cACvBH,gBAAe,QAAQ,MACvBA,gBAAe,eAAe,GAC9BA,gBAAe,gBAAgB,MAC/BA,gBAAe,gBAAgB,MAC/BA,gBAAe,cAAc,MAC7BA,gBAAe,eAAe,MAC9BA,gBAAe,YAAY,SAC1BA,gBAAe,aAAa,QAAQ,YACrCA,gBAAe,QAAQ,QAAQ,OAC/BA,gBAAe,QAAQ,QAAQ,OAC/BA,gBAAe,eAAe,GAC9BA,gBAAe,YAAY,MAC3BA,gBAAe,gBAAgB,QAAQ,eACvCA,gBAAe,gBAAgB,QAAQ,eACvCA,gBAAe,cAAc,QAAQ,aACrCA,gBAAe,OAAO,QAAQ,MAC9BG,eAAc,QAAQ,cACtBH,gBAAe,eACd,SAASG,eACL,OACA;AAAA,QACE,OAAOA,aAAY;AAAA,QACnB,cAAcA,aAAY;AAAA,MACxC;AACE,aAAOH;AAAA,IACT;AACA,aAAS,4BACP,MACA,KACA,cACA,OACA,MACA,OACA;AACA,UAAI,WAAW;AACf,cAAQ;AACR,UAAI,eAAe,OAAO,KAAM,iBAAgB,IAAI,MAAM,WAAW;AAAA,eAC5D,aAAa,OAAO;AAC3B,mBAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA,mBAAmB;AAAA,QACzB,IACQ,KACA,WAAW,QAAQ,WAAW,QAAQ,WAAW,OAC/C,KACA;AAAA;AAEN,UAAG,SAAQ,MAAI;AAAA,UACb,KAAK;AACH,mBACG,OAAO,qBAAqB,IAAI,cAAc,KAAK,IAAI,GACvD,KAAK,cAAc,qBACnB,KAAK,QAAQ,OACd;AAAA,UAEJ,KAAK;AACH,mBAAO,wBAAwB,aAAa,UAAU,MAAM,OAAO,GAAG;AAAA,UACxE,KAAK;AACH,uBAAW;AACX,oBAAQ;AACR;AAAA,UACF,KAAK;AACH,mBACG,OAAO,qBAAqB,IAAI,cAAc,KAAK,OAAO,CAAC,GAC3D,KAAK,cAAc,qBACnB,KAAK,QAAQ,OACd;AAAA,UAEJ,KAAK;AACH,mBACG,OAAO,qBAAqB,IAAI,cAAc,KAAK,IAAI,GACvD,KAAK,cAAc,qBACnB,KAAK,QAAQ,OACd;AAAA,UAEJ,KAAK;AACH,mBACG,OAAO,qBAAqB,IAAI,cAAc,KAAK,IAAI,GACvD,KAAK,cAAc,0BACnB,KAAK,QAAQ,OACd;AAAA,UAEJ;AACE,gBAAI,aAAa,OAAO,QAAQ,SAAS;AACvC,sBAAQ,KAAK,UAAQ;AAAA,gBACnB,KAAK;AACH,6BAAW;AACX,wBAAM;AAAA,gBACR,KAAK;AACH,6BAAW;AACX,wBAAM;AAAA,gBACR,KAAK;AACH,6BAAW;AACX,wBAAM;AAAA,gBACR,KAAK;AACH,6BAAW;AACX,wBAAM;AAAA,gBACR,KAAK;AACH,6BAAW;AACX,0BAAQ;AACR,wBAAM;AAAA,cACpB;AACQ,uBAAW;AACX,2BAAe;AAAA,cACb,uBAAuB,KAAK,SAAS,OAAO,SAAS,OAAO,MAAM,EAAE;AAAA;AAEtE,oBAAQ;AAAA,QAChB;AACE,YAAM,qBAAqB,UAAU,cAAc,KAAK,IAAI;AAC5D,UAAI,cAAc;AAClB,UAAI,OAAO;AACX,UAAI,QAAQ;AACZ,aAAO;AAAA,IACT;AACA,aAAS,wBAAwB,UAAU,MAAM,OAAO,KAAK;AAC3D,iBAAW,qBAAqB,GAAG,UAAU,KAAK,IAAI;AACtD,eAAS,QAAQ;AACjB,aAAO;AAAA,IACT;AACA,aAAS,oBAAoB,SAAS,MAAM,OAAO;AACjD,gBAAU,qBAAqB,GAAG,SAAS,MAAM,IAAI;AACrD,cAAQ,QAAQ;AAChB,aAAO;AAAA,IACT;AACA,aAAS,kCAAkC,gBAAgB;AACzD,UAAI,QAAQ,qBAAqB,IAAI,MAAM,MAAM,CAAC;AAClD,YAAM,YAAY;AAClB,aAAO;AAAA,IACT;AACA,aAAS,sBAAsB,QAAQ,MAAM,OAAO;AAClD,aAAO;AAAA,QACL;AAAA,QACA,SAAS,OAAO,WAAW,OAAO,WAAW,CAAA;AAAA,QAC7C,OAAO;AAAA,QACP;AAAA;AAEF,WAAK,QAAQ;AACb,WAAK,YAAY;AAAA,QACf,eAAe,OAAO;AAAA,QACtB,iBAAiB;AAAA,QACjB,gBAAgB,OAAO;AAAA;AAEzB,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB,oBAAI,QAAO;AAChC,aAAS,2BAA2B,OAAO,QAAQ;AACjD,UAAI,aAAa,OAAO,SAAS,SAAS,OAAO;AAC/C,YAAI,WAAW,eAAe,IAAI,KAAK;AACvC,YAAI,WAAW,SAAU,QAAO;AAChC,iBAAS;AAAA,UACP;AAAA,UACA;AAAA,UACA,OAAO,4BAA4B,MAAM;AAAA;AAE3C,uBAAe,IAAI,OAAO,MAAM;AAChC,eAAO;AAAA,MACX;AACE,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,OAAO,4BAA4B,MAAM;AAAA;IAE7C;AACA,QAAI,YAAY,CAAA,GACd,iBAAiB,GACjB,mBAAmB,MACnB,gBAAgB,GAChB,UAAU,CAAA,GACV,eAAe,GACf,sBAAsB,MACtB,gBAAgB,GAChB,sBAAsB;AACxB,aAAS,aAAaA,iBAAgB,eAAe;AACnD,gBAAU,gBAAgB,IAAI;AAC9B,gBAAU,gBAAgB,IAAI;AAC9B,yBAAmBA;AACnB,sBAAgB;AAAA,IAClB;AACA,aAAS,WAAWA,iBAAgB,eAAeO,QAAO;AACxD,cAAQ,cAAc,IAAI;AAC1B,cAAQ,cAAc,IAAI;AAC1B,cAAQ,cAAc,IAAI;AAC1B,4BAAsBP;AACtB,UAAI,uBAAuB;AAC3B,MAAAA,kBAAiB;AACjB,UAAI,aAAa,KAAK,MAAM,oBAAoB,IAAI;AACpD,8BAAwB,EAAE,KAAK;AAC/B,MAAAO,UAAS;AACT,UAAI,SAAS,KAAK,MAAM,aAAa,IAAI;AACzC,UAAI,KAAK,QAAQ;AACf,YAAI,uBAAuB,aAAc,aAAa;AACtD,kBACE,wBACE,KAAK,wBAAwB,GAC/B,SAAS,EAAE;AACb,iCAAyB;AACzB,sBAAc;AACd,wBACG,KAAM,KAAK,MAAM,aAAa,IAAI,aAClCA,UAAS,aACV;AACF,8BAAsB,SAASP;AAAA,MACnC;AACI,QAAC,gBACE,KAAK,SAAWO,UAAS,aAAc,sBACvC,sBAAsBP;AAAA,IAC7B;AACA,aAAS,uBAAuBA,iBAAgB;AAC9C,eAASA,gBAAe,WACrB,aAAaA,iBAAgB,CAAC,GAAG,WAAWA,iBAAgB,GAAG,CAAC;AAAA,IACrE;AACA,aAAS,eAAeA,iBAAgB;AACtC,aAAOA,oBAAmB;AACxB,QAAC,mBAAmB,UAAU,EAAE,cAAc,GAC3C,UAAU,cAAc,IAAI,MAC5B,gBAAgB,UAAU,EAAE,cAAc,GAC1C,UAAU,cAAc,IAAI;AACjC,aAAOA,oBAAmB;AACxB,QAAC,sBAAsB,QAAQ,EAAE,YAAY,GAC1C,QAAQ,YAAY,IAAI,MACxB,sBAAsB,QAAQ,EAAE,YAAY,GAC5C,QAAQ,YAAY,IAAI,MACxB,gBAAgB,QAAQ,EAAE,YAAY,GACtC,QAAQ,YAAY,IAAI;AAAA,IAC/B;AACA,aAAS,4BAA4BA,iBAAgB,kBAAkB;AACrE,cAAQ,cAAc,IAAI;AAC1B,cAAQ,cAAc,IAAI;AAC1B,cAAQ,cAAc,IAAI;AAC1B,sBAAgB,iBAAiB;AACjC,4BAAsB,iBAAiB;AACvC,4BAAsBA;AAAA,IACxB;AACA,QAAI,uBAAuB,MACzB,yBAAyB,MACzB,cAAc,OACd,kBAAkB,MAClB,yBAAyB,OACzB,6BAA6B,MAAM,uBAAuB,GAAG,CAAC;AAChE,aAAS,yBAAyB,OAAO;AACvC,UAAI,QAAQ;AAAA,QACV;AAAA,UACE;AAAA,UACA,IAAI,UAAU,UAAU,WAAW,UAAU,CAAC,KAAK,UAAU,CAAC,IAC1D,SACA;AAAA,UACJ;AAAA,QACN;AAAA;AAEE,0BAAoB,2BAA2B,OAAO,KAAK,CAAC;AAC5D,YAAM;AAAA,IACR;AACA,aAAS,6BAA6B,OAAO;AAC3C,UAAI,WAAW,MAAM,WACnB,OAAO,MAAM,MACb,QAAQ,MAAM;AAChB,eAAS,mBAAmB,IAAI;AAChC,eAAS,gBAAgB,IAAI;AAC7B,cAAQ,MAAI;AAAA,QACV,KAAK;AACH,oCAA0B,UAAU,QAAQ;AAC5C,oCAA0B,SAAS,QAAQ;AAC3C;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,oCAA0B,QAAQ,QAAQ;AAC1C;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,OAAO,GAAG,OAAO,gBAAgB,QAAQ;AAC5C,sCAA0B,gBAAgB,IAAI,GAAG,QAAQ;AAC3D;AAAA,QACF,KAAK;AACH,oCAA0B,SAAS,QAAQ;AAC3C;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,oCAA0B,SAAS,QAAQ;AAC3C,oCAA0B,QAAQ,QAAQ;AAC1C;AAAA,QACF,KAAK;AACH,oCAA0B,UAAU,QAAQ;AAC5C;AAAA,QACF,KAAK;AACH,oCAA0B,WAAW,QAAQ;AAC7C;AAAA,YACE;AAAA,YACA,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,YACN;AAAA;AAEF;AAAA,QACF,KAAK;AACH,oCAA0B,WAAW,QAAQ;AAC7C;AAAA,QACF,KAAK;AACH,oCAA0B,WAAW,QAAQ,GAC3C,aAAa,UAAU,MAAM,OAAO,MAAM,cAAc,MAAM,QAAQ;AAAA,MAC9E;AACE,aAAO,MAAM;AACb,MAAC,aAAa,OAAO,QACnB,aAAa,OAAO,QACpB,aAAa,OAAO,QACtB,SAAS,gBAAgB,KAAK,QAC9B,SAAO,MAAM,4BACb,sBAAsB,SAAS,aAAa,IAAI,KAC3C,QAAQ,MAAM,YACZ,0BAA0B,gBAAgB,QAAQ,GACnD,0BAA0B,UAAU,QAAQ,IAC9C,QAAQ,MAAM,YAAY,0BAA0B,UAAU,QAAQ,GACtE,QAAQ,MAAM,eACZ,0BAA0B,aAAa,QAAQ,GACjD,QAAQ,MAAM,YAAY,SAAS,UAAU,SAC5C,WAAW,QACX,WAAW;AAChB,kBAAY,yBAAyB,OAAO,IAAE;AAAA,IAChD;AACA,aAAS,oBAAoB,OAAO;AAClC,WAAK,uBAAuB,MAAM,QAAQ;AACxC,gBAAQ,qBAAqB,KAAG;AAAA,UAC9B,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,qCAAyB;AACzB;AAAA,UACF,KAAK;AAAA,UACL,KAAK;AACH,qCAAyB;AACzB;AAAA,UACF;AACE,mCAAuB,qBAAqB;AAAA,QACpD;AAAA,IACA;AACA,aAAS,kBAAkB,OAAO;AAChC,UAAI,UAAU,qBAAsB,QAAO;AAC3C,UAAI,CAAC,YAAa,QAAO,oBAAoB,KAAK,GAAI,cAAc,MAAK;AACzE,UAAI,MAAM,MAAM,KACd;AACF,UAAK,kBAAkB,MAAM,OAAO,OAAO,KAAM;AAC/C,YAAK,kBAAkB,MAAM;AAC3B,UAAC,kBAAkB,MAAM,MACtB,kBACC,EAAE,WAAW,mBAAmB,aAAa,oBAC7C,qBAAqB,MAAM,MAAM,MAAM,aAAa;AAC1D,0BAAkB,CAAC;AAAA,MACvB;AACE,yBAAmB,0BAA0B,yBAAyB,KAAK;AAC3E,0BAAoB,KAAK;AACzB,UAAI,OAAO,KAAK;AACd,gBAAQ,MAAM;AACd,gBAAQ,SAAS,QAAQ,MAAM,aAAa;AAC5C,YAAI,CAAC,MAAO,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACnD,iCACE,gDAAgD,KAAK;AAAA,MAC3D,WAAa,OAAO,KAAK;AACrB,gBAAQ,MAAM;AACd,gBAAQ,SAAS,QAAQ,MAAM,aAAa;AAC5C,YAAI,CAAC,MAAO,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACnD,iCACE,gDAAgD,KAAK;AAAA,MAC3D;AACI,eAAO,OACD,MAAM,wBACR,iBAAiB,MAAM,IAAI,KACrB,QAAQ,6CACT,8CAA8C,MAC9C,yBAAyB,SACzB,yBAAyB,OAC7B,yBAAyB,uBACtB,kBAAkB,MAAM,UAAU,WAAW,IAC7C;AACV,aAAO;AAAA,IACT;AACA,aAAS,sBAAsB;AAC7B,+BAAyB,uBAAuB;AAChD,oBAAc;AAAA,IAChB;AACA,aAAS,sCAAsC;AAC7C,UAAI,eAAe;AACnB,eAAS,iBACN,SAAS,sCACL,sCAAsC,eACvC,oCAAoC,KAAK;AAAA,QACvC;AAAA,QACA;AAAA,SAEL,kBAAkB;AACrB,aAAO;AAAA,IACT;AACA,aAAS,oBAAoB,OAAO;AAClC,eAAS,kBACJ,kBAAkB,CAAC,KAAK,IACzB,gBAAgB,KAAK,KAAK;AAAA,IAChC;AACA,QAAI,cAAc,aAAa,IAAI,GACjC,4BAA4B,MAC5B,wBAAwB;AAC1B,aAAS,aAAa,eAAe,SAAS,WAAW;AACvD,WAAK,aAAa,QAAQ,aAAa;AACvC,cAAQ,gBAAgB;AAAA,IAC1B;AACA,aAAS,YAAY,SAAS;AAC5B,cAAQ,gBAAgB,YAAY;AACpC,UAAI,WAAW;AAAA,IACjB;AACA,aAAS,gCAAgC,QAAQG,cAAa,iBAAiB;AAC7E,aAAO,SAAS,UAAU;AACxB,YAAI,YAAY,OAAO;AACvB,SAAC,OAAO,aAAaA,kBAAiBA,gBAChC,OAAO,cAAcA,cACvB,SAAS,cAAc,UAAU,cAAcA,iBAC/C,SAAS,cACR,UAAU,aAAaA,kBAAiBA,iBACxC,UAAU,cAAcA;AAC7B,YAAI,WAAW,gBAAiB;AAChC,iBAAS,OAAO;AAAA,MACpB;AAAA,IACA;AACA,aAAS,wBACPH,iBACA,UACAG,cACA,0BACA;AACA,UAAI,QAAQH,gBAAe;AAC3B,eAAS,UAAU,MAAM,SAASA;AAClC,aAAO,SAAS,SAAS;AACvB,YAAI,OAAO,MAAM;AACjB,YAAI,SAAS,MAAM;AACjB,cAAI,YAAY,MAAM;AACtB,iBAAO,KAAK;AACZ,YAAG,QAAO,SAAS,QAAQ;AACzB,gBAAI,aAAa;AACjB,mBAAO;AACP,qBAAS,IAAI,GAAG,IAAI,SAAS,QAAQ;AACnC,kBAAI,WAAW,YAAY,SAAS,CAAC,GAAG;AACtC,qBAAK,SAASG;AACd,6BAAa,KAAK;AAClB,yBAAS,eAAe,WAAW,SAASA;AAC5C;AAAA,kBACE,KAAK;AAAA,kBACLA;AAAA,kBACAH;AAAA;AAEF,6CAA6B,YAAY;AACzC,sBAAM;AAAA,cAClB;AACQ,mBAAO,WAAW;AAAA,UAC1B;AAAA,QACA,WAAe,OAAO,MAAM,KAAK;AAC3B,sBAAY,MAAM;AAClB,cAAI,SAAS,UAAW,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAC/D,oBAAU,SAASG;AACnB,iBAAO,UAAU;AACjB,mBAAS,SAAS,KAAK,SAASA;AAChC,0CAAgC,WAAWA,cAAaH,eAAc;AACtE,sBAAY;AAAA,QAClB,MAAW,aAAY,MAAM;AACzB,YAAI,SAAS,UAAW,WAAU,SAAS;AAAA;AAEzC,eAAK,YAAY,OAAO,SAAS,aAAa;AAC5C,gBAAI,cAAcA,iBAAgB;AAChC,0BAAY;AACZ;AAAA,YACV;AACQ,oBAAQ,UAAU;AAClB,gBAAI,SAAS,OAAO;AAClB,oBAAM,SAAS,UAAU;AACzB,0BAAY;AACZ;AAAA,YACV;AACQ,wBAAY,UAAU;AAAA,UAC9B;AACI,gBAAQ;AAAA,MACZ;AAAA,IACA;AACA,aAAS,8BACP,SACAA,iBACAG,cACA,0BACA;AACA,gBAAU;AACV,eACM,SAASH,iBAAgB,6BAA6B,OAC1D,SAAS,UAET;AACA,YAAI,CAAC;AACH,cAAI,OAAO,OAAO,QAAQ,QAAS,8BAA6B;AAAA,mBACvD,OAAO,OAAO,QAAQ,QAAS;AAAA;AAC1C,YAAI,OAAO,OAAO,KAAK;AACrB,cAAI,gBAAgB,OAAO;AAC3B,cAAI,SAAS,cAAe,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACnE,0BAAgB,cAAc;AAC9B,cAAI,SAAS,eAAe;AAC1B,gBAAI,UAAU,OAAO;AACrB,qBAAS,OAAO,aAAa,OAAO,cAAc,KAAK,MACpD,SAAS,UAAU,QAAQ,KAAK,OAAO,IAAK,UAAU,CAAC,OAAO;AAAA,UACzE;AAAA,QACA,WAAe,WAAW,6BAA6B,SAAS;AAC1D,0BAAgB,OAAO;AACvB,cAAI,SAAS,cAAe,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACnE,wBAAc,cAAc,kBAC1B,OAAO,cAAc,kBACpB,SAAS,UACN,QAAQ,KAAK,qBAAqB,IACjC,UAAU,CAAC,qBAAqB;AAAA,QAC7C;AACI,iBAAS,OAAO;AAAA,MACpB;AACE,eAAS,WACP;AAAA,QACEA;AAAA,QACA;AAAA,QACAG;AAAA,QACA;AAAA;AAEJ,MAAAH,gBAAe,SAAS;AAAA,IAC1B;AACA,aAAS,sBAAsB,qBAAqB;AAClD,WACE,sBAAsB,oBAAoB,cAC1C,SAAS,uBAET;AACA,YACE,CAAC;AAAA,UACC,oBAAoB,QAAQ;AAAA,UAC5B,oBAAoB;AAAA,QAC5B;AAEM,iBAAO;AACT,8BAAsB,oBAAoB;AAAA,MAC9C;AACE,aAAO;AAAA,IACT;AACA,aAAS,qBAAqBA,iBAAgB;AAC5C,kCAA4BA;AAC5B,8BAAwB;AACxB,MAAAA,kBAAiBA,gBAAe;AAChC,eAASA,oBAAmBA,gBAAe,eAAe;AAAA,IAC5D;AACA,aAAS,YAAY,SAAS;AAC5B,aAAO,uBAAuB,2BAA2B,OAAO;AAAA,IAClE;AACA,aAAS,gCAAgC,UAAU,SAAS;AAC1D,eAAS,6BAA6B,qBAAqB,QAAQ;AACnE,aAAO,uBAAuB,UAAU,OAAO;AAAA,IACjD;AACA,aAAS,uBAAuB,UAAU,SAAS;AACjD,UAAI,QAAQ,QAAQ;AACpB,gBAAU,EAAE,SAAkB,eAAe,OAAO,MAAM,KAAI;AAC9D,UAAI,SAAS,uBAAuB;AAClC,YAAI,SAAS,SAAU,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAC9D,gCAAwB;AACxB,iBAAS,eAAe,EAAE,OAAO,GAAG,cAAc,QAAO;AACzD,iBAAS,SAAS;AAAA,MACtB,MAAS,yBAAwB,sBAAsB,OAAO;AAC5D,aAAO;AAAA,IACT;AACA,QAAI,uBACA,gBAAgB,OAAO,kBACnB,kBACA,WAAY;AACV,UAAI,YAAY,CAAA,GACd,SAAU,KAAK,SAAS;AAAA,QACtB,SAAS;AAAA,QACT,kBAAkB,SAAU,MAAM,UAAU;AAC1C,oBAAU,KAAK,QAAQ;AAAA,QACvC;AAAA,MACA;AACU,WAAK,QAAQ,WAAY;AACvB,eAAO,UAAU;AACjB,kBAAU,QAAQ,SAAU,UAAU;AACpC,iBAAO,SAAQ;AAAA,QAC7B,CAAa;AAAA,MACb;AAAA,IACA,GACE,qBAAqB,UAAU,2BAC/B,iBAAiB,UAAU,yBAC3B,eAAe;AAAA,MACb,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,cAAc;AAAA;AAElB,aAAS,cAAc;AACrB,aAAO;AAAA,QACL,YAAY,IAAI,qBAAoB;AAAA,QACpC,MAAM,oBAAI,IAAG;AAAA,QACb,UAAU;AAAA;IAEd;AACA,aAAS,aAAa,OAAO;AAC3B,YAAM;AACN,YAAM,MAAM,YACV,mBAAmB,gBAAgB,WAAY;AAC7C,cAAM,WAAW,MAAK;AAAA,MAC5B,CAAK;AAAA,IACL;AACA,QAAI,4BAA4B,MAC9B,+BAA+B,GAC/B,uBAAuB,GACvB,iCAAiC;AACnC,aAAS,oBAAoB,YAAY,UAAU;AACjD,UAAI,SAAS,2BAA2B;AACtC,YAAI,qBAAsB,4BAA4B;AACtD,uCAA+B;AAC/B,+BAAuB,sBAAqB;AAC5C,yCAAiC;AAAA,UAC/B,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,MAAM,SAAU,SAAS;AACvB,+BAAmB,KAAK,OAAO;AAAA,UACvC;AAAA;MAEA;AACE;AACA,eAAS,KAAK,2BAA2B,yBAAyB;AAClE,aAAO;AAAA,IACT;AACA,aAAS,4BAA4B;AACnC,UACE,MAAM,EAAE,gCACR,SAAS,2BACT;AACA,iBAAS,mCACN,+BAA+B,SAAS;AAC3C,YAAI,YAAY;AAChB,oCAA4B;AAC5B,+BAAuB;AACvB,yCAAiC;AACjC,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAK,EAAA,GAAI,UAAU,CAAC,GAAC;AAAA,MAC/D;AAAA,IACA;AACA,aAAS,mBAAmB,UAAU,QAAQ;AAC5C,UAAI,YAAY,CAAA,GACd,uBAAuB;AAAA,QACrB,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM,SAAU,SAAS;AACvB,oBAAU,KAAK,OAAO;AAAA,QAC9B;AAAA;AAEE,eAAS;AAAA,QACP,WAAY;AACV,+BAAqB,SAAS;AAC9B,+BAAqB,QAAQ;AAC7B,mBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAK,EAAA,GAAI,UAAU,CAAC,GAAG,MAAM;AAAA,QACzE;AAAA,QACI,SAAU,OAAO;AACf,+BAAqB,SAAS;AAC9B,+BAAqB,SAAS;AAC9B,eAAK,QAAQ,GAAG,QAAQ,UAAU,QAAQ;AACxC,gBAAI,UAAU,KAAK,GAAG,MAAM;AAAA,QACpC;AAAA;AAEE,aAAO;AAAA,IACT;AACA,QAAI,8BAA8B,qBAAqB;AACvD,yBAAqB,IAAI,SAAU,YAAY,aAAa;AAC1D,uCAAiC,IAAG;AACpC,mBAAa,OAAO,eAClB,SAAS,eACT,eAAe,OAAO,YAAY,QAClC,oBAAoB,YAAY,WAAW;AAC7C,eAAS,+BACP,4BAA4B,YAAY,WAAW;AAAA,IACvD;AACA,QAAI,eAAe,aAAa,IAAI;AACpC,aAAS,oBAAoB;AAC3B,UAAI,iCAAiC,aAAa;AAClD,aAAO,SAAS,iCACZ,iCACA,mBAAmB;AAAA,IACzB;AACA,aAAS,eAAe,yBAAyB,eAAe;AAC9D,eAAS,gBACL,KAAK,cAAc,aAAa,OAAO,IACvC,KAAK,cAAc,cAAc,IAAI;AAAA,IAC3C;AACA,aAAS,oBAAoB;AAC3B,UAAI,gBAAgB,kBAAiB;AACrC,aAAO,SAAS,gBACZ,OACA,EAAE,QAAQ,aAAa,eAAe,MAAM,cAAa;AAAA,IAC/D;AACA,QAAI,oBAAoB,MAAM,uBAAuB,GAAG,CAAC,GACvD,2BAA2B,MAAM,uBAAuB,GAAG,CAAC,GAC5D,0BAA0B,MAAM,uBAAuB,GAAG,CAAC,GAC3D,8BAA8B,EAAE,MAAM,WAAY;AAAA,MAAE;AACtD,aAAS,mBAAmB,UAAU;AACpC,iBAAW,SAAS;AACpB,aAAO,gBAAgB,YAAY,eAAe;AAAA,IACpD;AACA,aAAS,kBAAkBQ,gBAAe,UAAUD,QAAO;AACzD,MAAAA,SAAQC,eAAcD,MAAK;AAC3B,iBAAWA,SACPC,eAAc,KAAK,QAAQ,IAC3BD,WAAU,aAAa,SAAS,KAAK,QAAQ,MAAM,GAAI,WAAWA;AACtE,cAAQ,SAAS,QAAM;AAAA,QACrB,KAAK;AACH,iBAAO,SAAS;AAAA,QAClB,KAAK;AACH,gBACIC,iBAAgB,SAAS,QAC3B,8BAA8BA,cAAa,GAC3CA;AAAA,QAEJ;AACE,cAAI,aAAa,OAAO,SAAS,OAAQ,UAAS,KAAK,QAAQ,MAAM;AAAA,eAChE;AACH,YAAAA,iBAAgB;AAChB,gBAAI,SAASA,kBAAiB,MAAMA,eAAc;AAChD,oBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,YAAAA,iBAAgB;AAChB,YAAAA,eAAc,SAAS;AACvB,YAAAA,eAAc;AAAA,cACZ,SAAU,gBAAgB;AACxB,oBAAI,cAAc,SAAS,QAAQ;AACjC,sBAAI,oBAAoB;AACxB,oCAAkB,SAAS;AAC3B,oCAAkB,QAAQ;AAAA,gBACxC;AAAA,cACA;AAAA,cACU,SAAU,OAAO;AACf,oBAAI,cAAc,SAAS,QAAQ;AACjC,sBAAI,mBAAmB;AACvB,mCAAiB,SAAS;AAC1B,mCAAiB,SAAS;AAAA,gBACxC;AAAA,cACA;AAAA;UAEA;AACM,kBAAQ,SAAS,QAAM;AAAA,YACrB,KAAK;AACH,qBAAO,SAAS;AAAA,YAClB,KAAK;AACH,oBACIA,iBAAgB,SAAS,QAC3B,8BAA8BA,cAAa,GAC3CA;AAAA,UAEZ;AACM,8BAAoB;AACpB,gBAAM;AAAA,MACZ;AAAA,IACA;AACA,aAAS,YAAY,UAAU;AAC7B,UAAI;AACF,YAAI,OAAO,SAAS;AACpB,eAAO,KAAK,SAAS,QAAQ;AAAA,MACjC,SAAW,GAAG;AACV,YAAI,SAAS,KAAK,aAAa,OAAO,KAAK,eAAe,OAAO,EAAE;AACjE,gBAAQ,oBAAoB,GAAI;AAClC,cAAM;AAAA,MACV;AAAA,IACA;AACA,QAAI,oBAAoB;AACxB,aAAS,uBAAuB;AAC9B,UAAI,SAAS,kBAAmB,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACvE,UAAI,WAAW;AACf,0BAAoB;AACpB,aAAO;AAAA,IACT;AACA,aAAS,8BAA8B,gBAAgB;AACrD,UACE,mBAAmB,qBACnB,mBAAmB;AAEnB,cAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,IAC3C;AACA,QAAI,kBAAkB,MACpB,yBAAyB;AAC3B,aAAS,eAAe,UAAU;AAChC,UAAID,SAAQ;AACZ,gCAA0B;AAC1B,eAAS,oBAAoB,kBAAkB;AAC/C,aAAO,kBAAkB,iBAAiB,UAAUA,MAAK;AAAA,IAC3D;AACA,aAAS,UAAUP,iBAAgB,SAAS;AAC1C,gBAAU,QAAQ,MAAM;AACxB,MAAAA,gBAAe,MAAM,WAAW,UAAU,UAAU;AAAA,IACtD;AACA,aAAS,6BAA6B,aAAa,UAAU;AAC3D,UAAI,SAAS,aAAa;AACxB,cAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,oBAAc,OAAO,UAAU,SAAS,KAAK,QAAQ;AACrD,YAAM;AAAA,QACJ;AAAA,UACE;AAAA,UACA,sBAAsB,cAClB,uBAAuB,OAAO,KAAK,QAAQ,EAAE,KAAK,IAAI,IAAI,MAC1D;AAAA,QACV;AAAA;IAEA;AACA,aAAS,sBAAsB,wBAAwB;AACrD,eAAS,YAAY,aAAa,eAAe;AAC/C,YAAI,wBAAwB;AAC1B,cAAI,YAAY,YAAY;AAC5B,mBAAS,aACH,YAAY,YAAY,CAAC,aAAa,GAAK,YAAY,SAAS,MAClE,UAAU,KAAK,aAAa;AAAA,QACtC;AAAA,MACA;AACE,eAAS,wBAAwB,aAAa,mBAAmB;AAC/D,YAAI,CAAC,uBAAwB,QAAO;AACpC,eAAO,SAAS;AACd,sBAAY,aAAa,iBAAiB,GACvC,oBAAoB,kBAAkB;AAC3C,eAAO;AAAA,MACX;AACE,eAAS,qBAAqB,mBAAmB;AAC/C,iBAAS,mBAAmB,oBAAI,IAAG,GAAI,SAAS;AAC9C,mBAAS,kBAAkB,MACvB,iBAAiB,IAAI,kBAAkB,KAAK,iBAAiB,IAC7D,iBAAiB,IAAI,kBAAkB,OAAO,iBAAiB,GAChE,oBAAoB,kBAAkB;AAC3C,eAAO;AAAA,MACX;AACE,eAAS,SAAS,OAAO,cAAc;AACrC,gBAAQ,qBAAqB,OAAO,YAAY;AAChD,cAAM,QAAQ;AACd,cAAM,UAAU;AAChB,eAAO;AAAA,MACX;AACE,eAAS,WAAW,UAAU,iBAAiB,UAAU;AACvD,iBAAS,QAAQ;AACjB,YAAI,CAAC;AACH,iBAAQ,SAAS,SAAS,SAAU;AACtC,mBAAW,SAAS;AACpB,YAAI,SAAS;AACX,iBACG,WAAW,SAAS,OACrB,WAAW,mBACL,SAAS,SAAS,UAAW,mBAC/B;AAER,iBAAS,SAAS;AAClB,eAAO;AAAA,MACX;AACE,eAAS,iBAAiB,UAAU;AAClC,kCACE,SAAS,SAAS,cACjB,SAAS,SAAS;AACrB,eAAO;AAAA,MACX;AACE,eAAS,eAAe,aAAa,SAAS,aAAa,OAAO;AAChE,YAAI,SAAS,WAAW,MAAM,QAAQ;AACpC,iBACG,UAAU,oBAAoB,aAAa,YAAY,MAAM,KAAK,GAClE,QAAQ,SAAS,aAClB;AAEJ,kBAAU,SAAS,SAAS,WAAW;AACvC,gBAAQ,SAAS;AACjB,eAAO;AAAA,MACX;AACE,eAAS,cAAc,aAAa,SAAS,SAAS,OAAO;AAC3D,YAAI,cAAc,QAAQ;AAC1B,YAAI,gBAAgB;AAClB,iBAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA,QAAQ,MAAM;AAAA,YACd;AAAA,YACA,QAAQ;AAAA;AAEZ,YACE,SAAS,YACR,QAAQ,gBAAgB,eACtB,aAAa,OAAO,eACnB,SAAS,eACT,YAAY,aAAa,mBACzB,YAAY,WAAW,MAAM,QAAQ;AAEzC,iBACG,UAAU,SAAS,SAAS,QAAQ,KAAK,GAC1C,UAAU,SAAS,OAAO,GACzB,QAAQ,SAAS,aAClB;AAEJ,kBAAU;AAAA,UACR,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR;AAAA,UACA,YAAY;AAAA,UACZ;AAAA;AAEF,kBAAU,SAAS,OAAO;AAC1B,gBAAQ,SAAS;AACjB,eAAO;AAAA,MACX;AACE,eAAS,aAAa,aAAa,SAAS,QAAQ,OAAO;AACzD,YACE,SAAS,WACT,MAAM,QAAQ,OACd,QAAQ,UAAU,kBAAkB,OAAO,iBAC3C,QAAQ,UAAU,mBAAmB,OAAO;AAE5C,iBACG,UAAU,sBAAsB,QAAQ,YAAY,MAAM,KAAK,GAC/D,QAAQ,SAAS,aAClB;AAEJ,kBAAU,SAAS,SAAS,OAAO,YAAY,CAAA,CAAE;AACjD,gBAAQ,SAAS;AACjB,eAAO;AAAA,MACX;AACE,eAAS,eAAe,aAAa,SAAS,UAAU,OAAO,KAAK;AAClE,YAAI,SAAS,WAAW,MAAM,QAAQ;AACpC,iBACG,UAAU;AAAA,YACT;AAAA,YACA,YAAY;AAAA,YACZ;AAAA,YACA;AAAA,aAED,QAAQ,SAAS,aAClB;AAEJ,kBAAU,SAAS,SAAS,QAAQ;AACpC,gBAAQ,SAAS;AACjB,eAAO;AAAA,MACX;AACE,eAAS,YAAY,aAAa,UAAU,OAAO;AACjD,YACG,aAAa,OAAO,YAAY,OAAO,YACxC,aAAa,OAAO,YACpB,aAAa,OAAO;AAEpB,iBACG,WAAW;AAAA,YACV,KAAK;AAAA,YACL,YAAY;AAAA,YACZ;AAAA,aAED,SAAS,SAAS,aACnB;AAEJ,YAAI,aAAa,OAAO,YAAY,SAAS,UAAU;AACrD,kBAAQ,SAAS,UAAQ;AAAA,YACvB,KAAK;AACH,qBACG,QAAQ;AAAA,gBACP,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT;AAAA,gBACA,YAAY;AAAA,gBACZ;AAAA,iBAEF,UAAU,OAAO,QAAQ,GACxB,MAAM,SAAS,aAChB;AAAA,YAEJ,KAAK;AACH,qBACG,WAAW;AAAA,gBACV;AAAA,gBACA,YAAY;AAAA,gBACZ;AAAA,iBAED,SAAS,SAAS,aACnB;AAAA,YAEJ,KAAK;AACH,qBACG,WAAW,YAAY,QAAQ,GAChC,YAAY,aAAa,UAAU,KAAK;AAAA,UAEpD;AACM,cAAI,YAAY,QAAQ,KAAK,cAAc,QAAQ;AACjD,mBACG,WAAW;AAAA,cACV;AAAA,cACA,YAAY;AAAA,cACZ;AAAA,cACA;AAAA,eAED,SAAS,SAAS,aACnB;AAEJ,cAAI,eAAe,OAAO,SAAS;AACjC,mBAAO,YAAY,aAAa,eAAe,QAAQ,GAAG,KAAK;AACjE,cAAI,SAAS,aAAa;AACxB,mBAAO;AAAA,cACL;AAAA,cACA,gCAAgC,aAAa,QAAQ;AAAA,cACrD;AAAA;AAEJ,uCAA6B,aAAa,QAAQ;AAAA,QACxD;AACI,eAAO;AAAA,MACX;AACE,eAAS,WAAW,aAAa,UAAU,UAAU,OAAO;AAC1D,YAAI,MAAM,SAAS,WAAW,SAAS,MAAM;AAC7C,YACG,aAAa,OAAO,YAAY,OAAO,YACxC,aAAa,OAAO,YACpB,aAAa,OAAO;AAEpB,iBAAO,SAAS,MACZ,OACA,eAAe,aAAa,UAAU,KAAK,UAAU,KAAK;AAChE,YAAI,aAAa,OAAO,YAAY,SAAS,UAAU;AACrD,kBAAQ,SAAS,UAAQ;AAAA,YACvB,KAAK;AACH,qBAAO,SAAS,QAAQ,MACpB,cAAc,aAAa,UAAU,UAAU,KAAK,IACpD;AAAA,YACN,KAAK;AACH,qBAAO,SAAS,QAAQ,MACpB,aAAa,aAAa,UAAU,UAAU,KAAK,IACnD;AAAA,YACN,KAAK;AACH,qBACG,WAAW,YAAY,QAAQ,GAChC,WAAW,aAAa,UAAU,UAAU,KAAK;AAAA,UAE7D;AACM,cAAI,YAAY,QAAQ,KAAK,cAAc,QAAQ;AACjD,mBAAO,SAAS,MACZ,OACA,eAAe,aAAa,UAAU,UAAU,OAAO,IAAI;AACjE,cAAI,eAAe,OAAO,SAAS;AACjC,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA,eAAe,QAAQ;AAAA,cACvB;AAAA;AAEJ,cAAI,SAAS,aAAa;AACxB,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA,gCAAgC,aAAa,QAAQ;AAAA,cACrD;AAAA;AAEJ,uCAA6B,aAAa,QAAQ;AAAA,QACxD;AACI,eAAO;AAAA,MACX;AACE,eAAS,cACP,kBACA,aACA,QACA,UACA,OACA;AACA,YACG,aAAa,OAAO,YAAY,OAAO,YACxC,aAAa,OAAO,YACpB,aAAa,OAAO;AAEpB,iBACG,mBAAmB,iBAAiB,IAAI,MAAM,KAAK,MACpD,eAAe,aAAa,kBAAkB,KAAK,UAAU,KAAK;AAEtE,YAAI,aAAa,OAAO,YAAY,SAAS,UAAU;AACrD,kBAAQ,SAAS,UAAQ;AAAA,YACvB,KAAK;AACH,qBACG,mBACC,iBAAiB;AAAA,gBACf,SAAS,SAAS,MAAM,SAAS,SAAS;AAAA,cAC1D,KAAmB,MACP,cAAc,aAAa,kBAAkB,UAAU,KAAK;AAAA,YAEhE,KAAK;AACH,qBACG,mBACC,iBAAiB;AAAA,gBACf,SAAS,SAAS,MAAM,SAAS,SAAS;AAAA,cAC1D,KAAmB,MACP,aAAa,aAAa,kBAAkB,UAAU,KAAK;AAAA,YAE/D,KAAK;AACH,qBACG,WAAW,YAAY,QAAQ,GAChC;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACd;AAAA,UAEA;AACM,cAAI,YAAY,QAAQ,KAAK,cAAc,QAAQ;AACjD,mBACG,mBAAmB,iBAAiB,IAAI,MAAM,KAAK,MACpD,eAAe,aAAa,kBAAkB,UAAU,OAAO,IAAI;AAEvE,cAAI,eAAe,OAAO,SAAS;AACjC,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA,eAAe,QAAQ;AAAA,cACvB;AAAA;AAEJ,cAAI,SAAS,aAAa;AACxB,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA,gCAAgC,aAAa,QAAQ;AAAA,cACrD;AAAA;AAEJ,uCAA6B,aAAa,QAAQ;AAAA,QACxD;AACI,eAAO;AAAA,MACX;AACE,eAAS,uBACP,aACA,mBACA,aACA,OACA;AACA,iBACM,sBAAsB,MACxB,mBAAmB,MACnB,WAAW,mBACX,SAAU,oBAAoB,GAC9B,eAAe,MACjB,SAAS,YAAY,SAAS,YAAY,QAC1C,UACA;AACA,mBAAS,QAAQ,UACX,eAAe,UAAY,WAAW,QACvC,eAAe,SAAS;AAC7B,cAAI,WAAW;AAAA,YACb;AAAA,YACA;AAAA,YACA,YAAY,MAAM;AAAA,YAClB;AAAA;AAEF,cAAI,SAAS,UAAU;AACrB,qBAAS,aAAa,WAAW;AACjC;AAAA,UACR;AACM,oCACE,YACA,SAAS,SAAS,aAClB,YAAY,aAAa,QAAQ;AACnC,8BAAoB,WAAW,UAAU,mBAAmB,MAAM;AAClE,mBAAS,mBACJ,sBAAsB,WACtB,iBAAiB,UAAU;AAChC,6BAAmB;AACnB,qBAAW;AAAA,QACjB;AACI,YAAI,WAAW,YAAY;AACzB,iBACE,wBAAwB,aAAa,QAAQ,GAC7C,eAAe,aAAa,aAAa,MAAM,GAC/C;AAEJ,YAAI,SAAS,UAAU;AACrB,iBAAO,SAAS,YAAY,QAAQ;AAClC,YAAC,WAAW,YAAY,aAAa,YAAY,MAAM,GAAG,KAAK,GAC7D,SAAS,aACL,oBAAoB;AAAA,cACpB;AAAA,cACA;AAAA,cACA;AAAA,eAEF,SAAS,mBACJ,sBAAsB,WACtB,iBAAiB,UAAU,UAC/B,mBAAmB;AAC1B,yBAAe,aAAa,aAAa,MAAM;AAC/C,iBAAO;AAAA,QACb;AACI,aACE,WAAW,qBAAqB,QAAQ,GACxC,SAAS,YAAY,QACrB;AAEA,UAAC,eAAe;AAAA,YACd;AAAA,YACA;AAAA,YACA;AAAA,YACA,YAAY,MAAM;AAAA,YAClB;AAAA,aAEA,SAAS,iBACN,0BACC,SAAS,aAAa,aACtB,SAAS;AAAA,YACP,SAAS,aAAa,MAAM,SAAS,aAAa;AAAA,aAErD,oBAAoB;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,aAEF,SAAS,mBACJ,sBAAsB,eACtB,iBAAiB,UAAU,cAC/B,mBAAmB;AAC1B,kCACE,SAAS,QAAQ,SAAU,OAAO;AAChC,iBAAO,YAAY,aAAa,KAAK;AAAA,QAC7C,CAAO;AACH,uBAAe,aAAa,aAAa,MAAM;AAC/C,eAAO;AAAA,MACX;AACE,eAAS,0BACP,aACA,mBACA,aACA,OACA;AACA,YAAI,QAAQ,YAAa,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAChE,iBACM,sBAAsB,MACxB,mBAAmB,MACnB,WAAW,mBACX,SAAU,oBAAoB,GAC9B,eAAe,MACf,OAAO,YAAY,KAAI,GACzB,SAAS,YAAY,CAAC,KAAK,MAC3B,UAAU,OAAO,YAAY,KAAI,GACjC;AACA,mBAAS,QAAQ,UACX,eAAe,UAAY,WAAW,QACvC,eAAe,SAAS;AAC7B,cAAI,WAAW,WAAW,aAAa,UAAU,KAAK,OAAO,KAAK;AAClE,cAAI,SAAS,UAAU;AACrB,qBAAS,aAAa,WAAW;AACjC;AAAA,UACR;AACM,oCACE,YACA,SAAS,SAAS,aAClB,YAAY,aAAa,QAAQ;AACnC,8BAAoB,WAAW,UAAU,mBAAmB,MAAM;AAClE,mBAAS,mBACJ,sBAAsB,WACtB,iBAAiB,UAAU;AAChC,6BAAmB;AACnB,qBAAW;AAAA,QACjB;AACI,YAAI,KAAK;AACP,iBACE,wBAAwB,aAAa,QAAQ,GAC7C,eAAe,aAAa,aAAa,MAAM,GAC/C;AAEJ,YAAI,SAAS,UAAU;AACrB,iBAAO,CAAC,KAAK,MAAM,UAAU,OAAO,YAAY,KAAI;AAClD,YAAC,OAAO,YAAY,aAAa,KAAK,OAAO,KAAK,GAChD,SAAS,SACL,oBAAoB,WAAW,MAAM,mBAAmB,MAAM,GAChE,SAAS,mBACJ,sBAAsB,OACtB,iBAAiB,UAAU,MAC/B,mBAAmB;AAC1B,yBAAe,aAAa,aAAa,MAAM;AAC/C,iBAAO;AAAA,QACb;AACI,aACE,WAAW,qBAAqB,QAAQ,GACxC,CAAC,KAAK,MACN,UAAU,OAAO,YAAY,KAAI;AAEjC,UAAC,OAAO,cAAc,UAAU,aAAa,QAAQ,KAAK,OAAO,KAAK,GACpE,SAAS,SACN,0BACC,SAAS,KAAK,aACd,SAAS,OAAO,SAAS,KAAK,MAAM,SAAS,KAAK,GAAG,GACtD,oBAAoB,WAAW,MAAM,mBAAmB,MAAM,GAC/D,SAAS,mBACJ,sBAAsB,OACtB,iBAAiB,UAAU,MAC/B,mBAAmB;AAC1B,kCACE,SAAS,QAAQ,SAAU,OAAO;AAChC,iBAAO,YAAY,aAAa,KAAK;AAAA,QAC7C,CAAO;AACH,uBAAe,aAAa,aAAa,MAAM;AAC/C,eAAO;AAAA,MACX;AACE,eAAS,yBACP,aACA,mBACA,UACA,OACA;AACA,qBAAa,OAAO,YAClB,SAAS,YACT,SAAS,SAAS,uBAClB,SAAS,SAAS,QACjB,WAAW,SAAS,MAAM;AAC7B,YAAI,aAAa,OAAO,YAAY,SAAS,UAAU;AACrD,kBAAQ,SAAS,UAAQ;AAAA,YACvB,KAAK;AACH,iBAAG;AACD,yBAAS,MAAM,SAAS,KAAK,SAAS,qBAAqB;AACzD,sBAAI,kBAAkB,QAAQ,KAAK;AACjC,0BAAM,SAAS;AACf,wBAAI,QAAQ,qBAAqB;AAC/B,0BAAI,MAAM,kBAAkB,KAAK;AAC/B;AAAA,0BACE;AAAA,0BACA,kBAAkB;AAAA;AAEpB,gCAAQ;AAAA,0BACN;AAAA,0BACA,SAAS,MAAM;AAAA;AAEjB,8BAAM,SAAS;AACf,sCAAc;AACd,8BAAM;AAAA,sBAC1B;AAAA,oBACA,WACkB,kBAAkB,gBAAgB,OACjC,aAAa,OAAO,OACnB,SAAS,OACT,IAAI,aAAa,mBACjB,YAAY,GAAG,MAAM,kBAAkB,MACzC;AACA;AAAA,wBACE;AAAA,wBACA,kBAAkB;AAAA;AAEpB,8BAAQ,SAAS,mBAAmB,SAAS,KAAK;AAClD,gCAAU,OAAO,QAAQ;AACzB,4BAAM,SAAS;AACf,oCAAc;AACd,4BAAM;AAAA,oBACxB;AACgB,4CAAwB,aAAa,iBAAiB;AACtD;AAAA,kBAChB,MAAqB,aAAY,aAAa,iBAAiB;AACjD,sCAAoB,kBAAkB;AAAA,gBACpD;AACY,yBAAS,SAAS,uBACZ,QAAQ;AAAA,kBACR,SAAS,MAAM;AAAA,kBACf,YAAY;AAAA,kBACZ;AAAA,kBACA,SAAS;AAAA,mBAEV,MAAM,SAAS,aACf,cAAc,UACb,QAAQ;AAAA,kBACR,SAAS;AAAA,kBACT,SAAS;AAAA,kBACT,SAAS;AAAA,kBACT;AAAA,kBACA,YAAY;AAAA,kBACZ;AAAA,mBAEF,UAAU,OAAO,QAAQ,GACxB,MAAM,SAAS,aACf,cAAc;AAAA,cAC/B;AACU,qBAAO,iBAAiB,WAAW;AAAA,YACrC,KAAK;AACH,iBAAG;AACD,qBAAK,MAAM,SAAS,KAAK,SAAS,qBAAqB;AACrD,sBAAI,kBAAkB,QAAQ;AAC5B,wBACE,MAAM,kBAAkB,OACxB,kBAAkB,UAAU,kBAC1B,SAAS,iBACX,kBAAkB,UAAU,mBAC1B,SAAS,gBACX;AACA;AAAA,wBACE;AAAA,wBACA,kBAAkB;AAAA;AAEpB,8BAAQ,SAAS,mBAAmB,SAAS,YAAY,CAAA,CAAE;AAC3D,4BAAM,SAAS;AACf,oCAAc;AACd,4BAAM;AAAA,oBACxB,OAAuB;AACL,8CAAwB,aAAa,iBAAiB;AACtD;AAAA,oBAClB;AAAA,sBACmB,aAAY,aAAa,iBAAiB;AAC/C,sCAAoB,kBAAkB;AAAA,gBACpD;AACY,wBAAQ,sBAAsB,UAAU,YAAY,MAAM,KAAK;AAC/D,sBAAM,SAAS;AACf,8BAAc;AAAA,cAC1B;AACU,qBAAO,iBAAiB,WAAW;AAAA,YACrC,KAAK;AACH,qBACG,WAAW,YAAY,QAAQ,GAChC;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACd;AAAA,UAEA;AACM,cAAI,YAAY,QAAQ;AACtB,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAEJ,cAAI,cAAc,QAAQ,GAAG;AAC3B,kBAAM,cAAc,QAAQ;AAC5B,gBAAI,eAAe,OAAO,IAAK,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACtE,uBAAW,IAAI,KAAK,QAAQ;AAC5B,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;UAEV;AACM,cAAI,eAAe,OAAO,SAAS;AACjC,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA,eAAe,QAAQ;AAAA,cACvB;AAAA;AAEJ,cAAI,SAAS,aAAa;AACxB,mBAAO;AAAA,cACL;AAAA,cACA;AAAA,cACA,gCAAgC,aAAa,QAAQ;AAAA,cACrD;AAAA;AAEJ,uCAA6B,aAAa,QAAQ;AAAA,QACxD;AACI,eAAQ,aAAa,OAAO,YAAY,OAAO,YAC7C,aAAa,OAAO,YACpB,aAAa,OAAO,YAChB,WAAW,KAAK,UAClB,SAAS,qBAAqB,MAAM,kBAAkB,OACjD,wBAAwB,aAAa,kBAAkB,OAAO,GAC9D,QAAQ,SAAS,mBAAmB,QAAQ,GAC5C,MAAM,SAAS,aACf,cAAc,UACd,wBAAwB,aAAa,iBAAiB,GACtD,QAAQ,oBAAoB,UAAU,YAAY,MAAM,KAAK,GAC7D,MAAM,SAAS,aACf,cAAc,QACnB,iBAAiB,WAAW,KAC5B,wBAAwB,aAAa,iBAAiB;AAAA,MAC9D;AACE,aAAO,SAAU,aAAa,mBAAmB,UAAU,OAAO;AAChE,YAAI;AACF,mCAAyB;AACzB,cAAI,kBAAkB;AAAA,YACpB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF,4BAAkB;AAClB,iBAAO;AAAA,QACb,SAAa,GAAG;AACV,cAAI,MAAM,qBAAqB,MAAM,wBAAyB,OAAM;AACpE,cAAI,QAAQ,qBAAqB,IAAI,GAAG,MAAM,YAAY,IAAI;AAC9D,gBAAM,QAAQ;AACd,gBAAM,SAAS;AACf,iBAAO;AAAA,QACb,UAAK;AAAA,QACL;AAAA,MACA;AAAA,IACA;AACA,QAAI,uBAAuB,sBAAsB,IAAE,GACjD,mBAAmB,sBAAsB,KAAE,GAC3C,iBAAiB;AACnB,aAAS,sBAAsB,OAAO;AACpC,YAAM,cAAc;AAAA,QAClB,WAAW,MAAM;AAAA,QACjB,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,QAAQ,EAAE,SAAS,MAAM,OAAO,GAAG,iBAAiB,KAAI;AAAA,QACxD,WAAW;AAAA;IAEf;AACA,aAAS,iBAAiB,SAASA,iBAAgB;AACjD,gBAAU,QAAQ;AAClB,MAAAA,gBAAe,gBAAgB,YAC5BA,gBAAe,cAAc;AAAA,QAC5B,WAAW,QAAQ;AAAA,QACnB,iBAAiB,QAAQ;AAAA,QACzB,gBAAgB,QAAQ;AAAA,QACxB,QAAQ,QAAQ;AAAA,QAChB,WAAW;AAAA,MACjB;AAAA,IACA;AACA,aAAS,aAAa,MAAM;AAC1B,aAAO,EAAE,MAAY,KAAK,GAAG,SAAS,MAAM,UAAU,MAAM,MAAM,KAAI;AAAA,IACxE;AACA,aAAS,cAAc,OAAO,QAAQ,MAAM;AAC1C,UAAI,cAAc,MAAM;AACxB,UAAI,SAAS,YAAa,QAAO;AACjC,oBAAc,YAAY;AAC1B,UAAI,OAAO,mBAAmB,IAAI;AAChC,YAAI,UAAU,YAAY;AAC1B,iBAAS,UACJ,OAAO,OAAO,UACb,OAAO,OAAO,QAAQ,MAAQ,QAAQ,OAAO;AACnD,oBAAY,UAAU;AACtB,iBAAS,uBAAuB,KAAK;AACrC,sCAA8B,OAAO,MAAM,IAAI;AAC/C,eAAO;AAAA,MACX;AACE,sBAAgB,OAAO,aAAa,QAAQ,IAAI;AAChD,aAAO,uBAAuB,KAAK;AAAA,IACrC;AACA,aAAS,oBAAoBE,OAAM,OAAO,MAAM;AAC9C,cAAQ,MAAM;AACd,UAAI,SAAS,UAAW,QAAQ,MAAM,QAAS,OAAO,OAAO,WAAW;AACtE,YAAI,aAAa,MAAM;AACvB,sBAAcA,MAAK;AACnB,gBAAQ;AACR,cAAM,QAAQ;AACd,0BAAkBA,OAAM,IAAI;AAAA,MAChC;AAAA,IACA;AACA,aAAS,sBAAsBF,iBAAgB,gBAAgB;AAC7D,UAAI,QAAQA,gBAAe,aACzB,UAAUA,gBAAe;AAC3B,UACE,SAAS,YACP,UAAU,QAAQ,aAAc,UAAU,UAC5C;AACA,YAAI,WAAW,MACb,UAAU;AACZ,gBAAQ,MAAM;AACd,YAAI,SAAS,OAAO;AAClB,aAAG;AACD,gBAAI,QAAQ;AAAA,cACV,MAAM,MAAM;AAAA,cACZ,KAAK,MAAM;AAAA,cACX,SAAS,MAAM;AAAA,cACf,UAAU;AAAA,cACV,MAAM;AAAA;AAER,qBAAS,UACJ,WAAW,UAAU,QACrB,UAAU,QAAQ,OAAO;AAC9B,oBAAQ,MAAM;AAAA,UACtB,SAAe,SAAS;AAClB,mBAAS,UACJ,WAAW,UAAU,iBACrB,UAAU,QAAQ,OAAO;AAAA,QACpC,MAAW,YAAW,UAAU;AAC5B,gBAAQ;AAAA,UACN,WAAW,QAAQ;AAAA,UACnB,iBAAiB;AAAA,UACjB,gBAAgB;AAAA,UAChB,QAAQ,QAAQ;AAAA,UAChB,WAAW,QAAQ;AAAA;AAErB,QAAAA,gBAAe,cAAc;AAC7B;AAAA,MACJ;AACE,MAAAA,kBAAiB,MAAM;AACvB,eAASA,kBACJ,MAAM,kBAAkB,iBACxBA,gBAAe,OAAO;AAC3B,YAAM,iBAAiB;AAAA,IACzB;AACA,QAAI,kCAAkC;AACtC,aAAS,8CAA8C;AACrD,UAAI,iCAAiC;AACnC,YAAI,0BAA0B;AAC9B,YAAI,SAAS,wBAAyB,OAAM;AAAA,MAChD;AAAA,IACA;AACA,aAAS,mBACP,yBACA,OACA,mBACAG,cACA;AACA,wCAAkC;AAClC,UAAI,QAAQ,wBAAwB;AACpC,uBAAiB;AACjB,UAAI,kBAAkB,MAAM,iBAC1B,iBAAiB,MAAM,gBACvB,eAAe,MAAM,OAAO;AAC9B,UAAI,SAAS,cAAc;AACzB,cAAM,OAAO,UAAU;AACvB,YAAI,oBAAoB,cACtB,qBAAqB,kBAAkB;AACzC,0BAAkB,OAAO;AACzB,iBAAS,iBACJ,kBAAkB,qBAClB,eAAe,OAAO;AAC3B,yBAAiB;AACjB,YAAI,UAAU,wBAAwB;AACtC,iBAAS,YACL,UAAU,QAAQ,aACnB,eAAe,QAAQ,gBACxB,iBAAiB,mBACd,SAAS,eACL,QAAQ,kBAAkB,qBAC1B,aAAa,OAAO,oBACxB,QAAQ,iBAAiB;AAAA,MAClC;AACE,UAAI,SAAS,iBAAiB;AAC5B,YAAI,WAAW,MAAM;AACrB,yBAAiB;AACjB,kBAAU,qBAAqB,oBAAoB;AACnD,uBAAe;AACf,WAAG;AACD,cAAI,aAAa,aAAa,OAAO,YACnC,iBAAiB,eAAe,aAAa;AAC/C,cACE,kBACK,gCAAgC,gBAAgB,cAChDA,eAAc,gBAAgB,YACnC;AACA,kBAAM,cACJ,eAAe,yBACd,kCAAkC;AACrC,qBAAS,YACN,UAAU,QAAQ,OACjB;AAAA,cACE,MAAM;AAAA,cACN,KAAK,aAAa;AAAA,cAClB,SAAS,aAAa;AAAA,cACtB,UAAU;AAAA,cACV,MAAM;AAAA,YACpB;AACQ,eAAG;AACD,kBAAIH,kBAAiB,yBACnB,SAAS;AACX,2BAAa;AACb,kBAAI,WAAW;AACf,sBAAQ,OAAO,KAAG;AAAA,gBAChB,KAAK;AACH,kBAAAA,kBAAiB,OAAO;AACxB,sBAAI,eAAe,OAAOA,iBAAgB;AACxC,+BAAWA,gBAAe,KAAK,UAAU,UAAU,UAAU;AAC7D,0BAAM;AAAA,kBACtB;AACc,6BAAWA;AACX,wBAAM;AAAA,gBACR,KAAK;AACH,kBAAAA,gBAAe,QAASA,gBAAe,QAAQ,SAAU;AAAA,gBAC3D,KAAK;AACH,kBAAAA,kBAAiB,OAAO;AACxB,+BACE,eAAe,OAAOA,kBAClBA,gBAAe,KAAK,UAAU,UAAU,UAAU,IAClDA;AACN,sBAAI,SAAS,cAAc,WAAW,WAAY,OAAM;AACxD,6BAAW,OAAO,IAAI,UAAU,UAAU;AAC1C,wBAAM;AAAA,gBACR,KAAK;AACH,mCAAiB;AAAA,cAC/B;AAAA,YACA;AACQ,yBAAa,aAAa;AAC1B,qBAAS,eACL,wBAAwB,SAAS,IACnC,mBAAmB,wBAAwB,SAAS,OACnD,iBAAiB,MAAM,WACxB,SAAS,iBACJ,MAAM,YAAY,CAAC,UAAU,IAC9B,eAAe,KAAK,UAAU;AAAA,UAC5C;AACQ,YAAC,iBAAiB;AAAA,cAChB,MAAM;AAAA,cACN,KAAK,aAAa;AAAA,cAClB,SAAS,aAAa;AAAA,cACtB,UAAU,aAAa;AAAA,cACvB,MAAM;AAAA,eAEN,SAAS,WACH,qBAAqB,UAAU,gBAChC,oBAAoB,YACpB,UAAU,QAAQ,OAAO,gBAC7B,kBAAkB;AACvB,yBAAe,aAAa;AAC5B,cAAI,SAAS;AACX,gBAAM,eAAe,MAAM,OAAO,SAAU,SAAS;AACnD;AAAA;AAEA,cAAC,iBAAiB,cACf,eAAe,eAAe,MAC9B,eAAe,OAAO,MACtB,MAAM,iBAAiB,gBACvB,MAAM,OAAO,UAAU;AAAA,QACpC,SAAa;AACT,iBAAS,YAAY,oBAAoB;AACzC,cAAM,YAAY;AAClB,cAAM,kBAAkB;AACxB,cAAM,iBAAiB;AACvB,iBAAS,oBAAoB,MAAM,OAAO,QAAQ;AAClD,0CAAkC;AAClC,gCAAwB,QAAQ;AAChC,gCAAwB,gBAAgB;AAAA,MAC5C;AAAA,IACA;AACA,aAAS,aAAa,UAAU,SAAS;AACvC,UAAI,eAAe,OAAO;AACxB,cAAM,MAAM,uBAAuB,KAAK,QAAQ,CAAC;AACnD,eAAS,KAAK,OAAO;AAAA,IACvB;AACA,aAAS,gBAAgB,aAAa,SAAS;AAC7C,UAAI,YAAY,YAAY;AAC5B,UAAI,SAAS;AACX,aACE,YAAY,YAAY,MAAM,cAAc,GAC5C,cAAc,UAAU,QACxB;AAEA,uBAAa,UAAU,WAAW,GAAG,OAAO;AAAA,IAClD;AACA,QAAI,+BAA+B,aAAa,IAAI,GAClD,iCAAiC,aAAa,CAAC;AACjD,aAAS,kBAAkB,OAAO,SAAS;AACzC,cAAQ;AACR,WAAK,gCAAgC,KAAK;AAC1C,WAAK,8BAA8B,OAAO;AAC1C,6BAAuB,QAAQ,QAAQ;AAAA,IACzC;AACA,aAAS,4BAA4B;AACnC,WAAK,gCAAgC,oBAAoB;AACzD,WAAK,8BAA8B,6BAA6B,OAAO;AAAA,IACzE;AACA,aAAS,mBAAmB;AAC1B,6BAAuB,+BAA+B;AACtD,UAAI,4BAA4B;AAChC,UAAI,8BAA8B;AAAA,IACpC;AACA,QAAI,6BAA6B,aAAa,IAAI,GAChD,gBAAgB;AAClB,aAAS,+BAA+B,SAAS;AAC/C,UAAI,UAAU,QAAQ;AACtB,WAAK,qBAAqB,oBAAoB,UAAU,CAAC;AACzD,WAAK,4BAA4B,OAAO;AACxC,eAAS,kBACN,SAAS,WAAW,SAAS,6BAA6B,UACtD,gBAAgB,UACjB,SAAS,QAAQ,kBAAkB,gBAAgB;AAAA,IAC3D;AACA,aAAS,sCAAsC,OAAO;AACpD,WAAK,qBAAqB,oBAAoB,OAAO;AACrD,WAAK,4BAA4B,KAAK;AACtC,eAAS,kBAAkB,gBAAgB;AAAA,IAC7C;AACA,aAAS,6BAA6B,OAAO;AAC3C,aAAO,MAAM,OACR,KAAK,qBAAqB,oBAAoB,OAAO,GACtD,KAAK,4BAA4B,KAAK,GACtC,SAAS,kBAAkB,gBAAgB,UAC3C,4BAAiC;AAAA,IACvC;AACA,aAAS,8BAA8B;AACrC,WAAK,qBAAqB,oBAAoB,OAAO;AACrD,WAAK,4BAA4B,2BAA2B,OAAO;AAAA,IACrE;AACA,aAAS,mBAAmB,OAAO;AACjC,UAAI,0BAA0B;AAC9B,wBAAkB,UAAU,gBAAgB;AAC5C,UAAI,mBAAmB;AAAA,IACzB;AACA,QAAI,sBAAsB,aAAa,CAAC;AACxC,aAAS,mBAAmB,KAAK;AAC/B,eAAS,OAAO,KAAK,SAAS,QAAQ;AACpC,YAAI,OAAO,KAAK,KAAK;AACnB,cAAI,QAAQ,KAAK;AACjB,cACE,SAAS,UACP,QAAQ,MAAM,YAChB,SAAS,SACP,0BAA0B,KAAK,KAC/B,2BAA2B,KAAK;AAElC,mBAAO;AAAA,QACf,WACM,OAAO,KAAK,QACX,eAAe,KAAK,cAAc,eACjC,gBAAgB,KAAK,cAAc,eACnC,gCAAgC,KAAK,cAAc,eACnD,eAAe,KAAK,cAAc,cACpC;AACA,cAAI,OAAO,KAAK,QAAQ,KAAM,QAAO;AAAA,QAC3C,WAAe,SAAS,KAAK,OAAO;AAC9B,eAAK,MAAM,SAAS;AACpB,iBAAO,KAAK;AACZ;AAAA,QACN;AACI,YAAI,SAAS,IAAK;AAClB,eAAO,SAAS,KAAK,WAAW;AAC9B,cAAI,SAAS,KAAK,UAAU,KAAK,WAAW,IAAK,QAAO;AACxD,iBAAO,KAAK;AAAA,QAClB;AACI,aAAK,QAAQ,SAAS,KAAK;AAC3B,eAAO,KAAK;AAAA,MAChB;AACE,aAAO;AAAA,IACT;AACA,QAAI,cAAc,GAChB,0BAA0B,MAC1B,cAAc,MACd,qBAAqB,MACrB,+BAA+B,OAC/B,6CAA6C,OAC7C,sCAAsC,OACtC,iBAAiB,GACjB,uBAAuB,GACvB,gBAAgB,MAChB,wBAAwB;AAC1B,aAAS,wBAAwB;AAC/B,YAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,IACzC;AACA,aAAS,mBAAmB,UAAU,UAAU;AAC9C,UAAI,SAAS,SAAU,QAAO;AAC9B,eAAS,IAAI,GAAG,IAAI,SAAS,UAAU,IAAI,SAAS,QAAQ;AAC1D,YAAI,CAAC,SAAS,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,EAAG,QAAO;AAClD,aAAO;AAAA,IACT;AACA,aAAS,gBACP,SACAA,iBACA,WACA,OACA,WACA,iBACA;AACA,oBAAc;AACd,gCAA0BA;AAC1B,MAAAA,gBAAe,gBAAgB;AAC/B,MAAAA,gBAAe,cAAc;AAC7B,MAAAA,gBAAe,QAAQ;AACvB,2BAAqB,IACnB,SAAS,WAAW,SAAS,QAAQ,gBACjC,yBACA;AACN,4CAAsC;AACtC,wBAAkB,UAAU,OAAO,SAAS;AAC5C,4CAAsC;AACtC,qDACG,kBAAkB;AAAA,QACjBA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACN;AACE,2BAAqB,OAAO;AAC5B,aAAO;AAAA,IACT;AACA,aAAS,qBAAqB,SAAS;AACrC,2BAAqB,IAAI;AACzB,UAAI,uBAAuB,SAAS,eAAe,SAAS,YAAY;AACxE,oBAAc;AACd,2BAAqB,cAAc,0BAA0B;AAC7D,qCAA+B;AAC/B,6BAAuB;AACvB,sBAAgB;AAChB,UAAI,qBAAsB,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACjE,eAAS,WACP,qBACE,UAAU,QAAQ,cACpB,SAAS,WACP,sBAAsB,OAAO,MAC5B,mBAAmB;AAAA,IAC1B;AACA,aAAS,qBAAqBA,iBAAgB,WAAW,OAAO,WAAW;AACzE,gCAA0BA;AAC1B,UAAI,oBAAoB;AACxB,SAAG;AACD,uDAA+C,gBAAgB;AAC/D,+BAAuB;AACvB,qDAA6C;AAC7C,YAAI,MAAM,kBAAmB,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACpE,6BAAqB;AACrB,6BAAqB,cAAc;AACnC,YAAI,QAAQA,gBAAe,aAAa;AACtC,cAAI,WAAWA,gBAAe;AAC9B,mBAAS,aAAa;AACtB,mBAAS,SAAS;AAClB,mBAAS,SAAS;AAClB,kBAAQ,SAAS,cAAc,SAAS,UAAU,QAAQ;AAAA,QAChE;AACI,6BAAqB,IAAI;AACzB,mBAAW,UAAU,OAAO,SAAS;AAAA,MACzC,SAAW;AACT,aAAO;AAAA,IACT;AACA,aAAS,+BAA+B;AACtC,UAAI,aAAa,qBAAqB,GACpC,gBAAgB,WAAW,SAAQ,EAAG,CAAC;AACzC,sBACE,eAAe,OAAO,cAAc,OAChC,YAAY,aAAa,IACzB;AACN,mBAAa,WAAW,SAAQ,EAAG,CAAC;AACpC,OAAC,SAAS,cAAc,YAAY,gBAAgB,UAAU,eAC3D,wBAAwB,SAAS;AACpC,aAAO;AAAA,IACT;AACA,aAAS,uBAAuB;AAC9B,UAAI,kBAAkB,MAAM;AAC5B,uBAAiB;AACjB,aAAO;AAAA,IACT;AACA,aAAS,aAAa,SAASA,iBAAgB,OAAO;AACpD,MAAAA,gBAAe,cAAc,QAAQ;AACrC,MAAAA,gBAAe,SAAS;AACxB,cAAQ,SAAS,CAAC;AAAA,IACpB;AACA,aAAS,mBAAmBA,iBAAgB;AAC1C,UAAI,8BAA8B;AAChC,aACEA,kBAAiBA,gBAAe,eAChC,SAASA,mBAET;AACA,cAAI,QAAQA,gBAAe;AAC3B,mBAAS,UAAU,MAAM,UAAU;AACnC,UAAAA,kBAAiBA,gBAAe;AAAA,QACtC;AACI,uCAA+B;AAAA,MACnC;AACE,oBAAc;AACd,2BAAqB,cAAc,0BAA0B;AAC7D,mDAA6C;AAC7C,6BAAuB,iBAAiB;AACxC,sBAAgB;AAAA,IAClB;AACA,aAAS,0BAA0B;AACjC,UAAI,OAAO;AAAA,QACT,eAAe;AAAA,QACf,WAAW;AAAA,QACX,WAAW;AAAA,QACX,OAAO;AAAA,QACP,MAAM;AAAA;AAER,eAAS,qBACJ,wBAAwB,gBAAgB,qBAAqB,OAC7D,qBAAqB,mBAAmB,OAAO;AACpD,aAAO;AAAA,IACT;AACA,aAAS,2BAA2B;AAClC,UAAI,SAAS,aAAa;AACxB,YAAI,kBAAkB,wBAAwB;AAC9C,0BACE,SAAS,kBAAkB,gBAAgB,gBAAgB;AAAA,MACjE,MAAS,mBAAkB,YAAY;AACrC,UAAI,yBACF,SAAS,qBACL,wBAAwB,gBACxB,mBAAmB;AACzB,UAAI,SAAS;AACX,QAAC,qBAAqB,wBACnB,cAAc;AAAA,WACd;AACH,YAAI,SAAS,iBAAiB;AAC5B,cAAI,SAAS,wBAAwB;AACnC,kBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,gBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,QAC7C;AACI,sBAAc;AACd,0BAAkB;AAAA,UAChB,eAAe,YAAY;AAAA,UAC3B,WAAW,YAAY;AAAA,UACvB,WAAW,YAAY;AAAA,UACvB,OAAO,YAAY;AAAA,UACnB,MAAM;AAAA;AAER,iBAAS,qBACJ,wBAAwB,gBAAgB,qBACvC,kBACD,qBAAqB,mBAAmB,OAAO;AAAA,MACxD;AACE,aAAO;AAAA,IACT;AACA,aAAS,qCAAqC;AAC5C,aAAO,EAAE,YAAY,MAAM,QAAQ,MAAM,QAAQ,MAAM,WAAW,KAAI;AAAA,IACxE;AACA,aAAS,YAAY,UAAU;AAC7B,UAAIO,SAAQ;AACZ,8BAAwB;AACxB,eAAS,kBAAkB,gBAAgB;AAC3C,iBAAW,kBAAkB,eAAe,UAAUA,MAAK;AAC3D,MAAAA,SAAQ;AACR,gBACG,SAAS,qBACNA,OAAM,gBACN,mBAAmB,UACrBA,SAAQA,OAAM,WACf,qBAAqB,IACpB,SAASA,UAAS,SAASA,OAAM,gBAC7B,yBACA;AACR,aAAO;AAAA,IACT;AACA,aAAS,IAAI,QAAQ;AACnB,UAAI,SAAS,UAAU,aAAa,OAAO,QAAQ;AACjD,YAAI,eAAe,OAAO,OAAO,KAAM,QAAO,YAAY,MAAM;AAChE,YAAI,OAAO,aAAa,mBAAoB,QAAO,YAAY,MAAM;AAAA,MACzE;AACE,YAAM,MAAM,uBAAuB,KAAK,OAAO,MAAM,CAAC,CAAC;AAAA,IACzD;AACA,aAAS,aAAa,MAAM;AAC1B,UAAI,YAAY,MACd,cAAc,wBAAwB;AACxC,eAAS,gBAAgB,YAAY,YAAY;AACjD,UAAI,QAAQ,WAAW;AACrB,YAAI,UAAU,wBAAwB;AACtC,iBAAS,YACL,UAAU,QAAQ,aACpB,SAAS,YACL,UAAU,QAAQ,WACpB,QAAQ,YACL,YAAY;AAAA,UACX,MAAM,QAAQ,KAAK,IAAI,SAAU,OAAO;AACtC,mBAAO,MAAM,MAAK;AAAA,UAChC,CAAa;AAAA,UACD,OAAO;AAAA;MAEnB;AACE,cAAQ,cAAc,YAAY,EAAE,MAAM,IAAI,OAAO;AACrD,eAAS,gBACL,cAAc,mCAAkC,GACjD,wBAAwB,cAAc;AACzC,kBAAY,YAAY;AACxB,oBAAc,UAAU,KAAK,UAAU,KAAK;AAC5C,UAAI,WAAW;AACb,aACE,cAAc,UAAU,KAAK,UAAU,KAAK,IAAI,MAAM,IAAI,GAAG,UAAU,GACvE,UAAU,MACV;AAEA,sBAAY,OAAO,IAAI;AAC3B,gBAAU;AACV,aAAO;AAAA,IACT;AACA,aAAS,kBAAkB,OAAO,QAAQ;AACxC,aAAO,eAAe,OAAO,SAAS,OAAO,KAAK,IAAI;AAAA,IACxD;AACA,aAAS,cAAc,SAAS;AAC9B,UAAI,OAAO,yBAAwB;AACnC,aAAO,kBAAkB,MAAM,aAAa,OAAO;AAAA,IACrD;AACA,aAAS,kBAAkB,MAAM,SAAS,SAAS;AACjD,UAAI,QAAQ,KAAK;AACjB,UAAI,SAAS,MAAO,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAC3D,YAAM,sBAAsB;AAC5B,UAAI,YAAY,KAAK,WACnB,eAAe,MAAM;AACvB,UAAI,SAAS,cAAc;AACzB,YAAI,SAAS,WAAW;AACtB,cAAI,YAAY,UAAU;AAC1B,oBAAU,OAAO,aAAa;AAC9B,uBAAa,OAAO;AAAA,QAC1B;AACI,gBAAQ,YAAY,YAAY;AAChC,cAAM,UAAU;AAAA,MACpB;AACE,qBAAe,KAAK;AACpB,UAAI,SAAS,UAAW,MAAK,gBAAgB;AAAA,WACxC;AACH,kBAAU,UAAU;AACpB,YAAI,oBAAqB,YAAY,MACnC,mBAAmB,MACnB,SAAS,SACT,qCAAqC;AACvC,WAAG;AACD,cAAI,aAAa,OAAO,OAAO;AAC/B,cACE,eAAe,OAAO,QACjB,gCAAgC,gBAAgB,cAChD,cAAc,gBAAgB,YACnC;AACA,gBAAI,aAAa,OAAO;AACxB,gBAAI,MAAM;AACR,uBAAS,qBACN,mBAAmB,iBAAiB,OACnC;AAAA,gBACE,MAAM;AAAA,gBACN,YAAY;AAAA,gBACZ,SAAS;AAAA,gBACT,QAAQ,OAAO;AAAA,gBACf,eAAe,OAAO;AAAA,gBACtB,YAAY,OAAO;AAAA,gBACnB,MAAM;AAAA,cACtB,IACY,eAAe,yBACZ,qCAAqC;AAAA,sBAClC,cAAc,gBAAgB,YAAY;AAClD,uBAAS,OAAO;AAChB,6BAAe,yBACZ,qCAAqC;AACxC;AAAA,YACV;AACU,cAAC,aAAa;AAAA,gBACZ,MAAM;AAAA,gBACN,YAAY,OAAO;AAAA,gBACnB,SAAS;AAAA,gBACT,QAAQ,OAAO;AAAA,gBACf,eAAe,OAAO;AAAA,gBACtB,YAAY,OAAO;AAAA,gBACnB,MAAM;AAAA,iBAEN,SAAS,oBACH,oBAAoB,mBAAmB,YACxC,YAAY,gBACZ,mBAAmB,iBAAiB,OAAO,YAC/C,wBAAwB,SAAS,YACjC,kCAAkC;AACvC,yBAAa,OAAO;AACpB,mDACE,QAAQ,cAAc,UAAU;AAClC,2BAAe,OAAO,gBAClB,OAAO,aACP,QAAQ,cAAc,UAAU;AAAA,UAC5C;AACQ,YAAC,aAAa;AAAA,cACZ,MAAM;AAAA,cACN,YAAY,OAAO;AAAA,cACnB,SAAS,OAAO;AAAA,cAChB,QAAQ,OAAO;AAAA,cACf,eAAe,OAAO;AAAA,cACtB,YAAY,OAAO;AAAA,cACnB,MAAM;AAAA,eAEN,SAAS,oBACH,oBAAoB,mBAAmB,YACxC,YAAY,gBACZ,mBAAmB,iBAAiB,OAAO,YAC/C,wBAAwB,SAAS,YACjC,kCAAkC;AACvC,mBAAS,OAAO;AAAA,QACtB,SAAa,SAAS,UAAU,WAAW;AACvC,iBAAS,mBACJ,YAAY,eACZ,iBAAiB,OAAO;AAC7B,YACE,CAAC,SAAS,cAAc,KAAK,aAAa,MACxC,mBAAmB,MACrB,uCACI,UAAU,gCAAiC,SAAS;AAExD,gBAAM;AACR,aAAK,gBAAgB;AACrB,aAAK,YAAY;AACjB,aAAK,YAAY;AACjB,cAAM,oBAAoB;AAAA,MAC9B;AACE,eAAS,cAAc,MAAM,QAAQ;AACrC,aAAO,CAAC,KAAK,eAAe,MAAM,QAAQ;AAAA,IAC5C;AACA,aAAS,gBAAgB,SAAS;AAChC,UAAI,OAAO,yBAAwB,GACjC,QAAQ,KAAK;AACf,UAAI,SAAS,MAAO,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAC3D,YAAM,sBAAsB;AAC5B,UAAI,WAAW,MAAM,UACnB,wBAAwB,MAAM,SAC9B,WAAW,KAAK;AAClB,UAAI,SAAS,uBAAuB;AAClC,cAAM,UAAU;AAChB,YAAI,SAAU,wBAAwB,sBAAsB;AAC5D;AAAG,UAAC,WAAW,QAAQ,UAAU,OAAO,MAAM,GAAK,SAAS,OAAO;AAAA,eAC5D,WAAW;AAClB,iBAAS,UAAU,KAAK,aAAa,MAAM,mBAAmB;AAC9D,aAAK,gBAAgB;AACrB,iBAAS,KAAK,cAAc,KAAK,YAAY;AAC7C,cAAM,oBAAoB;AAAA,MAC9B;AACE,aAAO,CAAC,UAAU,QAAQ;AAAA,IAC5B;AACA,aAAS,wBAAwB,WAAW,aAAa,mBAAmB;AAC1E,UAAI,QAAQ,yBACV,OAAO,yBAAwB,GAC/B,uBAAuB;AACzB,UAAI,sBAAsB;AACxB,YAAI,WAAW,kBAAmB,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACzE,4BAAoB,kBAAiB;AAAA,MACzC,MAAS,qBAAoB,YAAW;AACtC,UAAI,kBAAkB,CAAC;AAAA,SACpB,eAAe,MAAM;AAAA,QACtB;AAAA;AAEF,0BACI,KAAK,gBAAgB,mBAAqB,mBAAmB;AACjE,aAAO,KAAK;AACZ,mBAAa,iBAAiB,KAAK,MAAM,OAAO,MAAM,SAAS,GAAG;AAAA,QAChE;AAAA,MACJ,CAAG;AACD,UACE,KAAK,gBAAgB,eACrB,mBACC,SAAS,sBAAsB,mBAAmB,cAAc,MAAM,GACvE;AACA,cAAM,SAAS;AACf;AAAA,UACE;AAAA,UACA,EAAE,SAAS,OAAM;AAAA,UACjB,oBAAoB;AAAA,YAClB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;UAEF;AAAA;AAEF,YAAI,SAAS,mBAAoB,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACxE,gCACE,OAAO,cAAc,QACrB,0BAA0B,OAAO,aAAa,iBAAiB;AAAA,MACrE;AACE,aAAO;AAAA,IACT;AACA,aAAS,0BAA0B,OAAO,aAAa,kBAAkB;AACvE,YAAM,SAAS;AACf,cAAQ,EAAE,aAA0B,OAAO,iBAAgB;AAC3D,oBAAc,wBAAwB;AACtC,eAAS,eACH,cAAc,mCAAkC,GACjD,wBAAwB,cAAc,aACtC,YAAY,SAAS,CAAC,KAAK,MAC1B,mBAAmB,YAAY,QACjC,SAAS,mBACJ,YAAY,SAAS,CAAC,KAAK,IAC5B,iBAAiB,KAAK,KAAK;AAAA,IACrC;AACA,aAAS,oBAAoB,OAAO,MAAM,cAAc,aAAa;AACnE,WAAK,QAAQ;AACb,WAAK,cAAc;AACnB,6BAAuB,IAAI,KAAK,mBAAmB,KAAK;AAAA,IAC1D;AACA,aAAS,iBAAiB,OAAO,MAAM,WAAW;AAChD,aAAO,UAAU,WAAY;AAC3B,+BAAuB,IAAI,KAAK,mBAAmB,KAAK;AAAA,MAC5D,CAAG;AAAA,IACH;AACA,aAAS,uBAAuB,MAAM;AACpC,UAAI,oBAAoB,KAAK;AAC7B,aAAO,KAAK;AACZ,UAAI;AACF,YAAI,YAAY,kBAAiB;AACjC,eAAO,CAAC,SAAS,MAAM,SAAS;AAAA,MACpC,SAAW,OAAO;AACd,eAAO;AAAA,MACX;AAAA,IACA;AACA,aAAS,mBAAmB,OAAO;AACjC,UAAIL,QAAO,+BAA+B,OAAO,CAAC;AAClD,eAASA,SAAQ,sBAAsBA,OAAM,OAAO,CAAC;AAAA,IACvD;AACA,aAAS,eAAe,cAAc;AACpC,UAAI,OAAO,wBAAuB;AAClC,UAAI,eAAe,OAAO,cAAc;AACtC,YAAI,0BAA0B;AAC9B,uBAAe,wBAAuB;AACtC,YAAI,qCAAqC;AACvC,qCAA2B,IAAE;AAC7B,cAAI;AACF,oCAAuB;AAAA,UAC/B,UAAO;AACC,uCAA2B,KAAE;AAAA,UACrC;AAAA,QACA;AAAA,MACA;AACE,WAAK,gBAAgB,KAAK,YAAY;AACtC,WAAK,QAAQ;AAAA,QACX,SAAS;AAAA,QACT,OAAO;AAAA,QACP,UAAU;AAAA,QACV,qBAAqB;AAAA,QACrB,mBAAmB;AAAA;AAErB,aAAO;AAAA,IACT;AACA,aAAS,qBAAqB,MAAM,SAAS,aAAa,SAAS;AACjE,WAAK,YAAY;AACjB,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,eAAe,OAAO,UAAU,UAAU;AAAA;IAE9C;AACA,aAAS,oBACP,OACA,aACA,iBACA,UACA,SACA;AACA,UAAI,oBAAoB,KAAK,EAAG,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACvE,cAAQ,YAAY;AACpB,UAAI,SAAS,OAAO;AAClB,YAAI,aAAa;AAAA,UACf;AAAA,UACA,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,cAAc;AAAA,UACd,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,WAAW,CAAA;AAAA,UACX,MAAM,SAAU,UAAU;AACxB,uBAAW,UAAU,KAAK,QAAQ;AAAA,UAC1C;AAAA;AAEI,iBAAS,qBAAqB,IAC1B,gBAAgB,IAAE,IACjB,WAAW,eAAe;AAC/B,iBAAS,UAAU;AACnB,0BAAkB,YAAY;AAC9B,iBAAS,mBACH,WAAW,OAAO,YAAY,UAAU,YAC1C,qBAAqB,aAAa,UAAU,MAC1C,WAAW,OAAO,gBAAgB,MACnC,YAAY,UAAU,gBAAgB,OAAO;AAAA,MACtD;AAAA,IACA;AACA,aAAS,qBAAqB,aAAa,MAAM;AAC/C,UAAI,SAAS,KAAK,QAChB,UAAU,KAAK,SACf,YAAY,YAAY;AAC1B,UAAI,KAAK,cAAc;AACrB,YAAI,iBAAiB,qBAAqB,GACxC,oBAAoB,CAAA;AACtB,6BAAqB,IAAI;AACzB,YAAI;AACF,cAAI,cAAc,OAAO,WAAW,OAAO,GACzC,0BAA0B,qBAAqB;AACjD,mBAAS,2BACP,wBAAwB,mBAAmB,WAAW;AACxD,kCAAwB,aAAa,MAAM,WAAW;AAAA,QAC5D,SAAa,OAAO;AACd,wBAAc,aAAa,MAAM,KAAK;AAAA,QAC5C,UAAK;AACC,mBAAS,kBACP,SAAS,kBAAkB,UAC1B,eAAe,QAAQ,kBAAkB,QACzC,qBAAqB,IAAI;AAAA,QAClC;AAAA,MACA;AACI,YAAI;AACF,UAAC,iBAAiB,OAAO,WAAW,OAAO,GACzC,wBAAwB,aAAa,MAAM,cAAc;AAAA,QACjE,SAAa,UAAU;AACjB,wBAAc,aAAa,MAAM,QAAQ;AAAA,QAC/C;AAAA,IACA;AACA,aAAS,wBAAwB,aAAa,MAAM,aAAa;AAC/D,eAAS,eACT,aAAa,OAAO,eACpB,eAAe,OAAO,YAAY,OAC9B,YAAY;AAAA,QACV,SAAU,WAAW;AACnB,0BAAgB,aAAa,MAAM,SAAS;AAAA,QACtD;AAAA,QACQ,SAAU,OAAO;AACf,iBAAO,cAAc,aAAa,MAAM,KAAK;AAAA,QACvD;AAAA,MACA,IACM,gBAAgB,aAAa,MAAM,WAAW;AAAA,IACpD;AACA,aAAS,gBAAgB,aAAa,YAAY,WAAW;AAC3D,iBAAW,SAAS;AACpB,iBAAW,QAAQ;AACnB,4BAAsB,UAAU;AAChC,kBAAY,QAAQ;AACpB,mBAAa,YAAY;AACzB,eAAS,eACL,YAAY,WAAW,MACzB,cAAc,aACT,YAAY,UAAU,QACrB,YAAY,UAAU,MACvB,WAAW,OAAO,WACnB,qBAAqB,aAAa,SAAS;AAAA,IACnD;AACA,aAAS,cAAc,aAAa,YAAY,OAAO;AACrD,UAAI,OAAO,YAAY;AACvB,kBAAY,UAAU;AACtB,UAAI,SAAS,MAAM;AACjB,eAAO,KAAK;AACZ;AACE,UAAC,WAAW,SAAS,YAClB,WAAW,SAAS,OACrB,sBAAsB,UAAU,GAC/B,aAAa,WAAW;AAAA,eACtB,eAAe;AAAA,MAC1B;AACE,kBAAY,SAAS;AAAA,IACvB;AACA,aAAS,sBAAsB,YAAY;AACzC,mBAAa,WAAW;AACxB,eAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,IAAK,EAAA,GAAI,WAAW,CAAC,GAAC;AAAA,IAC/D;AACA,aAAS,mBAAmB,UAAU,UAAU;AAC9C,aAAO;AAAA,IACT;AACA,aAAS,iBAAiB,QAAQ,kBAAkB;AAClD,UAAI,aAAa;AACf,YAAI,eAAe,mBAAmB;AACtC,YAAI,SAAS,cAAc;AACzB,aAAG;AACD,gBAAI,2BAA2B;AAC/B,gBAAI,aAAa;AACf,kBAAI,wBAAwB;AAC1B,mBAAG;AACD,sBAAI,oCAAoC;AACxC,2BACM,oBAAoB,wBACxB,MAAM,kCAAkC,YAExC;AACA,wBAAI,CAAC,mBAAmB;AACtB,0DAAoC;AACpC,4BAAM;AAAA,oBACxB;AACgB,wDAAoC;AAAA,sBAClC,kCAAkC;AAAA;AAEpC,wBAAI,SAAS,mCAAmC;AAC9C,0DAAoC;AACpC,4BAAM;AAAA,oBACxB;AAAA,kBACA;AACc,sCAAoB,kCAAkC;AACtD,sDACE,SAAS,qBAAqB,QAAQ,oBAClC,oCACA;AAAA,gBACpB;AACY,oBAAI,mCAAmC;AACrC,2CAAyB;AAAA,oBACvB,kCAAkC;AAAA;AAEpC,6CACE,SAAS,kCAAkC;AAC7C,wBAAM;AAAA,gBACpB;AAAA,cACA;AACU,uCAAyB,wBAAwB;AAAA,YAC3D;AACQ,uCAA2B;AAAA,UACnC;AACM,uCAA6B,mBAAmB,aAAa,CAAC;AAAA,QACpE;AAAA,MACA;AACE,qBAAe,wBAAuB;AACtC,mBAAa,gBAAgB,aAAa,YAAY;AACtD,iCAA2B;AAAA,QACzB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,UAAU;AAAA,QACV,qBAAqB;AAAA,QACrB,mBAAmB;AAAA;AAErB,mBAAa,QAAQ;AACrB,qBAAe,iBAAiB;AAAA,QAC9B;AAAA,QACA;AAAA,QACA;AAAA;AAEF,+BAAyB,WAAW;AACpC,iCAA2B,eAAe,KAAE;AAC5C,0BAAoB,2BAA2B;AAAA,QAC7C;AAAA,QACA;AAAA,QACA;AAAA,QACA,yBAAyB;AAAA;AAE3B,iCAA2B,wBAAuB;AAClD,0CAAoC;AAAA,QAClC,OAAO;AAAA,QACP,UAAU;AAAA,QACV;AAAA,QACA,SAAS;AAAA;AAEX,+BAAyB,QAAQ;AACjC,qBAAe,oBAAoB;AAAA,QACjC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAEF,wCAAkC,WAAW;AAC7C,+BAAyB,gBAAgB;AACzC,aAAO,CAAC,kBAAkB,cAAc,KAAE;AAAA,IAC5C;AACA,aAAS,kBAAkB,QAAQ;AACjC,UAAI,YAAY,yBAAwB;AACxC,aAAO,sBAAsB,WAAW,aAAa,MAAM;AAAA,IAC7D;AACA,aAAS,sBAAsB,WAAW,kBAAkB,QAAQ;AAClE,yBAAmB;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC;AACH,kBAAY,cAAc,iBAAiB,EAAE,CAAC;AAC9C,UACE,aAAa,OAAO,oBACpB,SAAS,oBACT,eAAe,OAAO,iBAAiB;AAEvC,YAAI;AACF,cAAI,QAAQ,YAAY,gBAAgB;AAAA,QAC9C,SAAa,GAAG;AACV,cAAI,MAAM,kBAAmB,OAAM;AACnC,gBAAM;AAAA,QACZ;AAAA,UACO,SAAQ;AACb,yBAAmB,yBAAwB;AAC3C,UAAI,cAAc,iBAAiB,OACjC,WAAW,YAAY;AACzB,iBAAW,iBAAiB,kBACxB,wBAAwB,SAAS,MACnC;AAAA,QACE;AAAA,QACA,EAAE,SAAS,OAAM;AAAA,QACjB,wBAAwB,KAAK,MAAM,aAAa,MAAM;AAAA,QACtD;AAAA,MACN;AACE,aAAO,CAAC,OAAO,UAAU,SAAS;AAAA,IACpC;AACA,aAAS,wBAAwB,aAAa,QAAQ;AACpD,kBAAY,SAAS;AAAA,IACvB;AACA,aAAS,oBAAoB,QAAQ;AACnC,UAAI,YAAY,yBAAwB,GACtC,mBAAmB;AACrB,UAAI,SAAS;AACX,eAAO,sBAAsB,WAAW,kBAAkB,MAAM;AAClE,+BAAwB;AACxB,kBAAY,UAAU;AACtB,yBAAmB,yBAAwB;AAC3C,UAAI,WAAW,iBAAiB,MAAM;AACtC,uBAAiB,gBAAgB;AACjC,aAAO,CAAC,WAAW,UAAU,KAAE;AAAA,IACjC;AACA,aAAS,iBAAiB,KAAK,MAAM,QAAQ,MAAM;AACjD,YAAM,EAAE,KAAU,QAAgB,MAAY,MAAY,MAAM,KAAI;AACpE,aAAO,wBAAwB;AAC/B,eAAS,SACL,OAAO,mCAAkC,GAC1C,wBAAwB,cAAc;AACzC,eAAS,KAAK;AACd,eAAS,SACJ,KAAK,aAAa,IAAI,OAAO,OAC5B,OAAO,OAAO,MACf,OAAO,OAAO,KACd,IAAI,OAAO,MACX,KAAK,aAAa;AACvB,aAAO;AAAA,IACT;AACA,aAAS,YAAY;AACnB,aAAO,yBAAwB,EAAG;AAAA,IACpC;AACA,aAAS,gBAAgB,YAAY,WAAW,QAAQ,MAAM;AAC5D,UAAI,OAAO,wBAAuB;AAClC,8BAAwB,SAAS;AACjC,WAAK,gBAAgB;AAAA,QACnB,IAAI;AAAA,QACJ,EAAE,SAAS,OAAM;AAAA,QACjB;AAAA,QACA,WAAW,OAAO,OAAO;AAAA;IAE7B;AACA,aAAS,iBAAiB,YAAY,WAAW,QAAQ,MAAM;AAC7D,UAAI,OAAO,yBAAwB;AACnC,aAAO,WAAW,OAAO,OAAO;AAChC,UAAI,OAAO,KAAK,cAAc;AAC9B,eAAS,eACT,SAAS,QACT,mBAAmB,MAAM,YAAY,cAAc,IAAI,IAClD,KAAK,gBAAgB,iBAAiB,WAAW,MAAM,QAAQ,IAAI,KAClE,wBAAwB,SAAS,YAClC,KAAK,gBAAgB;AAAA,QACpB,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,IACA;AACA,aAAS,YAAY,QAAQ,MAAM;AACjC,sBAAgB,SAAS,GAAG,QAAQ,IAAI;AAAA,IAC1C;AACA,aAAS,aAAa,QAAQ,MAAM;AAClC,uBAAiB,MAAM,GAAG,QAAQ,IAAI;AAAA,IACxC;AACA,aAAS,mBAAmB,SAAS;AACnC,8BAAwB,SAAS;AACjC,UAAI,uBAAuB,wBAAwB;AACnD,UAAI,SAAS;AACX,QAAC,uBAAuB,mCAAkC,GACvD,wBAAwB,cAAc,sBACtC,qBAAqB,SAAS,CAAC,OAAO;AAAA,WACtC;AACH,YAAI,SAAS,qBAAqB;AAClC,iBAAS,SACJ,qBAAqB,SAAS,CAAC,OAAO,IACvC,OAAO,KAAK,OAAO;AAAA,MAC3B;AAAA,IACA;AACA,aAAS,YAAY,UAAU;AAC7B,UAAI,MAAM,yBAAwB,EAAG;AACrC,yBAAmB,EAAE,KAAU,UAAU,SAAQ,CAAE;AACnD,aAAO,WAAY;AACjB,YAAI,OAAO,mBAAmB,GAAI,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACzE,eAAO,IAAI,KAAK,MAAM,QAAQ,SAAS;AAAA,MAC3C;AAAA,IACA;AACA,aAAS,sBAAsB,QAAQ,MAAM;AAC3C,aAAO,iBAAiB,GAAG,GAAG,QAAQ,IAAI;AAAA,IAC5C;AACA,aAAS,mBAAmB,QAAQ,MAAM;AACxC,aAAO,iBAAiB,GAAG,GAAG,QAAQ,IAAI;AAAA,IAC5C;AACA,aAAS,uBAAuB,QAAQ,KAAK;AAC3C,UAAI,eAAe,OAAO,KAAK;AAC7B,iBAAS,OAAM;AACf,YAAI,aAAa,IAAI,MAAM;AAC3B,eAAO,WAAY;AACjB,yBAAe,OAAO,aAAa,WAAU,IAAK,IAAI,IAAI;AAAA,QAChE;AAAA,MACA;AACE,UAAI,SAAS,OAAO,WAAW;AAC7B,eACG,SAAS,OAAM,GACf,IAAI,UAAU,QACf,WAAY;AACV,cAAI,UAAU;AAAA,QACtB;AAAA,IAEA;AACA,aAAS,uBAAuB,KAAK,QAAQ,MAAM;AACjD,aAAO,SAAS,QAAQ,WAAW,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI;AAC/D,uBAAiB,GAAG,GAAG,uBAAuB,KAAK,MAAM,QAAQ,GAAG,GAAG,IAAI;AAAA,IAC7E;AACA,aAAS,kBAAkB;AAAA,IAAA;AAC3B,aAAS,eAAe,UAAU,MAAM;AACtC,UAAI,OAAO,yBAAwB;AACnC,aAAO,WAAW,OAAO,OAAO;AAChC,UAAI,YAAY,KAAK;AACrB,UAAI,SAAS,QAAQ,mBAAmB,MAAM,UAAU,CAAC,CAAC;AACxD,eAAO,UAAU,CAAC;AACpB,WAAK,gBAAgB,CAAC,UAAU,IAAI;AACpC,aAAO;AAAA,IACT;AACA,aAAS,WAAW,YAAY,MAAM;AACpC,UAAI,OAAO,yBAAwB;AACnC,aAAO,WAAW,OAAO,OAAO;AAChC,UAAI,YAAY,KAAK;AACrB,UAAI,SAAS,QAAQ,mBAAmB,MAAM,UAAU,CAAC,CAAC;AACxD,eAAO,UAAU,CAAC;AACpB,kBAAY,WAAU;AACtB,UAAI,qCAAqC;AACvC,mCAA2B,IAAE;AAC7B,YAAI;AACF,qBAAU;AAAA,QAChB,UAAK;AACC,qCAA2B,KAAE;AAAA,QACnC;AAAA,MACA;AACE,WAAK,gBAAgB,CAAC,WAAW,IAAI;AACrC,aAAO;AAAA,IACT;AACA,aAAS,uBAAuB,MAAM,OAAO,cAAc;AACzD,UACE,WAAW,gBACV,OAAO,cAAc,eACpB,OAAO,gCAAgC;AAEzC,eAAQ,KAAK,gBAAgB;AAC/B,WAAK,gBAAgB;AACrB,aAAO,oBAAmB;AAC1B,8BAAwB,SAAS;AACjC,wCAAkC;AAClC,aAAO;AAAA,IACT;AACA,aAAS,wBAAwB,MAAM,WAAW,OAAO,cAAc;AACrE,UAAI,SAAS,OAAO,SAAS,EAAG,QAAO;AACvC,UAAI,SAAS,6BAA6B;AACxC,eACG,OAAO,uBAAuB,MAAM,OAAO,YAAY,GACxD,SAAS,MAAM,SAAS,MAAM,mBAAmB,OACjD;AAEJ,UACE,OAAO,cAAc,OACpB,OAAO,cAAc,eACpB,OAAO,gCAAgC;AAEzC,eAAQ,mBAAmB,MAAM,KAAK,gBAAgB;AACxD,aAAO,oBAAmB;AAC1B,8BAAwB,SAAS;AACjC,wCAAkC;AAClC,aAAO;AAAA,IACT;AACA,aAAS,gBAAgB,OAAO,OAAO,cAAc,eAAe,UAAU;AAC5E,UAAI,mBAAmB,wBAAwB;AAC/C,8BAAwB,IACtB,MAAM,oBAAoB,IAAI,mBAAmB,mBAAmB;AACtE,UAAI,iBAAiB,qBAAqB,GACxC,oBAAoB,CAAA;AACtB,2BAAqB,IAAI;AACzB,iCAA2B,OAAO,OAAI,OAAO,YAAY;AACzD,UAAI;AACF,YAAI,cAAc,SAAQ,GACxB,0BAA0B,qBAAqB;AACjD,iBAAS,2BACP,wBAAwB,mBAAmB,WAAW;AACxD,YACE,SAAS,eACT,aAAa,OAAO,eACpB,eAAe,OAAO,YAAY,MAClC;AACA,cAAI,2BAA2B;AAAA,YAC7B;AAAA,YACA;AAAA;AAEF;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA,kBAAkB,KAAK;AAAA;QAE/B;AACM;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA,kBAAkB,KAAK;AAAA;MAE/B,SAAW,OAAO;AACd;AAAA,UACE;AAAA,UACA;AAAA,UACA,EAAE,MAAM,WAAY;AAAA,UAAA,GAAI,QAAQ,YAAY,QAAQ,MAAK;AAAA,UACzD,kBAAiB;AAAA;MAEvB,UAAG;AACC,QAAC,wBAAwB,IAAI,kBAC3B,SAAS,kBACP,SAAS,kBAAkB,UAC1B,eAAe,QAAQ,kBAAkB,QAC3C,qBAAqB,IAAI;AAAA,MAChC;AAAA,IACA;AACA,aAAS,OAAO;AAAA,IAAA;AAChB,aAAS,oBAAoB,WAAW,cAAc,QAAQ,UAAU;AACtE,UAAI,MAAM,UAAU,IAAK,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAChE,UAAI,QAAQ,8BAA8B,SAAS,EAAE;AACrD;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,SACL,OACA,WAAY;AACV,6BAAmB,SAAS;AAC5B,iBAAO,OAAO,QAAQ;AAAA,QAChC;AAAA;IAEA;AACA,aAAS,8BAA8B,WAAW;AAChD,UAAI,oBAAoB,UAAU;AAClC,UAAI,SAAS,kBAAmB,QAAO;AACvC,0BAAoB;AAAA,QAClB,eAAe;AAAA,QACf,WAAW;AAAA,QACX,WAAW;AAAA,QACX,OAAO;AAAA,UACL,SAAS;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,UACV,qBAAqB;AAAA,UACrB,mBAAmB;AAAA;QAErB,MAAM;AAAA;AAER,UAAI,oBAAoB,CAAA;AACxB,wBAAkB,OAAO;AAAA,QACvB,eAAe;AAAA,QACf,WAAW;AAAA,QACX,WAAW;AAAA,QACX,OAAO;AAAA,UACL,SAAS;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,UACV,qBAAqB;AAAA,UACrB,mBAAmB;AAAA;QAErB,MAAM;AAAA;AAER,gBAAU,gBAAgB;AAC1B,kBAAY,UAAU;AACtB,eAAS,cAAc,UAAU,gBAAgB;AACjD,aAAO;AAAA,IACT;AACA,aAAS,mBAAmB,WAAW;AACrC,UAAI,YAAY,8BAA8B,SAAS;AACvD,eAAS,UAAU,SAAS,YAAY,UAAU,UAAU;AAC5D;AAAA,QACE;AAAA,QACA,UAAU,KAAK;AAAA,QACf,CAAA;AAAA,QACA,kBAAiB;AAAA;IAErB;AACA,aAAS,0BAA0B;AACjC,aAAO,YAAY,qBAAqB;AAAA,IAC1C;AACA,aAAS,WAAW;AAClB,aAAO,yBAAwB,EAAG;AAAA,IACpC;AACA,aAAS,gBAAgB;AACvB,aAAO,yBAAwB,EAAG;AAAA,IACpC;AACA,aAAS,aAAa,OAAO;AAC3B,eAAS,WAAW,MAAM,QAAQ,SAAS,YAAY;AACrD,gBAAQ,SAAS,KAAG;AAAA,UAClB,KAAK;AAAA,UACL,KAAK;AACH,gBAAI,OAAO,kBAAiB;AAC5B,oBAAQ,aAAa,IAAI;AACzB,gBAAI,UAAU,cAAc,UAAU,OAAO,IAAI;AACjD,qBAAS,YACN,sBAAsB,SAAS,UAAU,IAAI,GAC9C,oBAAoB,SAAS,UAAU,IAAI;AAC7C,uBAAW,EAAE,OAAO,cAAa;AACjC,kBAAM,UAAU;AAChB;AAAA,QACR;AACI,mBAAW,SAAS;AAAA,MACxB;AAAA,IACA;AACA,aAAS,sBAAsB,OAAO,OAAO,QAAQ;AACnD,UAAI,OAAO,kBAAiB;AAC5B,eAAS;AAAA,QACP;AAAA,QACA,YAAY;AAAA,QACZ,SAAS;AAAA,QACT;AAAA,QACA,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,MAAM;AAAA;AAER,0BAAoB,KAAK,IACrB,yBAAyB,OAAO,MAAM,KACpC,SAAS,4BAA4B,OAAO,OAAO,QAAQ,IAAI,GACjE,SAAS,WACN,sBAAsB,QAAQ,OAAO,IAAI,GAC1C,yBAAyB,QAAQ,OAAO,IAAI;AAAA,IACpD;AACA,aAAS,iBAAiB,OAAO,OAAO,QAAQ;AAC9C,UAAI,OAAO,kBAAiB;AAC5B,+BAAyB,OAAO,OAAO,QAAQ,IAAI;AAAA,IACrD;AACA,aAAS,yBAAyB,OAAO,OAAO,QAAQ,MAAM;AAC5D,UAAI,SAAS;AAAA,QACX;AAAA,QACA,YAAY;AAAA,QACZ,SAAS;AAAA,QACT;AAAA,QACA,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,MAAM;AAAA;AAER,UAAI,oBAAoB,KAAK,EAAG,0BAAyB,OAAO,MAAM;AAAA,WACjE;AACH,YAAI,YAAY,MAAM;AACtB,YACE,MAAM,MAAM,UACX,SAAS,aAAa,MAAM,UAAU,WACrC,YAAY,MAAM,qBAAsB,SAAS;AAEnD,cAAI;AACF,gBAAI,eAAe,MAAM,mBACvB,aAAa,UAAU,cAAc,MAAM;AAC7C,mBAAO,gBAAgB;AACvB,mBAAO,aAAa;AACpB,gBAAI,SAAS,YAAY,YAAY;AACnC,qBACE,gBAAgB,OAAO,OAAO,QAAQ,CAAC,GACvC,SAAS,sBAAsB,gCAA+B,GAC9D;AAAA,UAEZ,SAAe,OAAO;AAAA,UACtB,UAAO;AAAA,UACP;AACI,iBAAS,4BAA4B,OAAO,OAAO,QAAQ,IAAI;AAC/D,YAAI,SAAS;AACX,iBACE,sBAAsB,QAAQ,OAAO,IAAI,GACzC,yBAAyB,QAAQ,OAAO,IAAI,GAC5C;AAAA,MAER;AACE,aAAO;AAAA,IACT;AACA,aAAS,2BAA2B,OAAO,qBAAqB,OAAO,QAAQ;AAC7E,eAAS;AAAA,QACP,MAAM;AAAA,QACN,YAAY,sBAAqB;AAAA,QACjC,SAAS;AAAA,QACT;AAAA,QACA,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,MAAM;AAAA;AAER,UAAI,oBAAoB,KAAK,GAAG;AAC9B,YAAI,oBAAqB,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,MACpE;AACI,QAAC,sBAAsB;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,WAEA,SAAS,uBACP,sBAAsB,qBAAqB,OAAO,CAAC;AAAA,IAC3D;AACA,aAAS,oBAAoB,OAAO;AAClC,UAAI,YAAY,MAAM;AACtB,aACE,UAAU,2BACT,SAAS,aAAa,cAAc;AAAA,IAEzC;AACA,aAAS,yBAAyB,OAAO,QAAQ;AAC/C,mDAA6C,+BAC3C;AACF,UAAI,UAAU,MAAM;AACpB,eAAS,UACJ,OAAO,OAAO,UACb,OAAO,OAAO,QAAQ,MAAQ,QAAQ,OAAO;AACnD,YAAM,UAAU;AAAA,IAClB;AACA,aAAS,yBAAyBA,OAAM,OAAO,MAAM;AACnD,UAAI,OAAO,OAAO,UAAU;AAC1B,YAAI,aAAa,MAAM;AACvB,sBAAcA,MAAK;AACnB,gBAAQ;AACR,cAAM,QAAQ;AACd,0BAAkBA,OAAM,IAAI;AAAA,MAChC;AAAA,IACA;AACA,QAAI,wBAAwB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,qBAAqB;AAAA,MACrB,iBAAiB;AAAA,MACjB,oBAAoB;AAAA,MACpB,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,sBAAsB;AAAA,MACtB,OAAO;AAAA,MACP,yBAAyB;AAAA,MACzB,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,cAAc;AAAA,MACd,iBAAiB;AAAA;AAEnB,0BAAsB,iBAAiB;AACvC,QAAI,yBAAyB;AAAA,MACzB;AAAA,MACA;AAAA,MACA,aAAa,SAAU,UAAU,MAAM;AACrC,gCAAuB,EAAG,gBAAgB;AAAA,UACxC;AAAA,UACA,WAAW,OAAO,OAAO;AAAA;AAE3B,eAAO;AAAA,MACb;AAAA,MACI,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,qBAAqB,SAAU,KAAK,QAAQ,MAAM;AAChD,eAAO,SAAS,QAAQ,WAAW,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI;AAC/D;AAAA,UACE;AAAA,UACA;AAAA,UACA,uBAAuB,KAAK,MAAM,QAAQ,GAAG;AAAA,UAC7C;AAAA;MAER;AAAA,MACI,iBAAiB,SAAU,QAAQ,MAAM;AACvC,eAAO,gBAAgB,SAAS,GAAG,QAAQ,IAAI;AAAA,MACrD;AAAA,MACI,oBAAoB,SAAU,QAAQ,MAAM;AAC1C,wBAAgB,GAAG,GAAG,QAAQ,IAAI;AAAA,MACxC;AAAA,MACI,SAAS,SAAU,YAAY,MAAM;AACnC,YAAI,OAAO,wBAAuB;AAClC,eAAO,WAAW,OAAO,OAAO;AAChC,YAAI,YAAY,WAAU;AAC1B,YAAI,qCAAqC;AACvC,qCAA2B,IAAE;AAC7B,cAAI;AACF,uBAAU;AAAA,UACpB,UAAS;AACC,uCAA2B,KAAE;AAAA,UACvC;AAAA,QACA;AACM,aAAK,gBAAgB,CAAC,WAAW,IAAI;AACrC,eAAO;AAAA,MACb;AAAA,MACI,YAAY,SAAU,SAAS,YAAY,MAAM;AAC/C,YAAI,OAAO,wBAAuB;AAClC,YAAI,WAAW,MAAM;AACnB,cAAI,eAAe,KAAK,UAAU;AAClC,cAAI,qCAAqC;AACvC,uCAA2B,IAAE;AAC7B,gBAAI;AACF,mBAAK,UAAU;AAAA,YAC3B,UAAW;AACC,yCAA2B,KAAE;AAAA,YACzC;AAAA,UACA;AAAA,QACA,MAAa,gBAAe;AACtB,aAAK,gBAAgB,KAAK,YAAY;AACtC,kBAAU;AAAA,UACR,SAAS;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,UACV,qBAAqB;AAAA,UACrB,mBAAmB;AAAA;AAErB,aAAK,QAAQ;AACb,kBAAU,QAAQ,WAAW,sBAAsB;AAAA,UACjD;AAAA,UACA;AAAA,UACA;AAAA;AAEF,eAAO,CAAC,KAAK,eAAe,OAAO;AAAA,MACzC;AAAA,MACI,QAAQ,SAAU,cAAc;AAC9B,YAAI,OAAO,wBAAuB;AAClC,uBAAe,EAAE,SAAS,aAAY;AACtC,eAAQ,KAAK,gBAAgB;AAAA,MACnC;AAAA,MACI,UAAU,SAAU,cAAc;AAChC,uBAAe,eAAe,YAAY;AAC1C,YAAI,QAAQ,aAAa,OACvB,WAAW,iBAAiB,KAAK,MAAM,yBAAyB,KAAK;AACvE,cAAM,WAAW;AACjB,eAAO,CAAC,aAAa,eAAe,QAAQ;AAAA,MAClD;AAAA,MACI,eAAe;AAAA,MACf,kBAAkB,SAAU,OAAO,cAAc;AAC/C,YAAI,OAAO,wBAAuB;AAClC,eAAO,uBAAuB,MAAM,OAAO,YAAY;AAAA,MAC7D;AAAA,MACI,eAAe,WAAY;AACzB,YAAI,YAAY,eAAe,KAAE;AACjC,oBAAY,gBAAgB;AAAA,UAC1B;AAAA,UACA;AAAA,UACA,UAAU;AAAA,UACV;AAAA,UACA;AAAA;AAEF,gCAAuB,EAAG,gBAAgB;AAC1C,eAAO,CAAC,OAAI,SAAS;AAAA,MAC3B;AAAA,MACI,sBAAsB,SAAU,WAAW,aAAa,mBAAmB;AACzE,YAAI,QAAQ,yBACV,OAAO,wBAAuB;AAChC,YAAI,aAAa;AACf,cAAI,WAAW;AACb,kBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,8BAAoB,kBAAiB;AAAA,QAC7C,OAAa;AACL,8BAAoB,YAAW;AAC/B,cAAI,SAAS;AACX,kBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,iBAAO,gCAAgC,QACrC,0BAA0B,OAAO,aAAa,iBAAiB;AAAA,QACzE;AACM,aAAK,gBAAgB;AACrB,YAAI,OAAO,EAAE,OAAO,mBAAmB,YAAwB;AAC/D,aAAK,QAAQ;AACb,oBAAY,iBAAiB,KAAK,MAAM,OAAO,MAAM,SAAS,GAAG;AAAA,UAC/D;AAAA,QACR,CAAO;AACD,cAAM,SAAS;AACf;AAAA,UACE;AAAA,UACA,EAAE,SAAS,OAAM;AAAA,UACjB,oBAAoB;AAAA,YAClB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;UAEF;AAAA;AAEF,eAAO;AAAA,MACb;AAAA,MACI,OAAO,WAAY;AACjB,YAAI,OAAO,wBAAuB,GAChC,mBAAmB,mBAAmB;AACxC,YAAI,aAAa;AACf,cAAI,2BAA2B;AAC/B,cAAI,mBAAmB;AACvB,sCAEI,mBAAmB,EAAE,KAAM,KAAK,MAAM,gBAAgB,IAAI,IAC1D,SAAS,EAAE,IAAI;AACnB,6BACE,MAAM,mBAAmB,OAAO;AAClC,qCAA2B;AAC3B,cAAI,6BACD,oBAAoB,MAAM,yBAAyB,SAAS,EAAE;AACjE,8BAAoB;AAAA,QAC5B;AACQ,UAAC,2BAA2B,yBACzB,mBACC,MACA,mBACA,OACA,yBAAyB,SAAS,EAAE,IACpC;AACN,eAAQ,KAAK,gBAAgB;AAAA,MACnC;AAAA,MACI;AAAA,MACA,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,eAAe,SAAU,aAAa;AACpC,YAAI,OAAO,wBAAuB;AAClC,aAAK,gBAAgB,KAAK,YAAY;AACtC,YAAI,QAAQ;AAAA,UACV,SAAS;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,UACV,qBAAqB;AAAA,UACrB,mBAAmB;AAAA;AAErB,aAAK,QAAQ;AACb,eAAO,2BAA2B;AAAA,UAChC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAEF,cAAM,WAAW;AACjB,eAAO,CAAC,aAAa,IAAI;AAAA,MAC/B;AAAA,MACI;AAAA,MACA,iBAAiB,WAAY;AAC3B,eAAQ,wBAAuB,EAAG,gBAAgB,aAAa;AAAA,UAC7D;AAAA,UACA;AAAA;MAER;AAAA,MACI,gBAAgB,SAAU,UAAU;AAClC,YAAI,OAAO,wBAAuB,GAChC,MAAM,EAAE,MAAM,SAAQ;AACxB,aAAK,gBAAgB;AACrB,eAAO,WAAY;AACjB,cAAI,OAAO,mBAAmB;AAC5B,kBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,iBAAO,IAAI,KAAK,MAAM,QAAQ,SAAS;AAAA,QAC/C;AAAA,MACA;AAAA,OAEE,0BAA0B;AAAA,MACxB;AAAA,MACA;AAAA,MACA,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,iBAAiB;AAAA,MACjB,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU,WAAY;AACpB,eAAO,cAAc,iBAAiB;AAAA,MAC5C;AAAA,MACI,eAAe;AAAA,MACf,kBAAkB,SAAU,OAAO,cAAc;AAC/C,YAAI,OAAO,yBAAwB;AACnC,eAAO;AAAA,UACL;AAAA,UACA,YAAY;AAAA,UACZ;AAAA,UACA;AAAA;MAER;AAAA,MACI,eAAe,WAAY;AACzB,YAAI,oBAAoB,cAAc,iBAAiB,EAAE,CAAC,GACxD,QAAQ,yBAAwB,EAAG;AACrC,eAAO;AAAA,UACL,cAAc,OAAO,oBACjB,oBACA,YAAY,iBAAiB;AAAA,UACjC;AAAA;MAER;AAAA,MACI,sBAAsB;AAAA,MACtB,OAAO;AAAA,MACP;AAAA,MACA,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,eAAe,SAAU,aAAa,SAAS;AAC7C,YAAI,OAAO,yBAAwB;AACnC,eAAO,qBAAqB,MAAM,aAAa,aAAa,OAAO;AAAA,MACzE;AAAA,MACI;AAAA,MACA,iBAAiB;AAAA;AAErB,4BAAwB,iBAAiB;AACzC,QAAI,4BAA4B;AAAA,MAC9B;AAAA,MACA;AAAA,MACA,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,iBAAiB;AAAA,MACjB,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,UAAU,WAAY;AACpB,eAAO,gBAAgB,iBAAiB;AAAA,MAC5C;AAAA,MACE,eAAe;AAAA,MACf,kBAAkB,SAAU,OAAO,cAAc;AAC/C,YAAI,OAAO,yBAAwB;AACnC,eAAO,SAAS,cACZ,uBAAuB,MAAM,OAAO,YAAY,IAChD;AAAA,UACE;AAAA,UACA,YAAY;AAAA,UACZ;AAAA,UACA;AAAA;MAEV;AAAA,MACE,eAAe,WAAY;AACzB,YAAI,oBAAoB,gBAAgB,iBAAiB,EAAE,CAAC,GAC1D,QAAQ,yBAAwB,EAAG;AACrC,eAAO;AAAA,UACL,cAAc,OAAO,oBACjB,oBACA,YAAY,iBAAiB;AAAA,UACjC;AAAA;MAEN;AAAA,MACE,sBAAsB;AAAA,MACtB,OAAO;AAAA,MACP;AAAA,MACA,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,eAAe,SAAU,aAAa,SAAS;AAC7C,YAAI,OAAO,yBAAwB;AACnC,YAAI,SAAS;AACX,iBAAO,qBAAqB,MAAM,aAAa,aAAa,OAAO;AACrE,aAAK,YAAY;AACjB,eAAO,CAAC,aAAa,KAAK,MAAM,QAAQ;AAAA,MAC5C;AAAA,MACE;AAAA,MACA,iBAAiB;AAAA;AAEnB,8BAA0B,iBAAiB;AAC3C,aAAS,2BACPF,iBACA,MACA,0BACA,WACA;AACA,aAAOA,gBAAe;AACtB,iCAA2B,yBAAyB,WAAW,IAAI;AACnE,iCACE,SAAS,4BAA4B,WAAW,2BAC5C,OACA,OAAO,CAAA,GAAI,MAAM,wBAAwB;AAC/C,MAAAA,gBAAe,gBAAgB;AAC/B,YAAMA,gBAAe,UAClBA,gBAAe,YAAY,YAAY;AAAA,IAC5C;AACA,QAAI,wBAAwB;AAAA,MAC1B,iBAAiB,SAAU,MAAM,SAAS,UAAU;AAClD,eAAO,KAAK;AACZ,YAAI,OAAO,kBAAiB,GAC1B,SAAS,aAAa,IAAI;AAC5B,eAAO,UAAU;AACjB,mBAAW,YAAY,SAAS,aAAa,OAAO,WAAW;AAC/D,kBAAU,cAAc,MAAM,QAAQ,IAAI;AAC1C,iBAAS,YACN,sBAAsB,SAAS,MAAM,IAAI,GAC1C,oBAAoB,SAAS,MAAM,IAAI;AAAA,MAC7C;AAAA,MACE,qBAAqB,SAAU,MAAM,SAAS,UAAU;AACtD,eAAO,KAAK;AACZ,YAAI,OAAO,kBAAiB,GAC1B,SAAS,aAAa,IAAI;AAC5B,eAAO,MAAM;AACb,eAAO,UAAU;AACjB,mBAAW,YAAY,SAAS,aAAa,OAAO,WAAW;AAC/D,kBAAU,cAAc,MAAM,QAAQ,IAAI;AAC1C,iBAAS,YACN,sBAAsB,SAAS,MAAM,IAAI,GAC1C,oBAAoB,SAAS,MAAM,IAAI;AAAA,MAC7C;AAAA,MACE,oBAAoB,SAAU,MAAM,UAAU;AAC5C,eAAO,KAAK;AACZ,YAAI,OAAO,kBAAiB,GAC1B,SAAS,aAAa,IAAI;AAC5B,eAAO,MAAM;AACb,mBAAW,YAAY,SAAS,aAAa,OAAO,WAAW;AAC/D,mBAAW,cAAc,MAAM,QAAQ,IAAI;AAC3C,iBAAS,aACN,sBAAsB,UAAU,MAAM,IAAI,GAC3C,oBAAoB,UAAU,MAAM,IAAI;AAAA,MAC9C;AAAA;AAEA,aAAS,2BACPA,iBACA,MACA,UACA,UACA,UACA,UACA,aACA;AACA,MAAAA,kBAAiBA,gBAAe;AAChC,aAAO,eAAe,OAAOA,gBAAe,wBACxCA,gBAAe,sBAAsB,UAAU,UAAU,WAAW,IACpE,KAAK,aAAa,KAAK,UAAU,uBAC/B,CAAC,aAAa,UAAU,QAAQ,KAAK,CAAC,aAAa,UAAU,QAAQ,IACrE;AAAA,IACR;AACA,aAAS,8BACPA,iBACA,UACA,UACA,aACA;AACA,MAAAA,kBAAiB,SAAS;AAC1B,qBAAe,OAAO,SAAS,6BAC7B,SAAS,0BAA0B,UAAU,WAAW;AAC1D,qBAAe,OAAO,SAAS,oCAC7B,SAAS,iCAAiC,UAAU,WAAW;AACjE,eAAS,UAAUA,mBACjB,sBAAsB,oBAAoB,UAAU,SAAS,OAAO,IAAI;AAAA,IAC5E;AACA,aAAS,2BAA2B,WAAW,WAAW;AACxD,UAAI,WAAW;AACf,UAAI,SAAS,WAAW;AACtB,mBAAW,CAAA;AACX,iBAAS,YAAY;AACnB,oBAAU,aAAa,SAAS,QAAQ,IAAI,UAAU,QAAQ;AAAA,MACpE;AACE,UAAK,YAAY,UAAU,cAAe;AACxC,qBAAa,cAAc,WAAW,OAAO,CAAA,GAAI,QAAQ;AACzD,iBAAS,eAAe;AACtB,qBAAW,SAAS,WAAW,MAC5B,SAAS,WAAW,IAAI,UAAU,WAAW;AAAA,MACtD;AACE,aAAO;AAAA,IACT;AACA,aAAS,uBAAuB,OAAO;AACrC,wBAAkB,KAAK;AAAA,IACzB;AACA,aAAS,qBAAqB,OAAO;AACnC,cAAQ,MAAM,KAAK;AAAA,IACrB;AACA,aAAS,0BAA0B,OAAO;AACxC,wBAAkB,KAAK;AAAA,IACzB;AACA,aAAS,iBAAiBE,OAAM,WAAW;AACzC,UAAI;AACF,YAAI,kBAAkBA,MAAK;AAC3B,wBAAgB,UAAU,OAAO,EAAE,gBAAgB,UAAU,OAAO;AAAA,MACxE,SAAW,MAAM;AACb,mBAAW,WAAY;AACrB,gBAAM;AAAA,QACZ,CAAK;AAAA,MACL;AAAA,IACA;AACA,aAAS,eAAeA,OAAM,UAAU,WAAW;AACjD,UAAI;AACF,YAAI,gBAAgBA,MAAK;AACzB,sBAAc,UAAU,OAAO;AAAA,UAC7B,gBAAgB,UAAU;AAAA,UAC1B,eAAe,MAAM,SAAS,MAAM,SAAS,YAAY;AAAA,QAC/D,CAAK;AAAA,MACL,SAAW,MAAM;AACb,mBAAW,WAAY;AACrB,gBAAM;AAAA,QACZ,CAAK;AAAA,MACL;AAAA,IACA;AACA,aAAS,sBAAsBA,OAAM,WAAW,MAAM;AACpD,aAAO,aAAa,IAAI;AACxB,WAAK,MAAM;AACX,WAAK,UAAU,EAAE,SAAS,KAAI;AAC9B,WAAK,WAAW,WAAY;AAC1B,yBAAiBA,OAAM,SAAS;AAAA,MACpC;AACE,aAAO;AAAA,IACT;AACA,aAAS,uBAAuB,MAAM;AACpC,aAAO,aAAa,IAAI;AACxB,WAAK,MAAM;AACX,aAAO;AAAA,IACT;AACA,aAAS,2BAA2B,QAAQA,OAAM,OAAO,WAAW;AAClE,UAAI,2BAA2B,MAAM,KAAK;AAC1C,UAAI,eAAe,OAAO,0BAA0B;AAClD,YAAI,QAAQ,UAAU;AACtB,eAAO,UAAU,WAAY;AAC3B,iBAAO,yBAAyB,KAAK;AAAA,QAC3C;AACI,eAAO,WAAW,WAAY;AAC5B,yBAAeA,OAAM,OAAO,SAAS;AAAA,QAC3C;AAAA,MACA;AACE,UAAI,OAAO,MAAM;AACjB,eAAS,QACP,eAAe,OAAO,KAAK,sBAC1B,OAAO,WAAW,WAAY;AAC7B,uBAAeA,OAAM,OAAO,SAAS;AACrC,uBAAe,OAAO,6BACnB,SAAS,yCACL,yCAAyC,oBAAI,IAAI,CAAC,IAAI,CAAC,IACxD,uCAAuC,IAAI,IAAI;AACrD,YAAI,QAAQ,UAAU;AACtB,aAAK,kBAAkB,UAAU,OAAO;AAAA,UACtC,gBAAgB,SAAS,QAAQ,QAAQ;AAAA,QACjD,CAAO;AAAA,MACP;AAAA,IACA;AACA,aAAS,eACPA,OACA,aACA,aACA,OACA,iBACA;AACA,kBAAY,SAAS;AACrB,UACE,SAAS,SACT,aAAa,OAAO,SACpB,eAAe,OAAO,MAAM,MAC5B;AACA,sBAAc,YAAY;AAC1B,iBAAS,eACP;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAEJ,sBAAc,2BAA2B;AACzC,YAAI,SAAS,aAAa;AACxB,kBAAQ,YAAY,KAAG;AAAA,YACrB,KAAK;AAAA,YACL,KAAK;AACH,qBACE,SAAS,gBACL,gCAA+B,IAC/B,SAAS,YAAY,aACrB,MAAM,iCACL,+BAA+B,IACnC,YAAY,SAAS,MACrB,YAAY,SAAS,OACrB,YAAY,QAAQ,iBACrB,UAAU,8BACL,YAAY,SAAS,SACpB,cAAc,YAAY,aAC5B,SAAS,cACJ,YAAY,cAAc,oBAAI,IAAI,CAAC,KAAK,CAAC,IAC1C,YAAY,IAAI,KAAK,GACzB,mBAAmBA,OAAM,OAAO,eAAe,IACnD;AAAA,YAEJ,KAAK;AACH,qBACG,YAAY,SAAS,OACtB,UAAU,8BACL,YAAY,SAAS,SACpB,cAAc,YAAY,aAC5B,SAAS,eACH,cAAc;AAAA,gBACd,aAAa;AAAA,gBACb,iBAAiB;AAAA,gBACjB,YAAY,oBAAI,IAAI,CAAC,KAAK,CAAC;AAAA,iBAE5B,YAAY,cAAc,gBACzB,cAAc,YAAY,YAC5B,SAAS,cACJ,YAAY,aAAa,oBAAI,IAAI,CAAC,KAAK,CAAC,IACzC,YAAY,IAAI,KAAK,IAC7B,mBAAmBA,OAAM,OAAO,eAAe,IACnD;AAAA,UAEZ;AACM,gBAAM,MAAM,uBAAuB,KAAK,YAAY,GAAG,CAAC;AAAA,QAC9D;AACI,2BAAmBA,OAAM,OAAO,eAAe;AAC/C,wCAA+B;AAC/B,eAAO;AAAA,MACX;AACE,UAAI;AACF,eACG,cAAc,2BAA2B,SAC1C,SAAS,eACJ,OAAO,YAAY,QAAQ,WAAW,YAAY,SAAS,MAC3D,YAAY,SAAS,OACrB,YAAY,QAAQ,iBACrB,UAAU,+BACNA,QAAO,MAAM,uBAAuB,GAAG,GAAG,EAAE,OAAO,OAAO,GAC5D,oBAAoB,2BAA2BA,OAAM,WAAW,CAAC,OAClE,UAAU,+BACP,cAAc,MAAM,uBAAuB,GAAG,GAAG;AAAA,UACjD,OAAO;AAAA,QACrB,CAAa,GACD;AAAA,UACE,2BAA2B,aAAa,WAAW;AAAA,QACjE,IACWA,QAAOA,MAAK,QAAQ,WACpBA,MAAK,SAAS,OACd,mBAAmB,CAAC,iBACpBA,MAAK,SAAS,iBACd,QAAQ,2BAA2B,OAAO,WAAW,GACrD,kBAAkB;AAAA,UACjBA,MAAK;AAAA,UACL;AAAA,UACA;AAAA,WAEF,sBAAsBA,OAAM,eAAe,GAC3C,MAAM,iCACH,+BAA+B,KACtC;AAEJ,UAAI,eAAe,MAAM,uBAAuB,GAAG,GAAG,EAAE,OAAO,OAAO;AACtE,qBAAe,2BAA2B,cAAc,WAAW;AACnE,eAAS,qCACJ,qCAAqC,CAAC,YAAY,IACnD,mCAAmC,KAAK,YAAY;AACxD,YAAM,iCAAiC,+BAA+B;AACtE,UAAI,SAAS,YAAa,QAAO;AACjC,cAAQ,2BAA2B,OAAO,WAAW;AACrD,oBAAc;AACd,SAAG;AACD,gBAAQ,YAAY,KAAG;AAAA,UACrB,KAAK;AACH,mBACG,YAAY,SAAS,OACrBA,QAAO,kBAAkB,CAAC,iBAC1B,YAAY,SAASA,OACrBA,QAAO,sBAAsB,YAAY,WAAW,OAAOA,KAAI,GAChE,sBAAsB,aAAaA,KAAI,GACvC;AAAA,UAEJ,KAAK;AACH,gBACI,cAAc,YAAY,MAC3B,eAAe,YAAY,WAC5B,OAAO,YAAY,QAAQ,SACxB,eAAe,OAAO,YAAY,4BAChC,SAAS,gBACR,eAAe,OAAO,aAAa,sBAClC,SAAS,0CACR,CAAC,uCAAuC,IAAI,YAAY;AAEhE,qBACG,YAAY,SAAS,OACrB,mBAAmB,CAAC,iBACpB,YAAY,SAAS,iBACrB,kBAAkB,uBAAuB,eAAe,GACzD;AAAA,gBACE;AAAA,gBACAA;AAAA,gBACA;AAAA,gBACA;AAAA,iBAEF,sBAAsB,aAAa,eAAe,GAClD;AAAA,QAEZ;AACI,sBAAc,YAAY;AAAA,MAC9B,SAAW,SAAS;AAClB,aAAO;AAAA,IACT;AACA,QAAI,8BAA8B,MAAM,uBAAuB,GAAG,CAAC,GACjE,mBAAmB;AACrB,aAAS,kBAAkB,SAASF,iBAAgB,cAAcG,cAAa;AAC7E,MAAAH,gBAAe,QACb,SAAS,UACL,iBAAiBA,iBAAgB,MAAM,cAAcG,YAAW,IAChE;AAAA,QACEH;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,QACAG;AAAA;IAEV;AACA,aAAS,iBACP,SACAH,iBACA,WACA,WACAG,cACA;AACA,kBAAY,UAAU;AACtB,UAAI,MAAMH,gBAAe;AACzB,UAAI,SAAS,WAAW;AACtB,YAAI,kBAAkB,CAAA;AACtB,iBAAS,OAAO;AACd,oBAAU,QAAQ,gBAAgB,GAAG,IAAI,UAAU,GAAG;AAAA,MAC5D,MAAS,mBAAkB;AACzB,2BAAqBA,eAAc;AACnC,kBAAY;AAAA,QACV;AAAA,QACAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAG;AAAA;AAEF,YAAM,qBAAoB;AAC1B,UAAI,SAAS,WAAW,CAAC;AACvB,eACE,aAAa,SAASH,iBAAgBG,YAAW,GACjD,6BAA6B,SAASH,iBAAgBG,YAAW;AAErE,qBAAe,OAAO,uBAAuBH,eAAc;AAC3D,MAAAA,gBAAe,SAAS;AACxB,wBAAkB,SAASA,iBAAgB,WAAWG,YAAW;AACjE,aAAOH,gBAAe;AAAA,IACxB;AACA,aAAS,oBACP,SACAA,iBACA,WACA,WACAG,cACA;AACA,UAAI,SAAS,SAAS;AACpB,YAAI,OAAO,UAAU;AACrB,YACE,eAAe,OAAO,QACtB,CAAC,gBAAgB,IAAI,KACrB,WAAW,KAAK,gBAChB,SAAS,UAAU;AAEnB,iBACGH,gBAAe,MAAM,IACrBA,gBAAe,OAAO,MACvB;AAAA,YACE;AAAA,YACAA;AAAA,YACA;AAAA,YACA;AAAA,YACAG;AAAA,UACV;AAEI,kBAAU;AAAA,UACR,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACAH;AAAA,UACAA,gBAAe;AAAA,UACfG;AAAA;AAEF,gBAAQ,MAAMH,gBAAe;AAC7B,gBAAQ,SAASA;AACjB,eAAQA,gBAAe,QAAQ;AAAA,MACnC;AACE,aAAO,QAAQ;AACf,UAAI,CAAC,8BAA8B,SAASG,YAAW,GAAG;AACxD,YAAI,YAAY,KAAK;AACrB,oBAAY,UAAU;AACtB,oBAAY,SAAS,YAAY,YAAY;AAC7C,YAAI,UAAU,WAAW,SAAS,KAAK,QAAQ,QAAQH,gBAAe;AACpE,iBAAO,6BAA6B,SAASA,iBAAgBG,YAAW;AAAA,MAC9E;AACE,MAAAH,gBAAe,SAAS;AACxB,gBAAU,qBAAqB,MAAM,SAAS;AAC9C,cAAQ,MAAMA,gBAAe;AAC7B,cAAQ,SAASA;AACjB,aAAQA,gBAAe,QAAQ;AAAA,IACjC;AACA,aAAS,0BACP,SACAA,iBACA,WACA,WACAG,cACA;AACA,UAAI,SAAS,SAAS;AACpB,YAAI,YAAY,QAAQ;AACxB,YACE,aAAa,WAAW,SAAS,KACjC,QAAQ,QAAQH,gBAAe;AAE/B,cACI,mBAAmB,OACpBA,gBAAe,eAAe,YAAY,WAC3C,8BAA8B,SAASG,YAAW;AAElD,mBAAO,QAAQ,QAAQ,YAAY,mBAAmB;AAAA;AAEtD,mBACGH,gBAAe,QAAQ,QAAQ,OAChC,6BAA6B,SAASA,iBAAgBG,YAAW;AAAA,MAE3E;AACE,aAAO;AAAA,QACL;AAAA,QACAH;AAAA,QACA;AAAA,QACA;AAAA,QACAG;AAAA;IAEJ;AACA,aAAS,yBACP,SACAH,iBACAG,cACA,WACA;AACA,UAAI,eAAe,UAAU,UAC3B,YAAY,SAAS,UAAU,QAAQ,gBAAgB;AACzD,eAAS,WACP,SAASH,gBAAe,cACvBA,gBAAe,YAAY;AAAA,QAC1B,aAAa;AAAA,QACb,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,cAAc;AAAA,MACpB;AACE,UAAI,aAAa,UAAU,MAAM;AAC/B,YAAI,OAAOA,gBAAe,QAAQ,MAAM;AACtC,sBACE,SAAS,YAAY,UAAU,YAAYG,eAAcA;AAC3D,cAAI,SAAS,SAAS;AACpB,wBAAYH,gBAAe,QAAQ,QAAQ;AAC3C,iBAAK,eAAe,GAAG,SAAS;AAC9B,cAAC,eACC,eAAe,UAAU,QAAQ,UAAU,YAC1C,YAAY,UAAU;AAC3B,wBAAY,eAAe,CAAC;AAAA,UACpC,MAAa,CAAC,YAAY,GAAKA,gBAAe,QAAQ;AAChD,iBAAO;AAAA,YACL;AAAA,YACAA;AAAA,YACA;AAAA,YACAG;AAAA,YACA;AAAA;QAER;AACI,YAAI,OAAOA,eAAc;AACvB,UAACH,gBAAe,gBAAgB,EAAE,WAAW,GAAG,WAAW,KAAI,GAC7D,SAAS,WACP;AAAA,YACEA;AAAA,YACA,SAAS,YAAY,UAAU,YAAY;AAAA,aAE/C,SAAS,YACL,kBAAkBA,iBAAgB,SAAS,IAC3C,0BAAyB,GAC7B,6BAA6BA,eAAc;AAAA;AAE7C,iBACG,YAAYA,gBAAe,QAAQ,WACpC;AAAA,YACE;AAAA,YACAA;AAAA,YACA,SAAS,YAAY,UAAU,YAAYG,eAAcA;AAAA,YACzDA;AAAA,YACA;AAAA,UACV;AAAA,MAEA;AACI,iBAAS,aACJ,eAAeH,iBAAgB,UAAU,SAAS,GACnD,kBAAkBA,iBAAgB,SAAS,GAC3C,4BAA0C,GACzCA,gBAAe,gBAAgB,SAC/B,SAAS,WAAW,eAAeA,iBAAgB,IAAI,GACxD,0BAAyB,GACzB,4BAA0C;AAChD,wBAAkB,SAASA,iBAAgB,cAAcG,YAAW;AACpE,aAAOH,gBAAe;AAAA,IACxB;AACA,aAAS,0BAA0B,SAASA,iBAAgB;AAC1D,MAAC,SAAS,WAAW,OAAO,QAAQ,OAClC,SAASA,gBAAe,cACvBA,gBAAe,YAAY;AAAA,QAC1B,aAAa;AAAA,QACb,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,cAAc;AAAA,MACpB;AACE,aAAOA,gBAAe;AAAA,IACxB;AACA,aAAS,8BACP,SACAA,iBACA,eACAG,cACA,qBACA;AACA,UAAI,2BAA2B,kBAAiB;AAChD,iCACE,SAAS,2BACL,OACA,EAAE,QAAQ,aAAa,eAAe,MAAM,yBAAwB;AAC1E,MAAAH,gBAAe,gBAAgB;AAAA,QAC7B,WAAW;AAAA,QACX,WAAW;AAAA;AAEb,eAAS,WAAW,eAAeA,iBAAgB,IAAI;AACvD,gCAAyB;AACzB,mCAA6BA,eAAc;AAC3C,eAAS,WACP,8BAA8B,SAASA,iBAAgBG,cAAa,IAAE;AACxE,MAAAH,gBAAe,aAAa;AAC5B,aAAO;AAAA,IACT;AACA,aAAS,sBAAsBA,iBAAgB,WAAW;AACxD,kBAAY;AAAA,QACV,EAAE,MAAM,UAAU,MAAM,UAAU,UAAU,SAAQ;AAAA,QACpDA,gBAAe;AAAA;AAEjB,gBAAU,MAAMA,gBAAe;AAC/B,MAAAA,gBAAe,QAAQ;AACvB,gBAAU,SAASA;AACnB,aAAO;AAAA,IACT;AACA,aAAS,uCACP,SACAA,iBACAG,cACA;AACA,2BAAqBH,iBAAgB,QAAQ,OAAO,MAAMG,YAAW;AACrE,gBAAU,sBAAsBH,iBAAgBA,gBAAe,YAAY;AAC3E,cAAQ,SAAS;AACjB,yBAAmBA,eAAc;AACjC,MAAAA,gBAAe,gBAAgB;AAC/B,aAAO;AAAA,IACT;AACA,aAAS,wBAAwB,SAASA,iBAAgBG,cAAa;AACrE,UAAI,YAAYH,gBAAe,cAC7B,aAAa,OAAOA,gBAAe,QAAQ;AAC7C,MAAAA,gBAAe,SAAS;AACxB,UAAI,SAAS,SAAS;AACpB,YAAI,aAAa;AACf,cAAI,aAAa,UAAU;AACzB,mBACG,UAAU,sBAAsBA,iBAAgB,SAAS,GACzDA,gBAAe,QAAQ,WACxB,0BAA0B,MAAM,OAAO;AAE3C,gDAAsCA,eAAc;AACpD,WAAC,UAAU,2BACL,UAAU;AAAA,YACV;AAAA,YACA;AAAA,aAED,UAAU,SAAS,WAAW,QAAQ,QAAQ,OAAO,UAAU,MAChE,SAAS,YACLA,gBAAe,gBAAgB;AAAA,YAC/B,YAAY;AAAA,YACZ,aACE,SAAS,sBACL,EAAE,IAAI,eAAe,UAAU,oBAAmB,IAClD;AAAA,YACN,WAAW;AAAA,YACX,iBAAiB;AAAA,aAElBG,eAAc,kCAAkC,OAAO,GACvDA,aAAY,SAASH,iBACrBA,gBAAe,QAAQG,cACvB,uBAAuBH,iBACvB,yBAAyB,SAC3B,UAAU;AACf,cAAI,SAAS,QAAS,OAAM,yBAAyBA,eAAc;AACnE,UAAAA,gBAAe,QAAQ;AACvB,iBAAO;AAAA,QACb;AACI,eAAO,sBAAsBA,iBAAgB,SAAS;AAAA,MAC1D;AACE,UAAI,YAAY,QAAQ;AACxB,UAAI,SAAS,WAAW;AACtB,YAAI,aAAa,UAAU;AAC3B,8CAAsCA,eAAc;AACpD,YAAI;AACF,cAAIA,gBAAe,QAAQ;AACzB,YAACA,gBAAe,SAAS,MACtBA,kBAAiB;AAAA,cAChB;AAAA,cACAA;AAAA,cACAG;AAAA,YACZ;AAAA,mBACe,SAASH,gBAAe;AAC/B,YAACA,gBAAe,QAAQ,QAAQ,OAC7BA,gBAAe,SAAS,KACxBA,kBAAiB;AAAA,cACjB,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,iBAE3C,oBACC,8BAA8B,SAASA,iBAAgBG,cAAa,KAAE,GACvE,aAAa,OAAOA,eAAc,QAAQ,aAC3C,oBAAoB,YACpB;AACA,sBAAY;AACZ,cACE,SAAS,cACP,aAAa,0BAA0B,WAAWA,YAAW,GAC/D,MAAM,cAAc,eAAe,UAAU;AAE7C,kBACI,UAAU,YAAY,YACxB,+BAA+B,SAAS,UAAU,GAClD,sBAAsB,WAAW,SAAS,UAAU,GACpD;AAEJ,0CAA+B;AAC/B,UAAAH,kBAAiB;AAAA,YACf;AAAA,YACAA;AAAA,YACAG;AAAA;QAER;AACM,UAAC,UAAU,UAAU,aAClB,yBAAyB,kBAAkB,WAAW,WAAW,GACjE,uBAAuBH,iBACvB,cAAc,MACd,kBAAkB,MAClB,yBAAyB,OAC1B,SAAS,WACP,4BAA4BA,iBAAgB,OAAO,GACpDA,kBAAiB,sBAAsBA,iBAAgB,SAAS,GAChEA,gBAAe,SAAS;AAC7B,eAAOA;AAAA,MACX;AACE,gBAAU,qBAAqB,QAAQ,OAAO;AAAA,QAC5C,MAAM,UAAU;AAAA,QAChB,UAAU,UAAU;AAAA,MACxB,CAAG;AACD,cAAQ,MAAMA,gBAAe;AAC7B,MAAAA,gBAAe,QAAQ;AACvB,cAAQ,SAASA;AACjB,aAAO;AAAA,IACT;AACA,aAAS,QAAQ,SAASA,iBAAgB;AACxC,UAAI,MAAMA,gBAAe;AACzB,UAAI,SAAS;AACX,iBAAS,WACP,SAAS,QAAQ,QAChBA,gBAAe,SAAS;AAAA,WACxB;AACH,YAAI,eAAe,OAAO,OAAO,aAAa,OAAO;AACnD,gBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,YAAI,SAAS,WAAW,QAAQ,QAAQ;AACtC,UAAAA,gBAAe,SAAS;AAAA,MAC9B;AAAA,IACA;AACA,aAAS,wBACP,SACAA,iBACA,WACA,WACAG,cACA;AACA,2BAAqBH,eAAc;AACnC,kBAAY;AAAA,QACV;AAAA,QACAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAG;AAAA;AAEF,kBAAY,qBAAoB;AAChC,UAAI,SAAS,WAAW,CAAC;AACvB,eACE,aAAa,SAASH,iBAAgBG,YAAW,GACjD,6BAA6B,SAASH,iBAAgBG,YAAW;AAErE,qBAAe,aAAa,uBAAuBH,eAAc;AACjE,MAAAA,gBAAe,SAAS;AACxB,wBAAkB,SAASA,iBAAgB,WAAWG,YAAW;AACjE,aAAOH,gBAAe;AAAA,IACxB;AACA,aAAS,wBACP,SACAA,iBACA,WACA,WACA,WACAG,cACA;AACA,2BAAqBH,eAAc;AACnC,MAAAA,gBAAe,cAAc;AAC7B,kBAAY;AAAA,QACVA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAEF,2BAAqB,OAAO;AAC5B,kBAAY,qBAAoB;AAChC,UAAI,SAAS,WAAW,CAAC;AACvB,eACE,aAAa,SAASA,iBAAgBG,YAAW,GACjD,6BAA6B,SAASH,iBAAgBG,YAAW;AAErE,qBAAe,aAAa,uBAAuBH,eAAc;AACjE,MAAAA,gBAAe,SAAS;AACxB,wBAAkB,SAASA,iBAAgB,WAAWG,YAAW;AACjE,aAAOH,gBAAe;AAAA,IACxB;AACA,aAAS,qBACP,SACAA,iBACA,WACA,WACAG,cACA;AACA,2BAAqBH,eAAc;AACnC,UAAI,SAASA,gBAAe,WAAW;AACrC,YAAI,UAAU,oBACZ,cAAc,UAAU;AAC1B,qBAAa,OAAO,eAClB,SAAS,gBACR,UAAU,YAAY,WAAW;AACpC,kBAAU,IAAI,UAAU,WAAW,OAAO;AAC1C,QAAAA,gBAAe,gBACb,SAAS,QAAQ,SAAS,WAAW,QAAQ,QAAQ,QAAQ,QAAQ;AACvE,gBAAQ,UAAU;AAClB,QAAAA,gBAAe,YAAY;AAC3B,gBAAQ,kBAAkBA;AAC1B,kBAAUA,gBAAe;AACzB,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQA,gBAAe;AAC/B,gBAAQ,OAAO,CAAA;AACf,8BAAsBA,eAAc;AACpC,sBAAc,UAAU;AACxB,gBAAQ,UACN,aAAa,OAAO,eAAe,SAAS,cACxC,YAAY,WAAW,IACvB;AACN,gBAAQ,QAAQA,gBAAe;AAC/B,sBAAc,UAAU;AACxB,uBAAe,OAAO,gBACnB;AAAA,UACCA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,WAED,QAAQ,QAAQA,gBAAe;AAClC,uBAAe,OAAO,UAAU,4BAC9B,eAAe,OAAO,QAAQ,2BAC7B,eAAe,OAAO,QAAQ,6BAC7B,eAAe,OAAO,QAAQ,uBAC9B,cAAc,QAAQ,OACxB,eAAe,OAAO,QAAQ,sBAC5B,QAAQ,mBAAkB,GAC5B,eAAe,OAAO,QAAQ,6BAC5B,QAAQ,0BAAyB,GACnC,gBAAgB,QAAQ,SACtB,sBAAsB,oBAAoB,SAAS,QAAQ,OAAO,IAAI,GACxE,mBAAmBA,iBAAgB,WAAW,SAASG,YAAW,GAClE,4CAA2C,GAC1C,QAAQ,QAAQH,gBAAe;AAClC,uBAAe,OAAO,QAAQ,sBAC3BA,gBAAe,SAAS;AAC3B,oBAAY;AAAA,MAChB,WAAa,SAAS,SAAS;AAC3B,kBAAUA,gBAAe;AACzB,YAAI,qBAAqBA,gBAAe,eACtC,WAAW,2BAA2B,WAAW,kBAAkB;AACrE,gBAAQ,QAAQ;AAChB,YAAI,aAAa,QAAQ,SACvB,uBAAuB,UAAU;AACnC,sBAAc;AACd,qBAAa,OAAO,wBAClB,SAAS,yBACR,cAAc,YAAY,oBAAoB;AACjD,YAAI,2BAA2B,UAAU;AACzC,+BACE,eAAe,OAAO,4BACtB,eAAe,OAAO,QAAQ;AAChC,6BAAqBA,gBAAe,iBAAiB;AACrD,gCACG,eAAe,OAAO,QAAQ,oCAC7B,eAAe,OAAO,QAAQ,8BAC9B,sBAAsB,eAAe,gBACrC;AAAA,UACEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACI,yBAAiB;AACjB,YAAI,WAAWA,gBAAe;AAC9B,gBAAQ,QAAQ;AAChB,2BAAmBA,iBAAgB,WAAW,SAASG,YAAW;AAClE,oDAA2C;AAC3C,qBAAaH,gBAAe;AAC5B,8BAAsB,aAAa,cAAc,kBAC5C,eAAe,OAAO,6BACpB;AAAA,UACCA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,WAED,aAAaA,gBAAe,iBAC9B,WACC,kBACA;AAAA,UACEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,cAEC,wBACE,eAAe,OAAO,QAAQ,6BAC7B,eAAe,OAAO,QAAQ,uBAC/B,eAAe,OAAO,QAAQ,sBAC7B,QAAQ,mBAAkB,GAC5B,eAAe,OAAO,QAAQ,6BAC5B,QAAQ,0BAAyB,IACrC,eAAe,OAAO,QAAQ,sBAC3BA,gBAAe,SAAS,aAC1B,eAAe,OAAO,QAAQ,sBAC5BA,gBAAe,SAAS,UAC1BA,gBAAe,gBAAgB,WAC/BA,gBAAe,gBAAgB,aACnC,QAAQ,QAAQ,WAChB,QAAQ,QAAQ,YAChB,QAAQ,UAAU,aAClB,YAAY,aACZ,eAAe,OAAO,QAAQ,sBAC5BA,gBAAe,SAAS,UAC1B,YAAY;AAAA,MACrB,OAAS;AACL,kBAAUA,gBAAe;AACzB,yBAAiB,SAASA,eAAc;AACxC,sBAAcA,gBAAe;AAC7B,+BAAuB,2BAA2B,WAAW,WAAW;AACxE,gBAAQ,QAAQ;AAChB,mCAA2BA,gBAAe;AAC1C,mBAAW,QAAQ;AACnB,qBAAa,UAAU;AACvB,mBAAW;AACX,qBAAa,OAAO,cAClB,SAAS,eACR,WAAW,YAAY,UAAU;AACpC,6BAAqB,UAAU;AAC/B,SAAC,aACC,eAAe,OAAO,sBACtB,eAAe,OAAO,QAAQ,4BAC7B,eAAe,OAAO,QAAQ,oCAC7B,eAAe,OAAO,QAAQ,8BAC9B,gBAAgB,4BAA4B,aAAa,aACzD;AAAA,UACEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACI,yBAAiB;AACjB,mBAAWA,gBAAe;AAC1B,gBAAQ,QAAQ;AAChB,2BAAmBA,iBAAgB,WAAW,SAASG,YAAW;AAClE,oDAA2C;AAC3C,YAAI,WAAWH,gBAAe;AAC9B,wBAAgB,4BAChB,aAAa,YACb,kBACC,SAAS,WACR,SAAS,QAAQ,gBACjB,sBAAsB,QAAQ,YAAY,KACvC,eAAe,OAAO,uBACpB;AAAA,UACCA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,WAED,WAAWA,gBAAe,iBAC5B,uBACC,kBACA;AAAA,UACEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,aAED,SAAS,WACR,SAAS,QAAQ,gBACjB,sBAAsB,QAAQ,YAAY,MACzC,cACE,eAAe,OAAO,QAAQ,8BAC7B,eAAe,OAAO,QAAQ,wBAC/B,eAAe,OAAO,QAAQ,uBAC7B,QAAQ,oBAAoB,WAAW,UAAU,QAAQ,GAC3D,eAAe,OAAO,QAAQ,8BAC5B,QAAQ;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,QAClB,IACY,eAAe,OAAO,QAAQ,uBAC3BA,gBAAe,SAAS,IAC3B,eAAe,OAAO,QAAQ,4BAC3BA,gBAAe,SAAS,UAC1B,eAAe,OAAO,QAAQ,sBAC5B,gBAAgB,QAAQ,iBACvB,aAAa,QAAQ,kBACtBA,gBAAe,SAAS,IAC3B,eAAe,OAAO,QAAQ,2BAC3B,gBAAgB,QAAQ,iBACvB,aAAa,QAAQ,kBACtBA,gBAAe,SAAS,OAC1BA,gBAAe,gBAAgB,WAC/BA,gBAAe,gBAAgB,WACnC,QAAQ,QAAQ,WAChB,QAAQ,QAAQ,UAChB,QAAQ,UAAU,UAClB,YAAY,yBACZ,eAAe,OAAO,QAAQ,sBAC5B,gBAAgB,QAAQ,iBACvB,aAAa,QAAQ,kBACtBA,gBAAe,SAAS,IAC3B,eAAe,OAAO,QAAQ,2BAC3B,gBAAgB,QAAQ,iBACvB,aAAa,QAAQ,kBACtBA,gBAAe,SAAS,OAC1B,YAAY;AAAA,MACrB;AACE,gBAAU;AACV,cAAQ,SAASA,eAAc;AAC/B,kBAAY,OAAOA,gBAAe,QAAQ;AAC1C,iBAAW,aACL,UAAUA,gBAAe,WAC1B,YACC,aAAa,eAAe,OAAO,UAAU,2BACzC,OACA,QAAQ,OAAM,GACnBA,gBAAe,SAAS,GACzB,SAAS,WAAW,aACdA,gBAAe,QAAQ;AAAA,QACvBA;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,QACAG;AAAA,SAEDH,gBAAe,QAAQ;AAAA,QACtBA;AAAA,QACA;AAAA,QACA;AAAA,QACAG;AAAA,MACZ,KACU,kBAAkB,SAASH,iBAAgB,WAAWG,YAAW,GACpEH,gBAAe,gBAAgB,QAAQ,OACvC,UAAUA,gBAAe,SACzB,UAAU;AAAA,QACT;AAAA,QACAA;AAAA,QACAG;AAAA,MACR;AACE,aAAO;AAAA,IACT;AACA,aAAS,8BACP,SACAH,iBACA,cACAG,cACA;AACA,0BAAmB;AACnB,MAAAH,gBAAe,SAAS;AACxB,wBAAkB,SAASA,iBAAgB,cAAcG,YAAW;AACpE,aAAOH,gBAAe;AAAA,IACxB;AACA,QAAI,mBAAmB;AAAA,MACrB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,WAAW;AAAA,MACX,iBAAiB;AAAA;AAEnB,aAAS,4BAA4BG,cAAa;AAChD,aAAO,EAAE,WAAWA,cAAa,WAAW,kBAAiB,EAAE;AAAA,IACjE;AACA,aAAS,8BACP,SACA,qBACAA,cACA;AACA,gBAAU,SAAS,UAAU,QAAQ,aAAa,CAACA,eAAc;AACjE,8BAAwB,WAAW;AACnC,aAAO;AAAA,IACT;AACA,aAAS,wBAAwB,SAASH,iBAAgBG,cAAa;AACrE,UAAI,YAAYH,gBAAe,cAC7B,eAAe,OACf,aAAa,OAAOA,gBAAe,QAAQ,MAC3C;AACF,OAAC,kBAAkB,gBAChB,kBACC,SAAS,WAAW,SAAS,QAAQ,gBACjC,QACA,OAAO,oBAAoB,UAAU;AAC7C,0BAAqB,eAAe,MAAMA,gBAAe,SAAS;AAClE,wBAAkB,OAAOA,gBAAe,QAAQ;AAChD,MAAAA,gBAAe,SAAS;AACxB,UAAI,SAAS,SAAS;AACpB,YAAI,aAAa;AACf,yBACI,+BAA+BA,eAAc,IAC7C,4BAA0C;AAC9C,WAAC,UAAU,2BACL,UAAU;AAAA,YACV;AAAA,YACA;AAAA,aAED,UAAU,SAAS,WAAW,QAAQ,QAAQ,OAAO,UAAU,MAChE,SAAS,YACLA,gBAAe,gBAAgB;AAAA,YAC/B,YAAY;AAAA,YACZ,aACE,SAAS,sBACL,EAAE,IAAI,eAAe,UAAU,oBAAmB,IAClD;AAAA,YACN,WAAW;AAAA,YACX,iBAAiB;AAAA,aAElBG,eAAc,kCAAkC,OAAO,GACvDA,aAAY,SAASH,iBACrBA,gBAAe,QAAQG,cACvB,uBAAuBH,iBACvB,yBAAyB,SAC3B,UAAU;AACf,cAAI,SAAS,QAAS,OAAM,yBAAyBA,eAAc;AACnE,qCAA2B,OAAO,IAC7BA,gBAAe,QAAQ,KACvBA,gBAAe,QAAQ;AAC5B,iBAAO;AAAA,QACb;AACI,YAAI,sBAAsB,UAAU;AACpC,oBAAY,UAAU;AACtB,YAAI;AACF,iBACE,4BAA0C,GACzC,eAAeA,gBAAe,MAC9B,sBAAsB;AAAA,YACrB,EAAE,MAAM,UAAU,UAAU,oBAAmB;AAAA,YAC/C;AAAA,aAED,YAAY;AAAA,YACX;AAAA,YACA;AAAA,YACAG;AAAA,YACA;AAAA,aAED,oBAAoB,SAASH,iBAC7B,UAAU,SAASA,iBACnB,oBAAoB,UAAU,WAC9BA,gBAAe,QAAQ,qBACvB,YAAYA,gBAAe,OAC3B,UAAU,gBAAgB,4BAA4BG,YAAW,GACjE,UAAU,aAAa;AAAA,YACtB;AAAA,YACA;AAAA,YACAA;AAAA,aAEDH,gBAAe,gBAAgB,kBAChC,0BAA0B,MAAM,SAAS;AAE7C,uCAA+BA,eAAc;AAC7C,eAAO,6BAA6BA,iBAAgB,mBAAmB;AAAA,MAC3E;AACE,UAAI,YAAY,QAAQ;AACxB,UACE,SAAS,cACP,sBAAsB,UAAU,YAAa,SAAS,sBACxD;AACA,YAAI;AACF,UAAAA,gBAAe,QAAQ,OAClB,+BAA+BA,eAAc,GAC7CA,gBAAe,SAAS,MACxBA,kBAAiB;AAAA,YAChB;AAAA,YACAA;AAAA,YACAG;AAAA,UACZ,KACU,SAASH,gBAAe,iBACrB,4BAA0C,GAC1CA,gBAAe,QAAQ,QAAQ,OAC/BA,gBAAe,SAAS,KACxBA,kBAAiB,SACjB,4BAA0C,GAC1C,sBAAsB,UAAU,UAChC,eAAeA,gBAAe,MAC9B,YAAY;AAAA,YACX,EAAE,MAAM,WAAW,UAAU,UAAU,SAAQ;AAAA,YAC/C;AAAA,aAED,sBAAsB;AAAA,YACrB;AAAA,YACA;AAAA,YACAG;AAAA,YACA;AAAA,aAED,oBAAoB,SAAS,GAC7B,UAAU,SAASH,iBACnB,oBAAoB,SAASA,iBAC7B,UAAU,UAAU,qBACpBA,gBAAe,QAAQ,WACxB;AAAA,YACEA;AAAA,YACA,QAAQ;AAAA,YACR;AAAA,YACAG;AAAA,aAED,YAAYH,gBAAe,OAC3B,UAAU,gBACT,4BAA4BG,YAAW,GACxC,UAAU,aAAa;AAAA,YACtB;AAAA,YACA;AAAA,YACAA;AAAA,aAEDH,gBAAe,gBAAgB,kBAC/BA,kBAAiB,0BAA0B,MAAM,SAAS;AAAA,iBAEhE,+BAA+BA,eAAc,GAC9C,2BAA2B,mBAAmB,GAC9C;AACA,4BACE,oBAAoB,eACpB,oBAAoB,YAAY;AAClC,cAAI,gBAAiB,KAAI,SAAS,gBAAgB;AAClD,4BAAkB;AAClB,sBAAY,MAAM,uBAAuB,GAAG,CAAC;AAC7C,oBAAU,QAAQ;AAClB,oBAAU,SAAS;AACnB,8BAAoB,EAAE,OAAO,WAAW,QAAQ,MAAM,OAAO,MAAM;AACnE,UAAAA,kBAAiB;AAAA,YACf;AAAA,YACAA;AAAA,YACAG;AAAA;QAER,WACO,oBACC,8BAA8B,SAASH,iBAAgBG,cAAa,KAAE,GACvE,kBAAkB,OAAOA,eAAc,QAAQ,aAChD,oBAAoB,iBACpB;AACA,4BAAkB;AAClB,cACE,SAAS,oBACP,YAAY,0BAA0B,iBAAiBA,YAAW,GACpE,MAAM,aAAa,cAAc,UAAU;AAE3C,kBACI,UAAU,YAAY,WACxB,+BAA+B,SAAS,SAAS,GACjD,sBAAsB,iBAAiB,SAAS,SAAS,GACzD;AAEJ,oCAA0B,mBAAmB,KAC3C,gCAA+B;AACjC,UAAAH,kBAAiB;AAAA,YACf;AAAA,YACAA;AAAA,YACAG;AAAA;QAER;AACM,oCAA0B,mBAAmB,KACvCH,gBAAe,SAAS,KACzBA,gBAAe,QAAQ,QAAQ,OAC/BA,kBAAiB,SAChB,UAAU,UAAU,aACrB,yBAAyB;AAAA,YACxB,oBAAoB;AAAA,aAErB,uBAAuBA,iBACvB,cAAc,MACd,kBAAkB,MAClB,yBAAyB,OAC1B,SAAS,WACP,4BAA4BA,iBAAgB,OAAO,GACpDA,kBAAiB;AAAA,YAChBA;AAAA,YACA,UAAU;AAAA,aAEXA,gBAAe,SAAS;AAC/B,eAAOA;AAAA,MACX;AACE,UAAI;AACF,eACE,4BAA0C,GACzC,sBAAsB,UAAU,UAChC,eAAeA,gBAAe,MAC9B,YAAY,QAAQ,OACpB,SAAS,UAAU,SACnB,YAAY,qBAAqB,WAAW;AAAA,UAC3C,MAAM;AAAA,UACN,UAAU,UAAU;AAAA,QAC5B,CAAO,GACA,UAAU,eAAe,UAAU,eAAe,UACnD,SAAS,SACJ,sBAAsB;AAAA,UACrB;AAAA,UACA;AAAA,aAEA,sBAAsB;AAAA,UACtB;AAAA,UACA;AAAA,UACAG;AAAA,UACA;AAAA,WAED,oBAAoB,SAAS,IACjC,oBAAoB,SAASH,iBAC7B,UAAU,SAASA,iBACnB,UAAU,UAAU,qBACpBA,gBAAe,QAAQ,WACxB,0BAA0B,MAAM,SAAS,GACxC,YAAYA,gBAAe,OAC3B,sBAAsB,QAAQ,MAAM,eACrC,SAAS,sBACJ,sBAAsB,4BAA4BG,YAAW,KAC5D,eAAe,oBAAoB,WACrC,SAAS,gBACH,YAAY,aAAa,eAC1B,eACC,aAAa,WAAW,YACpB,EAAE,QAAQ,WAAW,MAAM,UAAS,IACpC,gBACL,eAAe,kBAAiB,GACpC,sBAAsB;AAAA,UACrB,WAAW,oBAAoB,YAAYA;AAAA,UAC3C,WAAW;AAAA,QACvB,IACO,UAAU,gBAAgB,qBAC1B,UAAU,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACAA;AAAA,WAEDH,gBAAe,gBAAgB,kBAChC,0BAA0B,QAAQ,OAAO,SAAS;AAEtD,qCAA+BA,eAAc;AAC7C,MAAAG,eAAc,QAAQ;AACtB,gBAAUA,aAAY;AACtB,MAAAA,eAAc,qBAAqBA,cAAa;AAAA,QAC9C,MAAM;AAAA,QACN,UAAU,UAAU;AAAA,MACxB,CAAG;AACD,MAAAA,aAAY,SAASH;AACrB,MAAAG,aAAY,UAAU;AACtB,eAAS,YACL,kBAAkBH,gBAAe,WACnC,SAAS,mBACHA,gBAAe,YAAY,CAAC,OAAO,GAAKA,gBAAe,SAAS,MAClE,gBAAgB,KAAK,OAAO;AAClC,MAAAA,gBAAe,QAAQG;AACvB,MAAAH,gBAAe,gBAAgB;AAC/B,aAAOG;AAAA,IACT;AACA,aAAS,6BAA6BH,iBAAgB,iBAAiB;AACrE,wBAAkB;AAAA,QAChB,EAAE,MAAM,WAAW,UAAU,gBAAe;AAAA,QAC5CA,gBAAe;AAAA;AAEjB,sBAAgB,SAASA;AACzB,aAAQA,gBAAe,QAAQ;AAAA,IACjC;AACA,aAAS,kCAAkC,gBAAgB,MAAM;AAC/D,uBAAiB,qBAAqB,IAAI,gBAAgB,MAAM,IAAI;AACpE,qBAAe,QAAQ;AACvB,aAAO;AAAA,IACT;AACA,aAAS,uCACP,SACAA,iBACAG,cACA;AACA,2BAAqBH,iBAAgB,QAAQ,OAAO,MAAMG,YAAW;AACrE,gBAAU;AAAA,QACRH;AAAA,QACAA,gBAAe,aAAa;AAAA;AAE9B,cAAQ,SAAS;AACjB,MAAAA,gBAAe,gBAAgB;AAC/B,aAAO;AAAA,IACT;AACA,aAAS,4BAA4B,OAAOG,cAAa,iBAAiB;AACxE,YAAM,SAASA;AACf,UAAI,YAAY,MAAM;AACtB,eAAS,cAAc,UAAU,SAASA;AAC1C,sCAAgC,MAAM,QAAQA,cAAa,eAAe;AAAA,IAC5E;AACA,aAAS,4BACPH,iBACA,aACA,MACA,gBACA,UACAS,gBACA;AACA,UAAI,cAAcT,gBAAe;AACjC,eAAS,cACJA,gBAAe,gBAAgB;AAAA,QAC9B;AAAA,QACA,WAAW;AAAA,QACX,oBAAoB;AAAA,QACpB,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,eAAeS;AAAA,WAEf,YAAY,cAAc,aAC3B,YAAY,YAAY,MACxB,YAAY,qBAAqB,GACjC,YAAY,OAAO,gBACnB,YAAY,OAAO,MACnB,YAAY,WAAW,UACvB,YAAY,gBAAgBA;AAAA,IACnC;AACA,aAAS,4BAA4B,SAAST,iBAAgBG,cAAa;AACzE,UAAI,YAAYH,gBAAe,cAC7B,cAAc,UAAU,aACxB,WAAW,UAAU;AACvB,kBAAY,UAAU;AACtB,UAAI,kBAAkB,oBAAoB,SACxC,sBAAsB,OAAO,kBAAkB;AACjD,6BACM,kBAAmB,kBAAkB,IAAK,GAC3CA,gBAAe,SAAS,OACxB,mBAAmB;AACxB,WAAK,qBAAqB,eAAe;AACzC,wBAAkB,SAASA,iBAAgB,WAAWG,YAAW;AACjE,kBAAY,cAAc,gBAAgB;AAC1C,UAAI,CAAC,uBAAuB,SAAS,WAAW,OAAO,QAAQ,QAAQ;AACrE,UAAG,MAAK,UAAUH,gBAAe,OAAO,SAAS,WAAW;AAC1D,cAAI,OAAO,QAAQ;AACjB,qBAAS,QAAQ,iBACf,4BAA4B,SAASG,cAAaH,eAAc;AAAA,mBAC3D,OAAO,QAAQ;AACtB,wCAA4B,SAASG,cAAaH,eAAc;AAAA,mBACzD,SAAS,QAAQ,OAAO;AAC/B,oBAAQ,MAAM,SAAS;AACvB,sBAAU,QAAQ;AAClB;AAAA,UACR;AACM,cAAI,YAAYA,gBAAgB,OAAM;AACtC,iBAAO,SAAS,QAAQ,WAAW;AACjC,gBAAI,SAAS,QAAQ,UAAU,QAAQ,WAAWA;AAChD,oBAAM;AACR,sBAAU,QAAQ;AAAA,UAC1B;AACM,kBAAQ,QAAQ,SAAS,QAAQ;AACjC,oBAAU,QAAQ;AAAA,QACxB;AACE,cAAQ,aAAW;AAAA,QACjB,KAAK;AACH,UAAAG,eAAcH,gBAAe;AAC7B,eAAK,cAAc,MAAM,SAASG;AAChC,YAAC,UAAUA,aAAY,WACrB,SAAS,WACP,SAAS,mBAAmB,OAAO,MAClC,cAAcA,eAChBA,eAAcA,aAAY;AAC/B,UAAAA,eAAc;AACd,mBAASA,gBACH,cAAcH,gBAAe,OAASA,gBAAe,QAAQ,SAC7D,cAAcG,aAAY,SAAWA,aAAY,UAAU;AACjE;AAAA,YACEH;AAAA,YACA;AAAA,YACA;AAAA,YACAG;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,UAAAA,eAAc;AACd,wBAAcH,gBAAe;AAC7B,eAAKA,gBAAe,QAAQ,MAAM,SAAS,eAAe;AACxD,sBAAU,YAAY;AACtB,gBAAI,SAAS,WAAW,SAAS,mBAAmB,OAAO,GAAG;AAC5D,cAAAA,gBAAe,QAAQ;AACvB;AAAA,YACV;AACQ,sBAAU,YAAY;AACtB,wBAAY,UAAUG;AACtB,YAAAA,eAAc;AACd,0BAAc;AAAA,UACtB;AACM;AAAA,YACEH;AAAA,YACA;AAAA,YACAG;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACEH;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF;AACE,UAAAA,gBAAe,gBAAgB;AAAA,MACrC;AACE,aAAOA,gBAAe;AAAA,IACxB;AACA,aAAS,6BAA6B,SAASA,iBAAgBG,cAAa;AAC1E,eAAS,YAAYH,gBAAe,eAAe,QAAQ;AAC3D,wCAAkCA,gBAAe;AACjD,UAAI,OAAOG,eAAcH,gBAAe;AACtC,YAAI,SAAS,SAAS;AACpB,cACG;AAAA,YACC;AAAA,YACAA;AAAA,YACAG;AAAA,YACA;AAAA,aAEF,OAAOA,eAAcH,gBAAe;AAEpC,mBAAO;AAAA,QACf,MAAW,QAAO;AAChB,UAAI,SAAS,WAAWA,gBAAe,UAAU,QAAQ;AACvD,cAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,UAAI,SAASA,gBAAe,OAAO;AACjC,kBAAUA,gBAAe;AACzB,QAAAG,eAAc,qBAAqB,SAAS,QAAQ,YAAY;AAChE,QAAAH,gBAAe,QAAQG;AACvB,aAAKA,aAAY,SAASH,iBAAgB,SAAS,QAAQ;AACzD,UAAC,UAAU,QAAQ,SAChBG,eAAcA,aAAY,UACzB,qBAAqB,SAAS,QAAQ,YAAY,GACnDA,aAAY,SAASH;AAC1B,QAAAG,aAAY,UAAU;AAAA,MAC1B;AACE,aAAOH,gBAAe;AAAA,IACxB;AACA,aAAS,8BAA8B,SAASG,cAAa;AAC3D,UAAI,OAAO,QAAQ,QAAQA,cAAc,QAAO;AAChD,gBAAU,QAAQ;AAClB,aAAO,SAAS,WAAW,sBAAsB,OAAO,IAAI,OAAK;AAAA,IACnE;AACA,aAAS,uCACP,SACAH,iBACAG,cACA;AACA,cAAQH,gBAAe,KAAG;AAAA,QACxB,KAAK;AACH,4BAAkBA,iBAAgBA,gBAAe,UAAU,aAAa;AACxE,uBAAaA,iBAAgB,cAAc,QAAQ,cAAc,KAAK;AACtE,8BAAmB;AACnB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,0BAAgBA,eAAc;AAC9B;AAAA,QACF,KAAK;AACH,4BAAkBA,iBAAgBA,gBAAe,UAAU,aAAa;AACxE;AAAA,QACF,KAAK;AACH;AAAA,YACEA;AAAA,YACAA,gBAAe;AAAA,YACfA,gBAAe,cAAc;AAAA;AAE/B;AAAA,QACF,KAAK;AACH,cAAI,SAASA,gBAAe;AAC1B,mBACGA,gBAAe,SAAS,KACzB,sCAAsCA,eAAc,GACpD;AAEJ;AAAA,QACF,KAAK;AACH,cAAI,YAAYA,gBAAe;AAC/B,cAAI,SAAS,WAAW;AACtB,gBAAI,SAAS,UAAU;AACrB,qBACE,+BAA+BA,eAAc,GAC5CA,gBAAe,SAAS,KACzB;AAEJ,gBAAI,OAAOG,eAAcH,gBAAe,MAAM;AAC5C,qBAAO,wBAAwB,SAASA,iBAAgBG,YAAW;AACrE,2CAA+BH,eAAc;AAC7C,sBAAU;AAAA,cACR;AAAA,cACAA;AAAA,cACAG;AAAA;AAEF,mBAAO,SAAS,UAAU,QAAQ,UAAU;AAAA,UACpD;AACM,yCAA+BH,eAAc;AAC7C;AAAA,QACF,KAAK;AACH,cAAI,mBAAmB,OAAO,QAAQ,QAAQ;AAC9C,sBAAY,OAAOG,eAAcH,gBAAe;AAChD,wBACG;AAAA,YACC;AAAA,YACAA;AAAA,YACAG;AAAA,YACA;AAAA,aAED,YAAY,OAAOA,eAAcH,gBAAe;AACnD,cAAI,kBAAkB;AACpB,gBAAI;AACF,qBAAO;AAAA,gBACL;AAAA,gBACAA;AAAA,gBACAG;AAAA;AAEJ,YAAAH,gBAAe,SAAS;AAAA,UAChC;AACM,6BAAmBA,gBAAe;AAClC,mBAAS,qBACL,iBAAiB,YAAY,MAC9B,iBAAiB,OAAO,MACxB,iBAAiB,aAAa;AACjC,eAAK,qBAAqB,oBAAoB,OAAO;AACrD,cAAI,UAAW;AAAA,cACV,QAAO;AAAA,QACd,KAAK;AACH,iBACGA,gBAAe,QAAQ,GACxB;AAAA,YACE;AAAA,YACAA;AAAA,YACAG;AAAA,YACAH,gBAAe;AAAA,UACzB;AAAA,QAEI,KAAK;AACH,uBAAaA,iBAAgB,cAAc,QAAQ,cAAc,KAAK;AAAA,MAC5E;AACE,aAAO,6BAA6B,SAASA,iBAAgBG,YAAW;AAAA,IAC1E;AACA,aAAS,UAAU,SAASH,iBAAgBG,cAAa;AACvD,UAAI,SAAS;AACX,YAAI,QAAQ,kBAAkBH,gBAAe;AAC3C,6BAAmB;AAAA,aAChB;AACH,cACE,CAAC,8BAA8B,SAASG,YAAW,KACnD,OAAOH,gBAAe,QAAQ;AAE9B,mBACG,mBAAmB,OACpB;AAAA,cACE;AAAA,cACAA;AAAA,cACAG;AAAA,YACZ;AAEM,6BAAmB,OAAO,QAAQ,QAAQ,UAAU,OAAK;AAAA,QAC/D;AAAA;AAEI,QAAC,mBAAmB,OAClB,eACE,OAAOH,gBAAe,QAAQ,YAC9B,WAAWA,iBAAgB,eAAeA,gBAAe,KAAK;AACpE,MAAAA,gBAAe,QAAQ;AACvB,cAAQA,gBAAe,KAAG;AAAA,QACxB,KAAK;AACH,aAAG;AACD,gBAAI,QAAQA,gBAAe;AAC3B,sBAAU,YAAYA,gBAAe,WAAW;AAChD,YAAAA,gBAAe,OAAO;AACtB,gBAAI,eAAe,OAAO;AACxB,8BAAgB,OAAO,KACjB,QAAQ,2BAA2B,SAAS,KAAK,GAClDA,gBAAe,MAAM,GACrBA,kBAAiB;AAAA,gBAChB;AAAA,gBACAA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACAG;AAAA,cAChB,MACgBH,gBAAe,MAAM,GACtBA,kBAAiB;AAAA,gBAChB;AAAA,gBACAA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACAG;AAAA,cAChB;AAAA,iBACa;AACH,kBAAI,WAAW,WAAW,SAAS,SAAS;AAC1C,oBAAI,WAAW,QAAQ;AACvB,oBAAI,aAAa,wBAAwB;AACvC,kBAAAH,gBAAe,MAAM;AACrB,kBAAAA,kBAAiB;AAAA,oBACf;AAAA,oBACAA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACAG;AAAA;AAEF,wBAAM;AAAA,gBACpB,WAAuB,aAAa,iBAAiB;AACvC,kBAAAH,gBAAe,MAAM;AACrB,kBAAAA,kBAAiB;AAAA,oBACf;AAAA,oBACAA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACAG;AAAA;AAEF,wBAAM;AAAA,gBACpB;AAAA,cACA;AACU,cAAAH,kBAAiB,yBAAyB,OAAO,KAAK;AACtD,oBAAM,MAAM,uBAAuB,KAAKA,iBAAgB,EAAE,CAAC;AAAA,YACrE;AAAA,UACA;AACM,iBAAOA;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,YACL;AAAA,YACAA;AAAA,YACAA,gBAAe;AAAA,YACfA,gBAAe;AAAA,YACfG;AAAA;QAEJ,KAAK;AACH,iBACG,QAAQH,gBAAe,MACvB,WAAW;AAAA,YACV;AAAA,YACAA,gBAAe;AAAA,aAEjB;AAAA,YACE;AAAA,YACAA;AAAA,YACA;AAAA,YACA;AAAA,YACAG;AAAA,UACV;AAAA,QAEI,KAAK;AACH,aAAG;AACD;AAAA,cACEH;AAAA,cACAA,gBAAe,UAAU;AAAA;AAE3B,gBAAI,SAAS,QAAS,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAC7D,oBAAQA,gBAAe;AACvB,gBAAI,YAAYA,gBAAe;AAC/B,uBAAW,UAAU;AACrB,6BAAiB,SAASA,eAAc;AACxC,+BAAmBA,iBAAgB,OAAO,MAAMG,YAAW;AAC3D,gBAAI,YAAYH,gBAAe;AAC/B,oBAAQ,UAAU;AAClB,yBAAaA,iBAAgB,cAAc,KAAK;AAChD,sBAAU,UAAU,SAClB;AAAA,cACEA;AAAA,cACA,CAAC,YAAY;AAAA,cACbG;AAAA,cACA;AAAA;AAEJ,wDAA2C;AAC3C,oBAAQ,UAAU;AAClB,gBAAI,UAAU;AACZ,kBACI,YAAY;AAAA,gBACZ,SAAS;AAAA,gBACT,cAAc;AAAA,gBACd,OAAO,UAAU;AAAA,iBAElBH,gBAAe,YAAY,YAAY,WACvCA,gBAAe,gBAAgB,WAChCA,gBAAe,QAAQ,KACvB;AACA,gBAAAA,kBAAiB;AAAA,kBACf;AAAA,kBACAA;AAAA,kBACA;AAAA,kBACAG;AAAA;AAEF,sBAAM;AAAA,cAClB,WAAqB,UAAU,UAAU;AAC7B,2BAAW;AAAA,kBACT,MAAM,uBAAuB,GAAG,CAAC;AAAA,kBACjCH;AAAA;AAEF,oCAAoB,QAAQ;AAC5B,gBAAAA,kBAAiB;AAAA,kBACf;AAAA,kBACAA;AAAA,kBACA;AAAA,kBACAG;AAAA;AAEF,sBAAM;AAAA,cAClB,OAAiB;AACL,0BAAUH,gBAAe,UAAU;AACnC,wBAAQ,QAAQ,UAAQ;AAAA,kBACtB,KAAK;AACH,8BAAU,QAAQ;AAClB;AAAA,kBACF;AACE,8BACE,WAAW,QAAQ,WACf,QAAQ,cAAc,OACtB;AAAA,gBACtB;AACY,yCAAyB,kBAAkB,QAAQ,UAAU;AAC7D,uCAAuBA;AACvB,8BAAc;AACd,kCAAkB;AAClB,yCAAyB;AACzB,gBAAAG,eAAc;AAAA,kBACZH;AAAA,kBACA;AAAA,kBACA;AAAA,kBACAG;AAAA;AAEF,qBAAKH,gBAAe,QAAQG,cAAaA;AACvC,kBAACA,aAAY,QAASA,aAAY,QAAQ,KAAM,MAC7CA,eAAcA,aAAY;AAAA,cAC3C;AAAA,iBACa;AACH,kCAAmB;AACnB,kBAAI,UAAU,UAAU;AACtB,gBAAAH,kBAAiB;AAAA,kBACf;AAAA,kBACAA;AAAA,kBACAG;AAAA;AAEF,sBAAM;AAAA,cAClB;AACU,gCAAkB,SAASH,iBAAgB,OAAOG,YAAW;AAAA,YACvE;AACQ,YAAAH,kBAAiBA,gBAAe;AAAA,UACxC;AACM,iBAAOA;AAAA,QACT,KAAK;AACH,iBACE,QAAQ,SAASA,eAAc,GAC/B,SAAS,WACJG,eAAc;AAAA,YACbH,gBAAe;AAAA,YACf;AAAA,YACAA,gBAAe;AAAA,YACf;AAAA,eAECA,gBAAe,gBAAgBG,eAChC,gBACEA,eAAcH,gBAAe,MAC9B,UAAUA,gBAAe,cACzB,QAAQ;AAAA,YACP,wBAAwB;AAAA,UACxC,EAAgB,cAAcG,YAAW,GAC1B,MAAM,mBAAmB,IAAIH,iBAC7B,MAAM,gBAAgB,IAAI,SAC3B,qBAAqB,OAAOG,cAAa,OAAO,GAChD,oBAAoB,KAAK,GACxBH,gBAAe,YAAY,SAC7BA,gBAAe,gBAAgB;AAAA,YAC9BA,gBAAe;AAAA,YACf,QAAQ;AAAA,YACRA,gBAAe;AAAA,YACf,QAAQ;AAAA,UACtB,GACQ;AAAA,QAEJ,KAAK;AACH,iBACE,gBAAgBA,eAAc,GAC9B,SAAS,WACP,gBACE,QAAQA,gBAAe,YACvB;AAAA,YACEA,gBAAe;AAAA,YACfA,gBAAe;AAAA,YACf,wBAAwB;AAAA,aAE3B,uBAAuBA,iBACvB,yBAAyB,MACzB,WAAW,wBACZ,iBAAiBA,gBAAe,IAAI,KAC9B,8CAA8C,UAC/C,yBAAyB,kBAAkB,MAAM,UAAU,KAC3D,yBAAyB,WAChC;AAAA,YACE;AAAA,YACAA;AAAA,YACAA,gBAAe,aAAa;AAAA,YAC5BG;AAAA,aAEF,QAAQ,SAASH,eAAc,GAC/B,SAAS,YAAYA,gBAAe,SAAS,UAC7CA,gBAAe;AAAA,QAEnB,KAAK;AACH,cAAI,SAAS,WAAW,aAAa;AACnC,gBAAK,WAAW,QAAQ;AACtB,cAAC,QAAQ;AAAA,gBACP;AAAA,gBACAA,gBAAe;AAAA,gBACfA,gBAAe;AAAA,gBACf;AAAA,iBAEA,SAAS,SACHA,gBAAe,YAAY,OAC5B,uBAAuBA,iBACvB,yBAAyB,kBAAkB,MAAM,UAAU,GAC3D,yBAAyB,OACzB,WAAW,QACX,WAAW;AACpB,wBAAY,yBAAyBA,eAAc;AAAA,UAC3D;AACM,0BAAgBA,eAAc;AAC9B,qBAAWA,gBAAe;AAC1B,sBAAYA,gBAAe;AAC3B,sBAAY,SAAS,UAAU,QAAQ,gBAAgB;AACvD,kBAAQ,UAAU;AAClB,+BAAqB,UAAU,SAAS,IACnC,QAAQ,OACT,SAAS,aACT,qBAAqB,UAAU,SAAS,MACvCA,gBAAe,SAAS;AAC7B,mBAASA,gBAAe,kBACpB,WAAW;AAAA,YACX;AAAA,YACAA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACAG;AAAA,aAED,sBAAsB,gBAAgB;AACzC,kBAAQ,SAASH,eAAc;AAC/B,4BAAkB,SAASA,iBAAgB,OAAOG,YAAW;AAC7D,iBAAOH,gBAAe;AAAA,QACxB,KAAK;AACH,cAAI,SAAS,WAAW,aAAa;AACnC,gBAAK,UAAUG,eAAc;AAC3B,cAACA,eAAc;AAAA,gBACbA;AAAA,gBACAH,gBAAe;AAAA,gBACf;AAAA,iBAEA,SAASG,gBACHH,gBAAe,YAAYG,cAC5B,uBAAuBH,iBACvB,yBAAyB,MACzB,UAAU,QACV,UAAU;AACnB,uBAAW,yBAAyBA,eAAc;AAAA,UAC1D;AACM,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO,wBAAwB,SAASA,iBAAgBG,YAAW;AAAA,QACrE,KAAK;AACH,iBACE;AAAA,YACEH;AAAA,YACAA,gBAAe,UAAU;AAAA,aAE1B,QAAQA,gBAAe,cACxB,SAAS,UACJA,gBAAe,QAAQ;AAAA,YACtBA;AAAA,YACA;AAAA,YACA;AAAA,YACAG;AAAA,cAEF,kBAAkB,SAASH,iBAAgB,OAAOG,YAAW,GACjEH,gBAAe;AAAA,QAEnB,KAAK;AACH,iBAAO;AAAA,YACL;AAAA,YACAA;AAAA,YACAA,gBAAe;AAAA,YACfA,gBAAe;AAAA,YACfG;AAAA;QAEJ,KAAK;AACH,iBACE;AAAA,YACE;AAAA,YACAH;AAAA,YACAA,gBAAe;AAAA,YACfG;AAAA,aAEFH,gBAAe;AAAA,QAEnB,KAAK;AACH,iBACE;AAAA,YACE;AAAA,YACAA;AAAA,YACAA,gBAAe,aAAa;AAAA,YAC5BG;AAAA,aAEFH,gBAAe;AAAA,QAEnB,KAAK;AACH,iBACE;AAAA,YACE;AAAA,YACAA;AAAA,YACAA,gBAAe,aAAa;AAAA,YAC5BG;AAAA,aAEFH,gBAAe;AAAA,QAEnB,KAAK;AACH,iBACG,QAAQA,gBAAe,cACxB,aAAaA,iBAAgBA,gBAAe,MAAM,MAAM,KAAK,GAC7D,kBAAkB,SAASA,iBAAgB,MAAM,UAAUG,YAAW,GACtEH,gBAAe;AAAA,QAEnB,KAAK;AACH,iBACG,WAAWA,gBAAe,KAAK,UAC/B,QAAQA,gBAAe,aAAa,UACrC,qBAAqBA,eAAc,GAClC,WAAW,YAAY,QAAQ,GAC/B,QAAQ,MAAM,QAAQ,GACtBA,gBAAe,SAAS,GACzB,kBAAkB,SAASA,iBAAgB,OAAOG,YAAW,GAC7DH,gBAAe;AAAA,QAEnB,KAAK;AACH,iBAAO;AAAA,YACL;AAAA,YACAA;AAAA,YACAA,gBAAe;AAAA,YACfA,gBAAe;AAAA,YACfG;AAAA;QAEJ,KAAK;AACH,iBAAO;AAAA,YACL;AAAA,YACAH;AAAA,YACAA,gBAAe;AAAA,YACfA,gBAAe;AAAA,YACfG;AAAA;QAEJ,KAAK;AACH,iBAAO,4BAA4B,SAASH,iBAAgBG,YAAW;AAAA,QACzE,KAAK;AACH,iBAAO,wBAAwB,SAASH,iBAAgBG,YAAW;AAAA,QACrE,KAAK;AACH,iBAAO;AAAA,YACL;AAAA,YACAH;AAAA,YACAG;AAAA,YACAH,gBAAe;AAAA;QAEnB,KAAK;AACH,iBACE,qBAAqBA,eAAc,GAClC,QAAQ,YAAY,YAAY,GACjC,SAAS,WACH,WAAW,kBAAiB,GAC9B,SAAS,aACL,WAAW,oBACZ,YAAY,YAAW,GACvB,SAAS,cAAc,WACxB,UAAU,YACV,SAAS,cAAc,SAAS,oBAAoBG,eACnD,WAAW,YACbH,gBAAe,gBAAgB,EAAE,QAAQ,OAAO,OAAO,SAAQ,GAChE,sBAAsBA,eAAc,GACpC,aAAaA,iBAAgB,cAAc,QAAQ,MAClD,OAAO,QAAQ,QAAQG,kBACrB,iBAAiB,SAASH,eAAc,GACzC,mBAAmBA,iBAAgB,MAAM,MAAMG,YAAW,GAC1D,gDACD,WAAW,QAAQ,eACnB,YAAYH,gBAAe,eAC5B,SAAS,WAAW,SACd,WAAW,EAAE,QAAQ,OAAO,OAAO,MAAK,GACzCA,gBAAe,gBAAgB,UAChC,MAAMA,gBAAe,UAClBA,gBAAe,gBACdA,gBAAe,YAAY,YACzB,WACN,aAAaA,iBAAgB,cAAc,KAAK,MAC9C,QAAQ,UAAU,OACpB,aAAaA,iBAAgB,cAAc,KAAK,GAChD,UAAU,SAAS,SACjB;AAAA,YACEA;AAAA,YACA,CAAC,YAAY;AAAA,YACbG;AAAA,YACA;AAAA,UACpB,KACQ;AAAA,YACE;AAAA,YACAH;AAAA,YACAA,gBAAe,aAAa;AAAA,YAC5BG;AAAA,aAEFH,gBAAe;AAAA,QAEnB,KAAK;AACH,gBAAMA,gBAAe;AAAA,MAC3B;AACE,YAAM,MAAM,uBAAuB,KAAKA,gBAAe,GAAG,CAAC;AAAA,IAC7D;AACA,aAAS,WAAWA,iBAAgB;AAClC,MAAAA,gBAAe,SAAS;AAAA,IAC1B;AACA,aAAS,kCACPA,iBACA,MACA,UACA,UACAG,cACA;AACA,UAAK,OAAO,OAAOH,gBAAe,OAAO,IAAM,QAAO;AACtD,UAAI,MAAM;AACR,YACIA,gBAAe,SAAS,WACzBG,eAAc,eAAeA;AAE9B,cAAIH,gBAAe,UAAU,SAAU,CAAAA,gBAAe,SAAS;AAAA,mBACtD,6BAA4B,EAAI,CAAAA,gBAAe,SAAS;AAAA;AAE/D,kBACI,oBAAoB,6BACtB;AAAA,MAEV,MAAS,CAAAA,gBAAe,SAAS;AAAA,IACjC;AACA,aAAS,kCAAkCA,iBAAgB,UAAU;AACnE,UAAI,iBAAiB,SAAS,QAAQ,OAAO,SAAS,MAAM,UAAU;AACpE,QAAAA,gBAAe,SAAS;AAAA,eACfA,gBAAe,SAAS,UAAW,CAAC,gBAAgB,QAAQ;AACrE,YAAI,6BAA4B,EAAI,CAAAA,gBAAe,SAAS;AAAA;AAE1D,gBACI,oBAAoB,6BACtB;AAAA,IAER;AACA,aAAS,oBAAoBA,iBAAgB,YAAY;AACvD,eAAS,eAAeA,gBAAe,SAAS;AAChD,MAAAA,gBAAe,QAAQ,UACnB,aACA,OAAOA,gBAAe,MAAM,mBAAkB,IAAK,WACpDA,gBAAe,SAAS,YACxB,qCAAqC;AAAA,IAC1C;AACA,aAAS,mBAAmB,aAAa,0BAA0B;AACjE,UAAI,CAAC;AACH,gBAAQ,YAAY,UAAQ;AAAA,UAC1B,KAAK;AACH,uCAA2B,YAAY;AACvC,qBAAS,eAAe,MAAM,SAAS;AACrC,uBAAS,yBAAyB,cAC/B,eAAe,2BACf,2BAA2B,yBAAyB;AACzD,qBAAS,eACJ,YAAY,OAAO,OACnB,aAAa,UAAU;AAC5B;AAAA,UACF,KAAK;AACH,2BAAe,YAAY;AAC3B,qBAAS,mBAAmB,MAAM,SAAS;AACzC,uBAAS,aAAa,cAAc,mBAAmB,eACpD,eAAe,aAAa;AACjC,qBAAS,mBACL,4BAA4B,SAAS,YAAY,OAC9C,YAAY,OAAO,OACnB,YAAY,KAAK,UAAU,OAC7B,iBAAiB,UAAU;AAAA,QACxC;AAAA,IACA;AACA,aAAS,iBAAiB,eAAe;AACvC,UAAI,aACA,SAAS,cAAc,aACvB,cAAc,UAAU,UAAU,cAAc,OAClD,gBAAgB,GAChB,eAAe;AACjB,UAAI;AACF,iBAAS,YAAY,cAAc,OAAO,SAAS;AACjD,UAAC,iBAAiB,UAAU,QAAQ,UAAU,YAC3C,gBAAgB,UAAU,eAAe,UACzC,gBAAgB,UAAU,QAAQ,UAClC,UAAU,SAAS,eACnB,YAAY,UAAU;AAAA;AAE3B,aAAK,YAAY,cAAc,OAAO,SAAS;AAC7C,UAAC,iBAAiB,UAAU,QAAQ,UAAU,YAC3C,gBAAgB,UAAU,cAC1B,gBAAgB,UAAU,OAC1B,UAAU,SAAS,eACnB,YAAY,UAAU;AAC7B,oBAAc,gBAAgB;AAC9B,oBAAc,aAAa;AAC3B,aAAO;AAAA,IACT;AACA,aAAS,aAAa,SAASA,iBAAgBG,cAAa;AAC1D,UAAI,WAAWH,gBAAe;AAC9B,qBAAeA,eAAc;AAC7B,cAAQA,gBAAe,KAAG;AAAA,QACxB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,iBAAiBA,eAAc,GAAG;AAAA,QAC3C,KAAK;AACH,iBAAO,iBAAiBA,eAAc,GAAG;AAAA,QAC3C,KAAK;AACH,UAAAG,eAAcH,gBAAe;AAC7B,qBAAW;AACX,mBAAS,YAAY,WAAW,QAAQ,cAAc;AACtD,UAAAA,gBAAe,cAAc,UAAU,aACpCA,gBAAe,SAAS;AAC3B,sBAAY,YAAY;AACxB,2BAAgB;AAChB,UAAAG,aAAY,mBACRA,aAAY,UAAUA,aAAY,gBACnCA,aAAY,iBAAiB;AAChC,cAAI,SAAS,WAAW,SAAS,QAAQ;AACvC,8BAAkBH,eAAc,IAC5B,WAAWA,eAAc,IACzB,SAAS,WACR,QAAQ,cAAc,gBACrB,OAAOA,gBAAe,QAAQ,SAC9BA,gBAAe,SAAS,MAC1B;AACN,2BAAiBA,eAAc;AAC/B,iBAAO;AAAA,QACT,KAAK;AACH,cAAI,OAAOA,gBAAe,MACxB,eAAeA,gBAAe;AAChC,mBAAS,WACJ,WAAWA,eAAc,GAC1B,SAAS,gBACJ,iBAAiBA,eAAc,GAChC,kCAAkCA,iBAAgB,YAAY,MAC7D,iBAAiBA,eAAc,GAChC;AAAA,YACEA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACAG;AAAA,UAChB,MACU,eACE,iBAAiB,QAAQ,iBACtB,WAAWH,eAAc,GAC1B,iBAAiBA,eAAc,GAC/B,kCAAkCA,iBAAgB,YAAY,MAC7D,iBAAiBA,eAAc,GAC/BA,gBAAe,SAAS,cACzB,UAAU,QAAQ,eACpB,YAAY,YAAY,WAAWA,eAAc,GACjD,iBAAiBA,eAAc,GAC/B;AAAA,YACEA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACAG;AAAA,UACd;AACM,iBAAO;AAAA,QACT,KAAK;AACH,yBAAeH,eAAc;AAC7B,UAAAG,eAAc,wBAAwB;AACtC,iBAAOH,gBAAe;AACtB,cAAI,SAAS,WAAW,QAAQA,gBAAe;AAC7C,oBAAQ,kBAAkB,YAAY,WAAWA,eAAc;AAAA,eAC5D;AACH,gBAAI,CAAC,UAAU;AACb,kBAAI,SAASA,gBAAe;AAC1B,sBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,+BAAiBA,eAAc;AAC/B,qBAAO;AAAA,YACjB;AACQ,sBAAU,mBAAmB;AAC7B,8BAAkBA,eAAc,IAC5B,6BAA6BA,eAAuB,KAClD,UAAU,yBAAyB,MAAM,UAAUG,YAAW,GAC/DH,gBAAe,YAAY,SAC5B,WAAWA,eAAc;AAAA,UACrC;AACM,2BAAiBA,eAAc;AAC/B,iBAAO;AAAA,QACT,KAAK;AACH,yBAAeA,eAAc;AAC7B,iBAAOA,gBAAe;AACtB,cAAI,SAAS,WAAW,QAAQA,gBAAe;AAC7C,oBAAQ,kBAAkB,YAAY,WAAWA,eAAc;AAAA,eAC5D;AACH,gBAAI,CAAC,UAAU;AACb,kBAAI,SAASA,gBAAe;AAC1B,sBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,+BAAiBA,eAAc;AAC/B,qBAAO;AAAA,YACjB;AACQ,2BAAe,mBAAmB;AAClC,gBAAI,kBAAkBA,eAAc;AAClC,2CAA6BA,eAA4B;AAAA,iBACtD;AACH,kBAAI,gBAAgB;AAAA,gBAClB,wBAAwB;AAAA;AAE1B,sBAAQ,cAAY;AAAA,gBAClB,KAAK;AACH,iCAAe,cAAc;AAAA,oBAC3B;AAAA,oBACA;AAAA;AAEF;AAAA,gBACF,KAAK;AACH,iCAAe,cAAc;AAAA,oBAC3B;AAAA,oBACA;AAAA;AAEF;AAAA,gBACF;AACE,0BAAQ,MAAI;AAAA,oBACV,KAAK;AACH,qCAAe,cAAc;AAAA,wBAC3B;AAAA,wBACA;AAAA;AAEF;AAAA,oBACF,KAAK;AACH,qCAAe,cAAc;AAAA,wBAC3B;AAAA,wBACA;AAAA;AAEF;AAAA,oBACF,KAAK;AACH,qCAAe,cAAc,cAAc,KAAK;AAChD,mCAAa,YAAY;AACzB,qCAAe,aAAa;AAAA,wBAC1B,aAAa;AAAA;AAEf;AAAA,oBACF,KAAK;AACH,qCACE,aAAa,OAAO,SAAS,KACzB,cAAc,cAAc,UAAU;AAAA,wBACpC,IAAI,SAAS;AAAA,uBACd,IACD,cAAc,cAAc,QAAQ;AAC1C,+BAAS,WACJ,aAAa,WAAW,OACzB,SAAS,SAAS,aAAa,OAAO,SAAS;AACnD;AAAA,oBACF;AACE,qCACE,aAAa,OAAO,SAAS,KACzB,cAAc,cAAc,MAAM,EAAE,IAAI,SAAS,GAAE,CAAE,IACrD,cAAc,cAAc,IAAI;AAAA,kBACxD;AAAA,cACA;AACU,2BAAa,mBAAmB,IAAIA;AACpC,2BAAa,gBAAgB,IAAI;AACjC,gBAAG,MACD,gBAAgBA,gBAAe,OAC/B,SAAS,iBAET;AACA,oBAAI,MAAM,cAAc,OAAO,MAAM,cAAc;AACjD,+BAAa,YAAY,cAAc,SAAS;AAAA,yBAEhD,MAAM,cAAc,OACpB,OAAO,cAAc,OACrB,SAAS,cAAc,OACvB;AACA,gCAAc,MAAM,SAAS;AAC7B,kCAAgB,cAAc;AAC9B;AAAA,gBACd;AACY,oBAAI,kBAAkBA,gBAAgB,OAAM;AAC5C,uBAAO,SAAS,cAAc,WAAW;AACvC,sBACE,SAAS,cAAc,UACvB,cAAc,WAAWA;AAEzB,0BAAM;AACR,kCAAgB,cAAc;AAAA,gBAC5C;AACY,8BAAc,QAAQ,SAAS,cAAc;AAC7C,gCAAgB,cAAc;AAAA,cAC1C;AACU,cAAAA,gBAAe,YAAY;AAC3B,gBAAG,SACA,qBAAqB,cAAc,MAAM,QAAQ,GAAG,MACjE;AAAA,gBACY,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AACH,6BAAW,CAAC,CAAC,SAAS;AACtB,wBAAM;AAAA,gBACR,KAAK;AACH,6BAAW;AACX,wBAAM;AAAA,gBACR;AACE,6BAAW;AAAA,cACzB;AACU,0BAAY,WAAWA,eAAc;AAAA,YAC/C;AAAA,UACA;AACM,2BAAiBA,eAAc;AAC/B;AAAA,YACEA;AAAA,YACAA,gBAAe;AAAA,YACf,SAAS,UAAU,OAAO,QAAQ;AAAA,YAClCA,gBAAe;AAAA,YACfG;AAAA;AAEF,iBAAO;AAAA,QACT,KAAK;AACH,cAAI,WAAW,QAAQH,gBAAe;AACpC,oBAAQ,kBAAkB,YAAY,WAAWA,eAAc;AAAA,eAC5D;AACH,gBAAI,aAAa,OAAO,YAAY,SAASA,gBAAe;AAC1D,oBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,sBAAU,wBAAwB;AAClC,gBAAI,kBAAkBA,eAAc,GAAG;AACrC,wBAAUA,gBAAe;AACzB,cAAAG,eAAcH,gBAAe;AAC7B,yBAAW;AACX,qBAAO;AACP,kBAAI,SAAS;AACX,wBAAQ,KAAK,KAAG;AAAA,kBACd,KAAK;AAAA,kBACL,KAAK;AACH,+BAAW,KAAK;AAAA,gBAChC;AACU,sBAAQ,mBAAmB,IAAIA;AAC/B,wBACE,QAAQ,cAAcG,gBACrB,SAAS,YAAY,SAAO,SAAS,4BACtC,sBAAsB,QAAQ,WAAWA,YAAW,IAChD,OACA;AACN,yBAAW,yBAAyBH,iBAAgB,IAAE;AAAA,YAChE;AACU,cAAC,UACC,kCAAkC,OAAO,EAAE;AAAA,gBACzC;AAAA,iBAED,QAAQ,mBAAmB,IAAIA,iBAC/BA,gBAAe,YAAY;AAAA,UACxC;AACM,2BAAiBA,eAAc;AAC/B,iBAAO;AAAA,QACT,KAAK;AACH,UAAAG,eAAcH,gBAAe;AAC7B,cAAI,SAAS,WAAW,SAAS,QAAQ,eAAe;AACtD,uBAAW,kBAAkBA,eAAc;AAC3C,gBAAI,SAASG,cAAa;AACxB,kBAAI,SAAS,SAAS;AACpB,oBAAI,CAAC,SAAU,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACtD,0BAAUH,gBAAe;AACzB,0BAAU,SAAS,UAAU,QAAQ,aAAa;AAClD,oBAAI,CAAC,QAAS,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACrD,wBAAQ,mBAAmB,IAAIA;AAAA,cAC3C;AACY,oCAAmB,GACjB,OAAOA,gBAAe,QAAQ,SAC3BA,gBAAe,gBAAgB,OACjCA,gBAAe,SAAS;AAC7B,+BAAiBA,eAAc;AAC/B,wBAAU;AAAA,YACpB;AACU,cAACG,eAAc,oCAAmC,GAChD,SAAS,WACP,SAAS,QAAQ,kBAChB,QAAQ,cAAc,kBAAkBA,eAC1C,UAAU;AACf,gBAAI,CAAC,SAAS;AACZ,kBAAIH,gBAAe,QAAQ;AACzB,uBAAO,mBAAmBA,eAAc,GAAGA;AAC7C,iCAAmBA,eAAc;AACjC,qBAAO;AAAA,YACjB;AACQ,gBAAI,OAAOA,gBAAe,QAAQ;AAChC,oBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,UACjD;AACM,2BAAiBA,eAAc;AAC/B,iBAAO;AAAA,QACT,KAAK;AACH,qBAAWA,gBAAe;AAC1B,cACE,SAAS,WACR,SAAS,QAAQ,iBAChB,SAAS,QAAQ,cAAc,YACjC;AACA,mBAAO,kBAAkBA,eAAc;AACvC,gBAAI,SAAS,YAAY,SAAS,SAAS,YAAY;AACrD,kBAAI,SAAS,SAAS;AACpB,oBAAI,CAAC,KAAM,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAClD,uBAAOA,gBAAe;AACtB,uBAAO,SAAS,OAAO,KAAK,aAAa;AACzC,oBAAI,CAAC,KAAM,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAClD,qBAAK,mBAAmB,IAAIA;AAAA,cACxC;AACY,oCAAmB,GACjB,OAAOA,gBAAe,QAAQ,SAC3BA,gBAAe,gBAAgB,OACjCA,gBAAe,SAAS;AAC7B,+BAAiBA,eAAc;AAC/B,qBAAO;AAAA,YACjB;AACU,cAAC,OAAO,oCAAmC,GACzC,SAAS,WACP,SAAS,QAAQ,kBAChB,QAAQ,cAAc,kBAAkB,OAC1C,OAAO;AACZ,gBAAI,CAAC,MAAM;AACT,kBAAIA,gBAAe,QAAQ;AACzB,uBAAO,mBAAmBA,eAAc,GAAGA;AAC7C,iCAAmBA,eAAc;AACjC,qBAAO;AAAA,YACjB;AAAA,UACA;AACM,6BAAmBA,eAAc;AACjC,cAAI,OAAOA,gBAAe,QAAQ;AAChC,mBAAQA,gBAAe,QAAQG,cAAcH;AAC/C,UAAAG,eAAc,SAAS;AACvB,oBAAU,SAAS,WAAW,SAAS,QAAQ;AAC/C,UAAAA,iBACI,WAAWH,gBAAe,OAC3B,OAAO,MACR,SAAS,SAAS,aAChB,SAAS,SAAS,UAAU,iBAC5B,SAAS,SAAS,UAAU,cAAc,cACzC,OAAO,SAAS,UAAU,cAAc,UAAU,OACpD,eAAe,MAChB,SAAS,SAAS,iBAChB,SAAS,SAAS,cAAc,cAC/B,eAAe,SAAS,cAAc,UAAU,OACnD,iBAAiB,SAAS,SAAS,SAAS;AAC9C,UAAAG,iBAAgB,WACdA,iBACCH,gBAAe,MAAM,SAAS;AACjC,8BAAoBA,iBAAgBA,gBAAe,WAAW;AAC9D,2BAAiBA,eAAc;AAC/B,iBAAO;AAAA,QACT,KAAK;AACH,iBACE,iBAAgB,GAChB,SAAS,WACP,2BAA2BA,gBAAe,UAAU,aAAa,GACnE,iBAAiBA,eAAc,GAC/B;AAAA,QAEJ,KAAK;AACH,iBACE,YAAYA,gBAAe,IAAI,GAAG,iBAAiBA,eAAc,GAAG;AAAA,QAExE,KAAK;AACH,cAAI,mBAAmB;AACvB,qBAAWA,gBAAe;AAC1B,cAAI,SAAS,SAAU,QAAO,iBAAiBA,eAAc,GAAG;AAChE,iBAAO,OAAOA,gBAAe,QAAQ;AACrC,yBAAe,SAAS;AACxB,cAAI,SAAS;AACX,gBAAI,KAAM,oBAAmB,UAAU,KAAE;AAAA,iBACpC;AACH,kBACE,MAAM,gCACL,SAAS,WAAW,OAAO,QAAQ,QAAQ;AAE5C,qBAAK,UAAUA,gBAAe,OAAO,SAAS,WAAW;AACvD,iCAAe,mBAAmB,OAAO;AACzC,sBAAI,SAAS,cAAc;AACzB,oBAAAA,gBAAe,SAAS;AACxB,uCAAmB,UAAU,KAAE;AAC/B,8BAAU,aAAa;AACvB,oBAAAA,gBAAe,cAAc;AAC7B,wCAAoBA,iBAAgB,OAAO;AAC3C,oBAAAA,gBAAe,eAAe;AAC9B,8BAAUG;AACV,yBAAKA,eAAcH,gBAAe,OAAO,SAASG;AAChD,0CAAoBA,cAAa,OAAO,GACrCA,eAAcA,aAAY;AAC/B;AAAA,sBACE;AAAA,sBACC,oBAAoB,UAAU,IAAK;AAAA;AAEtC,mCACE,aAAaH,iBAAgB,SAAS,aAAa;AACrD,2BAAOA,gBAAe;AAAA,kBACtC;AACc,4BAAU,QAAQ;AAAA,gBAChC;AACU,uBAAS,SAAS,QAChB,IAAG,IAAK,uCACNA,gBAAe,SAAS,KACzB,OAAO,MACR,mBAAmB,UAAU,KAAE,GAC9BA,gBAAe,QAAQ;AAAA,YACpC;AAAA,eACW;AACH,gBAAI,CAAC;AACH,kBACI,UAAU,mBAAmB,YAAY,GAAI,SAAS,SACxD;AACA,oBACIA,gBAAe,SAAS,KACzB,OAAO,MACP,UAAU,QAAQ,aAClBA,gBAAe,cAAc,SAC9B,oBAAoBA,iBAAgB,OAAO,GAC3C,mBAAmB,UAAU,IAAE,GAC/B,SAAS,SAAS,QAChB,aAAa,SAAS,YACtB,CAAC,aAAa,aACd,CAAC;AAEH,yBAAO,iBAAiBA,eAAc,GAAG;AAAA,cACvD;AACY,oBAAI,QAAQ,SAAS,qBACnB,sCACA,cAAcG,iBACZH,gBAAe,SAAS,KACzB,OAAO,MACR,mBAAmB,UAAU,KAAE,GAC9BA,gBAAe,QAAQ;AAC9B,qBAAS,eACH,aAAa,UAAUA,gBAAe,OACvCA,gBAAe,QAAQ,iBACtB,UAAU,SAAS,MACrB,SAAS,UACJ,QAAQ,UAAU,eAClBA,gBAAe,QAAQ,cAC3B,SAAS,OAAO;AAAA,UAC7B;AACM,cAAI,SAAS,SAAS;AACpB,mBACG,UAAU,SAAS,MACnB,SAAS,YAAY,SACrB,SAAS,OAAO,QAAQ,SACxB,SAAS,qBAAqB,IAAG,GACjC,QAAQ,UAAU,MAClBG,eAAc,oBAAoB,SACnC;AAAA,cACE;AAAA,cACA,OAAQA,eAAc,IAAK,IAAIA,eAAc;AAAA,eAE/C,eAAe,aAAaH,iBAAgB,SAAS,aAAa,GAClE;AAEJ,2BAAiBA,eAAc;AAC/B,iBAAO;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AACH,iBACE,mBAAmBA,eAAc,GACjC,iBAAgB,GACf,WAAW,SAASA,gBAAe,eACpC,SAAS,UACJ,SAAS,QAAQ,kBAAmB,aACpCA,gBAAe,SAAS,QACzB,aAAaA,gBAAe,SAAS,OACzC,WACI,OAAOG,eAAc,cACrB,OAAOH,gBAAe,QAAQ,SAC7B,iBAAiBA,eAAc,GAChCA,gBAAe,eAAe,MAAMA,gBAAe,SAAS,SAC5D,iBAAiBA,eAAc,GAClCG,eAAcH,gBAAe,aAC9B,SAASG,gBACP,oBAAoBH,iBAAgBG,aAAY,UAAU,GAC3DA,eAAc,MACf,SAAS,WACP,SAAS,QAAQ,iBACjB,SAAS,QAAQ,cAAc,cAC9BA,eAAc,QAAQ,cAAc,UAAU,OAChD,WAAW,MACZ,SAASH,gBAAe,iBACtB,SAASA,gBAAe,cAAc,cACrC,WAAWA,gBAAe,cAAc,UAAU,OACrD,aAAaG,iBAAgBH,gBAAe,SAAS,OACrD,SAAS,WAAW,IAAI,YAAY,GACpC;AAAA,QAEJ,KAAK;AACH,iBACGG,eAAc,MACf,SAAS,YAAYA,eAAc,QAAQ,cAAc,QACzDH,gBAAe,cAAc,UAAUG,iBACpCH,gBAAe,SAAS,OAC3B,YAAY,YAAY,GACxB,iBAAiBA,eAAc,GAC/B;AAAA,QAEJ,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,MACb;AACE,YAAM,MAAM,uBAAuB,KAAKA,gBAAe,GAAG,CAAC;AAAA,IAC7D;AACA,aAAS,WAAW,SAASA,iBAAgB;AAC3C,qBAAeA,eAAc;AAC7B,cAAQA,gBAAe,KAAG;AAAA,QACxB,KAAK;AACH,iBACG,UAAUA,gBAAe,OAC1B,UAAU,SACJA,gBAAe,QAAS,UAAU,SAAU,KAAMA,mBACpD;AAAA,QAER,KAAK;AACH,iBACE,YAAY,YAAY,GACxB,iBAAgB,GACf,UAAUA,gBAAe,OAC1B,OAAO,UAAU,UAAU,OAAO,UAAU,QACtCA,gBAAe,QAAS,UAAU,SAAU,KAAMA,mBACpD;AAAA,QAER,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,eAAeA,eAAc,GAAG;AAAA,QACzC,KAAK;AACH,cAAI,SAASA,gBAAe,eAAe;AACzC,+BAAmBA,eAAc;AACjC,gBAAI,SAASA,gBAAe;AAC1B,oBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,gCAAmB;AAAA,UAC3B;AACM,oBAAUA,gBAAe;AACzB,iBAAO,UAAU,SACXA,gBAAe,QAAS,UAAU,SAAU,KAAMA,mBACpD;AAAA,QACN,KAAK;AACH,6BAAmBA,eAAc;AACjC,oBAAUA,gBAAe;AACzB,cAAI,SAAS,WAAW,SAAS,QAAQ,YAAY;AACnD,gBAAI,SAASA,gBAAe;AAC1B,oBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,gCAAmB;AAAA,UAC3B;AACM,oBAAUA,gBAAe;AACzB,iBAAO,UAAU,SACXA,gBAAe,QAAS,UAAU,SAAU,KAAMA,mBACpD;AAAA,QACN,KAAK;AACH,iBAAO,IAAI,mBAAmB,GAAG;AAAA,QACnC,KAAK;AACH,iBAAO,iBAAgB,GAAI;AAAA,QAC7B,KAAK;AACH,iBAAO,YAAYA,gBAAe,IAAI,GAAG;AAAA,QAC3C,KAAK;AAAA,QACL,KAAK;AACH,iBACE,mBAAmBA,eAAc,GACjC,iBAAgB,GAChB,SAAS,WAAW,IAAI,YAAY,GACnC,UAAUA,gBAAe,OAC1B,UAAU,SACJA,gBAAe,QAAS,UAAU,SAAU,KAAMA,mBACpD;AAAA,QAER,KAAK;AACH,iBAAO,YAAY,YAAY,GAAG;AAAA,QACpC,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,aAAS,sBAAsB,SAAS,iBAAiB;AACvD,qBAAe,eAAe;AAC9B,cAAQ,gBAAgB,KAAG;AAAA,QACzB,KAAK;AACH,sBAAY,YAAY;AACxB,2BAAgB;AAChB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,yBAAe,eAAe;AAC9B;AAAA,QACF,KAAK;AACH,2BAAgB;AAChB;AAAA,QACF,KAAK;AACH,mBAAS,gBAAgB,iBACvB,mBAAmB,eAAe;AACpC;AAAA,QACF,KAAK;AACH,6BAAmB,eAAe;AAClC;AAAA,QACF,KAAK;AACH,cAAI,mBAAmB;AACvB;AAAA,QACF,KAAK;AACH,sBAAY,gBAAgB,IAAI;AAChC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,6BAAmB,eAAe;AAClC,2BAAgB;AAChB,mBAAS,WAAW,IAAI,YAAY;AACpC;AAAA,QACF,KAAK;AACH,sBAAY,YAAY;AAAA,MAC9B;AAAA,IACA;AACA,aAAS,0BAA0B,OAAO,cAAc;AACtD,UAAI;AACF,YAAI,cAAc,aAAa,aAC7B,aAAa,SAAS,cAAc,YAAY,aAAa;AAC/D,YAAI,SAAS,YAAY;AACvB,cAAI,cAAc,WAAW;AAC7B,wBAAc;AACd,aAAG;AACD,iBAAK,YAAY,MAAM,WAAW,OAAO;AACvC,2BAAa;AACb,kBAAI,SAAS,YAAY,QACvB,OAAO,YAAY;AACrB,2BAAa,OAAM;AACnB,mBAAK,UAAU;AAAA,YACzB;AACQ,0BAAc,YAAY;AAAA,UAClC,SAAe,gBAAgB;AAAA,QAC/B;AAAA,MACA,SAAW,OAAO;AACd,gCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,MACpE;AAAA,IACA;AACA,aAAS,4BACP,OACA,cACA,iCACA;AACA,UAAI;AACF,YAAI,cAAc,aAAa,aAC7B,aAAa,SAAS,cAAc,YAAY,aAAa;AAC/D,YAAI,SAAS,YAAY;AACvB,cAAI,cAAc,WAAW;AAC7B,wBAAc;AACd,aAAG;AACD,iBAAK,YAAY,MAAM,WAAW,OAAO;AACvC,kBAAI,OAAO,YAAY,MACrB,UAAU,KAAK;AACjB,kBAAI,WAAW,SAAS;AACtB,qBAAK,UAAU;AACf,6BAAa;AACb,oBAAI,yBAAyB,iCAC3B,WAAW;AACb,oBAAI;AACF,2BAAQ;AAAA,gBACtB,SAAqB,OAAO;AACd;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA;AAAA;gBAEhB;AAAA,cACA;AAAA,YACA;AACQ,0BAAc,YAAY;AAAA,UAClC,SAAe,gBAAgB;AAAA,QAC/B;AAAA,MACA,SAAW,OAAO;AACd,gCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,MACpE;AAAA,IACA;AACA,aAAS,qBAAqB,cAAc;AAC1C,UAAI,cAAc,aAAa;AAC/B,UAAI,SAAS,aAAa;AACxB,YAAI,WAAW,aAAa;AAC5B,YAAI;AACF,0BAAgB,aAAa,QAAQ;AAAA,QAC3C,SAAa,OAAO;AACd,kCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,QACtE;AAAA,MACA;AAAA,IACA;AACA,aAAS,+BACP,SACA,wBACA,UACA;AACA,eAAS,QAAQ;AAAA,QACf,QAAQ;AAAA,QACR,QAAQ;AAAA;AAEV,eAAS,QAAQ,QAAQ;AACzB,UAAI;AACF,iBAAS,qBAAoB;AAAA,MACjC,SAAW,OAAO;AACd,gCAAwB,SAAS,wBAAwB,KAAK;AAAA,MAClE;AAAA,IACA;AACA,aAAS,gBAAgB,SAAS,wBAAwB;AACxD,UAAI;AACF,YAAI,MAAM,QAAQ;AAClB,YAAI,SAAS,KAAK;AAChB,kBAAQ,QAAQ,KAAG;AAAA,YACjB,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,kBAAI,gBAAgB,QAAQ;AAC5B;AAAA,YACF,KAAK;AACH,8BAAgB,QAAQ;AACxB;AAAA,YACF;AACE,8BAAgB,QAAQ;AAAA,UAClC;AACM,yBAAe,OAAO,MACjB,QAAQ,aAAa,IAAI,aAAa,IACtC,IAAI,UAAU;AAAA,QACzB;AAAA,MACA,SAAW,OAAO;AACd,gCAAwB,SAAS,wBAAwB,KAAK;AAAA,MAClE;AAAA,IACA;AACA,aAAS,gBAAgB,SAAS,wBAAwB;AACxD,UAAI,MAAM,QAAQ,KAChB,aAAa,QAAQ;AACvB,UAAI,SAAS;AACX,YAAI,eAAe,OAAO;AACxB,cAAI;AACF,uBAAU;AAAA,UAClB,SAAe,OAAO;AACd,oCAAwB,SAAS,wBAAwB,KAAK;AAAA,UACtE,UAAO;AACC,YAAC,QAAQ,aAAa,MACnB,UAAU,QAAQ,WACnB,QAAQ,YAAY,QAAQ,aAAa;AAAA,UACnD;AAAA,iBACa,eAAe,OAAO;AAC7B,cAAI;AACF,gBAAI,IAAI;AAAA,UAChB,SAAe,WAAW;AAClB,oCAAwB,SAAS,wBAAwB,SAAS;AAAA,UAC1E;AAAA,YACS,KAAI,UAAU;AAAA,IACvB;AACA,aAAS,gBAAgB,cAAc;AACrC,UAAI,OAAO,aAAa,MACtB,QAAQ,aAAa,eACrB,WAAW,aAAa;AAC1B,UAAI;AACF,UAAG,SAAQ,MAAI;AAAA,UACb,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,kBAAM,aAAa,SAAS,MAAK;AACjC,kBAAM;AAAA,UACR,KAAK;AACH,kBAAM,MACD,SAAS,MAAM,MAAM,MACtB,MAAM,WAAW,SAAS,SAAS,MAAM;AAAA,QACrD;AAAA,MACA,SAAW,OAAO;AACd,gCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,MACpE;AAAA,IACA;AACA,aAAS,iBAAiB,cAAc,UAAU,UAAU;AAC1D,UAAI;AACF,YAAI,aAAa,aAAa;AAC9B,yBAAiB,YAAY,aAAa,MAAM,UAAU,QAAQ;AAClE,mBAAW,gBAAgB,IAAI;AAAA,MACnC,SAAW,OAAO;AACd,gCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,MACpE;AAAA,IACA;AACA,aAAS,aAAa,OAAO;AAC3B,aACE,MAAM,MAAM,OACZ,MAAM,MAAM,OACZ,OAAO,MAAM,OACZ,OAAO,MAAM,OAAO,iBAAiB,MAAM,IAAI,KAChD,MAAM,MAAM;AAAA,IAEhB;AACA,aAAS,eAAe,OAAO;AAC7B,QAAG,YAAS;AACV,eAAO,SAAS,MAAM,WAAW;AAC/B,cAAI,SAAS,MAAM,UAAU,aAAa,MAAM,MAAM,EAAG,QAAO;AAChE,kBAAQ,MAAM;AAAA,QACpB;AACI,cAAM,QAAQ,SAAS,MAAM;AAC7B,aACE,QAAQ,MAAM,SACd,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,OAAO,MAAM,OAEnD;AACA,cAAI,OAAO,MAAM,OAAO,iBAAiB,MAAM,IAAI,EAAG,UAAS;AAC/D,cAAI,MAAM,QAAQ,EAAG,UAAS;AAC9B,cAAI,SAAS,MAAM,SAAS,MAAM,MAAM,IAAK,UAAS;AAAA,cACjD,CAAC,MAAM,MAAM,SAAS,OAAS,QAAQ,MAAM;AAAA,QACxD;AACI,YAAI,EAAE,MAAM,QAAQ,GAAI,QAAO,MAAM;AAAA,MACzC;AAAA,IACA;AACA,aAAS,yCAAyC,MAAM,QAAQ,QAAQ;AACtE,UAAI,MAAM,KAAK;AACf,UAAI,MAAM,OAAO,MAAM;AACrB,QAAC,OAAO,KAAK,WACX,UACK,MAAM,OAAO,WACV,OAAO,OACP,WAAW,OAAO,WAChB,OAAO,cAAc,OACrB,QACJ,aAAa,MAAM,MAAM,KACzB,SACA,MAAM,OAAO,WACT,OAAO,OACP,WAAW,OAAO,WAChB,OAAO,cAAc,OACrB,QACR,OAAO,YAAY,IAAI,GACtB,SAAS,OAAO,qBAChB,SAAS,UAAU,WAAW,UAC7B,SAAS,OAAO,YACf,OAAO,UAAU;AAAA,eAE1B,MAAM,QACL,OAAO,OACN,iBAAiB,KAAK,IAAI,MACxB,SAAS,KAAK,WAAa,SAAS,OACvC,OAAO,KAAK,OACb,SAAS;AAET,aACE,yCAAyC,MAAM,QAAQ,MAAM,GAC3D,OAAO,KAAK,SACd,SAAS;AAGT,mDAAyC,MAAM,QAAQ,MAAM,GAC1D,OAAO,KAAK;AAAA,IACrB;AACA,aAAS,4BAA4B,MAAM,QAAQ,QAAQ;AACzD,UAAI,MAAM,KAAK;AACf,UAAI,MAAM,OAAO,MAAM;AACrB,QAAC,OAAO,KAAK,WACX,SAAS,OAAO,aAAa,MAAM,MAAM,IAAI,OAAO,YAAY,IAAI;AAAA,eAEtE,MAAM,QACL,OAAO,OAAO,iBAAiB,KAAK,IAAI,MAAM,SAAS,KAAK,YAC5D,OAAO,KAAK,OACb,SAAS;AAET,aACE,4BAA4B,MAAM,QAAQ,MAAM,GAAG,OAAO,KAAK,SAC/D,SAAS;AAGT,sCAA4B,MAAM,QAAQ,MAAM,GAAI,OAAO,KAAK;AAAA,IACtE;AACA,aAAS,+BAA+B,cAAc;AACpD,UAAI,YAAY,aAAa,WAC3B,QAAQ,aAAa;AACvB,UAAI;AACF,iBACM,OAAO,aAAa,MAAM,aAAa,UAAU,YACrD,WAAW;AAGX,oBAAU,oBAAoB,WAAW,CAAC,CAAC;AAC7C,6BAAqB,WAAW,MAAM,KAAK;AAC3C,kBAAU,mBAAmB,IAAI;AACjC,kBAAU,gBAAgB,IAAI;AAAA,MAClC,SAAW,OAAO;AACd,gCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,MACpE;AAAA,IACA;AACA,QAAI,2BAA2B,OAC7B,4BAA4B,OAC5B,iBAAiB,OACjB,kBAAkB,eAAe,OAAO,UAAU,UAAU,KAC5D,aAAa;AACf,aAAS,4BAA4BE,OAAM,YAAY;AACrD,MAAAA,QAAOA,MAAK;AACZ,sBAAgB;AAChB,MAAAA,QAAO,qBAAqBA,KAAI;AAChC,UAAI,yBAAyBA,KAAI,GAAG;AAClC,YAAI,oBAAoBA;AACtB,cAAI,kBAAkB;AAAA,YACpB,OAAOA,MAAK;AAAA,YACZ,KAAKA,MAAK;AAAA;;AAGZ,aAAG;AACD,+BACI,kBAAkBA,MAAK,kBACvB,gBAAgB,eAClB;AACF,gBAAI,YACF,gBAAgB,gBAAgB,gBAAgB,aAAY;AAC9D,gBAAI,aAAa,MAAM,UAAU,YAAY;AAC3C,gCAAkB,UAAU;AAC5B,kBAAI,eAAe,UAAU,cAC3B,YAAY,UAAU;AACxB,0BAAY,UAAU;AACtB,kBAAI;AACF,gCAAgB,UAAU,UAAU;AAAA,cAChD,SAAmB,MAAM;AACb,kCAAkB;AAClB,sBAAM;AAAA,cAClB;AACU,kBAAI,SAAS,GACX,QAAQ,IACR,MAAM,IACN,oBAAoB,GACpB,mBAAmB,GACnB,OAAOA,OACP,aAAa;AACf,gBAAG,YAAS;AACV,yBAAS,UAAU;AACjB,2BAAS,mBACN,MAAM,gBAAgB,MAAM,KAAK,aACjC,QAAQ,SAAS;AACpB,2BAAS,aACN,MAAM,aAAa,MAAM,KAAK,aAC9B,MAAM,SAAS;AAClB,wBAAM,KAAK,aAAa,UAAU,KAAK,UAAU;AACjD,sBAAI,UAAU,OAAO,KAAK,YAAa;AACvC,+BAAa;AACb,yBAAO;AAAA,gBACrB;AACY,2BAAS;AACP,sBAAI,SAASA,MAAM,OAAM;AACzB,iCAAe,mBACb,EAAE,sBAAsB,iBACvB,QAAQ;AACX,iCAAe,aACb,EAAE,qBAAqB,cACtB,MAAM;AACT,sBAAI,UAAU,OAAO,KAAK,aAAc;AACxC,yBAAO;AACP,+BAAa,KAAK;AAAA,gBAChC;AACY,uBAAO;AAAA,cACnB;AACU,gCACE,OAAO,SAAS,OAAO,MAAM,OAAO,EAAE,OAAc,IAAQ;AAAA,YACxE,MAAe,mBAAkB;AAAA,UACjC;AACI,0BAAkB,mBAAmB,EAAE,OAAO,GAAG,KAAK,EAAC;AAAA,MAC3D,MAAS,mBAAkB;AACzB,6BAAuB,EAAE,aAAaA,OAAM,gBAAgB,gBAAe;AAC3E,iBAAW;AACX,WAAK,aAAa,YAAY,SAAS;AACrC,YACI,aAAa,YACdA,QAAO,WAAW,OACnB,OAAO,WAAW,eAAe,SAAS,SAASA;AAEnD,UAACA,MAAK,SAAS,YAAc,aAAaA;AAAA;AAE1C,iBAAO,SAAS,cAAc;AAC5B,yBAAa;AACb,wBAAY,WAAW;AACvB,YAAAA,QAAO,WAAW;AAClB,oBAAQ,WAAW,KAAG;AAAA,cACpB,KAAK;AACH,oBACE,OAAOA,QAAO,OACZA,QAAO,WAAW,aACnBA,QAAO,SAASA,QAAOA,MAAK,SAAS,MACtC,SAASA;AAET,uBACE,kBAAkB,GAClB,kBAAkBA,MAAK,QACvB;AAEA,oBAAC,eAAeA,MAAK,eAAe,GACjC,aAAa,IAAI,OAAO,aAAa;AAC5C;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AACH;AAAA,cACF,KAAK;AACH,oBAAI,OAAOA,QAAO,SAAS,SAAS,WAAW;AAC7C,kBAAAA,QAAO;AACP,oCAAkB;AAClB,iCAAe,UAAU;AACzB,8BAAY,UAAU;AACtB,8BAAY,gBAAgB;AAC5B,sBAAI;AACF,wBAAI,oBAAoB;AAAA,sBACtB,gBAAgB;AAAA,sBAChB;AAAA;AAEF,oBAAAA,QAAO,UAAU;AAAA,sBACf;AAAA,sBACA;AAAA;AAEF,8BAAU,sCAAsCA;AAAA,kBAChE,SAAuB,OAAO;AACd;AAAA,sBACE;AAAA,sBACA,gBAAgB;AAAA,sBAChB;AAAA;kBAElB;AAAA,gBACA;AACY;AAAA,cACF,KAAK;AACH,oBAAI,OAAOA,QAAO;AAChB,sBACIA,QAAO,WAAW,UAAU,eAC7B,kBAAkBA,MAAK,UACxB,MAAM;AAEN,4CAAwBA,KAAI;AAAA,2BACrB,MAAM;AACb,4BAAQA,MAAK,UAAQ;AAAA,sBACnB,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AACH,gDAAwBA,KAAI;AAC5B;AAAA,sBACF;AACE,wBAAAA,MAAK,cAAc;AAAA,oBACvC;AAAA;AACY;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH;AAAA,cACF;AACE,oBAAI,OAAOA,QAAO,MAAO,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,YAC5E;AACQ,YAAAA,QAAO,WAAW;AAClB,gBAAI,SAASA,OAAM;AACjB,cAAAA,MAAK,SAAS,WAAW;AACzB,2BAAaA;AACb;AAAA,YACV;AACQ,yBAAa,WAAW;AAAA,UAChC;AAAA,IACA;AACA,aAAS,0BAA0B,cAAc,SAAS,cAAc;AACtE,UAAI,QAAQ,aAAa;AACzB,cAAQ,aAAa,KAAG;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,2CAAiC,cAAc,YAAY;AAC3D,kBAAQ,KAAK,0BAA0B,GAAG,YAAY;AACtD;AAAA,QACF,KAAK;AACH,2CAAiC,cAAc,YAAY;AAC3D,cAAI,QAAQ;AACV,gBAAM,eAAe,aAAa,WAAY,SAAS;AACrD,kBAAI;AACF,6BAAa,kBAAiB;AAAA,cAC1C,SAAmB,OAAO;AACd,wCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,cAC5E;AAAA,iBACa;AACH,kBAAI,YAAY;AAAA,gBACd,aAAa;AAAA,gBACb,QAAQ;AAAA;AAEV,wBAAU,QAAQ;AAClB,kBAAI;AACF,6BAAa;AAAA,kBACX;AAAA,kBACA;AAAA,kBACA,aAAa;AAAA;cAE3B,SAAmB,WAAW;AAClB;AAAA,kBACE;AAAA,kBACA,aAAa;AAAA,kBACb;AAAA;cAEd;AAAA,YACA;AACM,kBAAQ,MAAM,qBAAqB,YAAY;AAC/C,kBAAQ,OAAO,gBAAgB,cAAc,aAAa,MAAM;AAChE;AAAA,QACF,KAAK;AACH,2CAAiC,cAAc,YAAY;AAC3D,cACE,QAAQ,OACN,eAAe,aAAa,aAAc,SAAS,eACrD;AACA,sBAAU;AACV,gBAAI,SAAS,aAAa;AACxB,sBAAQ,aAAa,MAAM,KAAG;AAAA,gBAC5B,KAAK;AAAA,gBACL,KAAK;AACH,4BAAU,aAAa,MAAM;AAC7B;AAAA,gBACF,KAAK;AACH,4BAAU,aAAa,MAAM;AAAA,cAC3C;AACQ,gBAAI;AACF,8BAAgB,cAAc,OAAO;AAAA,YAC/C,SAAiB,OAAO;AACd,sCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,YAC1E;AAAA,UACA;AACM;AAAA,QACF,KAAK;AACH,mBAAS,WACP,QAAQ,KACR,+BAA+B,YAAY;AAAA,QAC/C,KAAK;AAAA,QACL,KAAK;AACH,2CAAiC,cAAc,YAAY;AAC3D,mBAAS,WAAW,QAAQ,KAAK,gBAAgB,YAAY;AAC7D,kBAAQ,OAAO,gBAAgB,cAAc,aAAa,MAAM;AAChE;AAAA,QACF,KAAK;AACH,2CAAiC,cAAc,YAAY;AAC3D;AAAA,QACF,KAAK;AACH,2CAAiC,cAAc,YAAY;AAC3D,kBAAQ,KAAK,iCAAiC,cAAc,YAAY;AACxE;AAAA,QACF,KAAK;AACH,2CAAiC,cAAc,YAAY;AAC3D,kBAAQ,KAAK,iCAAiC,cAAc,YAAY;AACxE,kBAAQ,OACJ,eAAe,aAAa,eAC9B,SAAS,iBACL,eAAe,aAAa,YAC9B,SAAS,iBACL,eAAe,gCAAgC;AAAA,YAC/C;AAAA,YACA;AAAA,aAEF,8BAA8B,cAAc,YAAY;AAC9D;AAAA,QACF,KAAK;AACH,kBAAQ,SAAS,aAAa,iBAAiB;AAC/C,cAAI,CAAC,OAAO;AACV,sBACG,SAAS,WAAW,SAAS,QAAQ,iBACtC;AACF,wBAAY;AACZ,gBAAI,gCAAgC;AACpC,uCAA2B;AAC3B,aAAC,4BAA4B,YAAY,CAAC,gCACtC;AAAA,cACE;AAAA,cACA;AAAA,cACA,OAAO,aAAa,eAAe;AAAA,YACjD,IACY,iCAAiC,cAAc,YAAY;AAC/D,uCAA2B;AAC3B,wCAA4B;AAAA,UACpC;AACM;AAAA,QACF,KAAK;AACH;AAAA,QACF;AACE,2CAAiC,cAAc,YAAY;AAAA,MACjE;AAAA,IACA;AACA,aAAS,wBAAwB,OAAO;AACtC,UAAI,YAAY,MAAM;AACtB,eAAS,cACL,MAAM,YAAY,MAAO,wBAAwB,SAAS;AAC9D,YAAM,QAAQ;AACd,YAAM,YAAY;AAClB,YAAM,UAAU;AAChB,YAAM,MAAM,QACR,YAAY,MAAM,WACpB,SAAS,aAAa,sBAAsB,SAAS;AACvD,YAAM,YAAY;AAClB,YAAM,SAAS;AACf,YAAM,eAAe;AACrB,YAAM,gBAAgB;AACtB,YAAM,gBAAgB;AACtB,YAAM,eAAe;AACrB,YAAM,YAAY;AAClB,YAAM,cAAc;AAAA,IACtB;AACA,QAAI,aAAa,MACf,wBAAwB;AAC1B,aAAS,mCACP,cACA,wBACA,QACA;AACA,WAAK,SAAS,OAAO,OAAO,SAAS;AACnC,qCAA6B,cAAc,wBAAwB,MAAM,GACtE,SAAS,OAAO;AAAA,IACvB;AACA,aAAS,6BACP,cACA,wBACA,cACA;AACA,UAAI,gBAAgB,eAAe,OAAO,aAAa;AACrD,YAAI;AACF,uBAAa,qBAAqB,YAAY,YAAY;AAAA,QAChE,SAAa,KAAK;AAAA,QAAA;AAChB,cAAQ,aAAa,KAAG;AAAA,QACtB,KAAK;AACH,uCACE,gBAAgB,cAAc,sBAAsB;AACtD;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF,uBAAa,gBACT,aAAa,cAAc,UAC3B,aAAa,cACX,eAAe,aAAa,WAC9B,aAAa,WAAW,YAAY,YAAY;AACpD;AAAA,QACF,KAAK;AACH,uCACE,gBAAgB,cAAc,sBAAsB;AACtD,cAAI,iBAAiB,YACnB,4BAA4B;AAC9B,2BAAiB,aAAa,IAAI,MAC9B,aAAa,aAAa,WAAa,wBAAwB;AACnE;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF,mCAAyB,aAAa,SAAS;AAC/C,uBAAa;AACb,kCAAwB;AACxB;AAAA,QACF,KAAK;AACH,uCACE,gBAAgB,cAAc,sBAAsB;AAAA,QACxD,KAAK;AACH,2BAAiB;AACjB,sCAA4B;AAC5B,uBAAa;AACb;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF,uBAAa;AACb,kCAAwB;AACxB,cAAI,SAAS;AACX,gBAAI;AACF,kBAAI;AACF,iBAAC,MAAM,WAAW,WACd,WAAW,OACX,WAAW,WAAW,WACpB,WAAW,cAAc,OACzB,YACJ,YAAY,aAAa,SAAS;AAAA,cAChD,SAAmB,OAAO;AACd;AAAA,kBACE;AAAA,kBACA;AAAA,kBACA;AAAA;cAEd;AAAA;AAEU,kBAAI;AACF,2BAAW,YAAY,aAAa,SAAS;AAAA,cACzD,SAAmB,OAAO;AACd;AAAA,kBACE;AAAA,kBACA;AAAA,kBACA;AAAA;cAEd;AACM;AAAA,QACF,KAAK;AACH,mBAAS,eACN,yBACK,eAAe,YACjB;AAAA,YACE,MAAM,aAAa,WACf,aAAa,OACb,WAAW,aAAa,WACtB,aAAa,cAAc,OAC3B;AAAA,YACN,aAAa;AAAA,aAEf,iBAAiB,YAAY,KAC7B,uBAAuB,YAAY,aAAa,SAAS;AAC/D;AAAA,QACF,KAAK;AACH,2BAAiB;AACjB,sCAA4B;AAC5B,uBAAa,aAAa,UAAU;AACpC,kCAAwB;AACxB;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF,uBAAa;AACb,kCAAwB;AACxB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,sCAA4B,GAAG,cAAc,sBAAsB;AACnE,uCACE,4BAA4B,GAAG,cAAc,sBAAsB;AACrE;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH,wCACG,gBAAgB,cAAc,sBAAsB,GACpD,iBAAiB,aAAa,WAC/B,eAAe,OAAO,eAAe,wBACnC;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,UACZ;AACM;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH,uCACG,iBAAiB,8BAClB,SAAS,aAAa;AACxB;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF,sCAA4B;AAC5B;AAAA,QACF;AACE;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;MAER;AAAA,IACA;AACA,aAAS,iCAAiC,cAAc,cAAc;AACpE,UACE,SAAS,aAAa,kBACpB,eAAe,aAAa,WAC9B,SAAS,iBACL,eAAe,aAAa,eAAgB,SAAS,gBACzD;AACA,uBAAe,aAAa;AAC5B,YAAI;AACF,2BAAiB,YAAY;AAAA,QACnC,SAAa,OAAO;AACd,kCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,QACtE;AAAA,MACA;AAAA,IACA;AACA,aAAS,iCAAiC,cAAc,cAAc;AACpE,UACE,SAAS,aAAa,kBACpB,eAAe,aAAa,WAC9B,SAAS,iBACL,eAAe,aAAa,eAC9B,SAAS,iBACL,eAAe,aAAa,YAAa,SAAS;AAExD,YAAI;AACF,2BAAiB,YAAY;AAAA,QACnC,SAAa,OAAO;AACd,kCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,QACtE;AAAA,IACA;AACA,aAAS,cAAc,cAAc;AACnC,cAAQ,aAAa,KAAG;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,cAAI,aAAa,aAAa;AAC9B,mBAAS,eACN,aAAa,aAAa,YAAY,IAAI,gBAAe;AAC5D,iBAAO;AAAA,QACT,KAAK;AACH,iBACG,eAAe,aAAa,WAC5B,aAAa,aAAa,aAC3B,SAAS,eACN,aAAa,aAAa,cAAc,IAAI,gBAAe,IAC9D;AAAA,QAEJ;AACE,gBAAM,MAAM,uBAAuB,KAAK,aAAa,GAAG,CAAC;AAAA,MAC/D;AAAA,IACA;AACA,aAAS,6BAA6B,cAAc,WAAW;AAC7D,UAAI,aAAa,cAAc,YAAY;AAC3C,gBAAU,QAAQ,SAAU,UAAU;AACpC,YAAI,CAAC,WAAW,IAAI,QAAQ,GAAG;AAC7B,qBAAW,IAAI,QAAQ;AACvB,cAAI,QAAQ,qBAAqB,KAAK,MAAM,cAAc,QAAQ;AAClE,mBAAS,KAAK,OAAO,KAAK;AAAA,QAChC;AAAA,MACA,CAAG;AAAA,IACH;AACA,aAAS,mCAAmC,eAAe,aAAa;AACtE,UAAI,YAAY,YAAY;AAC5B,UAAI,SAAS;AACX,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,cAAI,gBAAgB,UAAU,CAAC,GAC7BA,QAAO,eACP,cAAc,aACd,SAAS;AACX,YAAG,QAAO,SAAS,UAAU;AAC3B,oBAAQ,OAAO,KAAG;AAAA,cAChB,KAAK;AACH,oBAAI,iBAAiB,OAAO,IAAI,GAAG;AACjC,+BAAa,OAAO;AACpB,0CAAwB;AACxB,wBAAM;AAAA,gBACpB;AACY;AAAA,cACF,KAAK;AACH,6BAAa,OAAO;AACpB,wCAAwB;AACxB,sBAAM;AAAA,cACR,KAAK;AAAA,cACL,KAAK;AACH,6BAAa,OAAO,UAAU;AAC9B,wCAAwB;AACxB,sBAAM;AAAA,YAClB;AACQ,qBAAS,OAAO;AAAA,UACxB;AACM,cAAI,SAAS,WAAY,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAChE,uCAA6BA,OAAM,aAAa,aAAa;AAC7D,uBAAa;AACb,kCAAwB;AACxB,UAAAA,QAAO,cAAc;AACrB,mBAASA,UAASA,MAAK,SAAS;AAChC,wBAAc,SAAS;AAAA,QAC7B;AACE,UAAI,YAAY,eAAe;AAC7B,aAAK,cAAc,YAAY,OAAO,SAAS;AAC7C,uCAA6B,aAAa,aAAa,GACpD,cAAc,YAAY;AAAA,IACnC;AACA,QAAI,uBAAuB;AAC3B,aAAS,6BAA6B,cAAcA,OAAM;AACxD,UAAI,UAAU,aAAa,WACzB,QAAQ,aAAa;AACvB,cAAQ,aAAa,KAAG;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,kBAAQ,MACL,4BAA4B,GAAG,cAAc,aAAa,MAAM,GACjE,0BAA0B,GAAG,YAAY,GACzC,4BAA4B,GAAG,cAAc,aAAa,MAAM;AAClE;AAAA,QACF,KAAK;AACH,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,kBAAQ,QACL,6BACC,SAAS,WACT,gBAAgB,SAAS,QAAQ,MAAM;AAC3C,kBAAQ,MACN,6BACE,eAAe,aAAa,aAC9B,SAAS,iBACL,QAAQ,aAAa,WACvB,SAAS,UACL,UAAU,aAAa,OAAO,iBAC/B,aAAa,OAAO,kBACnB,SAAS,UAAU,QAAQ,QAAQ,OAAO,KAAK;AACvD;AAAA,QACF,KAAK;AACH,cAAI,gBAAgB;AACpB,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,kBAAQ,QACL,6BACC,SAAS,WACT,gBAAgB,SAAS,QAAQ,MAAM;AAC3C,cAAI,QAAQ,GAAG;AACb,gBAAI,kBAAkB,SAAS,UAAU,QAAQ,gBAAgB;AACjE,oBAAQ,aAAa;AACrB,gBAAI,SAAS;AACX,kBAAI,SAAS;AACX,oBAAI,SAAS,aAAa,WAAW;AACnC,qBAAG;AACD,4BAAQ,aAAa;AACrB,8BAAU,aAAa;AACvB,oCAAgB,cAAc,iBAAiB;AAC/C,sBAAG,SAAQ,OAAK;AAAA,sBACd,KAAK;AACH,0CACE,cAAc,qBAAqB,OAAO,EAAE,CAAC;AAC/C,4BACE,CAAC,mBACD,gBAAgB,uBAAuB,KACvC,gBAAgB,mBAAmB,KACnC,iCACE,gBAAgB,gBAClB,gBAAgB,aAAa,UAAU;AAEvC,0BAAC,kBAAkB,cAAc,cAAc,KAAK,GAClD,cAAc,KAAK;AAAA,4BACjB;AAAA,4BACA,cAAc,cAAc,cAAc;AAAA;AAEhD,6CAAqB,iBAAiB,OAAO,OAAO;AACpD,wCAAgB,mBAAmB,IAAI;AACvC,4CAAoB,eAAe;AACnC,gCAAQ;AACR,8BAAM;AAAA,sBACR,KAAK;AACH,4BAAI,aAAa;AAAA,0BACf;AAAA,0BACA;AAAA,0BACA;AAAA,0BACA,IAAI,SAAS,QAAQ,QAAQ,GAAG;AAClC,4BAAI;AACF,mCAAS,IAAI,GAAG,IAAI,WAAW,QAAQ;AACrC,gCACI,kBAAkB,WAAW,CAAC,GAChC,gBAAgB,aAAa,MAAM,OAChC,QAAQ,QAAQ,QAAQ,OAAO,QAAQ,OACpC,OACA,QAAQ,SACZ,gBAAgB,aAAa,KAAK,OAC/B,QAAQ,QAAQ,MAAM,OAAO,QAAQ,QACxC,gBAAgB,aAAa,OAAO,OACjC,QAAQ,QAAQ,QAAQ,OAAO,QAAQ,UAC1C,gBAAgB,aAAa,aAAa,OACvC,QAAQ,QAAQ,cACb,OACA,QAAQ,cAChB;AACA,yCAAW,OAAO,GAAG,CAAC;AACtB,oCAAM;AAAA,4BAChC;AAAA;AACoB,0CAAkB,cAAc,cAAc,KAAK;AACnD,6CAAqB,iBAAiB,OAAO,OAAO;AACpD,sCAAc,KAAK,YAAY,eAAe;AAC9C;AAAA,sBACF,KAAK;AACH,4BACG,aAAa;AAAA,0BACZ;AAAA,0BACA;AAAA,0BACA;AAAA,0BACA,IAAI,SAAS,QAAQ,WAAW,GAAG;AAErC,+BAAK,IAAI,GAAG,IAAI,WAAW,QAAQ;AACjC,gCACI,kBAAkB,WAAW,CAAC,GAChC,gBAAgB,aAAa,SAAS,OACnC,QAAQ,QAAQ,UACb,OACA,KAAK,QAAQ,YACjB,gBAAgB,aAAa,MAAM,OAChC,QAAQ,QAAQ,OAAO,OAAO,QAAQ,SACzC,gBAAgB,aAAa,UAAU,OACpC,QAAQ,QAAQ,WACb,OACA,QAAQ,aACd,gBAAgB,aAAa,YAAY,OACtC,QAAQ,QAAQ,YACb,OACA,QAAQ,cACd,gBAAgB,aAAa,SAAS,OACnC,QAAQ,QAAQ,UACb,OACA,QAAQ,UAChB;AACA,yCAAW,OAAO,GAAG,CAAC;AACtB,oCAAM;AAAA,4BAChC;AAAA;AACoB,0CAAkB,cAAc,cAAc,KAAK;AACnD,6CAAqB,iBAAiB,OAAO,OAAO;AACpD,sCAAc,KAAK,YAAY,eAAe;AAC9C;AAAA,sBACF;AACE,8BAAM,MAAM,uBAAuB,KAAK,KAAK,CAAC;AAAA,oBAClE;AACgB,oCAAgB,mBAAmB,IAAI;AACvC,wCAAoB,eAAe;AACnC,4BAAQ;AAAA,kBACxB;AACc,+BAAa,YAAY;AAAA,gBACvC;AACc;AAAA,oBACE;AAAA,oBACA,aAAa;AAAA,oBACb,aAAa;AAAA;;AAGjB,6BAAa,YAAY;AAAA,kBACvB;AAAA,kBACA;AAAA,kBACA,aAAa;AAAA;;AAGjB,kCAAoB,SACf,SAAS,kBACN,SAAS,QAAQ,cACf,UAAU,QAAQ,WACpB,QAAQ,WAAW,YAAY,OAAO,KACtC,gBAAgB,SACpB,SAAS,QACL;AAAA,gBACE;AAAA,gBACA,aAAa;AAAA,gBACb,aAAa;AAAA,cACjC,IACkB;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA,aAAa;AAAA,mBAEnB,SAAS,SACT,SAAS,aAAa,aACtB;AAAA,gBACE;AAAA,gBACA,aAAa;AAAA,gBACb,QAAQ;AAAA;UAExB;AACM;AAAA,QACF,KAAK;AACH,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,kBAAQ,QACL,6BACC,SAAS,WACT,gBAAgB,SAAS,QAAQ,MAAM;AAC3C,mBAAS,WACP,QAAQ,KACR;AAAA,YACE;AAAA,YACA,aAAa;AAAA,YACb,QAAQ;AAAA;AAEZ;AAAA,QACF,KAAK;AACH,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,kBAAQ,QACL,6BACC,SAAS,WACT,gBAAgB,SAAS,QAAQ,MAAM;AAC3C,cAAI,aAAa,QAAQ,IAAI;AAC3B,4BAAgB,aAAa;AAC7B,gBAAI;AACF,6BAAe,eAAe,EAAE;AAAA,YAC1C,SAAiB,OAAO;AACd,sCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,YAC1E;AAAA,UACA;AACM,kBAAQ,KACN,QAAQ,aAAa,cACnB,gBAAgB,aAAa,eAC/B;AAAA,YACE;AAAA,YACA;AAAA,YACA,SAAS,UAAU,QAAQ,gBAAgB;AAAA,UACrD;AACM,kBAAQ,SAAS,iBAAiB;AAClC;AAAA,QACF,KAAK;AACH,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,cAAI,QAAQ,GAAG;AACb,gBAAI,SAAS,aAAa;AACxB,oBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,oBAAQ,aAAa;AACrB,sBAAU,aAAa;AACvB,gBAAI;AACF,sBAAQ,YAAY;AAAA,YAC9B,SAAiB,OAAO;AACd,sCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,YAC1E;AAAA,UACA;AACM;AAAA,QACF,KAAK;AACH,sBAAY;AACZ,0BAAgB;AAChB,iCAAuB,iBAAiBA,MAAK,aAAa;AAC1D,6CAAmCA,OAAM,YAAY;AACrD,iCAAuB;AACvB,sCAA4B,YAAY;AACxC,cAAI,QAAQ,KAAK,SAAS,WAAW,QAAQ,cAAc;AACzD,gBAAI;AACF,+BAAiBA,MAAK,aAAa;AAAA,YAC7C,SAAiB,OAAO;AACd,sCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,YAC1E;AACM,6BACI,iBAAiB,OAAK,sBAAsB,YAAY;AAC5D;AAAA,QACF,KAAK;AACH,kBAAQ;AACR,iCAAuB;AAAA,YACrB,aAAa,UAAU;AAAA;AAEzB,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,iCAAuB;AACvB;AAAA,QACF,KAAK;AACH,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC;AAAA,QACF,KAAK;AACH,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,kBAAQ,MACJ,QAAQ,aAAa,aACvB,SAAS,UACL,aAAa,cAAc,MAC7B,6BAA6B,cAAc,KAAK;AACpD;AAAA,QACF,KAAK;AACH,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,uBAAa,MAAM,QAAQ,QACxB,SAAS,aAAa,mBACpB,SAAS,WAAW,SAAS,QAAQ,mBACvC,+BAA+B,IAAG;AACrC,kBAAQ,MACJ,QAAQ,aAAa,aACvB,SAAS,UACL,aAAa,cAAc,MAC7B,6BAA6B,cAAc,KAAK;AACpD;AAAA,QACF,KAAK;AACH,0BAAgB,SAAS,aAAa;AACtC,cAAI,YAAY,SAAS,WAAW,SAAS,QAAQ,eACnD,+BAA+B,0BAC/B,gCAAgC;AAClC,qCAA2B,gCAAgC;AAC3D,sCAA4B,iCAAiC;AAC7D,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B;AAC5B,qCAA2B;AAC3B,sCAA4B,YAAY;AACxC,cAAI,QAAQ;AACV,cAAG,MACDA,QAAO,aAAa,WAClBA,MAAK,cAAc,gBACfA,MAAK,cAAc,KACnBA,MAAK,cAAc,GACvB,kBACG,SAAS,WACR,aACA,4BACA,6BACA,0CAA0C,YAAY,IAC1D,UAAU,MACVA,QAAO,kBAGT;AACA,kBAAI,MAAMA,MAAK,OAAO,OAAOA,MAAK,KAAK;AACrC,oBAAI,SAAS,SAAS;AACpB,8BAAY,UAAUA;AACtB,sBAAI;AACF,wBAAM,kBAAkB,UAAU,WAAY;AAC5C,sBAAC,aAAa,gBAAgB,OAC5B,eAAe,OAAO,WAAW,cAC7B,WAAW,YAAY,WAAW,QAAQ,WAAW,IACpD,WAAW,UAAU;AAAA,yBACzB;AACH,0BAAI,UAAU;AACd,0BAAI,YAAY,UAAU,cAAc,OACtC,UACE,WAAW,aACX,SAAS,aACT,UAAU,eAAe,SAAS,IAC9B,UAAU,UACV;AACR,wBAAE,MAAM,UACN,QAAQ,WAAW,cAAc,OAAO,UACpC,MACC,KAAK,SAAS,KAAI;AAAA,oBAC3C;AAAA,kBACA,SAAuB,OAAO;AACd,4CAAwB,WAAW,UAAU,QAAQ,KAAK;AAAA,kBAC1E;AAAA,gBACA;AAAA,cACA,WAAqB,MAAMA,MAAK,KAAK;AACzB,oBAAI,SAAS,SAAS;AACpB,8BAAYA;AACZ,sBAAI;AACF,8BAAU,UAAU,YAAY,gBAC5B,KACA,UAAU;AAAA,kBAC9B,SAAuB,OAAO;AACd,4CAAwB,WAAW,UAAU,QAAQ,KAAK;AAAA,kBAC1E;AAAA,gBACA;AAAA,cACA,WAAqB,OAAOA,MAAK,KAAK;AAC1B,oBAAI,SAAS,SAAS;AACpB,8BAAYA;AACZ,sBAAI;AACF,wBAAI,WAAW,UAAU;AACzB,oCACI,+BAA+B,UAAU,IAAE,IAC3C,+BAA+B,UAAU,WAAW,KAAE;AAAA,kBAC1E,SAAuB,OAAO;AACd,4CAAwB,WAAW,UAAU,QAAQ,KAAK;AAAA,kBAC1E;AAAA,gBACA;AAAA,cACA,YACc,OAAOA,MAAK,OAAO,OAAOA,MAAK,OAC/B,SAASA,MAAK,iBACdA,UAAS,iBACX,SAASA,MAAK,OACd;AACA,gBAAAA,MAAK,MAAM,SAASA;AACpB,gBAAAA,QAAOA,MAAK;AACZ;AAAA,cACZ;AACU,kBAAIA,UAAS,aAAc,OAAM;AACjC,qBAAO,SAASA,MAAK,WAAW;AAC9B,oBAAI,SAASA,MAAK,UAAUA,MAAK,WAAW,aAAc,OAAM;AAChE,4BAAYA,UAAS,UAAU;AAC/B,gBAAAA,QAAOA,MAAK;AAAA,cACxB;AACU,0BAAYA,UAAS,UAAU;AAC/B,cAAAA,MAAK,QAAQ,SAASA,MAAK;AAC3B,cAAAA,QAAOA,MAAK;AAAA,YACtB;AACM,kBAAQ,MACJ,QAAQ,aAAa,aACvB,SAAS,UACL,UAAU,MAAM,YAClB,SAAS,YACL,MAAM,aAAa,MACrB,6BAA6B,cAAc,OAAO;AACxD;AAAA,QACF,KAAK;AACH,6CAAmCA,OAAM,YAAY;AACrD,sCAA4B,YAAY;AACxC,kBAAQ,MACJ,QAAQ,aAAa,aACvB,SAAS,UACL,aAAa,cAAc,MAC7B,6BAA6B,cAAc,KAAK;AACpD;AAAA,QACF,KAAK;AACH;AAAA,QACF,KAAK;AACH;AAAA,QACF;AACE,6CAAmCA,OAAM,YAAY,GACnD,4BAA4B,YAAY;AAAA,MAChD;AAAA,IACA;AACA,aAAS,4BAA4B,cAAc;AACjD,UAAI,QAAQ,aAAa;AACzB,UAAI,QAAQ,GAAG;AACb,YAAI;AACF,mBACM,iBAAiB,cAAc,aAAa,QAChD,SAAS,eAET;AACA,gBAAI,aAAa,WAAW,GAAG;AAC7B,gCAAkB;AAClB;AAAA,YACV;AACQ,0BAAc,YAAY;AAAA,UAClC;AACM,cAAI,QAAQ,gBAAiB,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACpE,kBAAQ,gBAAgB,KAAG;AAAA,YACzB,KAAK;AACH,kBAAI,SAAS,gBAAgB,WAC3B,SAAS,eAAe,YAAY;AACtC,0CAA4B,cAAc,QAAQ,MAAM;AACxD;AAAA,YACF,KAAK;AACH,kBAAI,aAAa,gBAAgB;AACjC,8BAAgB,QAAQ,OACrB,eAAe,YAAY,EAAE,GAAI,gBAAgB,SAAS;AAC7D,kBAAI,aAAa,eAAe,YAAY;AAC5C,0CAA4B,cAAc,YAAY,UAAU;AAChE;AAAA,YACF,KAAK;AAAA,YACL,KAAK;AACH,kBAAI,aAAa,gBAAgB,UAAU,eACzC,aAAa,eAAe,YAAY;AAC1C;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA;AAEF;AAAA,YACF;AACE,oBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,UACjD;AAAA,QACA,SAAa,OAAO;AACd,kCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,QACtE;AACI,qBAAa,SAAS;AAAA,MAC1B;AACE,cAAQ,SAAS,aAAa,SAAS;AAAA,IACzC;AACA,aAAS,sBAAsB,aAAa;AAC1C,UAAI,YAAY,eAAe;AAC7B,aAAK,cAAc,YAAY,OAAO,SAAS,eAAe;AAC5D,cAAI,QAAQ;AACZ,gCAAsB,KAAK;AAC3B,gBAAM,MAAM,OAAO,MAAM,QAAQ,QAAQ,MAAM,UAAU,MAAK;AAC9D,wBAAc,YAAY;AAAA,QAChC;AAAA,IACA;AACA,aAAS,iCAAiCA,OAAM,aAAa;AAC3D,UAAI,YAAY,eAAe;AAC7B,aAAK,cAAc,YAAY,OAAO,SAAS;AAC7C,oCAA0BA,OAAM,YAAY,WAAW,WAAW,GAC/D,cAAc,YAAY;AAAA,IACnC;AACA,aAAS,0CAA0C,aAAa;AAC9D,WAAK,cAAc,YAAY,OAAO,SAAS,eAAe;AAC5D,YAAI,eAAe;AACnB,gBAAQ,aAAa,KAAG;AAAA,UACtB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,wCAA4B,GAAG,cAAc,aAAa,MAAM;AAChE,sDAA0C,YAAY;AACtD;AAAA,UACF,KAAK;AACH,4BAAgB,cAAc,aAAa,MAAM;AACjD,gBAAI,WAAW,aAAa;AAC5B,2BAAe,OAAO,SAAS,wBAC7B;AAAA,cACE;AAAA,cACA,aAAa;AAAA,cACb;AAAA;AAEJ,sDAA0C,YAAY;AACtD;AAAA,UACF,KAAK;AACH,qCAAyB,aAAa,SAAS;AAAA,UACjD,KAAK;AAAA,UACL,KAAK;AACH,4BAAgB,cAAc,aAAa,MAAM;AACjD,sDAA0C,YAAY;AACtD;AAAA,UACF,KAAK;AACH,qBAAS,aAAa,iBACpB,0CAA0C,YAAY;AACxD;AAAA,UACF,KAAK;AACH,sDAA0C,YAAY;AACtD;AAAA,UACF;AACE,sDAA0C,YAAY;AAAA,QAC9D;AACI,sBAAc,YAAY;AAAA,MAC9B;AAAA,IACA;AACA,aAAS,yCACP,uBACA,aACA,8BACA;AACA,qCACE,gCAAgC,OAAO,YAAY,eAAe;AACpE,WAAK,cAAc,YAAY,OAAO,SAAS,eAAe;AAC5D,YAAI,UAAU,YAAY,WACxB,eAAe,uBACf,eAAe,aACf,QAAQ,aAAa;AACvB,gBAAQ,aAAa,KAAG;AAAA,UACtB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA;AAEF,sCAA0B,GAAG,YAAY;AACzC;AAAA,UACF,KAAK;AACH;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA;AAEF,sBAAU;AACV,2BAAe,QAAQ;AACvB,gBAAI,eAAe,OAAO,aAAa;AACrC,kBAAI;AACF,6BAAa,kBAAiB;AAAA,cAC1C,SAAmB,OAAO;AACd,wCAAwB,SAAS,QAAQ,QAAQ,KAAK;AAAA,cAClE;AACQ,sBAAU;AACV,2BAAe,QAAQ;AACvB,gBAAI,SAAS,cAAc;AACzB,kBAAI,WAAW,QAAQ;AACvB,kBAAI;AACF,oBAAI,kBAAkB,aAAa,OAAO;AAC1C,oBAAI,SAAS;AACX,uBACE,aAAa,OAAO,kBAAkB,MAAM,eAAe,GAC3D,eAAe,gBAAgB,QAC/B;AAEA,iCAAa,gBAAgB,YAAY,GAAG,QAAQ;AAAA,cACpE,SAAmB,OAAO;AACd,wCAAwB,SAAS,QAAQ,QAAQ,KAAK;AAAA,cAClE;AAAA,YACA;AACQ,4CACE,QAAQ,MACR,qBAAqB,YAAY;AACnC,4BAAgB,cAAc,aAAa,MAAM;AACjD;AAAA,UACF,KAAK;AACH,2CAA+B,YAAY;AAAA,UAC7C,KAAK;AAAA,UACL,KAAK;AACH;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA;AAEF,4CACE,SAAS,WACT,QAAQ,KACR,gBAAgB,YAAY;AAC9B,4BAAgB,cAAc,aAAa,MAAM;AACjD;AAAA,UACF,KAAK;AACH;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA;AAEF;AAAA,UACF,KAAK;AACH;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA;AAEF,4CACE,QAAQ,KACR,iCAAiC,cAAc,YAAY;AAC7D;AAAA,UACF,KAAK;AACH;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA;AAEF,4CACE,QAAQ,KACR,iCAAiC,cAAc,YAAY;AAC7D;AAAA,UACF,KAAK;AACH,qBAAS,aAAa,iBACpB;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA;AAEJ,4BAAgB,cAAc,aAAa,MAAM;AACjD;AAAA,UACF,KAAK;AACH;AAAA,UACF;AACE;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA;QAEV;AACI,sBAAc,YAAY;AAAA,MAC9B;AAAA,IACA;AACA,aAAS,mCAAmC,SAAS,cAAc;AACjE,UAAI,gBAAgB;AACpB,eAAS,WACP,SAAS,QAAQ,iBACjB,SAAS,QAAQ,cAAc,cAC9B,gBAAgB,QAAQ,cAAc,UAAU;AACnD,gBAAU;AACV,eAAS,aAAa,iBACpB,SAAS,aAAa,cAAc,cACnC,UAAU,aAAa,cAAc,UAAU;AAClD,kBAAY,kBACT,QAAQ,WAAW,QAAQ,YAC5B,QAAQ,iBAAiB,aAAa,aAAa;AAAA,IACvD;AACA,aAAS,8BAA8B,SAAS,cAAc;AAC5D,gBAAU;AACV,eAAS,aAAa,cACnB,UAAU,aAAa,UAAU,cAAc;AAClD,qBAAe,aAAa,cAAc;AAC1C,uBAAiB,YACd,aAAa,YAAY,QAAQ,WAAW,aAAa,OAAO;AAAA,IACrE;AACA,aAAS,uCACPA,OACA,aACA,gBACA,sBACA;AACA,UAAI,YAAY,eAAe;AAC7B,aAAK,cAAc,YAAY,OAAO,SAAS;AAC7C;AAAA,YACEA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,aAEC,cAAc,YAAY;AAAA,IACnC;AACA,aAAS,0BACP,cACA,cACA,gBACA,sBACA;AACA,UAAI,QAAQ,aAAa;AACzB,cAAQ,aAAa,KAAG;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF,kBAAQ,QAAQ,0BAA0B,GAAG,YAAY;AACzD;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF,kBAAQ,SACJ,eAAe,MACjB,SAAS,aAAa,cACnB,eAAe,aAAa,UAAU,cAAc,QACtD,eAAe,aAAa,cAAc,OAC3C,iBAAiB,iBACd,aAAa,YACd,QAAQ,gBAAgB,aAAa,YAAY;AACrD;AAAA,QACF,KAAK;AACH,cAAI,QAAQ,MAAM;AAChB;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAEF,2BAAe,aAAa;AAC5B,gBAAI;AACF,kBAAI,yBAAyB,aAAa,eACxC,KAAK,uBAAuB,IAC5B,eAAe,uBAAuB;AACxC,6BAAe,OAAO,gBACpB;AAAA,gBACE;AAAA,gBACA,SAAS,aAAa,YAAY,UAAU;AAAA,gBAC5C,aAAa;AAAA,gBACb;AAAA;YAEd,SAAiB,OAAO;AACd,sCAAwB,cAAc,aAAa,QAAQ,KAAK;AAAA,YAC1E;AAAA,UACA;AACQ;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAEJ;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,QACF,KAAK;AACH,mCAAyB,aAAa;AACtC,eAAK,aAAa;AAClB,mBAAS,aAAa,gBAClB,uBAAuB,cAAc,IACnC;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACd,IACY,wCAAwC,cAAc,YAAY,IACpE,uBAAuB,cAAc,IACnC;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACd,KACc,uBAAuB,eAAe,GACxC;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAO,aAAa,eAAe,UAAU;AAAA,UAC3D;AACM,kBAAQ,QAAQ,mCAAmC,IAAI,YAAY;AACnE;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF,kBAAQ,QACN,8BAA8B,aAAa,WAAW,YAAY;AACpE;AAAA,QACF;AACE;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;MAER;AAAA,IACA;AACA,aAAS,2CACP,uBACA,aACA,yBACA,+BACA,8BACA;AACA,qCACE,iCACC,OAAO,YAAY,eAAe,UAAU;AAC/C,WAAK,cAAc,YAAY,OAAO,SAAS,eAAe;AAC5D,YAAI,eAAe,uBACjB,eAAe,aACf,iBAAiB,yBACjB,uBAAuB,+BACvB,QAAQ,aAAa;AACvB,gBAAQ,aAAa,KAAG;AAAA,UACtB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAEF,sCAA0B,GAAG,YAAY;AACzC;AAAA,UACF,KAAK;AACH;AAAA,UACF,KAAK;AACH,gBAAI,WAAW,aAAa;AAC5B,qBAAS,aAAa,gBAClB,SAAS,cAAc,IACrB;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAChB,IACc;AAAA,cACE;AAAA,cACA;AAAA,YAChB,KACc,SAAS,eAAe,GAC1B;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACd;AACQ,4CACE,QAAQ,QACR;AAAA,cACE,aAAa;AAAA,cACb;AAAA;AAEJ;AAAA,UACF,KAAK;AACH;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAEF,4CACE,QAAQ,QACR,8BAA8B,aAAa,WAAW,YAAY;AACpE;AAAA,UACF;AACE;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;QAEV;AACI,sBAAc,YAAY;AAAA,MAC9B;AAAA,IACA;AACA,aAAS,wCACP,uBACA,aACA;AACA,UAAI,YAAY,eAAe;AAC7B,aAAK,cAAc,YAAY,OAAO,SAAS,eAAe;AAC5D,cAAI,eAAe,uBACjB,eAAe,aACf,QAAQ,aAAa;AACvB,kBAAQ,aAAa,KAAG;AAAA,YACtB,KAAK;AACH,sDAAwC,cAAc,YAAY;AAClE,sBAAQ,QACN;AAAA,gBACE,aAAa;AAAA,gBACb;AAAA;AAEJ;AAAA,YACF,KAAK;AACH,sDAAwC,cAAc,YAAY;AAClE,sBAAQ,QACN,8BAA8B,aAAa,WAAW,YAAY;AACpE;AAAA,YACF;AACE,sDAAwC,cAAc,YAAY;AAAA,UAC5E;AACM,wBAAc,YAAY;AAAA,QAChC;AAAA,IACA;AACA,QAAI,sBAAsB;AAC1B,aAAS,qCACP,aACA,gBACA,gBACA;AACA,UAAI,YAAY,eAAe;AAC7B,aAAK,cAAc,YAAY,OAAO,SAAS;AAC7C;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,aAEC,cAAc,YAAY;AAAA,IACnC;AACA,aAAS,iCACP,OACA,gBACA,gBACA;AACA,cAAQ,MAAM,KAAG;AAAA,QACf,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF,gBAAM,QAAQ,uBACZ,SAAS,MAAM,iBACf;AAAA,YACE;AAAA,YACA;AAAA,YACA,MAAM;AAAA,YACN,MAAM;AAAA;AAEV;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,cAAI,wBAAwB;AAC5B,iCAAuB,iBAAiB,MAAM,UAAU,aAAa;AACrE;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;AAEF,iCAAuB;AACvB;AAAA,QACF,KAAK;AACH,mBAAS,MAAM,kBACX,wBAAwB,MAAM,WAChC,SAAS,yBACT,SAAS,sBAAsB,iBACzB,wBAAwB,qBACzB,sBAAsB,UACvB;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,aAED,sBAAsB,yBACvB;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,UACd;AACM;AAAA,QACF;AACE;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA;MAER;AAAA,IACA;AACA,aAAS,wBAAwB,aAAa;AAC5C,UAAI,gBAAgB,YAAY;AAChC,UACE,SAAS,kBACP,cAAc,cAAc,OAAQ,SAAS,cAC/C;AACA,sBAAc,QAAQ;AACtB;AACE,UAAC,gBAAgB,YAAY,SAC1B,YAAY,UAAU,MACtB,cAAc;AAAA,eACZ,SAAS;AAAA,MACpB;AAAA,IACA;AACA,aAAS,yCAAyC,aAAa;AAC7D,UAAI,YAAY,YAAY;AAC5B,UAAI,OAAO,YAAY,QAAQ,KAAK;AAClC,YAAI,SAAS;AACX,mBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,gBAAI,gBAAgB,UAAU,CAAC;AAC/B,yBAAa;AACb;AAAA,cACE;AAAA,cACA;AAAA;UAEV;AACI,gCAAwB,WAAW;AAAA,MACvC;AACE,UAAI,YAAY,eAAe;AAC7B,aAAK,cAAc,YAAY,OAAO,SAAS;AAC7C,sCAA4B,WAAW,GACpC,cAAc,YAAY;AAAA,IACnC;AACA,aAAS,4BAA4B,cAAc;AACjD,cAAQ,aAAa,KAAG;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,mDAAyC,YAAY;AACrD,uBAAa,QAAQ,QACnB,4BAA4B,GAAG,cAAc,aAAa,MAAM;AAClE;AAAA,QACF,KAAK;AACH,mDAAyC,YAAY;AACrD;AAAA,QACF,KAAK;AACH,mDAAyC,YAAY;AACrD;AAAA,QACF,KAAK;AACH,cAAI,WAAW,aAAa;AAC5B,mBAAS,aAAa,iBACtB,SAAS,cAAc,MACtB,SAAS,aAAa,UAAU,OAAO,aAAa,OAAO,QACtD,SAAS,eAAe,IAC1B,4CAA4C,YAAY,KACxD,yCAAyC,YAAY;AACzD;AAAA,QACF;AACE,mDAAyC,YAAY;AAAA,MAC3D;AAAA,IACA;AACA,aAAS,4CAA4C,aAAa;AAChE,UAAI,YAAY,YAAY;AAC5B,UAAI,OAAO,YAAY,QAAQ,KAAK;AAClC,YAAI,SAAS;AACX,mBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,gBAAI,gBAAgB,UAAU,CAAC;AAC/B,yBAAa;AACb;AAAA,cACE;AAAA,cACA;AAAA;UAEV;AACI,gCAAwB,WAAW;AAAA,MACvC;AACE,WAAK,cAAc,YAAY,OAAO,SAAS,eAAe;AAC5D,oBAAY;AACZ,gBAAQ,UAAU,KAAG;AAAA,UACnB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,wCAA4B,GAAG,WAAW,UAAU,MAAM;AAC1D,wDAA4C,SAAS;AACrD;AAAA,UACF,KAAK;AACH,gBAAI,UAAU;AACd,cAAE,cAAc,MACZ,EAAE,eAAe,IACnB,4CAA4C,SAAS;AACvD;AAAA,UACF;AACE,wDAA4C,SAAS;AAAA,QAC7D;AACI,sBAAc,YAAY;AAAA,MAC9B;AAAA,IACA;AACA,aAAS,qDACP,oBACA,wBACA;AACA,aAAO,SAAS,cAAc;AAC5B,YAAI,QAAQ;AACZ,gBAAQ,MAAM,KAAG;AAAA,UACf,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,wCAA4B,GAAG,OAAO,sBAAsB;AAC5D;AAAA,UACF,KAAK;AAAA,UACL,KAAK;AACH,gBACE,SAAS,MAAM,iBACf,SAAS,MAAM,cAAc,WAC7B;AACA,kBAAI,QAAQ,MAAM,cAAc,UAAU;AAC1C,sBAAQ,SAAS,MAAM;AAAA,YACjC;AACQ;AAAA,UACF,KAAK;AACH,yBAAa,MAAM,cAAc,KAAK;AAAA,QAC9C;AACI,gBAAQ,MAAM;AACd,YAAI,SAAS,MAAO,CAAC,MAAM,SAAS,OAAS,aAAa;AAAA;AAExD,YAAG,MAAK,QAAQ,oBAAoB,SAAS,cAAc;AACzD,oBAAQ;AACR,gBAAI,UAAU,MAAM,SAClB,cAAc,MAAM;AACtB,oCAAwB,KAAK;AAC7B,gBAAI,UAAU,OAAO;AACnB,2BAAa;AACb,oBAAM;AAAA,YAChB;AACQ,gBAAI,SAAS,SAAS;AACpB,sBAAQ,SAAS;AACjB,2BAAa;AACb,oBAAM;AAAA,YAChB;AACQ,yBAAa;AAAA,UACrB;AAAA,MACA;AAAA,IACA;AACA,QAAI,yBAAyB;AAAA,MACzB,iBAAiB,SAAU,cAAc;AACvC,YAAI,QAAQ,YAAY,YAAY,GAClC,eAAe,MAAM,KAAK,IAAI,YAAY;AAC5C,mBAAW,iBACP,eAAe,aAAY,GAC7B,MAAM,KAAK,IAAI,cAAc,YAAY;AAC3C,eAAO;AAAA,MACb;AAAA,MACI,aAAa,WAAY;AACvB,eAAO,YAAY,YAAY,EAAE,WAAW;AAAA,MAClD;AAAA,OAEE,kBAAkB,eAAe,OAAO,UAAU,UAAU,KAC5D,mBAAmB,GACnB,qBAAqB,MACrB,iBAAiB,MACjB,gCAAgC,GAChC,gCAAgC,GAChC,4BAA4B,MAC5B,6CAA6C,OAC7C,mCAAmC,OACnC,0CAA0C,OAC1C,uBAAuB,GACvB,+BAA+B,GAC/B,iCAAiC,GACjC,4CAA4C,GAC5C,gCAAgC,GAChC,6BAA6B,GAC7B,oCAAoC,GACpC,qCAAqC,MACrC,sCAAsC,MACtC,oDAAoD,OACpD,+BAA+B,GAC/B,iCAAiC,GACjC,qCAAqC,UACrC,4BAA4B,MAC5B,yCAAyC,MACzC,uBAAuB,GACvB,qBAAqB,MACrB,sBAAsB,MACtB,sBAAsB,GACtB,+BAA+B,GAC/B,4BAA4B,MAC5B,2BAA2B,MAC3B,oBAAoB,GACpB,wBAAwB;AAC1B,aAAS,oBAAoB;AAC3B,aAAO,OAAO,mBAAmB,MAAM,MAAM,gCACzC,gCAAgC,CAAC,gCACjC,SAAS,qBAAqB,IAC5B,sBAAqB,IACrB,sBAAqB;AAAA,IAC7B;AACA,aAAS,sBAAsB;AAC7B,UAAI,MAAM;AACR,YAAI,OAAO,gCAAgC,cAAc,aAAa;AACpE,cAAI,OAAO;AACX,yCAA+B;AAC/B,iBAAO,6BAA6B,aACjC,6BAA6B;AAChC,uCAA6B;AAAA,QACnC,MAAW,8BAA6B;AACtC,aAAO,2BAA2B;AAClC,eAAS,SAAS,KAAK,SAAS;AAChC,aAAO;AAAA,IACT;AACA,aAAS,sBAAsBA,OAAM,OAAO,MAAM;AAChD,UACGA,UAAS,uBACP,MAAM,iCACL,MAAM,kCACV,SAASA,MAAK;AAEd,0BAAkBA,OAAM,CAAC,GACvB;AAAA,UACEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAEN,wBAAkBA,OAAM,IAAI;AAC5B,UAAI,OAAO,mBAAmB,MAAMA,UAAS;AAC3C,QAAAA,UAAS,uBACN,OAAO,mBAAmB,OACxB,6CAA6C,OAChD,MAAM,gCACJ;AAAA,UACEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACV,IACM,sBAAsBA,KAAI;AAAA,IAChC;AACA,aAAS,kBAAkB,eAAe,OAAO,WAAW;AAC1D,UAAI,OAAO,mBAAmB,GAAI,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACzE,UAAI,kBACC,CAAC,aACA,OAAO,QAAQ,QACf,OAAO,QAAQ,cAAc,iBAC/B,0BAA0B,eAAe,KAAK,GAChD,aAAa,kBACT,qBAAqB,eAAe,KAAK,IACzC,eAAe,eAAe,OAAO,IAAE,GAC3C,sBAAsB;AACxB,SAAG;AACD,YAAI,MAAM,YAAY;AACpB,8CACE,CAAC,mBACD,kBAAkB,eAAe,OAAO,GAAG,KAAE;AAC/C;AAAA,QACN,OAAW;AACL,sBAAY,cAAc,QAAQ;AAClC,cACE,uBACA,CAAC,qCAAqC,SAAS,GAC/C;AACA,yBAAa,eAAe,eAAe,OAAO,KAAE;AACpD,kCAAsB;AACtB;AAAA,UACR;AACM,cAAI,MAAM,YAAY;AACpB,kCAAsB;AACtB,gBAAI,cAAc,6BAA6B;AAC7C,kBAAI,2BAA2B;AAAA;AAE/B,cAAC,2BAA2B,cAAc,eAAe,YACtD,2BACC,MAAM,2BACF,2BACA,2BAA2B,YACzB,YACA;AACZ,gBAAI,MAAM,0BAA0B;AAClC,sBAAQ;AACR,iBAAG;AACD,oBAAIA,QAAO;AACX,6BAAa;AACb,oBAAI,oBAAoBA,MAAK,QAAQ,cAAc;AACnD,sCACG,kBAAkBA,OAAM,wBAAwB,EAAE,SAAS;AAC9D,2CAA2B;AAAA,kBACzBA;AAAA,kBACA;AAAA,kBACA;AAAA;AAEF,oBAAI,MAAM,0BAA0B;AAClC,sBACE,2CACA,CAAC,mBACD;AACA,oBAAAA,MAAK,8BAA8B;AACnC,iEACE;AACF,iCAAa;AACb,0BAAM;AAAA,kBACtB;AACc,wCAAsB;AACtB,wDAAsC;AACtC,2BAAS,wBACN,SAAS,sCACL,sCAAsC,sBACvC,oCAAoC,KAAK;AAAA,oBACvC;AAAA,oBACA;AAAA,kBACtB;AAAA,gBACA;AACY,6BAAa;AAAA,cACzB;AACU,oCAAsB;AACtB,kBAAI,MAAM,WAAY;AAAA,YAChC;AAAA,UACA;AACM,cAAI,MAAM,YAAY;AACpB,8BAAkB,eAAe,CAAC;AAClC,8BAAkB,eAAe,OAAO,GAAG,IAAE;AAC7C;AAAA,UACR;AACM,aAAG;AACD,8BAAkB;AAClB,kCAAsB;AACtB,oBAAQ,qBAAmB;AAAA,cACzB,KAAK;AAAA,cACL,KAAK;AACH,sBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,cACzC,KAAK;AACH,qBAAK,QAAQ,aAAa,MAAO;AAAA,cACnC,KAAK;AACH;AAAA,kBACE;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,CAAC;AAAA;AAEH,sBAAM;AAAA,cACR,KAAK;AACH,sDAAsC;AACtC;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AACH;AAAA,cACF;AACE,sBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,YACnD;AACQ,iBACG,QAAQ,cAAc,UACrB,aAAa,+BAA+B,MAAM,IAAG,GACvD,KAAK,aACL;AACA;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,CAAC;AAAA;AAEH,kBAAI,MAAM,aAAa,iBAAiB,GAAG,IAAE,EAAG,OAAM;AACtD,oCAAsB;AACtB,8BAAgB,gBAAgB;AAAA,gBAC9B,oBAAoB;AAAA,kBAClB;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA;gBAEF;AAAA;AAEF,oBAAM;AAAA,YAChB;AACQ;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;UAEV;AAAA,QACA;AACI;AAAA,MACJ,SAAW;AACT,4BAAsB,aAAa;AAAA,IACrC;AACA,aAAS,oBACPA,OACA,cACA,mBACA,aACA,6BACA,OACA,aACA,cACA,qBACA,0BACA,YACA,uBACA,0BACA,wBACA;AACA,MAAAA,MAAK,gBAAgB;AACrB,8BAAwB,aAAa;AACrC,UACE,wBAAwB,QACxB,cAAc,wBAAwB,WACtC;AACA,gCAAwB;AAAA,UACtB,aAAa;AAAA,UACb,OAAO;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,UACV,iBAAiB,CAAA;AAAA,UACjB,kBAAkB;AAAA,UAClB,0BAA0B;AAAA,UAC1B,WAAW;AAAA;AAEb;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA;AAEF,YAAI,iBACD,QAAQ,cAAc,QACnB,+BAA+B,IAAG,KACjC,QAAQ,aAAa,QACpB,iCAAiC,IAAG,IACpC;AACR,wBAAgB;AAAA,UACd;AAAA,UACA;AAAA;AAEF,YAAI,SAAS,eAAe;AAC1B,gCAAsB;AACtB,UAAAA,MAAK,sBAAsB;AAAA,YACzB,WAAW;AAAA,cACT;AAAA,cACAA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACV;AAAA;AAEM,4BAAkBA,OAAM,OAAO,aAAa,CAAC,wBAAwB;AACrE;AAAA,QACN;AAAA,MACA;AACE;AAAA,QACEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;IAEJ;AACA,aAAS,qCAAqC,cAAc;AAC1D,eAAS,OAAO,kBAAkB;AAChC,YAAI,MAAM,KAAK;AACf,aACG,MAAM,OAAO,OAAO,OAAO,OAAO,QACnC,KAAK,QAAQ,UACX,MAAM,KAAK,aACb,SAAS,QAAS,MAAM,IAAI,QAAS,SAAS;AAE9C,mBAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,gBAAI,QAAQ,IAAI,CAAC,GACf,cAAc,MAAM;AACtB,oBAAQ,MAAM;AACd,gBAAI;AACF,kBAAI,CAAC,SAAS,YAAW,GAAI,KAAK,EAAG,QAAO;AAAA,YACtD,SAAiB,OAAO;AACd,qBAAO;AAAA,YACjB;AAAA,UACA;AACI,cAAM,KAAK;AACX,YAAI,KAAK,eAAe,SAAS,SAAS;AACxC,UAAC,IAAI,SAAS,MAAQ,OAAO;AAAA,aAC1B;AACH,cAAI,SAAS,aAAc;AAC3B,iBAAO,SAAS,KAAK,WAAW;AAC9B,gBAAI,SAAS,KAAK,UAAU,KAAK,WAAW,aAAc,QAAO;AACjE,mBAAO,KAAK;AAAA,UACpB;AACM,eAAK,QAAQ,SAAS,KAAK;AAC3B,iBAAO,KAAK;AAAA,QAClB;AAAA,MACA;AACE,aAAO;AAAA,IACT;AACA,aAAS,kBACPA,OACA,gBACA,aACA,sBACA;AACA,wBAAkB,CAAC;AACnB,wBAAkB,CAAC;AACnB,MAAAA,MAAK,kBAAkB;AACvB,MAAAA,MAAK,eAAe,CAAC;AACrB,+BAAyBA,MAAK,aAAa;AAC3C,6BAAuBA,MAAK;AAC5B,eAAS,QAAQ,gBAAgB,IAAI,SAAS;AAC5C,YAAI,UAAU,KAAK,MAAM,KAAK,GAC5B,OAAO,KAAK;AACd,6BAAqB,OAAO,IAAI;AAChC,iBAAS,CAAC;AAAA,MACd;AACE,YAAM,eACJ,wBAAwBA,OAAM,aAAa,cAAc;AAAA,IAC7D;AACA,aAAS,kBAAkB;AACzB,aAAO,OAAO,mBAAmB,MAC5B,8BAA8B,CAAK,GAAG,SACvC;AAAA,IACN;AACA,aAAS,2BAA2B;AAClC,UAAI,SAAS,gBAAgB;AAC3B,YAAI,MAAM;AACR,cAAI,kBAAkB,eAAe;AAAA;AAErC,UAAC,kBAAkB,gBAChB,wBAAwB,4BAA4B,MACrD,mBAAmB,eAAe,GACjC,kBAAkB,MAClB,yBAAyB,GACzB,kBAAkB;AACvB,eAAO,SAAS;AACd,gCAAsB,gBAAgB,WAAW,eAAe,GAC7D,kBAAkB,gBAAgB;AACvC,yBAAiB;AAAA,MACrB;AAAA,IACA;AACA,aAAS,kBAAkBA,OAAM,OAAO;AACtC,UAAI,gBAAgBA,MAAK;AACzB,aAAO,kBACHA,MAAK,gBAAgB,IAAK,cAAc,aAAa;AACzD,sBAAgBA,MAAK;AACrB,eAAS,kBACLA,MAAK,sBAAsB,MAAO,cAAa;AACnD,4BAAsB;AACtB,+BAAwB;AACxB,2BAAqBA;AACrB,uBAAiB,gBAAgB,qBAAqBA,MAAK,SAAS,IAAI;AACxE,sCAAgC;AAChC,sCAAgC;AAChC,kCAA4B;AAC5B,mDAA6C;AAC7C,yCAAmC,0BAA0BA,OAAM,KAAK;AACxE,gDAA0C;AAC1C,0CACE,6BACA,gCACA,4CACA,iCACA,+BACE;AACJ,4CAAsC,qCACpC;AACF,0DAAoD;AACpD,aAAO,QAAQ,OAAO,SAAS,QAAQ;AACvC,UAAI,oBAAoBA,MAAK;AAC7B,UAAI,MAAM;AACR,aACEA,QAAOA,MAAK,eAAe,qBAAqB,OAChD,IAAI,qBAEJ;AACA,cAAI,UAAU,KAAK,MAAM,iBAAiB,GACxC,OAAO,KAAK;AACd,mBAASA,MAAK,OAAO;AACrB,+BAAqB,CAAC;AAAA,QAC5B;AACE,6BAAuB;AACvB,sCAA+B;AAC/B,aAAO;AAAA,IACT;AACA,aAAS,YAAYA,OAAM,aAAa;AACtC,gCAA0B;AAC1B,2BAAqB,IAAI;AACzB,sBAAgB,qBAAqB,gBAAgB,2BAC/C,cAAc,qBAAoB,GACnC,gCAAgC,KACjC,gBAAgB,4BACZ,cAAc,qBAAoB,GACnC,gCAAgC,KAChC,gCACC,gBAAgB,8BACZ,IACA,SAAS,eACP,aAAa,OAAO,eACpB,eAAe,OAAO,YAAY,OAClC,IACA;AACd,kCAA4B;AAC5B,eAAS,mBACL,+BAA+B,GACjC;AAAA,QACEA;AAAA,QACA,2BAA2B,aAAaA,MAAK,OAAO;AAAA,MAC1D;AAAA,IACA;AACA,aAAS,+BAA+B;AACtC,UAAI,UAAU,2BAA2B;AACzC,aAAO,SAAS,UACZ,QACC,gCAAgC,aAC/B,gCACA,SAAS,gBACP,OACA,SACD,gCAAgC,cAC7B,iCACF,OAAO,gCAAgC,aACvC,YAAY,gBACZ;AAAA,IACV;AACA,aAAS,iBAAiB;AACxB,UAAI,iBAAiB,qBAAqB;AAC1C,2BAAqB,IAAI;AACzB,aAAO,SAAS,iBAAiB,wBAAwB;AAAA,IAC3D;AACA,aAAS,sBAAsB;AAC7B,UAAI,sBAAsB,qBAAqB;AAC/C,2BAAqB,IAAI;AACzB,aAAO;AAAA,IACT;AACA,aAAS,kCAAkC;AACzC,qCAA+B;AAC/B,qDACI,gCAAgC,aAChC,iCACA,SAAS,2BAA2B,YACrC,mCAAmC;AACtC,MAAC,OAAO,iCAAiC,cACvC,OAAO,4CAA4C,cACnD,SAAS,sBACT;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;IAEN;AACA,aAAS,eAAeA,OAAM,OAAO,4BAA4B;AAC/D,UAAI,uBAAuB;AAC3B,0BAAoB;AACpB,UAAI,iBAAiB,eAAc,GACjC,sBAAsB,oBAAmB;AAC3C,UAAI,uBAAuBA,SAAQ,kCAAkC;AACnE,QAAC,4BAA4B,MAAO,kBAAkBA,OAAM,KAAK;AACnE,cAAQ;AACR,UAAI,aAAa;AACjB,QAAG;AACD,YAAI;AACF,cAAI,MAAM,iCAAiC,SAAS,gBAAgB;AAClE,gBAAI,aAAa,gBACf,cAAc;AAChB,oBAAQ,+BAA6B;AAAA,cACnC,KAAK;AACH,yCAAwB;AACxB,6BAAa;AACb,sBAAM;AAAA,cACR,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,yBAAS,2BAA2B,YAAY,QAAQ;AACxD,oBAAI,SAAS;AACb,gDAAgC;AAChC,4CAA4B;AAC5B,uCAAuBA,OAAM,YAAY,aAAa,MAAM;AAC5D,oBACE,8BACA,kCACA;AACA,+BAAa;AACb,wBAAM;AAAA,gBACpB;AACY;AAAA,cACF;AACE,gBAAC,SAAS,+BACP,gCAAgC,GAChC,4BAA4B,MAC7B,uBAAuBA,OAAM,YAAY,aAAa,MAAM;AAAA,YAC1E;AAAA,UACA;AACM,uBAAY;AACZ,uBAAa;AACb;AAAA,QACN,SAAa,iBAAiB;AACxB,sBAAYA,OAAM,eAAe;AAAA,QACvC;AAAA,aACS;AACP,eAASA,MAAK;AACd,8BAAwB,4BAA4B;AACpD,yBAAmB;AACnB,2BAAqB,IAAI;AACzB,2BAAqB,IAAI;AACzB,eAAS,mBACL,qBAAqB,MACtB,gCAAgC,GACjC;AACF,aAAO;AAAA,IACT;AACA,aAAS,eAAe;AACtB,aAAO,SAAS,iBAAkB,mBAAkB,cAAc;AAAA,IACpE;AACA,aAAS,qBAAqBA,OAAM,OAAO;AACzC,UAAI,uBAAuB;AAC3B,0BAAoB;AACpB,UAAI,iBAAiB,eAAc,GACjC,sBAAsB,oBAAmB;AAC3C,6BAAuBA,SAAQ,kCAAkC,SAC3D,4BAA4B,MAC7B,qCAAqC,IAAG,IAAK,KAC9C,kBAAkBA,OAAM,KAAK,KAC5B,mCAAmC;AAAA,QAClCA;AAAA,QACA;AAAA,MACR;AACE,QAAG;AACD,YAAI;AACF,cAAI,MAAM,iCAAiC,SAAS,gBAAgB;AAClE,oBAAQ;AACR,gBAAI,cAAc;AAClB,cAAG,SAAQ,+BAA6B;AAAA,cACtC,KAAK;AACH,gDAAgC;AAChC,4CAA4B;AAC5B,uCAAuBA,OAAM,OAAO,aAAa,CAAC;AAClD;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AACH,oBAAI,mBAAmB,WAAW,GAAG;AACnC,kDAAgC;AAChC,8CAA4B;AAC5B,4CAA0B,KAAK;AAC/B;AAAA,gBACd;AACY,wBAAQ,WAAY;AAClB,kBAAC,MAAM,iCACL,MAAM,iCACN,uBAAuBA,UACtB,gCAAgC;AACnC,wCAAsBA,KAAI;AAAA,gBACxC;AACY,4BAAY,KAAK,OAAO,KAAK;AAC7B,sBAAM;AAAA,cACR,KAAK;AACH,gDAAgC;AAChC,sBAAM;AAAA,cACR,KAAK;AACH,gDAAgC;AAChC,sBAAM;AAAA,cACR,KAAK;AACH,mCAAmB,WAAW,KACxB,gCAAgC,GACjC,4BAA4B,MAC7B,0BAA0B,KAAK,MAC7B,gCAAgC,GACjC,4BAA4B,MAC7B,uBAAuBA,OAAM,OAAO,aAAa,CAAC;AACtD;AAAA,cACF,KAAK;AACH,oBAAI,WAAW;AACf,wBAAQ,eAAe,KAAG;AAAA,kBACxB,KAAK;AACH,+BAAW,eAAe;AAAA,kBAC5B,KAAK;AAAA,kBACL,KAAK;AACH,wBAAI,YAAY;AAChB,wBACE,WACI,gBAAgB,QAAQ,IACxB,UAAU,UAAU,UACxB;AACA,sDAAgC;AAChC,kDAA4B;AAC5B,0BAAI,UAAU,UAAU;AACxB,0BAAI,SAAS,QAAS,kBAAiB;AAAA,2BAClC;AACH,4BAAI,cAAc,UAAU;AAC5B,iCAAS,eACH,iBAAiB,aACnB,mBAAmB,WAAW,KAC7B,iBAAiB;AAAA,sBAC1C;AACkB,4BAAM;AAAA,oBACxB;AAAA,gBACA;AACY,gDAAgC;AAChC,4CAA4B;AAC5B,uCAAuBA,OAAM,OAAO,aAAa,CAAC;AAClD;AAAA,cACF,KAAK;AACH,gDAAgC;AAChC,4CAA4B;AAC5B,uCAAuBA,OAAM,OAAO,aAAa,CAAC;AAClD;AAAA,cACF,KAAK;AACH,yCAAwB;AACxB,+CAA+B;AAC/B,sBAAM;AAAA,cACR;AACE,sBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,YACnD;AAAA,UACA;AACM,wCAA6B;AAC7B;AAAA,QACN,SAAa,iBAAiB;AACxB,sBAAYA,OAAM,eAAe;AAAA,QACvC;AAAA,aACS;AACP,8BAAwB,4BAA4B;AACpD,2BAAqB,IAAI;AACzB,2BAAqB,IAAI;AACzB,yBAAmB;AACnB,UAAI,SAAS,eAAgB,QAAO;AACpC,2BAAqB;AACrB,sCAAgC;AAChC,sCAA+B;AAC/B,aAAO;AAAA,IACT;AACA,aAAS,gCAAgC;AACvC,aAAO,SAAS,kBAAkB,CAAC,YAAW;AAC5C,0BAAkB,cAAc;AAAA,IACpC;AACA,aAAS,kBAAkB,YAAY;AACrC,UAAI,OAAO,UAAU,WAAW,WAAW,YAAY,oBAAoB;AAC3E,iBAAW,gBAAgB,WAAW;AACtC,eAAS,OAAO,mBAAmB,UAAU,IAAK,iBAAiB;AAAA,IACrE;AACA,aAAS,0BAA0B,YAAY;AAC7C,UAAI,OAAO;AACX,UAAI,UAAU,KAAK;AACnB,cAAQ,KAAK,KAAG;AAAA,QACd,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA,KAAK;AAAA,YACL,KAAK;AAAA,YACL;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH,iBAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA,KAAK;AAAA,YACL,KAAK,KAAK;AAAA,YACV,KAAK;AAAA,YACL;AAAA;AAEF;AAAA,QACF,KAAK;AACH,6BAAmB,IAAI;AAAA,QACzB;AACE,gCAAsB,SAAS,IAAI,GAChC,OAAO,iBACN,oBAAoB,MAAM,oBAAoB,GAC/C,OAAO,UAAU,SAAS,MAAM,oBAAoB;AAAA,MAC7D;AACE,iBAAW,gBAAgB,WAAW;AACtC,eAAS,OAAO,mBAAmB,UAAU,IAAK,iBAAiB;AAAA,IACrE;AACA,aAAS,uBACPA,OACA,YACA,aACA,iBACA;AACA,8BAAwB,4BAA4B;AACpD,yBAAmB,UAAU;AAC7B,wBAAkB;AAClB,+BAAyB;AACzB,UAAI,cAAc,WAAW;AAC7B,UAAI;AACF,YACE;AAAA,UACEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACR,GACM;AACA,yCAA+B;AAC/B;AAAA,YACEA;AAAA,YACA,2BAA2B,aAAaA,MAAK,OAAO;AAAA;AAEtD,2BAAiB;AACjB;AAAA,QACN;AAAA,MACA,SAAW,OAAO;AACd,YAAI,SAAS,YAAa,OAAQ,iBAAiB,aAAc;AACjE,uCAA+B;AAC/B;AAAA,UACEA;AAAA,UACA,2BAA2B,aAAaA,MAAK,OAAO;AAAA;AAEtD,yBAAiB;AACjB;AAAA,MACJ;AACE,UAAI,WAAW,QAAQ,OAAO;AAC5B,YAAI,eAAe,MAAM,gBAAiB,CAAAA,QAAO;AAAA,iBAE/C,oCACA,OAAO,gCAAgC;AAEvC,UAAAA,QAAO;AAAA,iBAEL,6CAA6CA,QAAO,MACtD,MAAM,mBACJ,MAAM,mBACN,MAAM,mBACN,MAAM;AAER,UAAC,kBAAkB,2BAA2B,SAC5C,SAAS,mBACP,OAAO,gBAAgB,QACtB,gBAAgB,SAAS;AAChC,yBAAiB,YAAYA,KAAI;AAAA,MACrC,MAAS,oBAAmB,UAAU;AAAA,IACtC;AACA,aAAS,mBAAmB,YAAY;AACtC,UAAI,gBAAgB;AACpB,SAAG;AACD,YAAI,OAAO,cAAc,QAAQ,QAAQ;AACvC;AAAA,YACE;AAAA,YACA;AAAA;AAEF;AAAA,QACN;AACI,qBAAa,cAAc;AAC3B,YAAI,OAAO;AAAA,UACT,cAAc;AAAA,UACd;AAAA,UACA;AAAA;AAEF,YAAI,SAAS,MAAM;AACjB,2BAAiB;AACjB;AAAA,QACN;AACI,wBAAgB,cAAc;AAC9B,YAAI,SAAS,eAAe;AAC1B,2BAAiB;AACjB;AAAA,QACN;AACI,yBAAiB,gBAAgB;AAAA,MACrC,SAAW,SAAS;AAClB,YAAM,iCAAiC,+BAA+B;AAAA,IACxE;AACA,aAAS,iBAAiB,YAAY,cAAc;AAClD,SAAG;AACD,YAAI,OAAO,WAAW,WAAW,WAAW,UAAU;AACtD,YAAI,SAAS,MAAM;AACjB,eAAK,SAAS;AACd,2BAAiB;AACjB;AAAA,QACN;AACI,eAAO,WAAW;AAClB,iBAAS,SACL,KAAK,SAAS,OAAS,KAAK,eAAe,GAAK,KAAK,YAAY;AACrE,YACE,CAAC,iBACC,aAAa,WAAW,SAAU,SAAS,aAC7C;AACA,2BAAiB;AACjB;AAAA,QACN;AACI,yBAAiB,aAAa;AAAA,MAClC,SAAW,SAAS;AAClB,qCAA+B;AAC/B,uBAAiB;AAAA,IACnB;AACA,aAAS,WACPA,OACA,cACA,OACA,mBACA,aACA,6BACA,aACA,cACA,qBACA;AACA,MAAAA,MAAK,sBAAsB;AAC3B;AAAG,4BAAmB;AAAA,aACf,MAAM;AACb,UAAI,OAAO,mBAAmB,GAAI,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACzE,UAAI,SAAS,cAAc;AACzB,YAAI,iBAAiBA,MAAK,QAAS,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAC1E,sCAA8B,aAAa,QAAQ,aAAa;AAChE,uCAA+B;AAC/B;AAAA,UACEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAEF,QAAAA,UAAS,uBACL,iBAAiB,qBAAqB,MACvC,gCAAgC;AACnC,8BAAsB;AACtB,6BAAqBA;AACrB,8BAAsB;AACtB,uCAA+B;AAC/B,oCAA4B;AAC5B,mCAA2B;AAC3B,eAAO,aAAa,eAAe,UACnC,OAAO,aAAa,QAAQ,UACtBA,MAAK,eAAe,MACrBA,MAAK,mBAAmB,GACzB,mBAAmB,kBAAkB,WAAY;AAC/C,8BAAmB;AACnB,iBAAO;AAAA,QACjB,CAAS,MACCA,MAAK,eAAe,MAAQA,MAAK,mBAAmB;AAC1D,4BAAoB,OAAO,aAAa,QAAQ;AAChD,YAAI,OAAO,aAAa,eAAe,UAAU,mBAAmB;AAClE,8BAAoB,qBAAqB;AACzC,+BAAqB,IAAI;AACzB,wBAAc,wBAAwB;AACtC,kCAAwB,IAAI;AAC5B,wBAAc;AACd,8BAAoB;AACpB,cAAI;AACF,wCAA4BA,OAAM,cAAc,KAAK;AAAA,UAC7D,UAAO;AACC,YAAC,mBAAmB,aACjB,wBAAwB,IAAI,aAC5B,qBAAqB,IAAI;AAAA,UACpC;AAAA,QACA;AACI,+BAAuB;AACvB,6BAAoB;AACpB,2BAAkB;AAClB,yBAAgB;AAAA,MACpB;AAAA,IACA;AACA,aAAS,uBAAuB;AAC9B,UAAI,MAAM,sBAAsB;AAC9B,+BAAuB;AACvB,YAAIA,QAAO,oBACT,eAAe,qBACf,wBAAwB,OAAO,aAAa,QAAQ;AACtD,YAAI,OAAO,aAAa,eAAe,UAAU,uBAAuB;AACtE,kCAAwB,qBAAqB;AAC7C,+BAAqB,IAAI;AACzB,cAAI,mBAAmB,wBAAwB;AAC/C,kCAAwB,IAAI;AAC5B,cAAI,uBAAuB;AAC3B,8BAAoB;AACpB,cAAI;AACF,yCAA6B,cAAcA,KAAI;AAC/C,gBAAI,4BAA4B,sBAC9B,iBAAiB,qBAAqBA,MAAK,aAAa,GACxD,mBAAmB,0BAA0B,aAC7C,sBAAsB,0BAA0B;AAClD,gBACE,mBAAmB,oBACnB,oBACA,iBAAiB,iBACjB;AAAA,cACE,iBAAiB,cAAc;AAAA,cAC/B;AAAA,YACZ,GACU;AACA,kBACE,SAAS,uBACT,yBAAyB,gBAAgB,GACzC;AACA,oBAAI,QAAQ,oBAAoB,OAC9B,MAAM,oBAAoB;AAC5B,2BAAW,QAAQ,MAAM;AACzB,oBAAI,oBAAoB;AACtB,kBAAC,iBAAiB,iBAAiB,OAChC,iBAAiB,eAAe,KAAK;AAAA,oBACpC;AAAA,oBACA,iBAAiB,MAAM;AAAA,kBACzC;AAAA,qBACiB;AACH,sBAAI,MAAM,iBAAiB,iBAAiB,UAC1C,MAAO,OAAO,IAAI,eAAgB;AACpC,sBAAI,IAAI,cAAc;AACpB,wBAAI,YAAY,IAAI,aAAY,GAC9B,SAAS,iBAAiB,YAAY,QACtC,iBAAiB,KAAK,IAAI,oBAAoB,OAAO,MAAM,GAC3D,eACE,WAAW,oBAAoB,MAC3B,iBACA,KAAK,IAAI,oBAAoB,KAAK,MAAM;AAChD,qBAAC,UAAU,UACT,iBAAiB,iBACf,iBAAiB,cAClB,eAAe,gBACf,iBAAiB;AACpB,wBAAI,cAAc;AAAA,sBACd;AAAA,sBACA;AAAA,uBAEF,YAAY;AAAA,sBACV;AAAA,sBACA;AAAA;AAEJ,wBACE,eACA,cACC,MAAM,UAAU,cACf,UAAU,eAAe,YAAY,QACrC,UAAU,iBAAiB,YAAY,UACvC,UAAU,cAAc,UAAU,QAClC,UAAU,gBAAgB,UAAU,SACtC;AACA,0BAAI,QAAQ,IAAI,YAAW;AAC3B,4BAAM,SAAS,YAAY,MAAM,YAAY,MAAM;AACnD,gCAAU,gBAAe;AACzB,uCAAiB,gBACZ,UAAU,SAAS,KAAK,GACzB,UAAU,OAAO,UAAU,MAAM,UAAU,MAAM,MAChD,MAAM,OAAO,UAAU,MAAM,UAAU,MAAM,GAC9C,UAAU,SAAS,KAAK;AAAA,oBAC9C;AAAA,kBACA;AAAA,gBACA;AAAA,cACA;AACU,oBAAM,CAAA;AACN,mBACE,YAAY,kBACX,YAAY,UAAU;AAGvB,sBAAM,UAAU,YACd,IAAI,KAAK;AAAA,kBACP,SAAS;AAAA,kBACT,MAAM,UAAU;AAAA,kBAChB,KAAK,UAAU;AAAA,gBAC/B,CAAe;AACL,6BAAe,OAAO,iBAAiB,SACrC,iBAAiB,MAAK;AACxB,mBACE,mBAAmB,GACnB,mBAAmB,IAAI,QACvB,oBACA;AACA,oBAAI,OAAO,IAAI,gBAAgB;AAC/B,qBAAK,QAAQ,aAAa,KAAK;AAC/B,qBAAK,QAAQ,YAAY,KAAK;AAAA,cAC1C;AAAA,YACA;AACQ,uBAAW,CAAC,CAAC;AACb,mCAAuB,gBAAgB;AAAA,UAC/C,UAAO;AACC,YAAC,mBAAmB,sBACjB,wBAAwB,IAAI,kBAC5B,qBAAqB,IAAI;AAAA,UACpC;AAAA,QACA;AACI,QAAAA,MAAK,UAAU;AACf,+BAAuB;AAAA,MAC3B;AAAA,IACA;AACA,aAAS,qBAAqB;AAC5B,UAAI,MAAM,sBAAsB;AAC9B,+BAAuB;AACvB,YAAIA,QAAO,oBACT,eAAe,qBACf,sBAAsB,OAAO,aAAa,QAAQ;AACpD,YAAI,OAAO,aAAa,eAAe,SAAS,qBAAqB;AACnE,gCAAsB,qBAAqB;AAC3C,+BAAqB,IAAI;AACzB,cAAI,mBAAmB,wBAAwB;AAC/C,kCAAwB,IAAI;AAC5B,cAAI,uBAAuB;AAC3B,8BAAoB;AACpB,cAAI;AACF,sCAA0BA,OAAM,aAAa,WAAW,YAAY;AAAA,UAC5E,UAAO;AACC,YAAC,mBAAmB,sBACjB,wBAAwB,IAAI,kBAC5B,qBAAqB,IAAI;AAAA,UACpC;AAAA,QACA;AACI,+BAAuB;AAAA,MAC3B;AAAA,IACA;AACA,aAAS,mBAAmB;AAC1B,UAAI,MAAM,wBAAwB,MAAM,sBAAsB;AAC5D,+BAAuB;AACvB,qBAAY;AACZ,YAAIA,QAAO,oBACT,eAAe,qBACf,QAAQ,qBACR,oBAAoB;AACtB,eAAO,aAAa,eAAe,UACnC,OAAO,aAAa,QAAQ,SACvB,uBAAuB,KACtB,uBAAuB,GACxB,sBAAsB,qBAAqB,MAC5C,uBAAuBA,OAAMA,MAAK,YAAY;AAClD,YAAI,iBAAiBA,MAAK;AAC1B,cAAM,mBAAmB,yCAAyC;AAClE,6BAAqB,KAAK;AAC1B,uBAAe,aAAa;AAC5B,YAAI,gBAAgB,eAAe,OAAO,aAAa;AACrD,cAAI;AACF,yBAAa;AAAA,cACX;AAAA,cACA;AAAA,cACA;AAAA,cACA,SAAS,aAAa,QAAQ,QAAQ;AAAA;UAEhD,SAAe,KAAK;AAAA,UAAA;AAChB,YAAI,SAAS,mBAAmB;AAC9B,yBAAe,qBAAqB;AACpC,2BAAiB,wBAAwB;AACzC,kCAAwB,IAAI;AAC5B,+BAAqB,IAAI;AACzB,cAAI;AACF,qBACM,qBAAqBA,MAAK,oBAAoB,IAAI,GACtD,IAAI,kBAAkB,QACtB,KACA;AACA,kBAAI,mBAAmB,kBAAkB,CAAC;AAC1C,iCAAmB,iBAAiB,OAAO;AAAA,gBACzC,gBAAgB,iBAAiB;AAAA,cAC7C,CAAW;AAAA,YACX;AAAA,UACA,UAAO;AACC,YAAC,qBAAqB,IAAI,cACvB,wBAAwB,IAAI;AAAA,UACvC;AAAA,QACA;AACI,eAAO,sBAAsB,MAAM,oBAAmB;AACtD,8BAAsBA,KAAI;AAC1B,yBAAiBA,MAAK;AACtB,eAAO,QAAQ,WAAW,OAAO,iBAAiB,MAC9CA,UAAS,wBACP,uBACE,oBAAoB,GAAK,wBAAwBA,SACpD,oBAAoB;AACzB,sCAA8B,CAAK;AAAA,MACvC;AAAA,IACA;AACA,aAAS,uBAAuBA,OAAM,gBAAgB;AACpD,aAAOA,MAAK,oBAAoB,oBAC5B,iBAAiBA,MAAK,aACxB,QAAQ,mBACJA,MAAK,cAAc,MAAO,aAAa,cAAc;AAAA,IAC7D;AACA,aAAS,sBAAsB;AAC7B,2BAAoB;AACpB,yBAAkB;AAClB,uBAAgB;AAChB,aAAO,oBAAmB;AAAA,IAC5B;AACA,aAAS,sBAAsB;AAC7B,UAAI,MAAM,qBAAsB,QAAO;AACvC,UAAIA,QAAO,oBACT,iBAAiB;AACnB,qCAA+B;AAC/B,UAAI,iBAAiB,qBAAqB,mBAAmB,GAC3D,iBAAiB,qBAAqB,GACtC,mBAAmB,wBAAwB;AAC7C,UAAI;AACF,gCAAwB,IAAI,KAAK,iBAAiB,KAAK;AACvD,6BAAqB,IAAI;AACzB,yBAAiB;AACjB,oCAA4B;AAC5B,YAAI,gBAAgB,oBAClB,QAAQ;AACV,+BAAuB;AACvB,8BAAsB,qBAAqB;AAC3C,8BAAsB;AACtB,YAAI,OAAO,mBAAmB,GAAI,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACzE,YAAI,uBAAuB;AAC3B,4BAAoB;AACpB,oCAA4B,cAAc,OAAO;AACjD;AAAA,UACE;AAAA,UACA,cAAc;AAAA,UACd;AAAA,UACA;AAAA;AAEF,2BAAmB;AACnB,sCAA8B,GAAG,KAAE;AACnC,YACE,gBACA,eAAe,OAAO,aAAa;AAEnC,cAAI;AACF,yBAAa,sBAAsB,YAAY,aAAa;AAAA,UACpE,SAAe,KAAK;AAAA,UAAA;AAChB,eAAO;AAAA,MACX,UAAG;AACC,QAAC,wBAAwB,IAAI,kBAC1B,qBAAqB,IAAI,gBAC1B,uBAAuBA,OAAM,cAAc;AAAA,MACjD;AAAA,IACA;AACA,aAAS,8BAA8B,WAAW,aAAa,OAAO;AACpE,oBAAc,2BAA2B,OAAO,WAAW;AAC3D,oBAAc,sBAAsB,UAAU,WAAW,aAAa,CAAC;AACvE,kBAAY,cAAc,WAAW,aAAa,CAAC;AACnD,eAAS,cACN,kBAAkB,WAAW,CAAC,GAAG,sBAAsB,SAAS;AAAA,IACrE;AACA,aAAS,wBAAwB,aAAa,wBAAwB,OAAO;AAC3E,UAAI,MAAM,YAAY;AACpB,sCAA8B,aAAa,aAAa,KAAK;AAAA;AAE7D,eAAO,SAAS,0BAA0B;AACxC,cAAI,MAAM,uBAAuB,KAAK;AACpC;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA;AAEF;AAAA,UACR,WAAiB,MAAM,uBAAuB,KAAK;AAC3C,gBAAI,WAAW,uBAAuB;AACtC,gBACE,eACE,OAAO,uBAAuB,KAAK,4BACpC,eAAe,OAAO,SAAS,sBAC7B,SAAS,0CACR,CAAC,uCAAuC,IAAI,QAAQ,IACxD;AACA,4BAAc,2BAA2B,OAAO,WAAW;AAC3D,sBAAQ,uBAAuB,CAAC;AAChC,yBAAW,cAAc,wBAAwB,OAAO,CAAC;AACzD,uBAAS,aACN;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,iBAEF,kBAAkB,UAAU,CAAC,GAC7B,sBAAsB,QAAQ;AAChC;AAAA,YACV;AAAA,UACA;AACM,mCAAyB,uBAAuB;AAAA,QACtD;AAAA,IACA;AACA,aAAS,mBAAmBA,OAAM,UAAU,OAAO;AACjD,UAAI,YAAYA,MAAK;AACrB,UAAI,SAAS,WAAW;AACtB,oBAAYA,MAAK,YAAY,IAAI,gBAAe;AAChD,YAAI,YAAY,oBAAI,IAAG;AACvB,kBAAU,IAAI,UAAU,SAAS;AAAA,MACrC;AACI,QAAC,YAAY,UAAU,IAAI,QAAQ,GACjC,WAAW,cACP,YAAY,oBAAI,IAAG,GAAK,UAAU,IAAI,UAAU,SAAS;AACjE,gBAAU,IAAI,KAAK,MACf,0CAA0C,MAC5C,UAAU,IAAI,KAAK,GAClBA,QAAO,kBAAkB,KAAK,MAAMA,OAAM,UAAU,KAAK,GAC1D,SAAS,KAAKA,OAAMA,KAAI;AAAA,IAC5B;AACA,aAAS,kBAAkBA,OAAM,UAAU,aAAa;AACtD,UAAI,YAAYA,MAAK;AACrB,eAAS,aAAa,UAAU,OAAO,QAAQ;AAC/C,MAAAA,MAAK,eAAeA,MAAK,iBAAiB;AAC1C,MAAAA,MAAK,aAAa,CAAC;AACnB,6BAAuBA,UACpB,gCAAgC,iBAAiB,gBACjD,MAAM,gCACN,MAAM,iCACJ,gCAAgC,cAC/B,iCACF,MAAM,IAAG,IAAK,+BACZ,OAAO,mBAAmB,MAAM,kBAAkBA,OAAM,CAAC,IACxD,iCAAiC,aACtC,sCAAsC,kCACnC,oCAAoC;AACzC,4BAAsBA,KAAI;AAAA,IAC5B;AACA,aAAS,sBAAsB,eAAe,WAAW;AACvD,YAAM,cAAc,YAAY;AAChC,sBAAgB,+BAA+B,eAAe,SAAS;AACvE,eAAS,kBACN,kBAAkB,eAAe,SAAS,GAC3C,sBAAsB,aAAa;AAAA,IACvC;AACA,aAAS,gCAAgC,eAAe;AACtD,UAAI,gBAAgB,cAAc,eAChC,YAAY;AACd,eAAS,kBAAkB,YAAY,cAAc;AACrD,4BAAsB,eAAe,SAAS;AAAA,IAChD;AACA,aAAS,qBAAqB,eAAe,UAAU;AACrD,UAAI,YAAY;AAChB,cAAQ,cAAc,KAAG;AAAA,QACvB,KAAK;AAAA,QACL,KAAK;AACH,cAAI,aAAa,cAAc;AAC/B,cAAI,gBAAgB,cAAc;AAClC,mBAAS,kBAAkB,YAAY,cAAc;AACrD;AAAA,QACF,KAAK;AACH,uBAAa,cAAc;AAC3B;AAAA,QACF,KAAK;AACH,uBAAa,cAAc,UAAU;AACrC;AAAA,QACF;AACE,gBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,MAC7C;AACE,eAAS,cAAc,WAAW,OAAO,QAAQ;AACjD,4BAAsB,eAAe,SAAS;AAAA,IAChD;AACA,aAAS,mBAAmB,eAAe,UAAU;AACnD,aAAO,mBAAmB,eAAe,QAAQ;AAAA,IACnD;AACA,QAAI,qBAAqB,MACvB,oBAAoB,MACpB,uBAAuB,OACvB,2BAA2B,OAC3B,iBAAiB,OACjB,6BAA6B;AAC/B,aAAS,sBAAsBA,OAAM;AACnC,MAAAA,UAAS,qBACP,SAASA,MAAK,SACb,SAAS,oBACL,qBAAqB,oBAAoBA,QACzC,oBAAoB,kBAAkB,OAAOA;AACpD,iCAA2B;AAC3B,+BACI,uBAAuB,MAAK;IAClC;AACA,aAAS,8BAA8B,qBAAqB,YAAY;AACtE,UAAI,CAAC,kBAAkB,0BAA0B;AAC/C,yBAAiB;AACjB,WAAG;AACD,cAAI,qBAAqB;AACzB,mBAAS,WAAW,oBAAoB,SAAS,YAAY;AAEzD,gBAAI,MAAM,qBAAqB;AAC7B,kBAAI,eAAe,SAAS;AAC5B,kBAAI,MAAM,aAAc,KAAI,2BAA2B;AAAA,mBAClD;AACH,oBAAI,iBAAiB,SAAS,gBAC5B,cAAc,SAAS;AACzB,4CACG,KAAM,KAAK,MAAM,KAAK,mBAAmB,IAAI,KAAM;AACtD,4CACE,eAAe,EAAE,iBAAiB,CAAC;AACrC,2CACE,2BAA2B,YACtB,2BAA2B,YAAa,IACzC,2BACE,2BAA2B,IAC3B;AAAA,cACtB;AACY,oBAAM,6BACF,qBAAqB,MACvB,sBAAsB,UAAU,wBAAwB;AAAA,YACtE;AACY,cAAC,2BAA2B,+BACzB,2BAA2B;AAAA,gBAC1B;AAAA,gBACA,aAAa,qBAAqB,2BAA2B;AAAA,gBAC7D,SAAS,SAAS,uBAChB,OAAO,SAAS;AAAA,iBAEpB,OAAO,2BAA2B,MAChC,0BAA0B,UAAU,wBAAwB,MAC1D,qBAAqB,MACvB,sBAAsB,UAAU,wBAAwB;AAChE,uBAAW,SAAS;AAAA,UAC5B;AAAA,QACA,SAAa;AACT,yBAAiB;AAAA,MACrB;AAAA,IACA;AACA,aAAS,qCAAqC;AAC5C,qCAA8B;AAAA,IAChC;AACA,aAAS,iCAAiC;AACxC,iCAA2B,uBAAuB;AAClD,UAAI,sBAAsB;AAC1B,YAAM,8BACJ,6BAA4B,MAC3B,sBAAsB;AACzB,eACM,cAAc,IAAG,GAAI,OAAO,MAAMA,QAAO,oBAC7C,SAASA,SAET;AACA,YAAI,OAAOA,MAAK,MACd,YAAY,mCAAmCA,OAAM,WAAW;AAClE,YAAI,MAAM;AACR,UAACA,MAAK,OAAO,MACX,SAAS,OAAQ,qBAAqB,OAAS,KAAK,OAAO,MAC3D,SAAS,SAAS,oBAAoB;AAAA,iBAEtC,OAAOA,OAAO,MAAM,uBAAuB,OAAO,YAAY;AAEhE,qCAA2B;AAC7B,QAAAA,QAAO;AAAA,MACX;AACE,MAAC,MAAM,wBAAwB,MAAM,wBACnC,8BAA8B,mBAAuB;AACvD,YAAM,+BAA+B,6BAA6B;AAAA,IACpE;AACA,aAAS,mCAAmCA,OAAM,aAAa;AAC7D,eACM,iBAAiBA,MAAK,gBACxB,cAAcA,MAAK,aACnB,kBAAkBA,MAAK,iBACvB,QAAQA,MAAK,eAAe,WAC9B,IAAI,SAEJ;AACA,YAAI,UAAU,KAAK,MAAM,KAAK,GAC5B,OAAO,KAAK,SACZ,iBAAiB,gBAAgB,OAAO;AAC1C,YAAI,OAAO,gBAAgB;AACzB,cAAI,OAAO,OAAO,mBAAmB,OAAO,OAAO;AACjD,4BAAgB,OAAO,IAAI,sBAAsB,MAAM,WAAW;AAAA,QAC1E,MAAW,mBAAkB,gBAAgBA,MAAK,gBAAgB;AAC9D,iBAAS,CAAC;AAAA,MACd;AACE,oBAAc;AACd,uBAAiB;AACjB,uBAAiB;AAAA,QACfA;AAAA,QACAA,UAAS,cAAc,iBAAiB;AAAA,QACxC,SAASA,MAAK,uBAAuB,OAAOA,MAAK;AAAA;AAEnD,oBAAcA,MAAK;AACnB,UACE,MAAM,kBACLA,UAAS,gBACP,MAAM,iCACL,MAAM,kCACV,SAASA,MAAK;AAEd,eACE,SAAS,eACP,SAAS,eACT,iBAAiB,WAAW,GAC7BA,MAAK,eAAe,MACpBA,MAAK,mBAAmB;AAE7B,UACE,OAAO,iBAAiB,MACxB,0BAA0BA,OAAM,cAAc,GAC9C;AACA,sBAAc,iBAAiB,CAAC;AAChC,YAAI,gBAAgBA,MAAK,iBAAkB,QAAO;AAClD,iBAAS,eAAe,iBAAiB,WAAW;AACpD,gBAAQ,qBAAqB,cAAc,GAAC;AAAA,UAC1C,KAAK;AAAA,UACL,KAAK;AACH,6BAAiB;AACjB;AAAA,UACF,KAAK;AACH,6BAAiB;AACjB;AAAA,UACF,KAAK;AACH,6BAAiB;AACjB;AAAA,UACF;AACE,6BAAiB;AAAA,QACzB;AACI,sBAAc,kCAAkC,KAAK,MAAMA,KAAI;AAC/D,yBAAiB,mBAAmB,gBAAgB,WAAW;AAC/D,QAAAA,MAAK,mBAAmB;AACxB,QAAAA,MAAK,eAAe;AACpB,eAAO;AAAA,MACX;AACE,eAAS,eAAe,SAAS,eAAe,iBAAiB,WAAW;AAC5E,MAAAA,MAAK,mBAAmB;AACxB,MAAAA,MAAK,eAAe;AACpB,aAAO;AAAA,IACT;AACA,aAAS,kCAAkCA,OAAM,YAAY;AAC3D,UAAI,MAAM,wBAAwB,MAAM;AACtC,eAAQA,MAAK,eAAe,MAAQA,MAAK,mBAAmB,GAAI;AAClE,UAAI,uBAAuBA,MAAK;AAChC,UAAI,oBAAmB,KAAMA,MAAK,iBAAiB;AACjD,eAAO;AACT,UAAI,yCAAyC;AAC7C,+CAAyC;AAAA,QACvCA;AAAA,QACAA,UAAS,qBAAqB,yCAAyC;AAAA,QACvE,SAASA,MAAK,uBAAuB,OAAOA,MAAK;AAAA;AAEnD,UAAI,MAAM,uCAAwC,QAAO;AACzD,wBAAkBA,OAAM,wCAAwC,UAAU;AAC1E,yCAAmCA,OAAM,KAAK;AAC9C,aAAO,QAAQA,MAAK,gBAAgBA,MAAK,iBAAiB,uBACtD,kCAAkC,KAAK,MAAMA,KAAI,IACjD;AAAA,IACN;AACA,aAAS,sBAAsBA,OAAM,OAAO;AAC1C,UAAI,oBAAmB,EAAI,QAAO;AAClC,wBAAkBA,OAAM,OAAO,IAAE;AAAA,IACnC;AACA,aAAS,oCAAoC;AAC3C,wBAAkB,WAAY;AAC5B,eAAO,mBAAmB,KACtB;AAAA,UACE;AAAA,UACA;AAAA,QACV,IACQ,+BAA8B;AAAA,MACtC,CAAG;AAAA,IACH;AACA,aAAS,wBAAwB;AAC/B,UAAI,MAAM,4BAA4B;AACpC,YAAI,kBAAkB;AACtB,cAAM,oBACF,kBAAkB,0BACnB,6BAA6B,GAC9B,OAAO,2BAA2B,YAC/B,2BAA2B;AAChC,qCAA6B;AAAA,MACjC;AACE,aAAO;AAAA,IACT;AACA,aAAS,qBAAqB,YAAY;AACxC,aAAO,QAAQ,cACb,aAAa,OAAO,cACpB,cAAc,OAAO,aACnB,OACA,eAAe,OAAO,aACpB,aACA,YAAY,KAAK,UAAU;AAAA,IACnC;AACA,aAAS,4BAA4B,MAAM,WAAW;AACpD,UAAI,OAAO,UAAU,cAAc,cAAc,OAAO;AACxD,WAAK,OAAO,UAAU;AACtB,WAAK,QAAQ,UAAU;AACvB,WAAK,MAAM,KAAK,aAAa,QAAQ,KAAK,EAAE;AAC5C,gBAAU,WAAW,aAAa,MAAM,SAAS;AACjD,aAAO,IAAI,SAAS,IAAI;AACxB,WAAK,WAAW,YAAY,IAAI;AAChC,aAAO;AAAA,IACT;AACA,aAAS,gBACP,eACA,cACA,iBACA,aACA,mBACA;AACA,UACE,aAAa,gBACb,mBACA,gBAAgB,cAAc,mBAC9B;AACA,YAAI,SAAS;AAAA,WACR,kBAAkB,gBAAgB,KAAK,MAAM;AAAA,WAEhD,YAAY,YAAY;AAC1B,sBACI,gBAAgB,eAAe,UAAU,gBAAgB,KAAK,QAC5D,qBAAqB,aAAa,UAAU,IAC5C,UAAU,aAAa,YAAY,GACvC,SAAS,iBAAkB,SAAS,cAAgB,YAAY;AAClE,YAAI,QAAQ,IAAI;AAAA,UACd;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAEF,sBAAc,KAAK;AAAA,UACjB;AAAA,UACA,WAAW;AAAA,YACT;AAAA,cACE,UAAU;AAAA,cACV,UAAU,WAAY;AACpB,oBAAI,YAAY,kBAAkB;AAChC,sBAAI,MAAM,4BAA4B;AACpC,wBAAI,WAAW,YACX,4BAA4B,mBAAmB,SAAS,IACxD,IAAI,SAAS,iBAAiB;AAClC;AAAA,sBACE;AAAA,sBACA;AAAA,wBACE,SAAS;AAAA,wBACT,MAAM;AAAA,wBACN,QAAQ,kBAAkB;AAAA,wBAC1B;AAAA;sBAEF;AAAA,sBACA;AAAA;kBAElB;AAAA,gBACA;AACc,iCAAe,OAAO,WACnB,MAAM,eAAc,GACpB,WAAW,YACR,4BAA4B,mBAAmB,SAAS,IACxD,IAAI,SAAS,iBAAiB,GAClC;AAAA,oBACE;AAAA,oBACA;AAAA,sBACE,SAAS;AAAA,sBACT,MAAM;AAAA,sBACN,QAAQ,kBAAkB;AAAA,sBAC1B;AAAA;oBAEF;AAAA,oBACA;AAAA,kBAClB;AAAA,cACA;AAAA,cACU,eAAe;AAAA,YACzB;AAAA,UACA;AAAA,QACA,CAAK;AAAA,MACL;AAAA,IACA;AACA,aACM,uBAAuB,GAC3B,uBAAuB,wBAAwB,QAC/C,wBACA;AACA,UAAI,+BACA,wBAAwB,oBAAoB,GAC9C,kCACE,6BAA6B,YAAW,GAC1C,sCACE,6BAA6B,CAAC,EAAE,YAAW,IAC3C,6BAA6B,MAAM,CAAC;AACxC;AAAA,QACE;AAAA,QACA,OAAO;AAAA;IAEX;AACA,wBAAoB,eAAe,gBAAgB;AACnD,wBAAoB,qBAAqB,sBAAsB;AAC/D,wBAAoB,iBAAiB,kBAAkB;AACvD,wBAAoB,YAAY,eAAe;AAC/C,wBAAoB,WAAW,SAAS;AACxC,wBAAoB,YAAY,QAAQ;AACxC,wBAAoB,gBAAgB,iBAAiB;AACrD,wBAAoB,kBAAkB,mBAAmB;AACzD,wBAAoB,mBAAmB,oBAAoB;AAC3D,wBAAoB,gBAAgB,iBAAiB;AACrD,wBAAoB,gBAAgB,CAAC,YAAY,WAAW,CAAC;AAC7D,wBAAoB,gBAAgB,CAAC,YAAY,WAAW,CAAC;AAC7D,wBAAoB,kBAAkB,CAAC,cAAc,aAAa,CAAC;AACnE,wBAAoB,kBAAkB,CAAC,cAAc,aAAa,CAAC;AACnE;AAAA,MACE;AAAA,MACA,oEAAoE,MAAM,GAAG;AAAA;AAE/E;AAAA,MACE;AAAA,MACA,uFAAuF;AAAA,QACrF;AAAA,MACJ;AAAA;AAEA,0BAAsB,iBAAiB;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD;AAAA,MACE;AAAA,MACA,2DAA2D,MAAM,GAAG;AAAA;AAEtE;AAAA,MACE;AAAA,MACA,6DAA6D,MAAM,GAAG;AAAA;AAExE;AAAA,MACE;AAAA,MACA,8DAA8D,MAAM,GAAG;AAAA;AAEzE,QAAI,kBACA,6NAA6N;AAAA,MAC3N;AAAA,OAEJ,qBAAqB,IAAI;AAAA,MACvB,iEACG,MAAM,GAAG,EACT,OAAO,eAAe;AAAA;AAE7B,aAAS,qBAAqB,eAAe,kBAAkB;AAC7D,yBAAmB,OAAO,mBAAmB;AAC7C,eAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,YAAI,mBAAmB,cAAc,CAAC,GACpC,QAAQ,iBAAiB;AAC3B,2BAAmB,iBAAiB;AACpC,WAAG;AACD,cAAI,mBAAmB;AACvB,cAAI;AACF,qBACM,aAAa,iBAAiB,SAAS,GAC3C,KAAK,YACL,cACA;AACA,kBAAI,uBAAuB,iBAAiB,UAAU,GACpD,WAAW,qBAAqB,UAChC,gBAAgB,qBAAqB;AACvC,qCAAuB,qBAAqB;AAC5C,kBAAI,aAAa,oBAAoB,MAAM,qBAAoB;AAC7D,sBAAM;AACR,iCAAmB;AACnB,oBAAM,gBAAgB;AACtB,kBAAI;AACF,iCAAiB,KAAK;AAAA,cAClC,SAAmB,OAAO;AACd,kCAAkB,KAAK;AAAA,cACnC;AACU,oBAAM,gBAAgB;AACtB,iCAAmB;AAAA,YAC7B;AAAA;AAEQ,iBACE,aAAa,GACb,aAAa,iBAAiB,QAC9B,cACA;AACA,qCAAuB,iBAAiB,UAAU;AAClD,yBAAW,qBAAqB;AAChC,8BAAgB,qBAAqB;AACrC,qCAAuB,qBAAqB;AAC5C,kBAAI,aAAa,oBAAoB,MAAM,qBAAoB;AAC7D,sBAAM;AACR,iCAAmB;AACnB,oBAAM,gBAAgB;AACtB,kBAAI;AACF,iCAAiB,KAAK;AAAA,cAClC,SAAmB,OAAO;AACd,kCAAkB,KAAK;AAAA,cACnC;AACU,oBAAM,gBAAgB;AACtB,iCAAmB;AAAA,YAC7B;AAAA,QACA;AAAA,MACA;AAAA,IACA;AACA,aAAS,0BAA0B,cAAc,eAAe;AAC9D,UAAI,2BAA2B,cAAc,wBAAwB;AACrE,iBAAW,6BACR,2BAA2B,cAAc,wBAAwB,IAChE,oBAAI,IAAG;AACX,UAAI,iBAAiB,eAAe;AACpC,+BAAyB,IAAI,cAAc,MACxC,wBAAwB,eAAe,cAAc,GAAG,KAAE,GAC3D,yBAAyB,IAAI,cAAc;AAAA,IAC/C;AACA,aAAS,oBAAoB,cAAc,wBAAwB,QAAQ;AACzE,UAAI,mBAAmB;AACvB,iCAA2B,oBAAoB;AAC/C;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;IAEJ;AACA,QAAI,kBAAkB,oBAAoB,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC;AAC5E,aAAS,2BAA2B,sBAAsB;AACxD,UAAI,CAAC,qBAAqB,eAAe,GAAG;AAC1C,6BAAqB,eAAe,IAAI;AACxC,wBAAgB,QAAQ,SAAU,cAAc;AAC9C,gCAAsB,iBACnB,mBAAmB,IAAI,YAAY,KAClC,oBAAoB,cAAc,OAAI,oBAAoB,GAC5D,oBAAoB,cAAc,MAAI,oBAAoB;AAAA,QAClE,CAAK;AACD,YAAI,gBACF,MAAM,qBAAqB,WACvB,uBACA,qBAAqB;AAC3B,iBAAS,iBACP,cAAc,eAAe,MAC3B,cAAc,eAAe,IAAI,MACnC,oBAAoB,mBAAmB,OAAI,aAAa;AAAA,MAC9D;AAAA,IACA;AACA,aAAS,wBACP,iBACA,cACA,kBACA,wBACA;AACA,cAAQ,iBAAiB,YAAY,GAAC;AAAA,QACpC,KAAK;AACH,cAAI,kBAAkB;AACtB;AAAA,QACF,KAAK;AACH,4BAAkB;AAClB;AAAA,QACF;AACE,4BAAkB;AAAA,MACxB;AACE,yBAAmB,gBAAgB;AAAA,QACjC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAEF,wBAAkB;AAClB,OAAC,iCACE,iBAAiB,gBAChB,gBAAgB,gBAChB,YAAY,iBACb,kBAAkB;AACrB,+BACI,WAAW,kBACT,gBAAgB,iBAAiB,cAAc,kBAAkB;AAAA,QAC/D,SAAS;AAAA,QACT,SAAS;AAAA,OACV,IACD,gBAAgB,iBAAiB,cAAc,kBAAkB,IAAE,IACrE,WAAW,kBACT,gBAAgB,iBAAiB,cAAc,kBAAkB;AAAA,QAC/D,SAAS;AAAA,OACV,IACD,gBAAgB,iBAAiB,cAAc,kBAAkB,KAAE;AAAA,IAC3E;AACA,aAAS,kCACP,cACA,kBACA,aACA,qBACA,iBACA;AACA,UAAI,eAAe;AACnB,UACE,OAAO,mBAAmB,MAC1B,OAAO,mBAAmB,MAC1B,SAAS;AAET,UAAG,YAAS;AACV,cAAI,SAAS,oBAAqB;AAClC,cAAI,UAAU,oBAAoB;AAClC,cAAI,MAAM,WAAW,MAAM,SAAS;AAClC,gBAAI,YAAY,oBAAoB,UAAU;AAC9C,gBAAI,cAAc,gBAAiB;AACnC,gBAAI,MAAM;AACR,mBAAK,UAAU,oBAAoB,QAAQ,SAAS,WAAW;AAC7D,oBAAI,WAAW,QAAQ;AACvB,qBACG,MAAM,YAAY,MAAM,aACzB,QAAQ,UAAU,kBAAkB;AAEpC;AACF,0BAAU,QAAQ;AAAA,cAC9B;AACQ,mBAAO,SAAS,aAAa;AAC3B,wBAAU,2BAA2B,SAAS;AAC9C,kBAAI,SAAS,QAAS;AACtB,yBAAW,QAAQ;AACnB,kBACE,MAAM,YACN,MAAM,YACN,OAAO,YACP,OAAO,UACP;AACA,sCAAsB,eAAe;AACrC,yBAAS;AAAA,cACrB;AACU,0BAAY,UAAU;AAAA,YAChC;AAAA,UACA;AACM,gCAAsB,oBAAoB;AAAA,QAChD;AACE,uBAAiB,WAAY;AAC3B,YAAI,aAAa,cACf,oBAAoB,eAAe,WAAW,GAC9C,gBAAgB,CAAA;AAClB,WAAG;AACD,cAAI,YAAY,2BAA2B,IAAI,YAAY;AAC3D,cAAI,WAAW,WAAW;AACxB,gBAAI,qBAAqB,gBACvB,iBAAiB;AACnB,oBAAQ,cAAY;AAAA,cAClB,KAAK;AACH,oBAAI,MAAM,iBAAiB,WAAW,EAAG,OAAM;AAAA,cACjD,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AACH,iCAAiB;AACjB,qCAAqB;AACrB;AAAA,cACF,KAAK;AACH,iCAAiB;AACjB,qCAAqB;AACrB;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AACH,oBAAI,MAAM,YAAY,OAAQ,OAAM;AAAA,cACtC,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AACrB;AAAA,cACF,KAAK;AAAA,cACL,KAAK;AACH,qCAAqB;AAAA,YACjC;AACQ,gBAAI,iBAAiB,OAAO,mBAAmB,IAC7C,uBACE,CAAC,mBACA,aAAa,gBAAgB,gBAAgB,eAChD,iBAAiB,iBACb,SAAS,YACP,YAAY,YACZ,OACF;AACN,6BAAiB,CAAA;AACjB,qBACM,WAAW,YAAY,mBAC3B,SAAS,YAET;AACA,kBAAI,YAAY;AAChB,kCAAoB,UAAU;AAC9B,0BAAY,UAAU;AACtB,cAAC,MAAM,aAAa,OAAO,aAAa,OAAO,aAC7C,SAAS,qBACT,SAAS,mBACP,YAAY,YAAY,UAAU,cAAc,GAClD,QAAQ,aACN,eAAe;AAAA,gBACb,uBAAuB,UAAU,WAAW,iBAAiB;AAAA,cAC7E;AACU,kBAAI,qBAAsB;AAC1B,yBAAW,SAAS;AAAA,YAC9B;AACQ,gBAAI,eAAe,WACf,YAAY,IAAI;AAAA,cAChB;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,eAEF,cAAc,KAAK,EAAE,OAAO,WAAW,WAAW,eAAc,CAAE;AAAA,UAC5E;AAAA,QACA;AACI,YAAI,OAAO,mBAAmB,IAAI;AAChC,aAAG;AACD,wBACE,gBAAgB,gBAAgB,kBAAkB;AACpD,iCACE,eAAe,gBAAgB,iBAAiB;AAClD,gBACE,aACA,gBAAgB,0BACf,iBACC,YAAY,iBAAiB,YAAY,iBAC1C,2BAA2B,cAAc,KACxC,eAAe,4BAA4B;AAE7C,oBAAM;AACR,gBAAI,sBAAsB,WAAW;AACnC,0BACE,kBAAkB,WAAW,oBACzB,qBACC,YAAY,kBAAkB,iBAC7B,UAAU,eAAe,UAAU,eACnC;AACR,kBAAI,oBAAoB;AACtB,oBACI,iBACA,YAAY,iBAAiB,YAAY,WAC1C,qBAAqB,YACrB,iBAAiB,iBACd,2BAA2B,cAAc,IACzC,MACJ,SAAS,mBACL,uBACA,uBAAuB,cAAc,GACtC,iBAAiB,eAAe,KACjC,mBAAmB,wBAChB,MAAM,kBACL,OAAO,kBACP,MAAM;AAEZ,mCAAiB;AAAA,cAC/B,MAAiB,CAAC,qBAAqB,MAAQ,iBAAiB;AACtD,kBAAI,uBAAuB,gBAAgB;AACzC,iCAAiB;AACjB,4BAAY;AACZ,iCAAiB;AACjB,2BAAW;AACX,oBAAI,iBAAiB,gBAAgB,kBAAkB;AACrD,kBAAC,iBAAiB,uBACf,YAAY,kBACZ,iBAAiB,kBACjB,WAAW;AAChB,uCACE,QAAQ,qBACJ,YACA,oBAAoB,kBAAkB;AAC5C,oCACE,QAAQ,iBACJ,YACA,oBAAoB,cAAc;AACxC,4BAAY,IAAI;AAAA,kBACd;AAAA,kBACA,WAAW;AAAA,kBACX;AAAA,kBACA;AAAA,kBACA;AAAA;AAEF,0BAAU,SAAS;AACnB,0BAAU,gBAAgB;AAC1B,4BAAY;AACZ,2CAA2B,iBAAiB,MAAM,eAC9C,iBAAiB,IAAI;AAAA,kBACrB;AAAA,kBACA,WAAW;AAAA,kBACX;AAAA,kBACA;AAAA,kBACA;AAAA,mBAED,eAAe,SAAS,mBACxB,eAAe,gBAAgB,sBAC/B,YAAY;AACf,uCAAuB;AACvB,oBAAI,sBAAsB;AACxB,qBAAG;AACD,qCAAiB;AACjB,qCAAiB;AACjB,+BAAW;AACX,wCAAoB;AACpB,yBACE,YAAY,gBACZ,WACA,YAAY,eAAe,SAAS;AAEpC;AACF,gCAAY;AACZ,6BAAS,QAAQ,UAAU,OAAO,QAAQ,eAAe,KAAK;AAC5D;AACF,2BAAO,IAAI,oBAAoB;AAC7B,sBAAC,iBAAiB,eAAe,cAAc,GAC7C;AACJ,2BAAO,IAAI,YAAY;AACrB,sBAAC,WAAW,eAAe,QAAQ,GAAI;AACzC,2BAAO,uBAAuB;AAC5B,0BACE,mBAAmB,YAClB,SAAS,YAAY,mBAAmB,SAAS,WAClD;AACA,yCAAiB;AACjB,8BAAM;AAAA,sBAC1B;AACkB,uCAAiB,eAAe,cAAc;AAC9C,iCAAW,eAAe,QAAQ;AAAA,oBACpD;AACgB,qCAAiB;AAAA,kBACjC;AAAA,oBACiB,kBAAiB;AACtB,yBAAS,sBACP;AAAA,kBACE;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA;AAEJ,yBAAS,kBACP,SAAS,wBACT;AAAA,kBACE;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA;cAEhB;AAAA,YACA;AAAA,UACA;AACM,aAAG;AACD,wBAAY,aAAa,oBAAoB,UAAU,IAAI;AAC3D,iCACE,UAAU,YAAY,UAAU,SAAS,YAAW;AACtD,gBACE,aAAa,sBACZ,YAAY,sBAAsB,WAAW,UAAU;AAExD,kBAAI,oBAAoB;AAAA,qBACjB,mBAAmB,SAAS;AACnC,kBAAI;AACF,oCAAoB;AAAA,mBACjB;AACH,oCAAoB;AACpB,oBAAI,kBAAkB;AAAA,cAClC;AAAA;AAEU,cAAC,qBAAqB,UAAU,UAC9B,CAAC,sBACD,YAAY,mBAAmB,YAAW,KACzC,eAAe,UAAU,QAAQ,YAAY,UAAU,OACpD,cACA,gBAAgB,WAAW,WAAW,MACrC,oBAAoB,+BACpB,oBAAoB;AAC7B,gBACE,sBACC,oBAAoB,kBAAkB,cAAc,UAAU,IAC/D;AACA;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA;AAEF,oBAAM;AAAA,YAChB;AACQ,+BAAmB,gBAAgB,cAAc,WAAW,UAAU;AACtE,2BAAe,gBACb,cACA,aAAa,UAAU,QACvB,QAAQ,WAAW,cAAc,SACjC,gBAAgB,WAAW,UAAU,UAAU,KAAK;AAAA,UAC9D;AACM,4BAAkB,aAAa,oBAAoB,UAAU,IAAI;AACjE,kBAAQ,cAAY;AAAA,YAClB,KAAK;AACH,kBACE,mBAAmB,eAAe,KAClC,WAAW,gBAAgB;AAE3B,gBAAC,gBAAgB,iBACd,oBAAoB,YACpB,gBAAgB;AACrB;AAAA,YACF,KAAK;AACH,8BAAgB,oBAAoB,gBAAgB;AACpD;AAAA,YACF,KAAK;AACH,0BAAY;AACZ;AAAA,YACF,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,0BAAY;AACZ,mCAAqB,eAAe,aAAa,iBAAiB;AAClE;AAAA,YACF,KAAK;AACH,kBAAI,yBAA0B;AAAA,YAChC,KAAK;AAAA,YACL,KAAK;AACH,mCAAqB,eAAe,aAAa,iBAAiB;AAAA,UAC5E;AACM,cAAI;AACJ,cAAI;AACF,eAAG;AACD,sBAAQ,cAAY;AAAA,gBAClB,KAAK;AACH,sBAAI,YAAY;AAChB,wBAAM;AAAA,gBACR,KAAK;AACH,8BAAY;AACZ,wBAAM;AAAA,gBACR,KAAK;AACH,8BAAY;AACZ,wBAAM;AAAA,cACpB;AACU,0BAAY;AAAA,YACtB;AAAA;AAEQ,0BACI,yBAAyB,cAAc,WAAW,MACjD,YAAY,sBACb,cAAc,gBACd,QAAQ,YAAY,YACnB,YAAY;AACnB,wBACG,8BACC,SAAS,YAAY,WACpB,eAAe,yBAAyB,YACrC,uBAAuB,aACvB,gBACC,eAAe,QAAO,MACrB,OAAO,mBACR,YAAY,WAAW,OAAO,KAAK,QAAQ,KAAK,aAChD,cAAc,QACpB,kBAAkB,4BAA4B,YAAY,SAAS,GACpE,IAAI,gBAAgB,WAChB,YAAY,IAAI;AAAA,YAChB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,aAEF,cAAc,KAAK,EAAE,OAAO,WAAW,WAAW,iBAAiB,GACnE,eACK,UAAU,OAAO,gBAChB,eAAe,uBAAuB,WAAW,GACnD,SAAS,iBAAiB,UAAU,OAAO;AACnD,cACG,eAAe,uBACZ,0BAA0B,cAAc,WAAW,IACnD,4BAA4B,cAAc,WAAW;AAEzD,YAAC,YAAY,4BAA4B,YAAY,eAAe,GAClE,IAAI,UAAU,WACV,kBAAkB,IAAI;AAAA,cACtB;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,eAEF,cAAc,KAAK;AAAA,cACjB,OAAO;AAAA,cACP,WAAW;AAAA,YACzB,CAAa,GACA,gBAAgB,OAAO;AAC9B;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;QAER;AACI,6BAAqB,eAAe,gBAAgB;AAAA,MACxD,CAAG;AAAA,IACH;AACA,aAAS,uBAAuB,UAAU,UAAU,eAAe;AACjE,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA;IAEJ;AACA,aAAS,4BAA4B,aAAa,WAAW;AAC3D,eACM,cAAc,YAAY,WAAW,YAAY,CAAA,GACrD,SAAS,eAET;AACA,YAAI,aAAa,aACf,YAAY,WAAW;AACzB,qBAAa,WAAW;AACxB,QAAC,MAAM,cAAc,OAAO,cAAc,OAAO,cAC/C,SAAS,cACP,aAAa,YAAY,aAAa,WAAW,GACnD,QAAQ,cACN,UAAU;AAAA,UACR,uBAAuB,aAAa,YAAY,SAAS;AAAA,WAE5D,aAAa,YAAY,aAAa,SAAS,GAChD,QAAQ,cACN,UAAU;AAAA,UACR,uBAAuB,aAAa,YAAY,SAAS;AAAA,QACnE;AACI,YAAI,MAAM,YAAY,IAAK,QAAO;AAClC,sBAAc,YAAY;AAAA,MAC9B;AACE,aAAO,CAAA;AAAA,IACT;AACA,aAAS,UAAU,MAAM;AACvB,UAAI,SAAS,KAAM,QAAO;AAC1B;AAAG,eAAO,KAAK;AAAA,aACR,QAAQ,MAAM,KAAK,OAAO,OAAO,KAAK;AAC7C,aAAO,OAAO,OAAO;AAAA,IACvB;AACA,aAAS,sCACP,eACA,OACA,QACA,QACA,gBACA;AACA,eACM,mBAAmB,MAAM,YAAY,YAAY,CAAA,GACrD,SAAS,UAAU,WAAW,UAE9B;AACA,YAAI,aAAa,QACf,YAAY,WAAW,WACvB,YAAY,WAAW;AACzB,qBAAa,WAAW;AACxB,YAAI,SAAS,aAAa,cAAc,OAAQ;AAChD,QAAC,MAAM,cAAc,OAAO,cAAc,OAAO,cAC/C,SAAS,cACP,YAAY,WACd,kBACM,YAAY,YAAY,QAAQ,gBAAgB,GAClD,QAAQ,aACN,UAAU;AAAA,UACR,uBAAuB,QAAQ,WAAW,SAAS;AAAA,aAEvD,mBACE,YAAY,YAAY,QAAQ,gBAAgB,GAClD,QAAQ,aACN,UAAU;AAAA,UACR,uBAAuB,QAAQ,WAAW,SAAS;AAAA,QACjE;AACI,iBAAS,OAAO;AAAA,MACpB;AACE,YAAM,UAAU,UACd,cAAc,KAAK,EAAE,OAAc,WAAsB;AAAA,IAC7D;AACA,QAAI,2BAA2B,UAC7B,uCAAuC;AACzC,aAAS,kCAAkC,QAAQ;AACjD,cAAQ,aAAa,OAAO,SAAS,SAAS,KAAK,QAChD,QAAQ,0BAA0B,IAAI,EACtC,QAAQ,sCAAsC,EAAE;AAAA,IACrD;AACA,aAAS,sBAAsB,YAAY,YAAY;AACrD,mBAAa,kCAAkC,UAAU;AACzD,aAAO,kCAAkC,UAAU,MAAM,aAAa,OAAK;AAAA,IAC7E;AACA,aAAS,QAAQ,YAAY,KAAK,KAAK,OAAO,OAAO,WAAW;AAC9D,cAAQ,KAAG;AAAA,QACT,KAAK;AACH,uBAAa,OAAO,QAChB,WAAW,OACV,eAAe,OAAO,OAAO,SAC9B,eAAe,YAAY,KAAK,KAC/B,aAAa,OAAO,SAAS,aAAa,OAAO,UAClD,WAAW,OACX,eAAe,YAAY,KAAK,KAAK;AACzC;AAAA,QACF,KAAK;AACH,oCAA0B,YAAY,SAAS,KAAK;AACpD;AAAA,QACF,KAAK;AACH,oCAA0B,YAAY,YAAY,KAAK;AACvD;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,oCAA0B,YAAY,KAAK,KAAK;AAChD;AAAA,QACF,KAAK;AACH,4BAAkB,YAAY,OAAO,SAAS;AAC9C;AAAA,QACF,KAAK;AACH,cAAI,aAAa,KAAK;AACpB,sCAA0B,YAAY,QAAQ,KAAK;AACnD;AAAA,UACR;AAAA,QACI,KAAK;AAAA,QACL,KAAK;AACH,cAAI,OAAO,UAAU,QAAQ,OAAO,WAAW,MAAM;AACnD,uBAAW,gBAAgB,GAAG;AAC9B;AAAA,UACR;AACM,cACE,QAAQ,SACR,eAAe,OAAO,SACtB,aAAa,OAAO,SACpB,cAAc,OAAO,OACrB;AACA,uBAAW,gBAAgB,GAAG;AAC9B;AAAA,UACR;AACM,kBAAQ,YAAY,KAAK,KAAK;AAC9B,qBAAW,aAAa,KAAK,KAAK;AAClC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,cAAI,eAAe,OAAO,OAAO;AAC/B,uBAAW;AAAA,cACT;AAAA,cACA;AAAA;AAEF;AAAA,UACR;AACQ,2BAAe,OAAO,cACnB,iBAAiB,OACb,YAAY,OACX,QAAQ,YAAY,KAAK,QAAQ,MAAM,MAAM,OAAO,IAAI,GAC1D;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA,MAAM;AAAA,cACN;AAAA,cACA;AAAA,eAEF;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA,MAAM;AAAA,cACN;AAAA,cACA;AAAA,eAEF;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA,MAAM;AAAA,cACN;AAAA,cACA;AAAA,kBAED,QAAQ,YAAY,KAAK,WAAW,MAAM,SAAS,OAAO,IAAI,GAC/D,QAAQ,YAAY,KAAK,UAAU,MAAM,QAAQ,OAAO,IAAI,GAC5D,QAAQ,YAAY,KAAK,UAAU,MAAM,QAAQ,OAAO,IAAI;AACpE,cACE,QAAQ,SACR,aAAa,OAAO,SACpB,cAAc,OAAO,OACrB;AACA,uBAAW,gBAAgB,GAAG;AAC9B;AAAA,UACR;AACM,kBAAQ,YAAY,KAAK,KAAK;AAC9B,qBAAW,aAAa,KAAK,KAAK;AAClC;AAAA,QACF,KAAK;AACH,kBAAQ,UAAU,WAAW,UAAU;AACvC;AAAA,QACF,KAAK;AACH,kBAAQ,SAAS,0BAA0B,UAAU,UAAU;AAC/D;AAAA,QACF,KAAK;AACH,kBAAQ,SAAS,0BAA0B,aAAa,UAAU;AAClE;AAAA,QACF,KAAK;AACH,cAAI,QAAQ,OAAO;AACjB,gBAAI,aAAa,OAAO,SAAS,EAAE,YAAY;AAC7C,oBAAM,MAAM,uBAAuB,EAAE,CAAC;AACxC,kBAAM,MAAM;AACZ,gBAAI,QAAQ,KAAK;AACf,kBAAI,QAAQ,MAAM,SAAU,OAAM,MAAM,uBAAuB,EAAE,CAAC;AAClE,yBAAW,YAAY;AAAA,YACjC;AAAA,UACA;AACM;AAAA,QACF,KAAK;AACH,qBAAW,WACT,SAAS,eAAe,OAAO,SAAS,aAAa,OAAO;AAC9D;AAAA,QACF,KAAK;AACH,qBAAW,QACT,SAAS,eAAe,OAAO,SAAS,aAAa,OAAO;AAC9D;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QACF,KAAK;AACH;AAAA,QACF,KAAK;AACH,cACE,QAAQ,SACR,eAAe,OAAO,SACtB,cAAc,OAAO,SACrB,aAAa,OAAO,OACpB;AACA,uBAAW,gBAAgB,YAAY;AACvC;AAAA,UACR;AACM,gBAAM,YAAY,KAAK,KAAK;AAC5B,qBAAW;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,kBAAQ,SAAS,eAAe,OAAO,SAAS,aAAa,OAAO,QAChE,WAAW,aAAa,KAAK,KAAK,KAAK,IACvC,WAAW,gBAAgB,GAAG;AAClC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,mBAAS,eAAe,OAAO,SAAS,aAAa,OAAO,QACxD,WAAW,aAAa,KAAK,EAAE,IAC/B,WAAW,gBAAgB,GAAG;AAClC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,mBAAO,QACH,WAAW,aAAa,KAAK,EAAE,IAC/B,UAAO,SACL,QAAQ,SACR,eAAe,OAAO,SACtB,aAAa,OAAO,QACpB,WAAW,aAAa,KAAK,KAAK,IAClC,WAAW,gBAAgB,GAAG;AACpC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,kBAAQ,SACR,eAAe,OAAO,SACtB,aAAa,OAAO,SACpB,CAAC,MAAM,KAAK,KACZ,KAAK,QACD,WAAW,aAAa,KAAK,KAAK,IAClC,WAAW,gBAAgB,GAAG;AAClC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,kBAAQ,SACR,eAAe,OAAO,SACtB,aAAa,OAAO,SACpB,MAAM,KAAK,IACP,WAAW,gBAAgB,GAAG,IAC9B,WAAW,aAAa,KAAK,KAAK;AACtC;AAAA,QACF,KAAK;AACH,oCAA0B,gBAAgB,UAAU;AACpD,oCAA0B,UAAU,UAAU;AAC9C,+BAAqB,YAAY,WAAW,KAAK;AACjD;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH,+BAAqB,YAAY,MAAM,KAAK;AAC5C;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QACF;AACE,cACE,EAAE,IAAI,IAAI,WACT,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAC/B,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC;AAEhC,YAAC,MAAM,QAAQ,IAAI,GAAG,KAAK,KACzB,qBAAqB,YAAY,KAAK,KAAK;AAAA,MACrD;AAAA,IACA;AACA,aAAS,uBAAuB,YAAY,KAAK,KAAK,OAAO,OAAO,WAAW;AAC7E,cAAQ,KAAG;AAAA,QACT,KAAK;AACH,4BAAkB,YAAY,OAAO,SAAS;AAC9C;AAAA,QACF,KAAK;AACH,cAAI,QAAQ,OAAO;AACjB,gBAAI,aAAa,OAAO,SAAS,EAAE,YAAY;AAC7C,oBAAM,MAAM,uBAAuB,EAAE,CAAC;AACxC,kBAAM,MAAM;AACZ,gBAAI,QAAQ,KAAK;AACf,kBAAI,QAAQ,MAAM,SAAU,OAAM,MAAM,uBAAuB,EAAE,CAAC;AAClE,yBAAW,YAAY;AAAA,YACjC;AAAA,UACA;AACM;AAAA,QACF,KAAK;AACH,uBAAa,OAAO,QAChB,eAAe,YAAY,KAAK,KAC/B,aAAa,OAAO,SAAS,aAAa,OAAO,UAClD,eAAe,YAAY,KAAK,KAAK;AACzC;AAAA,QACF,KAAK;AACH,kBAAQ,SAAS,0BAA0B,UAAU,UAAU;AAC/D;AAAA,QACF,KAAK;AACH,kBAAQ,SAAS,0BAA0B,aAAa,UAAU;AAClE;AAAA,QACF,KAAK;AACH,kBAAQ,UAAU,WAAW,UAAU;AACvC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QACF;AACE,cAAI,CAAC,6BAA6B,eAAe,GAAG;AAClD,eAAG;AACD,kBACE,QAAQ,IAAI,CAAC,KACb,QAAQ,IAAI,CAAC,MACX,QAAQ,IAAI,SAAS,SAAS,GAC/B,MAAM,IAAI,MAAM,GAAG,QAAQ,IAAI,SAAS,IAAI,MAAM,GAClD,YAAY,WAAW,gBAAgB,KAAK,MAC5C,YAAY,QAAQ,YAAY,UAAU,GAAG,IAAI,MAClD,eAAe,OAAO,aACpB,WAAW,oBAAoB,KAAK,WAAW,KAAK,GACtD,eAAe,OAAO,QACtB;AACA,+BAAe,OAAO,aACpB,SAAS,cACR,OAAO,aACH,WAAW,GAAG,IAAI,OACnB,WAAW,aAAa,GAAG,KAC3B,WAAW,gBAAgB,GAAG;AACpC,2BAAW,iBAAiB,KAAK,OAAO,KAAK;AAC7C,sBAAM;AAAA,cAClB;AACU,qBAAO,aACF,WAAW,GAAG,IAAI,QACnB,SAAO,QACL,WAAW,aAAa,KAAK,EAAE,IAC/B,qBAAqB,YAAY,KAAK,KAAK;AAAA,YAC3D;AAAA,MACA;AAAA,IACA;AACA,aAAS,qBAAqB,YAAY,KAAK,OAAO;AACpD,cAAQ,KAAG;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QACF,KAAK;AACH,oCAA0B,SAAS,UAAU;AAC7C,oCAA0B,QAAQ,UAAU;AAC5C,cAAI,SAAS,OACX,YAAY,OACZ;AACF,eAAK,WAAW;AACd,gBAAI,MAAM,eAAe,OAAO,GAAG;AACjC,kBAAI,YAAY,MAAM,OAAO;AAC7B,kBAAI,QAAQ;AACV,wBAAQ,SAAO;AAAA,kBACb,KAAK;AACH,6BAAS;AACT;AAAA,kBACF,KAAK;AACH,gCAAY;AACZ;AAAA,kBACF,KAAK;AAAA,kBACL,KAAK;AACH,0BAAM,MAAM,uBAAuB,KAAK,GAAG,CAAC;AAAA,kBAC9C;AACE,4BAAQ,YAAY,KAAK,SAAS,WAAW,OAAO,IAAI;AAAA,gBACxE;AAAA,YACA;AACM,uBACE,QAAQ,YAAY,KAAK,UAAU,MAAM,QAAQ,OAAO,IAAI;AAC9D,oBAAU,QAAQ,YAAY,KAAK,OAAO,MAAM,KAAK,OAAO,IAAI;AAChE;AAAA,QACF,KAAK;AACH,oCAA0B,WAAW,UAAU;AAC/C,cAAI,eAAgB,UAAU,YAAY,YAAY,MACpD,UAAU,MACV,iBAAiB;AACnB,eAAK,UAAU;AACb,gBAAI,MAAM,eAAe,MAAM,GAAG;AAChC,kBAAI,gBAAgB,MAAM,MAAM;AAChC,kBAAI,QAAQ;AACV,wBAAQ,QAAM;AAAA,kBACZ,KAAK;AACH,gCAAY;AACZ;AAAA,kBACF,KAAK;AACH,gCAAY;AACZ;AAAA,kBACF,KAAK;AACH,8BAAU;AACV;AAAA,kBACF,KAAK;AACH,qCAAiB;AACjB;AAAA,kBACF,KAAK;AACH,8BAAU;AACV;AAAA,kBACF,KAAK;AACH,mCAAe;AACf;AAAA,kBACF,KAAK;AAAA,kBACL,KAAK;AACH,wBAAI,QAAQ;AACV,4BAAM,MAAM,uBAAuB,KAAK,GAAG,CAAC;AAC9C;AAAA,kBACF;AACE,4BAAQ,YAAY,KAAK,QAAQ,eAAe,OAAO,IAAI;AAAA,gBAC3E;AAAA,YACA;AACM;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH,oCAA0B,WAAW,UAAU;AAC/C,mBAAS,YAAY,UAAU;AAC/B,eAAK,aAAa;AAChB,gBACE,MAAM,eAAe,SAAS,MAC5B,eAAe,MAAM,SAAS,GAAI,QAAQ;AAE5C,sBAAQ,WAAS;AAAA,gBACf,KAAK;AACH,4BAAU;AACV;AAAA,gBACF,KAAK;AACH,8BAAY;AACZ;AAAA,gBACF,KAAK;AACH,2BAAS;AAAA,gBACX;AACE,0BAAQ,YAAY,KAAK,WAAW,cAAc,OAAO,IAAI;AAAA,cAC3E;AACM,gBAAM;AACN,kBAAQ;AACR,qBAAW,WAAW,CAAC,CAAC;AACxB,kBAAQ,MACJ,cAAc,YAAY,CAAC,CAAC,QAAQ,KAAK,KAAE,IAC3C,QAAQ,SAAS,cAAc,YAAY,CAAC,CAAC,QAAQ,OAAO,IAAE;AAClE;AAAA,QACF,KAAK;AACH,oCAA0B,WAAW,UAAU;AAC/C,oBAAU,YAAY,SAAS;AAC/B,eAAK,aAAa;AAChB,gBACE,MAAM,eAAe,SAAS,MAC5B,eAAe,MAAM,SAAS,GAAI,QAAQ;AAE5C,sBAAQ,WAAS;AAAA,gBACf,KAAK;AACH,2BAAS;AACT;AAAA,gBACF,KAAK;AACH,8BAAY;AACZ;AAAA,gBACF,KAAK;AACH,4BAAU;AACV;AAAA,gBACF,KAAK;AACH,sBAAI,QAAQ,aAAc,OAAM,MAAM,uBAAuB,EAAE,CAAC;AAChE;AAAA,gBACF;AACE,0BAAQ,YAAY,KAAK,WAAW,cAAc,OAAO,IAAI;AAAA,cAC3E;AACM,uBAAa,YAAY,QAAQ,WAAW,OAAO;AACnD;AAAA,QACF,KAAK;AACH,eAAK,WAAW;AACd,gBACE,MAAM,eAAe,OAAO,MAC1B,SAAS,MAAM,OAAO,GAAI,QAAQ;AAEpC,sBAAQ,SAAO;AAAA,gBACb,KAAK;AACH,6BAAW,WACT,UACA,eAAe,OAAO,UACtB,aAAa,OAAO;AACtB;AAAA,gBACF;AACE,0BAAQ,YAAY,KAAK,SAAS,QAAQ,OAAO,IAAI;AAAA,cACnE;AACM;AAAA,QACF,KAAK;AACH,oCAA0B,gBAAgB,UAAU;AACpD,oCAA0B,UAAU,UAAU;AAC9C,oCAA0B,UAAU,UAAU;AAC9C,oCAA0B,SAAS,UAAU;AAC7C;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,oCAA0B,QAAQ,UAAU;AAC5C;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,SAAS,GAAG,SAAS,gBAAgB,QAAQ;AAChD,sCAA0B,gBAAgB,MAAM,GAAG,UAAU;AAC/D;AAAA,QACF,KAAK;AACH,oCAA0B,SAAS,UAAU;AAC7C,oCAA0B,QAAQ,UAAU;AAC5C;AAAA,QACF,KAAK;AACH,oCAA0B,UAAU,UAAU;AAC9C;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,oCAA0B,SAAS,UAAU,GAC3C,0BAA0B,QAAQ,UAAU;AAAA,QAChD,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,eAAK,kBAAkB;AACrB,gBACE,MAAM,eAAe,cAAc,MACjC,SAAS,MAAM,cAAc,GAAI,QAAQ;AAE3C,sBAAQ,gBAAc;AAAA,gBACpB,KAAK;AAAA,gBACL,KAAK;AACH,wBAAM,MAAM,uBAAuB,KAAK,GAAG,CAAC;AAAA,gBAC9C;AACE,0BAAQ,YAAY,KAAK,gBAAgB,QAAQ,OAAO,IAAI;AAAA,cAC1E;AACM;AAAA,QACF;AACE,cAAI,gBAAgB,GAAG,GAAG;AACxB,iBAAK,iBAAiB;AACpB,oBAAM,eAAe,aAAa,MAC9B,SAAS,MAAM,aAAa,GAC9B,WAAW,UACT;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cAChB;AACQ;AAAA,UACR;AAAA,MACA;AACE,WAAK,gBAAgB;AACnB,cAAM,eAAe,YAAY,MAC7B,SAAS,MAAM,YAAY,GAC7B,QAAQ,UACN,QAAQ,YAAY,KAAK,cAAc,QAAQ,OAAO,IAAI;AAAA,IAClE;AACA,aAAS,iBAAiB,YAAY,KAAK,WAAW,WAAW;AAC/D,cAAQ,KAAG;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QACF,KAAK;AACH,cAAI,OAAO,MACT,OAAO,MACP,QAAQ,MACR,eAAe,MACf,mBAAmB,MACnB,UAAU,MACV,iBAAiB;AACnB,eAAK,WAAW,WAAW;AACzB,gBAAI,WAAW,UAAU,OAAO;AAChC,gBAAI,UAAU,eAAe,OAAO,KAAK,QAAQ;AAC/C,sBAAQ,SAAO;AAAA,gBACb,KAAK;AACH;AAAA,gBACF,KAAK;AACH;AAAA,gBACF,KAAK;AACH,qCAAmB;AAAA,gBACrB;AACE,4BAAU,eAAe,OAAO,KAC9B,QAAQ,YAAY,KAAK,SAAS,MAAM,WAAW,QAAQ;AAAA,cAC3E;AAAA,UACA;AACM,mBAAS,eAAe,WAAW;AACjC,gBAAI,UAAU,UAAU,WAAW;AACnC,uBAAW,UAAU,WAAW;AAChC,gBACE,UAAU,eAAe,WAAW,MACnC,QAAQ,WAAW,QAAQ;AAE5B,sBAAQ,aAAW;AAAA,gBACjB,KAAK;AACH,yBAAO;AACP;AAAA,gBACF,KAAK;AACH,yBAAO;AACP;AAAA,gBACF,KAAK;AACH,4BAAU;AACV;AAAA,gBACF,KAAK;AACH,mCAAiB;AACjB;AAAA,gBACF,KAAK;AACH,0BAAQ;AACR;AAAA,gBACF,KAAK;AACH,iCAAe;AACf;AAAA,gBACF,KAAK;AAAA,gBACL,KAAK;AACH,sBAAI,QAAQ;AACV,0BAAM,MAAM,uBAAuB,KAAK,GAAG,CAAC;AAC9C;AAAA,gBACF;AACE,8BAAY,YACV;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA;cAElB;AAAA,UACA;AACM;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAEF;AAAA,QACF,KAAK;AACH,oBAAU,QAAQ,eAAe,cAAc;AAC/C,eAAK,QAAQ;AACX,gBACI,mBAAmB,UAAU,IAAI,GACnC,UAAU,eAAe,IAAI,KAAK,QAAQ;AAE1C,sBAAQ,MAAI;AAAA,gBACV,KAAK;AACH;AAAA,gBACF,KAAK;AACH,4BAAU;AAAA,gBACZ;AACE,4BAAU,eAAe,IAAI,KAC3B;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA;cAElB;AACM,eAAK,QAAQ;AACX,gBACI,OAAO,UAAU,IAAI,GACtB,mBAAmB,UAAU,IAAI,GAClC,UAAU,eAAe,IAAI,MAC1B,QAAQ,QAAQ,QAAQ;AAE3B,sBAAQ,MAAI;AAAA,gBACV,KAAK;AACH,gCAAc;AACd;AAAA,gBACF,KAAK;AACH,iCAAe;AACf;AAAA,gBACF,KAAK;AACH,0BAAQ;AAAA,gBACV;AACE,2BAAS,oBACP;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA;cAElB;AACM,gBAAM;AACN,sBAAY;AACZ,sBAAY;AACZ,kBAAQ,cACJ,cAAc,YAAY,CAAC,CAAC,WAAW,aAAa,KAAE,IACtD,CAAC,CAAC,cAAc,CAAC,CAAC,cACjB,QAAQ,MACL,cAAc,YAAY,CAAC,CAAC,WAAW,KAAK,IAAE,IAC9C,cAAc,YAAY,CAAC,CAAC,WAAW,YAAY,KAAK,IAAI,KAAE;AACtE;AAAA,QACF,KAAK;AACH,oBAAU,cAAc;AACxB,eAAK,gBAAgB;AACnB,gBACI,OAAO,UAAU,YAAY,GAC/B,UAAU,eAAe,YAAY,KACnC,QAAQ,QACR,CAAC,UAAU,eAAe,YAAY;AAExC,sBAAQ,cAAY;AAAA,gBAClB,KAAK;AACH;AAAA,gBACF,KAAK;AACH;AAAA,gBACF;AACE,0BAAQ,YAAY,KAAK,cAAc,MAAM,WAAW,IAAI;AAAA,cAC1E;AACM,eAAK,SAAS;AACZ,gBACI,OAAO,UAAU,KAAK,GACvB,OAAO,UAAU,KAAK,GACvB,UAAU,eAAe,KAAK,MAAM,QAAQ,QAAQ,QAAQ;AAE5D,sBAAQ,OAAK;AAAA,gBACX,KAAK;AACH,gCAAc;AACd;AAAA,gBACF,KAAK;AACH,4BAAU;AACV;AAAA,gBACF,KAAK;AACH;AAAA,gBACF,KAAK;AACH,sBAAI,QAAQ,KAAM,OAAM,MAAM,uBAAuB,EAAE,CAAC;AACxD;AAAA,gBACF;AACE,2BAAS,QACP,QAAQ,YAAY,KAAK,OAAO,MAAM,WAAW,IAAI;AAAA,cACrE;AACM,yBAAe,YAAY,aAAa,OAAO;AAC/C;AAAA,QACF,KAAK;AACH,mBAAS,eAAe;AACtB,gBACI,cAAc,UAAU,WAAW,GACrC,UAAU,eAAe,WAAW,KAClC,QAAQ,eACR,CAAC,UAAU,eAAe,WAAW;AAEvC,sBAAQ,aAAW;AAAA,gBACjB,KAAK;AACH,6BAAW,WAAW;AACtB;AAAA,gBACF;AACE;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA;cAEhB;AACM,eAAK,oBAAoB;AACvB,gBACI,cAAc,UAAU,gBAAgB,GACzC,UAAU,UAAU,gBAAgB,GACrC,UAAU,eAAe,gBAAgB,KACvC,gBAAgB,YACf,QAAQ,eAAe,QAAQ;AAElC,sBAAQ,kBAAgB;AAAA,gBACtB,KAAK;AACH,6BAAW,WACT,eACA,eAAe,OAAO,eACtB,aAAa,OAAO;AACtB;AAAA,gBACF;AACE;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA;cAEhB;AACM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,mBAAS,eAAe;AACtB,YAAC,cAAc,UAAU,WAAW,GAClC,UAAU,eAAe,WAAW,KAClC,QAAQ,eACR,CAAC,UAAU,eAAe,WAAW,KACrC,QAAQ,YAAY,KAAK,aAAa,MAAM,WAAW,WAAW;AACxE,eAAK,WAAW;AACd,gBACI,cAAc,UAAU,OAAO,GAChC,UAAU,UAAU,OAAO,GAC5B,UAAU,eAAe,OAAO,KAC9B,gBAAgB,YACf,QAAQ,eAAe,QAAQ;AAElC,sBAAQ,SAAO;AAAA,gBACb,KAAK;AAAA,gBACL,KAAK;AACH,sBAAI,QAAQ;AACV,0BAAM,MAAM,uBAAuB,KAAK,GAAG,CAAC;AAC9C;AAAA,gBACF;AACE;AAAA,oBACE;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA;AAAA;cAEhB;AACM;AAAA,QACF;AACE,cAAI,gBAAgB,GAAG,GAAG;AACxB,qBAAS,eAAe;AACtB,cAAC,cAAc,UAAU,WAAW,GAClC,UAAU,eAAe,WAAW,KAClC,WAAW,eACX,CAAC,UAAU,eAAe,WAAW,KACrC;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA;AAER,iBAAK,kBAAkB;AACrB,cAAC,cAAc,UAAU,cAAc,GACpC,UAAU,UAAU,cAAc,GACnC,CAAC,UAAU,eAAe,cAAc,KACtC,gBAAgB,WACf,WAAW,eAAe,WAAW,WACtC;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA;AAER;AAAA,UACR;AAAA,MACA;AACE,eAAS,eAAe;AACtB,QAAC,cAAc,UAAU,WAAW,GAClC,UAAU,eAAe,WAAW,KAClC,QAAQ,eACR,CAAC,UAAU,eAAe,WAAW,KACrC,QAAQ,YAAY,KAAK,aAAa,MAAM,WAAW,WAAW;AACxE,WAAK,YAAY;AACf,QAAC,cAAc,UAAU,QAAQ,GAC9B,UAAU,UAAU,QAAQ,GAC7B,CAAC,UAAU,eAAe,QAAQ,KAChC,gBAAgB,WACf,QAAQ,eAAe,QAAQ,WAChC,QAAQ,YAAY,KAAK,UAAU,aAAa,WAAW,OAAO;AAAA,IAC1E;AACA,aAAS,uBAAuB,eAAe;AAC7C,cAAQ,eAAa;AAAA,QACnB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,aAAS,oBAAoB;AAC3B,UAAI,eAAe,OAAO,YAAY,kBAAkB;AACtD,iBACM,QAAQ,GACV,OAAO,GACP,kBAAkB,YAAY,iBAAiB,UAAU,GACzD,IAAI,GACN,IAAI,gBAAgB,QACpB,KACA;AACA,cAAI,QAAQ,gBAAgB,CAAC,GAC3B,eAAe,MAAM,cACrB,gBAAgB,MAAM,eACtB,WAAW,MAAM;AACnB,cAAI,gBAAgB,YAAY,uBAAuB,aAAa,GAAG;AACrE,4BAAgB;AAChB,uBAAW,MAAM;AACjB,iBAAK,KAAK,GAAG,IAAI,gBAAgB,QAAQ,KAAK;AAC5C,kBAAI,eAAe,gBAAgB,CAAC,GAClC,mBAAmB,aAAa;AAClC,kBAAI,mBAAmB,SAAU;AACjC,kBAAI,sBAAsB,aAAa,cACrC,uBAAuB,aAAa;AACtC,qCACE,uBAAuB,oBAAoB,MACzC,eAAe,aAAa,aAC7B,iBACC,uBACC,eAAe,WACZ,KACC,WAAW,qBACX,eAAe;AAAA,YAClC;AACQ,cAAE;AACF,oBAAS,KAAK,eAAe,kBAAmB,MAAM,WAAW;AACjE;AACA,gBAAI,KAAK,MAAO;AAAA,UACxB;AAAA,QACA;AACI,YAAI,IAAI,MAAO,QAAO,OAAO,QAAQ;AAAA,MACzC;AACE,aAAO,UAAU,eACb,QAAQ,UAAU,WAAW,UAAW,aAAa,OAAO,SAC5D,QACA;AAAA,IACN;AACA,QAAI,gBAAgB,MAClB,uBAAuB;AACzB,aAAS,kCAAkC,sBAAsB;AAC/D,aAAO,MAAM,qBAAqB,WAC9B,uBACA,qBAAqB;AAAA,IAC3B;AACA,aAAS,kBAAkB,cAAc;AACvC,cAAQ,cAAY;AAAA,QAClB,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,aAAS,wBAAwB,iBAAiB,MAAM;AACtD,UAAI,MAAM;AACR,gBAAQ,MAAI;AAAA,UACV,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT;AACE,mBAAO;AAAA,QACf;AACE,aAAO,MAAM,mBAAmB,oBAAoB,OAChD,IACA;AAAA,IACN;AACA,aAAS,qBAAqB,MAAM,OAAO;AACzC,aACE,eAAe,QACf,eAAe,QACf,aAAa,OAAO,MAAM,YAC1B,aAAa,OAAO,MAAM,YAC1B,aAAa,OAAO,MAAM,YACzB,aAAa,OAAO,MAAM,2BACzB,SAAS,MAAM,2BACf,QAAQ,MAAM,wBAAwB;AAAA,IAE5C;AACA,QAAI,iCAAiC;AACrC,aAAS,+BAA+B;AACtC,UAAI,QAAQ,OAAO;AACnB,UAAI,SAAS,eAAe,MAAM,MAAM;AACtC,YAAI,UAAU,+BAAgC,QAAO;AACrD,yCAAiC;AACjC,eAAO;AAAA,MACX;AACE,uCAAiC;AACjC,aAAO;AAAA,IACT;AACA,QAAI,kBAAkB,eAAe,OAAO,aAAa,aAAa,QACpE,gBAAgB,eAAe,OAAO,eAAe,eAAe,QACpE,eAAe,eAAe,OAAO,UAAU,UAAU,QACzD,oBACE,eAAe,OAAO,iBAClB,iBACA,gBAAgB,OAAO,eACrB,SAAU,UAAU;AAClB,aAAO,aACJ,QAAQ,IAAI,EACZ,KAAK,QAAQ,EACb,MAAM,qBAAqB;AAAA,IAC1C,IACU;AACV,aAAS,sBAAsB,OAAO;AACpC,iBAAW,WAAY;AACrB,cAAM;AAAA,MACV,CAAG;AAAA,IACH;AACA,aAAS,iBAAiB,MAAM;AAC9B,aAAO,WAAW;AAAA,IACpB;AACA,aAAS,uBAAuB,gBAAgB,mBAAmB;AACjE,UAAI,OAAO,mBACT,QAAQ;AACV,SAAG;AACD,YAAI,WAAW,KAAK;AACpB,uBAAe,YAAY,IAAI;AAC/B,YAAI,YAAY,MAAM,SAAS;AAC7B,cAAM,OAAO,SAAS,MAAO,SAAS,QAAQ,SAAS,MAAO;AAC5D,gBAAI,MAAM,OAAO;AACf,6BAAe,YAAY,QAAQ;AACnC,+BAAiB,iBAAiB;AAClC;AAAA,YACV;AACQ;AAAA,UACR,WACQ,QAAQ,QACR,SAAS,QACT,SAAS,QACT,SAAS,QACT,QAAQ;AAER;AAAA,mBACO,WAAW;AAClB,qCAAyB,eAAe,cAAc,eAAe;AAAA,mBAC9D,WAAW,MAAM;AACxB,mBAAO,eAAe,cAAc;AACpC,qCAAyB,IAAI;AAC7B,qBAAS,gBAAgB,KAAK,YAAY,iBAAiB;AACzD,kBAAI,oBAAoB,cAAc,aACpC,WAAW,cAAc;AAC3B,4BAAc,uBAAuB,KACnC,aAAa,YACb,YAAY,YACX,WAAW,YACV,iBAAiB,cAAc,IAAI,iBACrC,KAAK,YAAY,aAAa;AAChC,8BAAgB;AAAA,YAC1B;AAAA,UACA;AACQ,uBAAW,QACT,yBAAyB,eAAe,cAAc,IAAI;AAChE,eAAO;AAAA,MACX,SAAW;AACT,uBAAiB,iBAAiB;AAAA,IACpC;AACA,aAAS,+BAA+B,kBAAkB,UAAU;AAClE,UAAI,OAAO;AACX,yBAAmB;AACnB,SAAG;AACD,YAAI,WAAW,KAAK;AACpB,cAAM,KAAK,WACP,YACI,KAAK,kBAAkB,KAAK,MAAM,SACnC,KAAK,MAAM,UAAU,WACpB,KAAK,MAAM,UAAU,KAAK,mBAAmB,IAC/C,OAAO,KAAK,aAAa,OAAO,KAAK,KAAK,gBAAgB,OAAO,KACnE,MAAM,KAAK,aACV,YACK,KAAK,eAAe,KAAK,WAAa,KAAK,YAAY,MACxD,KAAK,YAAY,KAAK,gBAAgB;AAC/C,YAAI,YAAY,MAAM,SAAS;AAC7B,cAAM,OAAO,SAAS,MAAO,SAAS;AACpC,gBAAI,MAAM,iBAAkB;AAAA,gBACvB;AAAA;AAEL,YAAC,QAAQ,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAC1D;AACN,eAAO;AAAA,MACX,SAAW;AAAA,IACX;AACA,aAAS,wBAAwB,WAAW;AAC1C,UAAI,WAAW,UAAU;AACzB,kBAAY,OAAO,SAAS,aAAa,WAAW,SAAS;AAC7D,aAAO,YAAY;AACjB,YAAI,OAAO;AACX,mBAAW,SAAS;AACpB,gBAAQ,KAAK,UAAQ;AAAA,UACnB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,oCAAwB,IAAI;AAC5B,kCAAsB,IAAI;AAC1B;AAAA,UACF,KAAK;AAAA,UACL,KAAK;AACH;AAAA,UACF,KAAK;AACH,gBAAI,iBAAiB,KAAK,IAAI,YAAW,EAAI;AAAA,QACrD;AACI,kBAAU,YAAY,IAAI;AAAA,MAC9B;AAAA,IACA;AACA,aAAS,mBAAmB,UAAU,MAAM,OAAO,mBAAmB;AACpE,aAAO,MAAM,SAAS,YAAY;AAChC,YAAI,WAAW;AACf,YAAI,SAAS,SAAS,YAAW,MAAO,KAAK,YAAW,GAAI;AAC1D,cACE,CAAC,sBACA,YAAY,SAAS,YAAY,aAAa,SAAS;AAExD;AAAA,QACR,WAAe,CAAC;AACV,cAAI,YAAY,QAAQ,aAAa,SAAS,MAAM;AAClD,gBAAI,OAAO,QAAQ,SAAS,OAAO,OAAO,KAAK,SAAS;AACxD,gBACE,aAAa,SAAS,QACtB,SAAS,aAAa,MAAM,MAAM;AAElC,qBAAO;AAAA,UACjB,MAAa,QAAO;AAAA,iBACP,CAAC,SAAS,uBAAuB;AACxC,kBAAQ,MAAI;AAAA,YACV,KAAK;AACH,kBAAI,CAAC,SAAS,aAAa,UAAU,EAAG;AACxC,qBAAO;AAAA,YACT,KAAK;AACH,qBAAO,SAAS,aAAa,KAAK;AAClC,kBAAI,iBAAiB,QAAQ,SAAS,aAAa,iBAAiB;AAClE;AAAA,uBAEA,SAAS,SAAS,OAClB,SAAS,aAAa,MAAM,OACzB,QAAQ,SAAS,QAAQ,OAAO,SAAS,OACtC,OACA,SAAS,SACf,SAAS,aAAa,aAAa,OAChC,QAAQ,SAAS,cAAc,OAAO,SAAS,gBAClD,SAAS,aAAa,OAAO,OAC1B,QAAQ,SAAS,QAAQ,OAAO,SAAS;AAE5C;AACF,qBAAO;AAAA,YACT,KAAK;AACH,kBAAI,SAAS,aAAa,iBAAiB,EAAG;AAC9C,qBAAO;AAAA,YACT,KAAK;AACH,qBAAO,SAAS,aAAa,KAAK;AAClC,mBACG,UAAU,QAAQ,SAAS,MAAM,OAAO,SAAS,QAChD,SAAS,aAAa,MAAM,OACzB,QAAQ,SAAS,OAAO,OAAO,SAAS,SAC3C,SAAS,aAAa,aAAa,OAChC,QAAQ,SAAS,cAAc,OAAO,SAAS,iBACpD,QACA,SAAS,aAAa,OAAO,KAC7B,CAAC,SAAS,aAAa,UAAU;AAEjC;AACF,qBAAO;AAAA,YACT;AACE,qBAAO;AAAA,UACjB;AACI,mBAAW,kBAAkB,SAAS,WAAW;AACjD,YAAI,SAAS,SAAU;AAAA,MAC3B;AACE,aAAO;AAAA,IACT;AACA,aAAS,uBAAuB,UAAU,MAAM,mBAAmB;AACjE,UAAI,OAAO,KAAM,QAAO;AACxB,aAAO,MAAM,SAAS,YAAY;AAChC,aACG,MAAM,SAAS,YACd,YAAY,SAAS,YACrB,aAAa,SAAS,SACxB,CAAC;AAED,iBAAO;AACT,mBAAW,kBAAkB,SAAS,WAAW;AACjD,YAAI,SAAS,SAAU,QAAO;AAAA,MAClC;AACE,aAAO;AAAA,IACT;AACA,aAAS,4BAA4B,UAAU,mBAAmB;AAChE,aAAO,MAAM,SAAS,YAAY;AAChC,aACG,MAAM,SAAS,YACd,YAAY,SAAS,YACrB,aAAa,SAAS,SACxB,CAAC;AAED,iBAAO;AACT,mBAAW,kBAAkB,SAAS,WAAW;AACjD,YAAI,SAAS,SAAU,QAAO;AAAA,MAClC;AACE,aAAO;AAAA,IACT;AACA,aAAS,0BAA0B,UAAU;AAC3C,aAAO,SAAS,SAAS,QAAQ,SAAS,SAAS;AAAA,IACrD;AACA,aAAS,2BAA2B,UAAU;AAC5C,aACE,SAAS,SAAS,QACjB,SAAS,SAAS,QAAQ,cAAc,SAAS,cAAc;AAAA,IAEpE;AACA,aAAS,8BAA8B,UAAU,UAAU;AACzD,UAAI,gBAAgB,SAAS;AAC7B,UAAI,SAAS,SAAS,KAAM,UAAS,cAAc;AAAA,eAC1C,SAAS,SAAS,QAAQ,cAAc,cAAc;AAC7D,iBAAQ;AAAA,WACL;AACH,YAAI,WAAW,WAAY;AACzB,mBAAQ;AACR,wBAAc,oBAAoB,oBAAoB,QAAQ;AAAA,QACpE;AACI,sBAAc,iBAAiB,oBAAoB,QAAQ;AAC3D,iBAAS,cAAc;AAAA,MAC3B;AAAA,IACA;AACA,aAAS,kBAAkB,MAAM;AAC/B,aAAO,QAAQ,MAAM,OAAO,KAAK,aAAa;AAC5C,YAAI,WAAW,KAAK;AACpB,YAAI,MAAM,YAAY,MAAM,SAAU;AACtC,YAAI,MAAM,UAAU;AAClB,qBAAW,KAAK;AAChB,cACE,QAAQ,YACR,SAAS,YACT,SAAS,YACT,SAAS,YACT,QAAQ,YACR,SAAS,YACT,QAAQ;AAER;AACF,cAAI,SAAS,YAAY,SAAS,SAAU,QAAO;AAAA,QACzD;AAAA,MACA;AACE,aAAO;AAAA,IACT;AACA,QAAI,8CAA8C;AAClD,aAAS,gDAAgD,mBAAmB;AAC1E,0BAAoB,kBAAkB;AACtC,eAAS,QAAQ,GAAG,qBAAqB;AACvC,YAAI,MAAM,kBAAkB,UAAU;AACpC,cAAI,OAAO,kBAAkB;AAC7B,cAAI,SAAS,QAAQ,SAAS,MAAM;AAClC,gBAAI,MAAM;AACR,qBAAO,kBAAkB,kBAAkB,WAAW;AACxD;AAAA,UACR;AACQ,YAAC,QAAQ,QACP,SAAS,QACT,SAAS,QACT,SAAS,QACT,QAAQ,QACR;AAAA,QACV;AACI,4BAAoB,kBAAkB;AAAA,MAC1C;AACE,aAAO;AAAA,IACT;AACA,aAAS,2BAA2B,gBAAgB;AAClD,uBAAiB,eAAe;AAChC,eAAS,QAAQ,GAAG,kBAAkB;AACpC,YAAI,MAAM,eAAe,UAAU;AACjC,cAAI,OAAO,eAAe;AAC1B,cACE,QAAQ,QACR,SAAS,QACT,SAAS,QACT,SAAS,QACT,QAAQ,MACR;AACA,gBAAI,MAAM,MAAO,QAAO;AACxB;AAAA,UACR,MAAa,CAAC,SAAS,QAAQ,SAAS,QAAS;AAAA,QACjD;AACI,yBAAiB,eAAe;AAAA,MACpC;AACE,aAAO;AAAA,IACT;AACA,aAAS,yBAAyB,MAAM,OAAO,uBAAuB;AACpE,cAAQ,kCAAkC,qBAAqB;AAC/D,cAAQ,MAAI;AAAA,QACV,KAAK;AACH,iBAAO,MAAM;AACb,cAAI,CAAC,KAAM,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAClD,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO,MAAM;AACb,cAAI,CAAC,KAAM,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAClD,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO,MAAM;AACb,cAAI,CAAC,KAAM,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAClD,iBAAO;AAAA,QACT;AACE,gBAAM,MAAM,uBAAuB,GAAG,CAAC;AAAA,MAC7C;AAAA,IACA;AACA,aAAS,yBAAyB,UAAU;AAC1C,eAAS,aAAa,SAAS,YAAY,WAAW;AACpD,iBAAS,oBAAoB,WAAW,CAAC,CAAC;AAC5C,4BAAsB,QAAQ;AAAA,IAChC;AACA,QAAI,kBAAkB,oBAAI,IAAG,GAC3B,iBAAiB,oBAAI,IAAG;AAC1B,aAAS,iBAAiB,WAAW;AACnC,aAAO,eAAe,OAAO,UAAU,cACnC,UAAU,YAAW,IACrB,MAAM,UAAU,WACd,YACA,UAAU;AAAA,IAClB;AACA,QAAI,qBAAqB,wBAAwB;AACjD,4BAAwB,IAAI;AAAA,MAC1B,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA;AAEL,aAAS,gBAAgB;AACvB,UAAI,uBAAuB,mBAAmB,EAAC,GAC7C,eAAe,gBAAe;AAChC,aAAO,wBAAwB;AAAA,IACjC;AACA,aAAS,iBAAiB,MAAM;AAC9B,UAAI,WAAW,oBAAoB,IAAI;AACvC,eAAS,YAAY,MAAM,SAAS,OAAO,WAAW,SAAS,OAC3D,mBAAmB,QAAQ,IAC3B,mBAAmB,EAAE,IAAI;AAAA,IAC/B;AACA,QAAI,iBAAiB,gBAAgB,OAAO,WAAW,OAAO;AAC9D,aAAS,aAAa,KAAK,MAAM,aAAa;AAC5C,UAAI,gBAAgB;AACpB,UAAI,iBAAiB,aAAa,OAAO,QAAQ,MAAM;AACrD,YAAI,qBACF,+CAA+C,IAAI;AACrD,6BACE,eAAe,MAAM,cAAc,qBAAqB;AAC1D,qBAAa,OAAO,gBACjB,sBAAsB,mBAAmB,cAAc;AAC1D,uBAAe,IAAI,kBAAkB,MAClC,eAAe,IAAI,kBAAkB,GACrC,MAAM,EAAE,KAAU,aAA0B,KAAU,GACvD,SAAS,cAAc,cAAc,kBAAkB,MACnD,OAAO,cAAc,cAAc,MAAM,GAC3C,qBAAqB,MAAM,QAAQ,GAAG,GACtC,oBAAoB,IAAI,GACxB,cAAc,KAAK,YAAY,IAAI;AAAA,MAC3C;AAAA,IACA;AACA,aAAS,YAAY,MAAM;AACzB,yBAAmB,EAAE,IAAI;AACzB,mBAAa,gBAAgB,MAAM,IAAI;AAAA,IACzC;AACA,aAAS,WAAW,MAAM,aAAa;AACrC,yBAAmB,EAAE,MAAM,WAAW;AACtC,mBAAa,cAAc,MAAM,WAAW;AAAA,IAC9C;AACA,aAAS,QAAQ,MAAM,IAAIQ,UAAS;AAClC,yBAAmB,EAAE,MAAM,IAAIA,QAAO;AACtC,UAAI,gBAAgB;AACpB,UAAI,iBAAiB,QAAQ,IAAI;AAC/B,YAAI,kBACF,6BACA,+CAA+C,EAAE,IACjD;AACF,oBAAY,KACRA,YAAWA,SAAQ,eACf,mBACA,mBACA;AAAA,UACEA,SAAQ;AAAA,YAEV,MACF,aAAa,OAAOA,SAAQ,eACzB,mBACC,kBACA;AAAA,UACEA,SAAQ;AAAA,YAEV,SACH,mBACC,YACA,+CAA+C,IAAI,IACnD,OACH,mBACC,YACA,+CAA+C,IAAI,IACnD;AACN,YAAI,MAAM;AACV,gBAAQ,IAAE;AAAA,UACR,KAAK;AACH,kBAAM,YAAY,IAAI;AACtB;AAAA,UACF,KAAK;AACH,kBAAM,aAAa,IAAI;AAAA,QAC/B;AACI,wBAAgB,IAAI,GAAG,MACnB,OAAO;AAAA,UACP;AAAA,YACE,KAAK;AAAA,YACL,MACE,YAAY,MAAMA,YAAWA,SAAQ,cAAc,SAAS;AAAA,YAC9D;AAAA;UAEFA;AAAA,WAEF,gBAAgB,IAAI,KAAK,IAAI,GAC7B,SAAS,cAAc,cAAc,eAAe,KACjD,YAAY,MACX,cAAc,cAAc,6BAA6B,GAAG,CAAC,KAC9D,aAAa,MACZ,cAAc,cAAc,yBAAyB,GAAG,CAAC,MACzD,KAAK,cAAc,cAAc,MAAM,GACzC,qBAAqB,IAAI,QAAQ,IAAI,GACrC,oBAAoB,EAAE,GACtB,cAAc,KAAK,YAAY,EAAE;AAAA,MACzC;AAAA,IACA;AACA,aAAS,cAAc,MAAMA,UAAS;AACpC,yBAAmB,EAAE,MAAMA,QAAO;AAClC,UAAI,gBAAgB;AACpB,UAAI,iBAAiB,MAAM;AACzB,YAAI,KAAKA,YAAW,aAAa,OAAOA,SAAQ,KAAKA,SAAQ,KAAK,UAChE,kBACE,mCACA,+CAA+C,EAAE,IACjD,cACA,+CAA+C,IAAI,IACnD,MACF,MAAM;AACR,gBAAQ,IAAE;AAAA,UACR,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,kBAAM,aAAa,IAAI;AAAA,QAC/B;AACI,YACE,CAAC,gBAAgB,IAAI,GAAG,MACtB,OAAO,OAAO,EAAE,KAAK,iBAAiB,KAAU,GAAIA,QAAO,GAC7D,gBAAgB,IAAI,KAAK,IAAI,GAC7B,SAAS,cAAc,cAAc,eAAe,IACpD;AACA,kBAAQ,IAAE;AAAA,YACR,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AAAA,YACL,KAAK;AACH,kBAAI,cAAc,cAAc,yBAAyB,GAAG,CAAC;AAC3D;AAAA,UACZ;AACM,eAAK,cAAc,cAAc,MAAM;AACvC,+BAAqB,IAAI,QAAQ,IAAI;AACrC,8BAAoB,EAAE;AACtB,wBAAc,KAAK,YAAY,EAAE;AAAA,QACvC;AAAA,MACA;AAAA,IACA;AACA,aAAS,aAAa,MAAM,YAAYA,UAAS;AAC/C,yBAAmB,EAAE,MAAM,YAAYA,QAAO;AAC9C,UAAI,gBAAgB;AACpB,UAAI,iBAAiB,MAAM;AACzB,YAAIJ,UAAS,qBAAqB,aAAa,EAAE,iBAC/C,MAAM,YAAY,IAAI;AACxB,qBAAa,cAAc;AAC3B,YAAI,WAAWA,QAAO,IAAI,GAAG;AAC7B,YAAI,CAAC,UAAU;AACb,cAAI,QAAQ,EAAE,SAAS,GAAG,SAAS,KAAI;AACvC,cACG,WAAW,cAAc;AAAA,YACxB,6BAA6B,GAAG;AAAA;AAGlC,kBAAM,UAAU;AAAA,eACb;AACH,mBAAO;AAAA,cACL,EAAE,KAAK,cAAc,MAAY,mBAAmB,WAAU;AAAA,cAC9DI;AAAA;AAEF,aAACA,WAAU,gBAAgB,IAAI,GAAG,MAChC,+BAA+B,MAAMA,QAAO;AAC9C,gBAAI,OAAQ,WAAW,cAAc,cAAc,MAAM;AACzD,gCAAoB,IAAI;AACxB,iCAAqB,MAAM,QAAQ,IAAI;AACvC,iBAAK,KAAK,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAC/C,mBAAK,SAAS;AACd,mBAAK,UAAU;AAAA,YACzB,CAAS;AACD,iBAAK,iBAAiB,QAAQ,WAAY;AACxC,oBAAM,WAAW;AAAA,YAC3B,CAAS;AACD,iBAAK,iBAAiB,SAAS,WAAY;AACzC,oBAAM,WAAW;AAAA,YAC3B,CAAS;AACD,kBAAM,WAAW;AACjB,6BAAiB,UAAU,YAAY,aAAa;AAAA,UAC5D;AACM,qBAAW;AAAA,YACT,MAAM;AAAA,YACN,UAAU;AAAA,YACV,OAAO;AAAA,YACP;AAAA;AAEF,UAAAJ,QAAO,IAAI,KAAK,QAAQ;AAAA,QAC9B;AAAA,MACA;AAAA,IACA;AACA,aAAS,cAAc,KAAKI,UAAS;AACnC,yBAAmB,EAAE,KAAKA,QAAO;AACjC,UAAI,gBAAgB;AACpB,UAAI,iBAAiB,KAAK;AACxB,YAAI,UAAU,qBAAqB,aAAa,EAAE,kBAChD,MAAM,aAAa,GAAG,GACtB,WAAW,QAAQ,IAAI,GAAG;AAC5B,qBACI,WAAW,cAAc,cAAc,yBAAyB,GAAG,CAAC,GACtE,aACI,MAAM,OAAO,EAAE,KAAU,OAAO,KAAE,GAAIA,QAAO,IAC9CA,WAAU,gBAAgB,IAAI,GAAG,MAChC,2BAA2B,KAAKA,QAAO,GACxC,WAAW,cAAc,cAAc,QAAQ,GAChD,oBAAoB,QAAQ,GAC5B,qBAAqB,UAAU,QAAQ,GAAG,GAC1C,cAAc,KAAK,YAAY,QAAQ,IACxC,WAAW;AAAA,UACV,MAAM;AAAA,UACN,UAAU;AAAA,UACV,OAAO;AAAA,UACP,OAAO;AAAA,WAET,QAAQ,IAAI,KAAK,QAAQ;AAAA,MAC/B;AAAA,IACA;AACA,aAAS,oBAAoB,KAAKA,UAAS;AACzC,yBAAmB,EAAE,KAAKA,QAAO;AACjC,UAAI,gBAAgB;AACpB,UAAI,iBAAiB,KAAK;AACxB,YAAI,UAAU,qBAAqB,aAAa,EAAE,kBAChD,MAAM,aAAa,GAAG,GACtB,WAAW,QAAQ,IAAI,GAAG;AAC5B,qBACI,WAAW,cAAc,cAAc,yBAAyB,GAAG,CAAC,GACtE,aACI,MAAM,OAAO,EAAE,KAAU,OAAO,MAAI,MAAM,SAAQ,GAAIA,QAAO,IAC9DA,WAAU,gBAAgB,IAAI,GAAG,MAChC,2BAA2B,KAAKA,QAAO,GACxC,WAAW,cAAc,cAAc,QAAQ,GAChD,oBAAoB,QAAQ,GAC5B,qBAAqB,UAAU,QAAQ,GAAG,GAC1C,cAAc,KAAK,YAAY,QAAQ,IACxC,WAAW;AAAA,UACV,MAAM;AAAA,UACN,UAAU;AAAA,UACV,OAAO;AAAA,UACP,OAAO;AAAA,WAET,QAAQ,IAAI,KAAK,QAAQ;AAAA,MAC/B;AAAA,IACA;AACA,aAAS,YAAY,MAAM,cAAc,cAAc,iBAAiB;AACtE,UAAI,4BAA4B,2BAC9B,wBAAwB,WACtB,iBAAiB,wBAAwB,IACzC;AACJ,UAAI,CAAC,yBAA0B,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACtE,cAAQ,MAAI;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO,aAAa,OAAO,aAAa,cACtC,aAAa,OAAO,aAAa,QAC7B,eAAe,YAAY,aAAa,IAAI,GAC7C,eAAe;AAAA,YACd;AAAA,UACZ,EAAY,iBACD,kBAAkB,aAAa,IAAI,YAAY,GAChD,oBACI,kBAAkB;AAAA,YAClB,MAAM;AAAA,YACN,UAAU;AAAA,YACV,OAAO;AAAA,YACP,OAAO;AAAA,aAET,aAAa,IAAI,cAAc,eAAe,IAChD,mBACA,EAAE,MAAM,QAAQ,UAAU,MAAM,OAAO,GAAG,OAAO,KAAI;AAAA,QAC3D,KAAK;AACH,cACE,iBAAiB,aAAa,OAC9B,aAAa,OAAO,aAAa,QACjC,aAAa,OAAO,aAAa,YACjC;AACA,mBAAO,YAAY,aAAa,IAAI;AACpC,gBAAI,aAAa;AAAA,cACb;AAAA,YACZ,EAAY,iBACF,eAAe,WAAW,IAAI,IAAI;AACpC,6BACI,2BACA,yBAAyB,iBAAiB,0BAC3C,eAAe;AAAA,cACd,MAAM;AAAA,cACN,UAAU;AAAA,cACV,OAAO;AAAA,cACP,OAAO,EAAE,SAAS,GAAG,SAAS,KAAI;AAAA,eAEpC,WAAW,IAAI,MAAM,YAAY,IAChC,aAAa,yBAAyB;AAAA,cACrC,6BAA6B,IAAI;AAAA,kBAEjC,CAAC,WAAW,OACV,aAAa,WAAW,YACzB,aAAa,MAAM,UAAU,IAChC,gBAAgB,IAAI,IAAI,MACpB,eAAe;AAAA,cACf,KAAK;AAAA,cACL,IAAI;AAAA,cACJ,MAAM,aAAa;AAAA,cACnB,aAAa,aAAa;AAAA,cAC1B,WAAW,aAAa;AAAA,cACxB,OAAO,aAAa;AAAA,cACpB,UAAU,aAAa;AAAA,cACvB,gBAAgB,aAAa;AAAA,eAE/B,gBAAgB,IAAI,MAAM,YAAY,GACtC,cACE;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA,aAAa;AAAA,YAC7B;AACQ,gBAAI,gBAAgB,SAAS;AAC3B,oBAAM,MAAM,uBAAuB,KAAK,EAAE,CAAC;AAC7C,mBAAO;AAAA,UACf;AACM,cAAI,gBAAgB,SAAS;AAC3B,kBAAM,MAAM,uBAAuB,KAAK,EAAE,CAAC;AAC7C,iBAAO;AAAA,QACT,KAAK;AACH,iBACG,eAAe,aAAa,OAC5B,eAAe,aAAa,KAC7B,aAAa,OAAO,gBACpB,gBACA,eAAe,OAAO,gBACtB,aAAa,OAAO,gBACd,eAAe,aAAa,YAAY,GACzC,eAAe;AAAA,YACd;AAAA,UACd,EAAc,kBACD,kBAAkB,aAAa,IAAI,YAAY,GAChD,oBACI,kBAAkB;AAAA,YAClB,MAAM;AAAA,YACN,UAAU;AAAA,YACV,OAAO;AAAA,YACP,OAAO;AAAA,aAET,aAAa,IAAI,cAAc,eAAe,IAChD,mBACA,EAAE,MAAM,QAAQ,UAAU,MAAM,OAAO,GAAG,OAAO,KAAI;AAAA,QAE7D;AACE,gBAAM,MAAM,uBAAuB,KAAK,IAAI,CAAC;AAAA,MACnD;AAAA,IACA;AACA,aAAS,YAAY,MAAM;AACzB,aAAO,WAAW,+CAA+C,IAAI,IAAI;AAAA,IAC3E;AACA,aAAS,6BAA6B,KAAK;AACzC,aAAO,4BAA4B,MAAM;AAAA,IAC3C;AACA,aAAS,4BAA4B,UAAU;AAC7C,aAAO,OAAO,CAAA,GAAI,UAAU;AAAA,QAC1B,mBAAmB,SAAS;AAAA,QAC5B,YAAY;AAAA,MAChB,CAAG;AAAA,IACH;AACA,aAAS,kBAAkB,eAAe,KAAK,cAAc,OAAO;AAClE,oBAAc,cAAc,qCAAqC,MAAM,GAAG,IACrE,MAAM,UAAU,KACf,MAAM,cAAc,cAAc,MAAM,GACzC,MAAM,UAAU,KACjB,IAAI,iBAAiB,QAAQ,WAAY;AACvC,eAAQ,MAAM,WAAW;AAAA,MACjC,CAAO,GACD,IAAI,iBAAiB,SAAS,WAAY;AACxC,eAAQ,MAAM,WAAW;AAAA,MACjC,CAAO,GACD,qBAAqB,KAAK,QAAQ,YAAY,GAC9C,oBAAoB,GAAG,GACvB,cAAc,KAAK,YAAY,GAAG;AAAA,IACxC;AACA,aAAS,aAAa,KAAK;AACzB,aAAO,WAAW,+CAA+C,GAAG,IAAI;AAAA,IAC1E;AACA,aAAS,yBAAyB,KAAK;AACrC,aAAO,kBAAkB;AAAA,IAC3B;AACA,aAAS,gBAAgB,eAAe,UAAU,OAAO;AACvD,eAAS;AACT,UAAI,SAAS,SAAS;AACpB,gBAAQ,SAAS,MAAI;AAAA,UACnB,KAAK;AACH,gBAAI,WAAW,cAAc;AAAA,cAC3B,uBACE,+CAA+C,MAAM,IAAI,IACzD;AAAA;AAEJ,gBAAI;AACF,qBACG,SAAS,WAAW,UACrB,oBAAoB,QAAQ,GAC5B;AAEJ,gBAAI,aAAa,OAAO,CAAA,GAAI,OAAO;AAAA,cACjC,aAAa,MAAM;AAAA,cACnB,mBAAmB,MAAM;AAAA,cACzB,MAAM;AAAA,cACN,YAAY;AAAA,YACtB,CAAS;AACD,wBAAY,cAAc,iBAAiB,eAAe;AAAA,cACxD;AAAA;AAEF,gCAAoB,QAAQ;AAC5B,iCAAqB,UAAU,SAAS,UAAU;AAClD,6BAAiB,UAAU,MAAM,YAAY,aAAa;AAC1D,mBAAQ,SAAS,WAAW;AAAA,UAC9B,KAAK;AACH,yBAAa,YAAY,MAAM,IAAI;AACnC,gBAAI,eAAe,cAAc;AAAA,cAC/B,6BAA6B,UAAU;AAAA;AAEzC,gBAAI;AACF,qBACG,SAAS,MAAM,WAAW,GAC1B,SAAS,WAAW,cACrB,oBAAoB,YAAY,GAChC;AAEJ,uBAAW,4BAA4B,KAAK;AAC5C,aAAC,aAAa,gBAAgB,IAAI,UAAU,MAC1C,+BAA+B,UAAU,UAAU;AACrD,4BACE,cAAc,iBAAiB,eAC/B,cAAc,MAAM;AACtB,gCAAoB,YAAY;AAChC,gBAAI,eAAe;AACnB,yBAAa,KAAK,IAAI,QAAQ,SAAU,SAAS,QAAQ;AACvD,2BAAa,SAAS;AACtB,2BAAa,UAAU;AAAA,YACjC,CAAS;AACD,iCAAqB,cAAc,QAAQ,QAAQ;AACnD,qBAAS,MAAM,WAAW;AAC1B,6BAAiB,cAAc,MAAM,YAAY,aAAa;AAC9D,mBAAQ,SAAS,WAAW;AAAA,UAC9B,KAAK;AACH,2BAAe,aAAa,MAAM,GAAG;AACrC,gBACG,aAAa,cAAc;AAAA,cAC1B,yBAAyB,YAAY;AAAA;AAGvC,qBACG,SAAS,WAAW,YACrB,oBAAoB,UAAU,GAC9B;AAEJ,uBAAW;AACX,gBAAK,aAAa,gBAAgB,IAAI,YAAY;AAChD,cAAC,WAAW,OAAO,CAAA,GAAI,KAAK,GAC1B,2BAA2B,UAAU,UAAU;AACnD,4BAAgB,cAAc,iBAAiB;AAC/C,yBAAa,cAAc,cAAc,QAAQ;AACjD,gCAAoB,UAAU;AAC9B,iCAAqB,YAAY,QAAQ,QAAQ;AACjD,0BAAc,KAAK,YAAY,UAAU;AACzC,mBAAQ,SAAS,WAAW;AAAA,UAC9B,KAAK;AACH,mBAAO;AAAA,UACT;AACE,kBAAM,MAAM,uBAAuB,KAAK,SAAS,IAAI,CAAC;AAAA,QAC9D;AAAA;AAEI,yBAAiB,SAAS,QACxB,OAAO,SAAS,MAAM,UAAU,OAC9B,WAAW,SAAS,UACrB,SAAS,MAAM,WAAW,GAC3B,iBAAiB,UAAU,MAAM,YAAY,aAAa;AAC9D,aAAO,SAAS;AAAA,IAClB;AACA,aAAS,iBAAiB,UAAU,YAAYR,OAAM;AACpD,eACM,QAAQA,MAAK;AAAA,QACb;AAAA,SAEF,OAAO,MAAM,SAAS,MAAM,MAAM,SAAS,CAAC,IAAI,MAChD,QAAQ,MACR,IAAI,GACN,IAAI,MAAM,QACV,KACA;AACA,YAAI,OAAO,MAAM,CAAC;AAClB,YAAI,KAAK,QAAQ,eAAe,WAAY,SAAQ;AAAA,iBAC3C,UAAU,KAAM;AAAA,MAC7B;AACE,cACI,MAAM,WAAW,aAAa,UAAU,MAAM,WAAW,KACvD,aAAa,MAAMA,MAAK,WAAWA,MAAK,OAAOA,OACjD,WAAW,aAAa,UAAU,WAAW,UAAU;AAAA,IAC7D;AACA,aAAS,+BAA+B,iBAAiB,cAAc;AACrE,cAAQ,gBAAgB,gBACrB,gBAAgB,cAAc,aAAa;AAC9C,cAAQ,gBAAgB,mBACrB,gBAAgB,iBAAiB,aAAa;AACjD,cAAQ,gBAAgB,UAAU,gBAAgB,QAAQ,aAAa;AAAA,IACzE;AACA,aAAS,2BAA2B,aAAa,cAAc;AAC7D,cAAQ,YAAY,gBACjB,YAAY,cAAc,aAAa;AAC1C,cAAQ,YAAY,mBACjB,YAAY,iBAAiB,aAAa;AAC7C,cAAQ,YAAY,cACjB,YAAY,YAAY,aAAa;AAAA,IAC1C;AACA,QAAI,YAAY;AAChB,aAAS,4BAA4B,MAAM,cAAc,eAAe;AACtE,UAAI,SAAS,WAAW;AACtB,YAAI,QAAQ,oBAAI,IAAG;AACnB,YAAI,SAAU,YAAY,oBAAI;AAC9B,eAAO,IAAI,eAAe,KAAK;AAAA,MACnC;AACI,QAAC,SAAS,WACP,QAAQ,OAAO,IAAI,aAAa,GACjC,UAAW,QAAQ,oBAAI,IAAG,GAAK,OAAO,IAAI,eAAe,KAAK;AAClE,UAAI,MAAM,IAAI,IAAI,EAAG,QAAO;AAC5B,YAAM,IAAI,MAAM,IAAI;AACpB,sBAAgB,cAAc,qBAAqB,IAAI;AACvD,WAAK,SAAS,GAAG,SAAS,cAAc,QAAQ,UAAU;AACxD,YAAI,OAAO,cAAc,MAAM;AAC/B,YACE,EACE,KAAK,uBAAuB,KAC5B,KAAK,mBAAmB,KACvB,WAAW,QAAQ,iBAAiB,KAAK,aAAa,KAAK,MAE9D,iCAAiC,KAAK,cACtC;AACA,cAAI,UAAU,KAAK,aAAa,YAAY,KAAK;AACjD,oBAAU,OAAO;AACjB,cAAI,WAAW,MAAM,IAAI,OAAO;AAChC,qBAAW,SAAS,KAAK,IAAI,IAAI,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC;AAAA,QAChE;AAAA,MACA;AACE,aAAO;AAAA,IACT;AACA,aAAS,eAAe,eAAe,MAAM,UAAU;AACrD,sBAAgB,cAAc,iBAAiB;AAC/C,oBAAc,KAAK;AAAA,QACjB;AAAA,QACA,YAAY,OAAO,cAAc,cAAc,cAAc,IAAI;AAAA;IAErE;AACA,aAAS,oBAAoB,MAAM,OAAO,aAAa;AACrD,UAAI,MAAM,eAAe,QAAQ,MAAM,SAAU,QAAO;AACxD,cAAQ,MAAI;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,cACE,aAAa,OAAO,MAAM,cAC1B,aAAa,OAAO,MAAM,QAC1B,OAAO,MAAM;AAEb;AACF,iBAAO;AAAA,QACT,KAAK;AACH,cACE,aAAa,OAAO,MAAM,OAC1B,aAAa,OAAO,MAAM,QAC1B,OAAO,MAAM,QACb,MAAM,UACN,MAAM;AAEN;AACF,kBAAQ,MAAM,KAAG;AAAA,YACf,KAAK;AACH,qBACG,OAAO,MAAM,UACd,aAAa,OAAO,MAAM,cAAc,QAAQ;AAAA,YAEpD;AACE,qBAAO;AAAA,UACjB;AAAA,QACI,KAAK;AACH,cACE,MAAM,SACN,eAAe,OAAO,MAAM,SAC5B,aAAa,OAAO,MAAM,SAC1B,CAAC,MAAM,UACP,CAAC,MAAM,WACP,MAAM,OACN,aAAa,OAAO,MAAM;AAE1B,mBAAO;AAAA,MACf;AACE,aAAO;AAAA,IACT;AACA,aAAS,gBAAgB,UAAU;AACjC,aAAO,iBAAiB,SAAS,QAAQ,OAAO,SAAS,MAAM,UAAU,KACrE,QACA;AAAA,IACN;AACA,aAAS,gBAAgB,OAAO,eAAe,UAAU,OAAO;AAC9D,UACE,iBAAiB,SAAS,SACzB,aAAa,OAAO,MAAM,SACzB,UAAO,WAAW,MAAM,KAAK,EAAE,YACjC,OAAO,SAAS,MAAM,UAAU,IAChC;AACA,YAAI,SAAS,SAAS,UAAU;AAC9B,cAAI,MAAM,YAAY,MAAM,IAAI,GAC9B,WAAW,cAAc;AAAA,YACvB,6BAA6B,GAAG;AAAA;AAEpC,cAAI,UAAU;AACZ,4BAAgB,SAAS;AACzB,qBAAS,iBACP,aAAa,OAAO,iBACpB,eAAe,OAAO,cAAc,SACnC,MAAM,SACN,QAAQ,YAAY,KAAK,KAAK,GAC/B,cAAc,KAAK,OAAO,KAAK;AACjC,qBAAS,MAAM,WAAW;AAC1B,qBAAS,WAAW;AACpB,gCAAoB,QAAQ;AAC5B;AAAA,UACR;AACM,qBAAW,cAAc,iBAAiB;AAC1C,kBAAQ,4BAA4B,KAAK;AACzC,WAAC,MAAM,gBAAgB,IAAI,GAAG,MAC5B,+BAA+B,OAAO,GAAG;AAC3C,qBAAW,SAAS,cAAc,MAAM;AACxC,8BAAoB,QAAQ;AAC5B,cAAI,eAAe;AACnB,uBAAa,KAAK,IAAI,QAAQ,SAAU,SAAS,QAAQ;AACvD,yBAAa,SAAS;AACtB,yBAAa,UAAU;AAAA,UAC/B,CAAO;AACD,+BAAqB,UAAU,QAAQ,KAAK;AAC5C,mBAAS,WAAW;AAAA,QAC1B;AACI,iBAAS,MAAM,gBAAgB,MAAM,cAAc,oBAAI;AACvD,cAAM,YAAY,IAAI,UAAU,aAAa;AAC7C,SAAC,gBAAgB,SAAS,MAAM,YAC9B,OAAO,SAAS,MAAM,UAAU,OAC/B,MAAM,SACN,WAAW,YAAY,KAAK,KAAK,GAClC,cAAc,iBAAiB,QAAQ,QAAQ,GAC/C,cAAc,iBAAiB,SAAS,QAAQ;AAAA,MACtD;AAAA,IACA;AACA,QAAI,4BAA4B;AAChC,aAAS,uBAAuB,OAAO,eAAe;AACpD,YAAM,eACJ,MAAM,MAAM,SACZ,2BAA2B,OAAO,MAAM,WAAW;AACrD,aAAO,IAAI,MAAM,SAAS,IAAI,MAAM,WAChC,SAAU,QAAQ;AAChB,YAAI,kBAAkB,WAAW,WAAY;AAC3C,gBAAM,eACJ,2BAA2B,OAAO,MAAM,WAAW;AACrD,cAAI,MAAM,WAAW;AACnB,gBAAI,YAAY,MAAM;AACtB,kBAAM,YAAY;AAClB,sBAAS;AAAA,UACrB;AAAA,QACA,GAAW,MAAM,aAAa;AACtB,YAAI,MAAM,YACR,MAAM,8BACL,4BAA4B,QAAQ;AACvC,YAAI,WAAW;AAAA,UACb,WAAY;AACV,kBAAM,mBAAmB;AACzB,gBACE,MAAM,MAAM,UACX,MAAM,eACL,2BAA2B,OAAO,MAAM,WAAW,GACrD,MAAM,YACN;AACA,kBAAI,YAAY,MAAM;AACtB,oBAAM,YAAY;AAClB,wBAAS;AAAA,YACvB;AAAA,UACA;AAAA,WACW,MAAM,WAAW,4BAA4B,KAAK,OACjD;AAAA;AAEJ,cAAM,YAAY;AAClB,eAAO,WAAY;AACjB,gBAAM,YAAY;AAClB,uBAAa,eAAe;AAC5B,uBAAa,QAAQ;AAAA,QAC/B;AAAA,MACA,IACM;AAAA,IACN;AACA,aAAS,cAAc;AACrB,WAAK;AACL,UAAI,MAAM,KAAK,UAAU,MAAM,KAAK,YAAY,CAAC,KAAK;AACpD,YAAI,KAAK,YAAa,4BAA2B,MAAM,KAAK,WAAW;AAAA,iBAC9D,KAAK,WAAW;AACvB,cAAI,YAAY,KAAK;AACrB,eAAK,YAAY;AACjB,oBAAS;AAAA,QACf;AAAA;AAAA,IACA;AACA,QAAI,oBAAoB;AACxB,aAAS,2BAA2B,OAAO,WAAW;AACpD,YAAM,cAAc;AACpB,eAAS,MAAM,cACZ,MAAM,SACN,oBAAoB,oBAAI,IAAG,GAC5B,UAAU,QAAQ,0BAA0B,KAAK,GAChD,oBAAoB,MACrB,YAAY,KAAK,KAAK;AAAA,IAC1B;AACA,aAAS,yBAAyBA,OAAM,UAAU;AAChD,UAAI,EAAE,SAAS,MAAM,UAAU,IAAI;AACjC,YAAI,cAAc,kBAAkB,IAAIA,KAAI;AAC5C,YAAI,YAAa,KAAI,OAAO,YAAY,IAAI,IAAI;AAAA,aAC3C;AACH,wBAAc,oBAAI,IAAG;AACrB,4BAAkB,IAAIA,OAAM,WAAW;AACvC,mBACM,QAAQA,MAAK;AAAA,YACb;AAAA,aAEF,IAAI,GACN,IAAI,MAAM,QACV,KACA;AACA,gBAAI,OAAO,MAAM,CAAC;AAClB,gBACE,WAAW,KAAK,YAChB,cAAc,KAAK,aAAa,OAAO;AAEvC,0BAAY,IAAI,KAAK,QAAQ,YAAY,IAAI,GAAI,OAAO;AAAA,UAClE;AACM,kBAAQ,YAAY,IAAI,MAAM,IAAI;AAAA,QACxC;AACI,gBAAQ,SAAS;AACjB,eAAO,MAAM,aAAa,iBAAiB;AAC3C,YAAI,YAAY,IAAI,IAAI,KAAK;AAC7B,cAAM,QAAQ,YAAY,IAAI,MAAM,KAAK;AACzC,oBAAY,IAAI,MAAM,KAAK;AAC3B,aAAK;AACL,eAAO,YAAY,KAAK,IAAI;AAC5B,cAAM,iBAAiB,QAAQ,IAAI;AACnC,cAAM,iBAAiB,SAAS,IAAI;AACpC,YACI,EAAE,WAAW,aAAa,OAAO,EAAE,WAAW,KAC5CA,QAAO,MAAMA,MAAK,WAAWA,MAAK,OAAOA,OAC3CA,MAAK,aAAa,OAAOA,MAAK,UAAU;AAC5C,iBAAS,MAAM,WAAW;AAAA,MAC9B;AAAA,IACA;AACA,QAAI,wBAAwB;AAAA,MAC1B,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,cAAc;AAAA;AAEhB,aAAS,cACP,eACA,KACA,SACA,kBACA,iBACA,eACA,oBACA,8BACA,WACA;AACA,WAAK,MAAM;AACX,WAAK,gBAAgB;AACrB,WAAK,YAAY,KAAK,UAAU,KAAK,kBAAkB;AACvD,WAAK,gBAAgB;AACrB,WAAK,eACH,KAAK,OACL,KAAK,iBACL,KAAK,UACL,KAAK,sBACH;AACJ,WAAK,mBAAmB;AACxB,WAAK,kBAAkB,cAAc,EAAE;AACvC,WAAK,iBACH,KAAK,sBACL,KAAK,6BACL,KAAK,eACL,KAAK,YACL,KAAK,cACL,KAAK,iBACL,KAAK,eACH;AACJ,WAAK,gBAAgB,cAAc,CAAC;AACpC,WAAK,gBAAgB,cAAc,IAAI;AACvC,WAAK,mBAAmB;AACxB,WAAK,kBAAkB;AACvB,WAAK,gBAAgB;AACrB,WAAK,qBAAqB;AAC1B,WAAK,cAAc;AACnB,WAAK,mBAAmB;AACxB,WAAK,YAAY;AACjB,WAAK,wBAAwB,oBAAI,IAAG;AAAA,IACtC;AACA,aAAS,gBACP,eACA,KACA,SACA,iBACA,oBACA,cACA,kBACA,WACA,iBACA,eACA,oBACA,8BACA;AACA,sBAAgB,IAAI;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAEF,YAAM;AACN,eAAO,iBAAiB,OAAO;AAC/B,qBAAe,qBAAqB,GAAG,MAAM,MAAM,GAAG;AACtD,oBAAc,UAAU;AACxB,mBAAa,YAAY;AACzB,YAAM,YAAW;AACjB,UAAI;AACJ,oBAAc,cAAc;AAC5B,UAAI;AACJ,mBAAa,gBAAgB;AAAA,QAC3B,SAAS;AAAA,QACT,cAAc;AAAA,QACd,OAAO;AAAA;AAET,4BAAsB,YAAY;AAClC,aAAO;AAAA,IACT;AACA,aAAS,qBAAqB,iBAAiB;AAC7C,UAAI,CAAC,gBAAiB,QAAO;AAC7B,wBAAkB;AAClB,aAAO;AAAA,IACT;AACA,aAAS,oBACP,WACA,MACA,SACA,WACA,iBACA,UACA;AACA,wBAAkB,qBAAqB,eAAe;AACtD,eAAS,UAAU,UACd,UAAU,UAAU,kBACpB,UAAU,iBAAiB;AAChC,kBAAY,aAAa,IAAI;AAC7B,gBAAU,UAAU,EAAE,QAAgB;AACtC,iBAAW,WAAW,WAAW,OAAO;AACxC,eAAS,aAAa,UAAU,WAAW;AAC3C,gBAAU,cAAc,WAAW,WAAW,IAAI;AAClD,eAAS,YACN,sBAAsB,SAAS,WAAW,IAAI,GAC/C,oBAAoB,SAAS,WAAW,IAAI;AAAA,IAChD;AACA,aAAS,kBAAkB,OAAO,WAAW;AAC3C,cAAQ,MAAM;AACd,UAAI,SAAS,SAAS,SAAS,MAAM,YAAY;AAC/C,YAAI,IAAI,MAAM;AACd,cAAM,YAAY,MAAM,KAAK,IAAI,YAAY,IAAI;AAAA,MACrD;AAAA,IACA;AACA,aAAS,2BAA2B,OAAO,WAAW;AACpD,wBAAkB,OAAO,SAAS;AAClC,OAAC,QAAQ,MAAM,cAAc,kBAAkB,OAAO,SAAS;AAAA,IACjE;AACA,aAAS,2BAA2B,OAAO;AACzC,UAAI,OAAO,MAAM,OAAO,OAAO,MAAM,KAAK;AACxC,YAAIA,QAAO,+BAA+B,OAAO,QAAQ;AACzD,iBAASA,SAAQ,sBAAsBA,OAAM,OAAO,QAAQ;AAC5D,mCAA2B,OAAO,QAAQ;AAAA,MAC9C;AAAA,IACA;AACA,aAAS,kCAAkC,OAAO;AAChD,UAAI,OAAO,MAAM,OAAO,OAAO,MAAM,KAAK;AACxC,YAAI,OAAO,kBAAiB;AAC5B,eAAO,gCAAgC,IAAI;AAC3C,YAAIA,QAAO,+BAA+B,OAAO,IAAI;AACrD,iBAASA,SAAQ,sBAAsBA,OAAM,OAAO,IAAI;AACxD,mCAA2B,OAAO,IAAI;AAAA,MAC1C;AAAA,IACA;AACA,QAAI,WAAW;AACf,aAAS,sBACP,cACA,kBACA,WACA,aACA;AACA,UAAI,iBAAiB,qBAAqB;AAC1C,2BAAqB,IAAI;AACzB,UAAI,mBAAmB,wBAAwB;AAC/C,UAAI;AACF,QAAC,wBAAwB,IAAI,GAC3B,cAAc,cAAc,kBAAkB,WAAW,WAAW;AAAA,MAC1E,UAAG;AACC,QAAC,wBAAwB,IAAI,kBAC1B,qBAAqB,IAAI;AAAA,MAChC;AAAA,IACA;AACA,aAAS,wBACP,cACA,kBACA,WACA,aACA;AACA,UAAI,iBAAiB,qBAAqB;AAC1C,2BAAqB,IAAI;AACzB,UAAI,mBAAmB,wBAAwB;AAC/C,UAAI;AACF,QAAC,wBAAwB,IAAI,GAC3B,cAAc,cAAc,kBAAkB,WAAW,WAAW;AAAA,MAC1E,UAAG;AACC,QAAC,wBAAwB,IAAI,kBAC1B,qBAAqB,IAAI;AAAA,MAChC;AAAA,IACA;AACA,aAAS,cACP,cACA,kBACA,iBACA,aACA;AACA,UAAI,UAAU;AACZ,YAAI,YAAY,0BAA0B,WAAW;AACrD,YAAI,SAAS;AACX;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,aAEA,uBAAuB,cAAc,WAAW;AAAA,iBAElD;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACR;AAEM,sBAAY,gBAAe;AAAA,iBAE1B,uBAAuB,cAAc,WAAW,GACjD,mBAAmB,KACjB,KAAK,yBAAyB,QAAQ,YAAY,GACpD;AACA,iBAAO,SAAS,aAAa;AAC3B,gBAAI,QAAQ,oBAAoB,SAAS;AACzC,gBAAI,SAAS;AACX,sBAAQ,MAAM,KAAG;AAAA,gBACf,KAAK;AACH,0BAAQ,MAAM;AACd,sBAAI,MAAM,QAAQ,cAAc,cAAc;AAC5C,wBAAI,QAAQ,wBAAwB,MAAM,YAAY;AACtD,wBAAI,MAAM,OAAO;AACf,0BAAIA,QAAO;AACX,sBAAAA,MAAK,gBAAgB;AACrB,2BAAKA,MAAK,kBAAkB,GAAG,SAAS;AACtC,4BAAI,OAAO,KAAM,KAAK,MAAM,KAAK;AACjC,wBAAAA,MAAK,cAAc,CAAC,KAAK;AACzB,iCAAS,CAAC;AAAA,sBAC9B;AACkB,4CAAsB,KAAK;AAC3B,6BAAO,mBAAmB,OACtB,qCAAqC,IAAG,IAAK,KAC/C,8BAA8B,CAAK;AAAA,oBACvD;AAAA,kBACA;AACc;AAAA,gBACF,KAAK;AAAA,gBACL,KAAK;AACH,kBAACA,QAAO,+BAA+B,OAAO,CAAC,GAC7C,SAASA,SAAQ,sBAAsBA,OAAM,OAAO,CAAC,GACrD,gBAAe,GACf,2BAA2B,OAAO,CAAC;AAAA,cACnD;AACQ,oBAAQ,0BAA0B,WAAW;AAC7C,qBAAS,SACP;AAAA,cACE;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAEJ,gBAAI,UAAU,UAAW;AACzB,wBAAY;AAAA,UACpB;AACM,mBAAS,aAAa,YAAY,gBAAe;AAAA,QACvD;AACM;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;MAER;AAAA,IACA;AACA,aAAS,0BAA0B,aAAa;AAC9C,oBAAc,eAAe,WAAW;AACxC,aAAO,2BAA2B,WAAW;AAAA,IAC/C;AACA,QAAI,oBAAoB;AACxB,aAAS,2BAA2B,YAAY;AAC9C,0BAAoB;AACpB,mBAAa,2BAA2B,UAAU;AAClD,UAAI,SAAS,YAAY;AACvB,YAAI,iBAAiB,uBAAuB,UAAU;AACtD,YAAI,SAAS,eAAgB,cAAa;AAAA,aACrC;AACH,cAAI,MAAM,eAAe;AACzB,cAAI,OAAO,KAAK;AACd,yBAAa,6BAA6B,cAAc;AACxD,gBAAI,SAAS,WAAY,QAAO;AAChC,yBAAa;AAAA,UACrB,WAAiB,OAAO,KAAK;AACrB,yBAAa,6BAA6B,cAAc;AACxD,gBAAI,SAAS,WAAY,QAAO;AAChC,yBAAa;AAAA,UACrB,WAAiB,MAAM,KAAK;AACpB,gBAAI,eAAe,UAAU,QAAQ,cAAc;AACjD,qBAAO,MAAM,eAAe,MACxB,eAAe,UAAU,gBACzB;AACN,yBAAa;AAAA,UACrB,MAAa,oBAAmB,eAAe,aAAa;AAAA,QAC5D;AAAA,MACA;AACE,0BAAoB;AACpB,aAAO;AAAA,IACT;AACA,aAAS,iBAAiB,cAAc;AACtC,cAAQ,cAAY;AAAA,QAClB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,kBAAQ,wBAAuB,GAAE;AAAA,YAC/B,KAAK;AACH,qBAAO;AAAA,YACT,KAAK;AACH,qBAAO;AAAA,YACT,KAAK;AAAA,YACL,KAAK;AACH,qBAAO;AAAA,YACT,KAAK;AACH,qBAAO;AAAA,YACT;AACE,qBAAO;AAAA,UACjB;AAAA,QACI;AACE,iBAAO;AAAA,MACb;AAAA,IACA;AACA,QAAI,4BAA4B,OAC9B,cAAc,MACd,aAAa,MACb,cAAc,MACd,iBAAiB,oBAAI,IAAG,GACxB,wBAAwB,oBAAI,IAAG,GAC/B,iCAAiC,CAAA,GACjC,2BACE,sPAAsP;AAAA,MACpP;AAAA;AAEN,aAAS,uBAAuB,cAAc,aAAa;AACzD,cAAQ,cAAY;AAAA,QAClB,KAAK;AAAA,QACL,KAAK;AACH,wBAAc;AACd;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,uBAAa;AACb;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,wBAAc;AACd;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,yBAAe,OAAO,YAAY,SAAS;AAC3C;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,gCAAsB,OAAO,YAAY,SAAS;AAAA,MACxD;AAAA,IACA;AACA,aAAS,kDACP,qBACA,WACA,cACA,kBACA,iBACA,aACA;AACA,UACE,SAAS,uBACT,oBAAoB,gBAAgB;AAEpC,eACG,sBAAsB;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,kBAAkB,CAAC,eAAe;AAAA,WAEpC,SAAS,cACL,YAAY,oBAAoB,SAAS,GAC3C,SAAS,aAAa,2BAA2B,SAAS,IAC5D;AAEJ,0BAAoB,oBAAoB;AACxC,kBAAY,oBAAoB;AAChC,eAAS,mBACP,OAAO,UAAU,QAAQ,eAAe,KACxC,UAAU,KAAK,eAAe;AAChC,aAAO;AAAA,IACT;AACA,aAAS,uBACP,WACA,cACA,kBACA,iBACA,aACA;AACA,cAAQ,cAAY;AAAA,QAClB,KAAK;AACH,iBACG,cAAc;AAAA,YACb;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,aAEF;AAAA,QAEJ,KAAK;AACH,iBACG,aAAa;AAAA,YACZ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,aAEF;AAAA,QAEJ,KAAK;AACH,iBACG,cAAc;AAAA,YACb;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,aAEF;AAAA,QAEJ,KAAK;AACH,cAAI,YAAY,YAAY;AAC5B,yBAAe;AAAA,YACb;AAAA,YACA;AAAA,cACE,eAAe,IAAI,SAAS,KAAK;AAAA,cACjC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACV;AAAA;AAEM,iBAAO;AAAA,QACT,KAAK;AACH,iBACG,YAAY,YAAY,WACzB,sBAAsB;AAAA,YACpB;AAAA,YACA;AAAA,cACE,sBAAsB,IAAI,SAAS,KAAK;AAAA,cACxC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACZ;AAAA,aAEQ;AAAA,MAER;AACE,aAAO;AAAA,IACT;AACA,aAAS,+BAA+B,cAAc;AACpD,UAAI,aAAa,2BAA2B,aAAa,MAAM;AAC/D,UAAI,SAAS,YAAY;AACvB,YAAI,iBAAiB,uBAAuB,UAAU;AACtD,YAAI,SAAS;AACX,cAAM,aAAa,eAAe,KAAM,OAAO,YAAa;AAC1D,gBACI,aAAa,6BAA6B,cAAc,GAC1D,SAAS,YACT;AACA,2BAAa,YAAY;AACzB,8BAAgB,aAAa,UAAU,WAAY;AACjD,kDAAkC,cAAc;AAAA,cAC5D,CAAW;AACD;AAAA,YACV;AAAA,UACA,WAAiB,OAAO,YAAY;AAC5B,gBACI,aAAa,6BAA6B,cAAc,GAC1D,SAAS,YACT;AACA,2BAAa,YAAY;AACzB,8BAAgB,aAAa,UAAU,WAAY;AACjD,kDAAkC,cAAc;AAAA,cAC5D,CAAW;AACD;AAAA,YACV;AAAA,UACA,WACQ,MAAM,cACN,eAAe,UAAU,QAAQ,cAAc,cAC/C;AACA,yBAAa,YACX,MAAM,eAAe,MACjB,eAAe,UAAU,gBACzB;AACN;AAAA,UACR;AAAA;AAAA,MACA;AACE,mBAAa,YAAY;AAAA,IAC3B;AACA,aAAS,mCAAmC,aAAa;AACvD,UAAI,SAAS,YAAY,UAAW,QAAO;AAC3C,eACM,mBAAmB,YAAY,kBACnC,IAAI,iBAAiB,UAErB;AACA,YAAI,gBAAgB,0BAA0B,YAAY,WAAW;AACrE,YAAI,SAAS,eAAe;AAC1B,0BAAgB,YAAY;AAC5B,cAAI,mBAAmB,IAAI,cAAc;AAAA,YACvC,cAAc;AAAA,YACd;AAAA;AAEF,kCAAwB;AACxB,wBAAc,OAAO,cAAc,gBAAgB;AACnD,kCAAwB;AAAA,QAC9B;AACM,iBACG,mBAAmB,oBAAoB,aAAa,GACrD,SAAS,oBACP,2BAA2B,gBAAgB,GAC5C,YAAY,YAAY,eACzB;AAEJ,yBAAiB,MAAK;AAAA,MAC1B;AACE,aAAO;AAAA,IACT;AACA,aAAS,wCAAwC,aAAa,KAAK,KAAK;AACtE,yCAAmC,WAAW,KAAK,IAAI,OAAO,GAAG;AAAA,IACnE;AACA,aAAS,wBAAwB;AAC/B,kCAA4B;AAC5B,eAAS,eACP,mCAAmC,WAAW,MAC7C,cAAc;AACjB,eAAS,cACP,mCAAmC,UAAU,MAC5C,aAAa;AAChB,eAAS,eACP,mCAAmC,WAAW,MAC7C,cAAc;AACjB,qBAAe,QAAQ,uCAAuC;AAC9D,4BAAsB,QAAQ,uCAAuC;AAAA,IACvE;AACA,aAAS,4BAA4B,aAAa,WAAW;AAC3D,kBAAY,cAAc,cACtB,YAAY,YAAY,MAC1B,8BACI,4BAA4B,MAC9B,UAAU;AAAA,QACR,UAAU;AAAA,QACV;AAAA,MACR;AAAA,IACA;AACA,QAAI,2BAA2B;AAC/B,aAAS,4BAA4B,oBAAoB;AACvD,mCAA6B,uBACzB,2BAA2B,oBAC7B,UAAU;AAAA,QACR,UAAU;AAAA,QACV,WAAY;AACV,uCAA6B,uBAC1B,2BAA2B;AAC9B,mBAAS,IAAI,GAAG,IAAI,mBAAmB,QAAQ,KAAK,GAAG;AACrD,gBAAI,OAAO,mBAAmB,CAAC,GAC7B,oBAAoB,mBAAmB,IAAI,CAAC,GAC5C,WAAW,mBAAmB,IAAI,CAAC;AACrC,gBAAI,eAAe,OAAO;AACxB,kBAAI,SAAS,2BAA2B,qBAAqB,IAAI;AAC/D;AAAA,kBACG;AACP,gBAAI,WAAW,oBAAoB,IAAI;AACvC,qBAAS,aACN,mBAAmB,OAAO,GAAG,CAAC,GAC9B,KAAK,GACN;AAAA,cACE;AAAA,cACA;AAAA,gBACE,SAAS;AAAA,gBACT,MAAM;AAAA,gBACN,QAAQ,KAAK;AAAA,gBACb,QAAQ;AAAA;cAEV;AAAA,cACA;AAAA,YACd;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AACA,aAAS,iBAAiB,WAAW;AACnC,eAAS,QAAQ,aAAa;AAC5B,eAAO,4BAA4B,aAAa,SAAS;AAAA,MAC7D;AACE,eAAS,eAAe,4BAA4B,aAAa,SAAS;AAC1E,eAAS,cAAc,4BAA4B,YAAY,SAAS;AACxE,eAAS,eAAe,4BAA4B,aAAa,SAAS;AAC1E,qBAAe,QAAQ,OAAO;AAC9B,4BAAsB,QAAQ,OAAO;AACrC,eAAS,IAAI,GAAG,IAAI,+BAA+B,QAAQ,KAAK;AAC9D,YAAI,eAAe,+BAA+B,CAAC;AACnD,qBAAa,cAAc,cAAc,aAAa,YAAY;AAAA,MACtE;AACE,aAEE,IAAI,+BAA+B,WACjC,IAAI,+BAA+B,CAAC,GAAI,SAAS,EAAE;AAGrD,uCAA+B,CAAC,GAC9B,SAAS,EAAE,aAAa,+BAA+B,MAAK;AAChE,WAAK,UAAU,iBAAiB,WAAW;AAC3C,UAAI,QAAQ;AACV,aAAK,eAAe,GAAG,eAAe,EAAE,QAAQ,gBAAgB,GAAG;AACjE,cAAI,OAAO,EAAE,YAAY,GACvB,oBAAoB,EAAE,eAAe,CAAC,GACtC,YAAY,KAAK,gBAAgB,KAAK;AACxC,cAAI,eAAe,OAAO;AACxB,yBAAa,4BAA4B,CAAC;AAAA,mBACnC,WAAW;AAClB,gBAAI,SAAS;AACb,gBAAI,qBAAqB,kBAAkB,aAAa,YAAY;AAClE,kBACI,OAAO,mBACR,YAAY,kBAAkB,gBAAgB,KAAK;AAEpD,yBAAS,UAAU;AAAA,mBAChB;AACH,oBAAI,SAAS,2BAA2B,IAAI,EAAG;AAAA,cAC3D;AAAA,gBACa,UAAS,UAAU;AACxB,2BAAe,OAAO,SACjB,EAAE,eAAe,CAAC,IAAI,UACtB,EAAE,OAAO,cAAc,CAAC,GAAI,gBAAgB;AACjD,wCAA4B,CAAC;AAAA,UACrC;AAAA,QACA;AAAA,IACA;AACA,aAAS,sCAAsC;AAC7C,eAAS,eAAe,OAAO;AAC7B,cAAM,gBACJ,uBAAuB,MAAM,QAC7B,MAAM,UAAU;AAAA,UACd,SAAS,WAAY;AACnB,mBAAO,IAAI,QAAQ,SAAU,SAAS;AACpC,qBAAQ,iBAAiB;AAAA,YACrC,CAAW;AAAA,UACX;AAAA,UACQ,YAAY;AAAA,UACZ,QAAQ;AAAA,QAChB,CAAO;AAAA,MACP;AACE,eAAS,yBAAyB;AAChC,iBAAS,mBAAmB,eAAc,GAAK,iBAAiB;AAChE,uBAAe,WAAW,qBAAqB,EAAE;AAAA,MACrD;AACE,eAAS,sBAAsB;AAC7B,YAAI,CAAC,eAAe,CAAC,WAAW,YAAY;AAC1C,cAAI,eAAe,WAAW;AAC9B,0BACE,QAAQ,aAAa,OACrB,WAAW,SAAS,aAAa,KAAK;AAAA,YACpC,OAAO,aAAa,SAAQ;AAAA,YAC5B,MAAM;AAAA,YACN,SAAS;AAAA,UACnB,CAAS;AAAA,QACT;AAAA,MACA;AACE,UAAI,aAAa,OAAO,YAAY;AAClC,YAAI,cAAc,OAChB,iBAAiB;AACnB,mBAAW,iBAAiB,YAAY,cAAc;AACtD,mBAAW,iBAAiB,mBAAmB,sBAAsB;AACrE,mBAAW,iBAAiB,iBAAiB,sBAAsB;AACnE,mBAAW,qBAAqB,GAAG;AACnC,eAAO,WAAY;AACjB,wBAAc;AACd,qBAAW,oBAAoB,YAAY,cAAc;AACzD,qBAAW,oBAAoB,mBAAmB,sBAAsB;AACxE,qBAAW,oBAAoB,iBAAiB,sBAAsB;AACtE,mBAAS,mBAAmB,eAAc,GAAK,iBAAiB;AAAA,QACtE;AAAA,MACA;AAAA,IACA;AACA,aAAS,aAAa,cAAc;AAClC,WAAK,gBAAgB;AAAA,IACvB;AACA,0BAAsB,UAAU,SAAS,aAAa,UAAU,SAC9D,SAAU,UAAU;AAClB,UAAIA,QAAO,KAAK;AAChB,UAAI,SAASA,MAAM,OAAM,MAAM,uBAAuB,GAAG,CAAC;AAC1D,UAAI,UAAUA,MAAK,SACjB,OAAO,kBAAiB;AAC1B,0BAAoB,SAAS,MAAM,UAAUA,OAAM,MAAM,IAAI;AAAA,IACjE;AACA,0BAAsB,UAAU,UAAU,aAAa,UAAU,UAC/D,WAAY;AACV,UAAIA,QAAO,KAAK;AAChB,UAAI,SAASA,OAAM;AACjB,aAAK,gBAAgB;AACrB,YAAI,YAAYA,MAAK;AACrB,4BAAoBA,MAAK,SAAS,GAAG,MAAMA,OAAM,MAAM,IAAI;AAC3D,wBAAe;AACf,kBAAU,4BAA4B,IAAI;AAAA,MAChD;AAAA,IACA;AACA,aAAS,sBAAsB,cAAc;AAC3C,WAAK,gBAAgB;AAAA,IACvB;AACA,0BAAsB,UAAU,6BAA6B,SAAU,QAAQ;AAC7E,UAAI,QAAQ;AACV,YAAI,iBAAiB,sBAAqB;AAC1C,iBAAS,EAAE,WAAW,MAAM,QAAgB,UAAU,eAAc;AACpE,iBACM,IAAI,GACR,IAAI,+BAA+B,UACnC,MAAM,kBACN,iBAAiB,+BAA+B,CAAC,EAAE,UACnD,IACD;AACD,uCAA+B,OAAO,GAAG,GAAG,MAAM;AAClD,cAAM,KAAK,+BAA+B,MAAM;AAAA,MACpD;AAAA,IACA;AACA,QAAI,mDAAmDN,OAAM;AAC7D,QACE,aACA;AAEA,YAAM;AAAA,QACJ;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,QACN;AAAA;AAEA,4BAAwB,cAAc,SAAU,oBAAoB;AAClE,UAAI,QAAQ,mBAAmB;AAC/B,UAAI,WAAW,OAAO;AACpB,YAAI,eAAe,OAAO,mBAAmB;AAC3C,gBAAM,MAAM,uBAAuB,GAAG,CAAC;AACzC,6BAAqB,OAAO,KAAK,kBAAkB,EAAE,KAAK,GAAG;AAC7D,cAAM,MAAM,uBAAuB,KAAK,kBAAkB,CAAC;AAAA,MAC/D;AACE,2BAAqB,8BAA8B,KAAK;AACxD,2BACE,SAAS,qBACL,yBAAyB,kBAAkB,IAC3C;AACN,2BACE,SAAS,qBAAqB,OAAO,mBAAmB;AAC1D,aAAO;AAAA,IACT;AACA,QAAI,+BAA+B;AAAA,MACjC,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,qBAAqB;AAAA,MACrB,sBAAsB;AAAA,MACtB,mBAAmB;AAAA;AAErB,QAAI,gBAAgB,OAAO,gCAAgC;AACzD,UAAI,0BAA0B;AAC9B,UACE,CAAC,wBAAwB,cACzB,wBAAwB;AAExB,YAAI;AACF,UAAC,aAAa,wBAAwB;AAAA,YACpC;AAAA,aAEC,eAAe;AAAA,QACxB,SAAa,KAAK;AAAA,QAAA;AAAA,IAClB;AACA,8BAAA,aAAqB,SAAU,WAAWc,UAAS;AACjD,UAAI,CAAC,iBAAiB,SAAS,EAAG,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACzE,UAAI,eAAe,OACjB,mBAAmB,IACnB,kBAAkB,wBAClB,gBAAgB,sBAChB,qBAAqB;AACvB,eAASA,YACP,WAAWA,aACV,SAAOA,SAAQ,wBAAwB,eAAe,OACvD,WAAWA,SAAQ,qBAChB,mBAAmBA,SAAQ,mBAC9B,WAAWA,SAAQ,oBAChB,kBAAkBA,SAAQ,kBAC7B,WAAWA,SAAQ,kBAAkB,gBAAgBA,SAAQ,gBAC7D,WAAWA,SAAQ,uBAChB,qBAAqBA,SAAQ;AAClC,MAAAA,WAAU;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAEF,gBAAU,4BAA4B,IAAIA,SAAQ;AAClD,iCAA2B,SAAS;AACpC,aAAO,IAAI,aAAaA,QAAO;AAAA,IACjC;AACA,8BAAA,cAAsB,SAAU,WAAW,iBAAiBA,UAAS;AACnE,UAAI,CAAC,iBAAiB,SAAS,EAAG,OAAM,MAAM,uBAAuB,GAAG,CAAC;AACzE,UAAI,eAAe,OACjB,mBAAmB,IACnB,kBAAkB,wBAClB,gBAAgB,sBAChB,qBAAqB,2BACrB,YAAY;AACd,eAASA,YACP,WAAWA,aACV,SAAOA,SAAQ,wBAAwB,eAAe,OACvD,WAAWA,SAAQ,qBAChB,mBAAmBA,SAAQ,mBAC9B,WAAWA,SAAQ,oBAChB,kBAAkBA,SAAQ,kBAC7B,WAAWA,SAAQ,kBAAkB,gBAAgBA,SAAQ,gBAC7D,WAAWA,SAAQ,uBAChB,qBAAqBA,SAAQ,qBAChC,WAAWA,SAAQ,cAAc,YAAYA,SAAQ;AACvD,wBAAkB;AAAA,QAChB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQA,WAAUA,WAAU;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAEF,sBAAgB,UAAU,qBAAqB,IAAI;AACnD,MAAAA,WAAU,gBAAgB;AAC1B,qBAAe,kBAAiB;AAChC,qBAAe,gCAAgC,YAAY;AAC3D,yBAAmB,aAAa,YAAY;AAC5C,uBAAiB,WAAW;AAC5B,oBAAcA,UAAS,kBAAkB,YAAY;AACrD,MAAAA,WAAU;AACV,sBAAgB,QAAQ,QAAQA;AAChC,wBAAkB,iBAAiBA,QAAO;AAC1C,4BAAsB,eAAe;AACrC,gBAAU,4BAA4B,IAAI,gBAAgB;AAC1D,iCAA2B,SAAS;AACpC,aAAO,IAAI,sBAAsB,eAAe;AAAA,IAClD;AACA,8BAAA,UAAkB;;;;;;;AC9qflB,aAAS,WAAW;AAElB,UACE,OAAO,mCAAmC,eAC1C,OAAO,+BAA+B,aAAa,YACnD;AACA;AAAA,MAAA;AAYF,UAAI;AAEF,uCAA+B,SAAS,QAAQ;AAAA,MAAA,SACzC,KAAK;AAGZ,gBAAQ,MAAM,GAAG;AAAA,MAAA;AAAA,IAErB;AAE2C;AAGzC,eAAA;AACAC,eAAA,UAAiBpB,iCAAA;AAAA,IACnB;;;;ACrBO,WAAS,YAA8B,KAAc,KAAmC;AAC7F,WAAO,OAAO,QAAQ,YAAY,QAAQ,QAAQ,OAAO;AAAA,EAC3D;AC4MO,WAAS,eAAe,IAA6B;AAC1D,QAAI,CAAC,MAAM,EAAE,cAAc,SAAU,QAAO;AAE5C,QAAI;AAGF,YAAM,UAAU,GAAG,QAAQ,YAAA;AAC3B,YAAM,WAAW,YAAY;AAC7B,YAAM;AAAA;AAAA,QAEJ,YACA,YAAY,WACZ,YAAY,cACZ,YAAY;AAAA,QAEX,YAAY,OAAO,GAAG,aAAa,MAAM;AAAA,QAE1C,GAAG,aAAa,MAAM,MAAM,YAC5B,GAAG,aAAa,MAAM,MAAM,UAC5B,GAAG,aAAa,MAAM,MAAM,aAC5B,GAAG,aAAa,MAAM,MAAM,cAC5B,GAAG,aAAa,MAAM,MAAM,WAC5B,GAAG,aAAa,MAAM,MAAM,YAC5B,GAAG,aAAa,MAAM,MAAM,SAC5B,GAAG,aAAa,MAAM,MAAM;AAAA,QAE5B,GAAG,aAAa,iBAAiB,MAAM;AAAA,QAEvC,GAAG,aAAa,SAAS;AAAA,QAExB,GAAG,aAAa,UAAU,KAAK,SAAS,GAAG,aAAa,UAAU,KAAK,MAAM,EAAE,KAAK;AAAA;AAEvF,UAAI,CAAC,mBAAmB;AACtB,eAAO;AAAA,MACT;AAGA,YAAM,mBAAmB,CAAC,WAAmB,WAA0B;AACrE,YAAI,UAAU;AACZ,gBAAM,aAAa;AAAA,YACjB,KAAK,GAAG;AAAA,YACR,IAAI,GAAG,MAAM;AAAA,YACb,OAAO,GAAG,aAAa;AAAA,YACvB,OAAO;AAAA,YACP,QAAQ,UAAU;AAAA,UAAA;AAEpB,kBAAQ,MAAM,yCAAyC,UAAU;AAAA,QACnE;AAAA,MACF;AAIA,UAAK,GAAyB,aAAa,MAAM;AAC/C,yBAAiB,YAAY,oBAAoB;AACjD,eAAO;AAAA,MACT;AACA,UAAI,GAAG,aAAa,eAAe,MAAM,QAAQ;AAC/C,yBAAiB,iBAAiB,uBAAuB;AACzD,eAAO;AAAA,MACT;AAGA,UAAI;AACF,YAAI,IAAiC;AACrC,eAAO,GAAG;AACR,cAAI,aAAa,eAAe,EAAE,OAAO;AACvC,6BAAiB,SAAS,mBAAmB;AAC7C,mBAAO;AAAA,UACT;AACA,gBAAM,OAAoB,aAAa,UAAU,EAAE,gBAAgB;AACnE,cACE,aAAa,UACT,EAAE,kBAAkB,gBAAgB,aAAa,KAAK,OAAO,QAC7D;AAAA,QACR;AAAA,MACF,SAAS,OAAO;AAEd,gBAAQ,KAAK,0CAA0C,KAAK;AAAA,MAC9D;AAKA,YAAM,aAAa,GAAG,aAAa,SAAS;AAC5C,UAAI,YAAY,YAAY;AAC1B,eAAO;AAAA,MACT;AAEA,UAAI;AACJ,UAAI;AACF,gBAAQ,OAAO,iBAAiB,EAAE;AAAA,MACpC,SAAS,OAAO;AAEd,yBAAiB,kBAAkB,8BAA8B;AACjE,gBAAQ,KAAK,kDAAkD,KAAK;AACpE,eAAO;AAAA,MACT;AAMA,UAAI,MAAM,YAAY,QAAQ;AAC5B,yBAAiB,WAAW,iBAAiB;AAC7C,eAAO;AAAA,MACT;AACA,UAAI,MAAM,kBAAkB,QAAQ;AAClC,yBAAiB,kBAAkB,wBAAwB;AAC3D,eAAO;AAAA,MACT;AAGA,UAAI;AACJ,UAAI;AACF,eAAO,GAAG,sBAAA;AAAA,MACZ,SAAS,OAAO;AACd,yBAAiB,iBAAiB,6BAA6B;AAC/D,gBAAQ,KAAK,iDAAiD,KAAK;AACnE,eAAO;AAAA,MACT;AAEA,UAAI,KAAK,SAAS,KAAK,KAAK,UAAU,GAAG;AACvC,yBAAiB,cAAc,SAAS,KAAK,KAAK,YAAY,KAAK,MAAM,EAAE;AAC3E,eAAO;AAAA,MACT;AAQA,UAAI;AACF,YAAI,OAAuB;AAC3B,eAAO,QAAQ,SAAS,SAAS,MAAM;AACrC,gBAAM,WAAW,KAAK,YAAA;AACtB,gBAAM,SACJ,KAAK,kBACJ,oBAAoB,aAAc,SAAwB,OAAO;AAEpE,cAAI,CAAC,OAAQ;AAEb,cAAI;AACJ,cAAI;AACJ,cAAI;AACF,0BAAc,OAAO,iBAAiB,MAAM;AAC5C,iBAAK,OAAO,sBAAA;AAAA,UACd,QAAQ;AAEN,mBAAO;AACP;AAAA,UACF;AAEA,cAAI,YAAY,aAAa,YAAY,YAAY,aAAa,QAAQ;AAGxE,kBAAM,sBACJ,KAAK,QAAQ,GAAG,QAChB,KAAK,OAAO,GAAG,SACf,KAAK,SAAS,GAAG,OACjB,KAAK,MAAM,GAAG;AAEhB,gBAAI,UAAU;AAEZ,kBAAI,qBAAqB;AACvB,iCAAiB,qBAAqB,kCAAkC;AACxE,uBAAO;AAAA,cACT;AAAA,YACF,OAAO;AAEL,kBAAI,qBAAqB;AACvB,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAAA,MACF,SAAS,OAAO;AAEd,gBAAQ,KAAK,6CAA6C,KAAK;AAAA,MACjE;AAQA,UAAI;AACF,YAAI,OAAoB,GAAG,YAAA;AAC3B,eAAO,gBAAgB,YAAY;AACjC,gBAAM,OAAgB,KAAK;AAC3B,cAAI;AACJ,cAAI;AACF,uBAAW,KAAK,sBAAA;AAAA,UAClB,QAAQ;AAEN;AAAA,UACF;AACA,cAAI,SAAS,SAAS,KAAK,SAAS,UAAU,EAAG,QAAO;AACxD,iBAAO,KAAK,YAAA;AAAA,QACd;AAAA,MACF,SAAS,OAAO;AAEd,gBAAQ,KAAK,+CAA+C,KAAK;AAAA,MACnE;AAEA,aAAO;AAAA,IACT,SAAS,OAAO;AAEd,cAAQ,MAAM,sCAAsC,KAAK;AACzD,aAAO;AAAA,IACT;AAAA,EACF;ACrZO,QAAM,cAAN,MAAM,YAAW;AAAA;AAAA,IAWd,cAAc;AATd,4DAAuC,IAAA;AACvC,mEAAkD,QAAA;AAClD,6DAAuC,IAAA;AACvC,gEAAsD,IAAA;AACtD,uCAAqB;AACrB,gDAA8B;AAC9B,0CAAuB;AAAA,IAK/B;AAAA,IAEA,OAAO,cAA0B;AAC/B,UAAI,CAAC,YAAW,UAAU;AACxB,oBAAW,WAAW,IAAI,YAAA;AAAA,MAC5B;AACA,aAAO,YAAW;AAAA,IACpB;AAAA;AAAA;AAAA;AAAA,IAKQ,iBAAiB,SAA0B;AAEjD,UAAI,QAAQ,IAAI;AAGd,YAAI,SAAS,iBAAiB,IAAI,IAAI,OAAO,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG;AACxE,iBAAO,IAAI,IAAI,OAAO,QAAQ,EAAE,CAAC;AAAA,QACnC;AAAA,MACF;AAGA,YAAM,OAAiB,CAAA;AACvB,UAAI,UAA0B;AAE9B,aAAO,WAAW,YAAY,SAAS,QAAQ,QAAQ,eAAe;AACpE,YAAI,WAAW,QAAQ,QAAQ,YAAA;AAE/B,YAAI,QAAQ,IAAI;AACd,sBAAY,IAAI,IAAI,OAAO,QAAQ,EAAE,CAAC;AACtC,eAAK,QAAQ,QAAQ;AACrB;AAAA,QACF,OAAO;AACL,gBAAM,SAAS,QAAQ;AACvB,gBAAM,WAAW,MAAM,KAAK,OAAO,QAAQ,EAAE,OAAO,CAACC,OAAMA,GAAE,YAAY,QAAS,OAAO;AACzF,cAAI,SAAS,SAAS,GAAG;AACvB,kBAAM,QAAQ,SAAS,QAAQ,OAAO,IAAI;AAC1C,wBAAY,gBAAgB,KAAK;AAAA,UACnC;AAAA,QACF;AAEA,aAAK,QAAQ,QAAQ;AACrB,kBAAU,QAAQ;AAAA,MACpB;AAEA,aAAO,KAAK,KAAK,KAAK;AAAA,IACxB;AAAA;AAAA;AAAA;AAAA,IAKQ,oBAAoB,SAAkB,UAAsC;AAClF,YAAM,WAAW,CAAC,KAAoB,SAAiB,QAAuB;AAC5E,YAAI,CAAC,IAAK,QAAO;AACjB,cAAM,aAAa,IAAI,KAAA,EAAO,QAAQ,QAAQ,GAAG;AACjD,eAAO,WAAW,SAAS,SAAS,WAAW,UAAU,GAAG,MAAM,IAAI;AAAA,MACxE;AAEA,aAAO;AAAA,QACL,SAAS,QAAQ;AAAA,QACjB,IAAI,QAAQ,MAAM;AAAA,QAClB,aAAa,SAAS,QAAQ,WAAW;AAAA,QACzC,MAAM,QAAQ,aAAa,MAAM;AAAA,QACjC,MAAM,QAAQ,aAAa,MAAM;AAAA,QACjC,WAAW,QAAQ,aAAa,YAAY;AAAA,QAC5C,MAAM,QAAQ,aAAa,MAAM;AAAA,QACjC,MAAM,QAAQ,aAAa,MAAM;AAAA,QACjC;AAAA,QACA,cAAc,KAAK;AAAA,MAAA;AAAA,IAEvB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMQ,oBAAoB,MAAqB,MAA6B;AAC5E,UAAI,SAAS,KAAM,QAAO;AAC1B,UAAI,CAAC,QAAQ,CAAC,KAAM,QAAO;AAG3B,YAAM,SAAS,IAAI;AAAA,QACjB,KACG,cACA,MAAM,KAAK,EACX,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AAAA,MAAA;AAE/B,YAAM,SAAS,IAAI;AAAA,QACjB,KACG,cACA,MAAM,KAAK,EACX,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AAAA,MAAA;AAG/B,UAAI,OAAO,SAAS,KAAK,OAAO,SAAS,EAAG,QAAO;AACnD,UAAI,OAAO,SAAS,KAAK,OAAO,SAAS,EAAG,QAAO;AAEnD,YAAM,eAAe,IAAI,IAAI,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC,CAAC;AACrE,YAAM,4BAAY,IAAI,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5C,aAAO,aAAa,OAAO,MAAM;AAAA,IACnC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMQ,mBAAmB,SAAkB,aAA0C;;AAErF,UAAI,QAAQ,YAAY,YAAY,SAAS;AAC3C,eAAO;AAAA,MACT;AAGA,UAAI,YAAY,MAAM,QAAQ,OAAO,YAAY,IAAI;AACnD,eAAO;AAAA,MACT;AAGA,UAAI,YAAY,QAAQ,QAAQ,aAAa,MAAM,MAAM,YAAY,MAAM;AACzE,eAAO;AAAA,MACT;AAGA,UAAI,YAAY,aAAa,QAAQ,aAAa,YAAY,MAAM,YAAY,WAAW;AACzF,eAAO;AAAA,MACT;AAEA,UAAI,YAAY,QAAQ,QAAQ,aAAa,MAAM,MAAM,YAAY,MAAM;AACzE,eAAO;AAAA,MACT;AAGA,UAAI,YAAY,QAAQ,YAAY,YAAY,KAAK;AACnD,cAAM,cAAc,QAAQ,aAAa,MAAM;AAC/C,YAAI,gBAAgB,YAAY,MAAM;AACpC,iBAAO;AAAA,QACT;AAAA,MACF;AAGA,UAAI,YAAY,QAAQ,QAAQ,aAAa,MAAM,MAAM,YAAY,MAAM;AACzE,eAAO;AAAA,MACT;AAGA,YAAM,gBAAc,aAAQ,gBAAR,mBAAqB,OAAO,QAAQ,QAAQ,KAAK,UAAU,GAAG,SAAQ;AAC1F,UAAI,YAAY,eAAe,aAAa;AAC1C,cAAM,aAAa,KAAK,oBAAoB,YAAY,aAAa,WAAW;AAChF,YAAI,aAAa,KAAK;AACpB,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA,IAMQ,kBAAkB,aAAqD;AAE7E,UAAI,QAAQ,YAAY,QAAQ,YAAA;AAEhC,UAAI,YAAY,IAAI;AAClB,gBAAQ,IAAI,IAAI,OAAO,YAAY,EAAE,CAAC;AAAA,MACxC,WAAW,YAAY,MAAM;AAC3B,gBAAQ,GAAG,YAAY,QAAQ,aAAa,UAAU,YAAY,IAAI;AAAA,MACxE;AAEA,UAAI;AACF,cAAM,aAAa,SAAS,iBAAiB,KAAK;AAGlD,cAAM,gBAAgB,KAAK,IAAI,WAAW,QAAQ,GAAI;AAEtD,iBAAS,IAAI,GAAG,IAAI,eAAe,KAAK;AACtC,gBAAM,OAAO,WAAW,CAAC;AACzB,cAAI,gBAAgB,eAAe,KAAK,mBAAmB,MAAM,WAAW,GAAG;AAC7E,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF,SAAS,GAAG;AACV,gBAAQ,KAAK,mCAAmC,CAAC;AAAA,MACnD;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKQ,gBAAgB,OAAe,aAAmD;AACxF,cAAQ,IAAI,8CAA8C,KAAK,EAAE;AAGjE,YAAM,kBAAkB,KAAK,WAAW,IAAI,KAAK;AACjD,YAAM,6BAA6B,mBAAmB,SAAS,SAAS,eAAe;AAGvF,YAAM,WAAW,YAAY;AAC7B,UAAI,UAAU;AACZ,YAAI;AACF,gBAAM,UAAU,SAAS,cAAc,QAAQ;AAC/C,cAAI,WAAW,mBAAmB,aAAa;AAG7C,gBAAI,oBAAoB,WAAW,4BAA4B;AAC7D,sBAAQ;AAAA,gBACN,qEAAqE,QAAQ;AAAA,cAAA;AAE/E,qBAAO;AAAA,gBACL,SAAS;AAAA,gBACT,gBAAgB;AAAA,gBAChB,kBAAkB;AAAA,gBAClB,gBAAgB;AAAA,gBAChB,iBAAiB;AAAA,cAAA;AAAA,YAErB;AAEA,gBAAI,KAAK,mBAAmB,SAAS,WAAW,GAAG;AACjD,sBAAQ,IAAI,gDAAgD,QAAQ,EAAE;AAGtE,oBAAM,eAAe,KAAK,kBAAkB,IAAI,OAAO;AACvD,kBAAI,iBAAiB,UAAa,iBAAiB,OAAO;AACxD,uBAAO;AAAA,kBACL,SAAS;AAAA,kBACT,gBAAgB;AAAA,kBAChB,kBAAkB;AAAA,kBAClB,gBAAgB;AAAA,kBAChB,iBAAiB;AAAA,gBAAA;AAAA,cAErB;AAGA,mBAAK,WAAW,IAAI,OAAO,OAAO;AAClC,qBAAO;AAAA,gBACL,SAAS;AAAA,gBACT,kBAAkB;AAAA,cAAA;AAAA,YAEtB;AAIA,gBAAI,8BAA8B,QAAQ,YAAY,YAAY,SAAS;AACzE,sBAAQ,IAAI,6DAA6D,QAAQ,EAAE;AACnF,qBAAO;AAAA,gBACL,SAAS;AAAA,gBACT,gBAAgB;AAAA,gBAChB,kBAAkB;AAAA,gBAClB,gBAAgB;AAAA,gBAChB,iBAAiB;AAAA,cAAA;AAAA,YAErB;AAAA,UACF;AAAA,QACF,SAAS,GAAG;AACV,kBAAQ,KAAK,0CAA0C,CAAC;AAAA,QAC1D;AAAA,MACF;AAIA,iBAAW,CAAC,KAAK,IAAI,KAAK,KAAK,WAAW,WAAW;AACnD,YACE,gBAAgB,eAChB,SAAS,SAAS,IAAI,KACtB,KAAK,mBAAmB,MAAM,WAAW,GACzC;AACA,kBAAQ,IAAI,2DAA2D,GAAG,EAAE;AAC5E,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,gBAAgB;AAAA,YAChB,kBAAkB;AAAA,YAClB,gBAAgB;AAAA,YAChB,iBAAiB;AAAA,UAAA;AAAA,QAErB;AAAA,MACF;AAGA,YAAM,kBAAkB,KAAK,kBAAkB,WAAW;AAC1D,UAAI,iBAAiB;AACnB,gBAAQ,IAAI,+DAA+D;AAC3E,eAAO;AAAA,UACL,SAAS;AAAA,UACT,gBAAgB;AAAA,UAChB,kBAAkB;AAAA,UAClB,iBAAiB;AAAA;AAAA,QAAA;AAAA,MAErB;AAGA,cAAQ,IAAI,iCAAiC,KAAK,yBAAyB;AAC3E,aAAO;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,MAAA;AAAA,IAErB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOQ,sBAAsB,eAAoC;AAChE,YAAM,SAAS,SAAS,iBAAiB,SAAS,MAAM,WAAW,cAAc;AAAA,QAC/E,YAAY,CAACoB,UAAe;AAC1B,cAAIA,iBAAgB,aAAa;AAE/B,gBAAIA,MAAK,iBAAiB,QAAQA,MAAK,YAAY,QAAQ;AACzD,oBAAM,QAAQ,OAAO,iBAAiBA,KAAI;AAC1C,oBAAM,kBAAkB,MAAM,aAAa,WAAW,MAAM,aAAa;AACzE,oBAAM,gBAAgB,MAAM,YAAY;AAExC,kBAAI,eAAe;AACjB,uBAAO,WAAW;AAAA,cACpB;AAEA,kBAAI,CAAC,iBAAiB;AACpB,oBAAI,SAASA,MAAK;AAClB,oBAAI,oBAAoB;AACxB,uBAAO,UAAU,WAAW,SAAS,MAAM;AACzC,wBAAM,cAAc,OAAO,iBAAiB,MAAM;AAClD,sBAAI,YAAY,aAAa,WAAW,YAAY,aAAa,UAAU;AACzE,wCAAoB;AACpB;AAAA,kBACF;AACA,2BAAS,OAAO;AAAA,gBAClB;AACA,oBAAI,CAAC,mBAAmB;AACtB,yBAAO,WAAW;AAAA,gBACpB;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,iBAAO,WAAW;AAAA,QACpB;AAAA,MAAA,CACD;AAED,UAAI,OAAoB,OAAO,SAAA;AAC/B,UAAI,WAAW;AAEf,aAAO,MAAM;AACX,YAAI,gBAAgB,WAAW,eAAe,IAAI,GAAG;AACnD,cAAI,SAAS,eAAe;AAC1B,mBAAO;AAAA,UACT;AACA;AAAA,QACF;AACA,eAAO,OAAO,SAAA;AAAA,MAChB;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKQ,uBAAuB,OAAiC;AAC9D,YAAM,cAAc,KAAK,eAAe,IAAI,KAAK;AACjD,UAAI,CAAC,aAAa;AAEhB,gBAAQ,KAAK,yCAAyC,KAAK,uBAAuB;AAClF,eAAO,EAAE,SAAS,KAAA;AAAA,MACpB;AAGA,UAAI,YAAY,iBAAiB,KAAK,cAAc;AAClD,gBAAQ;AAAA,UACN,qCAAqC,YAAY,YAAY,yCAAyC,KAAK,YAAY;AAAA,QAAA;AAAA,MAE3H;AAGA,YAAM,iBAAiB,KAAK,WAAW,IAAI,KAAK;AAChD,UAAI,kBAAkB,0BAA0B,aAAa;AAE3D,YAAI,CAAC,SAAS,SAAS,cAAc,GAAG;AACtC,kBAAQ,IAAI,iCAAiC,KAAK,uBAAuB;AACzE,iBAAO,KAAK,gBAAgB,OAAO,WAAW;AAAA,QAChD;AAIA,cAAM,qBAAqB,KAAK,sBAAsB,cAAc;AACpE,YAAI,uBAAuB,MAAM,uBAAuB,OAAO;AAC7D,kBAAQ;AAAA,YACN,2CAA2C,KAAK,oBAAoB,kBAAkB;AAAA,UAAA;AAExF,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,gBAAgB;AAAA,YAChB,kBAAkB;AAAA,YAClB,gBAAgB;AAAA,YAChB,iBAAiB;AAAA,UAAA;AAAA,QAErB;AAEA,YAAI,KAAK,mBAAmB,gBAAgB,WAAW,GAAG;AACxD,iBAAO,EAAE,SAAS,KAAA;AAAA,QACpB;AAEA,gBAAQ,IAAI,iCAAiC,KAAK,4BAA4B;AAAA,MAChF;AAGA,aAAO,KAAK,gBAAgB,OAAO,WAAW;AAAA,IAChD;AAAA;AAAA;AAAA;AAAA,IAKA,cAGE;AACA,aAAO;AAAA,QACL,WAAW,MAAM,KAAK,KAAK,YAAY,SAAS;AAAA,QAChD,cAAc,MAAM,KAAK,KAAK,eAAe,SAAS;AAAA,MAAA;AAAA,IAE1D;AAAA;AAAA;AAAA;AAAA,IAKA,YAAY,OAGH;AACP,UAAI,CAAC,MAAO;AAEZ,UAAI;AACF,YAAI,MAAM,WAAW;AACnB,eAAK,cAAc,IAAI,IAAI,MAAM,SAAS;AAAA,QAC5C;AACA,YAAI,MAAM,cAAc;AACtB,eAAK,iBAAiB,IAAI,IAAI,MAAM,YAAY;AAAA,QAClD;AAEA,YAAI,KAAK,YAAY,OAAO,KAAK,KAAK,eAAe,OAAO,GAAG;AAC7D,eAAK,YAAY;AACjB,kBAAQ;AAAA,YACN,yBAAyB,KAAK,YAAY,IAAI,kBAAkB,KAAK,eAAe,IAAI;AAAA,UAAA;AAAA,QAE5F;AAAA,MACF,SAAS,GAAG;AACV,gBAAQ,KAAK,wCAAwC,CAAC;AAAA,MACxD;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,4BAAsD;AACpD,UAAI,KAAK,oBAAoB;AAC3B,gBAAQ,KAAK,qEAAqE;AAClF,eAAO,CAAA;AAAA,MACT;AAEA,UAAI;AACF,aAAK,qBAAqB;AAC1B,aAAK,WAAA;AAGL,cAAM,SAAS,SAAS,iBAAiB,SAAS,MAAM,WAAW,cAAc;AAAA,UAC/E,YAAY,CAACA,UAAe;AAC1B,gBAAIA,iBAAgB,aAAa;AAC/B,kBAAIA,MAAK,iBAAiB,QAAQA,MAAK,YAAY,QAAQ;AACzD,sBAAM,QAAQ,OAAO,iBAAiBA,KAAI;AAC1C,sBAAM,kBAAkB,MAAM,aAAa,WAAW,MAAM,aAAa;AACzE,sBAAM,gBAAgB,MAAM,YAAY;AAExC,oBAAI,sBAAsB,WAAW;AAErC,oBAAI,CAAC,iBAAiB;AACpB,sBAAI,SAASA,MAAK;AAClB,sBAAI,oBAAoB;AAExB,yBAAO,UAAU,WAAW,SAAS,MAAM;AACzC,0BAAM,cAAc,OAAO,iBAAiB,MAAM;AAClD,wBAAI,YAAY,aAAa,WAAW,YAAY,aAAa,UAAU;AACzE,0CAAoB;AACpB;AAAA,oBACF;AACA,6BAAS,OAAO;AAAA,kBAClB;AAEA,sBAAI,CAAC,kBAAmB,QAAO,WAAW;AAAA,gBAC5C;AAAA,cACF;AAAA,YACF;AACA,mBAAO,WAAW;AAAA,UACpB;AAAA,QAAA,CACD;AAED,YAAI,OAAoB,OAAO,SAAA;AAC/B,YAAI,iBAAiB;AACrB,cAAM,kBAA4C,CAAA;AAElD,eAAO,MAAM;AACX,cAAI,gBAAgB,aAAa;AAE/B,kBAAM,WAAW,KAAK;AAAA,cACpB;AAAA,YAAA;AAGF,kBAAM,oBACJ,KAAK,UAAU,SAAS,gBAAgB,KAAK,KAAK,UAAU,SAAS,WAAW;AAElF,kBAAM,kBACJ,aAAa,QAAQ,OAAQ,KAAqB,YAAY;AAEhE,kBAAM,oBACJ,YAAY,qBAAqB,mBAAmB,eAAe,IAAI;AAGzE,gBAAI,mBAAmB;AACrB,mBAAK,WAAW,IAAI,gBAAgB,IAAI;AACxC,mBAAK,kBAAkB,IAAI,MAAM,cAAc;AAE/C,oBAAM,WAAW,KAAK,iBAAiB,IAAI;AAC3C,mBAAK,YAAY,IAAI,gBAAgB,QAAQ;AAE7C,oBAAM,cAAc,KAAK,oBAAoB,MAAM,QAAQ;AAC3D,mBAAK,eAAe,IAAI,gBAAgB,WAAW;AAEnD,8BAAgB,KAAK,CAAC,gBAAgB,IAAI,CAAC;AAC3C;AAAA,YACF;AAAA,UACF;AAEA,iBAAO,OAAO,SAAA;AAAA,QAChB;AAEA,aAAK,YAAY;AACjB,aAAK;AAEL,gBAAQ,IAAI,wBAAwB,cAAc,sBAAsB,KAAK,YAAY,GAAG;AAE5F,eAAO;AAAA,MACT,UAAA;AACE,aAAK,qBAAqB;AAAA,MAC5B;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAMQ,sBAAsB,SAK5B;AACA,YAAM,OAAO,QAAQ,sBAAA;AACrB,aAAO;AAAA,QACL,GAAG,KAAK,MAAM,KAAK,IAAI;AAAA,QACvB,GAAG,KAAK,MAAM,KAAK,GAAG;AAAA,QACtB,GAAG,KAAK,MAAM,KAAK,KAAK;AAAA,QACxB,GAAG,KAAK,MAAM,KAAK,MAAM;AAAA,MAAA;AAAA,IAE7B;AAAA;AAAA;AAAA;AAAA;AAAA,IAMQ,kBAAkB,SAA+B;AACvD,YAAM,QAAQ,OAAO,iBAAiB,OAAO;AAG7C,YAAM,WAAW,MAAM;AACvB,WACG,aAAa,WACZ,aAAa,cACb,aAAa,cACb,aAAa,aACf,MAAM,WAAW,QACjB;AACA,eAAO;AAAA,MACT;AAGA,YAAM,UAAU,WAAW,MAAM,OAAO;AACxC,UAAI,CAAC,MAAM,OAAO,KAAK,UAAU,GAAG;AAClC,eAAO;AAAA,MACT;AAGA,UAAI,MAAM,aAAa,MAAM,cAAc,QAAQ;AACjD,eAAO;AAAA,MACT;AAGA,UAAI,MAAM,UAAU,MAAM,WAAW,QAAQ;AAC3C,eAAO;AAAA,MACT;AAGA,YAAM,aAAa,MAAM;AACzB,UAAI,eAAe,WAAW,SAAS,WAAW,KAAK,WAAW,SAAS,SAAS,IAAI;AACtF,eAAO;AAAA,MACT;AAGA,UAAI,MAAM,cAAc,WAAW;AACjC,eAAO;AAAA,MACT;AAGA,YAAM,UAAU,MAAM;AACtB,UACE,YACC,QAAQ,SAAS,QAAQ,KAAK,QAAQ,SAAS,OAAO,KAAK,QAAQ,SAAS,OAAO,IACpF;AACA,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA,IAMQ,sBAAsB,SAA8B;AAC1D,UAAI,UAA8B;AAClC,YAAM,mBAAsF,CAAA;AAG5F,aAAO,WAAW,YAAY,SAAS,QAAQ,QAAQ,eAAe;AACpE,cAAM,QAAQ,OAAO,iBAAiB,OAAO;AAG7C,YAAI,KAAK,kBAAkB,OAAO,GAAG;AAEnC,cAAI,SAAS;AACb,cAAI,MAAM,WAAW,QAAQ;AAC3B,kBAAM,eAAe,SAAS,MAAM,QAAQ,EAAE;AAC9C,gBAAI,CAAC,MAAM,YAAY,GAAG;AACxB,uBAAS;AAAA,YACX;AAAA,UACF;AAGA,cAAI,WAAW;AACf,cAAI,QAAQ,eAAe;AACzB,kBAAM,WAAW,MAAM,KAAK,QAAQ,cAAc,QAAQ;AAC1D,uBAAW,SAAS,QAAQ,OAAO;AAAA,UACrC;AAEA,2BAAiB,KAAK,EAAE,SAAS,SAAS,QAAQ,UAAU;AAAA,QAC9D;AAEA,kBAAU,QAAQ;AAAA,MACpB;AAIA,UAAI,aAAa;AAEjB,eAAS,IAAI,iBAAiB,SAAS,GAAG,KAAK,GAAG,KAAK;AACrD,cAAM,MAAM,iBAAiB,CAAC;AAG9B,sBAAc,IAAI,SAAS,MAAQ,IAAI;AAAA,MACzC;AAGA,UAAI,QAAQ,eAAe;AACzB,cAAM,WAAW,MAAM,KAAK,QAAQ,cAAc,QAAQ;AAC1D,cAAM,gBAAgB,SAAS,QAAQ,OAAO;AAC9C,sBAAc;AAAA,MAChB;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,kBAA0B;AAExB,WAAK,0BAAA;AAGL,YAAM,QAAQ,SAAS,gBAAgB,UAAU,IAAI;AAMrD,iBAAW,CAAC,OAAO,OAAO,KAAK,KAAK,WAAW,WAAW;AACxD,YAAI,mBAAmB,aAAa;AAElC,gBAAM,WAAW,KAAK,YAAY,IAAI,KAAK;AAC3C,cAAI,UAAU;AACZ,gBAAI;AAEF,oBAAM,YAAY,MAAM,cAAc,MAAM,KAAK;AACjD,oBAAM,eAAe,UAAU,cAAc,QAAQ;AACrD,kBAAI,cAAc;AAEhB,6BAAa,aAAa,WAAW,MAAM,SAAA,CAAU;AAGrD,sBAAM,QAAQ,OAAO,iBAAiB,OAAO;AAC7C,sBAAM,gBAAgB,MAAM,YAAY;AAGxC,oBAAI,eAAe;AACjB,+BAAa,aAAa,UAAU,GAAG;AACvC,+BAAa,aAAa,UAAU,GAAG;AACvC,+BAAa,aAAa,UAAU,GAAG;AACvC,+BAAa,aAAa,UAAU,GAAG;AACvC,+BAAa,aAAa,UAAU,GAAG;AAAA,gBACzC,OAAO;AAEL,wBAAM,SAAS,KAAK,sBAAsB,OAAO;AACjD,+BAAa,aAAa,UAAU,OAAO,EAAE,UAAU;AACvD,+BAAa,aAAa,UAAU,OAAO,EAAE,UAAU;AACvD,+BAAa,aAAa,UAAU,OAAO,EAAE,UAAU;AACvD,+BAAa,aAAa,UAAU,OAAO,EAAE,UAAU;AAGvD,wBAAM,SAAS,KAAK,sBAAsB,OAAO;AACjD,+BAAa,aAAa,UAAU,OAAO,SAAA,CAAU;AAAA,gBACvD;AAAA,cACF;AAAA,YACF,SAAS,GAAG;AAEV,sBAAQ,KAAK,0DAA0D,KAAK,KAAK,CAAC;AAAA,YACpF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,aAAO,MAAM;AAAA,IACf;AAAA,IAEA,mBAAmB,IAAiC;AAElD,aAAO,KAAK,WAAW,IAAI,EAAE;AAAA,IAC/B;AAAA,IAEA,sBAAsB,SAAsC;AAC1D,aAAO,KAAK,kBAAkB,IAAI,OAAO;AAAA,IAC3C;AAAA,IAEA,gBAAyB;AACvB,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,aAAmB;AACjB,WAAK,WAAW,MAAA;AAChB,WAAK,wCAAwB,QAAA;AAC7B,WAAK,eAAe,MAAA;AACpB,WAAK,YAAY;AAAA,IACnB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,kBAAkB,OAAmC;AAEnD,UAAI,KAAK,WAAW,IAAI,KAAK,GAAG;AAC9B,cAAM,UAAU,KAAK,WAAW,IAAI,KAAK;AACzC,YAAI,WAAW,mBAAmB,aAAa;AAC7C,iBAAO;AAAA,QACT;AAAA,MACF;AAGA,UAAI,KAAK,YAAY,IAAI,KAAK,GAAG;AAC/B,cAAM,WAAW,KAAK,YAAY,IAAI,KAAK;AAC3C,YAAI,UAAU;AACZ,cAAI;AACF,kBAAM,UAAU,SAAS,cAAc,QAAQ;AAC/C,gBAAI,WAAW,mBAAmB,aAAa;AAG7C,qBAAO;AAAA,YACT;AAAA,UACF,SAAS,GAAG;AACV,oBAAQ,KAAK,6DAA6D,KAAK,KAAK,CAAC;AAAA,UACvF;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,oBAAoB,OAGlB;AACA,YAAM,aAAa,KAAK,uBAAuB,KAAK;AAEpD,UAAI,WAAW,SAAS;AACtB,cAAM,UAAU,KAAK,kBAAkB,KAAK;AAC5C,eAAO,EAAE,SAAS,WAAA;AAAA,MACpB;AAEA,UAAI,WAAW,kBAAkB;AAC/B,eAAO,EAAE,SAAS,WAAW,kBAAkB,WAAA;AAAA,MACjD;AAEA,aAAO,EAAE,SAAS,MAAM,WAAA;AAAA,IAC1B;AAAA;AAAA;AAAA;AAAA,IAKA,eAAe,OAA+C;AAC5D,aAAO,KAAK,eAAe,IAAI,KAAK;AAAA,IACtC;AAAA;AAAA;AAAA;AAAA,IAKA,qBAA0D;AACxD,aAAO,MAAM,KAAK,KAAK,eAAe,SAAS;AAAA,IACjD;AAAA;AAAA;AAAA;AAAA,IAKA,kBAA0B;AACxB,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AAv1BE,gBADW,aACI;AADV,MAAM,aAAN;AA01BA,QAAM,aAAa,WAAW,YAAA;ACj3BrC,MAAI,eAAmC;AAMvC,iBAAsB,mBAAyC;AAE7D,QAAI,6CAAc,QAAQ;AACxB,YAAM,cAAc,aAAa,eAAA;AACjC,UAAI,YAAY,SAAS,KAAK,YAAY,CAAC,EAAE,eAAe,QAAQ;AAClE,eAAO;AAAA,MACT;AAAA,IACF;AAGA,UAAM,SAAS,MAAM,UAAU,aAAa,gBAAgB;AAAA,MAC1D,OAAO;AAAA,MACP,OAAO;AAAA,MACP,kBAAkB;AAAA,IAAA,CACU;AAG9B,QAAI,CAAC,UAAU,OAAO,eAAA,EAAiB,WAAW,GAAG;AACnD,YAAM,IAAI,MAAM,8DAA8D;AAAA,IAChF;AAGA,mBAAe;AAGf,WAAO,iBAAiB,CAAC,EAAE,iBAAiB,SAAS,MAAM;AACzD,qBAAe;AAAA,IACjB,CAAC;AAED,WAAO;AAAA,EACT;ACnCO,QAAM,mBAAN,MAAM,iBAAgB;AAAA,IAenB,cAAc;AAZd,0CAAmC;AACnC,8CAAuC;AACvC,4CAAqC;AACrC,4CAAyC;AACzC,4CAA0C;AAC1C,4CAAoD;AACpD,2CAAqD;AACrD,0CAAiD;AACjD,2CAAqC;AACrC,qDAA+C;AAC/C,mCAAuB;AAAA,IAER;AAAA,IAEvB,OAAO,cAA+B;AACpC,UAAI,CAAC,iBAAgB,UAAU;AAC7B,yBAAgB,WAAW,IAAI,iBAAA;AAAA,MACjC;AACA,aAAO,iBAAgB;AAAA,IACzB;AAAA,IAEA,MAAM,eAAe,SAA4C;;AAC/D,YAAM,EAAE,SAAS,aAAa,gBAAgB,OAAO,aAAa;AAElE,YACE,UAAK,mBAAL,mBAAqB,aAAY,WACjC,KAAK,eAAe,gBAAgB,eACpC,KAAK,eAAe,aAAa,YACjC,KAAK,gBACL;AACA,gBAAQ,IAAI,8EAA8E;AAC1F,eAAO,KAAK;AAAA,MACd;AAEA,WAAK,QAAA;AACL,WAAK,iBAAiB;AACtB,WAAK,iBAAiB;AAEtB,cAAQ,eAAe,EAAE,UAAU,UAAU,OAAO,UAAU,QAAQ,UAAU;AAEhF,WAAK,gBAAgB,OAAO;AAC5B,WAAK,YAAY,aAAa,aAAa;AAC3C,WAAK,qBAAA;AAEL,UAAI,eAAe;AAUjB,aAAK,kBAAA;AAAA,MACP;AAEA,WAAK,iBAAiB,IAAI,QAAiB,CAAC,SAAS,WAAW;AAC9D,aAAK,iBAAiB;AACtB,aAAK,gBAAgB;AAAA,MACvB,CAAC,EAAE,QAAQ,MAAM;AACf,aAAK,QAAA;AAAA,MACP,CAAC;AAED,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,UAAgB;AACd,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc,sBAAsB;AACzC,aAAK,gBAAgB;AAAA,MACvB;AACA,WAAK,iBAAiB;AAEtB,UAAI,KAAK,cAAc;AACrB,iBAAS,oBAAoB,SAAS,KAAK,cAAc,EAAE,SAAS,MAAM;AAC1E,aAAK,eAAe;AAAA,MACtB;AACA,UAAI,KAAK,eAAe;AACtB,eAAO,oBAAoB,UAAU,KAAK,eAAe,EAAE,SAAS,MAAM;AAC1E,eAAO,oBAAoB,UAAU,KAAK,aAAa;AACvD,eAAO,oBAAoB,aAAa,KAAK,aAAa;AAC1D,eAAO,oBAAoB,SAAS,KAAK,aAAa;AACtD,aAAK,gBAAgB;AAAA,MACvB;AACA,UAAI,KAAK,UAAU,MAAM;AACvB,eAAO,qBAAqB,KAAK,KAAK;AACtC,aAAK,QAAQ;AAAA,MACf;AAEA,WAAK,0BAA0B;AAG/B,UAAI,KAAK,cAAc;AACrB,aAAK,aAAa,OAAA;AAClB,aAAK,eAAe;AAAA,MACtB;AACA,UAAI,KAAK,kBAAkB;AACzB,aAAK,iBAAiB,OAAA;AACtB,aAAK,mBAAmB;AAAA,MAC1B;AAGA,YAAM,YAAY,SAAS,eAAe,sBAAsB;AAChE,UAAI,WAAW;AACb,kBAAU,OAAA;AAAA,MACZ;AACA,YAAM,gBAAgB,SAAS,eAAe,0BAA0B;AACxE,UAAI,eAAe;AACjB,sBAAc,OAAA;AAAA,MAChB;AAEA,WAAK,iBAAiB;AACtB,WAAK,iBAAiB;AACtB,WAAK,iBAAiB;AACtB,WAAK,iBAAiB;AACtB,WAAK,gBAAgB;AAAA,IACvB;AAAA,IAEQ,gBAAgB,SAA4B;AAClD,YAAM,OAAO,QAAQ,sBAAA;AACrB,YAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,gBAAU,KAAK;AACf,gBAAU,MAAM,UAAU;AAAA;AAAA,WAEnB,KAAK,GAAG;AAAA,YACP,KAAK,IAAI;AAAA,aACR,KAAK,KAAK;AAAA,cACT,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQrB,eAAS,KAAK,YAAY,SAAS;AACnC,WAAK,mBAAmB;AAAA,IAC1B;AAAA,IAEQ,YAAY,aAAqB,eAA8B;AACrE,YAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,YAAM,KAAK;AAEX,YAAM,UAAU,gBACZ,mEAAmE,KAAK,WAAW,WAAW,CAAC,WAC/F,wFAAwF,KAAK,WAAW,WAAW,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQxH,YAAM,YAAY;AAClB,eAAS,KAAK,YAAY,KAAK;AAC/B,WAAK,eAAe;AAEpB,UAAI,CAAC,eAAe;AAClB,aAAK,oBAAoB,KAAK;AAAA,MAChC;AAEA,WAAK,oBAAA;AAAA,IACP;AAAA,IAEQ,uBAA6B;AACnC,WAAK,0BAA0B,MAAM;AACnC,YAAI,CAAC,KAAK,kBAAkB,CAAC,KAAK,iBAAkB;AACpD,cAAM,OAAO,KAAK,eAAe,sBAAA;AACjC,aAAK,iBAAiB,MAAM,MAAM,GAAG,KAAK,GAAG;AAC7C,aAAK,iBAAiB,MAAM,OAAO,GAAG,KAAK,IAAI;AAC/C,aAAK,iBAAiB,MAAM,QAAQ,GAAG,KAAK,KAAK;AACjD,aAAK,iBAAiB,MAAM,SAAS,GAAG,KAAK,MAAM;AACnD,aAAK,oBAAA;AAAA,MACP;AAEA,WAAK,gBAAgB,MAAM;;AACzB,YAAI,KAAK,UAAU,KAAM,QAAO,qBAAqB,KAAK,KAAK;AAC/D,mBAAK,4BAAL;AAAA,MACF;AAEA,aAAO,iBAAiB,UAAU,KAAK,eAAe,EAAE,SAAS,MAAM,SAAS,MAAM;AACtF,aAAO,iBAAiB,UAAU,KAAK,eAAe,EAAE,SAAS,MAAM;AACvE,aAAO,iBAAiB,aAAa,KAAK,eAAe,EAAE,SAAS,MAAM;AAC1E,aAAO,iBAAiB,SAAS,KAAK,eAAe,EAAE,SAAS,MAAM;AAAA,IACxE;AAAA,IAEQ,sBAA4B;AAClC,UAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK,eAAgB;AAEhD,YAAM,OAAO,KAAK,eAAe,sBAAA;AACjC,YAAM,aAAa;AACnB,YAAM,cAAc;AACpB,YAAM,UAAU;AAChB,YAAM,UAAU;AAOhB,YAAM,iBAAiB,KAAK,OAAO,KAAK,QAAQ;AAChD,YAAM,iBAAiB,KAAK,MAAM,KAAK,SAAS;AAEhD,YAAM,YAAY;AAAA,QAChB,EAAE,MAAM,KAAK,QAAQ,SAAS,KAAK,iBAAiB,cAAc,EAAA;AAAA;AAAA,QAClE,EAAE,MAAM,KAAK,OAAO,aAAa,SAAS,KAAK,iBAAiB,cAAc,EAAA;AAAA;AAAA,QAC9E,EAAE,MAAM,iBAAiB,aAAa,GAAG,KAAK,KAAK,MAAM,cAAc,QAAA;AAAA;AAAA,QACvE,EAAE,MAAM,iBAAiB,aAAa,GAAG,KAAK,KAAK,SAAS,QAAA;AAAA;AAAA,MAAQ;AAItE,UAAI,UAAU,UAAU,CAAC;AACzB,iBAAW,OAAO,WAAW;AAC3B,YACE,IAAI,QAAQ,WACZ,IAAI,OAAO,cAAc,OAAO,aAAa,WAC7C,IAAI,OAAO,WACX,IAAI,MAAM,eAAe,OAAO,cAAc,SAC9C;AACA,oBAAU;AACV;AAAA,QACF;AAAA,MACF;AAGA,YAAM,OAAO,KAAK;AAAA,QAChB;AAAA,QACA,KAAK,IAAI,QAAQ,MAAM,OAAO,aAAa,aAAa,OAAO;AAAA,MAAA;AAEjE,YAAM,MAAM,KAAK;AAAA,QACf;AAAA,QACA,KAAK,IAAI,QAAQ,KAAK,OAAO,cAAc,cAAc,OAAO;AAAA,MAAA;AAGlE,WAAK,aAAa,MAAM,WAAW;AAAA;AAAA,aAE1B,GAAG;AAAA,cACF,IAAI;AAAA,aACL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOrB;AAAA,IAEQ,oBAA0B;AAChC,WAAK,eAAe,CAAC,MAAkB;AACrC,YAAI,CAAC,KAAK,kBAAkB,CAAC,KAAK,eAAgB;AAGlD,cAAM,OAAO,EAAE,aAAA;AACf,cAAM,mBAAmB,KAAK,SAAS,KAAK,cAAc;AAE1D,YAAI,kBAAkB;AAEpB,YAAE,eAAA;AACF,YAAE,gBAAA;AAEF,kBAAQ,IAAI,gEAAgE;AAC5E,gBAAM,UAAU,KAAK;AACrB,eAAK,iBAAiB;AACtB,eAAK,gBAAgB;AACrB,kBAAQ,IAAI;AAAA,QACd;AAAA,MACF;AAGA,eAAS,iBAAiB,SAAS,KAAK,cAAc,EAAE,SAAS,MAAM;AAAA,IACzE;AAAA,IAEQ,oBAAoB,OAA0B;AACpD,aAAO,sBAAsB,MAAM;AACjC,cAAM,MAAM,MAAM,cAAc,0BAA0B;AAC1D,YAAI,KAAK;AACP,cAAI,iBAAiB,SAAS,CAAC,MAAM;AACnC,cAAE,gBAAA;AACF,gBAAI,KAAK,gBAAgB;AACvB,sBAAQ,IAAI,mEAAmE;AAC/E,oBAAM,UAAU,KAAK;AACrB,mBAAK,iBAAiB;AACtB,mBAAK,gBAAgB;AACrB,sBAAQ,IAAI;AAAA,YACd;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEQ,WAAW,MAAsB;AACvC,YAAM,MAAM,SAAS,cAAc,KAAK;AACxC,UAAI,cAAc;AAClB,aAAO,IAAI;AAAA,IACb;AAAA,EACF;AA1SE,gBADW,kBACI;AADV,MAAM,kBAAN;AA6SA,QAAM,kBAAkB,gBAAgB,YAAA;ACzOxC,QAAM,wBAAN,MAAM,sBAAqB;AAAA,IAGxB,cAAc;AAAA,IAAC;AAAA,IAEvB,OAAO,cAAoC;AACzC,UAAI,CAAC,sBAAqB,UAAU;AAClC,8BAAqB,WAAW,IAAI,sBAAA;AAAA,MACtC;AACA,aAAO,sBAAqB;AAAA,IAC9B;AAAA,IAEA,MAAM,YACJ,UACA,MACA,OAAe,MACf,cAAsB,IACQ;AAC9B,UAAI;AACF,gBAAQ,IAAI,oCAAoC,QAAQ,WAAW,IAAI,GAAG;AAE1E,YAAI,SAAS,UAAU,KAAK,kBAAkB,QAAQ,GAAG;AACvD,gBAAM,QAAQ,KAAK;AACnB,cAAI,UAAU,QAAW;AACvB,kBAAM,UAAU,WAAW,kBAAkB,KAAK;AAClD,gBAAI,SAAS;AACX,oBAAM,YAAY,MAAM,gBAAgB,eAAe;AAAA,gBACrD;AAAA,gBACA,aAAa,eAAe,WAAW,QAAQ;AAAA,gBAC/C;AAAA,gBACA,eAAe,aAAa;AAAA,cAAA,CAC7B;AAED,kBAAI,CAAC,WAAW;AACd,uBAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,wBAAA;AAAA,cAC9C;AAEA,kBAAI,aAAa,iBAAiB;AAAA,cAGlC,WACE,aAAa,eACb,aAAa,4BACb,aAAa,aACb;AAAA,cAGF,OAAO;AAAA,cAEP;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,gBAAQ,UAAA;AAAA,UACN,KAAK;AACH,mBAAO,KAAK,SAAS,IAAiC;AAAA,UACxD,KAAK;AACH,mBAAO,KAAK,OAAO,IAA+B;AAAA,UACpD,KAAK;AACH,mBAAO,MAAM,KAAK,aAAa,IAAqC;AAAA,UACtE,KAAK;AACH,mBAAO,KAAK,SAAS,IAAiC;AAAA,UACxD,KAAK;AACH,mBAAO,KAAK,OAAO,IAA+B;AAAA,UACpD,KAAK;AACH,mBAAO,KAAK,aAAa,IAAqC;AAAA,UAChE,KAAK;AACH,mBAAO,KAAK,QAAQ,IAAI;AAAA,UAC1B,KAAK;AACH,mBAAO,KAAK,OAAA;AAAA,UACd,KAAK;AACH,mBAAO,MAAM,KAAK,KAAK,IAA6B;AAAA,UACtD,KAAK;AACH,mBAAO,KAAK,qBAAqB,IAA6C;AAAA,UAChF,KAAK;AACH,mBAAO,KAAK,mBAAmB,IAA2C;AAAA,UAC5E,KAAK;AACH,mBAAO,KAAK,SAAS,IAAiC;AAAA,UACxD,KAAK;AACH,mBAAO,KAAK,WAAW,IAAmC;AAAA,UAC5D,KAAK;AACH,mBAAO,KAAK,SAAA;AAAA,UACd,KAAK;AACH,mBAAO,KAAK,UAAU,IAAkC;AAAA,UAC1D,KAAK;AACH,mBAAO,KAAK,KAAK,IAA6B;AAAA,UAChD,KAAK;AACH,mBAAO,KAAK,QAAA;AAAA,UACd,KAAK;AACH,mBAAO,MAAM,KAAK,cAAA;AAAA,UACpB;AACE,mBAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,iBAAiB,QAAQ,GAAA;AAAA,QAAG;AAAA,MAE9E,SAAS,OAAO;AACd,wBAAgB,QAAA;AAChB,eAAO;AAAA,UACL,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QAAA;AAAA,MAEhE;AAAA,IACF;AAAA,IAEQ,kBAAkB,UAA2B;AACnD,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,EACA,SAAS,QAAQ;AAAA,IACrB;AAAA,IAEQ,SAAS,MAA2C;AAC1D,YAAM,MAAM,KAAK;AACjB,UAAI,CAAC,IAAK,QAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,kBAAA;AAEtD,UAAI,KAAK,SAAS;AAChB,eAAO,KAAK,KAAK,QAAQ;AACzB,eAAO,EAAE,SAAS,MAAM,QAAQ,UAAU,GAAG,cAAA;AAAA,MAC/C,OAAO;AACL,eAAO,SAAS,OAAO;AACvB,eAAO,EAAE,SAAS,MAAM,QAAQ,iBAAiB,GAAG,GAAA;AAAA,MACtD;AAAA,IACF;AAAA,IAEQ,OAAO,MAAyC;AACtD,YAAM,QAAQ,KAAK;AACnB,UAAI,CAAC,MAAO,QAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,oBAAA;AAExD,YAAM,SAAU,KAAK,UAAqB;AAC1C,YAAM,UAAU,mBAAmB,KAAK;AACxC,UAAI,MAAM,6BAA6B,OAAO;AAE9C,UAAI,WAAW,SAAU,OAAM,mCAAmC,OAAO;AACzE,UAAI,WAAW,OAAQ,OAAM,iCAAiC,OAAO;AAErE,aAAO,SAAS,OAAO;AACvB,aAAO,EAAE,SAAS,MAAM,QAAQ,kBAAkB,KAAK,QAAQ,MAAM,GAAA;AAAA,IACvE;AAAA,IAEA,MAAc,aAAa,MAAwD;AACjF,YAAM,QAAQ,KAAK;AACnB,UAAI,UAAU,OAAW,QAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,iBAAA;AAGrE,YAAM,EAAE,SAAS,WAAA,IAAe,WAAW,oBAAoB,KAAK;AAEpE,UAAI,CAAC,SAAS;AACZ,YAAI,WAAW,iBAAiB;AAE9B,qBAAW,0BAAA;AACX,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO,iCAAiC,KAAK;AAAA,YAC7C,cAAc;AAAA,cACZ,eAAe;AAAA,cACf,cAAc;AAAA,YAAA;AAAA,UAChB;AAAA,QAEJ;AACA,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,WAAW,KAAK,aAAA;AAAA,MAC9D;AAGA,UAAI,WAAW,mBAAmB,mBAAmB,WAAW,mBAAmB,QAAW;AAC5F,gBAAQ;AAAA,UACN,qDAAqD,KAAK,OAAO,WAAW,cAAc;AAAA,QAAA;AAAA,MAE9F;AAEA,cAAQ,eAAe,EAAE,UAAU,UAAU,OAAO,UAAU;AAC9D,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAG,CAAC;AAEvD,iBAAW,MAAM;AACf,YAAI;AAEF,kBAAQ,MAAA;AAAA,QACV,SAAS,GAAG;AACV,kBAAQ,KAAK,gEAAgE,CAAC;AAE9E,cAAI;AACF,kBAAM,aAAa,IAAI,WAAW,SAAS;AAAA,cACzC,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,MAAM;AAAA,YAAA,CACP;AACD,oBAAQ,cAAc,UAAU;AAAA,UAClC,SAAS,eAAe;AACtB,oBAAQ,KAAK,sDAAsD,aAAa;AAAA,UAClF;AAAA,QACF;AAAA,MACF,GAAG,EAAE;AAEL,YAAM,SAA8B,EAAE,SAAS,MAAM,QAAQ,mBAAmB,KAAK,GAAA;AACrF,UAAI,WAAW,mBAAmB,UAAa,WAAW,mBAAmB,OAAO;AAClF,eAAO,eAAe;AAAA,UACpB,eAAe;AAAA,UACf,gBAAgB,WAAW;AAAA,UAC3B,cAAc;AAAA,QAAA;AAAA,MAElB;AACA,aAAO;AAAA,IACT;AAAA,IAEQ,SAAS,MAA2C;AAC1D,YAAM,QAAQ,KAAK;AACnB,YAAM,OAAO,KAAK;AAClB,UAAI,UAAU,UAAa,SAAS;AAClC,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,0BAAA;AAG9C,YAAM,EAAE,SAAS,WAAA,IAAe,WAAW,oBAAoB,KAAK;AAEpE,UAAI,CAAC,SAAS;AACZ,YAAI,WAAW,iBAAiB;AAC9B,qBAAW,0BAAA;AACX,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO,iCAAiC,KAAK;AAAA,YAC7C,cAAc,EAAE,eAAe,OAAO,cAAc,KAAA;AAAA,UAAK;AAAA,QAE7D;AACA,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,WAAW,KAAK,aAAA;AAAA,MAC9D;AAGA,YAAM,cACJ,mBAAmB,oBACnB,mBAAmB,uBAClB,QAAwB;AAE3B,UAAI,aAAa;AACf,cAAM,eAAe;AAGrB,YAAI;AACF,uBAAa,MAAA;AAAA,QACf,SAAS,GAAG;AACV,kBAAQ,KAAK,+BAA+B,CAAC;AAAA,QAC/C;AAGA,YAAI,WAAW;AACf,YAAI,YAAqB;AAGzB,YAAI,CAAC,UAAU;AACb,cAAI;AACF,kBAAM,aAAa,aAAa,QAAQ,YAAA,MAAkB;AAC1D,kBAAM,YAAY,aAAa,oBAAoB,YAAY,iBAAiB;AAChF,kBAAM,aAAa,OAAO,yBAAyB,WAAW,OAAO;AAErE,gBAAI,yCAAY,KAAK;AAEnB,yBAAW,IAAI,KAAK,cAAc,IAAI;AACtC,yBAAW;AACX,sBAAQ,IAAI,uCAAuC;AAAA,YACrD;AAAA,UACF,SAAS,GAAG;AACV,wBAAY;AACZ,oBAAQ,KAAK,uCAAuC,CAAC;AAAA,UACvD;AAAA,QACF;AAGA,YAAI,CAAC,UAAU;AACb,cAAI;AACF,yBAAa,QAAQ;AACrB,uBAAW;AACX,oBAAQ,IAAI,2CAA2C;AAAA,UACzD,SAAS,GAAG;AACV,wBAAY;AACZ,oBAAQ,KAAK,2CAA2C,CAAC;AAAA,UAC3D;AAAA,QACF;AAGA,YAAI,CAAC,UAAU;AACb,cAAI;AACF,yBAAa,MAAA;AACb,yBAAa,OAAA;AACb,kBAAM,UAAU,SAAS,YAAY,cAAc,OAAO,IAAI;AAC9D,gBAAI,SAAS;AACX,yBAAW;AACX,sBAAQ,IAAI,qCAAqC;AAAA,YACnD;AAAA,UACF,SAAS,GAAG;AACV,wBAAY;AACZ,oBAAQ,KAAK,qCAAqC,CAAC;AAAA,UACrD;AAAA,QACF;AAGA,YAAI,CAAC,UAAU;AACb,cAAI;AACF,yBAAa,MAAA;AAEb,yBAAa,QAAQ;AACrB,uBAAW,QAAQ,MAAM;AACvB,2BAAa;AAAA,gBACX,IAAI,cAAc,WAAW,EAAE,KAAK,MAAM,SAAS,MAAM,YAAY,KAAA,CAAM;AAAA,cAAA;AAE7E,2BAAa,SAAS;AACtB,2BAAa;AAAA,gBACX,IAAI,WAAW,SAAS;AAAA,kBACtB,SAAS;AAAA,kBACT,YAAY;AAAA,kBACZ,WAAW;AAAA,kBACX,MAAM;AAAA,gBAAA,CACP;AAAA,cAAA;AAEH,2BAAa;AAAA,gBACX,IAAI,cAAc,SAAS,EAAE,KAAK,MAAM,SAAS,MAAM,YAAY,KAAA,CAAM;AAAA,cAAA;AAAA,YAE7E;AACA,uBAAW;AACX,oBAAQ,IAAI,0CAA0C;AAAA,UACxD,SAAS,GAAG;AACV,wBAAY;AACZ,oBAAQ,KAAK,0CAA0C,CAAC;AAAA,UAC1D;AAAA,QACF;AAEA,YAAI,CAAC,UAAU;AACb,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO,wBAAwB,qBAAqB,QAAQ,UAAU,UAAU,OAAO,SAAS,CAAC;AAAA,UAAA;AAAA,QAErG;AAGA,YAAI;AAEF,gBAAM,aAAa,IAAI,WAAW,SAAS;AAAA,YACzC,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,WAAW;AAAA,YACX,MAAM;AAAA,UAAA,CACP;AACD,uBAAa,cAAc,UAAU;AAGrC,uBAAa,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,KAAA,CAAM,CAAC;AAGjE,uBAAa,cAAc,IAAI,MAAM,QAAQ,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,QACjE,SAAS,GAAG;AACV,kBAAQ,KAAK,wCAAwC,CAAC;AAAA,QACxD;AAAA,MACF,WAAW,WAAW,SAAS;AAE7B,YAAI;AACD,kBAA6B,QAAQ;AACtC,kBAAQ,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAC3D,kBAAQ,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,QAC9D,SAAS,GAAG;AACV,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO,mCAAmC,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC,CAAC;AAAA,UAAA;AAAA,QAExF;AAAA,MACF,OAAO;AAEL,YAAI;AACF,kBAAQ,cAAc;AACtB,kBAAQ,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,QAC7D,SAAS,GAAG;AACV,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO,8BAA8B,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC,CAAC;AAAA,UAAA;AAAA,QAEnF;AAAA,MACF;AAEA,YAAM,SAA8B;AAAA,QAClC,SAAS;AAAA,QACT,QAAQ,2BAA2B,KAAK;AAAA,MAAA;AAE1C,UAAI,WAAW,mBAAmB,UAAa,WAAW,mBAAmB,OAAO;AAClF,eAAO,eAAe;AAAA,UACpB,eAAe;AAAA,UACf,gBAAgB,WAAW;AAAA,UAC3B,cAAc;AAAA,QAAA;AAAA,MAElB;AACA,aAAO;AAAA,IACT;AAAA,IAEQ,OAAO,MAAyC;AACtD,YAAM,aAAc,KAAK,aAAwB,IAAI,YAAA;AACrD,YAAM,SAAS,OAAO,cAAc;AAEpC,cAAQ,WAAA;AAAA,QACN,KAAK;AACH,iBAAO,SAAS,EAAE,KAAK,QAAQ,UAAU,UAAU;AACnD;AAAA,QACF,KAAK;AACH,iBAAO,SAAS,EAAE,KAAK,CAAC,QAAQ,UAAU,UAAU;AACpD;AAAA,QACF,KAAK;AACH,iBAAO,SAAS,EAAE,MAAM,CAAC,QAAQ,UAAU,UAAU;AACrD;AAAA,QACF,KAAK;AACH,iBAAO,SAAS,EAAE,MAAM,QAAQ,UAAU,UAAU;AACpD;AAAA,QACF;AACE,iBAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,oBAAA;AAAA,MAAoB;AAEpE,aAAO,EAAE,SAAS,MAAM,QAAQ,YAAY,SAAS,GAAA;AAAA,IACvD;AAAA,IAEQ,aAAa,MAA+C;;AAClE,YAAM,OAAO,KAAK;AAClB,UAAI,CAAC,KAAM,QAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,gBAAA;AAEvD,YAAM,SAAS,SAAS,iBAAiB,SAAS,MAAM,WAAW,SAAS;AAC5E,UAAI;AACJ,aAAQ,OAAO,OAAO,YAAa;AACjC,cAAI,UAAK,gBAAL,mBAAkB,SAAS,UAAS,KAAK,eAAe;AAC1D,eAAK,cAAc,eAAe,EAAE,UAAU,UAAU,OAAO,UAAU;AACzE,iBAAO,EAAE,SAAS,MAAM,QAAQ,gBAAgB,IAAI,IAAA;AAAA,QACtD;AAAA,MACF;AACA,aAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,SAAS,IAAI,cAAA;AAAA,IAC3D;AAAA,IAEQ,QAAQ,OAAqD;AACnE,YAAM,SAAS;AAAA,QACb,OAAO,SAAS;AAAA,QAChB,KAAK,OAAO,SAAS;AAAA,QACrB,MAAM,SAAS,KAAK,UAAU,UAAU,GAAG,GAAK;AAAA,QAChD,OAAO,MAAM,KAAK,SAAS,iBAAiB,SAAS,CAAC,EACnD,MAAM,GAAG,GAAG,EACZ,IAAI,CAAC,MAAA;;AAAO;AAAA,YACX,QAAM,OAAE,gBAAF,mBAAe,WAAU;AAAA,YAC/B,MAAM,EAAE,aAAa,MAAM;AAAA,UAAA;AAAA,SAC3B;AAAA,MAAA;AAEN,aAAO,EAAE,SAAS,MAAM,QAAQ,KAAK,UAAU,MAAM,EAAA;AAAA,IACvD;AAAA,IAEQ,SAA8B;AACpC,UAAI,OAAO,QAAQ,SAAS,GAAG;AAC7B,eAAO,QAAQ,KAAA;AACf,eAAO,EAAE,SAAS,MAAM,QAAQ,iBAAA;AAAA,MAClC;AACA,aAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,aAAA;AAAA,IAC9C;AAAA,IAEA,MAAc,KAAK,MAAgD;AACjE,YAAM,UAAU,KAAK;AACrB,UAAI,YAAY,OAAW,QAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,mBAAA;AACvE,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,UAAU,GAAI,CAAC;AAClE,aAAO,EAAE,SAAS,MAAM,QAAQ,UAAU,OAAO,IAAA;AAAA,IACnD;AAAA,IAEQ,qBAAqB,MAAuD;AAClF,YAAM,QAAQ,KAAK;AACnB,YAAM,SAAS,KAAK;AACpB,UAAI,UAAU,UAAa,CAAC;AAC1B,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,wBAAA;AAG9C,YAAM,EAAE,SAAS,WAAA,IAAe,WAAW,oBAAoB,KAAK;AAEpE,UAAI,CAAC,SAAS;AACZ,YAAI,WAAW,iBAAiB;AAC9B,qBAAW,0BAAA;AACX,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO,iCAAiC,KAAK;AAAA,YAC7C,cAAc,EAAE,eAAe,OAAO,cAAc,KAAA;AAAA,UAAK;AAAA,QAE7D;AACA,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,UAAU,KAAK,aAAA;AAAA,MAC7D;AAEA,UAAI,EAAE,mBAAmB,oBAAoB;AAC3C,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,WAAW,KAAK,2BAAA;AAAA,MAC9D;AAEA,YAAM,MAAM,MAAM,KAAK,QAAQ,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,UAAU,EAAE,SAAS,MAAM;AAC3F,UAAI,CAAC,IAAK,QAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,UAAU,MAAM,aAAA;AAEtE,cAAQ,QAAQ,IAAI;AACpB,cAAQ,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,KAAA,CAAM,CAAC;AAE5D,YAAM,SAA8B,EAAE,SAAS,MAAM,QAAQ,YAAY,MAAM,GAAA;AAC/E,UAAI,WAAW,mBAAmB,UAAa,WAAW,mBAAmB,OAAO;AAClF,eAAO,eAAe;AAAA,UACpB,eAAe;AAAA,UACf,gBAAgB,WAAW;AAAA,UAC3B,cAAc;AAAA,QAAA;AAAA,MAElB;AACA,aAAO;AAAA,IACT;AAAA,IAEQ,mBAAmB,MAAqD;AAC9E,YAAM,QAAQ,KAAK;AAGnB,YAAM,EAAE,SAAS,WAAA,IAAe,WAAW,oBAAoB,KAAK;AAEpE,UAAI,CAAC,SAAS;AACZ,YAAI,WAAW,iBAAiB;AAC9B,qBAAW,0BAAA;AACX,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO,iCAAiC,KAAK;AAAA,YAC7C,cAAc,EAAE,eAAe,OAAO,cAAc,KAAA;AAAA,UAAK;AAAA,QAE7D;AACA,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,UAAU,KAAK,aAAA;AAAA,MAC7D;AAEA,UAAI,EAAE,mBAAmB,oBAAoB;AAC3C,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,WAAW,KAAK,2BAAA;AAAA,MAC9D;AAEA,YAAM,UAAU,MAAM,KAAK,QAAQ,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,MAAM,EAAE,OAAO;AACzF,aAAO,EAAE,SAAS,MAAM,QAAQ,KAAK,UAAU,OAAO,EAAA;AAAA,IACxD;AAAA,IAEQ,SAAS,MAA2C;AAC1D,YAAM,QAAQ,KAAK;AACnB,YAAM,OAAO,KAAK;AAClB,UAAI,UAAU,UAAa,CAAC;AAC1B,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,sBAAA;AAG9C,YAAM,EAAE,SAAS,WAAA,IAAe,WAAW,oBAAoB,KAAK;AAEpE,UAAI,CAAC,SAAS;AACZ,YAAI,WAAW,iBAAiB;AAC9B,qBAAW,0BAAA;AACX,iBAAO;AAAA,YACL,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,OAAO,iCAAiC,KAAK;AAAA,YAC7C,cAAc,EAAE,eAAe,OAAO,cAAc,KAAA;AAAA,UAAK;AAAA,QAE7D;AACA,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,WAAW,KAAK,aAAA;AAAA,MAC9D;AAGA,cAAQ,MAAA;AAGR,cAAQ;AAAA,QACN,IAAI,cAAc,WAAW,EAAE,KAAK,MAAM,SAAS,MAAM,YAAY,KAAA,CAAM;AAAA,MAAA;AAE7E,cAAQ;AAAA,QACN,IAAI,cAAc,SAAS,EAAE,KAAK,MAAM,SAAS,MAAM,YAAY,KAAA,CAAM;AAAA,MAAA;AAI3E,YAAM,eAAe,KAAK,kBAAkB,SAAS,IAAI;AAEzD,YAAM,SAA8B;AAAA,QAClC,SAAS;AAAA,QACT,QAAQ,gBAAgB,aAAa,IAAI;AAAA,MAAA;AAE3C,UAAI,WAAW,mBAAmB,UAAa,WAAW,mBAAmB,OAAO;AAClF,eAAO,eAAe;AAAA,UACpB,eAAe;AAAA,UACf,gBAAgB,WAAW;AAAA,UAC3B,cAAc;AAAA,QAAA;AAAA,MAElB;AACA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOQ,kBAAkB,SAAsB,KAA4B;;AAC1E,cAAQ,KAAA;AAAA,QACN,KAAK,OAAO;AAEV,gBAAM,aAAa,MAAM;AAAA,YACvB,SAAS;AAAA,cACP;AAAA,YAAA;AAAA,UACF,EACA,OAAO,CAAC,OAAO,GAAG,iBAAiB,IAAI;AAEzC,gBAAM,eAAe,WAAW,QAAQ,OAAO;AAC/C,cAAI,iBAAiB,MAAM,eAAe,WAAW,SAAS,GAAG;AAC/D,kBAAM,cAAc,WAAW,eAAe,CAAC;AAC/C,wBAAY,MAAA;AACZ,mBAAO,uBAAuB,YAAY,QAAQ,YAAA,CAAa,GAAG,YAAY,KAAK,IAAI,YAAY,EAAE,KAAK,EAAE;AAAA,UAC9G;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK,aAAa;AAEhB,gBAAM,aAAa,MAAM;AAAA,YACvB,SAAS;AAAA,cACP;AAAA,YAAA;AAAA,UACF,EACA,OAAO,CAAC,OAAO,GAAG,iBAAiB,IAAI;AAEzC,gBAAM,eAAe,WAAW,QAAQ,OAAO;AAC/C,cAAI,eAAe,GAAG;AACpB,kBAAM,cAAc,WAAW,eAAe,CAAC;AAC/C,wBAAY,MAAA;AACZ,mBAAO,6BAA6B,YAAY,QAAQ,YAAA,CAAa,GAAG,YAAY,KAAK,IAAI,YAAY,EAAE,KAAK,EAAE;AAAA,UACpH;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK,SAAS;AAEZ,cAAI,mBAAmB,qBAAqB,QAAQ,aAAa,MAAM,MAAM,UAAU;AACrF,oBAAQ,MAAA;AACR,mBAAO;AAAA,UACT;AACA,cAAI,mBAAmB,oBAAoB,mBAAmB,qBAAqB;AACjF,kBAAM,OAAO,QAAQ,QAAQ,MAAM;AACnC,gBAAI,MAAM;AAER,oBAAM,YAAY,KAAK;AAAA,gBACrB;AAAA,cAAA;AAEF,kBAAI,WAAW;AACb,0BAAU,MAAA;AACV,uBAAO;AAAA,cACT,OAAO;AACL,qBAAK,cAAA;AACL,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AACA,cAAI,mBAAmB,mBAAmB;AACxC,oBAAQ,MAAA;AACR,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK,UAAU;AAEb,kBAAQ,KAAA;AAER,mBAAS;AAAA,YACP,IAAI,cAAc,WAAW,EAAE,KAAK,UAAU,SAAS,MAAM,YAAY,KAAA,CAAM;AAAA,UAAA;AAEjF,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK;AAAA,QACL,KAAK,SAAS;AAEZ,cACE,mBAAmB,qBAClB,QAAQ,SAAS,cAAc,QAAQ,SAAS,UACjD;AACA,oBAAQ,MAAA;AACR,mBAAO,kBAAkB,QAAQ,IAAI;AAAA,UACvC;AACA,cAAI,mBAAmB,qBAAqB,QAAQ,aAAa,MAAM,MAAM,UAAU;AACrF,oBAAQ,MAAA;AACR,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK,aAAa;AAEhB,cAAI,mBAAmB,mBAAmB;AACxC,kBAAM,aAAa,QAAQ;AAC3B,gBAAI,aAAa,QAAQ,QAAQ,SAAS,GAAG;AAC3C,sBAAQ,gBAAgB,aAAa;AACrC,sBAAQ,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,KAAA,CAAM,CAAC;AAC5D,qBAAO,wBAAwB,QAAQ,QAAQ,QAAQ,aAAa,EAAE,IAAI;AAAA,YAC5E;AACA,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK,WAAW;AAEd,cAAI,mBAAmB,mBAAmB;AACxC,kBAAM,aAAa,QAAQ;AAC3B,gBAAI,aAAa,GAAG;AAClB,sBAAQ,gBAAgB,aAAa;AACrC,sBAAQ,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,KAAA,CAAM,CAAC;AAC5D,qBAAO,sBAAsB,QAAQ,QAAQ,QAAQ,aAAa,EAAE,IAAI;AAAA,YAC1E;AACA,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK,QAAQ;AAEX,cAAI,mBAAmB,oBAAoB,mBAAmB,qBAAqB;AACjF,oBAAQ,kBAAkB,GAAG,CAAC;AAC9B,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK,OAAO;AAEV,cAAI,mBAAmB,oBAAoB,mBAAmB,qBAAqB;AACjF,kBAAM,MAAM,QAAQ,MAAM;AAC1B,oBAAQ,kBAAkB,KAAK,GAAG;AAClC,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK,aAAa;AAEhB,cAAI,mBAAmB,oBAAoB,mBAAmB,qBAAqB;AACjF,kBAAM,QAAQ,QAAQ;AAEtB,gBAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,qBAAO;AAAA,YACT;AAGA,gBAAI,QAAgB,QAAQ,kBAAkB,MAAM;AACpD,gBAAI,MAAc,QAAQ,gBAAgB,MAAM;AAGhD,gBAAI,UAAU,KAAK,QAAQ,GAAG;AAC5B,sBAAQ,MAAM;AACd,oBAAM,MAAM;AAAA,YACd;AAEA,gBAAI,WAAW;AACf,gBAAI,eAAe;AAEnB,gBAAI,UAAU,OAAO,QAAQ,GAAG;AAE9B,yBAAW,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,MAAM,MAAM,GAAG;AACtD,6BAAe,QAAQ;AAAA,YACzB,WAAW,UAAU,KAAK;AAExB,yBAAW,MAAM,MAAM,GAAG,KAAK,IAAI,MAAM,MAAM,GAAG;AAClD,6BAAe;AAAA,YACjB,OAAO;AACL,qBAAO;AAAA,YACT;AAGA,kBAAM,0BAAyB,YAAO;AAAA,cACpC,mBAAmB,sBACf,oBAAoB,YACpB,iBAAiB;AAAA,cACrB;AAAA,YAAA,MAJ6B,mBAK5B;AAEH,gBAAI,wBAAwB;AAC1B,qCAAuB,KAAK,SAAS,QAAQ;AAAA,YAC/C,OAAO;AACL,sBAAQ,QAAQ;AAAA,YAClB;AAGA,oBAAQ,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAC3D,oBAAQ,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,KAAA,CAAM,CAAC;AAG5D,oBAAQ,kBAAkB,cAAc,YAAY;AAEpD,mBAAO,+CAA+C,QAAQ;AAAA,UAChE;AACA,iBAAO;AAAA,QACT;AAAA,QAEA,KAAK,UAAU;AAEb,cAAI,mBAAmB,oBAAoB,mBAAmB,qBAAqB;AACjF,kBAAM,QAAQ,QAAQ,kBAAkB;AACxC,kBAAM,MAAM,QAAQ,gBAAgB;AACpC,kBAAM,QAAQ,QAAQ;AAEtB,gBAAI,WAAW;AAEf,gBAAI,UAAU,OAAO,QAAQ,MAAM,QAAQ;AAEzC,yBAAW,MAAM,MAAM,GAAG,KAAK,IAAI,MAAM,MAAM,MAAM,CAAC;AAAA,YACxD,WAAW,UAAU,KAAK;AAExB,yBAAW,MAAM,MAAM,GAAG,KAAK,IAAI,MAAM,MAAM,GAAG;AAAA,YACpD,OAAO;AACL,qBAAO;AAAA,YACT;AAGA,kBAAM,0BAAyB,YAAO;AAAA,cACpC,mBAAmB,sBACf,oBAAoB,YACpB,iBAAiB;AAAA,cACrB;AAAA,YAAA,MAJ6B,mBAK5B;AAEH,gBAAI,wBAAwB;AAC1B,qCAAuB,KAAK,SAAS,QAAQ;AAAA,YAC/C,OAAO;AACL,sBAAQ,QAAQ;AAAA,YAClB;AAGA,oBAAQ,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,KAAA,CAAM,CAAC;AAC3D,oBAAQ,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,KAAA,CAAM,CAAC;AAG5D,oBAAQ,kBAAkB,OAAO,KAAK;AAEtC,mBAAO,4CAA4C,QAAQ;AAAA,UAC7D;AACA,iBAAO;AAAA,QACT;AAAA,QAEA;AAEE,iBAAO;AAAA,MAAA;AAAA,IAEb;AAAA,IAEQ,WAAW,OAA8C;AAC/D,aAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,uCAAA;AAAA,IAC9C;AAAA,IAEQ,WAAgC;AACtC,aAAO,MAAA;AACP,aAAO,EAAE,SAAS,MAAM,QAAQ,kBAAA;AAAA,IAClC;AAAA,IAEQ,UAAU,MAA4C;AAC5D,YAAM,YAAY,KAAK;AACvB,UAAI,cAAc,QAAW;AAC3B,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,wBAAA;AAAA,MAC9C;AAEA,aAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,8BAAA;AAAA,IAC9C;AAAA,IAEQ,KAAK,MAAuC;AAClD,YAAM,UAAU,KAAK;AACrB,UAAI,YAAY,QAAW;AACzB,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,gCAAA;AAAA,MAC9C;AACA,YAAM,UAAU,KAAK;AACrB,YAAM,gBAAgB,YAAY,UAAU,mBAAmB;AAC/D,aAAO,EAAE,SAAS,MAAM,QAAQ,cAAA;AAAA,IAClC;AAAA,IAEQ,UAA+B;AACrC,UAAI;AACF,cAAM,OAAO,WAAW,gBAAA;AACxB,eAAO,EAAE,SAAS,MAAM,QAAQ,KAAA;AAAA,MAClC,SAAS,OAAO;AACd,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,OAAO,KAAK,EAAA;AAAA,MAC1D;AAAA,IACF;AAAA,IAEA,MAAc,gBAA8C;AAC1D,UAAI;AACF,cAAM,SAAS,MAAM,iBAAA;AACrB,YAAI,CAAC,OAAQ,QAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,uBAAA;AAEzD,cAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,cAAM,YAAY;AAClB,cAAM,WAAW;AACjB,cAAM,MAAM,UAAU;AACtB,iBAAS,KAAK,YAAY,KAAK;AAE/B,cAAM,IAAI,QAAc,CAAC,YAAY;AACnC,gBAAM,eAAe,MAAM,QAAA;AAAA,QAC7B,CAAC;AAED,cAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,eAAO,QAAQ,MAAM;AACrB,eAAO,SAAS,MAAM;AACtB,cAAM,MAAM,OAAO,WAAW,IAAI;AAClC,mCAAK,UAAU,OAAO,GAAG;AAEzB,cAAM,SAAS,OAAO,UAAU,cAAc,IAAI;AAElD,cAAM,OAAA;AAON,eAAO,EAAE,SAAS,MAAM,QAAQ,OAAA;AAAA,MAClC,SAAS,OAAO;AACd,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,OAAO,KAAK,EAAA;AAAA,MAC1D;AAAA,IACF;AAAA,EACF;AA74BE,gBADW,uBACI;AADV,MAAM,uBAAN;AAg5BA,QAAM,uBAAuB,qBAAqB,YAAA;AC17BzD,QAAM,kBAAN,MAAM,gBAAe;AAAA,IAKX,cAAc;AAHd,2CAAsC,CAAA;AACtC,4CAAoC;AAAA,IAErB;AAAA,IAEvB,OAAO,cAA8B;AACnC,UAAI,CAAC,gBAAe,UAAU;AAC5B,wBAAe,WAAW,IAAI,gBAAA;AAAA,MAChC;AACA,aAAO,gBAAe;AAAA,IACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,oBAAoB,OAAe,QAAgB,GAAkB;;AACnE,YAAM,WAAW,WAAW,mBAAA;AAC5B,YAAM,cAAc,SAAS,KAAK,CAAC,CAAC,GAAG,MAAM,QAAQ,KAAK;AAE1D,UAAI,CAAC,aAAa;AAChB,gBAAQ,KAAK,wCAAwC,KAAK,EAAE;AAC5D,eAAO,CAAA;AAAA,MACT;AAEA,YAAM,gBAAgB,WAAW,kBAAkB,KAAK;AACxD,UAAI,CAAC,eAAe;AAClB,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO,CAAA;AAAA,MACT;AAEA,YAAM,mBAAkC,CAAA;AAExC,eAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,cAAM,YAAY,SAAS,cAAc,QAAQ;AACjD,kBAAU,cAAc,mBAAmB,IAAI,CAAC;AAChD,kBAAU,aAAa,sBAAsB,MAAM;AACnD,kBAAU,MAAM,UACd;AAEF,4BAAc,kBAAd,mBAA6B,aAAa,WAAW;AACrD,yBAAiB,KAAK,SAAS;AAAA,MACjC;AAEA,cAAQ,IAAI,6BAA6B,KAAK,4BAA4B,KAAK,EAAE;AACjF,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAmB,OAAmC;;AACpD,YAAM,gBAAgB,WAAW,kBAAkB,KAAK;AACxD,UAAI,CAAC,eAAe;AAClB,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO;AAAA,MACT;AAEA,YAAM,YAAY,SAAS,cAAc,QAAQ;AACjD,gBAAU,cAAc;AACxB,gBAAU,aAAa,sBAAsB,MAAM;AACnD,gBAAU,MAAM,UACd;AAEF,0BAAc,kBAAd,mBAA6B,aAAa,WAAW,cAAc;AAEnE,cAAQ,IAAI,iDAAiD,KAAK,EAAE;AACpE,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,cAAc,OAAwB;AACpC,YAAM,gBAAgB,WAAW,kBAAkB,KAAK;AACxD,UAAI,CAAC,eAAe;AAClB,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO;AAAA,MACT;AAEA,oBAAc,OAAA;AACd,cAAQ,IAAI,6CAA6C,KAAK,EAAE;AAChE,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,uBAAuB,SAA2B;AAChD,UAAI,UAAU;AAEd,YAAM,gBAAgB,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAEvD,iBAAW,SAAS,eAAe;AACjC,YAAI,KAAK,cAAc,KAAK,GAAG;AAC7B;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,iBAAiB,OAAmC;;AAClD,YAAM,gBAAgB,WAAW,kBAAkB,KAAK;AACxD,UAAI,CAAC,eAAe;AAClB,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO;AAAA,MACT;AAGA,YAAM,aAAa,cAAc,UAAU,IAAI;AAC/C,iBAAW,aAAa,wBAAwB,MAAM;AAGtD,0BAAc,kBAAd,mBAA6B,aAAa,YAAY;AAEtD,cAAQ,IAAI,4DAA4D,KAAK,EAAE;AAC/E,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,oBAAoB,oBAA4B,QAAgB;AAC9D,YAAM,YAAY,SAAS,cAAc,iBAAiB;AAC1D,UAAI,CAAC,WAAW;AACd,gBAAQ,KAAK,yCAAyC,iBAAiB,EAAE;AACzE,eAAO;AAAA,MACT;AAGA,YAAM,UAAU,UAAU,iBAAiB,0BAA0B;AACrE,UAAI,WAAW;AAEf,cAAQ,QAAQ,CAAC,YAAY;;AAC3B,YAAI,mBAAmB,aAAa;AAClC,gBAAM,aAAa,QAAQ,UAAU,IAAI;AACzC,qBAAW,aAAa,2BAA2B,MAAM;AACzD,wBAAQ,kBAAR,mBAAuB,aAAa,YAAY;AAChD;AAAA,QACF;AAAA,MACF,CAAC;AAED,cAAQ,IAAI,qDAAqD,QAAQ,WAAW;AACpF,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,qBAA2B;AACzB,YAAM,OAAO,SAAS,cAAc,MAAM,KAAK,SAAS;AAGxD,YAAM,kBAAkB,KAAK;AAG7B,WAAK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4EAOuD,gBAAgB,QAAQ,MAAM,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAM5G,cAAQ,IAAI,uCAAuC;AAAA,IACrD;AAAA;AAAA;AAAA;AAAA,IAKA,YAAY,mBAAmC;AAC7C,YAAM,YAAY,SAAS,cAAc,iBAAiB;AAC1D,UAAI,CAAC,WAAW;AACd,gBAAQ,KAAK,yCAAyC,iBAAiB,EAAE;AACzE,eAAO;AAAA,MACT;AAEA,YAAM,WAAW,MAAM,KAAK,UAAU,QAAQ;AAC9C,UAAI,SAAS,SAAS,GAAG;AACvB,gBAAQ,KAAK,iDAAiD;AAC9D,eAAO;AAAA,MACT;AAGA,eAAS,IAAI,SAAS,SAAS,GAAG,IAAI,GAAG,KAAK;AAC5C,cAAM,IAAI,KAAK,MAAM,KAAK,YAAY,IAAI,EAAE;AAC5C,SAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;AAAA,MACxD;AAGA,eAAS,QAAQ,CAAC,UAAU,UAAU,YAAY,KAAK,CAAC;AAExD,cAAQ,IAAI,8BAA8B,SAAS,MAAM,WAAW;AACpE,aAAO,SAAS;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,MAAM,qBAAqB,UAAkB,KAA8B;AACzE,aAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,mBAAW,MAAM;AACf,gBAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,oBAAU,aAAa,qBAAqB,MAAM;AAClD,oBAAU,MAAM,UACd;AACF,oBAAU,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAOtB,mBAAS,KAAK,YAAY,SAAS;AACnC,gBAAM,WAAW,MAAM,KAAK,UAAU,iBAAiB,eAAe,CAAC;AAEvE,kBAAQ,IAAI,mDAAmD,OAAO,IAAI;AAC1E,kBAAQ,QAAQ;AAAA,QAClB,GAAG,OAAO;AAAA,MACZ,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA,IAKA,uBAAuB,QAAgB,GAAkB;AACvD,YAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,gBAAU,aAAa,6BAA6B,MAAM;AAC1D,gBAAU,MAAM,UACd;AAEF,YAAM,WAA0B,CAAA;AAEhC,eAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,cAAM,OAAO,SAAS,cAAc,KAAK;AACzC,aAAK,YAAY;AAAA,4BACK,IAAI,CAAC;AAAA,yBACR,IAAI,CAAC;AAAA;AAExB,kBAAU,YAAY,IAAI;AAC1B,iBAAS,KAAK,KAAK,cAAc,QAAQ,CAAgB;AAAA,MAC3D;AAEA,eAAS,KAAK,YAAY,SAAS;AACnC,cAAQ,IAAI,0BAA0B,KAAK,wBAAwB;AACnE,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAgB,eAA2C;;AACzD,YAAM,WAAW,WAAW,kBAAkB,aAAa;AAC3D,UAAI,CAAC,UAAU;AACb,gBAAQ,KAAK,yCAAyC,aAAa,EAAE;AACrE,eAAO;AAAA,MACT;AAEA,YAAM,cAAc,SAAS,cAAc,KAAK;AAChD,kBAAY,aAAa,+BAA+B,MAAM;AAC9D,kBAAY,YAAY;AAAA;AAAA;AAAA;AAKxB,qBAAS,kBAAT,mBAAwB,aAAa,aAAa;AAClD,cAAQ,IAAI,+CAA+C,aAAa,EAAE;AAC1E,aAAO,YAAY,cAAc,QAAQ;AAAA,IAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,kBAAkB,OAAmC;;AACnD,YAAM,gBAAgB,WAAW,kBAAkB,KAAK;AACxD,UAAI,CAAC,eAAe;AAClB,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO;AAAA,MACT;AAEA,YAAM,aAAa,SAAS,cAAc,cAAc,QAAQ,aAAa;AAC7E,iBAAW,cAAc;AACzB,iBAAW,aAAa,0BAA0B,MAAM;AACxD,UAAI,cAAc,YAAY,UAAU;AACrC,mBAAiC,MAAM,UAAU;AAAA,MACpD;AAEA,0BAAc,kBAAd,mBAA6B,aAAa,YAAY;AACtD,cAAQ,IAAI,4DAA4D,KAAK,EAAE;AAC/E,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAgB,OAAe,UAA2B;AACxD,YAAM,UAAU,WAAW,kBAAkB,KAAK;AAClD,UAAI,CAAC,SAAS;AACZ,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO;AAAA,MACT;AAEA,cAAQ,YAAY;AACpB,cAAQ,aAAa,2BAA2B,MAAM;AACtD,cAAQ,IAAI,sDAAsD,KAAK,QAAQ,QAAQ,GAAG;AAC1F,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa,OAAmC;;AAC9C,YAAM,UAAU,WAAW,kBAAkB,KAAK;AAClD,UAAI,CAAC,SAAS;AACZ,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO;AAAA,MACT;AAEA,YAAM,UAAU,SAAS,cAAc,KAAK;AAC5C,cAAQ,aAAa,qBAAqB,MAAM;AAChD,cAAQ,MAAM,UAAU;AAExB,oBAAQ,kBAAR,mBAAuB,aAAa,SAAS;AAC7C,cAAQ,YAAY,OAAO;AAE3B,cAAQ,IAAI,6CAA6C,KAAK,gBAAgB;AAC9E,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,eAAe,OAAmC;AAChD,YAAM,UAAU,WAAW,kBAAkB,KAAK;AAClD,UAAI,EAAC,mCAAS,KAAI;AAChB,gBAAQ,KAAK,qCAAqC,KAAK,YAAY;AACnE,eAAO;AAAA,MACT;AAEA,YAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,gBAAU,KAAK,QAAQ;AACvB,gBAAU,cAAc,iBAAiB,QAAQ,EAAE;AACnD,gBAAU,aAAa,0BAA0B,MAAM;AACvD,gBAAU,MAAM,UAAU;AAE1B,eAAS,KAAK,aAAa,WAAW,SAAS,KAAK,UAAU;AAC9D,cAAQ,IAAI,wCAAwC,QAAQ,EAAE,GAAG;AACjE,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,YAAyB;AACvB,YAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,YAAM,aAAa,mBAAmB,MAAM;AAC5C,YAAM,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWtB,YAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQlB,eAAS,KAAK,YAAY,KAAK;AAC/B,cAAQ,IAAI,4CAA4C;AACxD,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,eAAe,OAAmC;;AAChD,YAAM,UAAU,WAAW,kBAAkB,KAAK;AAClD,UAAI,CAAC,SAAS;AACZ,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO;AAAA,MACT;AAEA,YAAM,WAAW,SAAS,cAAc,KAAK;AAC7C,eAAS,aAAa,sBAAsB,MAAM;AAClD,eAAS,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQzB,eAAS,YAAY;AAAA;AAAA;AAAA;AAAA;AAMrB,oBAAQ,kBAAR,mBAAuB,YAAY;AACnC,cAAQ,IAAI,+CAA+C,KAAK,EAAE;AAClE,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,iBAAiB,QAAgB,GAAS;AACxC,eAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,mBAAW,MAAM;AACf,gBAAM,MAAM,SAAS,cAAc,QAAQ;AAC3C,cAAI,cAAc,SAAS,IAAI,CAAC;AAChC,cAAI,aAAa,mBAAmB,MAAM;AAC1C,mBAAS,KAAK,YAAY,GAAG;AAE7B,qBAAW,MAAM,IAAI,OAAA,GAAU,GAAG;AAAA,QACpC,GAAG,IAAI,EAAE;AAAA,MACX;AAEA,cAAQ,IAAI,4BAA4B,KAAK,gBAAgB;AAAA,IAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,yBAA4C;;AAC1C,YAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,aAAO,aAAa,oBAAoB,MAAM;AAC9C,aAAO,MAAM,UAAU;AAEvB,eAAS,KAAK,YAAY,MAAM;AAGhC,YAAM,YAAY,OAAO,qBAAmB,YAAO,kBAAP,mBAAsB;AAClE,UAAI,WAAW;AACb,kBAAU,KAAK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7B;AAEA,cAAQ,IAAI,6CAA6C;AACzD,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,yBAAsC;AAEpC,UAAI,CAAC,OAAO,eAAe,IAAI,kBAAkB,GAAG;AAClD,eAAO,eAAe;AAAA,UACpB;AAAA,UACA,cAAc,YAAY;AAAA,YACxB,cAAc;AACZ,oBAAA;AACA,oBAAM,SAAS,KAAK,aAAa,EAAE,MAAM,QAAQ;AACjD,qBAAO,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAQrB;AAAA,UAAA;AAAA,QACF;AAAA,MAEJ;AAEA,YAAM,OAAO,SAAS,cAAc,kBAAkB;AACtD,WAAK,aAAa,oBAAoB,MAAM;AAC5C,eAAS,KAAK,YAAY,IAAI;AAE9B,cAAQ,IAAI,6CAA6C;AACzD,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,qBAAqB,OAAe,SAA0B;AAC5D,YAAM,UAAU,WAAW,kBAAkB,KAAK;AAClD,UAAI,CAAC,SAAS;AACZ,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO;AAAA,MACT;AAEA,cAAQ,cAAc;AACtB,cAAQ,aAAa,6BAA6B,MAAM;AACxD,cAAQ,IAAI,wDAAwD,KAAK,QAAQ,OAAO,GAAG;AAC3F,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,YAAY,OAAwB;AAClC,YAAM,UAAU,WAAW,kBAAkB,KAAK;AAClD,UAAI,CAAC,SAAS;AACZ,gBAAQ,KAAK,oDAAoD,KAAK,EAAE;AACxE,eAAO;AAAA,MACT;AAEA,cAAQ,MAAM,UAAU;AACxB,cAAQ,aAAa,oBAAoB,MAAM;AAC/C,cAAQ,IAAI,yCAAyC,KAAK,EAAE;AAC5D,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,MAAM,qBAAqB,MAAc,MAAoD;AAC3F,YAAM,QAAQ,KAAK;AAGnB,YAAM,SAAS,MAAM,qBAAqB,YAAY,MAAM,MAAM,MAAM,EAAE;AAG1E,YAAM,EAAE,WAAA,IAAe,WAAW,oBAAoB,KAAK;AAE3D,UAAI;AACJ,UAAI;AAEJ,UAAI,OAAO,SAAS;AAClB,YAAI,OAAO,cAAc;AACvB,oBAAU;AACV,oBAAU,wBAAwB,OAAO,aAAa,aAAa,OAAO,OAAO,aAAa,cAAc;AAAA,QAC9G,OAAO;AACL,oBAAU;AACV,oBAAU,OAAO;AAAA,QACnB;AAAA,MACF,OAAO;AACL,kBAAU;AACV,kBAAU,OAAO,SAAS;AAAA,MAC5B;AAEA,YAAM,aAAyB;AAAA,QAC7B,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,+BAAe,KAAA;AAAA,MAAK;AAGtB,WAAK,iBAAiB;AACtB,WAAK,SAAS;AAAA,QACZ,+BAAe,KAAA;AAAA,QACf,QAAQ,GAAG,IAAI,aAAa,KAAK;AAAA,QACjC,eAAe;AAAA,QACf;AAAA,QACA,gBAAgB,YAAY,cAAc,UAAU;AAAA,MAAA,CACrD;AAED,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAY,YAA6C;AAC7D,YAAM,YAA2D;AAAA,QAC/D,sBAAsB,YAAY,KAAK,4BAAA;AAAA,QACvC,sBAAsB,YAAY,KAAK,4BAAA;AAAA,QACvC,0BAA0B,YAAY,KAAK,yBAAA;AAAA,QAC3C,gBAAgB,YAAY,KAAK,uBAAA;AAAA,MAAuB;AAG1D,YAAM,aAAa,UAAU,UAAU;AACvC,UAAI,CAAC,YAAY;AACf,eAAO;AAAA,UACL;AAAA,UACA,cAAc;AAAA,UACd,OAAO,CAAA;AAAA,UACP,QAAQ;AAAA,UACR,SAAS,qBAAqB,UAAU;AAAA,QAAA;AAAA,MAE5C;AAEA,aAAO,WAAA;AAAA,IACT;AAAA,IAEA,MAAc,8BAAuD;AACnE,YAAM,QAAsB,CAAA;AAG5B,iBAAW,0BAAA;AAGX,YAAM,cAAc;AACpB,YAAM,cAAc,WAAW,eAAe,WAAW;AAEzD,UAAI,CAAC,aAAa;AAChB,eAAO;AAAA,UACL,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,OAAO,CAAA;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,QAAA;AAAA,MAEb;AAGA,WAAK,oBAAoB,aAAa,CAAC;AAGvC,YAAM,SAAS,MAAM,KAAK,qBAAqB,iBAAiB,EAAE,OAAO,aAAa;AACtF,YAAM,KAAK,MAAM;AAEjB,aAAO;AAAA,QACL,YAAY;AAAA,QACZ,cAAc;AAAA,QACd;AAAA,QACA,QAAQ,OAAO,YAAY;AAAA,QAC3B,SACE,OAAO,YAAY,cACf,qDACA,OAAO,YAAY,aACjB,iDACA;AAAA,MAAA;AAAA,IAEZ;AAAA,IAEA,MAAc,8BAAuD;AACnE,YAAM,QAAsB,CAAA;AAE5B,iBAAW,0BAAA;AACX,YAAM,cAAc;AAGpB,WAAK,cAAc,WAAW;AAG9B,YAAM,SAAS,MAAM,KAAK,qBAAqB,iBAAiB,EAAE,OAAO,aAAa;AACtF,YAAM,KAAK,MAAM;AAEjB,aAAO;AAAA,QACL,YAAY;AAAA,QACZ,cAAc;AAAA,QACd;AAAA,QACA,QAAQ,OAAO,YAAY,YAAY,OAAO,QAAQ,SAAS,aAAa;AAAA,QAC5E,SACE,OAAO,YAAY,WACf,uCACA;AAAA,MAAA;AAAA,IAEV;AAAA,IAEA,MAAc,2BAAoD;AAChE,YAAM,QAAsB,CAAA;AAE5B,iBAAW,0BAAA;AACX,YAAM,cAAc;AAGpB,WAAK,qBAAqB,aAAa,sBAAsB;AAE7D,YAAM,SAAS,MAAM,KAAK,qBAAqB,iBAAiB,EAAE,OAAO,aAAa;AACtF,YAAM,KAAK,MAAM;AAEjB,aAAO;AAAA,QACL,YAAY;AAAA,QACZ,cAAc;AAAA,QACd;AAAA,QACA,QAAQ,OAAO,YAAY,cAAc,OAAO,YAAY;AAAA,QAC5D,SAAS,2BAA2B,OAAO,OAAO;AAAA,MAAA;AAAA,IAEtD;AAAA,IAEA,MAAc,yBAAkD;AAC9D,YAAM,QAAsB,CAAA;AAE5B,iBAAW,0BAAA;AACX,YAAM,cAAc;AAGpB,WAAK,iBAAiB,WAAW;AAEjC,YAAM,SAAS,MAAM,KAAK,qBAAqB,iBAAiB,EAAE,OAAO,aAAa;AACtF,YAAM,KAAK,MAAM;AAEjB,aAAO;AAAA,QACL,YAAY;AAAA,QACZ,cAAc;AAAA,QACd;AAAA,QACA,QAAQ,OAAO,YAAY,eAAe,OAAO,YAAY;AAAA,QAC7D,SAAS,sBAAsB,OAAO,OAAO;AAAA,MAAA;AAAA,IAEjD;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAA6C;AACjD,YAAM,cAAc;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAGF,YAAM,UAA4B,CAAA;AAElC,iBAAW,MAAM,aAAa;AAE5B,aAAK,oBAAA;AACL,cAAM,SAAS,MAAM,KAAK,YAAY,EAAE;AACxC,gBAAQ,KAAK,MAAM;AAAA,MACrB;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,oBAAuC;AACrC,aAAO,KAAK;AAAA,IACd;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAyC;AACvC,aAAO,CAAC,GAAG,KAAK,aAAa;AAAA,IAC/B;AAAA;AAAA;AAAA;AAAA,IAKA,WAAiB;AACf,WAAK,gBAAgB,CAAA;AAAA,IACvB;AAAA,IAEQ,SAAS,OAAiC;AAChD,WAAK,cAAc,KAAK,KAAK;AAE7B,UAAI,KAAK,cAAc,SAAS,KAAK;AACnC,aAAK,gBAAgB,KAAK,cAAc,MAAM,IAAI;AAAA,MACpD;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,sBAA4B;AAC1B,YAAM,eAAe,SAAS;AAAA,QAC5B;AAAA,MAAA;AAQF,mBAAa,QAAQ,CAAC,OAAO,GAAG,QAAQ;AACxC,cAAQ,IAAI,+BAA+B,aAAa,MAAM,gBAAgB;AAAA,IAChF;AAAA;AAAA;AAAA;AAAA,IAKA,qBAIG;AACD,YAAM,eAAe,WAAW,mBAAA;AAEhC,aAAO,aAAa,IAAI,CAAC,CAAC,OAAO,WAAW,OAAO;AAAA,QACjD;AAAA,QACA;AAAA,QACA,SAAS,WAAW,kBAAkB,KAAK;AAAA,MAAA,EAC3C;AAAA,IACJ;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAgB,OAAiC;AAC/C,YAAM,EAAE,WAAA,IAAe,WAAW,oBAAoB,KAAK;AAC3D,aAAO;AAAA,IACT;AAAA,EACF;AA50BE,gBADI,iBACW;AADjB,MAAM,iBAAN;AA+0BO,QAAM,iBAAiB,eAAe,YAAA;ACp2BtC,WAAS,sBAAsB,SAAyB;AAC7D,WAAO,QAAQ,QAAQ,iBAAiB,EAAE;AAAA,EAC5C;ACEA,QAAM,2BAA2B;AACjC,QAAM,oBAAoB,IAAI,KAAK,KAAK,KAAK;AAEtC,QAAM,eAAN,MAAM,aAAY;AAAA,IAYf,cAAc;AAVd,sCAA0B,CAAA;AAC1B,oCAAwB;AACxB,2CAAyB;AACzB,0CAA8B;AAC9B,0CAA+B,CAAA;AAC/B,yCAA+B;AAC/B,oCAAkB;AAClB,yCAAuB;AACvB,uCAAqB;AAAA,IAEN;AAAA,IAEvB,OAAO,cAA2B;AAChC,UAAI,CAAC,aAAY,UAAU;AACzB,qBAAY,WAAW,IAAI,aAAA;AAAA,MAC7B;AACA,aAAO,aAAY;AAAA,IACrB;AAAA,IAEA,WAAW,QAA6B;AACtC,WAAK,SAAS;AACd,WAAK,aAAA;AAAA,IACP;AAAA,IAEA,qBAAqB,QAAsB;AACzC,UAAI,OAAO,WAAW,YAAa;AAEnC,UAAI;AACF,cAAM,kBAAkB,aAAa,QAAQ,wBAAwB;AACrE,YAAI,iBAAiB;AACnB;AAAA,QACF;AAEA,cAAM,iBAAoC;AAAA,UACxC,SAAS;AAAA,UACT,UAAU,CAAA;AAAA,UACV,eAAe;AAAA,UACf,cAAc;AAAA,UACd,cAAc,CAAA;AAAA,UACd,aAAa;AAAA,UACb,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,WAAW;AAAA,UACX,WAAW,KAAK,IAAA;AAAA,QAAI;AAGtB,qBAAa,QAAQ,0BAA0B,KAAK,UAAU,cAAc,CAAC;AAAA,MAC/E,SAAS,OAAO;AACd,gBAAQ,MAAM,wDAAwD,KAAK;AAAA,MAC7E;AAAA,IACF;AAAA,IAEA,cAA6B;AAC3B,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,eAAwB;AACtB,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,mBAA4B;AAC1B,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,kBAAiC;AAC/B,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,kBAAkC;AAChC,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,iBAAkC;AAChC,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,YAAqB;AACnB,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,iBAA0B;AACxB,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,WAAW,SAA4B;AACrC,WAAK,WAAW,CAAC,GAAG,KAAK,UAAU,OAAO;AAC1C,WAAK,aAAA;AAAA,IACP;AAAA,IAEA,cAAc,WAAmB,SAAqC;AACpE,WAAK,WAAW,KAAK,SAAS;AAAA,QAAI,CAAC,QACjC,IAAI,OAAO,YAAY,EAAE,GAAG,KAAK,GAAG,YAAY;AAAA,MAAA;AAElD,WAAK,aAAA;AAAA,IACP;AAAA,IAEA,cAAc,WAAyB;AACrC,WAAK,WAAW,KAAK,SAAS,OAAO,CAAC,QAAQ,IAAI,OAAO,SAAS;AAClE,WAAK,aAAA;AAAA,IACP;AAAA,IAEA,YAAY,UAA+B;AACzC,WAAK,WAAW;AAChB,WAAK,aAAA;AAAA,IACP;AAAA,IAEA,gBAAsB;AACpB,WAAK,WAAW,CAAA;AAChB,WAAK,aAAA;AAAA,IACP;AAAA,IAEA,aAAa,WAAoB,QAAuB,UAAgC;AACtF,WAAK,gBAAgB;AACrB,WAAK,eAAe;AACpB,WAAK,eAAe;AACpB,WAAK,aAAA;AAAA,IACP;AAAA,IAEA,QAAQ,MAA6B;AACnC,WAAK,cAAc;AACnB,WAAK,aAAA;AAAA,IACP;AAAA,IAEA,eAAe,QAAiB,aAA4B;AAC1D,WAAK,SAAS;AACd,WAAK,cAAc;AACnB,WAAK,aAAA;AAAA,IACP;AAAA,IAEA,aAAa,SAAwB;AACnC,WAAK,YAAY;AACjB,WAAK,aAAA;AAAA,IACP;AAAA;AAAA,IAIQ,eAAqB;AAC3B,UAAI,OAAO,WAAW,YAAa;AAEnC,UAAI;AACF,cAAM,SAAS,aAAa,QAAQ,wBAAwB;AAC5D,YAAI,CAAC,OAAQ;AAEb,cAAM,UAAU,KAAK,MAAM,MAAM;AAEjC,YAAI,CAAC,WAAW,OAAO,YAAY,SAAU;AAE7C,YAAI,KAAK,IAAA,IAAQ,QAAQ,YAAY,mBAAmB;AACtD,uBAAa,WAAW,wBAAwB;AAChD;AAAA,QACF;AAEA,YAAI,KAAK,UAAU,QAAQ,YAAY,KAAK,QAAQ;AAClD,kBAAQ,IAAI,sDAAsD;AAAA,QACpE;AAEA,aAAK,WAAW,QAAQ,SAAS,IAAI,CAAC,QAAQ;;AAI5C,cAAI,IAAI,GAAG,WAAW,cAAc,GAAG;AACrC,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,SAAS;AAAA,cACT,aAAa;AAAA,cACb,iBAAiB;AAAA;AAAA,cACjB,WAAW,IAAI,KAAK,IAAI,SAAS;AAAA,cACjC,OAAO,CAAC,EAAE,MAAM,QAAQ,SAAS,qBAAqB;AAAA,YAAA;AAAA,UAE1D;AAEA,gBAAM,cAA2B;AAAA,YAC/B,GAAG;AAAA,YACH,WAAW,IAAI,KAAK,IAAI,SAAS;AAAA,YACjC,aAAa;AAAA,YACb,kBAAkB,IAAI;AAAA;AAAA,YACtB,YAAY,IAAI;AAAA;AAAA,YAChB,OAAO,IAAI,SAAS,CAAA;AAAA;AAAA,UAAC;AAIvB,gBAAI,iBAAY,UAAZ,mBAAmB,YAAW,KAAK,YAAY,SAAS;AAC1D,kBAAM,eAAe,YAAY,QAAQ,QAAQ,qBAAqB,EAAE,EAAE,KAAA;AAC1E,gBAAI,gBAAgB,YAAY,OAAO;AACrC,0BAAY,MAAM,KAAK;AAAA,gBACrB,MAAM;AAAA,gBACN,SAAS;AAAA,cAAA,CACV;AAAA,YACH;AAAA,UACF;AAEA,iBAAO;AAAA,QACT,CAAC;AAED,aAAK,gBAAgB,QAAQ;AAC7B,aAAK,eAAe,QAAQ;AAC5B,aAAK,eAAe,QAAQ;AAC5B,aAAK,cAAc,QAAQ;AAC3B,aAAK,SAAS,QAAQ;AACtB,aAAK,cAAc,QAAQ;AAC3B,aAAK,YAAY,QAAQ,aAAa;AAAA,MACxC,SAAS,OAAO;AACd,gBAAQ,KAAK,0CAA0C,KAAK;AAAA,MAC9D;AAAA,IACF;AAAA,IAEQ,eAAqB;AAC3B,UAAI,OAAO,WAAW,eAAe,CAAC,KAAK,OAAQ;AAEnD,UAAI;AACF,cAAM,qBAAqB,KAAK,SAC7B,OAAO,CAAC,QAAQ;AACf,cAAI,CAAC,IAAI,cAAe,QAAO;AAE/B,cAAI,IAAI,qBAAqB,cAAc,IAAI,qBAAqB,oBAAoB;AACtF,mBAAO;AAAA,UACT;AAGA,gBAAM,QAAQ,IAAI,SAAS,CAAA;AAC3B,iBAAO,MAAM,SAAS;AAAA,QACxB,CAAC,EACA,OAAO,CAAC,QAAQ,EAAE,IAAI,mBAAmB,IAAI,YAAY,uBAAuB,EAChF,IAAI,CAAC,SAAS;AAAA,UACb,IAAI,IAAI;AAAA,UACR,SAAS,sBAAsB,IAAI,OAAO;AAAA,UAC1C,QAAQ,IAAI;AAAA,UACZ,WAAW,IAAI,UAAU,YAAA;AAAA,UACzB,MAAM,IAAI;AAAA,UACV,uBAAuB,IAAI;AAAA,UAC3B,mBAAmB,IAAI;AAAA,UACvB,iBAAiB,IAAI;AAAA,UACrB,eAAe,IAAI;AAAA,UACnB,kBAAkB,IAAI;AAAA;AAAA,UACtB,YAAY,IAAI;AAAA;AAAA,UAChB,OAAO,IAAI;AAAA;AAAA,QAAA,EACX;AAEJ,cAAM,UAA6B;AAAA,UACjC,SAAS,KAAK;AAAA,UACd,UAAU;AAAA,UACV,eAAe,KAAK;AAAA,UACpB,cAAc,KAAK;AAAA,UACnB,cAAc,KAAK;AAAA,UACnB,aAAa,KAAK;AAAA,UAClB,QAAQ,KAAK;AAAA,UACb,aAAa,KAAK;AAAA,UAClB,WAAW,KAAK;AAAA,UAChB,WAAW,KAAK,IAAA;AAAA,QAAI;AAGtB,qBAAa,QAAQ,0BAA0B,KAAK,UAAU,OAAO,CAAC;AAAA,MACxE,SAAS,OAAO;AACd,gBAAQ,KAAK,0CAA0C,KAAK;AAAA,MAC9D;AAAA,IACF;AAAA,EACF;AAjQE,gBADW,cACI;AADV,MAAM,cAAN;AAoQA,QAAM,cAAc,YAAY,YAAA;AClRhC,QAAM,SAAS;AAAA,IACpB,SAAS;AAAA,EAEX;AAgEO,WAAS,qBAAqB,QAA2C;AAE9E,QAAI,iCAAQ,WAAW;AACrB,aAAO,mBAAmB,OAAO,SAAS;AAAA,IAC5C;AAQA,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AAMA,WAAS,mBAAmB,KAAqB;AAE/C,UAAM,WAAW,IAAI,KAAA,EAAO,QAAQ,OAAO,EAAE;AAE7C,QAAI,SAAS,WAAW,OAAO,KAAK,SAAS,WAAW,QAAQ,GAAG;AACjE,aAAO,SAAS,SAAS,SAAS,IAAI,WAAW,GAAG,QAAQ;AAAA,IAC9D;AACA,QAAI,SAAS,WAAW,SAAS,GAAG;AAClC,YAAM,QAAQ,SAAS,QAAQ,WAAW,OAAO;AACjD,aAAO,MAAM,SAAS,SAAS,IAAI,QAAQ,GAAG,KAAK;AAAA,IACrD;AACA,QAAI,SAAS,WAAW,UAAU,GAAG;AACnC,YAAM,SAAS,SAAS,QAAQ,YAAY,QAAQ;AACpD,aAAO,OAAO,SAAS,SAAS,IAAI,SAAS,GAAG,MAAM;AAAA,IACxD;AAEA,QAAI,SAAS,SAAS,WAAW,KAAK,SAAS,SAAS,WAAW,GAAG;AACpE,aAAO,QAAQ,QAAQ;AAAA,IACzB;AACA,WAAO,SAAS,QAAQ;AAAA,EAC1B;ACjHO,MAAI;AACX,GAAC,SAAUC,OAAM;AACb,IAAAA,MAAK,cAAc,CAAC,MAAM;AAAA,IAAE;AAC5B,aAAS,SAAS,MAAM;AAAA,IAAE;AAC1B,IAAAA,MAAK,WAAW;AAChB,aAAS,YAAY,IAAI;AACrB,YAAM,IAAI,MAAK;AAAA,IACnB;AACA,IAAAA,MAAK,cAAc;AACnB,IAAAA,MAAK,cAAc,CAAC,UAAU;AAC1B,YAAM,MAAM,CAAA;AACZ,iBAAW,QAAQ,OAAO;AACtB,YAAI,IAAI,IAAI;AAAA,MAChB;AACA,aAAO;AAAA,IACX;AACA,IAAAA,MAAK,qBAAqB,CAAC,QAAQ;AAC/B,YAAM,YAAYA,MAAK,WAAW,GAAG,EAAE,OAAO,CAAC,MAAM,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,QAAQ;AACpF,YAAM,WAAW,CAAA;AACjB,iBAAW,KAAK,WAAW;AACvB,iBAAS,CAAC,IAAI,IAAI,CAAC;AAAA,MACvB;AACA,aAAOA,MAAK,aAAa,QAAQ;AAAA,IACrC;AACA,IAAAA,MAAK,eAAe,CAAC,QAAQ;AACzB,aAAOA,MAAK,WAAW,GAAG,EAAE,IAAI,SAAU,GAAG;AACzC,eAAO,IAAI,CAAC;AAAA,MAChB,CAAC;AAAA,IACL;AACA,IAAAA,MAAK,aAAa,OAAO,OAAO,SAAS,aACnC,CAAC,QAAQ,OAAO,KAAK,GAAG,IACxB,CAAC,WAAW;AACV,YAAM,OAAO,CAAA;AACb,iBAAW,OAAO,QAAQ;AACtB,YAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG,GAAG;AACnD,eAAK,KAAK,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AACJ,IAAAA,MAAK,OAAO,CAAC,KAAK,YAAY;AAC1B,iBAAW,QAAQ,KAAK;AACpB,YAAI,QAAQ,IAAI;AACZ,iBAAO;AAAA,MACf;AACA,aAAO;AAAA,IACX;AACA,IAAAA,MAAK,YAAY,OAAO,OAAO,cAAc,aACvC,CAAC,QAAQ,OAAO,UAAU,GAAG,IAC7B,CAAC,QAAQ,OAAO,QAAQ,YAAY,OAAO,SAAS,GAAG,KAAK,KAAK,MAAM,GAAG,MAAM;AACtF,aAAS,WAAW,OAAO,YAAY,OAAO;AAC1C,aAAO,MAAM,IAAI,CAAC,QAAS,OAAO,QAAQ,WAAW,IAAI,GAAG,MAAM,GAAI,EAAE,KAAK,SAAS;AAAA,IAC1F;AACA,IAAAA,MAAK,aAAa;AAClB,IAAAA,MAAK,wBAAwB,CAAC,GAAG,UAAU;AACvC,UAAI,OAAO,UAAU,UAAU;AAC3B,eAAO,MAAM,SAAQ;AAAA,MACzB;AACA,aAAO;AAAA,IACX;AAAA,EACJ,GAAG,SAAS,OAAO,CAAA,EAAG;AACf,MAAI;AACX,GAAC,SAAUC,aAAY;AACnB,IAAAA,YAAW,cAAc,CAAC,OAAO,WAAW;AACxC,aAAO;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA;AAAA,MACf;AAAA,IACI;AAAA,EACJ,GAAG,eAAe,aAAa,CAAA,EAAG;AAC3B,QAAM,gBAAgB,KAAK,YAAY;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACM,QAAM,gBAAgB,CAAC,SAAS;AACnC,UAAM,IAAI,OAAO;AACjB,YAAQ,GAAC;AAAA,MACL,KAAK;AACD,eAAO,cAAc;AAAA,MACzB,KAAK;AACD,eAAO,cAAc;AAAA,MACzB,KAAK;AACD,eAAO,OAAO,MAAM,IAAI,IAAI,cAAc,MAAM,cAAc;AAAA,MAClE,KAAK;AACD,eAAO,cAAc;AAAA,MACzB,KAAK;AACD,eAAO,cAAc;AAAA,MACzB,KAAK;AACD,eAAO,cAAc;AAAA,MACzB,KAAK;AACD,eAAO,cAAc;AAAA,MACzB,KAAK;AACD,YAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,iBAAO,cAAc;AAAA,QACzB;AACA,YAAI,SAAS,MAAM;AACf,iBAAO,cAAc;AAAA,QACzB;AACA,YAAI,KAAK,QAAQ,OAAO,KAAK,SAAS,cAAc,KAAK,SAAS,OAAO,KAAK,UAAU,YAAY;AAChG,iBAAO,cAAc;AAAA,QACzB;AACA,YAAI,OAAO,QAAQ,eAAe,gBAAgB,KAAK;AACnD,iBAAO,cAAc;AAAA,QACzB;AACA,YAAI,OAAO,QAAQ,eAAe,gBAAgB,KAAK;AACnD,iBAAO,cAAc;AAAA,QACzB;AACA,YAAI,OAAO,SAAS,eAAe,gBAAgB,MAAM;AACrD,iBAAO,cAAc;AAAA,QACzB;AACA,eAAO,cAAc;AAAA,MACzB;AACI,eAAO,cAAc;AAAA,IACjC;AAAA,EACA;ACnIO,QAAM,eAAe,KAAK,YAAY;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAAA,EAKM,MAAM,iBAAiB,MAAM;AAAA,IAChC,IAAI,SAAS;AACT,aAAO,KAAK;AAAA,IAChB;AAAA,IACA,YAAY,QAAQ;AAChB,YAAK;AACL,WAAK,SAAS,CAAA;AACd,WAAK,WAAW,CAAC,QAAQ;AACrB,aAAK,SAAS,CAAC,GAAG,KAAK,QAAQ,GAAG;AAAA,MACtC;AACA,WAAK,YAAY,CAAC,OAAO,OAAO;AAC5B,aAAK,SAAS,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI;AAAA,MAC1C;AACA,YAAM,cAAc,WAAW;AAC/B,UAAI,OAAO,gBAAgB;AAEvB,eAAO,eAAe,MAAM,WAAW;AAAA,MAC3C,OACK;AACD,aAAK,YAAY;AAAA,MACrB;AACA,WAAK,OAAO;AACZ,WAAK,SAAS;AAAA,IAClB;AAAA,IACA,OAAO,SAAS;AACZ,YAAM,SAAS,WACX,SAAU,OAAO;AACb,eAAO,MAAM;AAAA,MACjB;AACJ,YAAM,cAAc,EAAE,SAAS,GAAE;AACjC,YAAM,eAAe,CAAC,UAAU;AAC5B,mBAAW,SAAS,MAAM,QAAQ;AAC9B,cAAI,MAAM,SAAS,iBAAiB;AAChC,kBAAM,YAAY,IAAI,YAAY;AAAA,UACtC,WACS,MAAM,SAAS,uBAAuB;AAC3C,yBAAa,MAAM,eAAe;AAAA,UACtC,WACS,MAAM,SAAS,qBAAqB;AACzC,yBAAa,MAAM,cAAc;AAAA,UACrC,WACS,MAAM,KAAK,WAAW,GAAG;AAC9B,wBAAY,QAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,UAC1C,OACK;AACD,gBAAI,OAAO;AACX,gBAAI,IAAI;AACR,mBAAO,IAAI,MAAM,KAAK,QAAQ;AAC1B,oBAAM,KAAK,MAAM,KAAK,CAAC;AACvB,oBAAM,WAAW,MAAM,MAAM,KAAK,SAAS;AAC3C,kBAAI,CAAC,UAAU;AACX,qBAAK,EAAE,IAAI,KAAK,EAAE,KAAK,EAAE,SAAS,GAAE;AAAA,cAQxC,OACK;AACD,qBAAK,EAAE,IAAI,KAAK,EAAE,KAAK,EAAE,SAAS,GAAE;AACpC,qBAAK,EAAE,EAAE,QAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,cACvC;AACA,qBAAO,KAAK,EAAE;AACd;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AACA,mBAAa,IAAI;AACjB,aAAO;AAAA,IACX;AAAA,IACA,OAAO,OAAO,OAAO;AACjB,UAAI,EAAE,iBAAiB,WAAW;AAC9B,cAAM,IAAI,MAAM,mBAAmB,KAAK,EAAE;AAAA,MAC9C;AAAA,IACJ;AAAA,IACA,WAAW;AACP,aAAO,KAAK;AAAA,IAChB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,UAAU,KAAK,QAAQ,KAAK,uBAAuB,CAAC;AAAA,IACpE;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,OAAO,WAAW;AAAA,IAClC;AAAA,IACA,QAAQ,SAAS,CAAC,UAAU,MAAM,SAAS;AACvC,YAAM,cAAc,CAAA;AACpB,YAAM,aAAa,CAAA;AACnB,iBAAW,OAAO,KAAK,QAAQ;AAC3B,YAAI,IAAI,KAAK,SAAS,GAAG;AACrB,gBAAM,UAAU,IAAI,KAAK,CAAC;AAC1B,sBAAY,OAAO,IAAI,YAAY,OAAO,KAAK,CAAA;AAC/C,sBAAY,OAAO,EAAE,KAAK,OAAO,GAAG,CAAC;AAAA,QACzC,OACK;AACD,qBAAW,KAAK,OAAO,GAAG,CAAC;AAAA,QAC/B;AAAA,MACJ;AACA,aAAO,EAAE,YAAY,YAAW;AAAA,IACpC;AAAA,IACA,IAAI,aAAa;AACb,aAAO,KAAK,QAAO;AAAA,IACvB;AAAA,EACJ;AACA,WAAS,SAAS,CAAC,WAAW;AAC1B,UAAM,QAAQ,IAAI,SAAS,MAAM;AACjC,WAAO;AAAA,EACX;AClIA,QAAM,WAAW,CAAC,OAAO,SAAS;AAC9B,QAAI;AACJ,YAAQ,MAAM,MAAI;AAAA,MACd,KAAK,aAAa;AACd,YAAI,MAAM,aAAa,cAAc,WAAW;AAC5C,oBAAU;AAAA,QACd,OACK;AACD,oBAAU,YAAY,MAAM,QAAQ,cAAc,MAAM,QAAQ;AAAA,QACpE;AACA;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU,mCAAmC,KAAK,UAAU,MAAM,UAAU,KAAK,qBAAqB,CAAC;AACvG;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU,kCAAkC,KAAK,WAAW,MAAM,MAAM,IAAI,CAAC;AAC7E;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU;AACV;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU,yCAAyC,KAAK,WAAW,MAAM,OAAO,CAAC;AACjF;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU,gCAAgC,KAAK,WAAW,MAAM,OAAO,CAAC,eAAe,MAAM,QAAQ;AACrG;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU;AACV;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU;AACV;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU;AACV;AAAA,MACJ,KAAK,aAAa;AACd,YAAI,OAAO,MAAM,eAAe,UAAU;AACtC,cAAI,cAAc,MAAM,YAAY;AAChC,sBAAU,gCAAgC,MAAM,WAAW,QAAQ;AACnE,gBAAI,OAAO,MAAM,WAAW,aAAa,UAAU;AAC/C,wBAAU,GAAG,OAAO,sDAAsD,MAAM,WAAW,QAAQ;AAAA,YACvG;AAAA,UACJ,WACS,gBAAgB,MAAM,YAAY;AACvC,sBAAU,mCAAmC,MAAM,WAAW,UAAU;AAAA,UAC5E,WACS,cAAc,MAAM,YAAY;AACrC,sBAAU,iCAAiC,MAAM,WAAW,QAAQ;AAAA,UACxE,OACK;AACD,iBAAK,YAAY,MAAM,UAAU;AAAA,UACrC;AAAA,QACJ,WACS,MAAM,eAAe,SAAS;AACnC,oBAAU,WAAW,MAAM,UAAU;AAAA,QACzC,OACK;AACD,oBAAU;AAAA,QACd;AACA;AAAA,MACJ,KAAK,aAAa;AACd,YAAI,MAAM,SAAS;AACf,oBAAU,sBAAsB,MAAM,QAAQ,YAAY,MAAM,YAAY,aAAa,WAAW,IAAI,MAAM,OAAO;AAAA,iBAChH,MAAM,SAAS;AACpB,oBAAU,uBAAuB,MAAM,QAAQ,YAAY,MAAM,YAAY,aAAa,MAAM,IAAI,MAAM,OAAO;AAAA,iBAC5G,MAAM,SAAS;AACpB,oBAAU,kBAAkB,MAAM,QAAQ,sBAAsB,MAAM,YAAY,8BAA8B,eAAe,GAAG,MAAM,OAAO;AAAA,iBAC1I,MAAM,SAAS;AACpB,oBAAU,kBAAkB,MAAM,QAAQ,sBAAsB,MAAM,YAAY,8BAA8B,eAAe,GAAG,MAAM,OAAO;AAAA,iBAC1I,MAAM,SAAS;AACpB,oBAAU,gBAAgB,MAAM,QAAQ,sBAAsB,MAAM,YAAY,8BAA8B,eAAe,GAAG,IAAI,KAAK,OAAO,MAAM,OAAO,CAAC,CAAC;AAAA;AAE/J,oBAAU;AACd;AAAA,MACJ,KAAK,aAAa;AACd,YAAI,MAAM,SAAS;AACf,oBAAU,sBAAsB,MAAM,QAAQ,YAAY,MAAM,YAAY,YAAY,WAAW,IAAI,MAAM,OAAO;AAAA,iBAC/G,MAAM,SAAS;AACpB,oBAAU,uBAAuB,MAAM,QAAQ,YAAY,MAAM,YAAY,YAAY,OAAO,IAAI,MAAM,OAAO;AAAA,iBAC5G,MAAM,SAAS;AACpB,oBAAU,kBAAkB,MAAM,QAAQ,YAAY,MAAM,YAAY,0BAA0B,WAAW,IAAI,MAAM,OAAO;AAAA,iBACzH,MAAM,SAAS;AACpB,oBAAU,kBAAkB,MAAM,QAAQ,YAAY,MAAM,YAAY,0BAA0B,WAAW,IAAI,MAAM,OAAO;AAAA,iBACzH,MAAM,SAAS;AACpB,oBAAU,gBAAgB,MAAM,QAAQ,YAAY,MAAM,YAAY,6BAA6B,cAAc,IAAI,IAAI,KAAK,OAAO,MAAM,OAAO,CAAC,CAAC;AAAA;AAEpJ,oBAAU;AACd;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU;AACV;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU;AACV;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU,gCAAgC,MAAM,UAAU;AAC1D;AAAA,MACJ,KAAK,aAAa;AACd,kBAAU;AACV;AAAA,MACJ;AACI,kBAAU,KAAK;AACf,aAAK,YAAY,KAAK;AAAA,IAClC;AACI,WAAO,EAAE,QAAO;AAAA,EACpB;AC1GA,MAAI,mBAAmBC;AAKhB,WAAS,cAAc;AAC1B,WAAO;AAAA,EACX;ACNO,QAAM,YAAY,CAAC,WAAW;AACjC,UAAM,EAAE,MAAM,MAAM,WAAW,UAAS,IAAK;AAC7C,UAAM,WAAW,CAAC,GAAG,MAAM,GAAI,UAAU,QAAQ,CAAA,CAAG;AACpD,UAAM,YAAY;AAAA,MACd,GAAG;AAAA,MACH,MAAM;AAAA,IACd;AACI,QAAI,UAAU,YAAY,QAAW;AACjC,aAAO;AAAA,QACH,GAAG;AAAA,QACH,MAAM;AAAA,QACN,SAAS,UAAU;AAAA,MAC/B;AAAA,IACI;AACA,QAAI,eAAe;AACnB,UAAM,OAAO,UACR,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EACjB,MAAK,EACL,QAAO;AACZ,eAAW,OAAO,MAAM;AACpB,qBAAe,IAAI,WAAW,EAAE,MAAM,cAAc,aAAY,CAAE,EAAE;AAAA,IACxE;AACA,WAAO;AAAA,MACH,GAAG;AAAA,MACH,MAAM;AAAA,MACN,SAAS;AAAA,IACjB;AAAA,EACA;AAEO,WAAS,kBAAkB,KAAK,WAAW;AAC9C,UAAM,cAAc,YAAW;AAC/B,UAAM,QAAQ,UAAU;AAAA,MACpB;AAAA,MACA,MAAM,IAAI;AAAA,MACV,MAAM,IAAI;AAAA,MACV,WAAW;AAAA,QACP,IAAI,OAAO;AAAA;AAAA,QACX,IAAI;AAAA;AAAA,QACJ;AAAA;AAAA,QACA,gBAAgBA,WAAkB,SAAYA;AAAAA;AAAAA,MAC1D,EAAU,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAAA,IAC3B,CAAK;AACD,QAAI,OAAO,OAAO,KAAK,KAAK;AAAA,EAChC;AAAA,EACO,MAAM,YAAY;AAAA,IACrB,cAAc;AACV,WAAK,QAAQ;AAAA,IACjB;AAAA,IACA,QAAQ;AACJ,UAAI,KAAK,UAAU;AACf,aAAK,QAAQ;AAAA,IACrB;AAAA,IACA,QAAQ;AACJ,UAAI,KAAK,UAAU;AACf,aAAK,QAAQ;AAAA,IACrB;AAAA,IACA,OAAO,WAAW,QAAQ,SAAS;AAC/B,YAAM,aAAa,CAAA;AACnB,iBAAW,KAAK,SAAS;AACrB,YAAI,EAAE,WAAW;AACb,iBAAO;AACX,YAAI,EAAE,WAAW;AACb,iBAAO,MAAK;AAChB,mBAAW,KAAK,EAAE,KAAK;AAAA,MAC3B;AACA,aAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,WAAU;AAAA,IACpD;AAAA,IACA,aAAa,iBAAiB,QAAQ,OAAO;AACzC,YAAM,YAAY,CAAA;AAClB,iBAAW,QAAQ,OAAO;AACtB,cAAM,MAAM,MAAM,KAAK;AACvB,cAAM,QAAQ,MAAM,KAAK;AACzB,kBAAU,KAAK;AAAA,UACX;AAAA,UACA;AAAA,QAChB,CAAa;AAAA,MACL;AACA,aAAO,YAAY,gBAAgB,QAAQ,SAAS;AAAA,IACxD;AAAA,IACA,OAAO,gBAAgB,QAAQ,OAAO;AAClC,YAAM,cAAc,CAAA;AACpB,iBAAW,QAAQ,OAAO;AACtB,cAAM,EAAE,KAAK,MAAK,IAAK;AACvB,YAAI,IAAI,WAAW;AACf,iBAAO;AACX,YAAI,MAAM,WAAW;AACjB,iBAAO;AACX,YAAI,IAAI,WAAW;AACf,iBAAO,MAAK;AAChB,YAAI,MAAM,WAAW;AACjB,iBAAO,MAAK;AAChB,YAAI,IAAI,UAAU,gBAAgB,OAAO,MAAM,UAAU,eAAe,KAAK,YAAY;AACrF,sBAAY,IAAI,KAAK,IAAI,MAAM;AAAA,QACnC;AAAA,MACJ;AACA,aAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,YAAW;AAAA,IACrD;AAAA,EACJ;AACO,QAAM,UAAU,OAAO,OAAO;AAAA,IACjC,QAAQ;AAAA,EACZ,CAAC;AACM,QAAM,QAAQ,CAAC,WAAW,EAAE,QAAQ,SAAS,MAAK;AAClD,QAAM,KAAK,CAAC,WAAW,EAAE,QAAQ,SAAS,MAAK;AAC/C,QAAM,YAAY,CAAC,MAAM,EAAE,WAAW;AACtC,QAAM,UAAU,CAAC,MAAM,EAAE,WAAW;AACpC,QAAM,UAAU,CAAC,MAAM,EAAE,WAAW;AACpC,QAAM,UAAU,CAAC,MAAM,OAAO,YAAY,eAAe,aAAa;AC5GtE,MAAI;AACX,GAAC,SAAUC,YAAW;AAClB,IAAAA,WAAU,WAAW,CAAC,YAAY,OAAO,YAAY,WAAW,EAAE,YAAY,WAAW,CAAA;AAEzF,IAAAA,WAAU,WAAW,CAAC,YAAY,OAAO,YAAY,WAAW,UAAU,mCAAS;AAAA,EACvF,GAAG,cAAc,YAAY,CAAA,EAAG;AAAA,ECAhC,MAAM,mBAAmB;AAAA,IACrB,YAAY,QAAQ,OAAO,MAAM,KAAK;AAClC,WAAK,cAAc,CAAA;AACnB,WAAK,SAAS;AACd,WAAK,OAAO;AACZ,WAAK,QAAQ;AACb,WAAK,OAAO;AAAA,IAChB;AAAA,IACA,IAAI,OAAO;AACP,UAAI,CAAC,KAAK,YAAY,QAAQ;AAC1B,YAAI,MAAM,QAAQ,KAAK,IAAI,GAAG;AAC1B,eAAK,YAAY,KAAK,GAAG,KAAK,OAAO,GAAG,KAAK,IAAI;AAAA,QACrD,OACK;AACD,eAAK,YAAY,KAAK,GAAG,KAAK,OAAO,KAAK,IAAI;AAAA,QAClD;AAAA,MACJ;AACA,aAAO,KAAK;AAAA,IAChB;AAAA,EACJ;AACA,QAAM,eAAe,CAAC,KAAK,WAAW;AAClC,QAAI,QAAQ,MAAM,GAAG;AACjB,aAAO,EAAE,SAAS,MAAM,MAAM,OAAO,MAAK;AAAA,IAC9C,OACK;AACD,UAAI,CAAC,IAAI,OAAO,OAAO,QAAQ;AAC3B,cAAM,IAAI,MAAM,2CAA2C;AAAA,MAC/D;AACA,aAAO;AAAA,QACH,SAAS;AAAA,QACT,IAAI,QAAQ;AACR,cAAI,KAAK;AACL,mBAAO,KAAK;AAChB,gBAAM,QAAQ,IAAI,SAAS,IAAI,OAAO,MAAM;AAC5C,eAAK,SAAS;AACd,iBAAO,KAAK;AAAA,QAChB;AAAA,MACZ;AAAA,IACI;AAAA,EACJ;AACA,WAAS,oBAAoB,QAAQ;AACjC,QAAI,CAAC;AACD,aAAO,CAAA;AACX,UAAM,EAAE,UAAAC,WAAU,oBAAoB,gBAAgB,YAAW,IAAK;AACtE,QAAIA,cAAa,sBAAsB,iBAAiB;AACpD,YAAM,IAAI,MAAM,0FAA0F;AAAA,IAC9G;AACA,QAAIA;AACA,aAAO,EAAE,UAAUA,WAAU,YAAW;AAC5C,UAAM,YAAY,CAAC,KAAK,QAAQ;AAC5B,YAAM,EAAE,QAAO,IAAK;AACpB,UAAI,IAAI,SAAS,sBAAsB;AACnC,eAAO,EAAE,SAAS,WAAW,IAAI,aAAY;AAAA,MACjD;AACA,UAAI,OAAO,IAAI,SAAS,aAAa;AACjC,eAAO,EAAE,SAAS,WAAW,kBAAkB,IAAI,aAAY;AAAA,MACnE;AACA,UAAI,IAAI,SAAS;AACb,eAAO,EAAE,SAAS,IAAI,aAAY;AACtC,aAAO,EAAE,SAAS,WAAW,sBAAsB,IAAI,aAAY;AAAA,IACvE;AACA,WAAO,EAAE,UAAU,WAAW,YAAW;AAAA,EAC7C;AAAA,EACO,MAAM,QAAQ;AAAA,IACjB,IAAI,cAAc;AACd,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,SAAS,OAAO;AACZ,aAAO,cAAc,MAAM,IAAI;AAAA,IACnC;AAAA,IACA,gBAAgB,OAAO,KAAK;AACxB,aAAQ,OAAO;AAAA,QACX,QAAQ,MAAM,OAAO;AAAA,QACrB,MAAM,MAAM;AAAA,QACZ,YAAY,cAAc,MAAM,IAAI;AAAA,QACpC,gBAAgB,KAAK,KAAK;AAAA,QAC1B,MAAM,MAAM;AAAA,QACZ,QAAQ,MAAM;AAAA,MAC1B;AAAA,IACI;AAAA,IACA,oBAAoB,OAAO;AACvB,aAAO;AAAA,QACH,QAAQ,IAAI,YAAW;AAAA,QACvB,KAAK;AAAA,UACD,QAAQ,MAAM,OAAO;AAAA,UACrB,MAAM,MAAM;AAAA,UACZ,YAAY,cAAc,MAAM,IAAI;AAAA,UACpC,gBAAgB,KAAK,KAAK;AAAA,UAC1B,MAAM,MAAM;AAAA,UACZ,QAAQ,MAAM;AAAA,QAC9B;AAAA,MACA;AAAA,IACI;AAAA,IACA,WAAW,OAAO;AACd,YAAM,SAAS,KAAK,OAAO,KAAK;AAChC,UAAI,QAAQ,MAAM,GAAG;AACjB,cAAM,IAAI,MAAM,wCAAwC;AAAA,MAC5D;AACA,aAAO;AAAA,IACX;AAAA,IACA,YAAY,OAAO;AACf,YAAM,SAAS,KAAK,OAAO,KAAK;AAChC,aAAO,QAAQ,QAAQ,MAAM;AAAA,IACjC;AAAA,IACA,MAAM,MAAM,QAAQ;AAChB,YAAM,SAAS,KAAK,UAAU,MAAM,MAAM;AAC1C,UAAI,OAAO;AACP,eAAO,OAAO;AAClB,YAAM,OAAO;AAAA,IACjB;AAAA,IACA,UAAU,MAAM,QAAQ;AACpB,YAAM,MAAM;AAAA,QACR,QAAQ;AAAA,UACJ,QAAQ,CAAA;AAAA,UACR,QAAO,iCAAQ,UAAS;AAAA,UACxB,oBAAoB,iCAAQ;AAAA,QAC5C;AAAA,QACY,OAAM,iCAAQ,SAAQ,CAAA;AAAA,QACtB,gBAAgB,KAAK,KAAK;AAAA,QAC1B,QAAQ;AAAA,QACR;AAAA,QACA,YAAY,cAAc,IAAI;AAAA,MAC1C;AACQ,YAAM,SAAS,KAAK,WAAW,EAAE,MAAM,MAAM,IAAI,MAAM,QAAQ,KAAK;AACpE,aAAO,aAAa,KAAK,MAAM;AAAA,IACnC;AAAA,IACA,YAAY,MAAM;;AACd,YAAM,MAAM;AAAA,QACR,QAAQ;AAAA,UACJ,QAAQ,CAAA;AAAA,UACR,OAAO,CAAC,CAAC,KAAK,WAAW,EAAE;AAAA,QAC3C;AAAA,QACY,MAAM,CAAA;AAAA,QACN,gBAAgB,KAAK,KAAK;AAAA,QAC1B,QAAQ;AAAA,QACR;AAAA,QACA,YAAY,cAAc,IAAI;AAAA,MAC1C;AACQ,UAAI,CAAC,KAAK,WAAW,EAAE,OAAO;AAC1B,YAAI;AACA,gBAAM,SAAS,KAAK,WAAW,EAAE,MAAM,MAAM,CAAA,GAAI,QAAQ,KAAK;AAC9D,iBAAO,QAAQ,MAAM,IACf;AAAA,YACE,OAAO,OAAO;AAAA,UACtC,IACsB;AAAA,YACE,QAAQ,IAAI,OAAO;AAAA,UAC3C;AAAA,QACY,SACO,KAAK;AACR,eAAI,sCAAK,YAAL,mBAAc,kBAAd,mBAA6B,SAAS,gBAAgB;AACtD,iBAAK,WAAW,EAAE,QAAQ;AAAA,UAC9B;AACA,cAAI,SAAS;AAAA,YACT,QAAQ,CAAA;AAAA,YACR,OAAO;AAAA,UAC3B;AAAA,QACY;AAAA,MACJ;AACA,aAAO,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA,GAAI,QAAQ,IAAG,CAAE,EAAE,KAAK,CAAC,WAAW,QAAQ,MAAM,IAClF;AAAA,QACE,OAAO,OAAO;AAAA,MAC9B,IACc;AAAA,QACE,QAAQ,IAAI,OAAO;AAAA,MACnC,CAAa;AAAA,IACT;AAAA,IACA,MAAM,WAAW,MAAM,QAAQ;AAC3B,YAAM,SAAS,MAAM,KAAK,eAAe,MAAM,MAAM;AACrD,UAAI,OAAO;AACP,eAAO,OAAO;AAClB,YAAM,OAAO;AAAA,IACjB;AAAA,IACA,MAAM,eAAe,MAAM,QAAQ;AAC/B,YAAM,MAAM;AAAA,QACR,QAAQ;AAAA,UACJ,QAAQ,CAAA;AAAA,UACR,oBAAoB,iCAAQ;AAAA,UAC5B,OAAO;AAAA,QACvB;AAAA,QACY,OAAM,iCAAQ,SAAQ,CAAA;AAAA,QACtB,gBAAgB,KAAK,KAAK;AAAA,QAC1B,QAAQ;AAAA,QACR;AAAA,QACA,YAAY,cAAc,IAAI;AAAA,MAC1C;AACQ,YAAM,mBAAmB,KAAK,OAAO,EAAE,MAAM,MAAM,IAAI,MAAM,QAAQ,KAAK;AAC1E,YAAM,SAAS,OAAO,QAAQ,gBAAgB,IAAI,mBAAmB,QAAQ,QAAQ,gBAAgB;AACrG,aAAO,aAAa,KAAK,MAAM;AAAA,IACnC;AAAA,IACA,OAAO,OAAO,SAAS;AACnB,YAAM,qBAAqB,CAAC,QAAQ;AAChC,YAAI,OAAO,YAAY,YAAY,OAAO,YAAY,aAAa;AAC/D,iBAAO,EAAE,QAAO;AAAA,QACpB,WACS,OAAO,YAAY,YAAY;AACpC,iBAAO,QAAQ,GAAG;AAAA,QACtB,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ;AACA,aAAO,KAAK,YAAY,CAAC,KAAK,QAAQ;AAClC,cAAM,SAAS,MAAM,GAAG;AACxB,cAAM,WAAW,MAAM,IAAI,SAAS;AAAA,UAChC,MAAM,aAAa;AAAA,UACnB,GAAG,mBAAmB,GAAG;AAAA,QACzC,CAAa;AACD,YAAI,OAAO,YAAY,eAAe,kBAAkB,SAAS;AAC7D,iBAAO,OAAO,KAAK,CAAC,SAAS;AACzB,gBAAI,CAAC,MAAM;AACP,uBAAQ;AACR,qBAAO;AAAA,YACX,OACK;AACD,qBAAO;AAAA,YACX;AAAA,UACJ,CAAC;AAAA,QACL;AACA,YAAI,CAAC,QAAQ;AACT,mBAAQ;AACR,iBAAO;AAAA,QACX,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA,WAAW,OAAO,gBAAgB;AAC9B,aAAO,KAAK,YAAY,CAAC,KAAK,QAAQ;AAClC,YAAI,CAAC,MAAM,GAAG,GAAG;AACb,cAAI,SAAS,OAAO,mBAAmB,aAAa,eAAe,KAAK,GAAG,IAAI,cAAc;AAC7F,iBAAO;AAAA,QACX,OACK;AACD,iBAAO;AAAA,QACX;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA,YAAY,YAAY;AACpB,aAAO,IAAI,WAAW;AAAA,QAClB,QAAQ;AAAA,QACR,UAAU,sBAAsB;AAAA,QAChC,QAAQ,EAAE,MAAM,cAAc,WAAU;AAAA,MACpD,CAAS;AAAA,IACL;AAAA,IACA,YAAY,YAAY;AACpB,aAAO,KAAK,YAAY,UAAU;AAAA,IACtC;AAAA,IACA,YAAY,KAAK;AAEb,WAAK,MAAM,KAAK;AAChB,WAAK,OAAO;AACZ,WAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AACjC,WAAK,YAAY,KAAK,UAAU,KAAK,IAAI;AACzC,WAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAC3C,WAAK,iBAAiB,KAAK,eAAe,KAAK,IAAI;AACnD,WAAK,MAAM,KAAK,IAAI,KAAK,IAAI;AAC7B,WAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,WAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAC3C,WAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,WAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,WAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,WAAK,UAAU,KAAK,QAAQ,KAAK,IAAI;AACrC,WAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AACjC,WAAK,UAAU,KAAK,QAAQ,KAAK,IAAI;AACrC,WAAK,KAAK,KAAK,GAAG,KAAK,IAAI;AAC3B,WAAK,MAAM,KAAK,IAAI,KAAK,IAAI;AAC7B,WAAK,YAAY,KAAK,UAAU,KAAK,IAAI;AACzC,WAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AACjC,WAAK,UAAU,KAAK,QAAQ,KAAK,IAAI;AACrC,WAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AACjC,WAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,WAAK,OAAO,KAAK,KAAK,KAAK,IAAI;AAC/B,WAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,WAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAC3C,WAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAC3C,WAAK,WAAW,IAAI;AAAA,QAChB,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,IAAI;AAAA,MACtD;AAAA,IACI;AAAA,IACA,WAAW;AACP,aAAO,YAAY,OAAO,MAAM,KAAK,IAAI;AAAA,IAC7C;AAAA,IACA,WAAW;AACP,aAAO,YAAY,OAAO,MAAM,KAAK,IAAI;AAAA,IAC7C;AAAA,IACA,UAAU;AACN,aAAO,KAAK,SAAQ,EAAG,SAAQ;AAAA,IACnC;AAAA,IACA,QAAQ;AACJ,aAAO,SAAS,OAAO,IAAI;AAAA,IAC/B;AAAA,IACA,UAAU;AACN,aAAO,WAAW,OAAO,MAAM,KAAK,IAAI;AAAA,IAC5C;AAAA,IACA,GAAG,QAAQ;AACP,aAAO,SAAS,OAAO,CAAC,MAAM,MAAM,GAAG,KAAK,IAAI;AAAA,IACpD;AAAA,IACA,IAAI,UAAU;AACV,aAAO,gBAAgB,OAAO,MAAM,UAAU,KAAK,IAAI;AAAA,IAC3D;AAAA,IACA,UAAU,WAAW;AACjB,aAAO,IAAI,WAAW;AAAA,QAClB,GAAG,oBAAoB,KAAK,IAAI;AAAA,QAChC,QAAQ;AAAA,QACR,UAAU,sBAAsB;AAAA,QAChC,QAAQ,EAAE,MAAM,aAAa,UAAS;AAAA,MAClD,CAAS;AAAA,IACL;AAAA,IACA,QAAQ,KAAK;AACT,YAAM,mBAAmB,OAAO,QAAQ,aAAa,MAAM,MAAM;AACjE,aAAO,IAAI,WAAW;AAAA,QAClB,GAAG,oBAAoB,KAAK,IAAI;AAAA,QAChC,WAAW;AAAA,QACX,cAAc;AAAA,QACd,UAAU,sBAAsB;AAAA,MAC5C,CAAS;AAAA,IACL;AAAA,IACA,QAAQ;AACJ,aAAO,IAAI,WAAW;AAAA,QAClB,UAAU,sBAAsB;AAAA,QAChC,MAAM;AAAA,QACN,GAAG,oBAAoB,KAAK,IAAI;AAAA,MAC5C,CAAS;AAAA,IACL;AAAA,IACA,MAAM,KAAK;AACP,YAAM,iBAAiB,OAAO,QAAQ,aAAa,MAAM,MAAM;AAC/D,aAAO,IAAI,SAAS;AAAA,QAChB,GAAG,oBAAoB,KAAK,IAAI;AAAA,QAChC,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,UAAU,sBAAsB;AAAA,MAC5C,CAAS;AAAA,IACL;AAAA,IACA,SAAS,aAAa;AAClB,YAAM,OAAO,KAAK;AAClB,aAAO,IAAI,KAAK;AAAA,QACZ,GAAG,KAAK;AAAA,QACR;AAAA,MACZ,CAAS;AAAA,IACL;AAAA,IACA,KAAK,QAAQ;AACT,aAAO,YAAY,OAAO,MAAM,MAAM;AAAA,IAC1C;AAAA,IACA,WAAW;AACP,aAAO,YAAY,OAAO,IAAI;AAAA,IAClC;AAAA,IACA,aAAa;AACT,aAAO,KAAK,UAAU,MAAS,EAAE;AAAA,IACrC;AAAA,IACA,aAAa;AACT,aAAO,KAAK,UAAU,IAAI,EAAE;AAAA,IAChC;AAAA,EACJ;AACA,QAAM,YAAY;AAClB,QAAM,aAAa;AACnB,QAAM,YAAY;AAGlB,QAAM,YAAY;AAClB,QAAM,cAAc;AACpB,QAAM,WAAW;AACjB,QAAM,gBAAgB;AAatB,QAAM,aAAa;AAInB,QAAM,cAAc;AACpB,MAAI;AAEJ,QAAM,YAAY;AAClB,QAAM,gBAAgB;AAGtB,QAAM,YAAY;AAClB,QAAM,gBAAgB;AAEtB,QAAM,cAAc;AAEpB,QAAM,iBAAiB;AAMvB,QAAM,kBAAkB;AACxB,QAAM,YAAY,IAAI,OAAO,IAAI,eAAe,GAAG;AACnD,WAAS,gBAAgB,MAAM;AAC3B,QAAI,qBAAqB;AACzB,QAAI,KAAK,WAAW;AAChB,2BAAqB,GAAG,kBAAkB,UAAU,KAAK,SAAS;AAAA,IACtE,WACS,KAAK,aAAa,MAAM;AAC7B,2BAAqB,GAAG,kBAAkB;AAAA,IAC9C;AACA,UAAM,oBAAoB,KAAK,YAAY,MAAM;AACjD,WAAO,8BAA8B,kBAAkB,IAAI,iBAAiB;AAAA,EAChF;AACA,WAAS,UAAU,MAAM;AACrB,WAAO,IAAI,OAAO,IAAI,gBAAgB,IAAI,CAAC,GAAG;AAAA,EAClD;AAEO,WAAS,cAAc,MAAM;AAChC,QAAI,QAAQ,GAAG,eAAe,IAAI,gBAAgB,IAAI,CAAC;AACvD,UAAM,OAAO,CAAA;AACb,SAAK,KAAK,KAAK,QAAQ,OAAO,GAAG;AACjC,QAAI,KAAK;AACL,WAAK,KAAK,sBAAsB;AACpC,YAAQ,GAAG,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC;AAClC,WAAO,IAAI,OAAO,IAAI,KAAK,GAAG;AAAA,EAClC;AACA,WAAS,UAAU,IAAI,SAAS;AAC5B,SAAK,YAAY,QAAQ,CAAC,YAAY,UAAU,KAAK,EAAE,GAAG;AACtD,aAAO;AAAA,IACX;AACA,SAAK,YAAY,QAAQ,CAAC,YAAY,UAAU,KAAK,EAAE,GAAG;AACtD,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AACA,WAAS,WAAW,KAAK,KAAK;AAC1B,QAAI,CAAC,SAAS,KAAK,GAAG;AAClB,aAAO;AACX,QAAI;AACA,YAAM,CAAC,MAAM,IAAI,IAAI,MAAM,GAAG;AAC9B,UAAI,CAAC;AACD,eAAO;AAEX,YAAM,SAAS,OACV,QAAQ,MAAM,GAAG,EACjB,QAAQ,MAAM,GAAG,EACjB,OAAO,OAAO,UAAW,IAAK,OAAO,SAAS,KAAM,GAAI,GAAG;AAChE,YAAM,UAAU,KAAK,MAAM,KAAK,MAAM,CAAC;AACvC,UAAI,OAAO,YAAY,YAAY,YAAY;AAC3C,eAAO;AACX,UAAI,SAAS,YAAW,mCAAS,SAAQ;AACrC,eAAO;AACX,UAAI,CAAC,QAAQ;AACT,eAAO;AACX,UAAI,OAAO,QAAQ,QAAQ;AACvB,eAAO;AACX,aAAO;AAAA,IACX,QACM;AACF,aAAO;AAAA,IACX;AAAA,EACJ;AACA,WAAS,YAAY,IAAI,SAAS;AAC9B,SAAK,YAAY,QAAQ,CAAC,YAAY,cAAc,KAAK,EAAE,GAAG;AAC1D,aAAO;AAAA,IACX;AACA,SAAK,YAAY,QAAQ,CAAC,YAAY,cAAc,KAAK,EAAE,GAAG;AAC1D,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AAAA,EACO,MAAM,kBAAkB,QAAQ;AAAA,IACnC,OAAO,OAAO;AACV,UAAI,KAAK,KAAK,QAAQ;AAClB,cAAM,OAAO,OAAO,MAAM,IAAI;AAAA,MAClC;AACA,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,QAAQ;AACrC,cAAMC,OAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkBA,MAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAUA,KAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,YAAM,SAAS,IAAI,YAAW;AAC9B,UAAI,MAAM;AACV,iBAAW,SAAS,KAAK,KAAK,QAAQ;AAClC,YAAI,MAAM,SAAS,OAAO;AACtB,cAAI,MAAM,KAAK,SAAS,MAAM,OAAO;AACjC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,cACf,MAAM;AAAA,cACN,WAAW;AAAA,cACX,OAAO;AAAA,cACP,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,OAAO;AAC3B,cAAI,MAAM,KAAK,SAAS,MAAM,OAAO;AACjC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,cACf,MAAM;AAAA,cACN,WAAW;AAAA,cACX,OAAO;AAAA,cACP,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,UAAU;AAC9B,gBAAM,SAAS,MAAM,KAAK,SAAS,MAAM;AACzC,gBAAM,WAAW,MAAM,KAAK,SAAS,MAAM;AAC3C,cAAI,UAAU,UAAU;AACpB,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,gBAAI,QAAQ;AACR,gCAAkB,KAAK;AAAA,gBACnB,MAAM,aAAa;AAAA,gBACnB,SAAS,MAAM;AAAA,gBACf,MAAM;AAAA,gBACN,WAAW;AAAA,gBACX,OAAO;AAAA,gBACP,SAAS,MAAM;AAAA,cAC3C,CAAyB;AAAA,YACL,WACS,UAAU;AACf,gCAAkB,KAAK;AAAA,gBACnB,MAAM,aAAa;AAAA,gBACnB,SAAS,MAAM;AAAA,gBACf,MAAM;AAAA,gBACN,WAAW;AAAA,gBACX,OAAO;AAAA,gBACP,SAAS,MAAM;AAAA,cAC3C,CAAyB;AAAA,YACL;AACA,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,SAAS;AAC7B,cAAI,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG;AAC9B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,SAAS;AAC7B,cAAI,CAAC,YAAY;AACb,yBAAa,IAAI,OAAO,aAAa,GAAG;AAAA,UAC5C;AACA,cAAI,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG;AAC9B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,QAAQ;AAC5B,cAAI,CAAC,UAAU,KAAK,MAAM,IAAI,GAAG;AAC7B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,UAAU;AAC9B,cAAI,CAAC,YAAY,KAAK,MAAM,IAAI,GAAG;AAC/B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,QAAQ;AAC5B,cAAI,CAAC,UAAU,KAAK,MAAM,IAAI,GAAG;AAC7B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,SAAS;AAC7B,cAAI,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG;AAC9B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,QAAQ;AAC5B,cAAI,CAAC,UAAU,KAAK,MAAM,IAAI,GAAG;AAC7B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,OAAO;AAC3B,cAAI;AACA,gBAAI,IAAI,MAAM,IAAI;AAAA,UACtB,QACM;AACF,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,SAAS;AAC7B,gBAAM,MAAM,YAAY;AACxB,gBAAM,aAAa,MAAM,MAAM,KAAK,MAAM,IAAI;AAC9C,cAAI,CAAC,YAAY;AACb,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,QAAQ;AAC5B,gBAAM,OAAO,MAAM,KAAK,KAAI;AAAA,QAChC,WACS,MAAM,SAAS,YAAY;AAChC,cAAI,CAAC,MAAM,KAAK,SAAS,MAAM,OAAO,MAAM,QAAQ,GAAG;AACnD,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,YAAY,EAAE,UAAU,MAAM,OAAO,UAAU,MAAM,SAAQ;AAAA,cAC7D,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,eAAe;AACnC,gBAAM,OAAO,MAAM,KAAK,YAAW;AAAA,QACvC,WACS,MAAM,SAAS,eAAe;AACnC,gBAAM,OAAO,MAAM,KAAK,YAAW;AAAA,QACvC,WACS,MAAM,SAAS,cAAc;AAClC,cAAI,CAAC,MAAM,KAAK,WAAW,MAAM,KAAK,GAAG;AACrC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,YAAY,EAAE,YAAY,MAAM,MAAK;AAAA,cACrC,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,YAAY;AAChC,cAAI,CAAC,MAAM,KAAK,SAAS,MAAM,KAAK,GAAG;AACnC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,YAAY,EAAE,UAAU,MAAM,MAAK;AAAA,cACnC,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,YAAY;AAChC,gBAAM,QAAQ,cAAc,KAAK;AACjC,cAAI,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG;AACzB,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,YAAY;AAAA,cACZ,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,QAAQ;AAC5B,gBAAM,QAAQ;AACd,cAAI,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG;AACzB,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,YAAY;AAAA,cACZ,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,QAAQ;AAC5B,gBAAM,QAAQ,UAAU,KAAK;AAC7B,cAAI,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG;AACzB,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,YAAY;AAAA,cACZ,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,YAAY;AAChC,cAAI,CAAC,cAAc,KAAK,MAAM,IAAI,GAAG;AACjC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,MAAM;AAC1B,cAAI,CAAC,UAAU,MAAM,MAAM,MAAM,OAAO,GAAG;AACvC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,OAAO;AAC3B,cAAI,CAAC,WAAW,MAAM,MAAM,MAAM,GAAG,GAAG;AACpC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,QAAQ;AAC5B,cAAI,CAAC,YAAY,MAAM,MAAM,MAAM,OAAO,GAAG;AACzC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,UAAU;AAC9B,cAAI,CAAC,YAAY,KAAK,MAAM,IAAI,GAAG;AAC/B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,aAAa;AACjC,cAAI,CAAC,eAAe,KAAK,MAAM,IAAI,GAAG;AAClC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,YAAY;AAAA,cACZ,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,OACK;AACD,eAAK,YAAY,KAAK;AAAA,QAC1B;AAAA,MACJ;AACA,aAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,MAAM,KAAI;AAAA,IACpD;AAAA,IACA,OAAO,OAAO,YAAY,SAAS;AAC/B,aAAO,KAAK,WAAW,CAAC,SAAS,MAAM,KAAK,IAAI,GAAG;AAAA,QAC/C;AAAA,QACA,MAAM,aAAa;AAAA,QACnB,GAAG,UAAU,SAAS,OAAO;AAAA,MACzC,CAAS;AAAA,IACL;AAAA,IACA,UAAU,OAAO;AACb,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,QAAQ,CAAC,GAAG,KAAK,KAAK,QAAQ,KAAK;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,MAAM,SAAS;AACX,aAAO,KAAK,UAAU,EAAE,MAAM,SAAS,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC3E;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,UAAU,EAAE,MAAM,OAAO,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IACzE;AAAA,IACA,MAAM,SAAS;AACX,aAAO,KAAK,UAAU,EAAE,MAAM,SAAS,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC3E;AAAA,IACA,KAAK,SAAS;AACV,aAAO,KAAK,UAAU,EAAE,MAAM,QAAQ,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC1E;AAAA,IACA,OAAO,SAAS;AACZ,aAAO,KAAK,UAAU,EAAE,MAAM,UAAU,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC5E;AAAA,IACA,KAAK,SAAS;AACV,aAAO,KAAK,UAAU,EAAE,MAAM,QAAQ,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC1E;AAAA,IACA,MAAM,SAAS;AACX,aAAO,KAAK,UAAU,EAAE,MAAM,SAAS,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC3E;AAAA,IACA,KAAK,SAAS;AACV,aAAO,KAAK,UAAU,EAAE,MAAM,QAAQ,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC1E;AAAA,IACA,OAAO,SAAS;AACZ,aAAO,KAAK,UAAU,EAAE,MAAM,UAAU,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC5E;AAAA,IACA,UAAU,SAAS;AAEf,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,GAAG,UAAU,SAAS,OAAO;AAAA,MACzC,CAAS;AAAA,IACL;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,UAAU,EAAE,MAAM,OAAO,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IACzE;AAAA,IACA,GAAG,SAAS;AACR,aAAO,KAAK,UAAU,EAAE,MAAM,MAAM,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IACxE;AAAA,IACA,KAAK,SAAS;AACV,aAAO,KAAK,UAAU,EAAE,MAAM,QAAQ,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC1E;AAAA,IACA,SAAS,SAAS;AACd,UAAI,OAAO,YAAY,UAAU;AAC7B,eAAO,KAAK,UAAU;AAAA,UAClB,MAAM;AAAA,UACN,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,SAAS;AAAA,QACzB,CAAa;AAAA,MACL;AACA,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,WAAW,QAAO,mCAAS,eAAc,cAAc,OAAO,mCAAS;AAAA,QACvE,SAAQ,mCAAS,WAAU;AAAA,QAC3B,QAAO,mCAAS,UAAS;AAAA,QACzB,GAAG,UAAU,SAAS,mCAAS,OAAO;AAAA,MAClD,CAAS;AAAA,IACL;AAAA,IACA,KAAK,SAAS;AACV,aAAO,KAAK,UAAU,EAAE,MAAM,QAAQ,QAAO,CAAE;AAAA,IACnD;AAAA,IACA,KAAK,SAAS;AACV,UAAI,OAAO,YAAY,UAAU;AAC7B,eAAO,KAAK,UAAU;AAAA,UAClB,MAAM;AAAA,UACN,WAAW;AAAA,UACX,SAAS;AAAA,QACzB,CAAa;AAAA,MACL;AACA,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,WAAW,QAAO,mCAAS,eAAc,cAAc,OAAO,mCAAS;AAAA,QACvE,GAAG,UAAU,SAAS,mCAAS,OAAO;AAAA,MAClD,CAAS;AAAA,IACL;AAAA,IACA,SAAS,SAAS;AACd,aAAO,KAAK,UAAU,EAAE,MAAM,YAAY,GAAG,UAAU,SAAS,OAAO,GAAG;AAAA,IAC9E;AAAA,IACA,MAAM,OAAO,SAAS;AAClB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN;AAAA,QACA,GAAG,UAAU,SAAS,OAAO;AAAA,MACzC,CAAS;AAAA,IACL;AAAA,IACA,SAAS,OAAO,SAAS;AACrB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN;AAAA,QACA,UAAU,mCAAS;AAAA,QACnB,GAAG,UAAU,SAAS,mCAAS,OAAO;AAAA,MAClD,CAAS;AAAA,IACL;AAAA,IACA,WAAW,OAAO,SAAS;AACvB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN;AAAA,QACA,GAAG,UAAU,SAAS,OAAO;AAAA,MACzC,CAAS;AAAA,IACL;AAAA,IACA,SAAS,OAAO,SAAS;AACrB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN;AAAA,QACA,GAAG,UAAU,SAAS,OAAO;AAAA,MACzC,CAAS;AAAA,IACL;AAAA,IACA,IAAI,WAAW,SAAS;AACpB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,GAAG,UAAU,SAAS,OAAO;AAAA,MACzC,CAAS;AAAA,IACL;AAAA,IACA,IAAI,WAAW,SAAS;AACpB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,GAAG,UAAU,SAAS,OAAO;AAAA,MACzC,CAAS;AAAA,IACL;AAAA,IACA,OAAO,KAAK,SAAS;AACjB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,GAAG,UAAU,SAAS,OAAO;AAAA,MACzC,CAAS;AAAA,IACL;AAAA;AAAA;AAAA;AAAA,IAIA,SAAS,SAAS;AACd,aAAO,KAAK,IAAI,GAAG,UAAU,SAAS,OAAO,CAAC;AAAA,IAClD;AAAA,IACA,OAAO;AACH,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,QAAQ,CAAC,GAAG,KAAK,KAAK,QAAQ,EAAE,MAAM,QAAQ;AAAA,MAC1D,CAAS;AAAA,IACL;AAAA,IACA,cAAc;AACV,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,QAAQ,CAAC,GAAG,KAAK,KAAK,QAAQ,EAAE,MAAM,eAAe;AAAA,MACjE,CAAS;AAAA,IACL;AAAA,IACA,cAAc;AACV,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,QAAQ,CAAC,GAAG,KAAK,KAAK,QAAQ,EAAE,MAAM,eAAe;AAAA,MACjE,CAAS;AAAA,IACL;AAAA,IACA,IAAI,aAAa;AACb,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,UAAU;AAAA,IACjE;AAAA,IACA,IAAI,SAAS;AACT,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,MAAM;AAAA,IAC7D;AAAA,IACA,IAAI,SAAS;AACT,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,MAAM;AAAA,IAC7D;AAAA,IACA,IAAI,aAAa;AACb,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,UAAU;AAAA,IACjE;AAAA,IACA,IAAI,UAAU;AACV,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,OAAO;AAAA,IAC9D;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,KAAK;AAAA,IAC5D;AAAA,IACA,IAAI,UAAU;AACV,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,OAAO;AAAA,IAC9D;AAAA,IACA,IAAI,SAAS;AACT,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,MAAM;AAAA,IAC7D;AAAA,IACA,IAAI,WAAW;AACX,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,QAAQ;AAAA,IAC/D;AAAA,IACA,IAAI,SAAS;AACT,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,MAAM;AAAA,IAC7D;AAAA,IACA,IAAI,UAAU;AACV,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,OAAO;AAAA,IAC9D;AAAA,IACA,IAAI,SAAS;AACT,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,MAAM;AAAA,IAC7D;AAAA,IACA,IAAI,OAAO;AACP,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,IAAI;AAAA,IAC3D;AAAA,IACA,IAAI,SAAS;AACT,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,MAAM;AAAA,IAC7D;AAAA,IACA,IAAI,WAAW;AACX,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,QAAQ;AAAA,IAC/D;AAAA,IACA,IAAI,cAAc;AAEd,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,WAAW;AAAA,IAClE;AAAA,IACA,IAAI,YAAY;AACZ,UAAI,MAAM;AACV,iBAAW,MAAM,KAAK,KAAK,QAAQ;AAC/B,YAAI,GAAG,SAAS,OAAO;AACnB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,YAAY;AACZ,UAAI,MAAM;AACV,iBAAW,MAAM,KAAK,KAAK,QAAQ;AAC/B,YAAI,GAAG,SAAS,OAAO;AACnB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACA,YAAU,SAAS,CAAC,WAAW;AAC3B,WAAO,IAAI,UAAU;AAAA,MACjB,QAAQ,CAAA;AAAA,MACR,UAAU,sBAAsB;AAAA,MAChC,SAAQ,iCAAQ,WAAU;AAAA,MAC1B,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAEA,WAAS,mBAAmB,KAAK,MAAM;AACnC,UAAM,eAAe,IAAI,SAAQ,EAAG,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI;AACzD,UAAM,gBAAgB,KAAK,SAAQ,EAAG,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI;AAC3D,UAAM,WAAW,cAAc,eAAe,cAAc;AAC5D,UAAM,SAAS,OAAO,SAAS,IAAI,QAAQ,QAAQ,EAAE,QAAQ,KAAK,EAAE,CAAC;AACrE,UAAM,UAAU,OAAO,SAAS,KAAK,QAAQ,QAAQ,EAAE,QAAQ,KAAK,EAAE,CAAC;AACvE,WAAQ,SAAS,UAAW,MAAM;AAAA,EACtC;AAAA,EACO,MAAM,kBAAkB,QAAQ;AAAA,IACnC,cAAc;AACV,YAAM,GAAG,SAAS;AAClB,WAAK,MAAM,KAAK;AAChB,WAAK,MAAM,KAAK;AAChB,WAAK,OAAO,KAAK;AAAA,IACrB;AAAA,IACA,OAAO,OAAO;AACV,UAAI,KAAK,KAAK,QAAQ;AAClB,cAAM,OAAO,OAAO,MAAM,IAAI;AAAA,MAClC;AACA,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,QAAQ;AACrC,cAAMA,OAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkBA,MAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAUA,KAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,UAAI,MAAM;AACV,YAAM,SAAS,IAAI,YAAW;AAC9B,iBAAW,SAAS,KAAK,KAAK,QAAQ;AAClC,YAAI,MAAM,SAAS,OAAO;AACtB,cAAI,CAAC,KAAK,UAAU,MAAM,IAAI,GAAG;AAC7B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,UAAU;AAAA,cACV,UAAU;AAAA,cACV,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,OAAO;AAC3B,gBAAM,WAAW,MAAM,YAAY,MAAM,OAAO,MAAM,QAAQ,MAAM,QAAQ,MAAM;AAClF,cAAI,UAAU;AACV,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,cACf,MAAM;AAAA,cACN,WAAW,MAAM;AAAA,cACjB,OAAO;AAAA,cACP,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,OAAO;AAC3B,gBAAM,SAAS,MAAM,YAAY,MAAM,OAAO,MAAM,QAAQ,MAAM,QAAQ,MAAM;AAChF,cAAI,QAAQ;AACR,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,cACf,MAAM;AAAA,cACN,WAAW,MAAM;AAAA,cACjB,OAAO;AAAA,cACP,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,cAAc;AAClC,cAAI,mBAAmB,MAAM,MAAM,MAAM,KAAK,MAAM,GAAG;AACnD,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,YAAY,MAAM;AAAA,cAClB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,UAAU;AAC9B,cAAI,CAAC,OAAO,SAAS,MAAM,IAAI,GAAG;AAC9B,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,OACK;AACD,eAAK,YAAY,KAAK;AAAA,QAC1B;AAAA,MACJ;AACA,aAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,MAAM,KAAI;AAAA,IACpD;AAAA,IACA,IAAI,OAAO,SAAS;AAChB,aAAO,KAAK,SAAS,OAAO,OAAO,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IACxE;AAAA,IACA,GAAG,OAAO,SAAS;AACf,aAAO,KAAK,SAAS,OAAO,OAAO,OAAO,UAAU,SAAS,OAAO,CAAC;AAAA,IACzE;AAAA,IACA,IAAI,OAAO,SAAS;AAChB,aAAO,KAAK,SAAS,OAAO,OAAO,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IACxE;AAAA,IACA,GAAG,OAAO,SAAS;AACf,aAAO,KAAK,SAAS,OAAO,OAAO,OAAO,UAAU,SAAS,OAAO,CAAC;AAAA,IACzE;AAAA,IACA,SAAS,MAAM,OAAO,WAAW,SAAS;AACtC,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,QAAQ;AAAA,UACJ,GAAG,KAAK,KAAK;AAAA,UACb;AAAA,YACI;AAAA,YACA;AAAA,YACA;AAAA,YACA,SAAS,UAAU,SAAS,OAAO;AAAA,UACvD;AAAA,QACA;AAAA,MACA,CAAS;AAAA,IACL;AAAA,IACA,UAAU,OAAO;AACb,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,QAAQ,CAAC,GAAG,KAAK,KAAK,QAAQ,KAAK;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,IAAI,SAAS;AACT,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,SAAS,SAAS;AACd,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,SAAS,SAAS;AACd,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,YAAY,SAAS;AACjB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,YAAY,SAAS;AACjB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,WAAW,OAAO,SAAS;AACvB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN;AAAA,QACA,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,OAAO,SAAS;AACZ,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,KAAK,SAAS;AACV,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,WAAW;AAAA,QACX,OAAO,OAAO;AAAA,QACd,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS,EAAE,UAAU;AAAA,QACT,MAAM;AAAA,QACN,WAAW;AAAA,QACX,OAAO,OAAO;AAAA,QACd,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,IAAI,WAAW;AACX,UAAI,MAAM;AACV,iBAAW,MAAM,KAAK,KAAK,QAAQ;AAC/B,YAAI,GAAG,SAAS,OAAO;AACnB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,WAAW;AACX,UAAI,MAAM;AACV,iBAAW,MAAM,KAAK,KAAK,QAAQ;AAC/B,YAAI,GAAG,SAAS,OAAO;AACnB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,CAAC,OAAO,GAAG,SAAS,SAAU,GAAG,SAAS,gBAAgB,KAAK,UAAU,GAAG,KAAK,CAAE;AAAA,IACtH;AAAA,IACA,IAAI,WAAW;AACX,UAAI,MAAM;AACV,UAAI,MAAM;AACV,iBAAW,MAAM,KAAK,KAAK,QAAQ;AAC/B,YAAI,GAAG,SAAS,YAAY,GAAG,SAAS,SAAS,GAAG,SAAS,cAAc;AACvE,iBAAO;AAAA,QACX,WACS,GAAG,SAAS,OAAO;AACxB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB,WACS,GAAG,SAAS,OAAO;AACxB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO,OAAO,SAAS,GAAG,KAAK,OAAO,SAAS,GAAG;AAAA,IACtD;AAAA,EACJ;AACA,YAAU,SAAS,CAAC,WAAW;AAC3B,WAAO,IAAI,UAAU;AAAA,MACjB,QAAQ,CAAA;AAAA,MACR,UAAU,sBAAsB;AAAA,MAChC,SAAQ,iCAAQ,WAAU;AAAA,MAC1B,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,kBAAkB,QAAQ;AAAA,IACnC,cAAc;AACV,YAAM,GAAG,SAAS;AAClB,WAAK,MAAM,KAAK;AAChB,WAAK,MAAM,KAAK;AAAA,IACpB;AAAA,IACA,OAAO,OAAO;AACV,UAAI,KAAK,KAAK,QAAQ;AAClB,YAAI;AACA,gBAAM,OAAO,OAAO,MAAM,IAAI;AAAA,QAClC,QACM;AACF,iBAAO,KAAK,iBAAiB,KAAK;AAAA,QACtC;AAAA,MACJ;AACA,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,QAAQ;AACrC,eAAO,KAAK,iBAAiB,KAAK;AAAA,MACtC;AACA,UAAI,MAAM;AACV,YAAM,SAAS,IAAI,YAAW;AAC9B,iBAAW,SAAS,KAAK,KAAK,QAAQ;AAClC,YAAI,MAAM,SAAS,OAAO;AACtB,gBAAM,WAAW,MAAM,YAAY,MAAM,OAAO,MAAM,QAAQ,MAAM,QAAQ,MAAM;AAClF,cAAI,UAAU;AACV,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,MAAM;AAAA,cACN,SAAS,MAAM;AAAA,cACf,WAAW,MAAM;AAAA,cACjB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,OAAO;AAC3B,gBAAM,SAAS,MAAM,YAAY,MAAM,OAAO,MAAM,QAAQ,MAAM,QAAQ,MAAM;AAChF,cAAI,QAAQ;AACR,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,MAAM;AAAA,cACN,SAAS,MAAM;AAAA,cACf,WAAW,MAAM;AAAA,cACjB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,cAAc;AAClC,cAAI,MAAM,OAAO,MAAM,UAAU,OAAO,CAAC,GAAG;AACxC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,YAAY,MAAM;AAAA,cAClB,SAAS,MAAM;AAAA,YACvC,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,OACK;AACD,eAAK,YAAY,KAAK;AAAA,QAC1B;AAAA,MACJ;AACA,aAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,MAAM,KAAI;AAAA,IACpD;AAAA,IACA,iBAAiB,OAAO;AACpB,YAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,wBAAkB,KAAK;AAAA,QACnB,MAAM,aAAa;AAAA,QACnB,UAAU,cAAc;AAAA,QACxB,UAAU,IAAI;AAAA,MAC1B,CAAS;AACD,aAAO;AAAA,IACX;AAAA,IACA,IAAI,OAAO,SAAS;AAChB,aAAO,KAAK,SAAS,OAAO,OAAO,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IACxE;AAAA,IACA,GAAG,OAAO,SAAS;AACf,aAAO,KAAK,SAAS,OAAO,OAAO,OAAO,UAAU,SAAS,OAAO,CAAC;AAAA,IACzE;AAAA,IACA,IAAI,OAAO,SAAS;AAChB,aAAO,KAAK,SAAS,OAAO,OAAO,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IACxE;AAAA,IACA,GAAG,OAAO,SAAS;AACf,aAAO,KAAK,SAAS,OAAO,OAAO,OAAO,UAAU,SAAS,OAAO,CAAC;AAAA,IACzE;AAAA,IACA,SAAS,MAAM,OAAO,WAAW,SAAS;AACtC,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,QAAQ;AAAA,UACJ,GAAG,KAAK,KAAK;AAAA,UACb;AAAA,YACI;AAAA,YACA;AAAA,YACA;AAAA,YACA,SAAS,UAAU,SAAS,OAAO;AAAA,UACvD;AAAA,QACA;AAAA,MACA,CAAS;AAAA,IACL;AAAA,IACA,UAAU,OAAO;AACb,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,QAAQ,CAAC,GAAG,KAAK,KAAK,QAAQ,KAAK;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,SAAS,SAAS;AACd,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO,OAAO,CAAC;AAAA,QACf,WAAW;AAAA,QACX,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,SAAS,SAAS;AACd,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO,OAAO,CAAC;AAAA,QACf,WAAW;AAAA,QACX,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,YAAY,SAAS;AACjB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO,OAAO,CAAC;AAAA,QACf,WAAW;AAAA,QACX,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,YAAY,SAAS;AACjB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO,OAAO,CAAC;AAAA,QACf,WAAW;AAAA,QACX,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,WAAW,OAAO,SAAS;AACvB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN;AAAA,QACA,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,IAAI,WAAW;AACX,UAAI,MAAM;AACV,iBAAW,MAAM,KAAK,KAAK,QAAQ;AAC/B,YAAI,GAAG,SAAS,OAAO;AACnB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,WAAW;AACX,UAAI,MAAM;AACV,iBAAW,MAAM,KAAK,KAAK,QAAQ;AAC/B,YAAI,GAAG,SAAS,OAAO;AACnB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACA,YAAU,SAAS,CAAC,WAAW;AAC3B,WAAO,IAAI,UAAU;AAAA,MACjB,QAAQ,CAAA;AAAA,MACR,UAAU,sBAAsB;AAAA,MAChC,SAAQ,iCAAQ,WAAU;AAAA,MAC1B,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,mBAAmB,QAAQ;AAAA,IACpC,OAAO,OAAO;AACV,UAAI,KAAK,KAAK,QAAQ;AAClB,cAAM,OAAO,QAAQ,MAAM,IAAI;AAAA,MACnC;AACA,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,SAAS;AACtC,cAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,aAAO,GAAG,MAAM,IAAI;AAAA,IACxB;AAAA,EACJ;AACA,aAAW,SAAS,CAAC,WAAW;AAC5B,WAAO,IAAI,WAAW;AAAA,MAClB,UAAU,sBAAsB;AAAA,MAChC,SAAQ,iCAAQ,WAAU;AAAA,MAC1B,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,gBAAgB,QAAQ;AAAA,IACjC,OAAO,OAAO;AACV,UAAI,KAAK,KAAK,QAAQ;AAClB,cAAM,OAAO,IAAI,KAAK,MAAM,IAAI;AAAA,MACpC;AACA,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,MAAM;AACnC,cAAMA,OAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkBA,MAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAUA,KAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,UAAI,OAAO,MAAM,MAAM,KAAK,QAAO,CAAE,GAAG;AACpC,cAAMA,OAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkBA,MAAK;AAAA,UACnB,MAAM,aAAa;AAAA,QACnC,CAAa;AACD,eAAO;AAAA,MACX;AACA,YAAM,SAAS,IAAI,YAAW;AAC9B,UAAI,MAAM;AACV,iBAAW,SAAS,KAAK,KAAK,QAAQ;AAClC,YAAI,MAAM,SAAS,OAAO;AACtB,cAAI,MAAM,KAAK,QAAO,IAAK,MAAM,OAAO;AACpC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,cACf,WAAW;AAAA,cACX,OAAO;AAAA,cACP,SAAS,MAAM;AAAA,cACf,MAAM;AAAA,YAC9B,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,MAAM,SAAS,OAAO;AAC3B,cAAI,MAAM,KAAK,QAAO,IAAK,MAAM,OAAO;AACpC,kBAAM,KAAK,gBAAgB,OAAO,GAAG;AACrC,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,SAAS,MAAM;AAAA,cACf,WAAW;AAAA,cACX,OAAO;AAAA,cACP,SAAS,MAAM;AAAA,cACf,MAAM;AAAA,YAC9B,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,OACK;AACD,eAAK,YAAY,KAAK;AAAA,QAC1B;AAAA,MACJ;AACA,aAAO;AAAA,QACH,QAAQ,OAAO;AAAA,QACf,OAAO,IAAI,KAAK,MAAM,KAAK,QAAO,CAAE;AAAA,MAChD;AAAA,IACI;AAAA,IACA,UAAU,OAAO;AACb,aAAO,IAAI,QAAQ;AAAA,QACf,GAAG,KAAK;AAAA,QACR,QAAQ,CAAC,GAAG,KAAK,KAAK,QAAQ,KAAK;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,IAAI,SAAS,SAAS;AAClB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO,QAAQ,QAAO;AAAA,QACtB,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,IAAI,SAAS,SAAS;AAClB,aAAO,KAAK,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,OAAO,QAAQ,QAAO;AAAA,QACtB,SAAS,UAAU,SAAS,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL;AAAA,IACA,IAAI,UAAU;AACV,UAAI,MAAM;AACV,iBAAW,MAAM,KAAK,KAAK,QAAQ;AAC/B,YAAI,GAAG,SAAS,OAAO;AACnB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO,OAAO,OAAO,IAAI,KAAK,GAAG,IAAI;AAAA,IACzC;AAAA,IACA,IAAI,UAAU;AACV,UAAI,MAAM;AACV,iBAAW,MAAM,KAAK,KAAK,QAAQ;AAC/B,YAAI,GAAG,SAAS,OAAO;AACnB,cAAI,QAAQ,QAAQ,GAAG,QAAQ;AAC3B,kBAAM,GAAG;AAAA,QACjB;AAAA,MACJ;AACA,aAAO,OAAO,OAAO,IAAI,KAAK,GAAG,IAAI;AAAA,IACzC;AAAA,EACJ;AACA,UAAQ,SAAS,CAAC,WAAW;AACzB,WAAO,IAAI,QAAQ;AAAA,MACf,QAAQ,CAAA;AAAA,MACR,SAAQ,iCAAQ,WAAU;AAAA,MAC1B,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,kBAAkB,QAAQ;AAAA,IACnC,OAAO,OAAO;AACV,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,QAAQ;AACrC,cAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,aAAO,GAAG,MAAM,IAAI;AAAA,IACxB;AAAA,EACJ;AACA,YAAU,SAAS,CAAC,WAAW;AAC3B,WAAO,IAAI,UAAU;AAAA,MACjB,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,qBAAqB,QAAQ;AAAA,IACtC,OAAO,OAAO;AACV,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,WAAW;AACxC,cAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,aAAO,GAAG,MAAM,IAAI;AAAA,IACxB;AAAA,EACJ;AACA,eAAa,SAAS,CAAC,WAAW;AAC9B,WAAO,IAAI,aAAa;AAAA,MACpB,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,gBAAgB,QAAQ;AAAA,IACjC,OAAO,OAAO;AACV,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,MAAM;AACnC,cAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,aAAO,GAAG,MAAM,IAAI;AAAA,IACxB;AAAA,EACJ;AACA,UAAQ,SAAS,CAAC,WAAW;AACzB,WAAO,IAAI,QAAQ;AAAA,MACf,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,eAAe,QAAQ;AAAA,IAChC,cAAc;AACV,YAAM,GAAG,SAAS;AAElB,WAAK,OAAO;AAAA,IAChB;AAAA,IACA,OAAO,OAAO;AACV,aAAO,GAAG,MAAM,IAAI;AAAA,IACxB;AAAA,EACJ;AACA,SAAO,SAAS,CAAC,WAAW;AACxB,WAAO,IAAI,OAAO;AAAA,MACd,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,mBAAmB,QAAQ;AAAA,IACpC,cAAc;AACV,YAAM,GAAG,SAAS;AAElB,WAAK,WAAW;AAAA,IACpB;AAAA,IACA,OAAO,OAAO;AACV,aAAO,GAAG,MAAM,IAAI;AAAA,IACxB;AAAA,EACJ;AACA,aAAW,SAAS,CAAC,WAAW;AAC5B,WAAO,IAAI,WAAW;AAAA,MAClB,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,iBAAiB,QAAQ;AAAA,IAClC,OAAO,OAAO;AACV,YAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,wBAAkB,KAAK;AAAA,QACnB,MAAM,aAAa;AAAA,QACnB,UAAU,cAAc;AAAA,QACxB,UAAU,IAAI;AAAA,MAC1B,CAAS;AACD,aAAO;AAAA,IACX;AAAA,EACJ;AACA,WAAS,SAAS,CAAC,WAAW;AAC1B,WAAO,IAAI,SAAS;AAAA,MAChB,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,gBAAgB,QAAQ;AAAA,IACjC,OAAO,OAAO;AACV,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,WAAW;AACxC,cAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,aAAO,GAAG,MAAM,IAAI;AAAA,IACxB;AAAA,EACJ;AACA,UAAQ,SAAS,CAAC,WAAW;AACzB,WAAO,IAAI,QAAQ;AAAA,MACf,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,iBAAiB,QAAQ;AAAA,IAClC,OAAO,OAAO;AACV,YAAM,EAAE,KAAK,OAAM,IAAK,KAAK,oBAAoB,KAAK;AACtD,YAAM,MAAM,KAAK;AACjB,UAAI,IAAI,eAAe,cAAc,OAAO;AACxC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,UAAI,IAAI,gBAAgB,MAAM;AAC1B,cAAM,SAAS,IAAI,KAAK,SAAS,IAAI,YAAY;AACjD,cAAM,WAAW,IAAI,KAAK,SAAS,IAAI,YAAY;AACnD,YAAI,UAAU,UAAU;AACpB,4BAAkB,KAAK;AAAA,YACnB,MAAM,SAAS,aAAa,UAAU,aAAa;AAAA,YACnD,SAAU,WAAW,IAAI,YAAY,QAAQ;AAAA,YAC7C,SAAU,SAAS,IAAI,YAAY,QAAQ;AAAA,YAC3C,MAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO;AAAA,YACP,SAAS,IAAI,YAAY;AAAA,UAC7C,CAAiB;AACD,iBAAO,MAAK;AAAA,QAChB;AAAA,MACJ;AACA,UAAI,IAAI,cAAc,MAAM;AACxB,YAAI,IAAI,KAAK,SAAS,IAAI,UAAU,OAAO;AACvC,4BAAkB,KAAK;AAAA,YACnB,MAAM,aAAa;AAAA,YACnB,SAAS,IAAI,UAAU;AAAA,YACvB,MAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO;AAAA,YACP,SAAS,IAAI,UAAU;AAAA,UAC3C,CAAiB;AACD,iBAAO,MAAK;AAAA,QAChB;AAAA,MACJ;AACA,UAAI,IAAI,cAAc,MAAM;AACxB,YAAI,IAAI,KAAK,SAAS,IAAI,UAAU,OAAO;AACvC,4BAAkB,KAAK;AAAA,YACnB,MAAM,aAAa;AAAA,YACnB,SAAS,IAAI,UAAU;AAAA,YACvB,MAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO;AAAA,YACP,SAAS,IAAI,UAAU;AAAA,UAC3C,CAAiB;AACD,iBAAO,MAAK;AAAA,QAChB;AAAA,MACJ;AACA,UAAI,IAAI,OAAO,OAAO;AAClB,eAAO,QAAQ,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,CAAC,MAAM,MAAM;AAC9C,iBAAO,IAAI,KAAK,YAAY,IAAI,mBAAmB,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC;AAAA,QAC9E,CAAC,CAAC,EAAE,KAAK,CAACC,YAAW;AACjB,iBAAO,YAAY,WAAW,QAAQA,OAAM;AAAA,QAChD,CAAC;AAAA,MACL;AACA,YAAM,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,CAAC,MAAM,MAAM;AAC1C,eAAO,IAAI,KAAK,WAAW,IAAI,mBAAmB,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC;AAAA,MAC7E,CAAC;AACD,aAAO,YAAY,WAAW,QAAQ,MAAM;AAAA,IAChD;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,IAAI,WAAW,SAAS;AACpB,aAAO,IAAI,SAAS;AAAA,QAChB,GAAG,KAAK;AAAA,QACR,WAAW,EAAE,OAAO,WAAW,SAAS,UAAU,SAAS,OAAO,EAAC;AAAA,MAC/E,CAAS;AAAA,IACL;AAAA,IACA,IAAI,WAAW,SAAS;AACpB,aAAO,IAAI,SAAS;AAAA,QAChB,GAAG,KAAK;AAAA,QACR,WAAW,EAAE,OAAO,WAAW,SAAS,UAAU,SAAS,OAAO,EAAC;AAAA,MAC/E,CAAS;AAAA,IACL;AAAA,IACA,OAAO,KAAK,SAAS;AACjB,aAAO,IAAI,SAAS;AAAA,QAChB,GAAG,KAAK;AAAA,QACR,aAAa,EAAE,OAAO,KAAK,SAAS,UAAU,SAAS,OAAO,EAAC;AAAA,MAC3E,CAAS;AAAA,IACL;AAAA,IACA,SAAS,SAAS;AACd,aAAO,KAAK,IAAI,GAAG,OAAO;AAAA,IAC9B;AAAA,EACJ;AACA,WAAS,SAAS,CAAC,QAAQ,WAAW;AAClC,WAAO,IAAI,SAAS;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,WAAW;AAAA,MACX,aAAa;AAAA,MACb,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AACA,WAAS,eAAe,QAAQ;AAC5B,QAAI,kBAAkB,WAAW;AAC7B,YAAM,WAAW,CAAA;AACjB,iBAAW,OAAO,OAAO,OAAO;AAC5B,cAAM,cAAc,OAAO,MAAM,GAAG;AACpC,iBAAS,GAAG,IAAI,YAAY,OAAO,eAAe,WAAW,CAAC;AAAA,MAClE;AACA,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,OAAO;AAAA,QACV,OAAO,MAAM;AAAA,MACzB,CAAS;AAAA,IACL,WACS,kBAAkB,UAAU;AACjC,aAAO,IAAI,SAAS;AAAA,QAChB,GAAG,OAAO;AAAA,QACV,MAAM,eAAe,OAAO,OAAO;AAAA,MAC/C,CAAS;AAAA,IACL,WACS,kBAAkB,aAAa;AACpC,aAAO,YAAY,OAAO,eAAe,OAAO,OAAM,CAAE,CAAC;AAAA,IAC7D,WACS,kBAAkB,aAAa;AACpC,aAAO,YAAY,OAAO,eAAe,OAAO,OAAM,CAAE,CAAC;AAAA,IAC7D,WACS,kBAAkB,UAAU;AACjC,aAAO,SAAS,OAAO,OAAO,MAAM,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,CAAC;AAAA,IAC3E,OACK;AACD,aAAO;AAAA,IACX;AAAA,EACJ;AAAA,EACO,MAAM,kBAAkB,QAAQ;AAAA,IACnC,cAAc;AACV,YAAM,GAAG,SAAS;AAClB,WAAK,UAAU;AAKf,WAAK,YAAY,KAAK;AAqCtB,WAAK,UAAU,KAAK;AAAA,IACxB;AAAA,IACA,aAAa;AACT,UAAI,KAAK,YAAY;AACjB,eAAO,KAAK;AAChB,YAAM,QAAQ,KAAK,KAAK,MAAK;AAC7B,YAAM,OAAO,KAAK,WAAW,KAAK;AAClC,WAAK,UAAU,EAAE,OAAO,KAAI;AAC5B,aAAO,KAAK;AAAA,IAChB;AAAA,IACA,OAAO,OAAO;AACV,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,QAAQ;AACrC,cAAMD,OAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkBA,MAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAUA,KAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,YAAM,EAAE,QAAQ,IAAG,IAAK,KAAK,oBAAoB,KAAK;AACtD,YAAM,EAAE,OAAO,MAAM,UAAS,IAAK,KAAK,WAAU;AAClD,YAAM,YAAY,CAAA;AAClB,UAAI,EAAE,KAAK,KAAK,oBAAoB,YAAY,KAAK,KAAK,gBAAgB,UAAU;AAChF,mBAAW,OAAO,IAAI,MAAM;AACxB,cAAI,CAAC,UAAU,SAAS,GAAG,GAAG;AAC1B,sBAAU,KAAK,GAAG;AAAA,UACtB;AAAA,QACJ;AAAA,MACJ;AACA,YAAM,QAAQ,CAAA;AACd,iBAAW,OAAO,WAAW;AACzB,cAAM,eAAe,MAAM,GAAG;AAC9B,cAAM,QAAQ,IAAI,KAAK,GAAG;AAC1B,cAAM,KAAK;AAAA,UACP,KAAK,EAAE,QAAQ,SAAS,OAAO,IAAG;AAAA,UAClC,OAAO,aAAa,OAAO,IAAI,mBAAmB,KAAK,OAAO,IAAI,MAAM,GAAG,CAAC;AAAA,UAC5E,WAAW,OAAO,IAAI;AAAA,QACtC,CAAa;AAAA,MACL;AACA,UAAI,KAAK,KAAK,oBAAoB,UAAU;AACxC,cAAM,cAAc,KAAK,KAAK;AAC9B,YAAI,gBAAgB,eAAe;AAC/B,qBAAW,OAAO,WAAW;AACzB,kBAAM,KAAK;AAAA,cACP,KAAK,EAAE,QAAQ,SAAS,OAAO,IAAG;AAAA,cAClC,OAAO,EAAE,QAAQ,SAAS,OAAO,IAAI,KAAK,GAAG,EAAC;AAAA,YACtE,CAAqB;AAAA,UACL;AAAA,QACJ,WACS,gBAAgB,UAAU;AAC/B,cAAI,UAAU,SAAS,GAAG;AACtB,8BAAkB,KAAK;AAAA,cACnB,MAAM,aAAa;AAAA,cACnB,MAAM;AAAA,YAC9B,CAAqB;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ,WACS,gBAAgB,QAAS;AAAA,aAE7B;AACD,gBAAM,IAAI,MAAM,sDAAsD;AAAA,QAC1E;AAAA,MACJ,OACK;AAED,cAAM,WAAW,KAAK,KAAK;AAC3B,mBAAW,OAAO,WAAW;AACzB,gBAAM,QAAQ,IAAI,KAAK,GAAG;AAC1B,gBAAM,KAAK;AAAA,YACP,KAAK,EAAE,QAAQ,SAAS,OAAO,IAAG;AAAA,YAClC,OAAO,SAAS;AAAA,cAAO,IAAI,mBAAmB,KAAK,OAAO,IAAI,MAAM,GAAG;AAAA;AAAA,YAC3F;AAAA,YACoB,WAAW,OAAO,IAAI;AAAA,UAC1C,CAAiB;AAAA,QACL;AAAA,MACJ;AACA,UAAI,IAAI,OAAO,OAAO;AAClB,eAAO,QAAQ,QAAO,EACjB,KAAK,YAAY;AAClB,gBAAM,YAAY,CAAA;AAClB,qBAAW,QAAQ,OAAO;AACtB,kBAAM,MAAM,MAAM,KAAK;AACvB,kBAAM,QAAQ,MAAM,KAAK;AACzB,sBAAU,KAAK;AAAA,cACX;AAAA,cACA;AAAA,cACA,WAAW,KAAK;AAAA,YACxC,CAAqB;AAAA,UACL;AACA,iBAAO;AAAA,QACX,CAAC,EACI,KAAK,CAAC,cAAc;AACrB,iBAAO,YAAY,gBAAgB,QAAQ,SAAS;AAAA,QACxD,CAAC;AAAA,MACL,OACK;AACD,eAAO,YAAY,gBAAgB,QAAQ,KAAK;AAAA,MACpD;AAAA,IACJ;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,KAAK,KAAK,MAAK;AAAA,IAC1B;AAAA,IACA,OAAO,SAAS;AACZ,gBAAU;AACV,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,aAAa;AAAA,QACb,GAAI,YAAY,SACV;AAAA,UACE,UAAU,CAAC,OAAO,QAAQ;;AACtB,kBAAM,iBAAe,gBAAK,MAAK,aAAV,4BAAqB,OAAO,KAAK,YAAW,IAAI;AACrE,gBAAI,MAAM,SAAS;AACf,qBAAO;AAAA,gBACH,SAAS,UAAU,SAAS,OAAO,EAAE,WAAW;AAAA,cAChF;AACwB,mBAAO;AAAA,cACH,SAAS;AAAA,YACrC;AAAA,UACoB;AAAA,QACpB,IACkB;MAClB,CAAS;AAAA,IACL;AAAA,IACA,QAAQ;AACJ,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,aAAa;AAAA,MACzB,CAAS;AAAA,IACL;AAAA,IACA,cAAc;AACV,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,aAAa;AAAA,MACzB,CAAS;AAAA,IACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAkBA,OAAO,cAAc;AACjB,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,OAAO,OAAO;AAAA,UACV,GAAG,KAAK,KAAK,MAAK;AAAA,UAClB,GAAG;AAAA,QACnB;AAAA,MACA,CAAS;AAAA,IACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAM,SAAS;AACX,YAAM,SAAS,IAAI,UAAU;AAAA,QACzB,aAAa,QAAQ,KAAK;AAAA,QAC1B,UAAU,QAAQ,KAAK;AAAA,QACvB,OAAO,OAAO;AAAA,UACV,GAAG,KAAK,KAAK,MAAK;AAAA,UAClB,GAAG,QAAQ,KAAK,MAAK;AAAA,QACrC;AAAA,QACY,UAAU,sBAAsB;AAAA,MAC5C,CAAS;AACD,aAAO;AAAA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAoCA,OAAO,KAAK,QAAQ;AAChB,aAAO,KAAK,QAAQ,EAAE,CAAC,GAAG,GAAG,OAAM,CAAE;AAAA,IACzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAsBA,SAAS,OAAO;AACZ,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,UAAU;AAAA,MACtB,CAAS;AAAA,IACL;AAAA,IACA,KAAK,MAAM;AACP,YAAM,QAAQ,CAAA;AACd,iBAAW,OAAO,KAAK,WAAW,IAAI,GAAG;AACrC,YAAI,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,GAAG;AAC9B,gBAAM,GAAG,IAAI,KAAK,MAAM,GAAG;AAAA,QAC/B;AAAA,MACJ;AACA,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,OAAO,MAAM;AAAA,MACzB,CAAS;AAAA,IACL;AAAA,IACA,KAAK,MAAM;AACP,YAAM,QAAQ,CAAA;AACd,iBAAW,OAAO,KAAK,WAAW,KAAK,KAAK,GAAG;AAC3C,YAAI,CAAC,KAAK,GAAG,GAAG;AACZ,gBAAM,GAAG,IAAI,KAAK,MAAM,GAAG;AAAA,QAC/B;AAAA,MACJ;AACA,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,OAAO,MAAM;AAAA,MACzB,CAAS;AAAA,IACL;AAAA;AAAA;AAAA;AAAA,IAIA,cAAc;AACV,aAAO,eAAe,IAAI;AAAA,IAC9B;AAAA,IACA,QAAQ,MAAM;AACV,YAAM,WAAW,CAAA;AACjB,iBAAW,OAAO,KAAK,WAAW,KAAK,KAAK,GAAG;AAC3C,cAAM,cAAc,KAAK,MAAM,GAAG;AAClC,YAAI,QAAQ,CAAC,KAAK,GAAG,GAAG;AACpB,mBAAS,GAAG,IAAI;AAAA,QACpB,OACK;AACD,mBAAS,GAAG,IAAI,YAAY,SAAQ;AAAA,QACxC;AAAA,MACJ;AACA,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,OAAO,MAAM;AAAA,MACzB,CAAS;AAAA,IACL;AAAA,IACA,SAAS,MAAM;AACX,YAAM,WAAW,CAAA;AACjB,iBAAW,OAAO,KAAK,WAAW,KAAK,KAAK,GAAG;AAC3C,YAAI,QAAQ,CAAC,KAAK,GAAG,GAAG;AACpB,mBAAS,GAAG,IAAI,KAAK,MAAM,GAAG;AAAA,QAClC,OACK;AACD,gBAAM,cAAc,KAAK,MAAM,GAAG;AAClC,cAAI,WAAW;AACf,iBAAO,oBAAoB,aAAa;AACpC,uBAAW,SAAS,KAAK;AAAA,UAC7B;AACA,mBAAS,GAAG,IAAI;AAAA,QACpB;AAAA,MACJ;AACA,aAAO,IAAI,UAAU;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,OAAO,MAAM;AAAA,MACzB,CAAS;AAAA,IACL;AAAA,IACA,QAAQ;AACJ,aAAO,cAAc,KAAK,WAAW,KAAK,KAAK,CAAC;AAAA,IACpD;AAAA,EACJ;AACA,YAAU,SAAS,CAAC,OAAO,WAAW;AAClC,WAAO,IAAI,UAAU;AAAA,MACjB,OAAO,MAAM;AAAA,MACb,aAAa;AAAA,MACb,UAAU,SAAS,OAAM;AAAA,MACzB,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AACA,YAAU,eAAe,CAAC,OAAO,WAAW;AACxC,WAAO,IAAI,UAAU;AAAA,MACjB,OAAO,MAAM;AAAA,MACb,aAAa;AAAA,MACb,UAAU,SAAS,OAAM;AAAA,MACzB,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AACA,YAAU,aAAa,CAAC,OAAO,WAAW;AACtC,WAAO,IAAI,UAAU;AAAA,MACjB;AAAA,MACA,aAAa;AAAA,MACb,UAAU,SAAS,OAAM;AAAA,MACzB,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,iBAAiB,QAAQ;AAAA,IAClC,OAAO,OAAO;AACV,YAAM,EAAE,IAAG,IAAK,KAAK,oBAAoB,KAAK;AAC9C,YAAM,UAAU,KAAK,KAAK;AAC1B,eAAS,cAAc,SAAS;AAE5B,mBAAW,UAAU,SAAS;AAC1B,cAAI,OAAO,OAAO,WAAW,SAAS;AAClC,mBAAO,OAAO;AAAA,UAClB;AAAA,QACJ;AACA,mBAAW,UAAU,SAAS;AAC1B,cAAI,OAAO,OAAO,WAAW,SAAS;AAElC,gBAAI,OAAO,OAAO,KAAK,GAAG,OAAO,IAAI,OAAO,MAAM;AAClD,mBAAO,OAAO;AAAA,UAClB;AAAA,QACJ;AAEA,cAAM,cAAc,QAAQ,IAAI,CAAC,WAAW,IAAI,SAAS,OAAO,IAAI,OAAO,MAAM,CAAC;AAClF,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB;AAAA,QAChB,CAAa;AACD,eAAO;AAAA,MACX;AACA,UAAI,IAAI,OAAO,OAAO;AAClB,eAAO,QAAQ,IAAI,QAAQ,IAAI,OAAO,WAAW;AAC7C,gBAAM,WAAW;AAAA,YACb,GAAG;AAAA,YACH,QAAQ;AAAA,cACJ,GAAG,IAAI;AAAA,cACP,QAAQ,CAAA;AAAA,YAChC;AAAA,YACoB,QAAQ;AAAA,UAC5B;AACgB,iBAAO;AAAA,YACH,QAAQ,MAAM,OAAO,YAAY;AAAA,cAC7B,MAAM,IAAI;AAAA,cACV,MAAM,IAAI;AAAA,cACV,QAAQ;AAAA,YAChC,CAAqB;AAAA,YACD,KAAK;AAAA,UACzB;AAAA,QACY,CAAC,CAAC,EAAE,KAAK,aAAa;AAAA,MAC1B,OACK;AACD,YAAI,QAAQ;AACZ,cAAM,SAAS,CAAA;AACf,mBAAW,UAAU,SAAS;AAC1B,gBAAM,WAAW;AAAA,YACb,GAAG;AAAA,YACH,QAAQ;AAAA,cACJ,GAAG,IAAI;AAAA,cACP,QAAQ,CAAA;AAAA,YAChC;AAAA,YACoB,QAAQ;AAAA,UAC5B;AACgB,gBAAM,SAAS,OAAO,WAAW;AAAA,YAC7B,MAAM,IAAI;AAAA,YACV,MAAM,IAAI;AAAA,YACV,QAAQ;AAAA,UAC5B,CAAiB;AACD,cAAI,OAAO,WAAW,SAAS;AAC3B,mBAAO;AAAA,UACX,WACS,OAAO,WAAW,WAAW,CAAC,OAAO;AAC1C,oBAAQ,EAAE,QAAQ,KAAK,SAAQ;AAAA,UACnC;AACA,cAAI,SAAS,OAAO,OAAO,QAAQ;AAC/B,mBAAO,KAAK,SAAS,OAAO,MAAM;AAAA,UACtC;AAAA,QACJ;AACA,YAAI,OAAO;AACP,cAAI,OAAO,OAAO,KAAK,GAAG,MAAM,IAAI,OAAO,MAAM;AACjD,iBAAO,MAAM;AAAA,QACjB;AACA,cAAM,cAAc,OAAO,IAAI,CAACE,YAAW,IAAI,SAASA,OAAM,CAAC;AAC/D,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB;AAAA,QAChB,CAAa;AACD,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AACA,WAAS,SAAS,CAAC,OAAO,WAAW;AACjC,WAAO,IAAI,SAAS;AAAA,MAChB,SAAS;AAAA,MACT,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAoIA,WAAS,YAAY,GAAG,GAAG;AACvB,UAAM,QAAQ,cAAc,CAAC;AAC7B,UAAM,QAAQ,cAAc,CAAC;AAC7B,QAAI,MAAM,GAAG;AACT,aAAO,EAAE,OAAO,MAAM,MAAM,EAAC;AAAA,IACjC,WACS,UAAU,cAAc,UAAU,UAAU,cAAc,QAAQ;AACvE,YAAM,QAAQ,KAAK,WAAW,CAAC;AAC/B,YAAM,aAAa,KAAK,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,MAAM,QAAQ,GAAG,MAAM,EAAE;AAC/E,YAAM,SAAS,EAAE,GAAG,GAAG,GAAG,EAAC;AAC3B,iBAAW,OAAO,YAAY;AAC1B,cAAM,cAAc,YAAY,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC;AAC9C,YAAI,CAAC,YAAY,OAAO;AACpB,iBAAO,EAAE,OAAO,MAAK;AAAA,QACzB;AACA,eAAO,GAAG,IAAI,YAAY;AAAA,MAC9B;AACA,aAAO,EAAE,OAAO,MAAM,MAAM,OAAM;AAAA,IACtC,WACS,UAAU,cAAc,SAAS,UAAU,cAAc,OAAO;AACrE,UAAI,EAAE,WAAW,EAAE,QAAQ;AACvB,eAAO,EAAE,OAAO,MAAK;AAAA,MACzB;AACA,YAAM,WAAW,CAAA;AACjB,eAAS,QAAQ,GAAG,QAAQ,EAAE,QAAQ,SAAS;AAC3C,cAAM,QAAQ,EAAE,KAAK;AACrB,cAAM,QAAQ,EAAE,KAAK;AACrB,cAAM,cAAc,YAAY,OAAO,KAAK;AAC5C,YAAI,CAAC,YAAY,OAAO;AACpB,iBAAO,EAAE,OAAO,MAAK;AAAA,QACzB;AACA,iBAAS,KAAK,YAAY,IAAI;AAAA,MAClC;AACA,aAAO,EAAE,OAAO,MAAM,MAAM,SAAQ;AAAA,IACxC,WACS,UAAU,cAAc,QAAQ,UAAU,cAAc,QAAQ,CAAC,MAAM,CAAC,GAAG;AAChF,aAAO,EAAE,OAAO,MAAM,MAAM,EAAC;AAAA,IACjC,OACK;AACD,aAAO,EAAE,OAAO,MAAK;AAAA,IACzB;AAAA,EACJ;AAAA,EACO,MAAM,wBAAwB,QAAQ;AAAA,IACzC,OAAO,OAAO;AACV,YAAM,EAAE,QAAQ,IAAG,IAAK,KAAK,oBAAoB,KAAK;AACtD,YAAM,eAAe,CAAC,YAAY,gBAAgB;AAC9C,YAAI,UAAU,UAAU,KAAK,UAAU,WAAW,GAAG;AACjD,iBAAO;AAAA,QACX;AACA,cAAM,SAAS,YAAY,WAAW,OAAO,YAAY,KAAK;AAC9D,YAAI,CAAC,OAAO,OAAO;AACf,4BAAkB,KAAK;AAAA,YACnB,MAAM,aAAa;AAAA,UACvC,CAAiB;AACD,iBAAO;AAAA,QACX;AACA,YAAI,QAAQ,UAAU,KAAK,QAAQ,WAAW,GAAG;AAC7C,iBAAO,MAAK;AAAA,QAChB;AACA,eAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,OAAO,KAAI;AAAA,MACrD;AACA,UAAI,IAAI,OAAO,OAAO;AAClB,eAAO,QAAQ,IAAI;AAAA,UACf,KAAK,KAAK,KAAK,YAAY;AAAA,YACvB,MAAM,IAAI;AAAA,YACV,MAAM,IAAI;AAAA,YACV,QAAQ;AAAA,UAC5B,CAAiB;AAAA,UACD,KAAK,KAAK,MAAM,YAAY;AAAA,YACxB,MAAM,IAAI;AAAA,YACV,MAAM,IAAI;AAAA,YACV,QAAQ;AAAA,UAC5B,CAAiB;AAAA,QACjB,CAAa,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,aAAa,MAAM,KAAK,CAAC;AAAA,MACxD,OACK;AACD,eAAO,aAAa,KAAK,KAAK,KAAK,WAAW;AAAA,UAC1C,MAAM,IAAI;AAAA,UACV,MAAM,IAAI;AAAA,UACV,QAAQ;AAAA,QACxB,CAAa,GAAG,KAAK,KAAK,MAAM,WAAW;AAAA,UAC3B,MAAM,IAAI;AAAA,UACV,MAAM,IAAI;AAAA,UACV,QAAQ;AAAA,QACxB,CAAa,CAAC;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AACA,kBAAgB,SAAS,CAAC,MAAM,OAAO,WAAW;AAC9C,WAAO,IAAI,gBAAgB;AAAA,MACvB;AAAA,MACA;AAAA,MACA,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EAEO,MAAM,iBAAiB,QAAQ;AAAA,IAClC,OAAO,OAAO;AACV,YAAM,EAAE,QAAQ,IAAG,IAAK,KAAK,oBAAoB,KAAK;AACtD,UAAI,IAAI,eAAe,cAAc,OAAO;AACxC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,UAAI,IAAI,KAAK,SAAS,KAAK,KAAK,MAAM,QAAQ;AAC1C,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,SAAS,KAAK,KAAK,MAAM;AAAA,UACzB,WAAW;AAAA,UACX,OAAO;AAAA,UACP,MAAM;AAAA,QACtB,CAAa;AACD,eAAO;AAAA,MACX;AACA,YAAM,OAAO,KAAK,KAAK;AACvB,UAAI,CAAC,QAAQ,IAAI,KAAK,SAAS,KAAK,KAAK,MAAM,QAAQ;AACnD,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,SAAS,KAAK,KAAK,MAAM;AAAA,UACzB,WAAW;AAAA,UACX,OAAO;AAAA,UACP,MAAM;AAAA,QACtB,CAAa;AACD,eAAO,MAAK;AAAA,MAChB;AACA,YAAM,QAAQ,CAAC,GAAG,IAAI,IAAI,EACrB,IAAI,CAAC,MAAM,cAAc;AAC1B,cAAM,SAAS,KAAK,KAAK,MAAM,SAAS,KAAK,KAAK,KAAK;AACvD,YAAI,CAAC;AACD,iBAAO;AACX,eAAO,OAAO,OAAO,IAAI,mBAAmB,KAAK,MAAM,IAAI,MAAM,SAAS,CAAC;AAAA,MAC/E,CAAC,EACI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,UAAI,IAAI,OAAO,OAAO;AAClB,eAAO,QAAQ,IAAI,KAAK,EAAE,KAAK,CAAC,YAAY;AACxC,iBAAO,YAAY,WAAW,QAAQ,OAAO;AAAA,QACjD,CAAC;AAAA,MACL,OACK;AACD,eAAO,YAAY,WAAW,QAAQ,KAAK;AAAA,MAC/C;AAAA,IACJ;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,KAAK,MAAM;AACP,aAAO,IAAI,SAAS;AAAA,QAChB,GAAG,KAAK;AAAA,QACR;AAAA,MACZ,CAAS;AAAA,IACL;AAAA,EACJ;AACA,WAAS,SAAS,CAAC,SAAS,WAAW;AACnC,QAAI,CAAC,MAAM,QAAQ,OAAO,GAAG;AACzB,YAAM,IAAI,MAAM,uDAAuD;AAAA,IAC3E;AACA,WAAO,IAAI,SAAS;AAAA,MAChB,OAAO;AAAA,MACP,UAAU,sBAAsB;AAAA,MAChC,MAAM;AAAA,MACN,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,kBAAkB,QAAQ;AAAA,IACnC,IAAI,YAAY;AACZ,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,OAAO,OAAO;AACV,YAAM,EAAE,QAAQ,IAAG,IAAK,KAAK,oBAAoB,KAAK;AACtD,UAAI,IAAI,eAAe,cAAc,QAAQ;AACzC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,YAAM,QAAQ,CAAA;AACd,YAAM,UAAU,KAAK,KAAK;AAC1B,YAAM,YAAY,KAAK,KAAK;AAC5B,iBAAW,OAAO,IAAI,MAAM;AACxB,cAAM,KAAK;AAAA,UACP,KAAK,QAAQ,OAAO,IAAI,mBAAmB,KAAK,KAAK,IAAI,MAAM,GAAG,CAAC;AAAA,UACnE,OAAO,UAAU,OAAO,IAAI,mBAAmB,KAAK,IAAI,KAAK,GAAG,GAAG,IAAI,MAAM,GAAG,CAAC;AAAA,UACjF,WAAW,OAAO,IAAI;AAAA,QACtC,CAAa;AAAA,MACL;AACA,UAAI,IAAI,OAAO,OAAO;AAClB,eAAO,YAAY,iBAAiB,QAAQ,KAAK;AAAA,MACrD,OACK;AACD,eAAO,YAAY,gBAAgB,QAAQ,KAAK;AAAA,MACpD;AAAA,IACJ;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,OAAO,OAAO,OAAO,QAAQ,OAAO;AAChC,UAAI,kBAAkB,SAAS;AAC3B,eAAO,IAAI,UAAU;AAAA,UACjB,SAAS;AAAA,UACT,WAAW;AAAA,UACX,UAAU,sBAAsB;AAAA,UAChC,GAAG,oBAAoB,KAAK;AAAA,QAC5C,CAAa;AAAA,MACL;AACA,aAAO,IAAI,UAAU;AAAA,QACjB,SAAS,UAAU,OAAM;AAAA,QACzB,WAAW;AAAA,QACX,UAAU,sBAAsB;AAAA,QAChC,GAAG,oBAAoB,MAAM;AAAA,MACzC,CAAS;AAAA,IACL;AAAA,EACJ;AAAA,EACO,MAAM,eAAe,QAAQ;AAAA,IAChC,IAAI,YAAY;AACZ,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,IAAI,cAAc;AACd,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,OAAO,OAAO;AACV,YAAM,EAAE,QAAQ,IAAG,IAAK,KAAK,oBAAoB,KAAK;AACtD,UAAI,IAAI,eAAe,cAAc,KAAK;AACtC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,YAAM,UAAU,KAAK,KAAK;AAC1B,YAAM,YAAY,KAAK,KAAK;AAC5B,YAAM,QAAQ,CAAC,GAAG,IAAI,KAAK,QAAO,CAAE,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,UAAU;AAC/D,eAAO;AAAA,UACH,KAAK,QAAQ,OAAO,IAAI,mBAAmB,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;AAAA,UAC9E,OAAO,UAAU,OAAO,IAAI,mBAAmB,KAAK,OAAO,IAAI,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAAA,QACtG;AAAA,MACQ,CAAC;AACD,UAAI,IAAI,OAAO,OAAO;AAClB,cAAM,WAAW,oBAAI,IAAG;AACxB,eAAO,QAAQ,UAAU,KAAK,YAAY;AACtC,qBAAW,QAAQ,OAAO;AACtB,kBAAM,MAAM,MAAM,KAAK;AACvB,kBAAM,QAAQ,MAAM,KAAK;AACzB,gBAAI,IAAI,WAAW,aAAa,MAAM,WAAW,WAAW;AACxD,qBAAO;AAAA,YACX;AACA,gBAAI,IAAI,WAAW,WAAW,MAAM,WAAW,SAAS;AACpD,qBAAO,MAAK;AAAA,YAChB;AACA,qBAAS,IAAI,IAAI,OAAO,MAAM,KAAK;AAAA,UACvC;AACA,iBAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,SAAQ;AAAA,QAClD,CAAC;AAAA,MACL,OACK;AACD,cAAM,WAAW,oBAAI,IAAG;AACxB,mBAAW,QAAQ,OAAO;AACtB,gBAAM,MAAM,KAAK;AACjB,gBAAM,QAAQ,KAAK;AACnB,cAAI,IAAI,WAAW,aAAa,MAAM,WAAW,WAAW;AACxD,mBAAO;AAAA,UACX;AACA,cAAI,IAAI,WAAW,WAAW,MAAM,WAAW,SAAS;AACpD,mBAAO,MAAK;AAAA,UAChB;AACA,mBAAS,IAAI,IAAI,OAAO,MAAM,KAAK;AAAA,QACvC;AACA,eAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,SAAQ;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AACA,SAAO,SAAS,CAAC,SAAS,WAAW,WAAW;AAC5C,WAAO,IAAI,OAAO;AAAA,MACd;AAAA,MACA;AAAA,MACA,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,eAAe,QAAQ;AAAA,IAChC,OAAO,OAAO;AACV,YAAM,EAAE,QAAQ,IAAG,IAAK,KAAK,oBAAoB,KAAK;AACtD,UAAI,IAAI,eAAe,cAAc,KAAK;AACtC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,YAAM,MAAM,KAAK;AACjB,UAAI,IAAI,YAAY,MAAM;AACtB,YAAI,IAAI,KAAK,OAAO,IAAI,QAAQ,OAAO;AACnC,4BAAkB,KAAK;AAAA,YACnB,MAAM,aAAa;AAAA,YACnB,SAAS,IAAI,QAAQ;AAAA,YACrB,MAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO;AAAA,YACP,SAAS,IAAI,QAAQ;AAAA,UACzC,CAAiB;AACD,iBAAO,MAAK;AAAA,QAChB;AAAA,MACJ;AACA,UAAI,IAAI,YAAY,MAAM;AACtB,YAAI,IAAI,KAAK,OAAO,IAAI,QAAQ,OAAO;AACnC,4BAAkB,KAAK;AAAA,YACnB,MAAM,aAAa;AAAA,YACnB,SAAS,IAAI,QAAQ;AAAA,YACrB,MAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO;AAAA,YACP,SAAS,IAAI,QAAQ;AAAA,UACzC,CAAiB;AACD,iBAAO,MAAK;AAAA,QAChB;AAAA,MACJ;AACA,YAAM,YAAY,KAAK,KAAK;AAC5B,eAAS,YAAYC,WAAU;AAC3B,cAAM,YAAY,oBAAI,IAAG;AACzB,mBAAW,WAAWA,WAAU;AAC5B,cAAI,QAAQ,WAAW;AACnB,mBAAO;AACX,cAAI,QAAQ,WAAW;AACnB,mBAAO,MAAK;AAChB,oBAAU,IAAI,QAAQ,KAAK;AAAA,QAC/B;AACA,eAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,UAAS;AAAA,MACnD;AACA,YAAM,WAAW,CAAC,GAAG,IAAI,KAAK,QAAQ,EAAE,IAAI,CAAC,MAAM,MAAM,UAAU,OAAO,IAAI,mBAAmB,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;AACzH,UAAI,IAAI,OAAO,OAAO;AAClB,eAAO,QAAQ,IAAI,QAAQ,EAAE,KAAK,CAACA,cAAa,YAAYA,SAAQ,CAAC;AAAA,MACzE,OACK;AACD,eAAO,YAAY,QAAQ;AAAA,MAC/B;AAAA,IACJ;AAAA,IACA,IAAI,SAAS,SAAS;AAClB,aAAO,IAAI,OAAO;AAAA,QACd,GAAG,KAAK;AAAA,QACR,SAAS,EAAE,OAAO,SAAS,SAAS,UAAU,SAAS,OAAO,EAAC;AAAA,MAC3E,CAAS;AAAA,IACL;AAAA,IACA,IAAI,SAAS,SAAS;AAClB,aAAO,IAAI,OAAO;AAAA,QACd,GAAG,KAAK;AAAA,QACR,SAAS,EAAE,OAAO,SAAS,SAAS,UAAU,SAAS,OAAO,EAAC;AAAA,MAC3E,CAAS;AAAA,IACL;AAAA,IACA,KAAK,MAAM,SAAS;AAChB,aAAO,KAAK,IAAI,MAAM,OAAO,EAAE,IAAI,MAAM,OAAO;AAAA,IACpD;AAAA,IACA,SAAS,SAAS;AACd,aAAO,KAAK,IAAI,GAAG,OAAO;AAAA,IAC9B;AAAA,EACJ;AACA,SAAO,SAAS,CAAC,WAAW,WAAW;AACnC,WAAO,IAAI,OAAO;AAAA,MACd;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,MACT,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EAmHO,MAAM,gBAAgB,QAAQ;AAAA,IACjC,IAAI,SAAS;AACT,aAAO,KAAK,KAAK,OAAM;AAAA,IAC3B;AAAA,IACA,OAAO,OAAO;AACV,YAAM,EAAE,IAAG,IAAK,KAAK,oBAAoB,KAAK;AAC9C,YAAM,aAAa,KAAK,KAAK,OAAM;AACnC,aAAO,WAAW,OAAO,EAAE,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,QAAQ,IAAG,CAAE;AAAA,IAC5E;AAAA,EACJ;AACA,UAAQ,SAAS,CAAC,QAAQ,WAAW;AACjC,WAAO,IAAI,QAAQ;AAAA,MACf;AAAA,MACA,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,mBAAmB,QAAQ;AAAA,IACpC,OAAO,OAAO;AACV,UAAI,MAAM,SAAS,KAAK,KAAK,OAAO;AAChC,cAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkB,KAAK;AAAA,UACnB,UAAU,IAAI;AAAA,UACd,MAAM,aAAa;AAAA,UACnB,UAAU,KAAK,KAAK;AAAA,QACpC,CAAa;AACD,eAAO;AAAA,MACX;AACA,aAAO,EAAE,QAAQ,SAAS,OAAO,MAAM,KAAI;AAAA,IAC/C;AAAA,IACA,IAAI,QAAQ;AACR,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AACA,aAAW,SAAS,CAAC,OAAO,WAAW;AACnC,WAAO,IAAI,WAAW;AAAA,MAClB;AAAA,MACA,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AACA,WAAS,cAAc,QAAQ,QAAQ;AACnC,WAAO,IAAI,QAAQ;AAAA,MACf;AAAA,MACA,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,gBAAgB,QAAQ;AAAA,IACjC,OAAO,OAAO;AACV,UAAI,OAAO,MAAM,SAAS,UAAU;AAChC,cAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,cAAM,iBAAiB,KAAK,KAAK;AACjC,0BAAkB,KAAK;AAAA,UACnB,UAAU,KAAK,WAAW,cAAc;AAAA,UACxC,UAAU,IAAI;AAAA,UACd,MAAM,aAAa;AAAA,QACnC,CAAa;AACD,eAAO;AAAA,MACX;AACA,UAAI,CAAC,KAAK,QAAQ;AACd,aAAK,SAAS,IAAI,IAAI,KAAK,KAAK,MAAM;AAAA,MAC1C;AACA,UAAI,CAAC,KAAK,OAAO,IAAI,MAAM,IAAI,GAAG;AAC9B,cAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,cAAM,iBAAiB,KAAK,KAAK;AACjC,0BAAkB,KAAK;AAAA,UACnB,UAAU,IAAI;AAAA,UACd,MAAM,aAAa;AAAA,UACnB,SAAS;AAAA,QACzB,CAAa;AACD,eAAO;AAAA,MACX;AACA,aAAO,GAAG,MAAM,IAAI;AAAA,IACxB;AAAA,IACA,IAAI,UAAU;AACV,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,IAAI,OAAO;AACP,YAAM,aAAa,CAAA;AACnB,iBAAW,OAAO,KAAK,KAAK,QAAQ;AAChC,mBAAW,GAAG,IAAI;AAAA,MACtB;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,SAAS;AACT,YAAM,aAAa,CAAA;AACnB,iBAAW,OAAO,KAAK,KAAK,QAAQ;AAChC,mBAAW,GAAG,IAAI;AAAA,MACtB;AACA,aAAO;AAAA,IACX;AAAA,IACA,IAAI,OAAO;AACP,YAAM,aAAa,CAAA;AACnB,iBAAW,OAAO,KAAK,KAAK,QAAQ;AAChC,mBAAW,GAAG,IAAI;AAAA,MACtB;AACA,aAAO;AAAA,IACX;AAAA,IACA,QAAQ,QAAQ,SAAS,KAAK,MAAM;AAChC,aAAO,QAAQ,OAAO,QAAQ;AAAA,QAC1B,GAAG,KAAK;AAAA,QACR,GAAG;AAAA,MACf,CAAS;AAAA,IACL;AAAA,IACA,QAAQ,QAAQ,SAAS,KAAK,MAAM;AAChC,aAAO,QAAQ,OAAO,KAAK,QAAQ,OAAO,CAAC,QAAQ,CAAC,OAAO,SAAS,GAAG,CAAC,GAAG;AAAA,QACvE,GAAG,KAAK;AAAA,QACR,GAAG;AAAA,MACf,CAAS;AAAA,IACL;AAAA,EACJ;AACA,UAAQ,SAAS;AAAA,EACV,MAAM,sBAAsB,QAAQ;AAAA,IACvC,OAAO,OAAO;AACV,YAAM,mBAAmB,KAAK,mBAAmB,KAAK,KAAK,MAAM;AACjE,YAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,UAAI,IAAI,eAAe,cAAc,UAAU,IAAI,eAAe,cAAc,QAAQ;AACpF,cAAM,iBAAiB,KAAK,aAAa,gBAAgB;AACzD,0BAAkB,KAAK;AAAA,UACnB,UAAU,KAAK,WAAW,cAAc;AAAA,UACxC,UAAU,IAAI;AAAA,UACd,MAAM,aAAa;AAAA,QACnC,CAAa;AACD,eAAO;AAAA,MACX;AACA,UAAI,CAAC,KAAK,QAAQ;AACd,aAAK,SAAS,IAAI,IAAI,KAAK,mBAAmB,KAAK,KAAK,MAAM,CAAC;AAAA,MACnE;AACA,UAAI,CAAC,KAAK,OAAO,IAAI,MAAM,IAAI,GAAG;AAC9B,cAAM,iBAAiB,KAAK,aAAa,gBAAgB;AACzD,0BAAkB,KAAK;AAAA,UACnB,UAAU,IAAI;AAAA,UACd,MAAM,aAAa;AAAA,UACnB,SAAS;AAAA,QACzB,CAAa;AACD,eAAO;AAAA,MACX;AACA,aAAO,GAAG,MAAM,IAAI;AAAA,IACxB;AAAA,IACA,IAAI,OAAO;AACP,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AACA,gBAAc,SAAS,CAAC,QAAQ,WAAW;AACvC,WAAO,IAAI,cAAc;AAAA,MACrB;AAAA,MACA,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,mBAAmB,QAAQ;AAAA,IACpC,SAAS;AACL,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,OAAO,OAAO;AACV,YAAM,EAAE,IAAG,IAAK,KAAK,oBAAoB,KAAK;AAC9C,UAAI,IAAI,eAAe,cAAc,WAAW,IAAI,OAAO,UAAU,OAAO;AACxE,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,YAAM,cAAc,IAAI,eAAe,cAAc,UAAU,IAAI,OAAO,QAAQ,QAAQ,IAAI,IAAI;AAClG,aAAO,GAAG,YAAY,KAAK,CAAC,SAAS;AACjC,eAAO,KAAK,KAAK,KAAK,WAAW,MAAM;AAAA,UACnC,MAAM,IAAI;AAAA,UACV,UAAU,IAAI,OAAO;AAAA,QACrC,CAAa;AAAA,MACL,CAAC,CAAC;AAAA,IACN;AAAA,EACJ;AACA,aAAW,SAAS,CAAC,QAAQ,WAAW;AACpC,WAAO,IAAI,WAAW;AAAA,MAClB,MAAM;AAAA,MACN,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,mBAAmB,QAAQ;AAAA,IACpC,YAAY;AACR,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,IACA,aAAa;AACT,aAAO,KAAK,KAAK,OAAO,KAAK,aAAa,sBAAsB,aAC1D,KAAK,KAAK,OAAO,WAAU,IAC3B,KAAK,KAAK;AAAA,IACpB;AAAA,IACA,OAAO,OAAO;AACV,YAAM,EAAE,QAAQ,IAAG,IAAK,KAAK,oBAAoB,KAAK;AACtD,YAAM,SAAS,KAAK,KAAK,UAAU;AACnC,YAAM,WAAW;AAAA,QACb,UAAU,CAAC,QAAQ;AACf,4BAAkB,KAAK,GAAG;AAC1B,cAAI,IAAI,OAAO;AACX,mBAAO,MAAK;AAAA,UAChB,OACK;AACD,mBAAO,MAAK;AAAA,UAChB;AAAA,QACJ;AAAA,QACA,IAAI,OAAO;AACP,iBAAO,IAAI;AAAA,QACf;AAAA,MACZ;AACQ,eAAS,WAAW,SAAS,SAAS,KAAK,QAAQ;AACnD,UAAI,OAAO,SAAS,cAAc;AAC9B,cAAM,YAAY,OAAO,UAAU,IAAI,MAAM,QAAQ;AACrD,YAAI,IAAI,OAAO,OAAO;AAClB,iBAAO,QAAQ,QAAQ,SAAS,EAAE,KAAK,OAAOC,eAAc;AACxD,gBAAI,OAAO,UAAU;AACjB,qBAAO;AACX,kBAAM,SAAS,MAAM,KAAK,KAAK,OAAO,YAAY;AAAA,cAC9C,MAAMA;AAAA,cACN,MAAM,IAAI;AAAA,cACV,QAAQ;AAAA,YAChC,CAAqB;AACD,gBAAI,OAAO,WAAW;AAClB,qBAAO;AACX,gBAAI,OAAO,WAAW;AAClB,qBAAO,MAAM,OAAO,KAAK;AAC7B,gBAAI,OAAO,UAAU;AACjB,qBAAO,MAAM,OAAO,KAAK;AAC7B,mBAAO;AAAA,UACX,CAAC;AAAA,QACL,OACK;AACD,cAAI,OAAO,UAAU;AACjB,mBAAO;AACX,gBAAM,SAAS,KAAK,KAAK,OAAO,WAAW;AAAA,YACvC,MAAM;AAAA,YACN,MAAM,IAAI;AAAA,YACV,QAAQ;AAAA,UAC5B,CAAiB;AACD,cAAI,OAAO,WAAW;AAClB,mBAAO;AACX,cAAI,OAAO,WAAW;AAClB,mBAAO,MAAM,OAAO,KAAK;AAC7B,cAAI,OAAO,UAAU;AACjB,mBAAO,MAAM,OAAO,KAAK;AAC7B,iBAAO;AAAA,QACX;AAAA,MACJ;AACA,UAAI,OAAO,SAAS,cAAc;AAC9B,cAAM,oBAAoB,CAAC,QAAQ;AAC/B,gBAAM,SAAS,OAAO,WAAW,KAAK,QAAQ;AAC9C,cAAI,IAAI,OAAO,OAAO;AAClB,mBAAO,QAAQ,QAAQ,MAAM;AAAA,UACjC;AACA,cAAI,kBAAkB,SAAS;AAC3B,kBAAM,IAAI,MAAM,2FAA2F;AAAA,UAC/G;AACA,iBAAO;AAAA,QACX;AACA,YAAI,IAAI,OAAO,UAAU,OAAO;AAC5B,gBAAM,QAAQ,KAAK,KAAK,OAAO,WAAW;AAAA,YACtC,MAAM,IAAI;AAAA,YACV,MAAM,IAAI;AAAA,YACV,QAAQ;AAAA,UAC5B,CAAiB;AACD,cAAI,MAAM,WAAW;AACjB,mBAAO;AACX,cAAI,MAAM,WAAW;AACjB,mBAAO,MAAK;AAEhB,4BAAkB,MAAM,KAAK;AAC7B,iBAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,MAAM,MAAK;AAAA,QACrD,OACK;AACD,iBAAO,KAAK,KAAK,OAAO,YAAY,EAAE,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,QAAQ,IAAG,CAAE,EAAE,KAAK,CAAC,UAAU;AACjG,gBAAI,MAAM,WAAW;AACjB,qBAAO;AACX,gBAAI,MAAM,WAAW;AACjB,qBAAO,MAAK;AAChB,mBAAO,kBAAkB,MAAM,KAAK,EAAE,KAAK,MAAM;AAC7C,qBAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,MAAM,MAAK;AAAA,YACrD,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AAAA,MACJ;AACA,UAAI,OAAO,SAAS,aAAa;AAC7B,YAAI,IAAI,OAAO,UAAU,OAAO;AAC5B,gBAAM,OAAO,KAAK,KAAK,OAAO,WAAW;AAAA,YACrC,MAAM,IAAI;AAAA,YACV,MAAM,IAAI;AAAA,YACV,QAAQ;AAAA,UAC5B,CAAiB;AACD,cAAI,CAAC,QAAQ,IAAI;AACb,mBAAO;AACX,gBAAM,SAAS,OAAO,UAAU,KAAK,OAAO,QAAQ;AACpD,cAAI,kBAAkB,SAAS;AAC3B,kBAAM,IAAI,MAAM,iGAAiG;AAAA,UACrH;AACA,iBAAO,EAAE,QAAQ,OAAO,OAAO,OAAO,OAAM;AAAA,QAChD,OACK;AACD,iBAAO,KAAK,KAAK,OAAO,YAAY,EAAE,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,QAAQ,IAAG,CAAE,EAAE,KAAK,CAAC,SAAS;AAChG,gBAAI,CAAC,QAAQ,IAAI;AACb,qBAAO;AACX,mBAAO,QAAQ,QAAQ,OAAO,UAAU,KAAK,OAAO,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY;AAAA,cAC7E,QAAQ,OAAO;AAAA,cACf,OAAO;AAAA,YAC/B,EAAsB;AAAA,UACN,CAAC;AAAA,QACL;AAAA,MACJ;AACA,WAAK,YAAY,MAAM;AAAA,IAC3B;AAAA,EACJ;AACA,aAAW,SAAS,CAAC,QAAQ,QAAQ,WAAW;AAC5C,WAAO,IAAI,WAAW;AAAA,MAClB;AAAA,MACA,UAAU,sBAAsB;AAAA,MAChC;AAAA,MACA,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AACA,aAAW,uBAAuB,CAAC,YAAY,QAAQ,WAAW;AAC9D,WAAO,IAAI,WAAW;AAAA,MAClB;AAAA,MACA,QAAQ,EAAE,MAAM,cAAc,WAAW,WAAU;AAAA,MACnD,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EAEO,MAAM,oBAAoB,QAAQ;AAAA,IACrC,OAAO,OAAO;AACV,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,WAAW;AACxC,eAAO,GAAG,MAAS;AAAA,MACvB;AACA,aAAO,KAAK,KAAK,UAAU,OAAO,KAAK;AAAA,IAC3C;AAAA,IACA,SAAS;AACL,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AACA,cAAY,SAAS,CAAC,MAAM,WAAW;AACnC,WAAO,IAAI,YAAY;AAAA,MACnB,WAAW;AAAA,MACX,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,oBAAoB,QAAQ;AAAA,IACrC,OAAO,OAAO;AACV,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,MAAM;AACnC,eAAO,GAAG,IAAI;AAAA,MAClB;AACA,aAAO,KAAK,KAAK,UAAU,OAAO,KAAK;AAAA,IAC3C;AAAA,IACA,SAAS;AACL,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AACA,cAAY,SAAS,CAAC,MAAM,WAAW;AACnC,WAAO,IAAI,YAAY;AAAA,MACnB,WAAW;AAAA,MACX,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,mBAAmB,QAAQ;AAAA,IACpC,OAAO,OAAO;AACV,YAAM,EAAE,IAAG,IAAK,KAAK,oBAAoB,KAAK;AAC9C,UAAI,OAAO,IAAI;AACf,UAAI,IAAI,eAAe,cAAc,WAAW;AAC5C,eAAO,KAAK,KAAK,aAAY;AAAA,MACjC;AACA,aAAO,KAAK,KAAK,UAAU,OAAO;AAAA,QAC9B;AAAA,QACA,MAAM,IAAI;AAAA,QACV,QAAQ;AAAA,MACpB,CAAS;AAAA,IACL;AAAA,IACA,gBAAgB;AACZ,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AACA,aAAW,SAAS,CAAC,MAAM,WAAW;AAClC,WAAO,IAAI,WAAW;AAAA,MAClB,WAAW;AAAA,MACX,UAAU,sBAAsB;AAAA,MAChC,cAAc,OAAO,OAAO,YAAY,aAAa,OAAO,UAAU,MAAM,OAAO;AAAA,MACnF,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,iBAAiB,QAAQ;AAAA,IAClC,OAAO,OAAO;AACV,YAAM,EAAE,IAAG,IAAK,KAAK,oBAAoB,KAAK;AAE9C,YAAM,SAAS;AAAA,QACX,GAAG;AAAA,QACH,QAAQ;AAAA,UACJ,GAAG,IAAI;AAAA,UACP,QAAQ,CAAA;AAAA,QACxB;AAAA,MACA;AACQ,YAAM,SAAS,KAAK,KAAK,UAAU,OAAO;AAAA,QACtC,MAAM,OAAO;AAAA,QACb,MAAM,OAAO;AAAA,QACb,QAAQ;AAAA,UACJ,GAAG;AAAA,QACnB;AAAA,MACA,CAAS;AACD,UAAI,QAAQ,MAAM,GAAG;AACjB,eAAO,OAAO,KAAK,CAACH,YAAW;AAC3B,iBAAO;AAAA,YACH,QAAQ;AAAA,YACR,OAAOA,QAAO,WAAW,UACnBA,QAAO,QACP,KAAK,KAAK,WAAW;AAAA,cACnB,IAAI,QAAQ;AACR,uBAAO,IAAI,SAAS,OAAO,OAAO,MAAM;AAAA,cAC5C;AAAA,cACA,OAAO,OAAO;AAAA,YAC1C,CAAyB;AAAA,UACzB;AAAA,QACY,CAAC;AAAA,MACL,OACK;AACD,eAAO;AAAA,UACH,QAAQ;AAAA,UACR,OAAO,OAAO,WAAW,UACnB,OAAO,QACP,KAAK,KAAK,WAAW;AAAA,YACnB,IAAI,QAAQ;AACR,qBAAO,IAAI,SAAS,OAAO,OAAO,MAAM;AAAA,YAC5C;AAAA,YACA,OAAO,OAAO;AAAA,UACtC,CAAqB;AAAA,QACrB;AAAA,MACQ;AAAA,IACJ;AAAA,IACA,cAAc;AACV,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AACA,WAAS,SAAS,CAAC,MAAM,WAAW;AAChC,WAAO,IAAI,SAAS;AAAA,MAChB,WAAW;AAAA,MACX,UAAU,sBAAsB;AAAA,MAChC,YAAY,OAAO,OAAO,UAAU,aAAa,OAAO,QAAQ,MAAM,OAAO;AAAA,MAC7E,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EACO,MAAM,eAAe,QAAQ;AAAA,IAChC,OAAO,OAAO;AACV,YAAM,aAAa,KAAK,SAAS,KAAK;AACtC,UAAI,eAAe,cAAc,KAAK;AAClC,cAAM,MAAM,KAAK,gBAAgB,KAAK;AACtC,0BAAkB,KAAK;AAAA,UACnB,MAAM,aAAa;AAAA,UACnB,UAAU,cAAc;AAAA,UACxB,UAAU,IAAI;AAAA,QAC9B,CAAa;AACD,eAAO;AAAA,MACX;AACA,aAAO,EAAE,QAAQ,SAAS,OAAO,MAAM,KAAI;AAAA,IAC/C;AAAA,EACJ;AACA,SAAO,SAAS,CAAC,WAAW;AACxB,WAAO,IAAI,OAAO;AAAA,MACd,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAAA,EAEO,MAAM,mBAAmB,QAAQ;AAAA,IACpC,OAAO,OAAO;AACV,YAAM,EAAE,IAAG,IAAK,KAAK,oBAAoB,KAAK;AAC9C,YAAM,OAAO,IAAI;AACjB,aAAO,KAAK,KAAK,KAAK,OAAO;AAAA,QACzB;AAAA,QACA,MAAM,IAAI;AAAA,QACV,QAAQ;AAAA,MACpB,CAAS;AAAA,IACL;AAAA,IACA,SAAS;AACL,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AAAA,EACO,MAAM,oBAAoB,QAAQ;AAAA,IACrC,OAAO,OAAO;AACV,YAAM,EAAE,QAAQ,IAAG,IAAK,KAAK,oBAAoB,KAAK;AACtD,UAAI,IAAI,OAAO,OAAO;AAClB,cAAM,cAAc,YAAY;AAC5B,gBAAM,WAAW,MAAM,KAAK,KAAK,GAAG,YAAY;AAAA,YAC5C,MAAM,IAAI;AAAA,YACV,MAAM,IAAI;AAAA,YACV,QAAQ;AAAA,UAC5B,CAAiB;AACD,cAAI,SAAS,WAAW;AACpB,mBAAO;AACX,cAAI,SAAS,WAAW,SAAS;AAC7B,mBAAO,MAAK;AACZ,mBAAO,MAAM,SAAS,KAAK;AAAA,UAC/B,OACK;AACD,mBAAO,KAAK,KAAK,IAAI,YAAY;AAAA,cAC7B,MAAM,SAAS;AAAA,cACf,MAAM,IAAI;AAAA,cACV,QAAQ;AAAA,YAChC,CAAqB;AAAA,UACL;AAAA,QACJ;AACA,eAAO,YAAW;AAAA,MACtB,OACK;AACD,cAAM,WAAW,KAAK,KAAK,GAAG,WAAW;AAAA,UACrC,MAAM,IAAI;AAAA,UACV,MAAM,IAAI;AAAA,UACV,QAAQ;AAAA,QACxB,CAAa;AACD,YAAI,SAAS,WAAW;AACpB,iBAAO;AACX,YAAI,SAAS,WAAW,SAAS;AAC7B,iBAAO,MAAK;AACZ,iBAAO;AAAA,YACH,QAAQ;AAAA,YACR,OAAO,SAAS;AAAA,UACpC;AAAA,QACY,OACK;AACD,iBAAO,KAAK,KAAK,IAAI,WAAW;AAAA,YAC5B,MAAM,SAAS;AAAA,YACf,MAAM,IAAI;AAAA,YACV,QAAQ;AAAA,UAC5B,CAAiB;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,OAAO,OAAO,GAAG,GAAG;AAChB,aAAO,IAAI,YAAY;AAAA,QACnB,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,UAAU,sBAAsB;AAAA,MAC5C,CAAS;AAAA,IACL;AAAA,EACJ;AAAA,EACO,MAAM,oBAAoB,QAAQ;AAAA,IACrC,OAAO,OAAO;AACV,YAAM,SAAS,KAAK,KAAK,UAAU,OAAO,KAAK;AAC/C,YAAM,SAAS,CAAC,SAAS;AACrB,YAAI,QAAQ,IAAI,GAAG;AACf,eAAK,QAAQ,OAAO,OAAO,KAAK,KAAK;AAAA,QACzC;AACA,eAAO;AAAA,MACX;AACA,aAAO,QAAQ,MAAM,IAAI,OAAO,KAAK,CAAC,SAAS,OAAO,IAAI,CAAC,IAAI,OAAO,MAAM;AAAA,IAChF;AAAA,IACA,SAAS;AACL,aAAO,KAAK,KAAK;AAAA,IACrB;AAAA,EACJ;AACA,cAAY,SAAS,CAAC,MAAM,WAAW;AACnC,WAAO,IAAI,YAAY;AAAA,MACnB,WAAW;AAAA,MACX,UAAU,sBAAsB;AAAA,MAChC,GAAG,oBAAoB,MAAM;AAAA,IACrC,CAAK;AAAA,EACL;AAaO,WAAS,OAAO,OAAO,UAAU,CAAA,GAWxC,OAAO;AAoBH,WAAO,OAAO,OAAM;AAAA,EACxB;AAKO,MAAI;AACX,GAAC,SAAUI,wBAAuB;AAC9B,IAAAA,uBAAsB,WAAW,IAAI;AACrC,IAAAA,uBAAsB,WAAW,IAAI;AACrC,IAAAA,uBAAsB,QAAQ,IAAI;AAClC,IAAAA,uBAAsB,WAAW,IAAI;AACrC,IAAAA,uBAAsB,YAAY,IAAI;AACtC,IAAAA,uBAAsB,SAAS,IAAI;AACnC,IAAAA,uBAAsB,WAAW,IAAI;AACrC,IAAAA,uBAAsB,cAAc,IAAI;AACxC,IAAAA,uBAAsB,SAAS,IAAI;AACnC,IAAAA,uBAAsB,QAAQ,IAAI;AAClC,IAAAA,uBAAsB,YAAY,IAAI;AACtC,IAAAA,uBAAsB,UAAU,IAAI;AACpC,IAAAA,uBAAsB,SAAS,IAAI;AACnC,IAAAA,uBAAsB,UAAU,IAAI;AACpC,IAAAA,uBAAsB,WAAW,IAAI;AACrC,IAAAA,uBAAsB,UAAU,IAAI;AACpC,IAAAA,uBAAsB,uBAAuB,IAAI;AACjD,IAAAA,uBAAsB,iBAAiB,IAAI;AAC3C,IAAAA,uBAAsB,UAAU,IAAI;AACpC,IAAAA,uBAAsB,WAAW,IAAI;AACrC,IAAAA,uBAAsB,QAAQ,IAAI;AAClC,IAAAA,uBAAsB,QAAQ,IAAI;AAClC,IAAAA,uBAAsB,aAAa,IAAI;AACvC,IAAAA,uBAAsB,SAAS,IAAI;AACnC,IAAAA,uBAAsB,YAAY,IAAI;AACtC,IAAAA,uBAAsB,SAAS,IAAI;AACnC,IAAAA,uBAAsB,YAAY,IAAI;AACtC,IAAAA,uBAAsB,eAAe,IAAI;AACzC,IAAAA,uBAAsB,aAAa,IAAI;AACvC,IAAAA,uBAAsB,aAAa,IAAI;AACvC,IAAAA,uBAAsB,YAAY,IAAI;AACtC,IAAAA,uBAAsB,UAAU,IAAI;AACpC,IAAAA,uBAAsB,YAAY,IAAI;AACtC,IAAAA,uBAAsB,YAAY,IAAI;AACtC,IAAAA,uBAAsB,aAAa,IAAI;AACvC,IAAAA,uBAAsB,aAAa,IAAI;AAAA,EAC3C,GAAG,0BAA0B,wBAAwB,CAAA,EAAG;AAUxD,QAAM,aAAa,UAAU;AAC7B,QAAM,aAAa,UAAU;AAEV,YAAU;AAC7B,QAAM,cAAc,WAAW;AACd,UAAQ;AAIzB,QAAM,UAAU,OAAO;AAEL,WAAS;AAC3B,QAAM,WAAW,QAAQ;AACzB,QAAM,YAAY,SAAS;AAC3B,QAAM,aAAa,UAAU;AAE7B,QAAM,YAAY,SAAS;AAEF,kBAAgB;AACvB,WAAS;AAC3B,QAAM,aAAa,UAAU;AAK7B,QAAM,cAAc,WAAW;AAC/B,QAAM,WAAW,QAAQ;AACzB,QAAM,iBAAiB,cAAc;AACjB,aAAW;AAEV,cAAY;AACZ,cAAY;AAM1B,QAAM,SAAS;AAAA,IAClB,SAAS,CAAC,QAAQ,UAAU,OAAO,EAAE,GAAG,KAAK,QAAQ,KAAI,CAAE;AAAA,IAC3D,SAAS,CAAC,QAAQ,UAAU,OAAO,EAAE,GAAG,KAAK,QAAQ,KAAI,CAAE;AAAA,IAC3D,UAAU,CAAC,QAAQ,WAAW,OAAO;AAAA,MACjC,GAAG;AAAA,MACH,QAAQ;AAAA,IAChB,CAAK;AAAA,IACD,SAAS,CAAC,QAAQ,UAAU,OAAO,EAAE,GAAG,KAAK,QAAQ,KAAI,CAAE;AAAA,IAC3D,OAAO,CAAC,QAAQ,QAAQ,OAAO,EAAE,GAAG,KAAK,QAAQ,KAAI,CAAE;AAAA,EAC3D;ACxmHA,QAAM,YAAY,CAAC,QAAQ;AACvB,WAAO,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,IAAI,eAAe;AAAA,EAChF;AAUA,QAAM,oBAAoB,CAAC,QAAQ;AAC/B,WAAO,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,IAAI,iBAAiB;AAAA,EAClF;AAUA,QAAM,WAAW,CAAC,SAAS,YAAY;AACnC,QAAI,kBAAkB,OAAO,GAAG;AAC5B,UAAI,kBAAkB,OAAO,GAAG;AAC5B,eAAO,QAAQ,MAAM,OAAO;AAAA,MAChC;AACA,aAAO;AAAA,IACX;AACA,QAAI,kBAAkB,OAAO,GAAG;AAC5B,aAAO;AAAA,IACX;AACA,WAAO,OAAO,OAAO,IAAI,SAAS,OAAO;AAAA,EAC7C;AA6BuBC,aAAS;AAAA,IAC5B,MAAMC,YAAU,UAAU;AAAA,IAC1B,QAAQC,UAAQC,WACJ;AAAA,MACR,MAAMD,UAAQE,UAAQ,CAACC,WAAQ,GAAIC,WAAQ,CAAE,CAAC,CAAC;AAAA,MAC/C,SAASD,WAAQ,EAAG,SAAQ;AAAA,MAC5B,MAAME,eAAaC,YAAc;AAAA,IACzC,CAAK,EAEI,SAASC,QAAK,CAAE,CAAC;AAAA,EAC1B,CAAC;AAED,QAAM,iBAAiB,OAAO,gBAAgB;AAO9C,QAAM,aAAa,CAAC,QAAQ;AACxB,WAAO,YAAY,OAAO,UAAU;AAAA,EACxC;AAYA,QAAM,0BAA0B,CAAC,QAAQ,YAAY;AACjD,WAAO,OAAO,YAAY,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACnE,UAAI,IAAI,IAAI;AACZ,UAAI,WAAW,KAAK,GAAG;AACnB,eAAO;AAAA,UACH;AAAA,UACA;AAAA,YACI,GAAG;AAAA,YACH,OAAO,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,cAC3D,QAAQ,aAAa,MAAM,OAC3B,MAAM;AAAA,YACZ,SAAS,SAAS,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,aAAa,MAAM,OAAO;AAAA,YACtG,oBAAoB,KAAK,MAAM,uBAAuB,QAAQ,OAAO,SAAS,KAAK,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ;AAAA,YAC7I,2BAA2B,KAAK,MAAM,8BAA8B,QAAQ,OAAO,SAAS,KAAK,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ;AAAA,YAC3J,WAAW;AAAA,cACP,GAAG,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ;AAAA,cAC7D,GAAG,MAAM;AAAA,YACjC;AAAA,YACoB,WAAW,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,YAC/D;AAAA,cACE,GAAG,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ;AAAA,cAC7D,IAAK,KAAK,MAAM,cAAc,QAAQ,OAAO,SAAS,KAAK;YACvF,IAC0B,MAAM;AAAA,UAChC;AAAA,QACA;AAAA,MACQ,OACK;AACD,eAAO,CAAC,KAAK,wBAAwB,OAAO,OAAO,CAAC;AAAA,MACxD;AAAA,IACJ,CAAC,CAAC;AAAA,EACN;AACA,QAAM,iCAAiC,OAAO,mBAAmB;AAMjE,QAAM,eAAe,MAAM;AACvB,WAAO;AAAA;AAAA,MAEH,QAAQ,CAAC,WAAW,YAAY,wBAAwB,WAAW,OAAO;AAAA,MAC1E,OAAO,CAAC,SAAS;AAAA,MACjB,UAAU,CAAC,SAAS;AAAA,MACpB,WAAW,CAAC,SAAS;AAAA,MACrB,UAAU,MAAM;AAAA,MAChB,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,eAAe,CAAC,EAAE,aAAa,YAAa;AAAA,QACxC;AAAA,QACA;AAAA,MACZ;AAAA,MACQ,QAAQ,MAAM;AAAA,IACtB;AAAA,EACA;AAOA,QAAM,uBAAuB,CAAC,EAAE,MAAM,aAAc;AAChD,UAAM,aAAa;AACnB,WAAO,KAAK,QAAQ,oBAAoB,CAAC,SAAS,MAAM,WAAW,CAAC,IAC9D,GAAG,QAAQ,WAAW,GAAG,IAAI,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,KACrD,EAAE;AAAA,EACZ;AAQA,QAAM,gCAAgC,CAAC,OAAO,OAAO,UAAU;AAC3D,UAAM,cAAc,OACd,sBAAsB,KAAK,IAC3B,kBAAkB,KAAK;AAC7B,YAAQ,gBAAgB,QAAQ,gBAAgB,SAAS,SAAS,YAAY,UAAU,IAAI,MAAM,cAAc;AAAA,EACpH;AACA,QAAM,wBAAwB,CAAC,UAAU;AACrC,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AACA,WAAO,OAAO,QAAQ,KAAK,EACtB,OAAO,CAAC,CAAA,EAAG,KAAK,MAAM,UAAU,MAAS,EACzC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACvB,UAAI;AAIJ,UAAI,OAAO,UAAU,YACjB,CAAC,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,MAAM,MAAM,KAChD,MAAM,OAAO,KAAK,CAAC,GAAG;AACtB,uBAAe;AAAA,MACnB,OACK;AACD,uBAAe,KAAK,UAAU,KAAK;AAAA,MACvC;AACA,aAAO,GAAG,mBAAmB,GAAG,CAAC,IAAI,mBAAmB,YAAY,CAAC;AAAA,IACzE,CAAC,EACI,KAAK,GAAG;AAAA,EACjB;AACA,QAAM,oBAAoB,CAAC,UAAU;AACjC,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AACA,WAAQ,OAAO,KAAK,KAAK,EAGpB,QAAQ,CAAC,QAAQ,cAAc,KAAK,MAAM,GAAG,CAAC,CAAC,EAC/C,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACvB,aAAO,GAAG,mBAAmB,GAAG,CAAC,IAAI,mBAAmB,KAAK,CAAC;AAAA,IAClE,CAAC,EACI,KAAK,GAAG;AAAA,EACjB;AASA,QAAM,gBAAgB,CAAC,KAAK,UAAU;AAClC,QAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,aAAO,MAAM,QAAQ,CAAC,GAAG,QAAQ,cAAc,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;AAAA,IACvE;AACA,QAAI,iBAAiB,MAAM;AACvB,aAAO,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,YAAW,CAAE,CAAC;AAAA,IAC3C;AACA,QAAI,UAAU,MAAM;AAChB,aAAO,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;AAAA,IAC1B;AACA,QAAI,UAAU,QAAW;AACrB,aAAO,CAAA;AAAA,IACX;AACA,QAAI,OAAO,UAAU,UAAU;AAC3B,aAAO,OAAO,KAAK,KAAK,EAAE,QAAQ,CAAC;AAAA;AAAA;AAAA,QAGnC,cAAc,GAAG,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;AAAA,OAAC;AAAA,IAC3C;AACA,WAAO,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;AAAA,EAClC;AAAA,EAqBA,MAAM,2BAA2B,MAAM;AAAA,IACnC,YAAY,UAAU,uBAAuB;AACzC,YAAM,mBAAmB,sBAAsB,KAAK,GAAG;AACvD,YAAM,yDAAyD,gBAAgB,SAAS,SAAS,MAAM,EAAE;AACzG,WAAK,WAAW;AAAA,IACpB;AAAA,EACJ;AAeA,QAAM,iBAAiB,OAAO,EAAE,OAAO,MAAM,QAAQ,SAAS,MAAM,kBAAkB,mBAAoB;AACtG,UAAM,SAAS,MAAM,MAAM,MAAM;AAAA,MAC7B,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,IACR,CAAK;AACD,UAAM,cAAc,OAAO,QAAQ,IAAI,cAAc;AACrD,SAAK,gBAAgB,QAAQ,gBAAgB,SAAS,SAAS,YAAY,SAAS,cAAc,OAAO,gBAAgB,QAAQ,gBAAgB,SAAS,SAAS,YAAY,SAAS,MAAM,IAAI;AAC9L,YAAM,WAAW;AAAA,QACb,QAAQ,OAAO;AAAA,QACf,MAAM,MAAM,OAAO,KAAI;AAAA,QACvB,SAAS,OAAO;AAAA,MAC5B;AACQ,YAAM,iBAAiB,MAAM,UAAU,SAAS,MAAM;AACtD,WAAK,qBAAqB,QAAQ,qBAAqB,SAAS,mBAAmB,MAAM,6BACrF,UAAU,cAAc,GAAG;AAC3B,eAAO;AAAA,UACH,GAAG;AAAA,UACH,MAAM,eAAe,MAAM,SAAS,IAAI;AAAA,QACxD;AAAA,MACQ;AACA,aAAO;AAAA,IACX;AACA,QAAI,gBAAgB,QAAQ,gBAAgB,SAAS,SAAS,YAAY,SAAS,OAAO,GAAG;AACzF,aAAO;AAAA,QACH,QAAQ,OAAO;AAAA,QACf,MAAM,MAAM,OAAO,KAAI;AAAA,QACvB,SAAS,OAAO;AAAA,MAC5B;AAAA,IACI;AACA,WAAO;AAAA,MACH,QAAQ,OAAO;AAAA,MACf,MAAM,MAAM,OAAO,KAAI;AAAA,MACvB,SAAS,OAAO;AAAA,IACxB;AAAA,EACA;AACA,QAAM,iBAAiB,CAAC,SAAS;AAC7B,UAAM,WAAW,IAAI,SAAQ;AAC7B,UAAM,mBAAmB,CAAC,KAAK,UAAU;AACrC,UAAI,iBAAiB,MAAM;AACvB,iBAAS,OAAO,KAAK,KAAK;AAAA,MAC9B,OACK;AACD,iBAAS,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,MAC9C;AAAA,IACJ;AACA,WAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC3C,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,mBAAW,QAAQ,OAAO;AACtB,2BAAiB,KAAK,IAAI;AAAA,QAC9B;AAAA,MACJ,OACK;AACD,yBAAiB,KAAK,KAAK;AAAA,MAC/B;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AACA,QAAM,mBAAmB,CAAC,YAAY;AAClC,WAAO,OAAO,YAAY,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,YAAW,GAAI,CAAC,CAAC,CAAC;AAAA,EAC3F;AACA,QAAM,WAAW,CAAC,YAAY;AAC1B,UAAM,EAAE,MAAM,YAAY,OAAO,MAAM,OAAO,gBAAgB,SAAS,aAAY,IAAM;AACzF,UAAM,aAAa,WAAW,OAAO;AACrC,UAAM,cAAc,WAAW,eAC3B,OAAO,YAAY,OAAO,QAAQ,WAAW,WAAW,EAAE,IAAI,CAAC,CAAC,MAAM,eAAe,MAAM;AACvF,UAAI,OAAO,oBAAoB,YAAY;AACvC,eAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC;AAAA,MAC1C,OACK;AACD,eAAO,CAAC,MAAM,eAAe;AAAA,MACjC;AAAA,IACJ,CAAC,CAAC;AACN,UAAM,kBAAkB;AAAA,MACpB,GAAI,eAAe,iBAAiB,WAAW;AAAA,MAC/C,GAAG,iBAAiB,OAAO;AAAA,IACnC;AAEI,WAAO,KAAK,eAAe,EAAE,QAAQ,CAAC,QAAQ;AAC1C,UAAI,gBAAgB,GAAG,MAAM,QAAW;AACpC,eAAO,gBAAgB,GAAG;AAAA,MAC9B;AAAA,IACJ,CAAC;AACD,QAAI,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA,QAAQ,MAAM;AAAA,MACd,SAAS;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,aAAa;AAAA,MACb,kBAAkB,WAAW;AAAA,MAC7B,cAAc;AAAA,QACV,GAAI,WAAW,eAAe,EAAE,aAAa,WAAW,YAAW;AAAA,QACnE,GAAG;AAAA,MACf;AAAA,MACQ,IAAK,iBAAiB,QAAQ,iBAAiB,SAAS,SAAS,aAAa,WAAW,EAAE,QAAQ,aAAa,OAAM;AAAA,MACtH,IAAK,iBAAiB,QAAQ,iBAAiB,SAAS,SAAS,aAAa,UAAU,EAAE,OAAO,aAAa,MAAK;AAAA,MACnH,GAAI,gBACA,UAAU,gBACV,CAAC,EAAE,iBAAiB,QAAQ,iBAAiB,SAAS,SAAS,aAAa,SAAS,EAAE,MAAM,aAAa,KAAI;AAAA,IAC1H;AACI,QAAI,MAAM,WAAW,OAAO;AACxB,UAAI,iBAAiB,SAAS,MAAM,gBAAgB,uBAAuB;AACvE,sBAAc;AAAA,UACV,GAAG;AAAA,UACH,aAAa;AAAA,UACb,MAAM,gBAAgB,WAAW,OAAO,eAAe,IAAI;AAAA,QAC3E;AAAA,MACQ,WACS,iBAAiB,SACtB,MAAM,gBAAgB,qCAAqC;AAC3D,sBAAc;AAAA,UACV,GAAG;AAAA,UACH,aAAa;AAAA,UACb,SAAS;AAAA,YACL,gBAAgB;AAAA,YAChB,GAAG,YAAY;AAAA,UACnC;AAAA,UACgB,MAAM,OAAO,SAAS,WAChB,OACA,IAAI,gBAAgB,IAAI;AAAA,QAC9C;AAAA,MACQ,WACS,SAAS,QAAQ,SAAS,QAAW;AAC1C,sBAAc;AAAA,UACV,GAAG;AAAA,UACH,aAAa;AAAA,UACb,SAAS;AAAA,YACL,gBAAgB;AAAA,YAChB,GAAG,YAAY;AAAA,UACnC;AAAA,UACgB,MAAM,KAAK,UAAU,IAAI;AAAA,QACzC;AAAA,MACQ;AAAA,IACJ;AACA,WAAO,WAAW;AAAA,MACd,GAAG;AAAA,MACH,GAAG;AAAA,IACX,CAAK;AAAA,EACL;AACA,QAAM,uBAAuB,CAAC,OAAO,YAAY,cAAc;AAC3D,UAAM;AAAA,MAAE;AAAA,MAAO;AAAA,MAAQ;AAAA,MAAM;AAAA,MAAS;AAAA,MAAc;AAAA,MAAuB;AAAA;AAAA,MAE3E;AAAA;AAAA,MAEA;AAAA;AAAA,MAEA,GAAG;AAAA,IAAc,IAAK,aAAa,CAAA;AACnC,UAAM,uBAAuB;AAAA,MACzB,GAAG;AAAA,MACH,GAAG;AAAA,IACX;AACI,UAAM,cAAc,eAAe,OAAO,qBAAqB,SAAS,QAAQ,OAAO,CAAC,CAAC,qBAAqB,SAAS;AACvH,WAAO;AAAA,MACH,MAAM;AAAA,MACN,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,QACV,GAAI,SAAS,EAAE;QACf,GAAI,QAAQ,EAAE;QACd,GAAG;AAAA,MACf;AAAA,MACQ,SAAS;AAAA,QACL,GAAG;AAAA,QACH,GAAG;AAAA,MACf;AAAA,IACA;AAAA,EACA;AAIA,QAAM,iBAAiB,CAAC,OAAO,SAAS,QAAQ,OAAO,cAAc;AACjE,UAAM,OAAO,qBAAqB;AAAA,MAC9B,MAAM,MAAM;AAAA,MACZ;AAAA,IACR,CAAK;AACD,UAAM,iBAAiB,8BAA8B,OAAO,SAAS;AACrE,WAAO,GAAG,OAAO,GAAG,IAAI,GAAG,cAAc;AAAA,EAC7C;AACA,QAAM,gBAAgB,CAAC,OAAO,eAAe;AACzC,UAAM,wBAAwB,OAAO,KAAK,MAAM,SAAS;AACzD,WAAO,OAAO,cAAc;AACxB,YAAM,eAAe,qBAAqB,OAAO,YAAY,SAAS;AACtE,YAAM,WAAW,MAAM,SAAS,YAAY;AAE5C,UAAI,CAAC,WAAW,sBAAsB;AAClC,eAAO;AAAA,MACX;AACA,UAAI,sBAAsB,SAAS,SAAS,OAAO,SAAQ,CAAE,GAAG;AAC5D,eAAO;AAAA,MACX;AACA,YAAM,IAAI,mBAAmB,UAAU,qBAAqB;AAAA,IAChE;AAAA,EACJ;AACA,QAAM,aAAa,CAAC,QAAQ,SAAS;AACjC,WAAO,OAAO,YAAY,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,SAAS,MAAM;AACvE,UAAI,WAAW,SAAS,GAAG;AACvB,eAAO,CAAC,KAAK,cAAc,WAAW,IAAI,CAAC;AAAA,MAC/C,OACK;AACD,eAAO,CAAC,KAAK,WAAW,WAAW,IAAI,CAAC;AAAA,MAC5C;AAAA,IACJ,CAAC,CAAC;AAAA,EACN;AC3cO,QAAM,iBAAiBC,SAAO,CAAC,QAAQ,SAAS,OAAO,CAAC;AACxD,QAAM,iBAAiBA,SAAO,CAAC,QAAQ,OAAO,YAAY,CAAC;AAC3D,QAAM,qBAAqBA,SAAO,CAAC,WAAW,UAAU,aAAa,kBAAkB,CAAC;AACxF,QAAM,sBAAsBA,SAAO,CAAC,QAAQ,WAAW,OAAO,YAAY,CAAC;AAC3E,QAAM,kBAAkBA,SAAO,CAAC,SAAS,IAAI,CAAC;AAC9C,QAAM,mBAAmBA,SAAO,CAAC,QAAQ,QAAQ,CAAC;AAClD,QAAM,oBAAoBA,SAAO,CAAC,UAAU,YAAY,OAAO,CAAC;AAChE,QAAM,sBAAsBA,SAAO,CAAC,YAAY,OAAO,CAAC;AACxD,QAAM,sBAAsBA,SAAO,CAAC,eAAe,eAAe,SAAS,WAAW,CAAC;AACvF,QAAM,iBAAiBA,SAAO,CAAC,QAAQ,OAAO,CAAC;AAC/C,QAAM,mBAAmBA,SAAO,CAAC,aAAa,UAAU,KAAK,CAAC;AAChCA,WAAO,CAAC,QAAQ,QAAQ,IAAI,CAAC;AAC3D,QAAM,uBAAuBA,SAAO,CAAC,OAAO,SAAS,CAAC;AACtD,QAAM,wBAAwBA,SAAO,CAAC,UAAU,OAAO,CAAC;AACxD,QAAM,sBAAsBA,SAAO;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAKM,QAAM,wBAAwB,CAAyB,SAAkB,WAC9EV,WAAS;AAAA,IACP,SAASC,YAAU,OAAO;AAAA,IAC1B,MAAM;AAAA,IACN,OAAOI,WAAE,EAAS,SAAA;AAAA,IAClB,SAASA,WAAE,EAAS,SAAA;AAAA,EACtB,CAAC;AAGI,QAAM,IAAI;AAAA,IACf,SAAS,CAAyB,WAAc,sBAAsB,MAAM,MAAM;AAAA,IAClF,OAAO,sBAAsB,OAAOM,UAAQ;AAAA,IAC5C,MAAMA,SAAE;AAAA,EACV;AAKO,QAAM,mBAAmBX,WAAS;AAAA,IACvC,IAAIM,WAAE,EAAS,SAAA;AAAA,IACf,YAAYM,OAAS,KAAA,EAAO,SAAA;AAAA,IAC5B,YAAYA,OAAS,KAAA,EAAO,SAAA;AAAA,EAC9B,CAAC;AAEM,QAAM,aAAaZ,WAAS;AAAA,IACjC,MAAMa,OAAE;AAAA,IACR,eAAeD,OAAS,OAAA,EAAS,SAAA;AAAA,EACnC,CAAC;AASM,QAAM,uBAAuBZ,WAAS;AAAA,IAC3C,QAAQK,WAAE;AAAA,IACV,WAAWA,WAAE;AAAA,IACb,SAASA,WAAE;AAAA,IACX,SAASA,WAAE;AAAA,EACb,CAAC;AAKM,QAAM,sBAAsBL,WAAS;AAAA,IAC1C,MAAMK,WAAE;AAAA,IACR,SAASA,WAAE;AAAA,IACX,QAAQA,WAAE;AAAA,IACV,WAAWA,WAAE;AAAA,EACf,CAAC;AASM,QAAM,mBAAmB,iBAAiB,OAAO;AAAA,IACtD,WAAWC,WAAE,EAAS,SAAA;AAAA,IACtB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAOD,WAAE,EAAS,MAAA;AAAA,IAClB,WAAWA,WAAE,EAAS,SAAA;AAAA,IACtB,YAAYA,WAAE,EAAS,SAAA;AAAA,IACvB,WAAWA,WAAE,EAAS,SAAA;AAAA,IACtB,UAAUA,WAAE,EAAS,SAAA;AAAA,IACrB,WAAWA,WAAE,EAAS,SAAA;AAAA,IACtB,MAAM;AAAA,IACN,cAAcC,WAAE,EAAS,SAAA;AAAA,EAC3B,CAAC;AAKM,QAAM,mBAAmB,iBAAiB,QAAA,EAAU,OAAO;AAAA,IAChE,OAAOD,WAAE,EAAS,MAAA;AAAA,IAClB,UAAUA,WAAE;AAAA,EACd,CAAC;AAKM,QAAM,mBAAmB,iBAAiB,QAAA;AAK1C,QAAM,wBAAwBL,WAAS;AAAA,IAC5C,OAAOE,UAAQ,gBAAgB;AAAA,EACjC,CAAC;AAKM,QAAM,8BAA8BF,WAAS;AAAA,IAClD,OAAOE,UAAQ,iBAAiB,SAAS;AAAA,EAC3C,CAAC;AASM,QAAM,sBAAsBF,WAAS;AAAA,IAC1C,OAAOK,WAAE,EAAS,IAAI,GAAG,2BAA2B;AAAA,EACtD,CAAC;AAKM,QAAM,kBAAkBL,WAAS;AAAA,IACtC,OAAOK,WAAE,EAAS,MAAA;AAAA,IAClB,UAAUA,WAAE;AAAA,EACd,CAAC;AAEwC,mBAAiB,OAAO;AAAA,IAC/D,SAASC,WAAE;AAAA,IACX,OAAOD,WAAE;AAAA,IACT,aAAaO,OAAS,KAAA;AAAA,EACxB,CAAC;AAKM,QAAM,qBAAqBZ,WAAS;AAAA,IACzC,OAAOK,WAAE,EAAS,MAAA;AAAA,IAClB,UAAUA,WAAE;AAAA,IACZ,YAAYA,WAAE;AAAA,IACd,WAAWA,WAAE;AAAA,EACf,CAAC;AAKM,QAAM,6BAA6BL,WAAS;AAAA,IACjD,OAAOK,WAAE,EAAS,MAAA;AAAA,EACpB,CAAC;AAKM,QAAM,uBAAuBL,WAAS;AAAA,IAC3C,OAAOK,WAAE;AAAA,IACT,UAAUA,WAAE;AAAA,EACd,CAAC;AAKM,QAAM,4BAA4BL,WAAS;AAAA,IAChD,MAAMK,WAAE,EAAS,SAAA;AAAA,IACjB,OAAOA,WAAE,EAAS,SAAA;AAAA,IAClB,OAAOA,WAAE,EAAS,SAAA;AAAA,EACpB,CAAC;AAKM,QAAM,cAAcL,WAAS;AAAA,IAClC,OAAOK,WAAE;AAAA,EACX,CAAC;AASM,QAAM,qBAAqB,iBAAiB,OAAO;AAAA,IACxD,MAAMA,WAAE;AAAA,IACR,QAAQA,WAAE,EAAS,SAAA;AAAA,IACnB,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,aAAaO,OAAS,KAAA,EAAO,SAAA;AAAA,EAC/B,CAAC;AAKM,QAAM,qBAAqB,mBAAmB,QAAA,EAAU,OAAO;AAAA,IACpE,MAAMP,WAAE,EAAS,IAAI,CAAC;AAAA,IACtB,QAAQA,aAAW,IAAI,CAAC;AAAA,EAC1B,CAAC;AAKM,QAAM,qBAAqB,mBAAmB,QAAA;AAK9C,QAAM,yBAAyB,iBAAiB,OAAO;AAAA,IAC5D,WAAWC,WAAE;AAAA,IACb,SAAS;AAAA,IACT,aAAaM,OAAS,KAAA;AAAA,EACxB,CAAC;AAKqC,yBAAuB,QAAA,EAAU,OAAO;AAAA,IAC5E,WAAWN,WAAE;AAAA,IACb,SAAS;AAAA,EACX,CAAC;AAKqC,yBAAuB,QAAA;AAStD,QAAM,gBAAgB,iBAAiB,OAAO;AAAA,IACnD,WAAWA,WAAE;AAAA,IACb,SAASA,WAAE;AAAA,IACX,YAAYD,WAAE;AAAA,IACd,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,YAAYO,OAAS,KAAA;AAAA,IACrB,SAASN,WAAE;AAAA,IACX,gBAAgB;AAAA,EAClB,CAAC;AAKM,QAAM,sBAAsB,cAAc,QAAA,EAAU,OAAO;AAAA,IAChE,YAAYM,OAAS,KAAA;AAAA,EACvB,CAAC;AAKM,QAAM,sBAAsB,cAAc,QAAA;AAK1C,QAAM,sBAAsB,iBAAiB,OAAO;AAAA,IACzD,SAASN,WAAE;AAAA,IACX,WAAWA,WAAE;AAAA,IACb,YAAYD,WAAE;AAAA,IACd,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,YAAYO,OAAS,KAAA;AAAA,IACrB,SAASN,WAAE;AAAA,IACX,gBAAgB;AAAA,EAClB,CAAC;AAKM,QAAM,2BAA2BN,WAAS;AAAA,IAC/C,QAAQA,WAAS;AAAA,MACf,IAAIM,WAAE;AAAA,MACN,UAAUD,WAAE,EAAS,SAAA;AAAA,IAAS,CAC/B;AAAA,IACD,OAAOL,WAAS;AAAA,MACd,MAAMK,WAAE;AAAA,MACR,OAAOA,WAAE,EAAS,MAAA,EAAQ,SAAA;AAAA,MAC1B,UAAUA,WAAE,EAAS,SAAA;AAAA,IAAS,CAC/B;AAAA,IACD,OAAOA,WAAE,EAAS,SAAA;AAAA,EACpB,CAAC;AASM,QAAM,wBAAwB,iBAAiB,OAAO;AAAA,IAC3D,WAAWC,WAAE;AAAA,IACb,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,WAAWD,WAAE;AAAA,IACb,WAAWC,WAAE;AAAA,IACb,WAAW;AAAA,IACX,UAAUD,WAAE;AAAA,IACZ,SAASA,WAAE,EAAS,SAAA;AAAA,IACpB,YAAYA,WAAE,EAAS,SAAA;AAAA;AAAA,EACzB,CAAC;AASM,QAAM,sBAAsBL,WAAS;AAAA,IAC1C,WAAWA,WAAS;AAAA,MAClB,KAAKK,WAAE;AAAA,MACP,SAASS,YAAE;AAAA,IAAQ,CACpB;AAAA,EACH,CAAC;AAEM,QAAM,kCAAkCd,WAAS;AAAA,IACtD,wBAAwBA,WAAS;AAAA,MAC/B,OAAOM,WAAE;AAAA,IAAO,CACjB;AAAA,EACH,CAAC;AAEM,QAAM,wBAAwBN,WAAS;AAAA,IAC5C,YAAYA,WAAS;AAAA,MACnB,OAAOM,WAAE;AAAA,MACT,MAAMD,WAAE;AAAA,MACR,gBAAgBS,YAAE;AAAA,IAAQ,CAC3B;AAAA,EACH,CAAC;AAEM,QAAM,wBAAwBd,WAAS;AAAA,IAC5C,YAAYA,WAAS;AAAA,MACnB,WAAWK,WAAE;AAAA,MACb,SAASA,WAAE;AAAA,MACX,QAAQS,YAAE;AAAA,MACV,kBAAkBA,YAAE;AAAA,MACpB,iBAAiBA,YAAE;AAAA,IAAQ,CAC5B;AAAA,EACH,CAAC;AAEM,QAAM,qBAAqBd,WAAS;AAAA,IACzC,SAASA,WAAS;AAAA,MAChB,UAAUK,WAAE;AAAA,IAAO,CACpB;AAAA,EACH,CAAC;AAEM,QAAM,mBAAmBL,WAAS;AAAA,IACvC,MAAMA,WAAS;AAAA,MACb,SAASc,YAAE;AAAA,MACX,SAAST,WAAE,EAAS,SAAA;AAAA,IAAS,CAC9B;AAAA,EACH,CAAC;AAEM,QAAM,mBAAmBL,WAAS;AAAA,IACvC,MAAMA,WAAS;AAAA,MACb,SAASM,WAAE;AAAA,IAAO,CACnB;AAAA,EACH,CAAC;AAEM,QAAM,yBAAyBN,WAAS;AAAA,IAC7C,aAAaA,WAAS,CAAA,CAAE;AAAA,EAC1B,CAAC;AAEM,QAAM,yBAAyBA,WAAS;AAAA,IAC7C,cAAcA,WAAS;AAAA,MACrB,KAAKK,WAAE;AAAA,IAAO,CACf;AAAA,EACH,CAAC;AAEM,QAAM,4BAA4BL,WAAS;AAAA,IAChD,iBAAiBA,WAAS;AAAA,MACxB,KAAKK,WAAE;AAAA,IAAO,CACf;AAAA,EACH,CAAC;AAKM,QAAM,yBAAyBD,UAAQ;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAKM,QAAM,8BAA8BJ,WAAS;AAAA,IAClD,0BAA0BK,WAAE,EAAS,SAAA;AAAA,IACrC,QAAQA,WAAE,EAAS,SAAA;AAAA,IACnB,WAAWA,WAAE,EAAS,SAAA;AAAA,IACtB,QAAQH,UAAQ,sBAAsB,EAAE,SAAA;AAAA,IACxC,UAAUG,WAAE,EAAS,SAAA;AAAA,EACvB,CAAC;AAKM,QAAM,yBAAyBL,WAAS;AAAA,IAC7C,SAASc,YAAE;AAAA,IACX,SAASA,YAAE,EAAU,SAAA;AAAA,IACrB,kBAAkBT,WAAE,EAAS,SAAA;AAAA,IAC7B,mBAAmBA,WAAE,EAAS,SAAA;AAAA,IAC9B,qCAAqCS,YAAE,EAAU,SAAA;AAAA,IACjD,mBAAmBA,YAAE,EAAU,SAAA;AAAA,IAC/B,OAAOT,WAAE,EAAS,SAAA;AAAA,IAClB,UAAUL,WACA;AAAA,MACN,SAASM,WAAE,EAAS,SAAA;AAAA,MACpB,SAASA,WAAE,EAAS,SAAA;AAAA,MACpB,gBAAgBQ,YAAE,EAAU,SAAA;AAAA,MAC5B,SAASR,WAAE,EAAS,SAAA;AAAA,MACpB,SAASA,WAAE,EAAS,SAAA;AAAA,IAAS,CAC9B,EACA,SAAA;AAAA,EACL,CAAC;AAKM,QAAM,mBAAmBN,WAAS;AAAA,IACvC,KAAKK,WAAE;AAAA,IACP,OAAOA,WAAE;AAAA,IACT,WAAWA,WAAE;AAAA,IACb,kBAAkBA,WAAE,EAAS,SAAA;AAAA,EAC/B,CAAC;AAKM,QAAM,0BAA0BL,WAAS;AAAA,IAC9C,SAASM,WAAE;AAAA,IACX,iBAAiBA,WAAE;AAAA,IACnB,UAAUD,WAAE,EAAS,SAAA;AAAA,IACrB,WAAWC,WAAE;AAAA,IACb,YAAYD,WAAE;AAAA,IACd,WAAWA,WAAE;AAAA,IACb,YAAYU,WAASV,YAAU;AAAA,IAC/B,QAAQA,WAAE;AAAA,IACV,cAAcC,WAAE;AAAA,IAChB,QAAQN,WAAS;AAAA,MACf,GAAGM,WAAE;AAAA,MACL,GAAGA,WAAE;AAAA,MACL,OAAOA,WAAE;AAAA,MACT,QAAQA,WAAE;AAAA,IAAO,CAClB;AAAA,EACH,CAAC;AAKM,QAAM,wBAAwBN,WAAS;AAAA,IAC5C,MAAME,UAAQ,gBAAgB;AAAA,IAC9B,iBAAiBG,WAAE,EAAS,SAAA;AAAA,IAC5B,oBAAoBH,UAAQ,wBAAwB,UAAU;AAAA,IAC9D,KAAKG,WAAE;AAAA,IACP,OAAOA,WAAE;AAAA,EACX,CAAC;AAKM,QAAM,+BAA+BL,WAAS;AAAA,IACnD,iBAAiBM,WAAE;AAAA,IACnB,eAAeA,WAAE;AAAA,IACjB,aAAaA,WAAE;AAAA,EACjB,CAAC;AAKM,QAAM,uBAAuBN,WAAS;AAAA,IAC3C,cAAc,4BAA4B,SAAA;AAAA,IAC1C,QAAQE,UAAQ,sBAAsB;AAAA,IACtC,OAAO;AAAA,IACP,UAAU;AAAA,EACZ,CAAC;AAKsCF,aAAS;AAAA,IAC9C,SAASE,UAAQ,oBAAoB;AAAA,EACvC,CAAC;AAKM,QAAM,yBAAyB,iBAAiB,OAAO;AAAA,IAC5D,eAAeI,WAAE;AAAA,IACjB,UAAUA,WAAE;AAAA,IACZ,QAAQD,WAAE;AAAA,IACV,QAAQA,WAAE;AAAA,IACV,gBAAgBA,WAAE;AAAA,IAClB,MAAMA,WAAE;AAAA,IACR,cAAcA,WAAE;AAAA,IAChB,WAAWC,WAAE,EAAS,IAAA,EAAM,YAAA;AAAA,IAC5B,YAAYD,WAAE,EAAS,SAAA;AAAA,EACzB,CAAC;AAKM,QAAM,yBAAyB,uBAAuB,QAAA,EAAU,OAAO;AAAA,IAC5E,eAAeC,WAAE;AAAA,IACjB,UAAUA,WAAE;AAAA,IACZ,cAAcD,WAAE;AAAA,IAChB,WAAWC,WAAE,EAAS,IAAA,EAAM,SAAA,EAAW,IAAI,GAAI,EAAE,SAAA;AAAA,IACjD,SAASA,WAAE,EAAS,WAAW,IAAI,GAAG,EAAE,SAAA;AAAA;AAAA,EAC1C,CAAC;AAKM,QAAM,yBAAyBN,WAAS;AAAA,IAC7C,QAAQK,WAAE,EAAS,SAAA;AAAA,IACnB,QAAQA,WAAE;AAAA,IACV,gBAAgBA,WAAE;AAAA,IAClB,WAAWC,WAAE,EAAS,MAAM,YAAA,EAAc,SAAA;AAAA,EAC5C,CAAC;AAKM,QAAM,yBAAyBN,WAAS;AAAA,IAC7C,QAAQK,aAAW,IAAI,CAAC;AAAA,EAC1B,CAAC;AAKM,QAAM,iCAAiCL,WAAS;AAAA,IACrD,IAAIM,WAAE;AAAA,IACN,eAAeA,WAAE;AAAA,IACjB,QAAQD,WAAE;AAAA,IACV,gBAAgBA,WAAE,EAAS,SAAA;AAAA,IAC3B,WAAWC,WAAE,EAAS,MAAM,YAAA,EAAc,SAAA;AAAA,IAC1C,YAAYM,OAAS,KAAA;AAAA,EACvB,CAAC;AAKM,QAAM,oBAAoBZ,WAAS;AAAA,IACxC,OAAOK,WAAE;AAAA,IACT,KAAKA,WAAE;AAAA,IACP,QAAQA,WAAE;AAAA,EACZ,CAAC;AAKM,QAAM,oBAAoBL,WAAS;AAAA,IACxC,IAAIK,WAAE;AAAA,IACN,aAAaH,UAAQG,YAAU;AAAA,IAC/B,OAAOA,WAAE;AAAA,IACT,KAAKA,WAAE;AAAA,IACP,OAAOH,UAAQG,YAAU;AAAA,IACzB,UAAUH,UAAQG,YAAU;AAAA,EAC9B,CAAC;AAKM,QAAM,gBAAgBL,WAAS;AAAA,IACpC,OAAOE,UAAQ,iBAAiB;AAAA,IAChC,OAAOA,UAAQ,iBAAiB;AAAA,EAClC,CAAC;AASM,QAAM,oBAAoB,iBAAiB,OAAO;AAAA,IACvD,WAAWI,WAAE;AAAA,IACb,SAASA,WAAE;AAAA,IACX,eAAeA,WAAE;AAAA,IACjB,YAAYD,WAAE;AAAA,IACd,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,mBAAmBA,WAAE;AAAA,IACrB,cAAcA,WAAE,EAAS,SAAA;AAAA,IACzB,WAAWA,WAAE,EAAS,SAAA;AAAA,IACtB,iBAAiBA,WAAE,EAAS,SAAA;AAAA,IAC5B,qBAAqBA,WAAE,EAAS,SAAA;AAAA,IAChC,sBAAsBA,WAAE,EAAS,SAAA;AAAA,IACjC,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,aAAaA,WAAE,EAAS,SAAA;AAAA,IACxB,QAAQ;AAAA,IACR,gBAAgBA,WAAE,EAAS,SAAA;AAAA,IAC3B,QAAQ,mBAAmB,SAAA;AAAA,IAC3B,MAAM,iBAAiB,SAAA;AAAA,IACvB,WAAWH,UAAQ,qBAAqB,EAAE,SAAA;AAAA,IAC1C,aAAaA,UAAQ,sBAAsB,EAAE,SAAA;AAAA,EAC/C,CAAC;AAED,QAAM,qBAAqBG,WACxB,EACA,UAAU,CAAC,QAAQ,KAAK,MAAM,GAAG,CAAa,EAC9C,KAAKH,UAAQU,OAAS,OAAA,CAAQ,CAAC;AAElC,QAAM,sBAAsBP,WACzB,EACA,UAAU,CAAC,QAAQ,KAAK,MAAM,GAAG,CAAa,EAC9C,KAAKH,UAAQU,OAAS,OAAA,CAAQ,CAAC;AAK3B,QAAM,oBAAoB,kBAAkB,QAAA,EAAU,OAAO;AAAA,IAClE,eAAeA,OAAS,OAAA;AAAA,IACxB,YAAYP,WAAE;AAAA,IACd,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,mBAAmBA,WAAE;AAAA,IACrB,cAAcA,WAAE;AAAA,IAChB,MAAMQ,OAAE;AAAA,IACR,eAAe;AAAA,IACf,gBAAgB;AAAA,EAClB,CAAC;AAKM,QAAM,oBAAoB,kBAAkB,QAAA,EAAU,OAAO;AAAA,IAClE,MAAMA,OAAE;AAAA,IACR,eAAe;AAAA,IACf,gBAAgB;AAAA,EAClB,CAAC;AAKM,QAAM,0BAA0Bb,WAAS;AAAA,IAC9C,aAAaU,SAAO,CAAC,YAAY,SAAS,kBAAkB,cAAc,KAAK,CAAC,EAAE,SAAA;AAAA,IAClF,SAASL,WAAE,EAAS,SAAA;AAAA,IACpB,iBAAiBH,UAAQG,WAAE,CAAQ,EAAE,SAAA;AAAA,IACrC,KAAKO,OAAS,OAAA,EAAS,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAA;AAAA,IACvC,eAAeA,OAAS,OAAA,EAAS,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAA;AAAA,IAC/C,UAAUV,UAAQG,WAAE,CAAQ,EAAE,SAAA;AAAA,IAC9B,iBAAiBS,YAAE,EAAU,SAAA;AAAA,IAC7B,iBAAiBF,OAAS,SAAS,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAA;AAAA,EACnD,CAAC;AAKM,QAAM,uBAAuBZ,WAAS;AAAA,IAC3C,IAAIK,WAAE;AAAA,IACN,SAASA,WAAE;AAAA,IACX,aAAaK,SAAO,CAAC,YAAY,SAAS,kBAAkB,YAAY,CAAC;AAAA,IACzE,YAAYL,WAAE;AAAA,IACd,YAAYA,WAAE;AAAA,IACd,UAAUA,WAAE;AAAA;AAAA,IACZ,YAAYC,WAAE;AAAA,IACd,YAAYJ,UAAQG,YAAU;AAAA,IAC9B,UAAUH,UAAQG,YAAU;AAAA;AAAA,IAC5B,WAAWA,WAAE;AAAA;AAAA,IACb,eAAeH,UAAQI,YAAU;AAAA,EACnC,CAAC;AAKM,QAAM,qBAAqBN,WAAS;AAAA,IACzC,UAAU;AAAA,IACV,OAAOM,WAAE;AAAA,IACT,YAAYS,WAASb,UAAQG,WAAE,CAAQ,CAAC,EAAE,SAAA;AAAA,EAC5C,CAAC;AAKM,QAAM,oCAAoCL,WAAS;AAAA,IACxD,OAAOK,WAAE,EAAS,IAAI,GAAG,0BAA0B;AAAA,IACnD,cAAc,wBAAwB,SAAA;AAAA,EACxC,CAAC;AAKM,QAAM,qCAAqCL,WAAS;AAAA,IACzD,SAASE,UAAQ,kBAAkB;AAAA,IACnC,YAAYI,WAAE;AAAA,IACd,OAAOD,WAAE;AAAA,IACT,cAAc,wBAAwB,SAAA;AAAA,EACxC,CAAC;AAKM,QAAM,oCAAoCL,WAAS;AAAA,IACxD,eAAeY,OAAS,OAAA,EAAS,SAAS,yCAAyC;AAAA,EACrF,CAAC;AAKM,QAAM,qCAAqCZ,WAAS;AAAA,IACzD,OAAO;AAAA,IACP,eAAeM,WAAE;AAAA,IACjB,cAAcA,WAAE;AAAA,IAChB,qBAAqBD,WAAE,EAAS,SAAA;AAAA,IAChC,sBAAsBA,WAAE,EAAS,SAAA;AAAA,IACjC,SAASA,WAAE;AAAA,EACb,CAAC;AAKM,QAAM,kCAAkCL,WAAS;AAAA,IACtD,UAAUY,OAAS,SAAS,SAAS,oCAAoC;AAAA,IACzE,YAAYP,WAAE,EAAS,IAAI,GAAG,wBAAwB;AAAA,IACtD,YAAYK,SAAO,CAAC,OAAO,QAAQ,cAAc,cAAc,SAAS,GAAG;AAAA,MACzE,SAAS;AAAA,IAAA,CACV;AAAA,IACD,QAAQA,SAAO,CAAC,WAAW,QAAQ,GAAG,EAAE,SAAS,oCAAoC;AAAA,IACrF,gBAAgBL,WAAE,EAAS,SAAA;AAAA,EAC7B,CAAC;AAKM,QAAM,mCAAmCL,WAAS;AAAA,IACvD,SAASc,YAAE;AAAA,IACX,SAAST,WAAE;AAAA,EACb,CAAC;AASM,QAAM,yBAAyB,iBAAiB,OAAO;AAAA,IAC5D,WAAWC,WAAE;AAAA,IACb,MAAMD,WAAE;AAAA,IACR,MAAM;AAAA,IACN,KAAKA,WAAE,EAAS,SAAA;AAAA,IAChB,UAAUA,WAAE,EAAS,SAAA;AAAA,IACrB,UAAUA,WAAE,EAAS,SAAA;AAAA,IACrB,iBAAiBH,UAAQG,WAAE,CAAQ,EAAE,SAAA,EAAW,QAAQ,CAAA,CAAE;AAAA,EAC5D,CAAC;AAKM,QAAM,yBAAyB,uBAAuB,QAAA,EAAU,OAAO;AAAA,IAC5E,MAAM;AAAA,IACN,MAAMA,WAAE,EAAS,IAAI,CAAC;AAAA,IACtB,KAAKA,WAAE;AAAA,IACP,iBAAiBH,UAAQG,WAAE,CAAQ,EAAE,SAAA,EAAW,QAAQ,CAAA,CAAE;AAAA,EAC5D,CAAC;AAKM,QAAM,yBAAyB,uBAAuB,QAAA;AAStD,QAAM,mBAAmBL,WAAS;AAAA,IACvC,WAAWU,SAAO,CAAC,QAAQ,QAAQ,IAAI,CAAC;AAAA,IACxC,WAAWL,WAAE;AAAA,EACf,CAAC;AAKM,QAAM,2BAA2BL,WAAS;AAAA,IAC/C,gBAAgBc,YAAE;AAAA,IAClB,mBAAmBJ,SAAO,CAAC,WAAW,WAAW,MAAM,CAAC;AAAA,IACxD,iBAAiBA,SAAO,CAAC,eAAe,cAAc,CAAC;AAAA,IACvD,eAAeA,SAAO,CAAC,WAAW,UAAU,gBAAgB,CAAC;AAAA,IAC7D,eAAeL,WAAE;AAAA,IACjB,aAAaA,WAAE;AAAA,IACf,iBAAiBA,WAAE;AAAA,IACnB,qBAAqBS,YAAE;AAAA,IACvB,qBAAqBA,YAAE;AAAA,IACvB,mBAAmBA,YAAE;AAAA,IACrB,sBAAsBA,YAAE;AAAA,IACxB,yBAAyBT,WAAE;AAAA,IAC3B,mBAAmBA,WAAE;AAAA,IACrB,qBAAqBA,WAAE;AAAA,IACvB,qBAAqBA,WAAE;AAAA,IACvB,wBAAwBA,WAAE;AAAA,IAC1B,sBAAsBA,WAAE;AAAA,IACxB,kBAAkBA,WAAE;AAAA,IACpB,cAAcA,WAAE;AAAA,IAChB,eAAeA,WAAE;AAAA,IACjB,eAAeA,WAAE;AAAA,IACjB,2BAA2BA,WAAE;AAAA,IAC7B,sBAAsBA,WAAE;AAAA,IACxB,sBAAsBS,YAAE;AAAA,IACxB,cAAcZ,UAAQ,gBAAgB;AAAA,EACxC,CAAC;AAKM,QAAM,0BAA0BF,WAAS;AAAA,IAC9C,aAAaK,WAAE,EAAS,IAAA;AAAA,IACxB,SAASA,WAAE;AAAA,IACX,WAAWA,WAAE;AAAA,IACb,uBAAuBS,YAAE;AAAA,EAC3B,CAAC;AAKM,QAAM,0BAA0B,iBAAiB,OAAO;AAAA,IAC7D,eAAeR,WAAE;AAAA,IACjB,UAAUA,WAAE;AAAA,IACZ,MAAM;AAAA,IACN,UAAUF,UAAQ,CAAC,0BAA0B,uBAAuB,CAAC;AAAA,IACrE,QAAQ;AAAA,IACR,cAAcC,WAAE;AAAA,IAChB,eAAeA,WAAE;AAAA,IACjB,SAASA,WAAE,EAAS,SAAA;AAAA,EACtB,CAAC;AAKoC,0BAAwB,OAAO;AAAA,IAClE,YAAY,uBAAuB,QAAA;AAAA,IACnC,QAAQ,mBAAmB,QAAA;AAAA,IAC3B,MAAM,iBAAiB,QAAA;AAAA,IACvB,OAAO,kBAAkB,QAAA;AAAA,EAC3B,CAAC;AAK+C,yBAAuB,OAAO;AAAA,IAC5E,cAAcH,UAAQ,uBAAuB;AAAA,IAC7C,QAAQA,UAAQ,iBAAiB,EAAE,SAAA;AAAA,EACrC,CAAC;AAKM,QAAM,0BAA0B,wBAAwB,QAAA,EAAU,OAAO;AAAA,IAC9E,eAAeI,WAAE,EAAS,SAAA;AAAA,IAC1B,UAAUA,WAAE,EAAS,SAAA;AAAA,IACrB,MAAM;AAAA,IACN,UAAUF,UAAQ,CAAC,0BAA0B,uBAAuB,CAAC,EAAE,SAAA;AAAA,EACzE,CAAC;AAKM,QAAM,0BAA0B,wBAAwB,QAAA;AAMxD,QAAM,iBAAiBJ,WAAS;AAAA,IACrC,aAAaM,WAAE;AAAA,IACf,QAAQD,WAAE;AAAA,IACV,SAASA,WAAE;AAAA,IACX,MAAMA,WAAE;AAAA,IACR,aAAaA,WAAE;AAAA,IACf,UAAUA,WAAE;AAAA,EACd,CAAC;AAEM,QAAM,mBAAmBH,UAAQ,cAAc;AAK/C,QAAM,mBAAmB,iBAAiB,OAAO;AAAA,IACtD,eAAeI,WAAE;AAAA,IACjB,UAAUD,WAAE;AAAA,IACZ,QAAQ;AAAA,EACV,CAAC;AAUM,QAAM,oBAAoBL,WACvB;AAAA,IACN,cAAcK,WAAE,EAAS,SAAA;AAAA,IACzB,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,UAAUC,WAAE,EAAS,SAAA,EAAW,SAAA;AAAA,IAChC,eAAeA,WAAE,EAAS,SAAA,EAAW,SAAA;AAAA,IACrC,SAASD,WAAE,EAAS,SAAA;AAAA;AAAA,IACpB,SAASA,WAAE;AAAA,EACb,CAAC,EACA;AAAA,IACC,CAAC,UAAU,KAAK,gBAAgB,KAAK,mBAAmB,KAAK,YAAY,KAAK;AAAA,IAC9E;AAAA,MACE,SACE;AAAA,IAAA;AAAA,EAEN;AAKK,QAAM,qBAAqBL,WAAS;AAAA,IACzC,MAAMK,WAAE;AAAA,EACV,CAAC;AAUM,QAAM,0BAA0BL,WAC7B;AAAA,IACN,SAASK,WAAE,EAAS,SAAA;AAAA,IACpB,IAAIC,WAAE,EAAS,SAAA;AAAA,IACf,MAAMD,WAAE,EAAS,SAAA;AAAA,IACjB,MAAMA,WAAE,EAAS,SAAA;AAAA,IACjB,gBAAgBC,WAAE,EAAS,SAAA;AAAA,IAC3B,mBAAmBD,WAAE,EAAS,SAAA;AAAA,IAC9B,QAAQA,WAAE,EAAS,SAAA;AAAA,IACnB,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,UAAUA,WAAE,EAAS,SAAA;AAAA,IACrB,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,aAAaA,WAAE,EAAS,SAAA;AAAA,IACxB,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,YAAYA,WAAE,EAAS,SAAA;AAAA,IACvB,YAAYA,WAAE,EAAS,SAAA;AAAA,IACvB,kBAAkBA,WAAE,EAAS,SAAA;AAAA,IAC7B,YAAYC,WAAE,EAAS,SAAA;AAAA,EACzB,CAAC,EACA,YAAA;AAKI,QAAM,wBAAwB,iBAAiB,OAAO;AAAA,IAC3D,WAAWA,WAAE;AAAA,IACb,SAASA,WAAE;AAAA,IACX,MAAM;AAAA,IACN,UAAU,wBAAwB,SAAA;AAAA,EACpC,CAAC;AAKM,QAAM,wBAAwB,sBAAsB,QAAA,EAAU,OAAO;AAAA,IAC1E,MAAM;AAAA,EACR,CAAC;AAS+B,mBAAiB,OAAO;AAAA,IACtD,SAASA,WAAE;AAAA,IACX,eAAeA,WAAE;AAAA,IACjB,UAAUA,WAAE;AAAA,IACZ,SAASD,WAAE;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAASA,WAAE;AAAA,EACb,CAAC;AASM,QAAM,yBAAyBL,WAAS;AAAA,IAC7C,gBAAgBK,WAAE,EAAS,SAAA;AAAA,IAC3B,SAASS,cAAY,QAAQ,IAAI;AAAA,EACnC,CAAC;AAKM,QAAM,qBAAqBd,WAAS;AAAA,IACzC,gBAAgBK,WAAE,EAAS,SAAA;AAAA,IAC3B,QAAQS,cAAY,QAAQ,IAAI;AAAA,EAClC,CAAC;AASM,QAAM,2BAA2Bd,WAAS;AAAA,IAC/C,KAAKK,WAAE;AAAA,EACT,CAAC;AASwCL,aAAS;AAAA,IAChD,YAAYY,OAAS,KAAA;AAAA,IACrB,SAASN,WAAE;AAAA,IACX,WAAWA,WAAE;AAAA,IACb,SAASA,WAAE;AAAA,EACb,CAAC;AAKmCN,aAAS;AAAA,IAC3C,YAAYK,WAAE;AAAA,EAChB,CAAC;AAKuCL,aAAS;AAAA,IAC/C,SAASM,WAAE;AAAA,IACX,MAAMO,OAAE;AAAA,EACV,CAAC;AAKmCb,aAAS;AAAA,IAC3C,SAASM,WAAE;AAAA,IACX,eAAeA,WAAE;AAAA,IACjB,QAAQ;AAAA,IACR,QAAQD,WAAE;AAAA,IACV,QAAQA,WAAE;AAAA,EACZ,CAAC;AAKM,QAAM,mBAAmBL,WAAS;AAAA,IACvC,SAASM,WAAE;AAAA,IACX,OAAOA,WAAE;AAAA,IACT,MAAMA,WAAE;AAAA,IACR,WAAWA,WAAE;AAAA,EACf,CAAC;AAKwCN,aAAS;AAAA,IAChD,SAASM,WAAE;AAAA,IACX,WAAWA,WAAE;AAAA,IACb,YAAYA,WAAE;AAAA,IACd,aAAaD,WAAE;AAAA,IACf,UAAUU,WAASV,WAAE,GAAUA,WAAE,CAAQ,EAAE,SAAA;AAAA,EAC7C,CAAC;AAKqCL,aAAS;AAAA,IAC7C,IAAIM,WAAE;AAAA,IACN,cAAcD,WAAE;AAAA,EAClB,CAAC;AAKoCL,aAAS;AAAA,IAC5C,cAAcK,WAAE;AAAA,EAClB,CAAC;AASoCL,aAAS;AAAA,IAC5C,IAAIK,WAAE;AAAA,IACN,SAASA,WAAE;AAAA,IACX,UAAUA,WAAE;AAAA,IACZ,SAASU,WAASV,cAAYA,YAAU;AAAA,EAC1C,CAAC;AAiCM,QAAM,gCAAgCL,WAAS;AAAA,IACpD,aAAaM,WAAE,EAAS,SAAA;AAAA,IACxB,UAAUD,WAAE,EAAS,SAAA;AAAA,IACrB,QAAQA,WAAE,EAAS,SAAA;AAAA,IACnB,MAAMH,UAAQG,WAAE,CAAQ,EAAE,SAAA;AAAA,EAC5B,CAAC;AAKoCL,aAAS;AAAA,IAC5C,IAAIK,WAAE;AAAA,IACN,OAAOA,WAAE;AAAA,IACT,aAAaA,WAAE;AAAA,IACf,YAAYA,WAAE;AAAA,IACd,SAASA,WAAE;AAAA,IACX,MAAML,WAAS;AAAA,MACb,OAAOK,WAAE,EAAS,SAAA;AAAA,MAClB,MAAMA,WAAE,EAAS,SAAA;AAAA,IAAS,CAC3B;AAAA,IACD,aAAaA,WAAE,EAAS,SAAA;AAAA,IACxB,eAAeA,WAAE,EAAS,SAAA;AAAA,IAC1B,QAAQA,WAAE,EAAS,SAAA;AAAA,IACnB,WAAWA,WAAE,EAAS,SAAA;AAAA,IACtB,UAAU,8BAA8B,SAAA;AAAA,IACxC,eAAeL,WACL;AAAA,MACN,MAAMK,WAAE,EAAS,SAAA;AAAA,MACjB,OAAOA,WAAE,EAAS,SAAA;AAAA,IAAS,CAC5B,EACA,SAAA;AAAA,IACH,UAAUA,WAAE,EAAS,SAAA;AAAA,IACrB,UAAUA,WAAE,EAAS,SAAA;AAAA,EACvB,CAAC;ACtnCD,QAAM,IAAI,aAAA;AAGV,QAAM,WAAW,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAKxB,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQ,mBAAmB,EAAA;AAAA,IAAE;AAAA,IAGnD,WAAW;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQ,oBAAoB,EAAA;AAAA,IAAE;AAAA;AAAA;AAAA;AAAA,IAOpD,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQS,YAAE,CAAS,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGvE,gBAAgB;AAAA,MACd,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQ,gBAAgB,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAG5E,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQ,WAAW,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGrF,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQH,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGpE,cAAc;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQA,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGlF,wBAAwB;AAAA,MACtB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQ,WAAW,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGrF,2BAA2B;AAAA,MACzB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOX,WAAS,EAAE,UAAUK,WAAE,GAAU;AAAA,MACxC,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGvD,yBAAyB;AAAA,MACvB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAO;AAAA,MACP,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGvD,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQ,WAAW,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA;AAAA;AAAA;AAAA,IAOrF,eAAe;AAAA,MACb,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,mBAAmB;AAAA,QAClC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,eAAe;AAAA,MACb,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOL,WAAS;AAAA,QACd,WAAWY,OAAS,OAAA,EAAS,SAAA;AAAA,QAC7B,WAAWA,OAAS,OAAA,EAAS,SAAA;AAAA,QAC7B,SAASA,OAAS,OAAA,EAAS,SAAA;AAAA,MAAS,CACrC;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQV,UAAQ,mBAAmB,CAAC;AAAA,QAC3C,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,cAAc;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOF,WAAS,EAAE,WAAWY,OAAS,OAAA,EAAS,SAAA,GAAY;AAAA,MAC3D,WAAW;AAAA,QACT,KAAK,EAAE,QAAQN,YAAU;AAAA,QACzB,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYN,WAAS,EAAE,YAAYK,WAAE,GAAU;AAAA,MAC/C,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,mBAAmB;AAAA,QAClC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,eAAe;AAAA,MACb,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,YAAYK,WAAE,GAAU;AAAA,MAC/C,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,mBAAmB;AAAA,QAClC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,eAAe;AAAA,MACb,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,YAAYK,WAAE,GAAU;AAAA,MAC/C,WAAW,EAAE,KAAK,EAAE,QAAQM,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGhG,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYX,WAAS,EAAE,YAAYK,WAAE,GAAU;AAAA,MAC/C,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,WAAW;AAAA,QAC1B,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,YAAYK,WAAE,GAAU;AAAA,MAC/C,MAAMM,SAAE;AAAA,MACR,WAAW,EAAE,KAAK,EAAE,QAAQA,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA;AAAA;AAAA;AAAA,IAOhG,cAAc;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,kBAAkB;AAAA,QACjC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,cAAc;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOX,WAAS;AAAA,QACd,MAAMK,WAAE,EAAS,SAAA;AAAA,QACjB,QAAQA,WAAE,EAAS,SAAA;AAAA,QACnB,OAAOA,WAAE,EAAS,MAAA,EAAQ,SAAA;AAAA,QAC1B,QAAQO,OAAS,OAAA,EAAS,SAAA;AAAA,QAC1B,WAAWA,OAAS,OAAA,EAAS,SAAA;AAAA,QAC7B,SAASA,OAAS,OAAA,EAAS,SAAA;AAAA,MAAS,CACrC;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQV,UAAQ,kBAAkB,CAAC;AAAA,QAC1C,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,WAAW;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYF,WAAS,EAAE,WAAWY,OAAS,OAAA,EAAO,CAAG;AAAA,MACrD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,kBAAkB;AAAA,QACjC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,cAAc;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,WAAWY,OAAS,OAAA,EAAO,CAAG;AAAA,MACrD,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,kBAAkB;AAAA,QACjC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,cAAc;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,WAAWY,OAAS,OAAA,EAAO,CAAG;AAAA,MACrD,WAAW,EAAE,KAAK,EAAE,QAAQD,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA;AAAA;AAAA;AAAA,IAOhG,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,sBAAsB;AAAA,QACrC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aACE;AAAA,MACF,MAAM;AAAA,MACN,OAAOX,WAAS;AAAA,QACd,MAAM,qBAAqB,SAAA;AAAA,MAAS,CACrC;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE;AAAA,UACLE;AAAAA,YACE,uBAAuB,OAAO;AAAA,cAC5B,cAAcA,UAAQ,uBAAuB;AAAA,YAAA,CAC9C;AAAA,UAAA;AAAA,QACH;AAAA,QAEF,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,eAAe;AAAA,MACb,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aACE;AAAA,MACF,MAAM;AAAA,MACN,YAAYF,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,WAAW;AAAA,QACT,KAAK,EAAE;AAAA,UACL,uBAAuB,OAAO;AAAA,YAC5B,cAAcV,UAAQ,uBAAuB;AAAA,UAAA,CAC9C;AAAA,QAAA;AAAA,QAEH,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYF,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,sBAAsB;AAAA,QACrC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,WAAW,EAAE,KAAK,EAAE,QAAQD,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA;AAAA;AAAA;AAAA,IAOhG,mBAAmB;AAAA,MACjB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,uBAAuB;AAAA,QACtC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,mBAAmB;AAAA,MACjB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOX,WAAS;AAAA,QACd,MAAM,sBAAsB,SAAA;AAAA,QAC5B,eAAeY,OAAS,OAAA,EAAS,SAAA;AAAA,QACjC,cAAcP,WAAE,EAAS,SAAA;AAAA,QACzB,eAAeA,WAAE,EAAS,SAAA;AAAA,MAAS,CACpC;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQH,UAAQ,uBAAuB,CAAC;AAAA,QAC/C,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,gBAAgB;AAAA,MACd,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYF,WAAS,EAAE,gBAAgBY,OAAS,OAAA,EAAO,CAAG;AAAA,MAC1D,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,uBAAuB;AAAA,QACtC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,mBAAmB;AAAA,MACjB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,gBAAgBY,OAAS,OAAA,EAAO,CAAG;AAAA,MAC1D,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,uBAAuB;AAAA,QACtC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,mBAAmB;AAAA,MACjB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,gBAAgBY,OAAS,OAAA,EAAO,CAAG;AAAA,MAC1D,WAAW,EAAE,KAAK,EAAE,QAAQD,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA;AAAA;AAAA;AAAA,IAOhG,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAMA,SAAE;AAAA,MACR,WAAW;AAAA,QACT,KAAK,EAAE,QAAQN,YAAU;AAAA,QACzB,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOL,WAAS;AAAA,QACd,SAASY,OAAS,OAAA,EAAS,SAAA;AAAA,QAC3B,SAASA,OAAS,OAAA,EAAS,SAAA;AAAA,MAAS,CACrC;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,gBAAgB;AAAA,QAC/B,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,SAASK,WAAE,GAAU;AAAA,MAC5C,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,kBAAkB;AAAA,QACjC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,SAASK,WAAE,GAAU;AAAA,MAC5C,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,kBAAkB;AAAA,QACjC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,QAAQ;AAAA,MACN,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,SAASK,WAAE,GAAU;AAAA,MAC5C,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,gBAAgB;AAAA,QAC/B,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAML,WAAS;AAAA,QACb,SAASK,WAAE,EAAS,SAAA;AAAA,MAAS,CAC9B;AAAA,MACD,YAAYL,WAAS,EAAE,SAASK,WAAE,GAAU;AAAA,MAC5C,WAAW;AAAA,QACT,KAAK,EAAE,QAAQL,WAAS,EAAE,QAAQK,WAAE,GAAU,SAASA,WAAE,EAAO,CAAG,CAAC;AAAA,QACpE,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAOF,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOL,WAAS;AAAA,QACd,WAAWY,OAAS,OAAA,EAAS,SAAA;AAAA,QAC7B,QAAQ,mBAAmB,SAAA;AAAA,MAAS,CACrC;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQV,UAAQ,gBAAgB,CAAC;AAAA,QACxC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQA,UAAQ,2BAA2B,CAAC;AAAA,QACnD,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYF,WAAS,EAAE,SAASY,OAAS,OAAA,EAAO,CAAG;AAAA,MACnD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,gBAAgB;AAAA,QAC/B,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,SAASY,OAAS,OAAA,EAAO,CAAG;AAAA,MACnD,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,gBAAgB;AAAA,QAC/B,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,SAASY,OAAS,OAAA,EAAO,CAAG;AAAA,MACnD,aAAa;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,wBAAwB;AAAA,QACvC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,SAASY,OAAS,OAAA,EAAO,CAAG;AAAA,MACnD,WAAW,EAAE,KAAK,EAAE,QAAQD,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGhG,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYX,WAAS,EAAE,SAASY,OAAS,OAAA,EAAO,CAAG;AAAA,MACnD,MAAMZ,WAAS;AAAA,QACb,QAAQK,WAAE,EAAS,SAAA;AAAA,MAAS,CAC7B;AAAA,MACD,WAAW,EAAE,KAAK,EAAE,QAAQM,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA;AAAA;AAAA;AAAA,IAOhG,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,aAAa;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,iBAAiB;AAAA,QAChC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOX,WAAS;AAAA,QACd,WAAWY,OAAS,OAAA,EAAS,SAAA;AAAA,QAC7B,SAASA,OAAS,OAAA,EAAS,SAAA;AAAA,QAC3B,eAAeA,OAAS,OAAA,EAAS,SAAA;AAAA,MAAS,CAC3C;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQV,UAAQ,iBAAiB,CAAC;AAAA,QACzC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYF,WAAS,EAAE,UAAUY,OAAS,OAAA,EAAO,CAAG;AAAA,MACpD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,iBAAiB;AAAA,QAChC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,cAAc;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,UAAUY,OAAS,OAAA,EAAO,CAAG;AAAA,MACpD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,aAAa;AAAA,QAC5B,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,UAAUY,OAAS,OAAA,EAAO,CAAG;AAAA,MACpD,aAAa;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,iBAAiB;AAAA,QAChC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,UAAUY,OAAS,OAAA,EAAO,CAAG;AAAA,MACpD,WAAW,EAAE,KAAK,EAAE,QAAQD,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGhG,sBAAsB;AAAA,MACpB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYX,WAAS,EAAE,UAAUY,OAAS,OAAA,EAAO,CAAG;AAAA,MACpD,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,kCAAkC;AAAA,QACjD,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,sBAAsB;AAAA,MACpB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aACE;AAAA,MACF,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,UAAUY,OAAS,OAAA,EAAO,CAAG;AAAA,MACpD,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,kCAAkC;AAAA,QACjD,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,oBAAoB;AAAA,MAClB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aACE;AAAA,MACF,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,gCAAgC;AAAA,QAC/C,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAOF,WAAW;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,qBAAqB;AAAA,QACpC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,WAAW;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOZ,WAAS;AAAA,QACd,WAAWY,OAAS,OAAA,EAAS,SAAA;AAAA,QAC7B,MAAM,oBAAoB,SAAA;AAAA,MAAS,CACpC;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQV,UAAQ,qBAAqB,CAAC;AAAA,QAC7C,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAOF,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOF,WAAS;AAAA,QACd,eAAeY,OAAS,OAAA,EAAS,SAAA;AAAA,QACjC,UAAUP,aAAW,IAAI,CAAC;AAAA,MAAA,CAC3B;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,gBAAgB;AAAA,QAC/B,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOL,WAAS;AAAA,QACd,WAAWY,OAAS,OAAA,EAAS,SAAA;AAAA,QAC7B,eAAeA,OAAS,OAAA,EAAS,SAAA;AAAA,MAAS,CAC3C;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQV,UAAQ,gBAAgB,CAAC;AAAA,QACxC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,gBAAgB;AAAA,QAC/B,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,UAAU;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAMF,WAAS;AAAA,QACb,MAAM;AAAA,QACN,kBAAkBK,WAAE,EAAS,SAAA;AAAA,MAAS,CACvC;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE;AAAA,UACLL,WAAS;AAAA,YACP,SAASc,YAAE;AAAA,YACX,SAAST,WAAE;AAAA,YACX,mBAAmBS,YAAE;AAAA,YACrB,qBAAqBA,YAAE;AAAA,YACvB,SAASR,WAAE;AAAA,YACX,eAAeQ,YAAE;AAAA,UAAQ,CAC1B;AAAA,QAAA;AAAA,QAEH,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAOF,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOd,WAAS;AAAA,QACd,WAAWY,OAAS,OAAA,EAAS,SAAA;AAAA,QAC7B,eAAeA,OAAS,OAAA,EAAS,SAAA;AAAA,MAAS,CAC3C;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQV,UAAQ,sBAAsB,CAAC;AAAA,QAC9C,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,sBAAsB;AAAA,QACrC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYF,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,sBAAsB;AAAA,QACrC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,oBAAoB;AAAA,MAClB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQV,UAAQ,8BAA8B,CAAC;AAAA,QACtD,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,oBAAoB;AAAA,MAClB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYF,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,WAAW;AAAA,QACT,KAAK,EAAE;AAAA,UACLZ,WAAS;AAAA,YACP,QAAQK,WAAE;AAAA,YACV,eAAeA,WAAE;AAAA,YACjB,QAAQA,WAAE;AAAA,UAAO,CAClB;AAAA,QAAA;AAAA,QAEH,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,mBAAmB;AAAA,MACjB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQZ,WAAS,EAAE,SAASE,UAAQ,oBAAoB,EAAA,CAAG,CAAC;AAAA,QACnE,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,mBAAmB;AAAA,MACjB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYF,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,aAAa;AAAA,QAC5B,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,gBAAgB;AAAA,MACd,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,MAAMZ,WAAS,EAAE;AAAA,MACjB,WAAW;AAAA,QACT,KAAK,EAAE;AAAA,UACLA,WAAS;AAAA,YACP,SAASc,YAAE;AAAA,YACX,SAAST,WAAE;AAAA,UAAO,CACnB;AAAA,QAAA;AAAA,QAEH,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,MAAM;AAAA,MACN,WAAW;AAAA,QACT,KAAK,EAAE;AAAA,UACLZ,WAAS;AAAA,YACP,SAASc,YAAE;AAAA,YACX,SAAST,WAAE;AAAA,UAAO,CACnB;AAAA,QAAA;AAAA,QAEH,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,eAAeY,OAAS,OAAA,EAAO,CAAG;AAAA,MACzD,WAAW;AAAA,QACT,KAAK,EAAE;AAAA,UACLZ,WAAS;AAAA,YACP,SAASc,YAAE;AAAA,YACX,SAAST,WAAE;AAAA,UAAO,CACnB;AAAA,QAAA;AAAA,QAEH,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,sBAAsB;AAAA,MACpB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAML,WACI;AAAA,QACN,eAAeM,WAAE,EAAS,SAAA;AAAA,QAC1B,UAAUA,WAAE,EAAS,SAAA;AAAA,QACrB,gBAAgBD,WAAE,EAAS,QAAA;AAAA,QAC3B,cAAcA,WAAE,EAAS,SAAA;AAAA,QACzB,eAAeA,WAAE,EAAS,SAAA;AAAA,MAAS,CACpC,EACA;AAAA,QACC,CAAC,SACE,KAAK,kBAAkB,UAAa,KAAK,aAAa,UACtD,KAAK,iBAAiB,UAAa,KAAK,kBAAkB;AAAA,QAC7D;AAAA,UACE,SAAS;AAAA,UACT,MAAM,CAAC,eAAe;AAAA,QAAA;AAAA,MACxB;AAAA,MAEJ,WAAW;AAAA,QACT,KAAK,EAAE;AAAA,UACLL,WAAS;AAAA,YACP,YAAYK,WAAE;AAAA,YACd,eAAeA,WAAE;AAAA,UAAO,CACzB;AAAA,QAAA;AAAA,QAEH,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,oBAAoB;AAAA,MAClB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,YAAYK,WAAE,GAAU;AAAA,MAC/C,MAAML,WAAS,EAAE;AAAA,MACjB,WAAW;AAAA,QACT,KAAK,EAAE;AAAA,UACLA,WAAS;AAAA,YACP,SAASc,YAAE;AAAA,YACX,SAAST,WAAE;AAAA,UAAO,CACnB;AAAA,QAAA;AAAA,QAEH,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAOF,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAOL,WAAS;AAAA,QACd,WAAWY,OAAS,OAAA,EAAS,SAAA;AAAA,QAC7B,MAAM,oBAAoB,SAAA;AAAA,QAC1B,eAAeA,OAAS,OAAA,EAAS,SAAA;AAAA,MAAS,CAC3C;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQV,UAAQ,qBAAqB,CAAC;AAAA,QAC7C,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,aAAa;AAAA,MACb,MAAM,WAAW,OAAO;AAAA,QACtB,eAAeU,OAAS,OAAA;AAAA,QACxB,cAAcP,WAAE,EAAS,IAAA,EAAM,SAAA;AAAA,QAC/B,eAAeA,WAAE,EAAS,SAAA;AAAA,MAAS,CACpC;AAAA,MACD,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,qBAAqB;AAAA,QACpC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,cAAc;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYL,WAAS,EAAE,IAAIY,OAAS,OAAA,EAAO,CAAG;AAAA,MAC9C,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,qBAAqB;AAAA,QACpC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYZ,WAAS,EAAE,IAAIY,OAAS,OAAA,EAAO,CAAG;AAAA,MAC9C,WAAW;AAAA,QACT,KAAK,EAAE,QAAQD,UAAQ;AAAA,QACvB,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA,IAGF,kBAAkB;AAAA,MAChB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,YAAYX,WAAS,EAAE,IAAIY,OAAS,OAAA,EAAO,CAAG;AAAA,MAC9C,MAAMD,SAAE;AAAA,MACR,WAAW;AAAA,QACT,KAAK,EAAE,QAAQ,qBAAqB;AAAA,QACpC,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,QACP,KAAK,EAAE;AAAA,MAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAOF,gBAAgB;AAAA,MACd,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQA,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,IAGhG,YAAY;AAAA,MACV,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,EAAE,KAAK,EAAE,QAAQA,SAAE,CAAM,GAAG,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,EAAE,MAAA;AAAA,IAAM;AAAA,EAElG,CAAC;ACn3CD,MAAI,YAA2B;AAG/B,MAAI,SAAS,WAAW,UAAU;AAAA,IAChC,SAA2B;AAAA,IAC3B,aAAa;AAAA,MACX,eAAe,CAAC,aAA+B,YAAY,UAAU,SAAS,KAAK;AAAA,IAAA;AAAA,IAErF,WAAW;AAAA,EACb,CAAC;AAKM,QAAM,eAAe,CAAC,WAAmB;AAC9C,QAAI,UAAU,WAAW,OAAO,SAAS;AACvC,cAAQ,IAAI,mCAAmC,MAAM,EAAE;AAGvD,YAAM,YAAY,WAAW,UAAU;AAAA,QACrC,SAAS;AAAA,QACT,aAAa;AAAA,UACX,eAAe,CAAC,aAA+B,YAAY,UAAU,SAAS,KAAK;AAAA,QAAA;AAAA,QAErF,WAAW;AAAA,MAAA,CACZ;AAMD,eAAS;AAAA,IACX;AAAA,EACF;AAiBA,WAAS,UAAU,MAAgC;AACjD,QAAI,CAAC,YAAY,MAAM,SAAS,GAAG;AACjC,aAAO;AAAA,IACT;AAEA,QAAI,OAAO,KAAK,YAAY,WAAW;AACrC,aAAO;AAAA,IACT;AAEA,QAAI,YAAY,MAAM,OAAO,KAAK,OAAO,KAAK,UAAU,UAAU;AAChE,aAAO;AAAA,IACT;AAEA,QAAI,YAAY,MAAM,SAAS,KAAK,OAAO,KAAK,YAAY,UAAU;AACpE,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,CAAgB,QAA2B;AACvD,QAAI,CAAC,UAAU,IAAI,IAAI,GAAG;AACxB,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACnD;AAEA,QAAI,IAAI,UAAU,OAAO,IAAI,SAAS,OAAO,IAAI,KAAK,SAAS;AAI7D,aAAO,IAAI,KAAK;AAAA,IAClB;AAEA,UAAM,MAAM,IAAI,KAAK,SAAS,IAAI,KAAK,WAAW;AAClD,YAAQ,MAAM,cAAc,GAAG;AAC/B,UAAM,IAAI,MAAM,GAAG;AAAA,EACrB;AAGA,QAAM,YAAY;AAAA,IAChB,cAAc,CAAC,UAAkB;AAC/B,kBAAY;AAAA,IACd;AAAA,IACA,gBAAgB,MAAM;AACpB,kBAAY;AAAA,IACd;AAAA,IACA,cAAc,MAAM;AAAA,IACpB;AAAA,IACA,WAAW;AAAA;AAAA,EAEb;AAGO,QAAM,MAAM,IAAI,MAAM,IAAwC;AAAA,IACnE,IAAI,SAAS,MAAM;AAEjB,UAAI,QAAQ,WAAW;AACrB,eAAO,UAAU,IAA8B;AAAA,MACjD;AAEA,YAAM,QAAQ,OAAO,IAA2B;AAChD,UAAI,OAAO,UAAU,YAAY;AAC/B,eAAO,MAAM,KAAK,MAAM;AAAA,MAC1B;AACA,aAAO;AAAA,IACT;AAAA,EACF,CAAC;ACrFM,WAAS,mBACd,UACwE;AACxE,UAAM,OAAO,SAAS;AACtB,WAAO,SAAS,WAAW,QAAO,6BAAM,aAAY;AAAA,EACtD;AAMO,WAAS,eAAkB,UAAoC;AACpE,QAAI,mBAAmB,QAAQ,GAAG;AAChC,YAAM,OAAO,SAAS;AACtB,UAAI,KAAK,SAAS,QAAW;AAC3B,eAAO,KAAK;AAAA,MACd;AAAA,IACF;AACA,WAAO;AAAA,EACT;AC3CA,QAAM,gBACJ,OAAO,WAAW,gBACjB,OAAO,SAAS,aAAa,eAC5B,OAAO,SAAS,aAAa,eAC7B,OAAO,SAAS,SAAS,SAAS,WAAW;AAMjD,QAAM,gBAA0B,gBAAgB,UAAU;AAE1D,QAAM,aAAuC;AAAA,IAC3C,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAKA,WAAS,UAAU,OAA0B;AAC3C,WAAO,WAAW,KAAK,KAAK,WAAW,aAAa;AAAA,EACtD;AAKA,WAAS,cACP,QACA,YACG,MACqB;AACxB,WAAO,CAAC,IAAI,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI;AAAA,EAC3C;AAKO,QAAM,SAAS;AAAA;AAAA;AAAA;AAAA,IAIpB,OAAO,CAAC,QAAgB,YAAoB,SAA0B;AACpE,UAAI,UAAU,OAAO,GAAG;AACtB,gBAAQ,MAAM,GAAG,cAAc,QAAQ,SAAS,GAAG,IAAI,CAAC;AAAA,MAC1D;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,CAAC,QAAgB,YAAoB,SAA0B;AACnE,UAAI,UAAU,MAAM,GAAG;AACrB,gBAAQ,KAAK,GAAG,cAAc,QAAQ,SAAS,GAAG,IAAI,CAAC;AAAA,MACzD;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,CAAC,QAAgB,YAAoB,SAA0B;AACnE,UAAI,UAAU,MAAM,GAAG;AACrB,gBAAQ,KAAK,GAAG,cAAc,QAAQ,SAAS,GAAG,IAAI,CAAC;AAAA,MACzD;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,CAAC,QAAgB,YAAoB,SAA0B;AACpE,UAAI,UAAU,OAAO,GAAG;AACtB,gBAAQ,MAAM,GAAG,cAAc,QAAQ,SAAS,GAAG,IAAI,CAAC;AAAA,MAC1D;AAAA,IACF;AAAA,EACF;AAKO,WAAS,aAAa,QAAgB;AAC3C,WAAO;AAAA,MACL,OAAO,CAAC,YAAoB,SAAoB,OAAO,MAAM,QAAQ,SAAS,GAAG,IAAI;AAAA,MACrF,MAAM,CAAC,YAAoB,SAAoB,OAAO,KAAK,QAAQ,SAAS,GAAG,IAAI;AAAA,MACnF,MAAM,CAAC,YAAoB,SAAoB,OAAO,KAAK,QAAQ,SAAS,GAAG,IAAI;AAAA,MACnF,OAAO,CAAC,YAAoB,SAAoB,OAAO,MAAM,QAAQ,SAAS,GAAG,IAAI;AAAA,IAAA;AAAA,EAEzF;ACxFA,QAAM,MAAM,aAAa,eAAe;AACxC,QAAM,sBAAsB;AAC5B,QAAM,qBAAqB;AAE3B,QAAM,kBAAN,MAAM,gBAAe;AAAA,IAMX,cAAc;AAJd,oCAAwB;AACxB,mCAAuB;AACvB,mDAAgD;AAItD,WAAK,QAAQ,KAAK,iBAAA;AAClB,UAAI,MAAM,WAAW,KAAK,KAAK;AAG/B,WAAK,SAAS,KAAK,gBAAA;AACnB,UAAI,KAAK,QAAQ;AACf,YAAI,MAAM,yCAAyC,KAAK,MAAM;AAAA,MAChE;AAGA,WAAK,qBAAA;AAAA,IACP;AAAA;AAAA;AAAA;AAAA;AAAA,IAMQ,uBAA6B;AACnC,UAAI,OAAO,WAAW,YAAa;AAEnC,eAAS;AAAA,QACP;AAAA,QACA,CAAC,UAAU;AACT,gBAAM,SAAS,MAAM;AACrB,gBAAM,SAAS,OAAO,QAAQ,GAAG;AAEjC,cAAI,EAAC,iCAAQ,MAAM;AAGnB,cAAI;AACF,kBAAM,UAAU,IAAI,IAAI,OAAO,MAAM,OAAO,SAAS,MAAM;AAC3D,kBAAM,gBAAgB,OAAO,SAAS;AAGtC,gBAAI,QAAQ,WAAW,cAAe;AAGtC,gBAAI,CAAC,QAAQ,SAAS,WAAW,MAAM,EAAG;AAG1C,gBAAI,OAAO,WAAW,SAAU;AAGhC,gBAAI,KAAK,SAAS,CAAC,QAAQ,aAAa,IAAI,WAAW,GAAG;AACxD,sBAAQ,aAAa,IAAI,aAAa,KAAK,KAAK;AAChD,qBAAO,OAAO,QAAQ,SAAA;AACtB,kBAAI,MAAM,sCAAsC,OAAO,IAAI;AAAA,YAC7D;AAAA,UACF,QAAQ;AAAA,UAER;AAAA,QACF;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASQ,mBAA2B;AACjC,UAAI,OAAO,WAAW,aAAa;AACjC,eAAO,KAAK,cAAA;AAAA,MACd;AAGA,YAAM,YAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC5D,YAAM,WAAW,UAAU,IAAI,WAAW;AAC1C,UAAI,UAAU;AAEZ,uBAAe,QAAQ,oBAAoB,QAAQ;AACnD,YAAI,KAAK,6BAA6B,QAAQ;AAE9C,aAAK,oBAAA;AACL,eAAO;AAAA,MACT;AAGA,UAAI,QAAQ,eAAe,QAAQ,kBAAkB;AAErD,UAAI,CAAC,OAAO;AAEV,gBAAQ,KAAK,cAAA;AACb,uBAAe,QAAQ,oBAAoB,KAAK;AAChD,YAAI,KAAK,uBAAuB,KAAK;AAAA,MACvC;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKQ,sBAA4B;AAClC,UAAI,OAAO,WAAW,YAAa;AAEnC,YAAM,MAAM,IAAI,IAAI,OAAO,SAAS,IAAI;AACxC,UAAI,IAAI,aAAa,IAAI,WAAW,GAAG;AACrC,YAAI,aAAa,OAAO,WAAW;AAEnC,eAAO,QAAQ,aAAa,CAAA,GAAI,IAAI,IAAI,UAAU;AAAA,MACpD;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKQ,gBAAwB;AAC9B,aAAO,OAAO,KAAK,IAAA,CAAK,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AAAA,IACxE;AAAA;AAAA;AAAA;AAAA,IAKA,WAA0B;AACxB,aAAO,KAAK;AAAA,IACd;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,cAA8B;AACnC,UAAI,CAAC,gBAAe,UAAU;AAC5B,wBAAe,WAAW,IAAI,gBAAA;AAAA,MAChC;AACA,aAAO,gBAAe;AAAA,IACxB;AAAA;AAAA;AAAA;AAAA,IAKA,YAA2B;AACzB,aAAO,KAAK;AAAA,IACd;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAM,oBAAqC;AAEzC,UAAI,KAAK,QAAQ;AACf,YAAI,MAAM,+BAA+B,KAAK,MAAM;AACpD,eAAO,KAAK;AAAA,MACd;AAGA,UAAI,KAAK,uBAAuB;AAC9B,YAAI,MAAM,gDAAgD;AAC1D,eAAO,KAAK;AAAA,MACd;AAGA,YAAM,eAAe,KAAK,gBAAA;AAC1B,UAAI,cAAc;AAChB,aAAK,SAAS;AACd,YAAI,MAAM,6BAA6B,KAAK,MAAM;AAClD,eAAO,KAAK;AAAA,MACd;AAGA,WAAK,wBAAwB,KAAK,aAAA;AAElC,UAAI;AACF,cAAM,YAAY,MAAM,KAAK;AAC7B,eAAO;AAAA,MACT,UAAA;AAEE,aAAK,wBAAwB;AAAA,MAC/B;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,MAAc,eAAgC;AAC5C,UAAI;AACF,YAAI,KAAK,yBAAyB;AAClC,cAAM,eAAe,MAAM,IAAI,WAAW,EAAE,MAAM,QAAW;AAC7D,cAAM,aAAa,eAAe,YAAY;AAE9C,YAAI,cAAc,OAAO,eAAe,UAAU;AAChD,eAAK,SAAS;AACd,eAAK,YAAY,KAAK,MAAM;AAC5B,cAAI,KAAK,mCAAmC,KAAK,MAAM;AAEvD,sBAAY,qBAAqB,KAAK,MAAM;AAE5C,iBAAO,KAAK;AAAA,QACd,OAAO;AACL,gBAAM,IAAI,MAAM,iDAAiD;AAAA,QACnE;AAAA,MACF,SAAS,OAAO;AACd,YAAI,MAAM,6BAA6B,KAAK;AAE5C,aAAK,wBAAwB;AAC7B,cAAM;AAAA,MACR;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,cAAoB;AAClB,WAAK,SAAS;AACd,WAAK,wBAAwB;AAC7B,UAAI,MAAM,iBAAiB;AAAA,IAC7B;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,gBAAsB;AAC3B,sBAAe,WAAW;AAAA,IAC5B;AAAA,IAEQ,kBAAiC;AACvC,UAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,aAAO,aAAa,QAAQ,mBAAmB;AAAA,IACjD;AAAA,IAEQ,YAAY,IAAkB;AACpC,UAAI,OAAO,WAAW,YAAa;AACnC,mBAAa,QAAQ,qBAAqB,EAAE;AAAA,IAC9C;AAAA,EACF;AA3OE,gBADI,iBACW,YAAkC;AADnD,MAAM,iBAAN;AA8OO,QAAM,iBAAiB,eAAe,YAAA;ACtOtC,QAAM,mBAAN,MAAM,iBAAgB;AAAA,IAkBnB,YAAY,QAAmC;AAhB/C,uCAA8B;AAC9B;AACA,oCAAwB;AACxB,oCAA0B;AAC1B,2DAA+C,IAAA;AAE/C,+CAAoB;AACX,kDAAuB;AAChC,4CAAiB;AACR,+CAAoB;AAC7B,4CAAuD;AACvD,yDAA8B;AAE9B,+CAA2D;AAClD,iDAAsB;AAGrC,WAAK,MAAM,qBAAqB,MAAM;AAAA,IACxC;AAAA,IAEA,OAAO,YAAY,QAAoD;AACrE,UAAI,CAAC,iBAAgB,UAAU;AAC7B,yBAAgB,WAAW,IAAI,iBAAgB,MAAM;AAAA,MACvD,WAAW,QAAQ;AAIjB,cAAM,SAAS,qBAAqB,MAAM;AAC1C,YAAI,WAAW,iBAAgB,SAAS,KAAK;AAC3C,2BAAgB,SAAS,MAAM;AAAA,QAIjC;AAAA,MACF;AACA,aAAO,iBAAgB;AAAA,IACzB;AAAA,IAEA,aAAa,WAA2C;AACtD,WAAK,UAAU,IAAI,SAAS;AAAA,IAC9B;AAAA,IAEA,gBAAgB,WAA2C;AACzD,WAAK,UAAU,OAAO,SAAS;AAAA,IACjC;AAAA,IAEA,YAA6B;AAC3B,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,SAAiB;AACf,aAAO,KAAK;AAAA,IACd;AAAA,IAEA,cAAuB;;AACrB,aAAO,KAAK,WAAW,kBAAgB,UAAK,cAAL,mBAAgB,gBAAe,UAAU;AAAA,IAClF;AAAA,IAEA,MAAM,QAAQ,QAA+B;;AAC3C,UAAI,KAAK,6BAA6B;AAEpC,aAAK,8BAA8B;AAAA,MACrC;AAGA,UAAI,KAAK,YAAA,KAAiB,KAAK,WAAW,QAAQ;AAChD;AAAA,MACF;AAGA,UACE,KAAK,WAAW,gBAChB,KAAK,WAAW,YAChB,UAAK,cAAL,mBAAgB,gBAAe,UAAU,YACzC;AACA,eAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,gBAAM,UAAU,WAAW,MAAM;AAC/B,mBAAO,IAAI,MAAM,oBAAoB,CAAC;AAAA,UACxC,GAAG,GAAI;AAEP,gBAAM,gBAAgB,YAAY,MAAM;AACtC,gBAAI,KAAK,WAAW,gBAAgB,KAAK,WAAW,aAAa;AAC/D,4BAAc,aAAa;AAC3B,2BAAa,OAAO;AACpB,sBAAA;AAAA,YACF,WAAW,KAAK,WAAW,WAAW,KAAK,WAAW,gBAAgB;AACpE,4BAAc,aAAa;AAC3B,2BAAa,OAAO;AACpB,qBAAO,IAAI,MAAM,mBAAmB,CAAC;AAAA,YACvC;AAAA,UACF,GAAG,GAAG;AAAA,QACR,CAAC;AAAA,MACH;AAEA,UAAI,KAAK,WAAW;AAClB,YAAI,KAAK,WAAW,UAAU,KAAK,UAAU,eAAe,UAAU,YAAY;AAChF,eAAK,WAAA;AACL,gBAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAG,CAAC;AAAA,QACzD;AAAA,MACF;AAEA,WAAK,SAAS;AACd,WAAK,8BAA8B;AACnC,WAAK,UAAU,YAAY;AAE3B,UAAI;AACF,cAAM,KAAK,IAAI,UAAU,KAAK,GAAG;AACjC,aAAK,YAAY;AAEjB,WAAG,SAAS,MAAM;AAChB,cAAI,KAAK,cAAc,GAAI;AAC3B,eAAK,UAAU,WAAW;AAC1B,eAAK,oBAAoB;AACzB,eAAK,iBAAiB;AACtB,eAAK,oBAAA;AACL,eAAK,iBAAA;AACL,eAAK,eAAA;AAAA,QACP;AAEA,WAAG,YAAY,CAAC,UAAU;AACxB,cAAI,KAAK,cAAc,GAAI;AAC3B,cAAI;AACF,kBAAM,UAAU,KAAK,MAAM,MAAM,IAAI;AACrC,iBAAK,cAAc,OAAO;AAAA,UAC5B,SAAS,OAAO;AACd,iBAAK,YAAY,IAAI,MAAM,4BAA4B,OAAO,KAAK,CAAC,EAAE,CAAC;AAAA,UACzE;AAAA,QACF;AAEA,WAAG,UAAU,CAAC,UAAU;AACtB,cAAI,KAAK,cAAc,GAAI;AAC3B,kBAAQ,MAAM,sBAAsB,KAAK;AACzC,eAAK,UAAU,OAAO;AACtB,eAAK,YAAY,IAAI,MAAM,4BAA4B,CAAC;AAAA,QAC1D;AAEA,WAAG,UAAU,CAAC,UAAU;AACtB,cAAI,KAAK,cAAc,GAAI;AAE3B,gBAAM,gBAAgB,KAAK,WAAW;AACtC,eAAK,UAAU,cAAc;AAC7B,eAAK,cAAA;AACL,eAAK,YAAY;AAEjB,cAAI,MAAM,SAAS,KAAM;AAEvB,oBAAQ;AAAA,cACN,2CAA2C,MAAM,IAAI,KAAK,MAAM,UAAU,oBAAoB;AAAA,YAAA;AAAA,UAElG;AAEA,cAAI,CAAC,KAAK,+BAA+B,KAAK,QAAQ;AACpD,gBAAI,eAAe;AACjB,yBAAW,MAAM;AACf,oBAAI,CAAC,KAAK,+BAA+B,KAAK,QAAQ;AACpD,uBAAK,kBAAA;AAAA,gBACP;AAAA,cACF,GAAG,GAAG;AAAA,YACR,OAAO;AACL,mBAAK,kBAAA;AAAA,YACP;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,OAAO;AACd,aAAK,UAAU,OAAO;AACtB,aAAK,YAAY,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAC1E,aAAK,kBAAA;AAAA,MACP;AAAA,IACF;AAAA,IAEA,aAAmB;AACjB,WAAK,8BAA8B;AACnC,WAAK,cAAA;AACL,WAAK,oBAAA;AAEL,UAAI,KAAK,WAAW;AAClB,aAAK,UAAU,MAAA;AACf,aAAK,YAAY;AAAA,MACnB;AAEA,WAAK,UAAU,cAAc;AAC7B,WAAK,SAAS;AAAA,IAChB;AAAA,IAEA,KAAK,SAAiC;AACpC,UAAI,CAAC,KAAK,WAAW;AACnB,gBAAQ,KAAK,oDAAoD;AACjE;AAAA,MACF;AACA,UAAI,KAAK,UAAU,eAAe,UAAU,MAAM;AAChD,gBAAQ;AAAA,UACN,uDAAuD,KAAK,UAAU,UAAU;AAAA,QAAA;AAElF;AAAA,MACF;AACA,UAAI;AACF,aAAK,UAAU,KAAK,KAAK,UAAU,OAAO,CAAC;AAAA,MAC7C,SAAS,OAAO;AACd,gBAAQ,MAAM,uCAAuC,KAAK;AAC1D,aAAK,YAAY,IAAI,MAAM,2BAA2B,OAAO,KAAK,CAAC,EAAE,CAAC;AAAA,MACxE;AAAA,IACF;AAAA,IAEQ,UAAU,QAA+B;AAC/C,UAAI,KAAK,WAAW,QAAQ;AAC1B,aAAK,SAAS;AACd,aAAK,UAAU,QAAQ,CAAC;;AAAO,0BAAG,mBAAH,4BAAoB;AAAA,SAAO;AAAA,MAC5D;AAAA,IACF;AAAA,IAEQ,YAAY,OAAoB;AACtC,WAAK,UAAU,QAAQ,CAAC;;AAAO,wBAAG,YAAH,4BAAa;AAAA,OAAM;AAAA,IACpD;AAAA,IAEQ,cAAc,SAAiC;;AAErD,UAAI,QAAQ,WAAW,qBAAqB;AAC1C,cAAI,aAAQ,WAAR,mBAAgB,aAAY,KAAK,QAAQ;AAC3C,kBAAQ,IAAI,iDAAiD;AAC7D,eAAK,UAAU,YAAY;AAC3B,eAAK,oBAAoB;AACzB,eAAK,iBAAiB;AAAA,QACxB;AAAA,MACF,WAAW,QAAQ,WAAW,OAAQ;AAMtC,WAAK,UAAU,QAAQ,CAAC;;AAAO,gBAAAK,MAAA,GAAG,cAAH,gBAAAA,IAAA,SAAe;AAAA,OAAQ;AAAA,IACxD;AAAA,IAEQ,mBAAyB;AAC/B,UAAI,CAAC,KAAK,OAAQ;AAClB,UAAI,KAAK,WAAW,eAAe,KAAK,WAAW,cAAc;AAE/D;AAAA,MACF;AAGA,YAAM,QAAQ,eAAe,SAAA;AAE7B,WAAK,KAAK;AAAA,QACR,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ;AAAA,UACN,SAAS,KAAK;AAAA,UACd,QAAQ;AAAA,UACR,KAAK,OAAO,WAAW,cAAc,OAAO,SAAS,OAAO;AAAA,QAAA;AAAA,MAC9D,CACD;AAAA,IACH;AAAA,IAEQ,oBAA0B;AAChC,UAAI,KAAK,qBAAqB,KAAK,sBAAsB;AACvD,aAAK,YAAY,IAAI,MAAM,gCAAgC,CAAC;AAC5D;AAAA,MACF;AAEA,WAAK,oBAAA;AACL,WAAK;AAEL,YAAM,QAAQ,KAAK;AAAA,QACjB,KAAK,iBAAiB,KAAK,IAAI,GAAG,KAAK,oBAAoB,CAAC;AAAA,QAC5D,KAAK;AAAA,MAAA;AAGP,cAAQ;AAAA,QACN,4CAA4C,KAAK,iBAAiB,IAAI,KAAK,oBAAoB,OAAO,KAAK;AAAA,MAAA;AAG7G,WAAK,iBAAiB,WAAW,MAAM;AACrC,YAAI,CAAC,KAAK,+BAA+B,KAAK,QAAQ;AACpD,kBAAQ,IAAI,6CAA6C,KAAK,iBAAiB,MAAM;AACrF,eAAK,QAAQ,KAAK,MAAM,EAAE,MAAM,CAAC,UAAU;AACzC,oBAAQ,MAAM,yCAAyC,KAAK;AAC5D,gBAAI,KAAK,oBAAoB,KAAK,sBAAsB;AACtD,mBAAK,kBAAA;AAAA,YACP;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,GAAG,KAAK;AAAA,IACV;AAAA,IAEQ,sBAA4B;AAClC,UAAI,KAAK,gBAAgB;AACvB,qBAAa,KAAK,cAAc;AAChC,aAAK,iBAAiB;AAAA,MACxB;AAAA,IACF;AAAA,IAEQ,iBAAuB;AAC7B,WAAK,cAAA;AACL,WAAK,oBAAoB,YAAY,MAAM;;AACzC,cAAI,UAAK,cAAL,mBAAgB,gBAAe,UAAU,MAAM;AACjD,eAAK,KAAK,EAAE,SAAS,OAAO,QAAQ,QAAQ,QAAQ,EAAE,WAAW,KAAK,IAAA,EAAI,GAAK;AAAA,QACjF;AAAA,MACF,GAAG,KAAK,mBAAmB;AAAA,IAC7B;AAAA,IAEQ,gBAAsB;AAC5B,UAAI,KAAK,mBAAmB;AAC1B,sBAAc,KAAK,iBAAiB;AACpC,aAAK,oBAAoB;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAnTE,gBADW,kBACI,YAAmC;AAD7C,MAAM,kBAAN;ACCA,QAAM,cAA0E;AAAA,IACrF,UAAU,EAAE,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,EAAA;AAAA,IACnD,QAAQ,EAAE,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAA;AAAA,IAClD,eAAe,EAAE,UAAU,CAAC,OAAO,GAAG,UAAU,CAAA,EAAC;AAAA,IACjD,WAAW,EAAE,UAAU,CAAC,SAAS,MAAM,GAAG,UAAU,GAAC;AAAA,IACrD,QAAQ,EAAE,UAAU,CAAC,WAAW,GAAG,UAAU,CAAA,EAAC;AAAA,IAC9C,gBAAgB,EAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAA,EAAC;AAAA,IACjD,WAAW,EAAE,UAAU,CAAC,SAAS,MAAM,GAAG,UAAU,GAAC;AAAA,IACrD,wBAAwB,EAAE,UAAU,CAAC,SAAS,QAAQ,GAAG,UAAU,GAAC;AAAA,IACpE,sBAAsB,EAAE,UAAU,CAAC,OAAO,GAAG,UAAU,CAAA,EAAC;AAAA,IACxD,SAAS,EAAE,UAAU,IAAI,UAAU,CAAA,EAAC;AAAA,IACpC,UAAU,EAAE,UAAU,IAAI,UAAU,CAAA,EAAC;AAAA,IACrC,gBAAgB,EAAE,UAAU,IAAI,UAAU,CAAA,EAAC;AAAA,IAC3C,SAAS,EAAE,UAAU,IAAI,UAAU,CAAA,EAAC;AAAA,IACpC,MAAM,EAAE,UAAU,CAAC,SAAS,GAAG,UAAU,CAAA,EAAC;AAAA,IAC1C,WAAW,EAAE,UAAU,IAAI,UAAU,CAAA,EAAC;AAAA,IACtC,YAAY,EAAE,UAAU,CAAC,WAAW,GAAG,UAAU,CAAA,EAAC;AAAA,IAClD,aAAa,EAAE,UAAU,CAAC,SAAS,MAAM,GAAG,UAAU,GAAC;AAAA,IACvD,MAAM,EAAE,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,EAAA;AAAA,EACrD;AAGO,QAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,IAKtB,WAAqC;AACnC,YAAM,WAAW,WAAW,0BAAA;AAC5B,cAAQ,IAAI,sBAAsB,SAAS,MAAM,wBAAwB;AACzE,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,eAAqB;AACnB,YAAM,WAAW,KAAK,SAAA;AACtB,cAAQ;AAAA,QACN,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,MAAA;;AAAO;AAAA,YAC7B;AAAA,YACA,KAAK,GAAG,QAAQ,YAAA;AAAA,YAChB,IAAI,GAAG,MAAM;AAAA,YACb,SAAO,QAAG,cAAH,mBAAc,WAAW,MAAM,GAAG,QAAO;AAAA,YAChD,QAAM,QAAG,gBAAH,mBAAgB,MAAM,GAAG,QAAO;AAAA,UAAA;AAAA,SACtC;AAAA,MAAA;AAAA,IAEN;AAAA;AAAA;AAAA;AAAA,IAKA,iBAAiB,OAAe,WAAmB,KAAY;AAC7D,YAAM,UAAU,WAAW,kBAAkB,KAAK;AAClD,UAAI,CAAC,SAAS;AACZ,gBAAQ,MAAM,sBAAsB,KAAK,mCAAmC;AAC5E;AAAA,MACF;AAEA,YAAM,kBAAkB,QAAQ,MAAM;AACtC,YAAM,qBAAqB,QAAQ,MAAM;AAEzC,cAAQ,MAAM,UAAU;AACxB,cAAQ,MAAM,aAAa;AAC3B,cAAQ,eAAe,EAAE,UAAU,UAAU,OAAO,UAAU;AAE9D,iBAAW,MAAM;AACf,gBAAQ,MAAM,UAAU;AACxB,gBAAQ,MAAM,aAAa;AAAA,MAC7B,GAAG,QAAQ;AAEX,cAAQ,IAAI,mCAAmC,KAAK,KAAK,OAAO;AAAA,IAClE;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SACJ,UACA,OAAgC,CAAA,GAChC,OAAsB,MACtB,cAAsB,IACQ;AAE9B,UAAI,CAAC,YAAY,QAAQ,GAAG;AAC1B,gBAAQ,MAAM,4BAA4B,QAAQ,EAAE;AACpD,gBAAQ,IAAI,+BAA+B,OAAO,KAAK,WAAW,CAAC;AACnE,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,iBAAiB,QAAQ,GAAA;AAAA,MACvE;AAGA,YAAM,EAAE,SAAA,IAAa,YAAY,QAAQ;AACzC,YAAM,UAAU,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,KAAK;AAC3D,UAAI,QAAQ,SAAS,GAAG;AACtB,gBAAQ,MAAM,0CAA0C,QAAQ,KAAK,OAAO;AAC5E,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,mBAAmB,QAAQ,KAAK,IAAI,CAAC,GAAA;AAAA,MACnF;AAEA,cAAQ,IAAI,wBAAwB,QAAQ,IAAI,EAAE,MAAM,MAAM,aAAa;AAC3E,YAAM,YAAY,OAAO,YAAY,IAAA;AAErC,UAAI;AACF,cAAM,SAAS,MAAM,qBAAqB,YAAY,UAAU,MAAM,MAAM,WAAW;AACvF,cAAM,YAAY,OAAO,YAAY,QAAQ,WAAW,QAAQ,CAAC;AAEjE,YAAI,OAAO,SAAS;AAClB,kBAAQ,IAAI,gBAAgB,QAAQ,iBAAiB,QAAQ,MAAM,OAAO,MAAM;AAAA,QAClF,OAAO;AACL,kBAAQ,MAAM,gBAAgB,QAAQ,cAAc,QAAQ,MAAM,OAAO,KAAK;AAAA,QAChF;AAEA,eAAO;AAAA,MACT,SAAS,OAAO;AACd,gBAAQ,MAAM,gBAAgB,QAAQ,iBAAiB,KAAK;AAC5D,eAAO,EAAE,SAAS,OAAO,QAAQ,IAAI,OAAO,OAAO,KAAK,EAAA;AAAA,MAC1D;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YACJ,UACgC;AAChC,YAAM,UAAiC,CAAA;AAEvC,eAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,cAAM,EAAE,MAAM,OAAO,CAAA,GAAI,QAAQ,IAAA,IAAQ,SAAS,CAAC;AACnD,gBAAQ,IAAI,mBAAmB,IAAI,CAAC,IAAI,SAAS,MAAM,KAAK,IAAI,EAAE;AAElE,cAAM,SAAS,MAAM,KAAK,SAAS,MAAM,IAAI;AAC7C,gBAAQ,KAAK,MAAM;AAEnB,YAAI,CAAC,OAAO,SAAS;AACnB,kBAAQ,MAAM,uCAAuC,IAAI,CAAC,iBAAiB;AAC3E;AAAA,QACF;AAEA,YAAI,IAAI,SAAS,SAAS,KAAK,QAAQ,GAAG;AACxC,gBAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,KAAK,CAAC;AAAA,QAC3D;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,sBAA8B;AAC5B,YAAM,WAAW,gBAAgB,YAAA;AACjC,aAAO,SAAS,UAAA;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,cAAc;AACZ,aAAO,YAAY,YAAA;AAAA,IACrB;AAAA;AAAA;AAAA;AAAA,IAKA,YAAkB;AAChB,kBAAY,cAAA;AACZ,cAAQ,IAAI,iCAAiC;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA,IAKA,OAAa;AACX,cAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAsBX;AAAA,IACH;AAAA,EACF;AAKO,WAAS,eAAqB;AACnC,QAAI,OAAO,WAAW,YAAa;AAGlC,WAAe,aAAa;AAC5B,WAAe,uBAAuB;AACtC,WAAe,cAAc;AAC7B,WAAe,kBAAkB;AAGjC,WAAe,WAAW;AAE3B,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAMX;AAAA,EACH;ACxNA,QAAM,SAAS;AAAA,IACb,SAAS;AAAA,MACP,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,MACP,WAAW;AAAA,MACX,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,eAAe;AAAA,MACf,WAAW;AAAA,IAAA;AAAA,IAEb,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,cAAc;AAAA,MACd,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,YAAY;AAAA,IAAA;AAAA,IAEd,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,UAAU;AAAA,IAAA;AAAA,IAEZ,UAAU;AAAA,MACR,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEX,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,MACX,MAAM;AAAA,IAAA;AAAA,IAER,SAAS;AAAA,MACP,cAAc;AAAA,IAAA;AAAA,IAEhB,cAAc;AAAA,MACZ,OAAO;AAAA,MACP,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,eAAe;AAAA,MACf,eAAe;AAAA,IAAA;AAAA,IAEjB,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,OAAO;AAAA,MACP,UAAU;AAAA,MACV,QAAQ;AAAA,IAAA;AAAA,IAEV,YAAY;AAAA,MACV,cAAc;AAAA,IAAA;AAAA,IAEhB,OAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,MACP,cAAc;AAAA,MACd,UAAU;AAAA,IAAA;AAAA,IAEZ,OAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,IAAA;AAAA,IAEb,KAAK;AAAA,MACH,SAAS;AAAA,MACT,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,cAAc;AAAA,IAAA;AAAA,IAEhB,SAAS,CAAC,YAAqB;AAAA,MAC7B,MAAM;AAAA,MACN,SAAS;AAAA,MACT,iBAAiB,SAAS,YAAY;AAAA,MACtC,QAAQ,SAAS,sBAAsB;AAAA,MACvC,cAAc;AAAA,MACd,OAAO,SAAS,YAAY;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA;AAAA,IAEZ,YAAY;AAAA,MACV,OAAO;AAAA,MACP,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,YAAY;AAAA,IAAA;AAAA,IAEd,oBAAoB;AAAA,MAClB,iBAAiB;AAAA,MACjB,QAAQ;AAAA,IAAA;AAAA,IAEV,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IAAA;AAAA,IAEb,eAAe;AAAA,MACb,OAAO;AAAA,IAAA;AAAA,IAET,aAAa;AAAA,MACX,OAAO;AAAA,IAAA;AAAA,IAET,aAAa;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,MACX,iBAAiB;AAAA,MACjB,cAAc;AAAA,IAAA;AAAA,IAEhB,aAAa;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,KAAK;AAAA,MACL,YAAY;AAAA,IAAA;AAAA,IAEd,cAAc;AAAA,MACZ,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,UAAU;AAAA,IAAA;AAAA,IAEZ,YAAY;AAAA,MACV,OAAO;AAAA,IAAA;AAAA,IAET,WAAW;AAAA,MACT,OAAO;AAAA,IAAA;AAAA,IAET,aAAa;AAAA,MACX,OAAO;AAAA,MACP,UAAU;AAAA,MACV,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,MAAM;AAAA,IAAA;AAAA,IAER,UAAU;AAAA,MACR,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,cAAc;AAAA,IAAA;AAAA,IAEhB,OAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,UAAU;AAAA,MACV,YAAY;AAAA,IAAA;AAAA,IAEd,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,cAAc;AAAA,MACd,iBAAiB;AAAA,IAAA;AAAA,IAEnB,KAAK,CAAC,YAAqB;AAAA,MACzB,SAAS;AAAA,MACT,iBAAiB,SAAS,YAAY;AAAA,MACtC,QAAQ;AAAA,MACR,cAAc,SAAS,sBAAsB;AAAA,MAC7C,OAAO,SAAS,YAAY;AAAA,MAC5B,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA;AAAA,EAEd;AA0BO,QAAM,aAAuB,MAAM;AACxC,UAAM,CAAC,WAAW,YAAY,IAAIC,aAAAA,SAAS,IAAI;AAC/C,UAAM,CAAC,WAAW,YAAY,IAAIA,aAAAA,SAAkB,OAAO;AAG3D,UAAM,CAAC,cAAc,eAAe,IAAIA,aAAAA,SAAiB,eAAe;AACxE,UAAM,CAAC,UAAU,WAAW,IAAIA,aAAAA,SAAiC,CAAA,CAAE;AACnE,UAAM,CAAC,MAAM,OAAO,IAAIA,aAAAA,SAAwB,IAAI;AACpD,UAAM,CAAC,aAAa,cAAc,IAAIA,aAAAA,SAAS,EAAE;AACjD,UAAM,CAAC,aAAa,cAAc,IAAIA,aAAAA,SAAS,KAAK;AACpD,UAAM,CAAC,QAAQ,SAAS,IAAIA,aAAAA,SAAqC,IAAI;AAGrE,UAAM,CAAC,iBAAiB,kBAAkB,IAAIA,aAAAA,SAA2B,CAAA,CAAE;AAC3E,UAAM,CAAC,YAAY,aAAa,IAAIA,aAAAA,SAAS,KAAK;AAGlD,UAAM,CAAC,kBAAkB,mBAAmB,IAAIA,aAAAA,SAAmC,CAAA,CAAE;AACrF,UAAM,CAAC,eAAe,gBAAgB,IAAIA,aAAAA,SAA+B,CAAA,CAAE;AAC3E,UAAM,CAAC,gBAAgB,iBAAiB,IAAIA,aAAAA,SAA4B,IAAI;AAC5E,UAAM,CAAC,iBAAiB,kBAAkB,IAAIA,aAAAA,SAA2B,CAAA,CAAE;AAC3E,UAAM,CAAC,uBAAuB,wBAAwB,IAAIA,aAAAA,SAAiB,CAAC;AAC5E,UAAM,CAAC,kBAAkB,mBAAmB,IAAIA,aAAAA,SAAiB,eAAe;AAGhFC,iBAAAA,UAAU,MAAM;AACd,YAAM,gBAAgB,CAAC,MAAqB;AAC1C,YAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,KAAK;AAC5C,YAAE,eAAA;AACF,uBAAa,CAAC,SAAS,CAAC,IAAI;AAAA,QAC9B;AAAA,MACF;AAEA,aAAO,iBAAiB,WAAW,aAAa;AAChD,aAAO,MAAM,OAAO,oBAAoB,WAAW,aAAa;AAAA,IAClE,GAAG,CAAA,CAAE;AAGLA,iBAAAA,UAAU,MAAM;AACd,kBAAY,CAAA,CAAE;AACd,gBAAU,IAAI;AAAA,IAChB,GAAG,CAAC,YAAY,CAAC;AAGjB,UAAM,iBAAiBC,aAAAA,YAAY,MAAM;AACvC,oBAAc,IAAI;AAClB,UAAI;AACF,cAAM,WAAW,WAAW,0BAAA;AAC5B,cAAM,SAA2B,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,MAAA;;AAAO;AAAA,YAC9D;AAAA,YACA,KAAK,GAAG,QAAQ,YAAA;AAAA,YAChB,IAAI,GAAG,MAAM;AAAA,YACb,aAAW,QAAG,cAAH,mBAAc,WAAW,MAAM,GAAG,QAAO;AAAA,YACpD,QAAM,QAAG,gBAAH,mBAAgB,OAAO,MAAM,GAAG,QAAO;AAAA,UAAA;AAAA,SAC7C;AACF,2BAAmB,MAAM;AAAA,MAC3B,UAAA;AACE,sBAAc,KAAK;AAAA,MACrB;AAAA,IACF,GAAG,CAAA,CAAE;AAGL,UAAM,gBAAgBA,aAAAA,YAAY,YAAY;AAC5C,qBAAe,IAAI;AACnB,gBAAU,IAAI;AAEd,UAAI;AAEF,cAAM,aAAsC,CAAA;AAC5C,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACnD,cAAI,UAAU,GAAI;AAElB,gBAAM,MAAM,OAAO,KAAK;AACxB,qBAAW,GAAG,IAAI,MAAM,GAAG,IAAI,QAAQ;AAAA,QACzC;AAEA,cAAM,MAAM,MAAM,qBAAqB;AAAA,UACrC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAEF,kBAAU,GAAG;AAAA,MACf,SAAS,OAAO;AACd,kBAAU;AAAA,UACR,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QAAA,CAC7D;AAAA,MACH,UAAA;AACE,uBAAe,KAAK;AAAA,MACtB;AAAA,IACF,GAAG,CAAC,cAAc,UAAU,MAAM,WAAW,CAAC;AAG9C,UAAM,yBAAyBA,yBAAY,CAAC,UAAkB;AAC5D,YAAM,UAAU,WAAW,kBAAkB,KAAK;AAClD,UAAI,SAAS;AACX,cAAM,kBAAkB,QAAQ,MAAM;AACtC,cAAM,qBAAqB,QAAQ,MAAM;AAEzC,gBAAQ,MAAM,UAAU;AACxB,gBAAQ,MAAM,aAAa;AAC3B,gBAAQ,eAAe,EAAE,UAAU,UAAU,OAAO,UAAU;AAE9D,mBAAW,MAAM;AACf,kBAAQ,MAAM,UAAU;AACxB,kBAAQ,MAAM,aAAa;AAAA,QAC7B,GAAG,GAAI;AAAA,MACT;AAAA,IACF,GAAG,CAAA,CAAE;AAGL,UAAM,mBAAmBA,yBAAY,CAAC,UAAkB;AACtD,mBAAa,OAAO;AACpB,kBAAY,CAAC,UAAU,EAAE,GAAG,MAAM,OAAO,OAAO,KAAK,EAAA,EAAI;AAAA,IAC3D,GAAG,CAAA,CAAE;AAGL,UAAM,0BAA0BA,aAAAA,YAAY,MAAM;AAChD,YAAM,WAAW,eAAe,mBAAA;AAChC,0BAAoB,QAAQ;AAAA,IAC9B,GAAG,CAAA,CAAE;AAEL,UAAM,uBAAuBA,aAAAA,YAAY,MAAM;AAC7C,uBAAiB,eAAe,kBAAkB;AAAA,IACpD,GAAG,CAAA,CAAE;AAEL,UAAM,wBAAwBA,aAAAA,YAAY,MAAM;AAC9C,iBAAW,0BAAA;AACX,8BAAA;AAAA,IACF,GAAG,CAAC,uBAAuB,CAAC;AAE5B,UAAM,wBAAwBA,aAAAA,YAAY,YAAY;AACpD,YAAMxB,UAAS,MAAM,eAAe,qBAAqB,kBAAkB;AAAA,QACzE,OAAO;AAAA,MAAA,CACR;AACD,wBAAkBA,OAAM;AACxB,2BAAA;AACA,8BAAA;AAAA,IACF,GAAG,CAAC,kBAAkB,uBAAuB,sBAAsB,uBAAuB,CAAC;AAE3F,UAAM,oBAAoBwB,aAAAA;AAAAA,MACxB,OAAO,eAAuB;AAC5B,cAAMxB,UAAS,MAAM,eAAe,YAAY,UAAU;AAC1D,2BAAmB,CAAC,SAAS,CAAC,GAAG,MAAMA,OAAM,CAAC;AAC9C,6BAAA;AACA,gCAAA;AAAA,MACF;AAAA,MACA,CAAC,sBAAsB,uBAAuB;AAAA,IAAA;AAGhD,UAAM,wBAAwBwB,aAAAA,YAAY,YAAY;AACpD,YAAM,UAAU,MAAM,eAAe,gBAAA;AACrC,yBAAmB,OAAO;AAC1B,2BAAA;AACA,8BAAA;AAAA,IACF,GAAG,CAAC,sBAAsB,uBAAuB,CAAC;AAGlD,UAAM,qBAAqBA,aAAAA,YAAY,MAAM;AAC3C,qBAAe,oBAAoB,qBAAqB;AACxD,8BAAA;AAAA,IACF,GAAG,CAAC,uBAAuB,uBAAuB,CAAC;AAEnD,UAAM,sBAAsBA,aAAAA,YAAY,MAAM;AAC5C,qBAAe,cAAc,qBAAqB;AAClD,8BAAA;AAAA,IACF,GAAG,CAAC,uBAAuB,uBAAuB,CAAC;AAEnD,UAAM,yBAAyBA,aAAAA,YAAY,MAAM;AAC/C,qBAAe,iBAAiB,qBAAqB;AACrD,8BAAA;AAAA,IACF,GAAG,CAAC,uBAAuB,uBAAuB,CAAC;AAEnD,UAAM,sBAAsBA,aAAAA,YAAY,MAAM;AAC5C,qBAAe,qBAAqB,uBAAuB,iBAAiB,KAAK,IAAA,CAAK,EAAE;AACxF,8BAAA;AAAA,IACF,GAAG,CAAC,uBAAuB,uBAAuB,CAAC;AAEnD,UAAM,gBAAgBA,aAAAA,YAAY,MAAM;AACtC,qBAAe,oBAAA;AACf,8BAAA;AAAA,IACF,GAAG,CAAC,uBAAuB,CAAC;AAE5B,UAAM,kBAAkBA,aAAAA,YAAY,MAAM;AACxC,qBAAe,UAAA;AAAA,IACjB,GAAG,CAAA,CAAE;AAEL,UAAM,qBAAqBA,aAAAA,YAAY,MAAM;AAC3C,qBAAe,uBAAA;AAAA,IACjB,GAAG,CAAA,CAAE;AAEL,UAAM,wBAAwBA,aAAAA,YAAY,MAAM;AAC9C,qBAAe,uBAAA;AAAA,IACjB,GAAG,CAAA,CAAE;AAGL,UAAM,qBAAqB,CAAC,eAAyC;AACnE,UAAI,WAAW,QAAS,QAAO;AAC/B,UAAI,WAAW,iBAAkB,QAAO;AACxC,aAAO;AAAA,IACT;AAEA,UAAM,kBAAkB,CAAC,YAA4B;AACnD,cAAQ,SAAA;AAAA,QACN,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MAAA;AAAA,IAEb;AAEA,QAAI,CAAC,UAAW,QAAO;AAEvB,UAAM,aAAa,YAAY,YAAY,KAAK,EAAE,UAAU,CAAA,GAAI,UAAU,GAAC;AAC3E,UAAM,YAAY,CAAC,GAAG,WAAW,UAAU,GAAG,WAAW,QAAQ;AAEjE,WACEC,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SAEjB,UAAA;AAAA,MAAAA,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,QACjB,UAAA;AAAA,QAAAA,kCAAAA,KAAC,QAAA,EAAK,OAAO,OAAO,OAAO,UAAA;AAAA,UAAA;AAAA,UAEzBC,kCAAAA,IAAC,QAAA,EAAK,OAAO,EAAE,GAAG,OAAO,OAAO,iBAAiB,aAAa,UAAA,MAAA,CAAG;AAAA,QAAA,GACnE;AAAA,QACAA,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,OAAO;AAAA,YACd,SAAS,MAAM,aAAa,KAAK;AAAA,YACjC,OAAM;AAAA,YACP,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED,GACF;AAAA,MAGAD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,MACjB,UAAA;AAAA,QAAAC,kCAAAA,IAAC,UAAA,EAAO,OAAO,OAAO,IAAI,cAAc,OAAO,GAAG,SAAS,MAAM,aAAa,OAAO,GAAG,UAAA,QAAA,CAExF;AAAA,QACAD,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,OAAO,IAAI,cAAc,UAAU;AAAA,YAC1C,SAAS,MAAM,aAAa,UAAU;AAAA,YACvC,UAAA;AAAA,cAAA;AAAA,cACW,gBAAgB,SAAS,KAAK,IAAI,gBAAgB,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAEpEC,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,OAAO,IAAI,cAAc,UAAU;AAAA,YAC1C,SAAS,MAAM;AACb,2BAAa,UAAU;AACvB,sCAAA;AACA,mCAAA;AAAA,YACF;AAAA,YACD,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED,GACF;AAAA,MAGAD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SAChB,UAAA;AAAA,QAAA,cAAc,WACbA,kCAAAA,KAAAE,kBAAAA,UAAA,EAEE,UAAA;AAAA,UAAAF,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,eAAW;AAAA,YAC5CD,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO,OAAO;AAAA,gBACd,OAAO;AAAA,gBACP,UAAU,CAAC,MAAM,gBAAgB,EAAE,OAAO,KAAK;AAAA,gBAE/C,UAAA;AAAA,kBAAAA,kCAAAA,KAAC,YAAA,EAAS,OAAM,cACd,UAAA;AAAA,oBAAAC,kCAAAA,IAAC,UAAA,EAAO,OAAM,YAAW,UAAA,YAAQ;AAAA,oBACjCA,kCAAAA,IAAC,UAAA,EAAO,OAAM,UAAS,UAAA,UAAM;AAAA,oBAC7BA,kCAAAA,IAAC,UAAA,EAAO,OAAM,WAAU,UAAA,UAAA,CAAO;AAAA,kBAAA,GACjC;AAAA,kBACAD,kCAAAA,KAAC,YAAA,EAAS,OAAM,eACd,UAAA;AAAA,oBAAAC,kCAAAA,IAAC,UAAA,EAAO,OAAM,iBAAgB,UAAA,iBAAa;AAAA,oBAC3CA,kCAAAA,IAAC,UAAA,EAAO,OAAM,aAAY,UAAA,aAAS;AAAA,oBACnCA,kCAAAA,IAAC,UAAA,EAAO,OAAM,UAAS,UAAA,UAAM;AAAA,oBAC7BA,kCAAAA,IAAC,UAAA,EAAO,OAAM,kBAAiB,UAAA,kBAAc;AAAA,oBAC7CA,kCAAAA,IAAC,UAAA,EAAO,OAAM,aAAY,UAAA,aAAS;AAAA,oBACnCA,kCAAAA,IAAC,UAAA,EAAO,OAAM,0BAAyB,UAAA,yBAAA,CAAsB;AAAA,kBAAA,GAC/D;AAAA,kBACAD,kCAAAA,KAAC,YAAA,EAAS,OAAM,cACd,UAAA;AAAA,oBAAAC,kCAAAA,IAAC,UAAA,EAAO,OAAM,WAAU,UAAA,WAAO;AAAA,oBAC/BA,kCAAAA,IAAC,UAAA,EAAO,OAAM,YAAW,UAAA,YAAQ;AAAA,oBACjCA,kCAAAA,IAAC,UAAA,EAAO,OAAM,wBAAuB,UAAA,wBAAoB;AAAA,oBACzDA,kCAAAA,IAAC,UAAA,EAAO,OAAM,kBAAiB,UAAA,iBAAA,CAAc;AAAA,kBAAA,GAC/C;AAAA,kBACAD,kCAAAA,KAAC,YAAA,EAAS,OAAM,WACd,UAAA;AAAA,oBAAAC,kCAAAA,IAAC,UAAA,EAAO,OAAM,QAAO,UAAA,QAAI;AAAA,oBACzBA,kCAAAA,IAAC,UAAA,EAAO,OAAM,QAAO,UAAA,QAAI;AAAA,oBACzBA,kCAAAA,IAAC,UAAA,EAAO,OAAM,aAAY,UAAA,YAAA,CAAS;AAAA,kBAAA,EAAA,CACrC;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF,GACF;AAAA,UAGC,UAAU,SAAS,4CACjB,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAA,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,cAAU;AAAA,YAC1C,UAAU,IAAI,CAAC,iDACb,OAAA,EAAgB,OAAO,OAAO,YAC7B,UAAA;AAAA,cAAAD,kCAAAA,KAAC,SAAA,EAAM,OAAO,OAAO,OAClB,UAAA;AAAA,gBAAA;AAAA,gBACA,WAAW,SAAS,SAAS,KAAK,KACjCC,kCAAAA,IAAC,QAAA,EAAK,OAAO,EAAE,OAAO,UAAA,GAAa,UAAA,KAAA,CAAE;AAAA,cAAA,GAEzC;AAAA,cACAA,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,OAAO;AAAA,kBACd,MAAK;AAAA,kBACL,OAAO,SAAS,KAAK,KAAK;AAAA,kBAC1B,UAAU,CAAC,MACT,YAAY,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,OAAO,QAAQ;AAAA,kBAE9D,aAAa,eAAe,KAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,YACnC,EAAA,GAfQ,KAgBV,CACD;AAAA,UAAA,GACH;AAAA,UAIFD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,QAAI;AAAA,YACrCD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,KACjB,UAAA;AAAA,cAAAC,kCAAAA,IAAC,UAAA,EAAO,OAAO,OAAO,QAAQ,SAAS,IAAI,GAAG,SAAS,MAAM,QAAQ,IAAI,GAAG,UAAA,YAAA,CAE5E;AAAA,cACAA,kCAAAA,IAAC,UAAA,EAAO,OAAO,OAAO,QAAQ,SAAS,MAAM,GAAG,SAAS,MAAM,QAAQ,MAAM,GAAG,UAAA,iBAAA,CAEhF;AAAA,YAAA,GACF;AAAA,YACC,SAAS,UACRD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,YACjB,UAAA;AAAA,cAAAC,kCAAAA,IAAC,SAAA,EAAM,OAAO,OAAO,OAAO,UAAA,eAAW;AAAA,cACvCA,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,OAAO;AAAA,kBACd,MAAK;AAAA,kBACL,OAAO;AAAA,kBACP,UAAU,CAAC,MAAM,eAAe,EAAE,OAAO,KAAK;AAAA,kBAC9C,aAAY;AAAA,gBAAA;AAAA,cAAA;AAAA,YACd,EAAA,CACF;AAAA,UAAA,GAEJ;AAAA,UAGAA,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,GAAG,OAAO;AAAA,gBACV,GAAI,cAAc,OAAO,qBAAqB,CAAA;AAAA,cAAC;AAAA,cAEjD,SAAS;AAAA,cACT,UAAU;AAAA,cAET,UAAA,cAAc,iBAAiB,WAAW,YAAY;AAAA,YAAA;AAAA,UAAA;AAAA,UAIxD,UACCD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,QACjB,UAAA;AAAA,YAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,UAAU,OAAO,gBAAgB,OAAO,aACxD,UAAA,OAAO,UAAU,cAAc,YAClC;AAAA,YACC,OAAO,UACNA,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,QAAQ;AAAA,kBACR,YAAY;AAAA,kBACZ,WAAW;AAAA,kBACX,UAAU;AAAA,gBAAA;AAAA,gBAGX,iBAAO,OAAO,WAAW,YAAY,OAAO,OAAO,SAAS,MACzD,GAAG,OAAO,OAAO,MAAM,GAAG,GAAG,CAAC,QAC9B,OAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YAGd,OAAO,SACNA,kCAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,WAAW,OAAO,OAAO,UAAA,GAAc,UAAA,OAAO,MAAA,CAAM;AAAA,UAAA,EAAA,CAEtE;AAAA,QAAA,GAEJ;AAAA,QAGD,cAAc,cACbD,kCAAAA,KAAAE,kBAAAA,UAAA,EAEE,UAAA;AAAA,UAAAD,kCAAAA,IAAC,UAAA,EAAO,OAAO,OAAO,UAAU,SAAS,gBAAgB,UAAU,YAChE,UAAA,aAAa,gBAAgB,wBAAA,CAChC;AAAA,UAGC,gBAAgB,SAAS,IACxBA,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,aAChB,UAAA,gBAAgB,IAAI,CAAC,OACpBD,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cAEC,OAAO,OAAO;AAAA,cACd,SAAS,MAAM,uBAAuB,GAAG,KAAK;AAAA,cAC9C,eAAe,MAAM,iBAAiB,GAAG,KAAK;AAAA,cAC9C,OAAM;AAAA,cAEN,UAAA;AAAA,gBAAAC,sCAAC,QAAA,EAAK,OAAO,OAAO,cAAe,aAAG,OAAM;AAAA,gBAC5CD,kCAAAA,KAAC,QAAA,EAAK,OAAO,OAAO,YAAY,UAAA;AAAA,kBAAA;AAAA,kBAAK,GAAG;AAAA,kBAAI;AAAA,gBAAA,GAAI;AAAA,gBAC/C,GAAG,MAAMA,kCAAAA,KAAC,QAAA,EAAK,OAAO,OAAO,WAAW,UAAA;AAAA,kBAAA;AAAA,kBAAE,GAAG;AAAA,gBAAA,GAAG;AAAA,gBACjDC,kCAAAA,IAAC,UAAK,OAAO,OAAO,aAAc,UAAA,GAAG,QAAQ,GAAG,UAAA,CAAU;AAAA,cAAA;AAAA,YAAA;AAAA,YATrD,GAAG;AAAA,UAAA,CAWX,EAAA,CACH,IAEAA,kCAAAA,IAAC,SAAI,OAAO,EAAE,OAAO,WAAW,WAAW,UAAU,SAAS,OAAA,GAAU,UAAA,8CAAA,CAExE;AAAA,QAAA,GAEJ;AAAA,QAGD,cAAc,cACbD,kCAAAA,KAAAE,kBAAAA,UAAA,EAEE,UAAA;AAAA,UAAAD,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,SACjB,iDAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,OAAO,cAAc,UACvD,UAAA;AAAA,YAAAA,sCAAC,YAAO,OAAO,OAAO,UAAU,SAAS,uBAAuB,UAAA,gBAEhE;AAAA,kDACC,UAAA,EAAO,OAAO,OAAO,UAAU,SAAS,yBAAyB,UAAA,WAElE;AAAA,YACAD,kCAAAA,KAAC,QAAA,EAAK,OAAO,EAAE,YAAY,QAAQ,OAAO,WAAW,UAAU,OAAA,GAC5D,UAAA;AAAA,cAAA,iBAAiB;AAAA,cAAO;AAAA,YAAA,EAAA,CAC3B;AAAA,UAAA,EAAA,CACF,EAAA,CACF;AAAA,UAGAA,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,gBAAY;AAAA,YAC7CD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,KACjB,UAAA;AAAA,cAAAC,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,OAAO,EAAE,GAAG,OAAO,OAAO,OAAO,OAAA;AAAA,kBACjC,OAAO;AAAA,kBACP,UAAU,CAAC,MAAM,yBAAyB,SAAS,EAAE,OAAO,KAAK,KAAK,CAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEzED,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,EAAE,GAAG,OAAO,QAAQ,MAAM,EAAA;AAAA,kBACjC,OAAO;AAAA,kBACP,UAAU,CAAC,MAAM,oBAAoB,EAAE,OAAO,KAAK;AAAA,kBAEnD,UAAA;AAAA,oBAAAC,kCAAAA,IAAC,UAAA,EAAO,OAAM,iBAAgB,UAAA,iBAAa;AAAA,oBAC3CA,kCAAAA,IAAC,UAAA,EAAO,OAAM,aAAY,UAAA,aAAS;AAAA,oBACnCA,kCAAAA,IAAC,UAAA,EAAO,OAAM,aAAY,UAAA,YAAA,CAAS;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAErCA,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,GAAG,OAAO;AAAA,oBACV,OAAO;AAAA,oBACP,SAAS;AAAA,oBACT,iBAAiB;AAAA,kBAAA;AAAA,kBAEnB,SAAS;AAAA,kBACV,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAED,EAAA,CACF;AAAA,UAAA,GACF;AAAA,UAGAD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,iBAAa;AAAA,YAC9CD,kCAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,UAAU,QAAQ,KAAK,MAAA,GACpD,UAAA;AAAA,cAAAC,sCAAC,YAAO,OAAO,OAAO,UAAU,SAAS,oBAAoB,UAAA,iBAE7D;AAAA,cACAA,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,EAAE,GAAG,OAAO,UAAU,iBAAiB,UAAA;AAAA,kBAC9C,SAAS;AAAA,kBACV,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,oDAGA,UAAA,EAAO,OAAO,OAAO,UAAU,SAAS,wBAAwB,UAAA,YAEjE;AAAA,oDACC,UAAA,EAAO,OAAO,OAAO,UAAU,SAAS,qBAAqB,UAAA,cAAA,CAE9D;AAAA,YAAA,EAAA,CACF;AAAA,UAAA,GACF;AAAA,UAGAD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,iBAAa;AAAA,YAC9CD,kCAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,UAAU,QAAQ,KAAK,MAAA,GACpD,UAAA;AAAA,cAAAC,sCAAC,YAAO,OAAO,OAAO,UAAU,SAAS,iBAAiB,UAAA,cAE1D;AAAA,oDACC,UAAA,EAAO,OAAO,OAAO,UAAU,SAAS,oBAAoB,UAAA,iBAE7D;AAAA,oDACC,UAAA,EAAO,OAAO,OAAO,UAAU,SAAS,uBAAuB,UAAA,cAEhE;AAAA,cACAA,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,EAAE,GAAG,OAAO,UAAU,iBAAiB,UAAA;AAAA,kBAC9C,SAAS;AAAA,kBACV,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAED,EAAA,CACF;AAAA,UAAA,GACF;AAAA,UAGAD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,kBAAc;AAAA,YAC/CA,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO,EAAE,GAAG,OAAO,YAAY,cAAc,OAAO,iBAAiB,UAAA;AAAA,gBACrE,SAAS;AAAA,gBACV,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAGDD,kCAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,MAAA,GAC3D,UAAA;AAAA,cAAAC,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,OAAO;AAAA,kBACd,SAAS,MAAM,kBAAkB,oBAAoB;AAAA,kBACtD,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGDA,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,OAAO;AAAA,kBACd,SAAS,MAAM,kBAAkB,oBAAoB;AAAA,kBACtD,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGDA,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,OAAO;AAAA,kBACd,SAAS,MAAM,kBAAkB,wBAAwB;AAAA,kBAC1D,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGDA,kCAAAA,IAAC,UAAA,EAAO,OAAO,OAAO,UAAU,SAAS,MAAM,kBAAkB,cAAc,GAAG,UAAA,gBAAA,CAElF;AAAA,YAAA,EAAA,CACF;AAAA,UAAA,GACF;AAAA,UAGC,kBACCD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,eAAW;AAAA,YAC5CD,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,GAAG,OAAO;AAAA,kBACV,YAAY,aAAa,gBAAgB,eAAe,OAAO,CAAC;AAAA,gBAAA;AAAA,gBAGlE,UAAA;AAAA,kBAAAA,kCAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,YAAY,UAAU,UAAA;AAAA,oBAAA;AAAA,oBAAU,eAAe;AAAA,kBAAA,GAAQ;AAAA,yDACpE,OAAA,EAAI,UAAA;AAAA,oBAAA;AAAA,oBAAQ,eAAe;AAAA,kBAAA,GAAM;AAAA,kBAClCA,uCAAC,SAAI,OAAO,EAAE,OAAO,gBAAgB,eAAe,OAAO,EAAA,GAAK,UAAA;AAAA,oBAAA;AAAA,oBACpD,eAAe,QAAQ,YAAA;AAAA,kBAAY,GAC/C;AAAA,kBACAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,UAAU,QAAQ,OAAO,WAAW,WAAW,MAAA,GAC1D,UAAA,eAAe,QAAA,CAClB;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF,GACF;AAAA,UAID,gBAAgB,SAAS,4CACvB,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAA,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,oBAAgB;AAAA,YACjDA,kCAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,WAAW,SAAS,WAAW,OAAA,GAC1C,UAAA,gBAAgB,IAAI,CAAC1B,SAAQ,QAC5ByB,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,OAAO;AAAA,kBACL,SAAS;AAAA,kBACT,cAAc;AAAA,kBACd,iBAAiB;AAAA,kBACjB,cAAc;AAAA,kBACd,YAAY,aAAazB,QAAO,SAAS,YAAY,SAAS;AAAA,gBAAA;AAAA,gBAGhE,UAAA;AAAA,kBAAAyB,kCAAAA;AAAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO,EAAE,YAAY,QAAQ,OAAOzB,QAAO,SAAS,YAAY,UAAA;AAAA,sBAE/D,UAAA;AAAA,wBAAAA,QAAO,SAAS,SAAS;AAAA,wBAAO;AAAA,wBAAGA,QAAO;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAE7C0B,kCAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,UAAU,QAAQ,OAAO,UAAA,GAAc,UAAA1B,QAAO,QAAA,CAAQ;AAAA,gBAAA;AAAA,cAAA;AAAA,cAd/D;AAAA,YAAA,CAgBR,GACH;AAAA,YACA0B,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO,EAAE,GAAG,OAAO,UAAU,WAAW,MAAA;AAAA,gBACxC,SAAS,MAAM,mBAAmB,EAAE;AAAA,gBACrC,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED,GACF;AAAA,UAIFD,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAA,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,SAAS;AAAA,kBACT,gBAAgB;AAAA,kBAChB,YAAY;AAAA,kBACZ,cAAc;AAAA,gBAAA;AAAA,gBAGhB,UAAA;AAAA,kBAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,kBAAc;AAAA,kBAC/CD,uCAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,SAClC,UAAA;AAAA,oBAAAC,kCAAAA;AAAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO,EAAE,GAAG,OAAO,UAAU,SAAS,WAAW,UAAU,OAAA;AAAA,wBAC3D,SAAS;AAAA,wBACV,UAAA;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAGDA,kCAAAA;AAAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO,EAAE,GAAG,OAAO,UAAU,SAAS,WAAW,UAAU,OAAA;AAAA,wBAC3D,SAAS,MAAM;AACb,yCAAe,SAAA;AACf,+CAAA;AAAA,wBACF;AAAA,wBACD,UAAA;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAED,EAAA,CACF;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAEFA,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,WAAW;AAAA,kBACX,WAAW;AAAA,kBACX,iBAAiB;AAAA,kBACjB,cAAc;AAAA,gBAAA;AAAA,gBAGf,UAAA,cAAc,WAAW,IACxBA,kCAAAA;AAAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,OAAO;AAAA,sBACP,WAAW;AAAA,sBACX,SAAS;AAAA,sBACT,UAAU;AAAA,oBAAA;AAAA,oBAEb,UAAA;AAAA,kBAAA;AAAA,gBAAA,IAID,cACG,MAAA,EACA,UACA,IAAI,CAAC,OAAO,QACXD,kCAAAA;AAAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,OAAO;AAAA,sBACL,SAAS;AAAA,sBACT,cAAc;AAAA,sBACd,YAAY,aAAa,mBAAmB,MAAM,UAAU,CAAC;AAAA,oBAAA;AAAA,oBAG/D,UAAA;AAAA,sBAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,OAAO,WAAW,UAAU,MAAA,GACvC,UAAA,MAAM,UAAU,mBAAA,EAAmB,CACtC;AAAA,sBACAA,kCAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,YAAY,QAAQ,UAAU,OAAA,GAAW,UAAA,MAAM,OAAA,CAAO;AAAA,6DACnE,OAAA,EAAI,OAAO,EAAE,UAAU,UAAU,UAAA;AAAA,wBAAA;AAAA,wBACxB,MAAM,WAAW,UAAU,QAAQ;AAAA,wBAC1C,MAAM,WAAW,kBAChB,KAAK,MAAM,WAAW,cAAc;AAAA,sBAAA,GACxC;AAAA,sBACC,MAAM,kBACLD,uCAAC,OAAA,EAAI,OAAO,EAAE,OAAO,WAAW,UAAU,OAAA,GAAU,UAAA;AAAA,wBAAA;AAAA,wBACvC,MAAM;AAAA,sBAAA,EAAA,CACnB;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAnBG;AAAA,gBAAA,CAsBR;AAAA,cAAA;AAAA,YAAA;AAAA,UAEP,GACF;AAAA,UAGAA,kCAAAA,KAAC,OAAA,EAAI,OAAO,OAAO,SACjB,UAAA;AAAA,YAAAC,kCAAAA,IAAC,OAAA,EAAI,OAAO,OAAO,cAAc,UAAA,8BAA0B;AAAA,YAC3DA,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,WAAW;AAAA,kBACX,WAAW;AAAA,kBACX,iBAAiB;AAAA,kBACjB,cAAc;AAAA,gBAAA;AAAA,gBAGf,UAAA,iBAAiB,WAAW,IAC3BA,kCAAAA;AAAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,OAAO;AAAA,sBACP,WAAW;AAAA,sBACX,SAAS;AAAA,sBACT,UAAU;AAAA,oBAAA;AAAA,oBAEb,UAAA;AAAA,kBAAA;AAAA,gBAAA,IAID,iBAAiB,IAAI,CAAC,EAAE,OAAO,kBAAkB;;AAC/C,wBAAM,aAAa,eAAe,gBAAgB,KAAK;AACvD,yBACED,kCAAAA;AAAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEC,SAAS,MAAM,yBAAyB,KAAK;AAAA,sBAC7C,OAAO;AAAA,wBACL,SAAS;AAAA,wBACT,cAAc;AAAA,wBACd,QAAQ;AAAA,wBACR,iBACE,0BAA0B,QAAQ,YAAY;AAAA,wBAChD,YAAY,aAAa,mBAAmB,UAAU,CAAC;AAAA,sBAAA;AAAA,sBAGzD,UAAA;AAAA,wBAAAA,kCAAAA,KAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,KAAK,OAAO,YAAY,SAAA,GACrD,UAAA;AAAA,0BAAAC,kCAAAA,IAAC,QAAA,EAAK,OAAO,OAAO,cAAe,UAAA,OAAM;AAAA,0BACzCD,kCAAAA,KAAC,QAAA,EAAK,OAAO,OAAO,YAAY,UAAA;AAAA,4BAAA;AAAA,4BACzB,YAAY,QAAQ,YAAA;AAAA,4BAAc;AAAA,0BAAA,GACzC;AAAA,0BACC,YAAY,MACXA,kCAAAA,KAAC,QAAA,EAAK,OAAO,OAAO,WAAW,UAAA;AAAA,4BAAA;AAAA,4BAAE,YAAY;AAAA,0BAAA,EAAA,CAAG;AAAA,wBAAA,GAEpD;AAAA,8DACC,OAAA,EAAI,OAAO,EAAE,UAAU,QAAQ,OAAO,WAAW,WAAW,SAC1D,YAAA,iBAAY,gBAAZ,mBAAyB,UAAU,GAAG,QAAO,YAAA,CAChD;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAtBK;AAAA,kBAAA;AAAA,gBAyBX,CAAC;AAAA,cAAA;AAAA,YAAA;AAAA,UAEL,EAAA,CACF;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA,GACF;AAAA,EAEJ;AAGA,WAAS,eAAe,OAAuB;AAC7C,UAAM,eAAuC;AAAA,MAC3C,OAAO;AAAA,MACP,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAER,WAAO,aAAa,KAAK,KAAK;AAAA,EAChC;ACt+BA,eAAA;AASA,SAAO,iBAAiB;AACxB,SAAO,aAAa;AAGpB,WAAS,uBAAoC;AAE3C,QAAI,YAAY,SAAS,eAAe,2BAA2B;AACnE,QAAI,WAAW;AACb,aAAO;AAAA,IACT;AAGA,gBAAY,SAAS,cAAc,KAAK;AACxC,cAAU,KAAK;AACf,aAAS,KAAK,YAAY,SAAS;AAEnC,WAAO;AAAA,EACT;AAGA,WAAS,kBAAwB;AAC/B,UAAM,YAAY,qBAAA;AAClB,UAAM,OAAOG,cAAAA,WAAW,SAAS;AAEjC,SAAK;AAAA,4CACF,MAAM,YAAN,EACC,UAAAF,sCAAC,cAAW,EAAA,CACd;AAAA,IAAA;AAGF,YAAQ,IAAI,uEAAuE;AAAA,EACrF;AAGA,MAAI,SAAS,eAAe,WAAW;AACrC,aAAS,iBAAiB,oBAAoB,eAAe;AAAA,EAC/D,OAAO;AACL,oBAAA;AAAA,EACF;;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,20,21,22,23,24,25,26,27]}